<?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>236367</bug_id>
          
          <creation_ts>2022-02-09 08:09:39 -0800</creation_ts>
          <short_desc>[JSC] Accommodate the RISCV64 C calling convention</short_desc>
          <delta_ts>2022-04-20 06:37:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>237775</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pmatos</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>1839159</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-02-09 08:09:39 -0800</bug_when>
    <thetext>The RISCV64 C calling convention specifies that 32-bit types have to be sign-extended into the upper 32 bits of the 64-bit integer registers. This goes for both signed and unsigned values. Behavior of 8-bit or 16-bit types depends on signedness but it still extends to the whole size of the 64-bit integer register -- unsigned values are zero-extended, signed values are sign-extended.

This is causing problems with how the current JIT-generated code is passing argument values to native JIT functions and how those are then used. JIT generation right now assumes that a 32-bit value can be packed either directly into the lower 32 bits of the argument register or through the narrower 32-bit aliases (e.g. w0-w7 registers on ARM64, edi/esi on x86_64). In the native function, these 32-bits-wide registers are then used directly in different operations on these values.

RV64 has it more complicated. Any native operation on registers containing values of bit-width 32 or smaller expects those values to be properly extended into the upper bits. Right now, this isn&apos;t guaranteed and causes problems when the 32-bit value has 1 in bit#31 that isn&apos;t extended into the upper 32 bits of the 64-bit integer register.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839166</commentid>
    <comment_count>1</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-02-09 08:15:30 -0800</bug_when>
    <thetext>Calling convention specification:
https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839172</commentid>
    <comment_count>2</comment_count>
      <attachid>451382</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-02-09 08:21:10 -0800</bug_when>
    <thetext>Created attachment 451382
RFC patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839187</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-02-09 08:47:47 -0800</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #2)
&gt; Created attachment 451382 [details]
&gt; RFC patch

This patch introduces the CCallInteger template through which values of the desired integer type would be accessed in the native JIT operations. The default implementation provides a simple implicit conversion operator that retrieves the value, with an additional conversion operator for converting to enumerator values. The implicit conversion operator minimizes the amount of needed changes in existing code, except for a few now-necessary explicit casts.

For RISCV64, a separate implementation of CCallInteger is provided, with same interface but an implicit conversion operator that on each invocation returns the sign-extended underlying value. This approach avoids any changes in the JIT generation but instead imposes alignment with the calling convention requirements at the point of use.

Main downside is the sign extension that now occurs on each value access, meaning one or two additional instructions for each such occasion. There&apos;s also missing sign extension for 8-bit or 16-bit values but those are trivial to add.

The CCallInteger template is then aliased to different descriptive sub-types (like CCallInt32, CCallUIntptr) and the declarations and definitions of all native JIT operations are adjusted to use these types for parameters and return values. CCallHelpers::setupArgumentsImpl() overloads are changed so that immediate values only fit into CCallInteger&lt;&gt; parameters in the target operations.

This is just the initial idea, so any feedback is welcome. It avoids changing JIT details, but it imposes a lot of changes in signatures for the native JIT operations, but even then it shouldn&apos;t change behavior for non-RISCV64 platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839261</commentid>
    <comment_count>4</comment_count>
      <attachid>451382</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-09 10:27:47 -0800</bug_when>
    <thetext>Comment on attachment 451382
RFC patch

r- for now since EWS are red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841216</commentid>
    <comment_count>5</comment_count>
      <attachid>451893</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-02-14 05:17:49 -0800</bug_when>
    <thetext>Created attachment 451893
RFC patch

Fixes Clang build errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841232</commentid>
    <comment_count>6</comment_count>
      <attachid>451898</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-02-14 06:38:29 -0800</bug_when>
    <thetext>Created attachment 451898
RFC patch

Fixes Xcode errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841242</commentid>
    <comment_count>7</comment_count>
      <attachid>451899</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-02-14 07:07:12 -0800</bug_when>
    <thetext>Created attachment 451899
RFC patch

Marks the header as private in Xcode, maybe that helps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841263</commentid>
    <comment_count>8</comment_count>
      <attachid>451906</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-02-14 08:38:50 -0800</bug_when>
    <thetext>Created attachment 451906
RFC patch

With even more fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841594</commentid>
    <comment_count>9</comment_count>
      <attachid>451906</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-02-15 00:08:01 -0800</bug_when>
    <thetext>Comment on attachment 451906
RFC patch

This now builds everywhere, but it&apos;s not yet reviewable. The desire is to gather feedback on the approach, hence the RFC call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842295</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-16 08:10:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/89026012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848750</commentid>
    <comment_count>11</comment_count>
      <attachid>453981</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-03-07 07:32:07 -0800</bug_when>
    <thetext>Created attachment 453981
RFC patch - alternative

This is an alternative approach that reduces the amount of changes but is more lenient and puts more burden to the person writing out the definitions of JIT operations.

There&apos;s no change to argument marshalling in CCallHelpers.h, or the integer types for JIT operations. Only in the definitions would the integer arguments have to use macros to specify the type and the name of the argument. In the definition body, another macro would be used to finally &quot;define&quot; the integer argument, assigning the argument value to the desired name.

For non-RISCV64 platforms this assignment would be pass-through. For RISCV64, the necessary sign extension would be applied to the value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849135</commentid>
    <comment_count>12</comment_count>
      <attachid>454079</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-03-08 00:20:21 -0800</bug_when>
    <thetext>Created attachment 454079
RFC patch - alternative

Should now build via xcode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852927</commentid>
    <comment_count>13</comment_count>
      <attachid>451906</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-03-18 18:33:24 -0700</bug_when>
    <thetext>Comment on attachment 451906
RFC patch

Out of the two approaches, this one probably makes more sense. But I like that the second approach is smaller, but don&apos;t love that you need to change the implementation of the various operations. 

I wonder if it&apos;s possible to do some kind of crazy macro/template magic and change JSC_DEFINE_JIT_OPERATION to automatically do what we want? That way no macros applied to types of arguments or to implementation of the functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853056</commentid>
    <comment_count>14</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-03-20 06:01:48 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #13)
&gt; I wonder if it&apos;s possible to do some kind of crazy macro/template magic and
&gt; change JSC_DEFINE_JIT_OPERATION to automatically do what we want? That way
&gt; no macros applied to types of arguments or to implementation of the functions

DEFINE_JIT_OPERATION reproduces the function signature, along with different attributes, and expects the function body afterwards. It would probably be possible to include the body in the macro invocation, and then for RISCV64 construct a function body that first sign-extends whatever is necessary before laying in the actual operation implementation.

This would also require tidy parameter lists that always consist of a type-and-name so that these are passed through separate macros extracting either the type or the name of the parameter.

So more faith put into the preprocessor. I don&apos;t think C++ templates would be usable directly in DEFINE_JIT_OPERATION since C linkage is required, and that&apos;s rejected for templates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853074</commentid>
    <comment_count>15</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-03-20 10:09:38 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #14)
&gt; This would also require tidy parameter lists that always consist of a
&gt; type-and-name so that these are passed through separate macros extracting
&gt; either the type or the name of the parameter.
&gt; 

Tried this, it&apos;s just problems and borderline preprocessor acrobatics of getting things in proper place. I&apos;m skeptical a good solution is possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853076</commentid>
    <comment_count>16</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-03-20 10:12:08 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #13)
&gt; Comment on attachment 451906 [details]
&gt; RFC patch
&gt; 
&gt; Out of the two approaches, this one probably makes more sense. But I like
&gt; that the second approach is smaller, but don&apos;t love that you need to change
&gt; the implementation of the various operations. 
&gt; 

I like this approach more cause it gives the opportunity of also cleaning up and clamping down the exact sizes for each integer parameter. It&apos;s not the ideal solution cause for RISC-V it will end up doing sign extension on every conversion to the native integer type, but it&apos;s the most complete one, it scales into the future and there&apos;s no drawbacks for other ISAs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855963</commentid>
    <comment_count>17</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-03-29 02:37:02 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #16)
&gt; (In reply to Saam Barati from comment #13)
&gt; &gt; Comment on attachment 451906 [details]
&gt; &gt; RFC patch
&gt; &gt; 
&gt; &gt; Out of the two approaches, this one probably makes more sense. But I like
&gt; &gt; that the second approach is smaller, but don&apos;t love that you need to change
&gt; &gt; the implementation of the various operations. 
&gt; &gt; 
&gt; 
&gt; I like this approach more cause it gives the opportunity of also cleaning up
&gt; and clamping down the exact sizes for each integer parameter. It&apos;s not the
&gt; ideal solution cause for RISC-V it will end up doing sign extension on every
&gt; conversion to the native integer type, but it&apos;s the most complete one, it
&gt; scales into the future and there&apos;s no drawbacks for other ISAs.

Not going to work out. The templated struct embedding the integer value has to be kept a POD type so that the function can continue using the necessary C linkage. It&apos;s doable but it requires a wide usage of aggregate initializers for these objects.

But the blocker is the Apple ARM64 calling convention which enables function arguments of small integer types to be placed on the stack using an alignment smaller than 8 bytes. It doesn&apos;t allow this for compact types, which is what the integer-containing POD struct is treated as. So this won&apos;t work as intended, and if it did, it might cause unwanted regressions or at least changes of behavior that might not be entirely desired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862455</commentid>
    <comment_count>18</comment_count>
      <attachid>457865</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-19 00:38:38 -0700</bug_when>
    <thetext>Created attachment 457865
WIP patch

This makes it much simpler, it leaves it to the CCallHelpers::setupArguments() call to, at the end of setup, run through the operation arguments, detecting where the sign extension is necessary.

This one should work only for the Baseline JIT, and only for entering CCalls. Higher levels will need separate attention, and e.g. test cases in testmasm and other test programs will require manual sign-extension of the returned 32-bit integer value.

This is still a prototyping patch, the behavior has to be limited to RISC-V, and maybe some additional validation should be added to ensure that only doubles are used as floating-point arguments for any given operation, meaning any other type uses GPRs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862641</commentid>
    <comment_count>19</comment_count>
      <attachid>457918</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-19 11:13:38 -0700</bug_when>
    <thetext>Created attachment 457918
EWS run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862852</commentid>
    <comment_count>20</comment_count>
      <attachid>457967</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-20 01:19:57 -0700</bug_when>
    <thetext>Created attachment 457967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862862</commentid>
    <comment_count>21</comment_count>
      <attachid>457967</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-20 02:13:43 -0700</bug_when>
    <thetext>Comment on attachment 457967
Patch

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

I think this patch looks good. r=me with comments.

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:691
&gt; +        if (!std::is_same&lt;ArgumentType, double&gt;::value) {

Use `if constexpr`. And use is_same_v
Also, is it correct? what happens if we are using `float`?
Can you align it to the condition where CCallHelpers use FPRReg?

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:696
&gt; +            if (isRISCV64() &amp;&amp; gprIndex &lt; GPRInfo::numberOfArgumentRegisters
&gt; +                &amp;&amp; std::is_integral&lt;ArgumentType&gt;::value &amp;&amp; sizeof(ArgumentType) == 4) {

Use `if constexpr` and use is_integral_v</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862863</commentid>
    <comment_count>22</comment_count>
      <attachid>457967</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-20 02:14:33 -0700</bug_when>
    <thetext>Comment on attachment 457967
Patch

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

&gt;&gt; Source/JavaScriptCore/jit/CCallHelpers.h:691
&gt;&gt; +        if (!std::is_same&lt;ArgumentType, double&gt;::value) {
&gt; 
&gt; Use `if constexpr`. And use is_same_v
&gt; Also, is it correct? what happens if we are using `float`?
&gt; Can you align it to the condition where CCallHelpers use FPRReg?

Note that wasm has float.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862876</commentid>
    <comment_count>23</comment_count>
      <attachid>457967</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-20 03:15:41 -0700</bug_when>
    <thetext>Comment on attachment 457967
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/jit/CCallHelpers.h:691
&gt;&gt;&gt; +        if (!std::is_same&lt;ArgumentType, double&gt;::value) {
&gt;&gt; 
&gt;&gt; Use `if constexpr`. And use is_same_v
&gt;&gt; Also, is it correct? what happens if we are using `float`?
&gt;&gt; Can you align it to the condition where CCallHelpers use FPRReg?
&gt; 
&gt; Note that wasm has float.

Everything going through CCallHelpers, if floating-point, is of the double type. There&apos;s ceilFloat and floorFloat that are used in B3 as fallbacks, but that doesn&apos;t affect CCallHelpers.

Before being marshalled, every incoming FPRReg is static-asserted to be going against a double-typed argument in any given operation:
https://github.com/WebKit/WebKit/blob/main/Source/JavaScriptCore/jit/CCallHelpers.h#L419

I&apos;ll add a comment explaining the situation.

&gt;&gt; Source/JavaScriptCore/jit/CCallHelpers.h:696
&gt;&gt; +                &amp;&amp; std::is_integral&lt;ArgumentType&gt;::value &amp;&amp; sizeof(ArgumentType) == 4) {
&gt; 
&gt; Use `if constexpr` and use is_integral_v

The whole function is constexpr already. I&apos;lll remove ALWAYS_INLINE though cause it&apos;s meaningless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862881</commentid>
    <comment_count>24</comment_count>
      <attachid>457973</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-20 03:50:59 -0700</bug_when>
    <thetext>Created attachment 457973
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862917</commentid>
    <comment_count>25</comment_count>
      <attachid>457973</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-20 06:37:12 -0700</bug_when>
    <thetext>Comment on attachment 457973
Patch for landing

Clearing flags on attachment: 457973

Committed r293092 (249803@trunk): &lt;https://commits.webkit.org/249803@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862918</commentid>
    <comment_count>26</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-20 06:37:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451382</attachid>
            <date>2022-02-09 08:21:10 -0800</date>
            <delta_ts>2022-02-14 05:17:42 -0800</delta_ts>
            <desc>RFC patch</desc>
            <filename>bug-236367-20220209172108.patch</filename>
            <type>text/plain</type>
            <size>263969</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZTI0MzNlNzU3NDZlYTJlNjFkZmZkMjM2ZDlkNDNhZDc4MzNjY2NiLi5jMTk2MDBhMGQ2YWRkY2I5
YWNiZjcwZTVkNTRjYmYxODlkNTM4ODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDggQEAKKzIwMjItMDItMDkgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtKU0NdIEFjY29tbW9kYXRlIHRoZSBSSVNDVjY0IEMgY2FsbGluZyBj
b252ZW50aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzYzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6Cisg
ICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAoSlNDOjp0ZXN0U2ltcGxlKToK
KyAgICAgICAgKEpTQzo6dGVzdEdldEVmZmVjdGl2ZUFkZHJlc3MpOgorICAgICAgICAoSlNDOjp0
ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5j
aFRlc3Q4KToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaFRlc3QxNik6CisgICAgICAgIChKU0M6
OnRlc3RCcmFuY2hUZXN0Qml0MzJSZWdSZWcpOgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoVGVz
dEJpdDMyUmVnSW1tKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaFRlc3RCaXQzMkFkZHJJbW0p
OgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoVGVzdEJpdDY0UmVnUmVnKToKKyAgICAgICAgKEpT
Qzo6dGVzdEJyYW5jaFRlc3RCaXQ2NFJlZ0ltbSk6CisgICAgICAgIChKU0M6OnRlc3RCcmFuY2hU
ZXN0Qml0NjRBZGRySW1tKToKKyAgICAgICAgKEpTQzo6dGVzdENsZWFyQml0NjQpOgorICAgICAg
ICAoSlNDOjp0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFzayk6CisgICAgICAgIChKU0M6OnRlc3RDbGVh
ckJpdHM2NFdpdGhNYXNrVGVybmFyeSk6CisgICAgICAgIChKU0M6OnRlc3RDb3VudFRyYWlsaW5n
WmVyb3M2NEltcGwpOgorICAgICAgICAoSlNDOjp0ZXN0U2hpZnRBbmRBZGQpOgorICAgICAgICAo
SlNDOjp0ZXN0U3RvcmU2NEltbTY0QWRkcmVzc1BvaW50ZXIpOgorICAgICAgICAoSlNDOjp0ZXN0
Q29tcGFyZURvdWJsZSk6CisgICAgICAgIChKU0M6OnRlc3RDb21wYXJlRG91YmxlU2FtZUFyZyk6
CisgICAgICAgIChKU0M6OnRlc3RNdWwzMldpdGhJbW1lZGlhdGVzKToKKyAgICAgICAgKEpTQzo6
dGVzdE11bHRpcGx5U2lnbkV4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5WmVy
b0V4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5QWRkU2lnbkV4dGVuZDMyKToK
KyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5QWRkWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpT
Qzo6dGVzdFN1YjMyQXJncyk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkltbSk6CisgICAgICAg
IChKU0M6OnRlc3RTdWI2NEltbTMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YjY0QXJnSW1tMzIp
OgorICAgICAgICAoSlNDOjp0ZXN0U3ViNjRJbW02NCk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2
NEFyZ0ltbTY0KToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5U3ViU2lnbkV4dGVuZDMyKToK
KyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5U3ViWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpT
Qzo6dGVzdE11bHRpcGx5TmVnU2lnbkV4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRp
cGx5TmVnWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEV4dHJhY3RVbnNpZ25lZEJp
dGZpZWxkMzIpOgorICAgICAgICAoSlNDOjp0ZXN0RXh0cmFjdFVuc2lnbmVkQml0ZmllbGQ2NCk6
CisgICAgICAgIChKU0M6OnRlc3RJbnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5aZXJvMzIpOgorICAg
ICAgICAoSlNDOjp0ZXN0SW5zZXJ0VW5zaWduZWRCaXRmaWVsZEluWmVybzY0KToKKyAgICAgICAg
KEpTQzo6dGVzdEluc2VydEJpdEZpZWxkMzIpOgorICAgICAgICAoSlNDOjp0ZXN0SW5zZXJ0Qml0
RmllbGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0Vu
ZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEV4dHJhY3RJbnNlcnRCaXRmaWVsZEF0TG93RW5kNjQp
OgorICAgICAgICAoSlNDOjp0ZXN0Q2xlYXJCaXRGaWVsZDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dENsZWFyQml0RmllbGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RDbGVhckJpdHNXaXRoTWFzazMy
KToKKyAgICAgICAgKEpTQzo6dGVzdENsZWFyQml0c1dpdGhNYXNrNjQpOgorICAgICAgICAoSlND
Ojp0ZXN0T3JOb3QzMik6CisgICAgICAgIChKU0M6OnRlc3RPck5vdDY0KToKKyAgICAgICAgKEpT
Qzo6dGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIpOgorICAgICAgICAoSlNDOjp0ZXN0
SW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm82NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0
U2lnbmVkQml0ZmllbGQzMik6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0U2lnbmVkQml0Zmll
bGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0UmVnaXN0ZXIzMik6CisgICAgICAgIChK
U0M6OnRlc3RFeHRyYWN0UmVnaXN0ZXI2NCk6CisgICAgICAgIChKU0M6OnRlc3RBZGRXaXRoTGVm
dFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0QWRkV2l0aFJpZ2h0U2hpZnQzMik6CisgICAg
ICAgIChKU0M6OnRlc3RBZGRXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlND
Ojp0ZXN0QWRkV2l0aExlZnRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdEFkZFdpdGhSaWdo
dFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0QWRkV2l0aFVuc2lnbmVkUmlnaHRTaGlmdDY0
KToKKyAgICAgICAgKEpTQzo6dGVzdFN1YldpdGhMZWZ0U2hpZnQzMik6CisgICAgICAgIChKU0M6
OnRlc3RTdWJXaXRoUmlnaHRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YldpdGhVbnNp
Z25lZFJpZ2h0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RTdWJXaXRoTGVmdFNoaWZ0NjQp
OgorICAgICAgICAoSlNDOjp0ZXN0U3ViV2l0aFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6
OnRlc3RTdWJXaXRoVW5zaWduZWRSaWdodFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0WG9y
Tm90MzIpOgorICAgICAgICAoSlNDOjp0ZXN0WG9yTm90NjQpOgorICAgICAgICAoSlNDOjp0ZXN0
WG9yTm90V2l0aExlZnRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvck5vdFdpdGhSaWdo
dFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0WG9yTm90V2l0aFVuc2lnbmVkUmlnaHRTaGlm
dDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvck5vdFdpdGhMZWZ0U2hpZnQ2NCk6CisgICAgICAg
IChKU0M6OnRlc3RYb3JOb3RXaXRoUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdFhv
ck5vdFdpdGhVbnNpZ25lZFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RTdG9yZVBy
ZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN0b3JlUHJlUG9zdEluZGV4NjQpOgor
ICAgICAgICAoSlNDOjp0ZXN0TG9hZFByZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dExvYWRQcmVQb3N0SW5kZXg2NCk6CisgICAgICAgIChKU0M6OnRlc3RBbmRMZWZ0U2hpZnQzMik6
CisgICAgICAgIChKU0M6OnRlc3RBbmRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0
QW5kVW5zaWduZWRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0QW5kTGVmdFNoaWZ0
NjQpOgorICAgICAgICAoSlNDOjp0ZXN0QW5kUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6
dGVzdEFuZFVuc2lnbmVkUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdFhvckxlZnRT
aGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvclJpZ2h0U2hpZnQzMik6CisgICAgICAgIChK
U0M6OnRlc3RYb3JVbnNpZ25lZFJpZ2h0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RYb3JM
ZWZ0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RYb3JSaWdodFNoaWZ0NjQpOgorICAgICAg
ICAoSlNDOjp0ZXN0WG9yVW5zaWduZWRSaWdodFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0
T3JMZWZ0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RPclJpZ2h0U2hpZnQzMik6CisgICAg
ICAgIChKU0M6OnRlc3RPclVuc2lnbmVkUmlnaHRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dE9yTGVmdFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0T3JSaWdodFNoaWZ0NjQpOgorICAg
ICAgICAoSlNDOjp0ZXN0T3JVbnNpZ25lZFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRl
c3RDb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjp0ZXN0TW92ZUNvbmRpdGlvbmFsbHlGbG9h
dGluZ1BvaW50KToKKyAgICAgICAgKEpTQzo6dGVzdE1vdmVDb25kaXRpb25hbGx5RmxvYXRpbmdQ
b2ludFNhbWVBcmcpOgorICAgICAgICAoSlNDOjp0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDgpOgor
ICAgICAgICAoSlNDOjp0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDE2KToKKyAgICAgICAgKEpTQzo6
dGVzdFN1YjMyQXJnSW1tKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlUHJlc2VydmVzR1BSUyk6
CisgICAgICAgIChKU0M6OnRlc3RCeXRlU3dhcCk6CisgICAgICAgIChKU0M6OnRlc3RMb2FkQmFz
ZUluZGV4KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNhY2hlZFB1dEJ5SWQpOgorICAg
ICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpT
Q19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5oOgorICAgICAgICAqIGZ0bC9GVExPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAoSlNDOjpGVEw6OkpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMpOgorICAgICAgICAqIGZ0bC9GVExPcGVy
YXRpb25zLmg6CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpD
Q2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzSW1wbCk6CisgICAgICAgIChKU0M6OkNDYWxsSGVs
cGVyczo6c3RkOjppc19pbnRlZ3JhbDxDVVJSRU5UX0FSR1VNRU5UX1RZUEU+Ojp2YWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgICogaml0L0NDYWxsVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6
OlJJU0NWNjRDQ2FsbEludGVnZXI6OlJJU0NWNjRDQ2FsbEludGVnZXIpOgorICAgICAgICAoSlND
OjpSSVNDVjY0Q0NhbGxJbnRlZ2VyOjpvcGVyYXRvciBUIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
UklTQ1Y2NENDYWxsSW50ZWdlcjo6b3BlcmF0b3IgRW51bVR5cGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpDQ2FsbEludGVnZXI6OkNDYWxsSW50ZWdlcik6CisgICAgICAgIChKU0M6OkNDYWxsSW50
ZWdlcjo6b3BlcmF0b3IgVCBjb25zdCk6CisgICAgICAgIChKU0M6OkNDYWxsSW50ZWdlcjo6b3Bl
cmF0b3IgRW51bVR5cGUgY29uc3QpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBqaXQv
SklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHdhc20vV2FzbU9wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAqIHdh
c20vV2FzbU9wZXJhdGlvbnMuaDoKKwogMjAyMi0wMi0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFlhcnJKSVQgaW5saW5pbmcgc2hvdWxkIGJl
IGRpc2FibGVkIHdoZW4gd2UgaGF2ZSBEb3RTdGFyRW5jbG9zdXJlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggMjc3N2JlOTlhZDFiN2MwOWQyYjZjOTUwMjI3ZGFjM2UxNzNi
Y2JkYy4uY2EwMTFiMTg4NTBkOWFjNWY0MWU4ZTZkZDQwYmZkNGRjY2I0YTI5NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODQ4LDYgKzg0OCw3IEBAIHNldChKYXZhU2Ny
aXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaml0L0Jhc2VsaW5lSklUQ29k
ZS5oCiAgICAgaml0L0NhbGxGcmFtZVNodWZmbGVEYXRhLmgKICAgICBqaXQvQ0NhbGxIZWxwZXJz
LmgKKyAgICBqaXQvQ0NhbGxUeXBlcy5oCiAgICAgaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaAog
ICAgIGppdC9FeGVjdXRhYmxlTWVtb3J5SGFuZGxlLmgKICAgICBqaXQvRlBSSW5mby5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCmluZGV4IDIwNGZmNDMw
NDE1MTkyM2JiMmQ4ZjdmYTM3MDFkNjUzZWY1OGIyYzQuLjIyOGViMjc0NzczZGNiMGQ5MDMxMWEw
M2ViN2Y5M2NiY2FjY2IxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvdGVzdG1hc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
dGVzdG1hc20uY3BwCkBAIC0xMzcsNiArMTM3LDEyIEBAIHN0YXRpYyB2b2lkIHByaW50SW50ZXJu
YWwoUHJpbnRTdHJlYW0mIG91dCwgdm9pZCogdmFsdWUpCiAgICAgb3V0LnByaW50ZigiJXAiLCB2
YWx1ZSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIHByaW50SW50ZXJuYWwoUHJp
bnRTdHJlYW0mIG91dCwgY29uc3QgSlNDOjpDQ2FsbEludGVnZXI8VD4mIHZhbHVlKQoreworICAg
IHByaW50SW50ZXJuYWwob3V0LCBzdGF0aWNfY2FzdDxUPih2YWx1ZSkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXVEYKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0yNjgsNyArMjc0LDcgQEAgdm9pZCBl
bWl0RnVuY3Rpb25FcGlsb2d1ZShDQ2FsbEhlbHBlcnMmIGppdCkKIAogdm9pZCB0ZXN0U2ltcGxl
KCkKIHsKLSAgICBDSEVDS19FUShjb21waWxlQW5kUnVuPGludD4oW10gKENDYWxsSGVscGVycyYg
aml0KSB7CisgICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxDQ2FsbEludDMyPihbXSAoQ0NhbGxI
ZWxwZXJzJiBqaXQpIHsKICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKICAgICAg
ICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoNDIpLCBHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUik7CiAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CkBAIC0yNzgs
NyArMjg0LDcgQEAgdm9pZCB0ZXN0U2ltcGxlKCkKIAogdm9pZCB0ZXN0R2V0RWZmZWN0aXZlQWRk
cmVzcyhzaXplX3QgcG9pbnRlciwgcHRyZGlmZl90IGxlbmd0aCwgaW50MzJfdCBvZmZzZXQsIEND
YWxsSGVscGVyczo6U2NhbGUgc2NhbGUpCiB7Ci0gICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxz
aXplX3Q+KFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICBDSEVDS19FUShjb21waWxlQW5k
UnVuPENDYWxsU2l6ZT4oWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICBlbWl0RnVu
Y3Rpb25Qcm9sb2d1ZShqaXQpOwogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoYml0d2lzZV9jYXN0PHZvaWQqPihwb2ludGVyKSksIEdQUkluZm86OnJlZ1QwKTsK
ICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJpdHdpc2VfY2Fz
dDx2b2lkKj4obGVuZ3RoKSksIEdQUkluZm86OnJlZ1QxKTsKQEAgLTI5OCw3ICszMDQsNyBAQCB2
b2lkIHRlc3RCcmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIoZG91YmxlIHZhbCwgaW50MzJfdCBl
eHBlY3RlZCkKICNlbHNlCiAgICAgY29uc3QgYm9vbCBpc0JpZ0VuZGlhbiA9IGZhbHNlOwogI2Vu
ZGlmCi0gICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxpbnQ+KFsmXSAoQ0NhbGxIZWxwZXJzJiBq
aXQpIHsKKyAgICBDSEVDS19FUShjb21waWxlQW5kUnVuPENDYWxsSW50MzI+KFsmXSAoQ0NhbGxI
ZWxwZXJzJiBqaXQpIHsKICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKICAgICAg
ICAgaml0LnN1YlB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihzdGFja0FsaWdubWVudEJ5
dGVzKCkpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBp
ZiAoaXNCaWdFbmRpYW4pIHsKQEAgLTM2Niw4ICszNzIsOCBAQCB2b2lkIHRlc3RCcmFuY2hUZXN0
OCgpCiAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50
OF90Pih2YWx1ZSkKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8
aW50Pih0ZXN0MSwgYXJyYXkpLCByZXN1bHQpOwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PGludD4odGVzdDIsIGFycmF5LCAxKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxDQ2FsbEludDMyPih0ZXN0MSwgYXJyYXkpLCByZXN1bHQpOworICAgICAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QyLCBhcnJheSwgMSksIHJlc3VsdCk7CiAgICAg
ICAgIH0KICAgICB9CiB9CkBAIC00MTIsOCArNDE4LDggQEAgdm9pZCB0ZXN0QnJhbmNoVGVzdDE2
KCkKICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQx
Nl90Pih2YWx1ZSkKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8
aW50Pih0ZXN0MSwgYXJyYXkpLCByZXN1bHQpOwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PGludD4odGVzdDIsIGFycmF5LCAxKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxDQ2FsbEludDMyPih0ZXN0MSwgYXJyYXkpLCByZXN1bHQpOworICAgICAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QyLCBhcnJheSwgMSksIHJlc3VsdCk7CiAgICAg
ICAgIH0KICAgICB9CiB9CkBAIC00MzcsNyArNDQzLDcgQEAgdm9pZCB0ZXN0QnJhbmNoVGVzdEJp
dDMyUmVnUmVnKCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6IGlu
dDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KHRlc3QsIHZh
bHVlLCB2YWx1ZTIpLCAodmFsdWU+Pih2YWx1ZTIlMzIpKSYxKTsKKyAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCB2YWx1ZSwgdmFsdWUyKSwgKHZhbHVlPj4odmFs
dWUyJTMyKSkmMSk7CiAgICAgfQogfQogCkBAIC00NTksNyArNDY1LDcgQEAgdm9pZCB0ZXN0QnJh
bmNoVGVzdEJpdDMyUmVnSW1tKCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZh
bHVlMiA6IGludDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+
KHRlc3QsIHZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSUzMikpJjEpOworICAgICAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QsIHZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSUz
MikpJjEpOwogICAgIH0KIH0KIApAQCAtNDgxLDcgKzQ4Nyw3IEBAIHZvaWQgdGVzdEJyYW5jaFRl
c3RCaXQzMkFkZHJJbW0oKQogICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUy
IDogaW50MzJPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4odGVz
dCwgJnZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSUzMikpJjEpOworICAgICAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QsICZ2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUlMzIp
KSYxKTsKICAgICB9CiB9CiAKQEAgLTUwMyw3ICs1MDksNyBAQCB2b2lkIHRlc3RCcmFuY2hUZXN0
Qml0NjRSZWdSZWcoKQogICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDog
aW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGxvbmcgaW50Pih0
ZXN0LCB2YWx1ZSwgdmFsdWUyKSwgKHZhbHVlPj4odmFsdWUyJTY0KSkmMSk7CisgICAgICAgICAg
ICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4odGVzdCwgdmFsdWUsIHZhbHVlMiksICh2YWx1
ZT4+KHZhbHVlMiU2NCkpJjEpOwogICAgIH0KIH0KIApAQCAtNTI1LDcgKzUzMSw3IEBAIHZvaWQg
dGVzdEJyYW5jaFRlc3RCaXQ2NFJlZ0ltbSgpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAo
YXV0byB2YWx1ZTIgOiBpbnQ2NE9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShpbnZv
a2U8bG9uZyBpbnQ+KHRlc3QsIHZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSU2NCkpJjEpOworICAg
ICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIHZhbHVlMiksICh2YWx1
ZTI+Pih2YWx1ZSU2NCkpJjEpOwogICAgIH0KIH0KIApAQCAtNTQ3LDcgKzU1Myw3IEBAIHZvaWQg
dGVzdEJyYW5jaFRlc3RCaXQ2NEFkZHJJbW0oKQogICAgICAgICB9KTsKIAogICAgICAgICBmb3Ig
KGF1dG8gdmFsdWUyIDogaW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPGxvbmcgaW50Pih0ZXN0LCAmdmFsdWUyKSwgKHZhbHVlMj4+KHZhbHVlJTY0KSkmMSk7Cisg
ICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4odGVzdCwgJnZhbHVlMiksICh2
YWx1ZTI+Pih2YWx1ZSU2NCkpJjEpOwogICAgIH0KIH0KIApAQCAtNTcyLDEyICs1NzgsMTIgQEAg
dm9pZCB0ZXN0Q2xlYXJCaXQ2NCgpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJpdHNJ
bldvcmQ7ICsraSkgewogICAgICAgICB1aW50NjRfdCB3b3JkID0gc3RkOjpudW1lcmljX2xpbWl0
czx1aW50NjRfdD46Om1heCgpOwogICAgICAgICBjb25zdGV4cHIgdWludDY0X3Qgb25lID0gMTsK
LSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCBpKSwgKHdvcmQg
JiB+KG9uZSA8PCBpKSkpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRl
c3QsIHdvcmQsIGkpLCAod29yZCAmIH4ob25lIDw8IGkpKSk7CiAgICAgfQogCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGJpdHNJbldvcmQ7ICsraSkgewogICAgICAgICB1aW50NjRfdCB3
b3JkID0gMDsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCBp
KSwgMCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgd29yZCwg
aSksIDApOwogICAgIH0KIH0KIApAQCAtNTk1LDEyICs2MDEsMTIgQEAgdm9pZCB0ZXN0Q2xlYXJC
aXRzNjRXaXRoTWFzaygpCiAKICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkp
IHsKICAgICAgICAgdWludDY0X3Qgd29yZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+
OjptYXgoKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCB2
YWx1ZSksICh3b3JkICYgfnZhbHVlKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJ
bnQ2ND4odGVzdCwgd29yZCwgdmFsdWUpLCAod29yZCAmIH52YWx1ZSkpOwogICAgIH0KIAogICAg
IGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRfdCB3
b3JkID0gMDsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCB2
YWx1ZSksIDApOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIHdv
cmQsIHZhbHVlKSwgMCk7CiAgICAgfQogCiAgICAgdWludDY0X3Qgc2F2ZWRNYXNrID0gMDsKQEAg
LTYyNCwxMiArNjMwLDEyIEBAIHZvaWQgdGVzdENsZWFyQml0czY0V2l0aE1hc2soKQogCiAgICAg
Zm9yIChhdXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90IHdv
cmQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNL
X0VRKGludm9rZTx1aW50NjRfdD4odGVzdDIsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFsdWUp
KTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFs
dWUpLCAod29yZCAmIH52YWx1ZSkpOwogICAgIH0KIAogICAgIGZvciAoYXV0byB2YWx1ZSA6IGlu
dDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKKyAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKICAg
ICB9CiB9CiAKQEAgLTY0OCwxMiArNjU0LDEyIEBAIHZvaWQgdGVzdENsZWFyQml0czY0V2l0aE1h
c2tUZXJuYXJ5KCkKIAogICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkgewog
ICAgICAgICB1aW50NjRfdCB3b3JkID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1h
eCgpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QsIHdvcmQsIHZhbHVl
KSwgKHdvcmQgJiB+dmFsdWUpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0
Pih0ZXN0LCB3b3JkLCB2YWx1ZSksICh3b3JkICYgfnZhbHVlKSk7CiAgICAgfQogCiAgICAgZm9y
IChhdXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90IHdvcmQg
PSAwOwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QsIHdvcmQsIHZhbHVl
KSwgMCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgd29yZCwg
dmFsdWUpLCAwKTsKICAgICB9CiAKICAgICB1aW50NjRfdCBzYXZlZE1hc2sgPSAwOwpAQCAtNjc5
LDEyICs2ODUsMTIgQEAgdm9pZCB0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFza1Rlcm5hcnkoKQogCiAg
ICAgZm9yIChhdXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90
IHdvcmQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENI
RUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdDIsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFs
dWUpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwg
dmFsdWUpLCAod29yZCAmIH52YWx1ZSkpOwogICAgIH0KIAogICAgIGZvciAoYXV0byB2YWx1ZSA6
IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKKyAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsK
ICAgICB9CiB9CiAKQEAgLTcxOCwxMyArNzI0LDEzIEBAIHN0YXRpYyB2b2lkIHRlc3RDb3VudFRy
YWlsaW5nWmVyb3M2NEltcGwoYm9vbCB3b3JkQ2FuQmVaZXJvKQogICAgIGZvciAoYXV0byB3b3Jk
IDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIGlmICghd29yZENhbkJlWmVybyAmJiAhd29y
ZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBDSEVDS19FUShpbnZva2U8c2l6ZV90
Pih0ZXN0LCB3b3JkKSwgZXhwZWN0ZWROdW1iZXJPZlRyYWlsaW5nWmVyb3Mod29yZCkpOworICAg
ICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxTaXplPih0ZXN0LCB3b3JkKSwgZXhwZWN0ZWROdW1i
ZXJPZlRyYWlsaW5nWmVyb3Mod29yZCkpOwogICAgIH0KIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbnVtYmVyT2ZCaXRzOyArK2kpIHsKICAgICAgICAgdWludDY0X3Qgb25lID0gMTsKICAg
ICAgICAgdWludDY0X3Qgd29yZCA9IG9uZSA8PCBpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8
c2l6ZV90Pih0ZXN0LCB3b3JkKSwgaSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFNp
emU+KHRlc3QsIHdvcmQpLCBpKTsKICAgICB9CiB9CiAKQEAgLTc5MSw3ICs3OTcsNyBAQCB2b2lk
IHRlc3RTaGlmdEFuZEFkZCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwog
Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTxpbnRwdHJfdD4odGVzdCksIGJhc2VQb2ludGVyICsg
KGluZGV4IDw8IHNoaWZ0KSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludHB0cj4o
dGVzdCksIGJhc2VQb2ludGVyICsgKGluZGV4IDw8IHNoaWZ0KSk7CiAgICAgfTsKIAogICAgIGZv
ciAoYXV0byBpbmRleCA6IGludDMyT3BlcmFuZHMoKSkgewpAQCAtODIxLDcgKzgyNyw3IEBAIHZv
aWQgdGVzdFN0b3JlNjRJbW02NEFkZHJlc3NQb2ludGVyKCkKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgaW52b2tlPHNpemVfdD4odGVzdCk7CisgICAgICAg
IGludm9rZTxDQ2FsbFNpemU+KHRlc3QpOwogICAgICAgICBDSEVDS19FUShkZXN0LCB2YWx1ZSk7
CiAgICAgfTsKICAgICAKQEAgLTkwMyw4ICs5MDksOCBAQCB2b2lkIHRlc3RDb21wYXJlRG91Ymxl
KE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24gY29uZGl0aW9uKQogICAgICAgICBmb3Ig
KGF1dG8gYiA6IG9wZXJhbmRzKSB7CiAgICAgICAgICAgICBhcmcxID0gYTsKICAgICAgICAgICAg
IGFyZzIgPSBiOwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oY29tcGFyZURvdWJs
ZSksIGV4cGVjdGVkUmVzdWx0KGEsIGIpKTsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxp
bnQ+KGNvbXBhcmVEb3VibGVHZW5lcmljKSwgZXhwZWN0ZWRSZXN1bHQoYSwgYikpOworICAgICAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+KGNvbXBhcmVEb3VibGUpLCBleHBlY3Rl
ZFJlc3VsdChhLCBiKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4o
Y29tcGFyZURvdWJsZUdlbmVyaWMpLCBleHBlY3RlZFJlc3VsdChhLCBiKSk7CiAgICAgICAgIH0K
ICAgICB9CiB9CkBAIC05NzMsOCArOTc5LDggQEAgdm9pZCB0ZXN0Q29tcGFyZURvdWJsZVNhbWVB
cmcoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlvbiBjb25kaXRpb24pCiAgICAgYXV0byBv
cGVyYW5kcyA9IGRvdWJsZU9wZXJhbmRzKCk7CiAgICAgZm9yIChhdXRvIGEgOiBvcGVyYW5kcykg
ewogICAgICAgICBhcmcxID0gYTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oY29tcGFy
ZURvdWJsZSksIGV4cGVjdGVkUmVzdWx0KGEpKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGlu
dD4oY29tcGFyZURvdWJsZUdlbmVyaWMpLCBleHBlY3RlZFJlc3VsdChhKSk7CisgICAgICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbEludDMyPihjb21wYXJlRG91YmxlKSwgZXhwZWN0ZWRSZXN1bHQo
YSkpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4oY29tcGFyZURvdWJsZUdl
bmVyaWMpLCBleHBlY3RlZFJlc3VsdChhKSk7CiAgICAgfQogfQogCkBAIC05OTEsNyArOTk3LDcg
QEAgdm9pZCB0ZXN0TXVsMzJXaXRoSW1tZWRpYXRlcygpCiAgICAgICAgIH0pOwogCiAgICAgICAg
IGZvciAoYXV0byB2YWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VR
KGludm9rZTxpbnQ+KG11bCwgdmFsdWUpLCBpbW1lZGlhdGUgKiB2YWx1ZSk7CisgICAgICAgICAg
ICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4obXVsLCB2YWx1ZSksIGltbWVkaWF0ZSAqIHZh
bHVlKTsKICAgICB9CiB9CiAKQEAgLTEwMDksNyArMTAxNSw3IEBAIHZvaWQgdGVzdE11bHRpcGx5
U2lnbkV4dGVuZDMyKCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6
IGludDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxsb25nIGludD4o
bXVsLCB2YWx1ZSwgdmFsdWUyKSwgKChsb25nIGludCkgdmFsdWUpICogKChsb25nIGludCkgdmFs
dWUyKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4obXVsLCB2YWx1
ZSwgdmFsdWUyKSwgaW50NjRfdCh2YWx1ZSkgKiBpbnQ2NF90KHZhbHVlMikpOwogICAgIH0KIH0K
IApAQCAtMTAyOCw3ICsxMDM0LDcgQEAgdm9pZCB0ZXN0TXVsdGlwbHlaZXJvRXh0ZW5kMzIoKQog
ICAgICAgICBmb3IgKGF1dG8gbU9wZXJhbmQgOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAgICAgICAg
ICAgIHVpbnQzMl90IG4gPSBuT3BlcmFuZDsKICAgICAgICAgICAgIHVpbnQzMl90IG0gPSBtT3Bl
cmFuZDsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4obXVsLCBuLCBtKSwg
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KG4pICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pKTsKKyAg
ICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4obXVsLCBuLCBtKSwgc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KG4pICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pKTsKICAgICAgICAg
fQogICAgIH0KIH0KQEAgLTEwNTEsNyArMTA1Nyw3IEBAIHZvaWQgdGVzdE11bHRpcGx5QWRkU2ln
bkV4dGVuZDMyKCkKICAgICBmb3IgKGF1dG8gbiA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAg
ICBmb3IgKGF1dG8gbSA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICAgICAgZm9yIChhdXRv
IGEgOiBpbnQ2NE9wZXJhbmRzKCkpCi0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGlu
dDY0X3Q+KGFkZCwgbiwgbSwgYSksIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pICogc3RhdGljX2Nh
c3Q8aW50NjRfdD4obSkgKyBhKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0Nh
bGxJbnQ2ND4oYWRkLCBuLCBtLCBhKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4obikgKiBzdGF0aWNf
Y2FzdDxpbnQ2NF90PihtKSArIGEpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTA3Niw3ICsx
MDgyLDcgQEAgdm9pZCB0ZXN0TXVsdGlwbHlBZGRaZXJvRXh0ZW5kMzIoKQogICAgICAgICAgICAg
Zm9yIChhdXRvIGEgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgICAgICAgICB1aW50MzJf
dCB1biA9IG47CiAgICAgICAgICAgICAgICAgdWludDMyX3QgdW0gPSBtOwotICAgICAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90PihhZGQsIG4sIG0sIGEpLCBzdGF0aWNfY2FzdDxp
bnQ2NF90Pih1bikgKiBzdGF0aWNfY2FzdDxpbnQ2NF90Pih1bSkgKyBhKTsKKyAgICAgICAgICAg
ICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4oYWRkLCBuLCBtLCBhKSwgc3RhdGljX2Nh
c3Q8aW50NjRfdD4odW4pICogc3RhdGljX2Nhc3Q8aW50NjRfdD4odW0pICsgYSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDk1LDcgKzExMDEsNyBAQCB2b2lkIHRlc3RT
dWIzMkFyZ3MoKQogICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDogaW50
MzJPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIs
IHZhbHVlLCB2YWx1ZTIpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUgLSB2YWx1ZTIpKTsK
KyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4oc3ViLCB2YWx1ZSwgdmFs
dWUyKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlIC0gdmFsdWUyKSk7CiAgICAgfQogfQog
CkBAIC0xMTEyLDcgKzExMTgsNyBAQCB2b2lkIHRlc3RTdWIzMkltbSgpCiAgICAgICAgICAgICAg
ICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgICAgICBqaXQucmV0KCk7
CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4o
c3ViKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsKKyAg
ICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4oc3ViKSwgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsKICAgICAgICAgfQogICAgIH0KIH0K
QEAgLTExMzAsNyArMTEzNiw3IEBAIHZvaWQgdGVzdFN1YjY0SW1tMzIoKQogICAgICAgICAgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAgICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+
KHN1YiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7Cisg
ICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHN1YiksIHN0YXRpY19jYXN0
PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7CiAgICAgICAgIH0KICAgICB9CiB9
CkBAIC0xMTQ4LDcgKzExNTQsNyBAQCB2b2lkIHRlc3RTdWI2NEFyZ0ltbTMyKCkKICAgICAgICAg
fSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygpKQotICAgICAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxp
bnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PENDYWxsSW50NjQ+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGlt
bWVkaWF0ZSkpOwogICAgIH0KIH0KIApAQCAtMTE2NSw3ICsxMTcxLDcgQEAgdm9pZCB0ZXN0U3Vi
NjRJbW02NCgpCiAgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAg
ICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIENI
RUNLX0VRKGludm9rZTx1aW50NjRfdD4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGltbWVk
aWF0ZSAtIGltbWVkaWF0ZTIpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJ
bnQ2ND4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIp
KTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTExODMsNyArMTE4OSw3IEBAIHZvaWQgdGVzdFN1
YjY0QXJnSW1tNjQoKQogICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUgOiBp
bnQ2NE9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oc3Vi
LCB2YWx1ZSksIHN0YXRpY19jYXN0PGludDY0X3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAg
ICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4oc3ViLCB2YWx1ZSksIHN0YXRpY19j
YXN0PGludDY0X3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CiAgICAgfQogfQogCkBAIC0xMjA1LDcg
KzEyMTEsNyBAQCB2b2lkIHRlc3RNdWx0aXBseVN1YlNpZ25FeHRlbmQzMigpCiAgICAgZm9yIChh
dXRvIGEgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgZm9yIChhdXRvIG4gOiBpbnQzMk9w
ZXJhbmRzKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVyYW5kcygpKQot
ICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90PihzdWIsIGEsIG4sIG0pLCBh
IC0gc3RhdGljX2Nhc3Q8aW50NjRfdD4obikgKiBzdGF0aWNfY2FzdDxpbnQ2NF90PihtKSk7Cisg
ICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHN1YiwgYSwgbiwgbSks
IGEgLSBzdGF0aWNfY2FzdDxpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+KG0pKTsK
ICAgICAgICAgfQogICAgIH0KIH0KQEAgLTEyMzAsNyArMTIzNiw3IEBAIHZvaWQgdGVzdE11bHRp
cGx5U3ViWmVyb0V4dGVuZDMyKCkKICAgICAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVy
YW5kcygpKSB7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgdW4gPSBuOwogICAgICAgICAgICAg
ICAgIHVpbnQzMl90IHVtID0gbTsKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50
NjRfdD4oc3ViLCBhLCBuLCBtKSwgYSAtIHN0YXRpY19jYXN0PGludDY0X3Q+KHVuKSAqIHN0YXRp
Y19jYXN0PGludDY0X3Q+KHVtKSk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50NjQ+KHN1YiwgYSwgbiwgbSksIGEgLSBzdGF0aWNfY2FzdDxpbnQ2NF90Pih1bikgKiBz
dGF0aWNfY2FzdDxpbnQ2NF90Pih1bSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQpAQCAtMTI1MCw3ICsxMjU2LDcgQEAgdm9pZCB0ZXN0TXVsdGlwbHlOZWdTaWduRXh0ZW5kMzIo
KQogCiAgICAgZm9yIChhdXRvIG4gOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAgICAgICAgZm9yIChh
dXRvIG0gOiBpbnQzMk9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50
NjRfdD4obmVnLCBuLCBtKSwgLShzdGF0aWNfY2FzdDxpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0
PGludDY0X3Q+KG0pKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4o
bmVnLCBuLCBtKSwgLShzdGF0aWNfY2FzdDxpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PGludDY0
X3Q+KG0pKSk7CiAgICAgfQogfQogCkBAIC0xMjcwLDcgKzEyNzYsNyBAQCB2b2lkIHRlc3RNdWx0
aXBseU5lZ1plcm9FeHRlbmQzMigpCiAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVyYW5k
cygpKSB7CiAgICAgICAgICAgICB1aW50MzJfdCB1biA9IG47CiAgICAgICAgICAgICB1aW50MzJf
dCB1bSA9IG07Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KG5lZywgbiwg
bSksIC0oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVuKSAqIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih1
bSkpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4obmVnLCBuLCBt
KSwgLShzdGF0aWNfY2FzdDx1aW50NjRfdD4odW4pICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVt
KSkpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTI5Myw3ICsxMjk5LDcgQEAgdm9pZCB0ZXN0
RXh0cmFjdFVuc2lnbmVkQml0ZmllbGQzMigpCiAgICAgICAgICAgICAgICAgICAgIGVtaXRGdW5j
dGlvbkVwaWxvZ3VlKGppdCk7CiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+
KHViZngzMiwgc3JjKSwgKChzcmMgPj4gbHNiKSAmICgoMVUgPDwgd2lkdGgpIC0gMVUpKSk7Cisg
ICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPih1YmZ4MzIsIHNyYyks
ICgoc3JjID4+IGxzYikgJiAoKDFVIDw8IHdpZHRoKSAtIDFVKSkpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQpAQCAtMTMxNyw3ICsxMzIzLDcgQEAgdm9pZCB0ZXN0RXh0cmFjdFVu
c2lnbmVkQml0ZmllbGQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxv
Z3VlKGppdCk7CiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHViZng2NCwg
c3JjKSwgKChzcmMgPj4gbHNiKSAmICgoMVVMTCA8PCB3aWR0aCkgLSAxVUxMKSkpOworICAgICAg
ICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odWJmeDY0LCBzcmMpLCAoKHNy
YyA+PiBsc2IpICYgKCgxVUxMIDw8IHdpZHRoKSAtIDFVTEwpKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9CkBAIC0xMzQyLDcgKzEzNDgsNyBAQCB2b2lkIHRlc3RJbnNlcnRVbnNp
Z25lZEJpdGZpZWxkSW5aZXJvMzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzayA9ICgxVSA8
PCB3aWR0aCkgLSAxVTsKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+
KHViZml6MzIsIHNyYyksIChzcmMgJiBtYXNrKSA8PCBsc2IpOworICAgICAgICAgICAgICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odWJmaXozMiwgc3JjKSwgKHNyYyAmIG1hc2spIDw8
IGxzYik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzY3LDcgKzEzNzMs
NyBAQCB2b2lkIHRlc3RJbnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5aZXJvNjQoKQogICAgICAgICAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAg
ICAgdWludDY0X3QgbWFzayA9ICgxVUxMIDw8IHdpZHRoKSAtIDFVTEw7Ci0gICAgICAgICAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih1YmZpejY0LCBzcmMpLCAoc3JjICYgbWFzaykg
PDwgbHNiKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHVi
Zml6NjQsIHNyYyksIChzcmMgJiBtYXNrKSA8PCBsc2IpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQpAQCAtMTM5NSw3ICsxNDAxLDcgQEAgdm9pZCB0ZXN0SW5zZXJ0Qml0RmllbGQz
MigpCiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzazEg
PSAoMVUgPDwgd2lkdGgpIC0gMVU7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzazIgPSB+
KG1hc2sxIDw8IGxzYik7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gaW52b2tlPHVp
bnQzMl90PihiZmkzMiwgc3JjLCBkc3QpOworICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9
IGludm9rZTxDQ2FsbFVJbnQzMj4oYmZpMzIsIHNyYywgZHN0KTsKICAgICAgICAgICAgICAgICB1
aW50MzJfdCBsaHMgPSAoKHNyYyAmIG1hc2sxKSA8PCBsc2IpIHwgKGRzdCAmIG1hc2syKTsKICAg
ICAgICAgICAgICAgICBDSEVDS19FUShyaHMsIGxocyk7CiAgICAgICAgICAgICB9CkBAIC0xNDI1
LDcgKzE0MzEsNyBAQCB2b2lkIHRlc3RJbnNlcnRCaXRGaWVsZDY0KCkKICAgICAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgICAgICB1aW50NjRfdCBtYXNrMSA9ICgxVUxMIDw8IHdpZHRoKSAt
IDFVTEw7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbWFzazIgPSB+KG1hc2sxIDw8IGxzYik7
Ci0gICAgICAgICAgICAgICAgdWludDY0X3QgcmhzID0gaW52b2tlPHVpbnQ2NF90PihiZmk2NCwg
c3JjLCBkc3QpOworICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9rZTxDQ2FsbFVJ
bnQ2ND4oYmZpNjQsIHNyYywgZHN0KTsKICAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSAo
KHNyYyAmIG1hc2sxKSA8PCBsc2IpIHwgKGRzdCAmIG1hc2syKTsKICAgICAgICAgICAgICAgICBD
SEVDS19FUShyaHMsIGxocyk7CiAgICAgICAgICAgICB9CkBAIC0xNDU1LDcgKzE0NjEsNyBAQCB2
b2lkIHRlc3RFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0VuZDMyKCkKICAgICAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCBtYXNrMSA9ICgxVSA8PCB3aWR0aCkgLSAx
VTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCBtYXNrMiA9IH5tYXNrMTsKLSAgICAgICAgICAg
ICAgICB1aW50MzJfdCByaHMgPSBpbnZva2U8dWludDMyX3Q+KGJmeGlsMzIsIHNyYywgZHN0KTsK
KyAgICAgICAgICAgICAgICB1aW50MzJfdCByaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KGJmeGls
MzIsIHNyYywgZHN0KTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSAoKHNyYyA+PiBs
c2IpICYgbWFzazEpIHwgKGRzdCAmIG1hc2syKTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShy
aHMsIGxocyk7CiAgICAgICAgICAgICB9CkBAIC0xNDg1LDcgKzE0OTEsNyBAQCB2b2lkIHRlc3RF
eHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0VuZDY0KCkKICAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgICAgICB1aW50NjRfdCBtYXNrMSA9ICgxVUxMIDw8IHdpZHRoKSAtIDFVTEw7CiAg
ICAgICAgICAgICAgICAgdWludDY0X3QgbWFzazIgPSB+bWFzazE7Ci0gICAgICAgICAgICAgICAg
dWludDY0X3QgcmhzID0gaW52b2tlPHVpbnQ2NF90PihiZnhpbDY0LCBzcmMsIGRzdCk7CisgICAg
ICAgICAgICAgICAgdWludDY0X3QgcmhzID0gaW52b2tlPENDYWxsVUludDY0PihiZnhpbDY0LCBz
cmMsIGRzdCk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gKChzcmMgPj4gbHNiKSAm
IG1hc2sxKSB8IChkc3QgJiBtYXNrMik7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEocmhzLCBs
aHMpOwogICAgICAgICAgICAgfQpAQCAtMTUxMCw3ICsxNTE2LDcgQEAgdm9pZCB0ZXN0Q2xlYXJC
aXRGaWVsZDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IG1hc2sgPSAoKDFVIDw8IHdpZHRoKSAt
IDFVKSA8PCBsc2I7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gaW52b2tlPHVpbnQz
Ml90PihiZmMzMiwgc3JjKTsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCByaHMgPSBpbnZva2U8
Q0NhbGxVSW50MzI+KGJmYzMyLCBzcmMpOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9
IHNyYyAmIH5tYXNrOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKHJocywgbGhzKTsKICAgICAg
ICAgICAgIH0KQEAgLTE1MzUsNyArMTU0MSw3IEBAIHZvaWQgdGVzdENsZWFyQml0RmllbGQ2NCgp
CiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgICAgICB1aW50NjRfdCBtYXNrID0gKCgxVUxMIDw8IHdpZHRoKSAtIDFVTEwpIDw8
IGxzYjsKLSAgICAgICAgICAgICAgICB1aW50NjRfdCByaHMgPSBpbnZva2U8dWludDY0X3Q+KGJm
YzY0LCBzcmMpOworICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9rZTxDQ2FsbFVJ
bnQ2ND4oYmZjNjQsIHNyYyk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gc3JjICYg
fm1hc2s7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEocmhzLCBsaHMpOwogICAgICAgICAgICAg
fQpAQCAtMTU1Niw4ICsxNTYyLDggQEAgdm9pZCB0ZXN0Q2xlYXJCaXRzV2l0aE1hc2szMigpCiAK
ICAgICBmb3IgKGF1dG8gbWFzayA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICB1aW50MzJf
dCBzcmMgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7Ci0gICAgICAgIENI
RUNLX0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgc3JjLCBtYXNrKSwgKHNyYyAmIH5tYXNrKSk7
Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgMFUsIG1hc2spLCAwVSk7
CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgc3JjLCBtYXNrKSwg
KHNyYyAmIH5tYXNrKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVz
dCwgMFUsIG1hc2spLCAwVSk7CiAgICAgfQogfQogCkBAIC0xNTc0LDggKzE1ODAsOCBAQCB2b2lk
IHRlc3RDbGVhckJpdHNXaXRoTWFzazY0KCkKIAogICAgIGZvciAoYXV0byBtYXNrIDogaW50NjRP
cGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8
dWludDY0X3Q+OjptYXgoKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0
LCBzcmMsIG1hc2spLCAoc3JjICYgfm1hc2spKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVp
bnQ2NF90Pih0ZXN0LCAwVUxMLCBtYXNrKSwgMFVMTCk7CisgICAgICAgIENIRUNLX0VRKGludm9r
ZTxDQ2FsbFVJbnQ2ND4odGVzdCwgc3JjLCBtYXNrKSwgKHNyYyAmIH5tYXNrKSk7CisgICAgICAg
IENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgMFVMTCwgbWFzayksIDBVTEwpOwog
ICAgIH0KIH0KIApAQCAtMTU5Miw4ICsxNTk4LDggQEAgdm9pZCB0ZXN0T3JOb3QzMigpCiAKICAg
ICBmb3IgKGF1dG8gbWFzayA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICBpbnQzMl90IHNy
YyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKTsKLSAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPGludDMyX3Q+KHRlc3QsIHNyYywgbWFzayksIChzcmMgfCB+bWFzaykpOwotICAg
ICAgICBDSEVDS19FUShpbnZva2U8aW50MzJfdD4odGVzdCwgMFUsIG1hc2spLCB+bWFzayk7Cisg
ICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCBzcmMsIG1hc2spLCAoc3Jj
IHwgfm1hc2spKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QsIDBV
LCBtYXNrKSwgfm1hc2spOwogICAgIH0KIH0KIApAQCAtMTYxMCw4ICsxNjE2LDggQEAgdm9pZCB0
ZXN0T3JOb3Q2NCgpCiAKICAgICBmb3IgKGF1dG8gbWFzayA6IGludDY0T3BlcmFuZHMoKSkgewog
ICAgICAgICBpbnQ2NF90IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgo
KTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHRlc3QsIHNyYywgbWFzayksIChz
cmMgfCB+bWFzaykpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4odGVzdCwgMFVM
TCwgbWFzayksIH5tYXNrKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRl
c3QsIHNyYywgbWFzayksIChzcmMgfCB+bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZva2U8
Q0NhbGxJbnQ2ND4odGVzdCwgMFVMTCwgbWFzayksIH5tYXNrKTsKICAgICB9CiB9CiAKQEAgLTE2
MzksNyArMTY0NSw3IEBAIHZvaWQgdGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIoKQog
ICAgICAgICAgICAgICAgIGludDMyX3QgbWFzazIgPSAxIDw8ICh3aWR0aCAtIDEpOwogICAgICAg
ICAgICAgICAgIGludDMyX3QgYmZzeCA9ICgoYmYgJiBtYXNrMSkgXiBtYXNrMikgLSBtYXNrMjsK
IAotICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQzMl90PihpbnNlcnRTaWduZWRC
aXRmaWVsZEluWmVybzMyLCBzcmMpLCBiZnN4IDw8IGxzYik7CisgICAgICAgICAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsSW50MzI+KGluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIsIHNy
YyksIGJmc3ggPDwgbHNiKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTE2
NjgsNyArMTY3NCw3IEBAIHZvaWQgdGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvNjQoKQog
ICAgICAgICAgICAgICAgIGludDY0X3QgYW1vdW50ID0gQ0hBUl9CSVQgKiBzaXplb2YoYmYpIC0g
d2lkdGg7CiAgICAgICAgICAgICAgICAgaW50NjRfdCBiZnN4ID0gKGJmIDw8IGFtb3VudCkgPj4g
YW1vdW50OwogCi0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KGluc2Vy
dFNpZ25lZEJpdGZpZWxkSW5aZXJvNjQsIHNyYyksIGJmc3ggPDwgbHNiKTsKKyAgICAgICAgICAg
ICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4oaW5zZXJ0U2lnbmVkQml0ZmllbGRJblpl
cm82NCwgc3JjKSwgYmZzeCA8PCBsc2IpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQpAQCAtMTY5OCw3ICsxNzA0LDcgQEAgdm9pZCB0ZXN0RXh0cmFjdFNpZ25lZEJpdGZpZWxkMzIo
KQogICAgICAgICAgICAgICAgIGludDMyX3QgbWFzazIgPSAxIDw8ICh3aWR0aCAtIDEpOwogICAg
ICAgICAgICAgICAgIGludDMyX3QgYmZzeCA9ICgoYmYgJiBtYXNrMSkgXiBtYXNrMikgLSBtYXNr
MjsKIAotICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQzMl90PihleHRyYWN0U2ln
bmVkQml0ZmllbGQzMiwgc3JjKSwgYmZzeCk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPENDYWxsSW50MzI+KGV4dHJhY3RTaWduZWRCaXRmaWVsZDMyLCBzcmMpLCBiZnN4KTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTE3MjcsNyArMTczMyw3IEBAIHZvaWQg
dGVzdEV4dHJhY3RTaWduZWRCaXRmaWVsZDY0KCkKICAgICAgICAgICAgICAgICBpbnQ2NF90IGFt
b3VudCA9IENIQVJfQklUICogc2l6ZW9mKGJmKSAtIHdpZHRoOwogICAgICAgICAgICAgICAgIGlu
dDY0X3QgYmZzeCA9IChiZiA8PCBhbW91bnQpID4+IGFtb3VudDsKIAotICAgICAgICAgICAgICAg
IENIRUNLX0VRKGludm9rZTxpbnQ2NF90PihleHRyYWN0U2lnbmVkQml0ZmllbGQ2NCwgc3JjKSwg
YmZzeCk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KGV4dHJh
Y3RTaWduZWRCaXRmaWVsZDY0LCBzcmMpLCBiZnN4KTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KQEAgLTE3NjIsNyArMTc2OCw3IEBAIHZvaWQgdGVzdEV4dHJhY3RSZWdpc3RlcjMy
KCkKICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbGVmdCA9IGhpZ2hXaWR0aCA9PSBkYXRh
c2l6ZSA/IDBVIDogKG4gJiBtYXNrKSA8PCBoaWdoV2lkdGg7CiAgICAgICAgICAgICAgICAgICAg
IHVpbnQzMl90IHJpZ2h0ID0gKHN0YXRpY19jYXN0PHVpbnQzMl90PihtKSA+PiBsc2IpOwogICAg
ICAgICAgICAgICAgICAgICB1aW50MzJfdCByaHMgPSBsZWZ0IHwgcmlnaHQ7Ci0gICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTx1aW50MzJfdD4oZXh0cmFjdFJlZ2lzdGVy
MzIsIG4sIG0pOworICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8Q0Nh
bGxVSW50MzI+KGV4dHJhY3RSZWdpc3RlcjMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICAgICAg
Q0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAg
LTE3OTYsNyArMTgwMiw3IEBAIHZvaWQgdGVzdEV4dHJhY3RSZWdpc3RlcjY0KCkKICAgICAgICAg
ICAgICAgICAgICAgdWludDY0X3QgbGVmdCA9IGhpZ2hXaWR0aCA9PSBkYXRhc2l6ZSA/IDBVTEwg
OiAobiAmIG1hc2spIDw8IGhpZ2hXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qg
cmlnaHQgPSAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pID4+IGxzYik7CiAgICAgICAgICAgICAg
ICAgICAgIHVpbnQ2NF90IHJocyA9IGxlZnQgfCByaWdodDsKLSAgICAgICAgICAgICAgICAgICAg
dWludDY0X3QgbGhzID0gaW52b2tlPHVpbnQ2NF90PihleHRyYWN0UmVnaXN0ZXI2NCwgbiwgbSk7
CisgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4o
ZXh0cmFjdFJlZ2lzdGVyNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgICAgICBDSEVDS19FUShs
aHMsIHJocyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTgyMiw3ICsx
ODI4LDcgQEAgdm9pZCB0ZXN0QWRkV2l0aExlZnRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50
MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4oYWRkMzIsIG4sIG0pOworICAgICAgICAgICAgICAg
IGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KGFkZDMyLCBuLCBtKTsKICAgICAgICAg
ICAgICAgICBpbnQzMl90IHJocyA9IG4gKyAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAg
IENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTE4NDgsNyArMTg1NCw3IEBA
IHZvaWQgdGVzdEFkZFdpdGhSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQzMl90IGxo
cyA9IGludm9rZTxpbnQzMl90PihhZGQzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50MzJf
dCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4oYWRkMzIsIG4sIG0pOwogICAgICAgICAgICAgICAg
IGludDMyX3QgcmhzID0gbiArIChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tf
RVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMTg3NCw3ICsxODgwLDcgQEAgdm9pZCB0
ZXN0QWRkV2l0aFVuc2lnbmVkUmlnaHRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0
LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDMyX3Qg
bGhzID0gaW52b2tlPHVpbnQzMl90PihhZGQzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWlu
dDMyX3QgbGhzID0gaW52b2tlPENDYWxsVUludDMyPihhZGQzMiwgbiwgbSk7CiAgICAgICAgICAg
ICAgICAgdWludDMyX3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG4pICsgKHN0YXRpY19j
YXN0PHVpbnQzMl90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxo
cywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTE5MDAsNyArMTkwNiw3IEBAIHZvaWQgdGVzdEFk
ZFdpdGhMZWZ0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGlu
dDY0X3Q+KGFkZDY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9r
ZTxDQ2FsbEludDY0PihhZGQ2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCByaHMg
PSBuICsgKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7
CiAgICAgICAgICAgICB9CkBAIC0xOTI2LDcgKzE5MzIsNyBAQCB2b2lkIHRlc3RBZGRXaXRoUmln
aHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAg
ICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8aW50NjRfdD4o
YWRkNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPENDYWxs
SW50NjQ+KGFkZDY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IHJocyA9IG4gKyAo
bSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAg
ICAgICAgIH0KQEAgLTE5NTIsNyArMTk1OCw3IEBAIHZvaWQgdGVzdEFkZFdpdGhVbnNpZ25lZFJp
Z2h0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAg
ICAgICB9KTsKIAotICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTx1aW50NjRf
dD4oYWRkNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxD
Q2FsbFVJbnQ2ND4oYWRkNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9
IHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSArIChzdGF0aWNfY2FzdDx1aW50NjRfdD4obSkgPj4g
YW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAg
ICB9CkBAIC0xOTc4LDcgKzE5ODQsNyBAQCB2b2lkIHRlc3RTdWJXaXRoTGVmdFNoaWZ0MzIoKQog
ICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAg
ICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90PihzdWIzMiwgbiwgbSk7
CisgICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4oc3ViMzIs
IG4sIG0pOwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiAtIChtIDw8IGFtb3VudCk7
CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAt
MjAwNCw3ICsyMDEwLDcgQEAgdm9pZCB0ZXN0U3ViV2l0aFJpZ2h0U2hpZnQzMigpCiAgICAgICAg
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAg
ICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KHN1YjMyLCBuLCBtKTsKKyAgICAg
ICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPihzdWIzMiwgbiwgbSk7
CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMgPSBuIC0gKG0gPj4gYW1vdW50KTsKICAgICAg
ICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMDMwLDcg
KzIwMzYsNyBAQCB2b2lkIHRlc3RTdWJXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIoKQogICAgICAg
ICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAg
ICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8dWludDMyX3Q+KHN1YjMyLCBuLCBtKTsKKyAg
ICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KHN1YjMyLCBu
LCBtKTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50MzJf
dD4obikgLSAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAg
ICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjA1Niw3ICsyMDYy
LDcgQEAgdm9pZCB0ZXN0U3ViV2l0aExlZnRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRf
dCBsaHMgPSBpbnZva2U8aW50NjRfdD4oc3ViNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIGlu
dDY0X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KHN1YjY0LCBuLCBtKTsKICAgICAgICAgICAg
ICAgICBpbnQ2NF90IHJocyA9IG4gLSAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENI
RUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTIwODIsNyArMjA4OCw3IEBAIHZv
aWQgdGVzdFN1YldpdGhSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9
IGludm9rZTxpbnQ2NF90PihzdWI2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBs
aHMgPSBpbnZva2U8Q0NhbGxJbnQ2ND4oc3ViNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGlu
dDY0X3QgcmhzID0gbiAtIChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEo
bGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjEwOCw3ICsyMTE0LDcgQEAgdm9pZCB0ZXN0
U3ViV2l0aFVuc2lnbmVkUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDY0X3QgbGhz
ID0gaW52b2tlPHVpbnQ2NF90PihzdWI2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWludDY0
X3QgbGhzID0gaW52b2tlPENDYWxsVUludDY0PihzdWI2NCwgbiwgbSk7CiAgICAgICAgICAgICAg
ICAgdWludDY0X3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG4pIC0gKHN0YXRpY19jYXN0
PHVpbnQ2NF90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywg
cmhzKTsKICAgICAgICAgICAgIH0KQEAgLTIxMjksOCArMjEzNSw4IEBAIHZvaWQgdGVzdFhvck5v
dDMyKCkKIAogICAgIGZvciAoYXV0byBtYXNrIDogaW50MzJPcGVyYW5kcygpKSB7CiAgICAgICAg
IGludDMyX3Qgc3JjID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpOwotICAg
ICAgICBDSEVDS19FUShpbnZva2U8aW50MzJfdD4odGVzdCwgc3JjLCBtYXNrKSwgKHNyYyBeIH5t
YXNrKSk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQzMl90Pih0ZXN0LCAwVSwgbWFzayks
IH5tYXNrKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QsIHNyYywg
bWFzayksIChzcmMgXiB+bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQz
Mj4odGVzdCwgMFUsIG1hc2spLCB+bWFzayk7CiAgICAgfQogfQogCkBAIC0yMTQ3LDggKzIxNTMs
OCBAQCB2b2lkIHRlc3RYb3JOb3Q2NCgpCiAKICAgICBmb3IgKGF1dG8gbWFzayA6IGludDY0T3Bl
cmFuZHMoKSkgewogICAgICAgICBpbnQ2NF90IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWlu
dDY0X3Q+OjptYXgoKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHRlc3QsIHNy
YywgbWFzayksIChzcmMgXiB+bWFzaykpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRf
dD4odGVzdCwgMFVMTCwgbWFzayksIH5tYXNrKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50NjQ+KHRlc3QsIHNyYywgbWFzayksIChzcmMgXiB+bWFzaykpOworICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxJbnQ2ND4odGVzdCwgMFVMTCwgbWFzayksIH5tYXNrKTsKICAgICB9
CiB9CiAKQEAgLTIxNzAsNyArMjE3Niw3IEBAIHZvaWQgdGVzdFhvck5vdFdpdGhMZWZ0U2hpZnQz
MigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsK
IAotICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KHRlc3QsIG4s
IG0pOworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KHRl
c3QsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiBeIH4obSA8PCBhbW91
bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0K
QEAgLTIxOTYsNyArMjIwMiw3IEBAIHZvaWQgdGVzdFhvck5vdFdpdGhSaWdodFNoaWZ0MzIoKQog
ICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAg
ICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90Pih0ZXN0LCBuLCBtKTsK
KyAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCBu
LCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gXiB+KG0gPj4gYW1vdW50KTsK
ICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0y
MjIyLDcgKzIyMjgsNyBAQCB2b2lkIHRlc3RYb3JOb3RXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIo
KQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAK
LSAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8dWludDMyX3Q+KHRlc3QsIG4s
IG0pOworICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQzMj4o
dGVzdCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KG4pIF4gfihzdGF0aWNfY2FzdDx1aW50MzJfdD4obSkgPj4gYW1vdW50KTsKICAg
ICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMjQ4
LDcgKzIyNTQsNyBAQCB2b2lkIHRlc3RYb3JOb3RXaXRoTGVmdFNoaWZ0NjQoKQogICAgICAgICAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAg
ICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2NF90Pih0ZXN0LCBuLCBtKTsKKyAgICAgICAg
ICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0Pih0ZXN0LCBuLCBtKTsKICAg
ICAgICAgICAgICAgICBpbnQ2NF90IHJocyA9IG4gXiB+KG0gPDwgYW1vdW50KTsKICAgICAgICAg
ICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMjc0LDcgKzIy
ODAsNyBAQCB2b2lkIHRlc3RYb3JOb3RXaXRoUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAg
ICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAg
aW50NjRfdCBsaHMgPSBpbnZva2U8aW50NjRfdD4odGVzdCwgbiwgbSk7CisgICAgICAgICAgICAg
ICAgaW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQ2ND4odGVzdCwgbiwgbSk7CiAgICAgICAg
ICAgICAgICAgaW50NjRfdCByaHMgPSBuIF4gfihtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAg
ICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjMwMCw3ICsyMzA2LDcg
QEAgdm9pZCB0ZXN0WG9yTm90V2l0aFVuc2lnbmVkUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAg
ICAgdWludDY0X3QgbGhzID0gaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCBuLCBtKTsKKyAgICAgICAg
ICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIG4sIG0pOwog
ICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSBe
IH4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAg
Q0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjMyNSw3ICsyMzMxLDcgQEAg
dm9pZCB0ZXN0U3RvcmVQcmVQb3N0SW5kZXgzMigpCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICAg
ICAgcmV0dXJuIGludm9rZTxpbnRwdHJfdD4oc3RvcmUsIHNyYywgYWRkcik7CisgICAgICAgIHJl
dHVybiBpbnZva2U8Q0NhbGxJbnRwdHI+KHN0b3JlLCBzcmMsIGFkZHIpOwogICAgIH07CiAKICAg
ICBpbnQzMl90KiBwMSA9IGJpdHdpc2VfY2FzdDxpbnQzMl90Kj4odGVzdDEoNCkpOwpAQCAtMjM0
Myw3ICsyMzQ5LDcgQEAgdm9pZCB0ZXN0U3RvcmVQcmVQb3N0SW5kZXgzMigpCiAgICAgICAgICAg
ICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnRwdHJfdD4oc3RvcmUsIHNyYywgYWRk
cik7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnRwdHI+KHN0b3JlLCBzcmMsIGFkZHIp
OwogICAgIH07CiAKICAgICBpbnQzMl90KiBwMiA9IGJpdHdpc2VfY2FzdDxpbnQzMl90Kj4odGVz
dDIoNSkpOwpAQCAtMjM2OCw3ICsyMzc0LDcgQEAgdm9pZCB0ZXN0U3RvcmVQcmVQb3N0SW5kZXg2
NCgpCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnRwdHJfdD4o
c3RvcmUsIHNyYywgYWRkcik7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnRwdHI+KHN0
b3JlLCBzcmMsIGFkZHIpOwogICAgIH07CiAKICAgICBpbnQ2NF90KiBwMSA9IGJpdHdpc2VfY2Fz
dDxpbnQ2NF90Kj4odGVzdDEoNCkpOwpAQCAtMjM4Niw3ICsyMzkyLDcgQEAgdm9pZCB0ZXN0U3Rv
cmVQcmVQb3N0SW5kZXg2NCgpCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQp
OwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGlu
dm9rZTxpbnRwdHJfdD4oc3RvcmUsIHNyYywgYWRkcik7CisgICAgICAgIHJldHVybiBpbnZva2U8
Q0NhbGxJbnRwdHI+KHN0b3JlLCBzcmMsIGFkZHIpOwogICAgIH07CiAKICAgICBpbnQ2NF90KiBw
MiA9IGJpdHdpc2VfY2FzdDxpbnQ2NF90Kj4odGVzdDIoNSkpOwpAQCAtMjQxMSw3ICsyNDE3LDcg
QEAgdm9pZCB0ZXN0TG9hZFByZVBvc3RJbmRleDMyKCkKICAgICAgICAgICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKGppdCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAg
ICAgICByZXR1cm4gaW52b2tlPGludDMyX3Q+KGxvYWQsICZudW1zWzFdKTsKKyAgICAgICAgcmV0
dXJuIGludm9rZTxDQ2FsbEludDMyPihsb2FkLCAmbnVtc1sxXSk7CiAgICAgfTsKIAogICAgIENI
RUNLX0VRKHRlc3QxKDQpLCAzKTsKQEAgLTI0MjksNyArMjQzNSw3IEBAIHZvaWQgdGVzdExvYWRQ
cmVQb3N0SW5kZXgzMigpCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwog
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9r
ZTxpbnQzMl90Pihsb2FkLCAmbnVtc1sxXSk7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJ
bnQzMj4obG9hZCwgJm51bXNbMV0pOwogICAgIH07CiAKICAgICBDSEVDS19FUSh0ZXN0Mig1KSwg
Mik7CkBAIC0yNDUzLDcgKzI0NTksNyBAQCB2b2lkIHRlc3RMb2FkUHJlUG9zdEluZGV4NjQoKQog
ICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBpbnZva2U8aW50NjRfdD4obG9hZCwg
Jm51bXNbMV0pOworICAgICAgICByZXR1cm4gaW52b2tlPENDYWxsSW50NjQ+KGxvYWQsICZudW1z
WzFdKTsKICAgICB9OwogCiAgICAgQ0hFQ0tfRVEodGVzdDEoNCksIDMpOwpAQCAtMjQ3MSw3ICsy
NDc3LDcgQEAgdm9pZCB0ZXN0TG9hZFByZVBvc3RJbmRleDY0KCkKICAgICAgICAgICAgIGVtaXRG
dW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0p
OwotICAgICAgICByZXR1cm4gaW52b2tlPGludDY0X3Q+KGxvYWQsICZudW1zWzFdKTsKKyAgICAg
ICAgcmV0dXJuIGludm9rZTxDQ2FsbEludDY0Pihsb2FkLCAmbnVtc1sxXSk7CiAgICAgfTsKIAog
ICAgIENIRUNLX0VRKHRlc3QyKDUpLCAyKTsKQEAgLTI0OTYsNyArMjUwMiw3IEBAIHZvaWQgdGVz
dEFuZExlZnRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50
MzJfdD4oYW5kMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tl
PENDYWxsSW50MzI+KGFuZDMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9
IG4gJiAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsK
ICAgICAgICAgICAgIH0KQEAgLTI1MjIsNyArMjUyOCw3IEBAIHZvaWQgdGVzdEFuZFJpZ2h0U2hp
ZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9
KTsKIAotICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KGFuZDMy
LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMy
PihhbmQzMiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMgPSBuICYgKG0gPj4g
YW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAg
ICB9CkBAIC0yNTQ4LDcgKzI1NTQsNyBAQCB2b2lkIHRlc3RBbmRVbnNpZ25lZFJpZ2h0U2hpZnQz
MigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsK
IAotICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTx1aW50MzJfdD4oYW5kMzIs
IG4sIG0pOworICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQz
Mj4oYW5kMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9IHN0YXRpY19j
YXN0PHVpbnQzMl90PihuKSAmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obSkgPj4gYW1vdW50KTsK
ICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0y
NTc0LDcgKzI1ODAsNyBAQCB2b2lkIHRlc3RBbmRMZWZ0U2hpZnQ2NCgpCiAgICAgICAgICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAg
IGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KGFuZDY0LCBuLCBtKTsKKyAgICAgICAgICAg
ICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0PihhbmQ2NCwgbiwgbSk7CiAgICAg
ICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuICYgKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAg
ICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNjAwLDcgKzI2MDYs
NyBAQCB2b2lkIHRlc3RBbmRSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxo
cyA9IGludm9rZTxpbnQ2NF90PihhbmQ2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRf
dCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQ2ND4oYW5kNjQsIG4sIG0pOwogICAgICAgICAgICAgICAg
IGludDY0X3QgcmhzID0gbiAmIChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tf
RVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjYyNiw3ICsyNjMyLDcgQEAgdm9pZCB0
ZXN0QW5kVW5zaWduZWRSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMg
PSBpbnZva2U8dWludDY0X3Q+KGFuZDY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50NjRf
dCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50NjQ+KGFuZDY0LCBuLCBtKTsKICAgICAgICAgICAgICAg
ICB1aW50NjRfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4obikgJiAoc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCBy
aHMpOwogICAgICAgICAgICAgfQpAQCAtMjY1Miw3ICsyNjU4LDcgQEAgdm9pZCB0ZXN0WG9yTGVm
dFNoaWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAg
ICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90Pih4
b3IzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJ
bnQzMj4oeG9yMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiBeICht
IDw8IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAg
ICAgICAgfQpAQCAtMjY3OCw3ICsyNjg0LDcgQEAgdm9pZCB0ZXN0WG9yUmlnaHRTaGlmdDMyKCkK
ICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0g
ICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4oeG9yMzIsIG4sIG0p
OworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KHhvcjMy
LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gXiAobSA+PiBhbW91bnQp
OwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAg
LTI3MDQsNyArMjcxMCw3IEBAIHZvaWQgdGVzdFhvclVuc2lnbmVkUmlnaHRTaGlmdDMyKCkKICAg
ICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAg
ICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tlPHVpbnQzMl90Pih4b3IzMiwgbiwgbSk7
CisgICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tlPENDYWxsVUludDMyPih4b3Iz
MiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KG4pIF4gKHN0YXRpY19jYXN0PHVpbnQzMl90PihtKSA+PiBhbW91bnQpOwogICAgICAg
ICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI3MzAsNyAr
MjczNiw3IEBAIHZvaWQgdGVzdFhvckxlZnRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRf
dCBsaHMgPSBpbnZva2U8aW50NjRfdD4oeG9yNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIGlu
dDY0X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KHhvcjY0LCBuLCBtKTsKICAgICAgICAgICAg
ICAgICBpbnQ2NF90IHJocyA9IG4gXiAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENI
RUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI3NTYsNyArMjc2Miw3IEBAIHZv
aWQgdGVzdFhvclJpZ2h0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52
b2tlPGludDY0X3Q+KHhvcjY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9
IGludm9rZTxDQ2FsbEludDY0Pih4b3I2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRf
dCByaHMgPSBuIF4gKG0gPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMs
IHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNzgyLDcgKzI3ODgsNyBAQCB2b2lkIHRlc3RYb3JV
bnNpZ25lZFJpZ2h0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9r
ZTx1aW50NjRfdD4oeG9yNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9
IGludm9rZTxDQ2FsbFVJbnQ2ND4oeG9yNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQ2
NF90IHJocyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSBeIChzdGF0aWNfY2FzdDx1aW50NjRf
dD4obSkgPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAg
ICAgICAgICAgICB9CkBAIC0yODA4LDcgKzI4MTQsNyBAQCB2b2lkIHRlc3RPckxlZnRTaGlmdDMy
KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwog
Ci0gICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4ob3IzMiwgbiwg
bSk7CisgICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4ob3Iz
MiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMgPSBuIHwgKG0gPDwgYW1vdW50
KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBA
IC0yODM0LDcgKzI4NDAsNyBAQCB2b2lkIHRlc3RPclJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAg
ICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KG9yMzIsIG4sIG0pOworICAgICAgICAg
ICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KG9yMzIsIG4sIG0pOwogICAg
ICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiB8IChtID4+IGFtb3VudCk7CiAgICAgICAgICAg
ICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjg2MCw3ICsyODY2
LDcgQEAgdm9pZCB0ZXN0T3JVbnNpZ25lZFJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIHVp
bnQzMl90IGxocyA9IGludm9rZTx1aW50MzJfdD4ob3IzMiwgbiwgbSk7CisgICAgICAgICAgICAg
ICAgdWludDMyX3QgbGhzID0gaW52b2tlPENDYWxsVUludDMyPihvcjMyLCBuLCBtKTsKICAgICAg
ICAgICAgICAgICB1aW50MzJfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obikgfCAoc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tf
RVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjg4Niw3ICsyODkyLDcgQEAgdm9pZCB0
ZXN0T3JMZWZ0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGlu
dDY0X3Q+KG9yNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tl
PENDYWxsSW50NjQ+KG9yNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0X3QgcmhzID0g
biB8IChtIDw8IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwog
ICAgICAgICAgICAgfQpAQCAtMjkxMiw3ICsyOTE4LDcgQEAgdm9pZCB0ZXN0T3JSaWdodFNoaWZ0
NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7
CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2NF90PihvcjY0LCBu
LCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0Pihv
cjY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IHJocyA9IG4gfCAobSA+PiBhbW91
bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0K
QEAgLTI5MzgsNyArMjk0NCw3IEBAIHZvaWQgdGVzdE9yVW5zaWduZWRSaWdodFNoaWZ0NjQoKQog
ICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAg
ICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8dWludDY0X3Q+KG9yNjQsIG4sIG0p
OworICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4ob3I2
NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgcmhzID0gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KG4pIHwgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSA+PiBhbW91bnQpOwogICAgICAg
ICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI5ODQsNyAr
Mjk5MCw3IEBAIHZvaWQgdGVzdENvbXBhcmVGbG9hdChNYWNyb0Fzc2VtYmxlcjo6RG91YmxlQ29u
ZGl0aW9uIGNvbmRpdGlvbikKICAgICAgICAgZm9yIChhdXRvIGIgOiBvcGVyYW5kcykgewogICAg
ICAgICAgICAgYXJnMSA9IGE7CiAgICAgICAgICAgICBhcmcyID0gYjsKLSAgICAgICAgICAgIENI
RUNLX0VRKGludm9rZTxpbnQ+KGNvbXBhcmVGbG9hdCksIGludm9rZTxpbnQ+KGNvbXBhcmVGbG9h
dEdlbmVyaWMpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPihjb21w
YXJlRmxvYXQpLCBpbnZva2U8Q0NhbGxJbnQzMj4oY29tcGFyZUZsb2F0R2VuZXJpYykpOwogICAg
ICAgICB9CiAgICAgfQogfQpAQCAtMzAyOCwxMSArMzAzNCwxMyBAQCB2b2lkIHRlc3RNb3ZlQ29u
ZGl0aW9uYWxseUZsb2F0aW5nUG9pbnQoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlvbiBj
b25kaXRpbwogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH07CiAK
KyAgICB1c2luZyBSZXN1bHRUeXBlID0gc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfaW50ZWdy
YWxfdjxTZWxlY3Rpb25UeXBlPiwgQ0NhbGxJbnRlZ2VyPFNlbGVjdGlvblR5cGU+LCBTZWxlY3Rp
b25UeXBlPjsKKwogICAgIGZvciAoYXV0byBhIDogb3BlcmFuZHMpIHsKICAgICAgICAgZm9yIChh
dXRvIGIgOiBvcGVyYW5kcykgewogICAgICAgICAgICAgYXJnMSA9IGE7CiAgICAgICAgICAgICBh
cmcyID0gYjsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxTZWxlY3Rpb25UeXBlPih0ZXN0
Q29kZSksIGV4cGVjdGVkUmVzdWx0KGEsIGIpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9r
ZTxSZXN1bHRUeXBlPih0ZXN0Q29kZSksIGV4cGVjdGVkUmVzdWx0KGEsIGIpKTsKICAgICAgICAg
fQogICAgIH0KIH0KQEAgLTM2MDEsOSArMzYwOSwxMSBAQCB2b2lkIHRlc3RNb3ZlQ29uZGl0aW9u
YWxseUZsb2F0aW5nUG9pbnRTYW1lQXJnKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24g
YwogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH07CiAKKyAgICB1
c2luZyBSZXN1bHRUeXBlID0gc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfaW50ZWdyYWxfdjxT
ZWxlY3Rpb25UeXBlPiwgQ0NhbGxJbnRlZ2VyPFNlbGVjdGlvblR5cGU+LCBTZWxlY3Rpb25UeXBl
PjsKKwogICAgIGZvciAoYXV0byBhIDogb3BlcmFuZHMpIHsKICAgICAgICAgYXJnMSA9IGE7Ci0g
ICAgICAgIENIRUNLX0VRKGludm9rZTxTZWxlY3Rpb25UeXBlPih0ZXN0Q29kZSksIGV4cGVjdGVk
UmVzdWx0KGEpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPFJlc3VsdFR5cGU+KHRlc3RDb2Rl
KSwgZXhwZWN0ZWRSZXN1bHQoYSkpOwogICAgIH0KIH0KIApAQCAtMzc3MCw3ICszNzgwLDcgQEAg
dm9pZCB0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDgoKQogICAgIHVpbnQ4X3QgZGF0YVtdID0gewog
ICAgICAgICAweGZmLCAweGZmLAogICAgIH07Ci0gICAgdWludDMyX3QgcmVzdWx0ID0gaW52b2tl
PHVpbnQzMl90Pih0ZXN0LCAweGZmZmZmZmZmZmZmZmZmZmZVTEwsIDAsIGRhdGEpOworICAgIHVp
bnQzMl90IHJlc3VsdCA9IGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgMHhmZmZmZmZmZmZmZmZm
ZmZmVUxMLCAwLCBkYXRhKTsKICAgICBDSEVDS19FUShyZXN1bHQsIDB4ZmYpOwogICAgIENIRUNL
X0VRKGRhdGFbMF0sIDApOwogICAgIENIRUNLX0VRKGRhdGFbMV0sIDB4ZmYpOwpAQCAtMzc5MSw3
ICszODAxLDcgQEAgdm9pZCB0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDE2KCkKICAgICB1aW50MTZf
dCBkYXRhW10gPSB7CiAgICAgICAgIDB4ZmZmZiwgMHhmZmZmLAogICAgIH07Ci0gICAgdWludDMy
X3QgcmVzdWx0ID0gaW52b2tlPHVpbnQzMl90Pih0ZXN0LCAweGZmZmZmZmZmZmZmZmZmZmZVTEws
IDAsIGRhdGEpOworICAgIHVpbnQzMl90IHJlc3VsdCA9IGludm9rZTxDQ2FsbFVJbnQzMj4odGVz
dCwgMHhmZmZmZmZmZmZmZmZmZmZmVUxMLCAwLCBkYXRhKTsKICAgICBDSEVDS19FUShyZXN1bHQs
IDB4ZmZmZik7CiAgICAgQ0hFQ0tfRVEoZGF0YVswXSwgMCk7CiAgICAgQ0hFQ0tfRVEoZGF0YVsx
XSwgMHhmZmZmKTsKQEAgLTQwNTEsNyArNDA2MSw3IEBAIHZvaWQgdGVzdFN1YjMyQXJnSW1tKCkK
ICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50MzJPcGVyYW5kcygp
KQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIsIHZhbHVlKSwgc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDx1aW50MzJf
dD4odmFsdWUgLSBpbW1lZGlhdGUpKTsKICAgICB9CiB9CiAKQEAgLTQ2ODQsMTEgKzQ2OTQsMTIg
QEAgdm9pZCB0ZXN0UHJvYmVQcmVzZXJ2ZXNHUFJTKCkKICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoY3B1LmdwcihpZCksIHRlc3RXb3JkKGlk
KSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBl
cnM6OmZpcnN0RlBSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVy
KCk7IGlkID0gbmV4dElEKGlkKSkKKyAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVs
cGVyczo6Zmlyc3RGUFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0
ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CiAjaWYgQ1BVKE1JUFMpCiAgICAgICAgICAgICAgICAg
aWYgKCEoaWQgJiAxKSkKICNlbmRpZgogICAgICAgICAgICAgICAgIENIRUNLX0VRKGNwdS5mcHI8
dWludDY0X3Q+KGlkKSwgdGVzdFdvcmQ2NChpZCkpOworICAgICAgICAgICAgfQogICAgICAgICB9
KTsKIAogICAgICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBzdGF0ZS4KQEAgLTUxMzEsOCAr
NTE0Miw4IEBAIHZvaWQgdGVzdEJ5dGVTd2FwKCkKICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoaml0KTsKICAgICAgICAgaml0LnJldCgpOwogICAgIH0pOwotICAgIENIRUNLX0VRKGludm9r
ZTx1aW50NjRfdD4oYnl0ZVN3YXAxNiwgMHhhYWJiY2NkZGVlMDAxMTIyKSwgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KDB4MjIxMSkpOwotICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4oYnl0ZVN3
YXAxNiwgMHhhYWJiY2NkZGVlMDBmZmFhKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4YWFmZikp
OworICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4oYnl0ZVN3YXAxNiwgMHhhYWJiY2Nk
ZGVlMDAxMTIyKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4MjIxMSkpOworICAgIENIRUNLX0VR
KGludm9rZTxDQ2FsbFVJbnQ2ND4oYnl0ZVN3YXAxNiwgMHhhYWJiY2NkZGVlMDBmZmFhKSwgc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KDB4YWFmZikpOwogCiAgICAgYXV0byBieXRlU3dhcDMyID0gY29t
cGlsZShbXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9n
dWUoaml0KTsKQEAgLTUxNDEsOCArNTE1Miw4IEBAIHZvaWQgdGVzdEJ5dGVTd2FwKCkKICAgICAg
ICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgaml0LnJldCgpOwogICAgIH0p
OwotICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4oYnl0ZVN3YXAzMiwgMHhhYWJiY2NkZGVl
MDAxMTIyKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4MjIxMTAwZWUpKTsKLSAgICBDSEVDS19F
UShpbnZva2U8dWludDY0X3Q+KGJ5dGVTd2FwMzIsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRp
Y19jYXN0PHVpbnQ2NF90PigweGFhZmYwMGVlKSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxs
VUludDY0PihieXRlU3dhcDMyLCAweGFhYmJjY2RkZWUwMDExMjIpLCBzdGF0aWNfY2FzdDx1aW50
NjRfdD4oMHgyMjExMDBlZSkpOworICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4oYnl0
ZVN3YXAzMiwgMHhhYWJiY2NkZGVlMDBmZmFhKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4YWFm
ZjAwZWUpKTsKIAogICAgIGF1dG8gYnl0ZVN3YXA2NCA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVy
cyYgaml0KSB7CiAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CkBAIC01MTUxLDgg
KzUxNjIsOCBAQCB2b2lkIHRlc3RCeXRlU3dhcCgpCiAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxv
Z3VlKGppdCk7CiAgICAgICAgIGppdC5yZXQoKTsKICAgICB9KTsKLSAgICBDSEVDS19FUShpbnZv
a2U8dWludDY0X3Q+KGJ5dGVTd2FwNjQsIDB4YWFiYmNjZGRlZTAwMTEyMiksIHN0YXRpY19jYXN0
PHVpbnQ2NF90PigweDIyMTEwMGVlZGRjY2JiYWEpKTsKLSAgICBDSEVDS19FUShpbnZva2U8dWlu
dDY0X3Q+KGJ5dGVTd2FwNjQsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2
NF90PigweGFhZmYwMGVlZGRjY2JiYWEpKTsKKyAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50
NjQ+KGJ5dGVTd2FwNjQsIDB4YWFiYmNjZGRlZTAwMTEyMiksIHN0YXRpY19jYXN0PHVpbnQ2NF90
PigweDIyMTEwMGVlZGRjY2JiYWEpKTsKKyAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+
KGJ5dGVTd2FwNjQsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2NF90Pigw
eGFhZmYwMGVlZGRjY2JiYWEpKTsKICNlbmRpZgogfQogCkBAIC01MjM2LDcgKzUyNDcsNyBAQCB2
b2lkIHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7CiAgICAgICAgIHVpbnQ2NF90IGFycmF5W10gPSB7IFVJTlQ2NF9NQVggLSAxLCBVSU5UNjRf
TUFYIC0gMiwgVUlOVDY0X01BWCAtIDMsIFVJTlQ2NF9NQVggLSA0LCBVSU5UNjRfTUFYIC0gNSwg
fTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCBhcnJheSwgc3RhdGlj
X2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQ2NF9NQVggLSAzKTsKKyAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lz
dGVyPigzKSksIFVJTlQ2NF9NQVggLSAzKTsKICAgICB9CiAgICAgewogICAgICAgICBhdXRvIHRl
c3QgPSBjb21waWxlKFs9XShDQ2FsbEhlbHBlcnMmIGppdCkgewpAQCAtNTI0Niw3ICs1MjU3LDcg
QEAgdm9pZCB0ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgIH0pOwogICAgICAgICB1aW50NjRfdCBhcnJheVtdID0geyBVSU5UNjRfTUFYIC0gMSwgVUlO
VDY0X01BWCAtIDIsIFVJTlQ2NF9NQVggLSAzLCBVSU5UNjRfTUFYIC0gNCwgVUlOVDY0X01BWCAt
IDUsIH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdCwgYXJyYXksIHN0
YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBVSU5UNjRfTUFYIC0gNSk7CisgICAgICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVS
ZWdpc3Rlcj4oMykpLCBVSU5UNjRfTUFYIC0gNSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTUyNTks
NyArNTI3MCw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDMyX3QgYXJyYXlbXSA9IHsgVUlOVDMyX01B
WCAtIDEsIFVJTlQzMl9NQVggLSAyLCBVSU5UMzJfTUFYIC0gMywgVUlOVDMyX01BWCAtIDQsIFVJ
TlQzMl9NQVggLSA1LCB9OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHRlc3Qs
IGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDMyX01BWCAtIDMpOwor
ICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNf
Y2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDMyX01BWCAtIDMpOwogICAgIH0KICAgICB7CiAg
ICAgICAgIGF1dG8gdGVzdCA9IGNvbXBpbGUoWz1dKENDYWxsSGVscGVycyYgaml0KSB7CkBAIC01
MjY5LDcgKzUyODAsNyBAQCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAgICAgIGpp
dC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVpbnQzMl90IGFycmF5W10gPSB7IFVJTlQz
Ml9NQVggLSAxLCBVSU5UMzJfTUFYIC0gMiwgVUlOVDMyX01BWCAtIDMsIFVJTlQzMl9NQVggLSA0
LCBVSU5UMzJfTUFYIC0gNSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0
ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQzMl9NQVggLSA1
KTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3Rh
dGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQzMl9NQVggLSA1KTsKICAgICB9CiAKICAg
ICAvLyBsb2FkMTYKQEAgLTUyODEsNyArNTI5Miw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgo
KQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDE2X3Qg
YXJyYXlbXSA9IHsgVUlOVDE2X01BWCAtIDEsIFVJTlQxNl9NQVggLSAyLCBVSU5UMTZfTUFYIC0g
MywgVUlOVDE2X01BWCAtIDQsIFVJTlQxNl9NQVggLSA1LCB9OwotICAgICAgICBDSEVDS19FUShp
bnZva2U8dWludDMyX3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMp
KSwgVUlOVDE2X01BWCAtIDMpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+
KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDE2X01BWCAt
IDMpOwogICAgIH0KICAgICB7CiAgICAgICAgIGF1dG8gdGVzdCA9IGNvbXBpbGUoWz1dKENDYWxs
SGVscGVycyYgaml0KSB7CkBAIC01MjkxLDcgKzUzMDIsNyBAQCB2b2lkIHRlc3RMb2FkQmFzZUlu
ZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVpbnQx
Nl90IGFycmF5W10gPSB7IFVJTlQxNl9NQVggLSAxLCBVSU5UMTZfTUFYIC0gMiwgVUlOVDE2X01B
WCAtIDMsIFVJTlQxNl9NQVggLSA0LCBzdGF0aWNfY2FzdDx1aW50MTZfdD4oLTEpLCB9OwotICAg
ICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxV
Q1BVUmVnaXN0ZXI+KDMpKSwgMHhmZmZmKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxs
VUludDMyPih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIDB4ZmZm
Zik7CiAgICAgfQogCiAgICAgLy8gbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMgpAQCAtNTMwMyw3ICs1
MzE0LDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7
CiAgICAgICAgIH0pOwogICAgICAgICB1aW50MTZfdCBhcnJheVtdID0geyAxLCAyLCAweDdmZjMs
IDQsIDUsIH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgYXJyYXks
IHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCAweDdmZjMpOworICAgICAgICBDSEVDS19F
UShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0
ZXI+KDMpKSwgMHg3ZmYzKTsKICAgICB9CiAgICAgewogICAgICAgICBhdXRvIHRlc3QgPSBjb21w
aWxlKFs9XShDQ2FsbEhlbHBlcnMmIGppdCkgewpAQCAtNTMxMyw3ICs1MzI0LDcgQEAgdm9pZCB0
ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwog
ICAgICAgICB1aW50MTZfdCBhcnJheVtdID0geyBVSU5UMTZfTUFYIC0gMSwgVUlOVDE2X01BWCAt
IDIsIFVJTlQxNl9NQVggLSAzLCBVSU5UMTZfTUFYIC0gNCwgc3RhdGljX2Nhc3Q8dWludDE2X3Q+
KC0xKSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwg
c3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIHN0YXRpY19jYXN0PHVpbnQzMl90PigtMSkp
OworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBzdGF0
aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KC0xKSk7CiAg
ICAgfQogCiAgICAgLy8gbG9hZDgKQEAgLTUzMjUsNyArNTMzNiw3IEBAIHZvaWQgdGVzdExvYWRC
YXNlSW5kZXgoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAg
dWludDhfdCBhcnJheVtdID0geyBVSU5UOF9NQVggLSAxLCBVSU5UOF9NQVggLSAyLCBVSU5UOF9N
QVggLSAzLCBVSU5UOF9NQVggLSA0LCBVSU5UOF9NQVggLSA1LCB9OwotICAgICAgICBDSEVDS19F
UShpbnZva2U8dWludDMyX3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+
KDMpKSwgVUlOVDhfTUFYIC0gMyk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQz
Mj4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBVSU5UOF9NQVgg
LSAzKTsKICAgICB9CiAgICAgewogICAgICAgICBhdXRvIHRlc3QgPSBjb21waWxlKFs9XShDQ2Fs
bEhlbHBlcnMmIGppdCkgewpAQCAtNTMzNSw3ICs1MzQ2LDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJ
bmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAgICB1aW50
OF90IGFycmF5W10gPSB7IFVJTlQ4X01BWCAtIDEsIFVJTlQ4X01BWCAtIDIsIFVJTlQ4X01BWCAt
IDMsIFVJTlQ4X01BWCAtIDQsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KC0xKSwgfTsKLSAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJl
Z2lzdGVyPigzKSksIDB4ZmYpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+
KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgMHhmZik7CiAgICAg
fQogCiAgICAgLy8gbG9hZDhTaWduZWRFeHRlbmRUbzMyCkBAIC01MzQ3LDcgKzUzNTgsNyBAQCB2
b2lkIHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7CiAgICAgICAgIHVpbnQ4X3QgYXJyYXlbXSA9IHsgMSwgMiwgMHg3MywgNCwgNSwgfTsKLSAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8
VUNQVVJlZ2lzdGVyPigzKSksIDB4NzMpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxV
SW50MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgMHg3Myk7
CiAgICAgfQogICAgIHsKICAgICAgICAgYXV0byB0ZXN0ID0gY29tcGlsZShbPV0oQ0NhbGxIZWxw
ZXJzJiBqaXQpIHsKQEAgLTUzNTcsNyArNTM2OCw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgo
KQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDhfdCBh
cnJheVtdID0geyBVSU5UOF9NQVggLSAxLCBVSU5UOF9NQVggLSAyLCBVSU5UOF9NQVggLSAzLCBV
SU5UOF9NQVggLSA0LCBzdGF0aWNfY2FzdDx1aW50OF90PigtMSksIH07Ci0gICAgICAgIENIRUNL
X0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rl
cj4oMykpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oLTEpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigz
KSksIHN0YXRpY19jYXN0PHVpbnQzMl90PigtMSkpOwogICAgIH0KIAogICAgIC8vIGxvYWREb3Vi
bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDQx
ZjRiZDMxZjgxMzQ1MjRlZmNhNjZiYWNmNGQwODVmNTJjYWIyMDMuLmI3ZjYzMTA4ZDI5NGMwN2Ji
MTlkZmNmZmI5ODJmNGU5MGE0MmY0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcApAQCAtNDAwLDcgKzQwMCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25PYmplY3RBc3NpZ25VbnR5cGVkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsCiAgICAgb2JqZWN0QXNzaWduR2VuZXJpYyhnbG9iYWxPYmplY3QsIHZtLCB0YXJnZXQsIHNv
dXJjZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVUaGlz
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0
cnVjdG9yLCB1aW50MzJfdCBpbmxpbmVDYXBhY2l0eSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ3JlYXRlVGhpcywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgQ0NhbGxVSW50MzIgaW5saW5lQ2FwYWNpdHkp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03NjAsNyArNzYwLDcgQEAgQUxX
QVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZXRCeVZhbENlbGxJbnQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVk0mIHYKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
YmFzZSkuZ2V0KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluZGV4KSkpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RJbnQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IGJhc2UsIGludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldEJ5VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBDQ2FsbEludDMyIGluZGV4KSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNzY5LDcgKzc2OSw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9iamVjdEludCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iCiAgICAgcmV0dXJuIGdldEJ5VmFsQ2VsbEludChnbG9iYWxPYmplY3QsIHZtLCBiYXNl
LCBpbmRleCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZh
bFN0cmluZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1N0cmluZyogYmFzZSwgaW50MzJfdCBpbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlWYWxTdHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGJhc2UsIENDYWxsSW50MzIgaW5kZXgpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC04NTgsNyArODU4LDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbE5vblN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2IKICAgICBwdXRCeVZhbENlbGxJbnRlcm5hbDxmYWxzZSwgZmFsc2U+
KGdsb2JhbE9iamVjdCwgdm0sIGNlbGwsIHByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlW
YWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsSW50MzIgaW5kZXgsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTg3NCw3
ICs4NzQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlv
bmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYgogICAgICAgICBvYmplY3QsIGdsb2Jh
bE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtODkwLDcgKzg5MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHCiAgICAgICAgIG9i
amVjdCwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90
IGluZGV4LCBkb3VibGUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbEludDMyIGluZGV4LCBk
b3VibGUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC05MDgsNyAr
OTA4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsICgKICAgICAgICAgb2JqZWN0LCBnbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFy
cmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRz
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwgZG91YmxlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtOTI2LDcgKzkyNiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2
b2lkCiAgICAgICAgIG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBp
bmRleCksIGpzVmFsdWUsIHNsb3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3Qg
aW5kZXgsIGRvdWJsZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsSW50MzIgaW5k
ZXgsIGRvdWJsZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTk0
Myw3ICs5NDMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91Ymxl
QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdgogICAgIENvbW1vblNsb3dQYXRo
czo6cHV0RGlyZWN0V2l0aFJlaWZ5KHZtLCBnbG9iYWxPYmplY3QsIG9iamVjdCwgSWRlbnRpZmll
cjo6ZnJvbSh2bSwgaW5kZXgpLCBqc1ZhbHVlLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNO
b25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
b2JqZWN0LCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25T
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2Jq
ZWN0LCBDQ2FsbEludDMyIGluZGV4LCBkb3VibGUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0xMDE2LDcgKzEwMTYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3ltYm9sTm9uU3RyaWN0LCB2b2lkLCAoSlNH
bAogICAgIHB1dEJ5VmFsQ2VsbEludGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZt
LCBjZWxsLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25k
QXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5
b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbEludDMyIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMDMwLDcgKzEw
MzAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RC
ZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKAogICAgIENvbW1vblNsb3dQYXRoczo6cHV0
RGlyZWN0V2l0aFJlaWZ5KHZtLCBnbG9iYWxPYmplY3QsIG9iamVjdCwgSWRlbnRpZmllcjo6ZnJv
bSh2bSwgaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFy
cmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJl
eW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNPYmplY3QqIG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTA2NSw3
ICsxMDY1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERv
dWJsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGFycmF5LT5sZW5ndGgoKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNBcnJheSogYXJyYXksIHZvaWQqIGJ1ZmZlciwg
aW50MzJfdCBlbGVtZW50Q291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIsIENDYWxsSW50MzIgZWxlbWVu
dENvdW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTA5Miw3ICsxMDky
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKGFycmF5LT5sZW5ndGgoKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNBcnJheSogYXJyYXksIHZvaWQqIGJ1ZmZlciwg
aW50MzJfdCBlbGVtZW50Q291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFycmF5UHVzaERvdWJsZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIsIENDYWxsSW50MzIg
ZWxlbWVudENvdW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTI4MCw3
ICsxMjgwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3Ry
aW5nTm9SYWRpeCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2IKICAgICByZXR1cm4gcGFyc2VJbnRS
ZXN1bHQocGFyc2VJbnQodmlld1dpdGhTdHJpbmcudmlldywgMCkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZywgaW50MzJfdCBy
YWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcq
IHN0cmluZywgQ0NhbGxJbnQzMiByYWRpeCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTEyOTMsNyArMTI5Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QYXJzZUludFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjCiAgICAgcmV0
dXJuIHBhcnNlSW50UmVzdWx0KHBhcnNlSW50KHZpZXdXaXRoU3RyaW5nLnZpZXcsIHJhZGl4KSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdmFsdWUsIGludDMyX3QgcmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblBhcnNlSW50R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgQ0NhbGxJbnQzMiByYWRpeCkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEzMDQsNyArMTMwNCw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplCiAgICAgfSk7CiB9CiAgICAgICAgIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBKU1N0cmluZyog
aW5wdXQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJp
bmcsIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cE9iamVj
dCogcmVnRXhwT2JqZWN0LCBKU1N0cmluZyogaW5wdXQpKQogewogICAgIFN1cGVyU2FtcGxlclNj
b3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTEzMTUsNyArMTMxNSw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0U3RyaW5nLCBzaXpl
X3QsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIHJlZ0V4cE9iamVjdC0+dGVzdElu
bGluZShnbG9iYWxPYmplY3QsIGlucHV0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblJlZ0V4cFRlc3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJn
dW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3QsIEND
YWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cE9iamVjdCogcmVn
RXhwT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpKQogewogICAgIFN1cGVy
U2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTEzMzEsNyAr
MTMzMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0LCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIHJlZ0V4cE9iamVj
dC0+dGVzdElubGluZShnbG9iYWxPYmplY3QsIGlucHV0KTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEFyZ3VtZW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25SZWdFeHBUZXN0R2VuZXJpYywgQ0NhbGxTaXplLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRB
cmd1bWVudCkpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFs
c2UpOwogICAgIApAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkJpdFhvckhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmoK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50OjpiaXR3aXNlWG9yKGdsb2JhbE9i
amVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbCwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXFDZWxsLCBDQ2FsbFNpemUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTA4LDcgKzE1MDgsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbCwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OnN0cmljdEVxdWFsRm9y
Q2VsbHMoZ2xvYmFsT2JqZWN0LCBvcDEsIG9wMik7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25TYW1lVmFsdWUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGFyZzEsIEVuY29kZWRKU1ZhbHVlIGFyZzIpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNhbWVWYWx1ZSwgQ0NhbGxTaXplLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYXJnMSwgRW5jb2RlZEpTVmFs
dWUgYXJnMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2MDksNyArMTYw
OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbFdpdGhUaGlz
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoYmFzZVZhbHVlLmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5
LCBzbG90KSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJ
ZFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXNTdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjIxLDcgKzE2MjEsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqCiAgICAgcHV0V2l0aFRoaXM8dHJ1ZT4oZ2xvYmFsT2JqZWN0LCBlbmNvZGVk
QmFzZSwgZW5jb2RlZFRoaXMsIGVuY29kZWRWYWx1ZSwgaWRlbnQpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHVpbnRwdHJf
dCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeUlkV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjY5LDcgKzE2
NjksNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGRlZmluZURhdGFQcm9wZXJ0eShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdgogICAgICAgICBiYXNlLT5tZXRob2RUYWJs
ZSh2bSktPmRlZmluZU93blByb3BlcnR5KGJhc2UsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yLCB0cnVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHksIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIENDYWxsSW50MzIgYXR0
cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2ODIsNyArMTY4
Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVy
dHksIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgZGVmaW5lRGF0YVByb3BlcnR5KGds
b2JhbE9iamVjdCwgdm0sIGJhc2UsIHByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSksIGF0dHJpYnV0ZXMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEpTU3RyaW5nKiBwcm9wZXJ0eSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBKU1N0cmluZyogcHJvcGVy
dHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGVzKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZywg
dm9pZCwgKEpTR2xvYmFsT2JqZWMKICAgICBkZWZpbmVEYXRhUHJvcGVydHkoZ2xvYmFsT2JqZWN0
LCB2bSwgYmFzZSwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwg
YXR0cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZp
bmVEYXRhUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJZGVudCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVk
U3RyaW5nSW1wbCogcHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxJ
bnQzMiBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTcw
Myw3ICsxNzAzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURh
dGFQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWwKICAgICBkZWZpbmVEYXRhUHJv
cGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgcHJv
cGVydHkpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgYXR0cmlidXRlcyk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTeW1i
b2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwg
U3ltYm9sKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0
dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQ
cm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBiYXNlLCBTeW1ib2wqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTE3MjEsNyArMTcyMSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgZGVmaW5lQWNj
ZXNzb3JQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWCiAgICAgICAgIGJh
c2UtPm1ldGhvZFRhYmxlKHZtKS0+ZGVmaW5lT3duUHJvcGVydHkoYmFzZSwgZ2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHRydWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkUHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIGludDMyX3Qg
YXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNj
ZXNzb3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEpTT2JqZWN0KiBnZXR0
ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3MzMsNyArMTczMyw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqCiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBi
YXNlLCBwcm9wZXJ0eU5hbWUsIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJp
bmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwg
SlNTdHJpbmcqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBp
bnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRl
ZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU09iamVjdCogYmFzZSwgSlNTdHJpbmcqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0
dGVyLCBKU09iamVjdCogc2V0dGVyLCBDQ2FsbEludDMyIGF0dHJpYnV0ZXMpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNzQ1LDcgKzE3NDUsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9pZCwg
KEpTR2xvYmFsTwogICAgIGRlZmluZUFjY2Vzc29yUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwg
YmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0ZXIsIHNldHRlciwgYXR0cmlidXRlcyk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3Ry
aW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
YmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09i
amVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVkU3RyaW5n
SW1wbCogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIENDYWxs
SW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3
NTMsNyArMTc1Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVB
Y2Nlc3NvclByb3BlcnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsCiAgICAgZGVmaW5lQWNjZXNz
b3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBJZGVudGlmaWVyOjpmcm9tVWlkKHZt
LCBwcm9wZXJ0eSksIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTeW1ib2wsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgU3ltYm9s
KiBwcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBh
dHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nl
c3NvclByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIGJhc2UsIFN5bWJvbCogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2Jq
ZWN0KiBzZXR0ZXIsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTE3NjEsNyArMTc2MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxP
CiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBJZGVu
dGlmaWVyOjpmcm9tVWlkKHByb3BlcnR5LT5wcml2YXRlTmFtZSgpKSwgZ2V0dGVyLCBzZXR0ZXIs
IGF0dHJpYnV0ZXMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBh
cnJheVN0cnVjdHVyZSwgdm9pZCogYnVmZmVyLCBzaXplX3Qgc2l6ZSkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgdm9pZCogYnVmZmVyLCBDQ2Fs
bFNpemUgc2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3ODAsNyAr
MTc4MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdFbXB0eUFycmF5
LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyCiAgICAgcmV0dXJuIGJpdHdpc2VfY2Fz
dDxjaGFyKj4oSlNBcnJheTo6Y3JlYXRlKHZtLCBhcnJheVN0cnVjdHVyZSkpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSwgY2hhciosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCBp
bnQzMl90IHNpemUsIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIENDYWxsSW50MzIgc2l6ZSwg
QnV0dGVyZmx5KiBidXR0ZXJmbHkpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0xODA1LDcgKzE4MDUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBi
aXR3aXNlX2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplQW5kSGludCwgY2hhciosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCBpbnQzMl90IHNpemUs
IGludDMyX3QgdmVjdG9yTGVuZ3RoSGludCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemVBbmRIaW50LCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1
cmUsIENDYWxsSW50MzIgc2l6ZSwgQ0NhbGxJbnQzMiB2ZWN0b3JMZW5ndGhIaW50LCBCdXR0ZXJm
bHkqIGJ1dHRlcmZseSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4NDQs
NyArMTg0NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheUJ1
ZmZlciwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDhBcnJheVdpdGhT
aXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxl
bmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MTg2MCw3ICsxODYwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0lu
dDhBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE8KICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFy
Z3VtZW50czxKU0ludDhBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1
ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdJbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hhciogdmVj
dG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0
aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg3Niw3ICsxODc2LDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAo
SlNHbG9iYWwKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0ludDE2QXJyYXk+KGdsb2JhbE9iamVj
dCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MzJBcnJheVdpdGhTaXplLCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBp
bnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3SW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBsZW5ndGgsIGNo
YXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4OTIsNyAr
MTg5Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQzMkFycmF5
V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8
SlNJbnQzMkFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBz
dGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d1VpbnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4QXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0xOTA4LDcgKzE5MDgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2Jh
bAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlw
ZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWludDhBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhTaXplLCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBp
bnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVu
Z3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0x
OTI0LDcgKzE5MjQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWlu
dDhDbGFtcGVkQXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSgogICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJn
dW1lbnRzPEpTVWludDhDbGFtcGVkQXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNv
ZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBj
aGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQx
NkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTk0MCw3ICsxOTQwLDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50
LCBjaGFyKiwgKEpTR2xvYmEKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29u
c3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU1VpbnQxNkFycmF5Pihn
bG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQzMkFycmF5V2l0
aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0
ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTE5NTYsNyArMTk1Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
ZXdVaW50MzJBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhCiAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dp
dGhBcmd1bWVudHM8SlNVaW50MzJBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29k
ZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBj
aGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0
MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5NzIsNyArMTk3Miw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoT25lQXJndW1l
bnQsIGNoYXIqLCAoSlNHbG9iCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNv
bnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNGbG9hdDMyQXJyYXk+
KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5
V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0NhbGxJ
bnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0xOTg4LDcgKzE5ODgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3RmxvYXQ2NEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYgogICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZp
ZXdXaXRoQXJndW1lbnRzPEpTRmxvYXQ2NEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwg
ZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0JpZ0ludDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVu
Z3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0JpZ0ludDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0
b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDA0LDcgKzIwMDQsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnSW50NjRBcnJheVdpdGhP
bmVBcmd1bWVudCwgY2hhciosIChKU0dsbwogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNo
YXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTQmlnSW50
NjRBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpu
dWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdV
aW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnVWludDY0QXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yMDU3LDEzICsyMDU3LDEzIEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25DcmVhdGVBY3RpdmF0aW9uRGlyZWN0LCBKU0NlbGwqLCAoVk0qIHZt
UG9pbnRlCiAgICAgcmV0dXJuIEpTTGV4aWNhbEVudmlyb25tZW50OjpjcmVhdGUodm0sIHN0cnVj
dHVyZSwgc2NvcGUsIHRhYmxlLCBpbml0aWFsVmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzLCBKU0NlbGwqLCAoVk0qIHZt
UG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVpbnQzMl90IGxlbmd0aCwgdWludDMyX3Qg
bWluQ2FwYWNpdHkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURp
cmVjdEFyZ3VtZW50cywgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBDQ2FsbFVJbnQzMiBsZW5ndGgsIENDYWxsVUludDMyIG1pbkNhcGFjaXR5KSkKIHsKICAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgRGlyZWN0QXJndW1lbnRzKiByZXN1bHQgPSBE
aXJlY3RBcmd1bWVudHM6OmNyZWF0ZSgKLSAgICAgICAgdm0sIHN0cnVjdHVyZSwgbGVuZ3RoLCBz
dGQ6Om1heChsZW5ndGgsIG1pbkNhcGFjaXR5KSk7CisgICAgICAgIHZtLCBzdHJ1Y3R1cmUsIGxl
bmd0aCwgc3RkOjptYXg8dWludDMyX3Q+KGxlbmd0aCwgbWluQ2FwYWNpdHkpKTsKICAgICAvLyBU
aGUgY2FsbGVyIHdpbGwgc3RvcmUgdG8gdGhpcyBvYmplY3Qgd2l0aG91dCBiYXJyaWVycy4gTW9z
dCBsaWtlbHksIGF0IHRoaXMgcG9pbnQsIHRoaXMgaXMKICAgICAvLyBzdGlsbCBhIHlvdW5nIG9i
amVjdCBhbmQgc28gbm8gYmFycmllcnMgYXJlIG5lZWRlZC4gQnV0IGl0J3MgZ29vZCB0byBiZSBj
YXJlZnVsIGFueXdheSwKICAgICAvLyBzaW5jZSB0aGUgR0Mgc2hvdWxkIGJlIGFsbG93ZWQgdG8g
ZG8gY3JhenkgKGxpa2UgcHJldGVudXJpbmcsIGZvciBleGFtcGxlKS4KQEAgLTIwNzEsNyArMjA3
MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1
bWVudHMsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9u
KiBjYWxsZWUsIEpTTGV4aWNhbEVudmlyb25tZW50KiBzY29wZSkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ2lzdGVyKiBh
cmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQzMiBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxlZSwgSlNM
ZXhpY2FsRW52aXJvbm1lbnQqIHNjb3BlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjA4NSw3ICsyMDg1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWMKICAgICAgICAg
dm0sIHN0cnVjdHVyZSwgYXJndW1lbnRTdGFydCwgbGVuZ3RoLCBjYWxsZWUsIHRhYmxlLCBzY29w
ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRB
cmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwg
SlNGdW5jdGlvbiogY2FsbGVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
cmVhdGVDbG9uZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIENDYWxs
VUludDMyIGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMjA5NCw3ICsyMDk0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWMK
ICAgICAgICAgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGFyZ3VtZW50U3RhcnQsIGxlbmd0aCwg
Y2FsbGVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUFy
Z3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBhcmd1bWVudENvdW50KSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0ZXJmbHksIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdpc3RlciogYXJndW1lbnRT
dGFydCwgQ0NhbGxVSW50MzIgYXJndW1lbnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTIxMTEsNyArMjExMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iCiAg
ICAgcmV0dXJuIGJ1dHRlcmZseTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSogdm1Qb2lu
dGVyLCBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSwgSlNGdW5jdGlvbiogY2FsbGVl
LCB1aW50MzJfdCBhcmd1bWVudENvdW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZtUG9p
bnRlciwgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNhbGxl
ZSwgQ0NhbGxVSW50MzIgYXJndW1lbnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRl
cjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0yMTQxLDcgKzIxNDEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKgogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9u
ZWRBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgSW5saW5lQ2Fs
bEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNhbGxlZSwgdWludDMyX3QgYXJn
dW1lbnRDb3VudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xv
bmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIElubGluZUNh
bGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIENDYWxsVUludDMy
IGFyZ3VtZW50Q291bnQpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE3MCw3ICsyMTcw
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3Vt
ZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSoKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1bnNp
Z25lZCBudW1iZXJPZlBhcmFtc1RvU2tpcCwgdW5zaWduZWQgYXJyYXlTaXplKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIENDYWxsVUludDMy
IG51bWJlck9mUGFyYW1zVG9Ta2lwLCBDQ2FsbFVJbnQzMiBhcnJheVNpemUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTgyLDcgKzIxODIsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYgogICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheShnbG9iYWxPYmplY3QsIHN0cnVj
dHVyZSwgYXJndW1lbnRzVG9Db3B5UmVnaW9uLCBhcnJheVNpemUpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mSXNPYmplY3QsIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc09iamVjdCwgQ0NhbGxTaXplLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yMTkzLDcgKzIxOTMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVHlwZU9mSXNPYmplY3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQog
ICAgIHJldHVybiBqc1R5cGVvZklzT2JqZWN0KGdsb2JhbE9iamVjdCwgb2JqZWN0KTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklzRnVuY3Rpb24sIHNpemVf
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc0Z1bmN0aW9uLCBDQ2FsbFNpemUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyMDQsNyArMjIwNCw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc0Z1bmN0aW9uLCBzaXplX3QsIChKU0dsb2Jh
bE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIGpzVHlwZW9mSXNGdW5jdGlvbihnbG9iYWxPYmplY3Qs
IG9iamVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RJ
c0NhbGxhYmxlLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IG9iamVjdCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0SXNDYWxs
YWJsZSwgQ0NhbGxTaXplLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBv
YmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMjE1LDcgKzIyMTUs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0SXNDYWxsYWJsZSwg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBvYmplY3QtPmlzQ2FsbGFi
bGUodm0pOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXNDb25zdHJ1
Y3Rvciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzQ29uc3RydWN0
b3IsIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjI0OSw3ICsy
MjQ5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxl
UHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2kKICAgICAgICAgQnV0dGVyZmx5OjpjcmVh
dGVVbmluaXRpYWxpemVkKHZtLCBudWxscHRyLCAwLCBpbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHks
IGZhbHNlLCAwKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxv
Y2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBzaXplX3Qg
bmV3U2l6ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1w
bGVQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxTaXplIG5ld1Np
emUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjI3MCw3ICsyMjcwLDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFn
ZVdpdGhJbml0aWFsQ2FwYWMKICAgICAgICAgb2JqZWN0LT5hbGxvY2F0ZU1vcmVPdXRPZkxpbmVT
dG9yYWdlKHZtLCAwLCBpbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHkpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwg
Y2hhciosIChWTSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVy
dHlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxs
U2l6ZSBuZXdTaXplKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzMzYsNyArMjMzNiw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnN1cmVBcnJheVN0b3JhZ2Us
IGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgSlNDCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwgc2l6ZV90
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlQ2VsbCwgaW50MzJf
dCBzdWJzY3JpcHQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4
ZWRQcm9wZXJ0eSwgQ0NhbGxTaXplLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBiYXNlQ2VsbCwgQ0NhbGxJbnQzMiBzdWJzY3JpcHQpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yMzQ5LDcgKzIzNDksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
ZwogICAgIHJldHVybiBvYmplY3QtPmhhc1Byb3BlcnR5KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHN1YnNjcmlwdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSGFzRW51bWVyYWJsZUluZGV4ZWRQcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlQ2VsbCwgaW50MzJfdCBzdWJzY3JpcHQp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0VudW1lcmFibGVJbmRleGVk
UHJvcGVydHksIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2Vs
bCogYmFzZUNlbGwsIENDYWxsSW50MzIgc3Vic2NyaXB0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMjM5MiwxNyArMjM5MiwxOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9yQ2VsbCwgSlNDZWxsKiwgKEpTR2xvYmFs
TwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgcHJvcGVydHlOYW1lRW51bWVyYXRvcihn
bG9iYWxPYmplY3QsIGJhc2UpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlSW5kZXhBbmRNb2RlLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgdWlu
dDMyX3QgaW5kZXgsIGludDMyX3QgbW9kZU51bWJlciwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KiBlbnVtZXJhdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJh
dG9yTmV4dFVwZGF0ZUluZGV4QW5kTW9kZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlVmFsdWUsIENDYWxsVUludDMyIGlu
ZGV4LCBDQ2FsbEludDMyIG1vZGVOdW1iZXIsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51
bWVyYXRvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCisgICAgdWludDMyX3QgaW5kZXhW
YWx1ZSA9IGluZGV4OwogICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6RmxhZyBtb2RlID0g
c3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpGbGFnPihtb2RlTnVtYmVyKTsK
ICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGJhc2VWYWx1ZSkuaXNVbmRlZmluZWRPck51bGwoKSkg
ewogICAgICAgICBBU1NFUlQobW9kZSA9PSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkluaXRN
b2RlKTsKLSAgICAgICAgQVNTRVJUKCFpbmRleCk7CisgICAgICAgIEFTU0VSVCghaW5kZXhWYWx1
ZSk7CiAgICAgICAgIEFTU0VSVCghZW51bWVyYXRvci0+c2l6ZU9mUHJvcGVydHlOYW1lcygpKTsK
ICAgICAgICAgbW9kZSA9IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6R2VuZXJpY01vZGU7CiAg
ICAgfSBlbHNlIHsKQEAgLTI0MTAsMjcgKzI0MTEsMjcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlSW5kZXhBbmRNb2RlLCBFbmNvZGVkSlNW
YWwKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgICAgICBj
b25zdGV4cHIgYm9vbCBzaG91bGRBbGxvY2F0ZUluZGV4ZWROYW1lU3RyaW5nID0gZmFsc2U7Ci0g
ICAgICAgIGVudW1lcmF0b3ItPmNvbXB1dGVOZXh0KGdsb2JhbE9iamVjdCwgYmFzZSwgaW5kZXgs
IG1vZGUsIHNob3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJpbmcpOworICAgICAgICBlbnVtZXJh
dG9yLT5jb21wdXRlTmV4dChnbG9iYWxPYmplY3QsIGJhc2UsIGluZGV4VmFsdWUsIG1vZGUsIHNo
b3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJpbmcpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOwogICAgIH0KIAogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgSlNWYWx1
ZSByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8SlNWYWx1ZT4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1v
ZGUpIDw8IDMyIHwgaW5kZXggfCBKU1ZhbHVlOjpEb3VibGVFbmNvZGVPZmZzZXQpOworICAgIEpT
VmFsdWUgcmVzdWx0ID0gYml0d2lzZV9jYXN0PEpTVmFsdWU+KHN0YXRpY19jYXN0PHVpbnQ2NF90
Pihtb2RlKSA8PCAzMiB8IGluZGV4VmFsdWUgfCBKU1ZhbHVlOjpEb3VibGVFbmNvZGVPZmZzZXQp
OwogI2Vsc2UKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWUobW9kZSwgaW5kZXgpOworICAg
IEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZShtb2RlLCBpbmRleFZhbHVlKTsKICNlbmRpZgogICAg
IEFTU0VSVChyZXN1bHQuaXNEb3VibGUoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRv
ck5leHRVcGRhdGVQcm9wZXJ0eU5hbWUsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIHVpbnQzMl90IGluZGV4LCBpbnQzMl90IG1vZGVOdW1iZXIsIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciogZW51bWVyYXRvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVQcm9wZXJ0eU5hbWUsIEpTU3RyaW5nKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxsVUludDMyIGluZGV4LCBDQ2FsbEludDMyIG1v
ZGVOdW1iZXIsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvcikpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAKICAgICBpZiAobW9kZU51bWJlciA9PSBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkluZGV4ZWRNb2RlKSB7Ci0gICAgICAgIGlmIChpbmRl
eCA8IGVudW1lcmF0b3ItPmluZGV4ZWRMZW5ndGgoKSkKKyAgICAgICAgaWYgKHVpbnQzMl90KGlu
ZGV4KSA8IGVudW1lcmF0b3ItPmluZGV4ZWRMZW5ndGgoKSkKICAgICAgICAgICAgIHJldHVybiBq
c1N0cmluZyh2bSwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLnN0cmluZygpKTsKICAgICAg
ICAgcmV0dXJuIHZtLnNtYWxsU3RyaW5ncy5zZW50aW5lbFN0cmluZygpOwogICAgIH0KQEAgLTI0
NDIsNyArMjQ0Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJh
dG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNTdHJpbmcqLCAoCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JSZWNv
dmVyTmFtZUFuZEdldEJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgdWludDMyX3QgaW5kZXgsIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZh
bHVlLCBDQ2FsbFVJbnQzMiBpbmRleCwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJh
dG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjQ2MCw3ICsyNDYxLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFt
ZUFuZEdldEJ5VmFsLCBFbmNvZGVkSlNWYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShvYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSkp
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JJbkJ5
VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvcGVydHlOYW1lVmFsdWUsIHVp
bnQzMl90IGluZGV4LCBpbnQzMl90IG1vZGVOdW1iZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkVudW1lcmF0b3JJbkJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgcHJvcGVydHlOYW1lVmFsdWUsIENDYWxsVUludDMyIGluZGV4LCBDQ2FsbEludDMyIG1v
ZGVOdW1iZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNDc1LDcgKzI0
NzYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckluQnlW
YWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihDb21tb25TbG93UGF0aHM6Om9wSW5CeVZh
bChnbG9iYWxPYmplY3QsIGJhc2UsIHByb3BlcnR5TmFtZSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9ySGFzT3duUHJvcGVydHksIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFz
ZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eU5hbWVWYWx1ZSwgdWludDMyX3QgaW5kZXgs
IGludDMyX3QgbW9kZU51bWJlcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RW51bWVyYXRvckhhc093blByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
cHJvcGVydHlOYW1lVmFsdWUsIENDYWxsVUludDMyIGluZGV4LCBDQ2FsbEludDMyIG1vZGVOdW1i
ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTMzLDcgKzI1MzQsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nVmFsdWVPZiwgSlNTdHJp
bmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU3Vic3RyLCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBpbnQzMl90IGZyb20sIGlu
dDMyX3Qgc3BhbikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU3Vi
c3RyLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxs
LCBDQ2FsbEludDMyIGZyb20sIENDYWxsSW50MzIgc3BhbikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI1NDIsNyArMjU0Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25TdHJpbmdTdWJzdHIsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
CiAgICAgcmV0dXJuIGpzU3Vic3RyaW5nKHZtLCBnbG9iYWxPYmplY3QsIGpzQ2FzdDxKU1N0cmlu
Zyo+KGNlbGwpLCBmcm9tLCBzcGFuKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblN0cmluZ1NsaWNlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDZWxsKiBjZWxsLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGVuZCkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIENDYWxsSW50MzIgc3RhcnQsIENDYWxs
SW50MzIgZW5kKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU1MCwxMCAr
MjU1MSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU2xpY2Us
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogCiAgICAgSlNTdHJpbmcqIHN0cmlu
ZyA9IGFzU3RyaW5nKGNlbGwpOwogICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KEpTU3RyaW5nOjpNYXhMZW5ndGgpIDw9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSksICIiKTsKLSAgICByZXR1cm4gc3RyaW5nU2xp
Y2UoZ2xvYmFsT2JqZWN0LCB2bSwgc3RyaW5nLCBzdHJpbmctPmxlbmd0aCgpLCBzdGFydCwgZW5k
KTsKKyAgICByZXR1cm4gc3RyaW5nU2xpY2U8aW50MzJfdD4oZ2xvYmFsT2JqZWN0LCB2bSwgc3Ry
aW5nLCBzdHJpbmctPmxlbmd0aCgpLCBzdGFydCwgZW5kKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCB1aW50MzJfdCBmYWlsaW5nSW5kZXgp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmlu
ZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCBDQ2Fs
bFVJbnQzMiBmYWlsaW5nSW5kZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0yNTcyLDcgKzI1NzMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9M
b3dlckNhc2UsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwganNTdHJpbmcodm0sIGxvd2VyY2FzZWRTdHJpbmcpKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCB2YWx1ZSwgaW50MzJfdCByYWRp
eCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0cmluZywgY2hh
ciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2FsbEludDMyIHZhbHVlLCBDQ2Fs
bEludDMyIHJhZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU4OCw3
ICsyNTg5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJp
bmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4oaW50MzJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5nLCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDY0X3QgdmFsdWUsIGludDMyX3QgcmFkaXgp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmcsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ0NhbGxJbnQ2NCB2YWx1ZSwgQ0NhbGxJ
bnQzMiByYWRpeCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MDQsNyAr
MjYwNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5n
LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGludDUyVG9TdHJpbmcodm0sIHZhbHVlLCByYWRpeCkpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmcsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlLCBpbnQzMl90IHJhZGl4KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZywgY2hhcios
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIENDYWxsSW50MzIg
cmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNjIwLDcgKzI2MjEs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmcsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PGNoYXIqPihudW1iZXJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCB2YWx1ZSwgaW50MzJf
dCByYWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0cmlu
Z1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEND
YWxsSW50MzIgdmFsdWUsIENDYWxsSW50MzIgcmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yNjI5LDcgKzI2MzAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSW50MzJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsTwog
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihpbnQzMlRvU3RyaW5nKHZtLCB2YWx1
ZSwgcmFkaXgpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUy
VG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ0NhbGxJbnQ2NCB2YWx1ZSwgQ0NhbGxJbnQzMiByYWRp
eCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MzgsNyArMjYzOSw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5nV2l0aFZhbGlk
UmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KGludDUyVG9TdHJpbmcodm0sIHZhbHVlLCByYWRpeCkpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhcios
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIGludDMyX3QgcmFk
aXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nV2l0
aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91Ymxl
IHZhbHVlLCBDQ2FsbEludDMyIHJhZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjY1Niw3ICsyNjU3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkZ1bmN0aW9uVG9TdHJpbmcsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVy
biBmdW5jdGlvbi0+dG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0cmluZywgSlNTdHJpbmcqLCAoVk0q
IHZtUG9pbnRlciwgaW50MzJfdCBjaGFyYWN0ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0cmluZywgSlNTdHJpbmcqLCAoVk0qIHZtUG9pbnRl
ciwgQ0NhbGxJbnQzMiBjaGFyYWN0ZXIpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjgw
Niw3ICsyODA3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0ckNhdDMs
IEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIGpzU3RyaW5nKGdsb2JhbE9iamVjdCwgc3RyMSwgc3RyMiwgc3RyMykpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdl
dEZvckRvdWJsZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1pbikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRvdWJsZSwgY2hhciosIChW
TSogdm1Qb2ludGVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIENDYWxsU2l6ZSB0YWJs
ZUluZGV4LCBDQ2FsbEludDMyIG1pbikpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODIy
LDcgKzI4MjMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRj
aEltbVRhcmdldEZvckRvdWJsZSwgY2hhciosIChWTSogdm1QbwogICAgIHJldHVybiBsaW5rZWRU
YWJsZS5tX2N0aURlZmF1bHQuZXhlY3V0YWJsZUFkZHJlc3M8Y2hhcio+KCk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgc2l6ZV90IHRhYmxlSW5kZXgsIGNvbnN0IFVubGlua2Vk
U3RyaW5nSnVtcFRhYmxlKiB1bmxpbmtlZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ0NhbGxTaXplIHRhYmxlSW5kZXgsIGNvbnN0IFVubGlu
a2VkU3RyaW5nSnVtcFRhYmxlKiB1bmxpbmtlZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjgzNywyNyArMjgzOCwyNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBsaW5rZWRUYWJsZS5jdGlGb3JWYWx1ZSgq
dW5saW5rZWRUYWJsZSwgc3RySW1wbCkuZXhlY3V0YWJsZUFkZHJlc3M8Y2hhcio+KCk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbExlc3Ms
IHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzcywgQ0NhbGxVSW50cHRy
LCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7CiAgICAgcmV0dXJuIGNvZGVQb2lu
dENvbXBhcmUoYSwgYikgPCAwOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzRXEsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEsIFN0
cmluZ0ltcGwqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVT
dHJpbmdJbXBsTGVzc0VxLCBDQ2FsbFVJbnRwdHIsIChTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBs
KiBiKSkKIHsKICAgICByZXR1cm4gY29kZVBvaW50Q29tcGFyZShhLCBiKSA8PSAwOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVy
LCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBsKiBiKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbEdyZWF0ZXIsIENDYWxsVUlu
dHB0ciwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQogewogICAgIHJldHVybiBjb2Rl
UG9pbnRDb21wYXJlKGEsIGIpID4gMDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlckVxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBs
KiBhLCBTdHJpbmdJbXBsKiBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b21wYXJlU3RyaW5nSW1wbEdyZWF0ZXJFcSwgQ0NhbGxVSW50cHRyLCAoU3RyaW5nSW1wbCogYSwg
U3RyaW5nSW1wbCogYikpCiB7CiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmUoYSwgYikgPj0g
MDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdM
ZXNzLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyog
YSwgSlNTdHJpbmcqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdMZXNzLCBDQ2FsbFVJbnRwdHIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1N0cmluZyogYSwgSlNTdHJpbmcqIGIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yODY2LDcgKzI4NjcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZVN0cmluZ0xlc3MsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KgogICAgIHJl
dHVybiBjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4oYXNTdHJpbmcoYSktPnZhbHVlKGdsb2JhbE9i
amVjdCksIGFzU3RyaW5nKGIpLT52YWx1ZShnbG9iYWxPYmplY3QpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzRXEsIHVpbnRwdHJfdCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcSwg
Q0NhbGxVSW50cHRyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEs
IEpTU3RyaW5nKiBiKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjg3NSw3
ICsyODc2LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJp
bmdMZXNzRXEsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gIWNvZGVQb2lu
dENvbXBhcmVMZXNzVGhhbihhc1N0cmluZyhiKS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSwgYXNTdHJp
bmcoYSktPnZhbHVlKGdsb2JhbE9iamVjdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIsIENDYWxsVUludHB0
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyog
YikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI4ODQsNyArMjg4NSw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nR3JlYXRlciwg
dWludHB0cl90LCAoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmVMZXNz
VGhhbihhc1N0cmluZyhiKS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSwgYXNTdHJpbmcoYSktPnZhbHVl
KGdsb2JhbE9iamVjdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGFyZVN0cmluZ0dyZWF0ZXJFcSwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nR3JlYXRlckVxLCBDQ2FsbFVJbnRwdHIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYSwgSlNTdHJpbmcqIGIpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTExLDcgKzI5MTIsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93Rm9yVmFyYXJncywg
dm9pZCwgKEpTR2xvYmFsTwogICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZU9m
VmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgdWludDMyX3QgZmlyc3RWYXJBcmdPZmZz
ZXQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVPZlZhcmFyZ3MsIFVD
UFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRBcmd1bWVudHMsIENDYWxsVUludDMyIGZpcnN0VmFyQXJnT2Zmc2V0KSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjkyMSw3ICsyOTIyLDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVPZlZhcmFyZ3MsIFVDUFVTdHJpY3RJbnQz
MiwgKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoc2l6ZU9mVmFy
YXJncyhnbG9iYWxPYmplY3QsIGFyZ3VtZW50cywgZmlyc3RWYXJBcmdPZmZzZXQpKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc093blByb3BlcnR5LCBzaXplX3Qs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogdGhpc09iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEtleSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSGFzT3duUHJvcGVydHksIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5KSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk0Miw3ICsyOTQzLDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc093blByb3BlcnR5LCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyLCBDQ2FsbFNpemUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5NTAsNyArMjk1MSw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iCiAgICAgcmV0dXJuIE51bWJlckNvbnN0cnVjdG9yOjppc0ludGVnZXJJbXBsKEpT
VmFsdWU6OmRlY29kZSh2YWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXJyYXlJbmRleE9mU3RyaW5nLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgSlNTdHJpbmcqIHNlYXJjaEVs
ZW1lbnQsIGludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFycmF5SW5kZXhPZlN0cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQnV0dGVyZmx5KiBidXR0ZXJmbHksIEpTU3RyaW5nKiBzZWFyY2hFbGVtZW50
LCBDQ2FsbEludDMyIGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
Mjk1OSwyMyArMjk2MCwyMyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJy
YXlJbmRleE9mU3RyaW5nLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbAogCiAgICAgaW50MzJf
dCBsZW5ndGggPSBidXR0ZXJmbHktPnB1YmxpY0xlbmd0aCgpOwogICAgIGF1dG8gZGF0YSA9IGJ1
dHRlcmZseS0+Y29udGlndW91cygpLmRhdGEoKTsKLSAgICBmb3IgKDsgaW5kZXggPCBsZW5ndGg7
ICsraW5kZXgpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRhdGFbaW5kZXhdLmdldCgpOwor
ICAgIGZvciAoaW50MzJfdCBpID0gaW5kZXg7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBK
U1ZhbHVlIHZhbHVlID0gZGF0YVtpXS5nZXQoKTsKICAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFs
dWUuaXNTdHJpbmcoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBhdXRvKiBzdHJp
bmcgPSBhc1N0cmluZyh2YWx1ZSk7CiAgICAgICAgIGlmIChzdHJpbmcgPT0gc2VhcmNoRWxlbWVu
dCkKLSAgICAgICAgICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihpbmRleCk7CisgICAgICAg
ICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaSk7CiAgICAgICAgIGlmIChzdHJpbmctPmVx
dWFsKGdsb2JhbE9iamVjdCwgc2VhcmNoRWxlbWVudCkpIHsKICAgICAgICAgICAgIHNjb3BlLmFz
c2VydE5vRXhjZXB0aW9uRXhjZXB0VGVybWluYXRpb24oKTsKLSAgICAgICAgICAgIHJldHVybiB0
b1VDUFVTdHJpY3RJbnQzMihpbmRleCk7CisgICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0
SW50MzIoaSk7CiAgICAgICAgIH0KICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKC0xKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlSW50MzJPckNv
bnRpZ3VvdXMsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMy
X3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhP
ZlZhbHVlSW50MzJPckNvbnRpZ3VvdXMsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIENDYWxsSW50MzIgaW5kZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yOTg2LDE5ICsyOTg3LDE5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMyT3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0CiAKICAg
ICBpbnQzMl90IGxlbmd0aCA9IGJ1dHRlcmZseS0+cHVibGljTGVuZ3RoKCk7CiAgICAgYXV0byBk
YXRhID0gYnV0dGVyZmx5LT5jb250aWd1b3VzKCkuZGF0YSgpOwotICAgIGZvciAoOyBpbmRleCA8
IGxlbmd0aDsgKytpbmRleCkgewotICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZGF0YVtpbmRleF0u
Z2V0KCk7CisgICAgZm9yIChpbnQzMl90IGkgPSBpbmRleDsgaSA8IGxlbmd0aDsgKytpKSB7Cisg
ICAgICAgIEpTVmFsdWUgdmFsdWUgPSBkYXRhW2ldLmdldCgpOwogICAgICAgICBpZiAoIXZhbHVl
KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGJvb2wgaXNFcXVhbCA9IEpTVmFsdWU6
OnN0cmljdEVxdWFsKGdsb2JhbE9iamVjdCwgc2VhcmNoRWxlbWVudCwgdmFsdWUpOwogICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAgICBpZiAoaXNFcXVhbCkK
LSAgICAgICAgICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihpbmRleCk7CisgICAgICAgICAg
ICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaSk7CiAgICAgfQogICAgIHJldHVybiB0b1VDUFVT
dHJpY3RJbnQzMigtMSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
cnJheUluZGV4T2ZWYWx1ZURvdWJsZSwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBidXR0ZXJmbHksIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgaW50MzJfdCBpbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXJyYXlJbmRleE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIENDYWxsSW50MzIgaW5kZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0zMDEyLDE3ICszMDEzLDE3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURvdWJsZSwgVUNQVVN0cmljdEludDMyLCAoSlNHCiAK
ICAgICBpbnQzMl90IGxlbmd0aCA9IGJ1dHRlcmZseS0+cHVibGljTGVuZ3RoKCk7CiAgICAgY29u
c3QgZG91YmxlKiBkYXRhID0gYnV0dGVyZmx5LT5jb250aWd1b3VzRG91YmxlKCkuZGF0YSgpOwot
ICAgIGZvciAoOyBpbmRleCA8IGxlbmd0aDsgKytpbmRleCkgeworICAgIGZvciAoaW50MzJfdCBp
ID0gaW5kZXg7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICAvLyBUaGlzIGNvbXBhcmlzb24g
aWdub3JlcyBOYU4uCi0gICAgICAgIGlmIChkYXRhW2luZGV4XSA9PSBudW1iZXIpCi0gICAgICAg
ICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaW5kZXgpOworICAgICAgICBpZiAoZGF0YVtp
XSA9PSBudW1iZXIpCisgICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaSk7CiAg
ICAgfQogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Mb2FkVmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGludDMyX3QgZmlyc3RFbGVtZW50RGVzdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEFyZ3VtZW50cywgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBsZW5ndGhJbmNsdWRp
bmdUaGlzLCB1aW50MzJfdCBtYW5kYXRvcnlNaW5pbXVtKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Mb2FkVmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENDYWxsSW50MzIgZmlyc3RFbGVtZW50RGVzdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEFyZ3VtZW50cywgQ0NhbGxVSW50MzIgb2Zmc2V0LCBDQ2FsbFVJbnQzMiBsZW5ndGhJbmNsdWRp
bmdUaGlzLCBDQ2FsbFVJbnQzMiBtYW5kYXRvcnlNaW5pbXVtKSkKIHsKLSAgICBWaXJ0dWFsUmVn
aXN0ZXIgZmlyc3RFbGVtZW50IHsgZmlyc3RFbGVtZW50RGVzdCB9OworICAgIFZpcnR1YWxSZWdp
c3RlciBmaXJzdEVsZW1lbnQgeyBpbnQzMl90KGZpcnN0RWxlbWVudERlc3QpIH07CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0zMDM0LDkgKzMwMzUsOSBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZQogICAgICAgICBjYWxsRnJhbWUtPnIoZmlyc3RFbGVtZW50ICsgaSkg
PSBqc1VuZGVmaW5lZCgpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Rk1vZE9uSW50cywgZG91YmxlLCAoaW50MzJfdCBhLCBpbnQzMl90IGIpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZNb2RPbkludHMsIGRvdWJsZSwgKENDYWxsSW50MzIgYSwg
Q0NhbGxJbnQzMiBiKSkKIHsKLSAgICByZXR1cm4gZm1vZChhLCBiKTsKKyAgICByZXR1cm4gZm1v
ZChpbnQzMl90KGEpLCBpbnQzMl90KGIpKTsKIH0KIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBA
IC0zMDQ2LDcgKzMwNDcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmFu
ZG9tLCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogfQogI2VuZGlmCiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGUsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IG9wMSkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ0NhbGxJbnQzMiBvcDEpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMDY0LDcgKzMwNjUsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlVW50eXBlZCwgRW5jb2Rl
ZEpTVmFsdWUsIChKUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNDOjpzdHJpbmdGcm9t
Q2hhckNvZGUoZ2xvYmFsT2JqZWN0LCBjaEludCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29udmVydEJveGVkRG91YmxlVG9JbnQ1MiwgaW50NjRfdCwgKEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydEJveGVkRG91YmxlVG9JbnQ1MiwgQ0NhbGxJbnQ2NCwgKEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpOwogICAgIGlmICghdmFsdWUuaXNEb3VibGUoKSkKQEAgLTMwNzIsMTIgKzMw
NzMsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRCb3hlZERv
dWJsZVRvSW50NTIsIGludDY0X3QsIChFbmNvZGVkSlMKICAgICByZXR1cm4gdHJ5Q29udmVydFRv
SW50NTIodmFsdWUuYXNEb3VibGUoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db252ZXJ0RG91YmxlVG9JbnQ1MiwgaW50NjRfdCwgKGRvdWJsZSB2YWx1ZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydERvdWJsZVRvSW50NTIsIEND
YWxsSW50NjQsIChkb3VibGUgdmFsdWUpKQogewogICAgIHJldHVybiB0cnlDb252ZXJ0VG9JbnQ1
Mih2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdSYXdP
YmplY3QsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludDMy
X3QgbGVuZ3RoLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3UmF3T2JqZWN0LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBDQ2FsbEludDMyIGxlbmd0aCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQog
ewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzExNiw3ICszMTE3LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHksIEpTQ2VsbCosIChW
TSogdm1Qb2ludGUKICAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRlV2l0aEJ1dHRlcmZs
eSh2bSwgc3RydWN0dXJlLCBidXR0ZXJmbHkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseVdpdGhJbmRleGluZ0hlYWRlckFuZFZl
Y3Rvckxlbmd0aCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCB1bnNpZ25lZCBsZW5ndGgsIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVh
ZGVyQW5kVmVjdG9yTGVuZ3RoLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIENDYWxsVUludDMyIGxlbmd0aCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQogewog
ICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzEzOCw3ICszMTM5LDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFk
ZXJBbmRWZWMKICAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRlV2l0aEJ1dHRlcmZseSh2
bSwgc3RydWN0dXJlLCBidXR0ZXJmbHkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3QXJyYXlXaXRoU3ByZWFkU2xvdywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIHZvaWQqIGJ1ZmZlciwgdWludDMyX3QgbnVtSXRlbXMpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVhZFNsb3csIEpTQ2Vs
bCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiBidWZmZXIsIENDYWxsVUlu
dDMyIG51bUl0ZW1zKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzE5Nyw3
ICszMTk4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0
aFNwcmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlSW1tdXRhYmxlQnV0
dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWduZWQg
bGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFi
bGVCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2Fs
bFVJbnQzMiBsZW5ndGgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMjg3
LDcgKzMyODgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVNj
b3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiByZXNvbHZl
ZFNjb3BlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0RHluYW1p
Y1ZhciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNpZ25lZCBnZXRQdXRJbmZv
Qml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0RHluYW1pY1Zhciwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
c2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCBDQ2FsbFVJbnQzMiBnZXRQdXRJbmZvQml0
cykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMzNDcsNyArMzM0OCw3IEBA
IEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcHV0RHluYW1pY1ZhcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBWTSYgdm0sIEpTCiAgICAgc2NvcGUtPm1ldGhvZFRhYmxlKHZtKS0+cHV0
KHNjb3BlLCBnbG9iYWxPYmplY3QsIGlkZW50LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLCBzbG90
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJT
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2Nv
cGUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWdu
ZWQgZ2V0UHV0SW5mb0JpdHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dER5bmFtaWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCog
aW1wbCwgQ0NhbGxVSW50MzIgZ2V0UHV0SW5mb0JpdHMpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0zMzU2LDcgKzMzNTcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbAog
ICAgIHJldHVybiBwdXREeW5hbWljVmFyKGdsb2JhbE9iamVjdCwgdm0sIHNjb3BlLCB2YWx1ZSwg
aW1wbCwgZ2V0UHV0SW5mb0JpdHMsIGlzU3RyaWN0TW9kZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSB2
YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdldFB1dEluZm9CaXRzKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyTm9uU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNjb3BlLCBF
bmNvZGVkSlNWYWx1ZSB2YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIENDYWxsVUludDMy
IGdldFB1dEluZm9CaXRzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzM5
MSw3ICszMzkyLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhhc2hI
ZWFwQmlnSW50LCBVQ1BVU3RyaWN0SW50MzIsIChWTSogdm1Qb2kKICAgICByZXR1cm4gdG9VQ1BV
U3RyaWN0SW50MzIoanNNYXBIYXNoKGlucHV0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25KU01hcEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhh
c2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTTWFwRmluZEJ1Y2tldCwg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNv
ZGVkSlNWYWx1ZSBrZXksIENDYWxsSW50MzIgaGFzaCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTM0MDIsNyArMzQwMyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25KU01hcEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvCiAg
ICAgcmV0dXJuICpidWNrZXQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25KU1NldEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0NlbGwqIG1hcCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBr
ZXksIENDYWxsSW50MzIgaGFzaCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTM0MTMsNyArMzQxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU1Nl
dEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuICpi
dWNrZXQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRBZGQsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIHNldCwgRW5jb2Rl
ZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogc2V0LCBFbmNvZGVkSlNWYWx1ZSBrZXksIENDYWxsSW50MzIgaGFzaCkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM0MjQsNyArMzQyNSw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TZXRBZGQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIGJ1Y2tldDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk1hcFNldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIEVuY29kZWRKU1ZhbHVlIHZh
bHVlLCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1h
cFNldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFw
LCBFbmNvZGVkSlNWYWx1ZSBrZXksIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBDQ2FsbEludDMyIGhh
c2gpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDM1LDcgKzM0MzYsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwU2V0LCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVybiBidWNrZXQ7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrU2V0QWRkLCB2b2lkLCAoVk0qIHZtUG9p
bnRlciwgSlNDZWxsKiBzZXQsIEpTQ2VsbCoga2V5LCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldlYWtTZXRBZGQsIHZvaWQsIChWTSogdm1Qb2ludGVy
LCBKU0NlbGwqIHNldCwgSlNDZWxsKiBrZXksIENDYWxsSW50MzIgaGFzaCkpCiB7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0zNDQzLDcgKzM0NDQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogc2V0
LAogICAgIGpzQ2FzdDxKU1dlYWtTZXQqPihzZXQpLT5hZGQodm0sIGFzT2JqZWN0KGtleSksIEpT
VmFsdWUoKSwgaGFzaCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
ZWFrTWFwU2V0LCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBtYXAsIEpTQ2VsbCoga2V5
LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgaW50MzJfdCBoYXNoKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XZWFrTWFwU2V0LCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxs
KiBtYXAsIEpTQ2VsbCoga2V5LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgQ0NhbGxJbnQzMiBoYXNo
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM2NjksNyArMzY3MCw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd0RGRywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsCiAgICAgc2NvcGUudGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlOjpkZWNvZGUodmFsdWVUb1Rocm93KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNTdHJpbmcqIG1lc3NhZ2UsIHVpbnQzMl90IGVycm9yVHlwZSkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvciwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBtZXNzYWdlLCBDQ2FsbFVJbnQz
MiBlcnJvclR5cGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC00MTE2LDcg
KzQxMTcsNyBAQCBzdGF0aWMgY2hhciogdGllclVwQ29tbW9uKFZNJiB2bSwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEJ5dGVjb2RlSW5kZXggb3JpZ2luQnl0ZQogICAgIHJldHVybiB0YWdDb2RlUHRy
V2l0aFN0YWNrUG9pbnRlckZvckpJVENhbGwodW50YWdDb2RlUHRyPGNoYXIqLCBKU0VudHJ5UHRy
VGFnPihhZGRyZXNzKSwgY2FsbEZyYW1lKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3dJbkxvb3AsIHZvaWQsIChWTSogdm1Qb2ludGVyLCB1
bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIENDYWxs
VUludDMyIGJ5dGVjb2RlSW5kZXhCaXRzKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTQx
NDgsNyArNDE0OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2Vy
VGllclVwTm93SW5Mb29wLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwKICAgICB9CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyT1NSRW50cnlOb3csIGNoYXIqLCAo
Vk0qIHZtUG9pbnRlciwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJPU1JFbnRyeU5vdywgY2hhciosIChWTSogdm1Q
b2ludGVyLCBDQ2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpCiB7CiAgICAgVk0mIHZtID0g
KnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IGZi
ZDZkMDllNDY3MjVmOTczYmJlODdkODY4YmZjOTQwMWRlOWE3MjYuLmQzNjMzYTJjNGM5MjA3YzE4
OWFhOTE5MTliYjlkNzI2NGIzN2VlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAor
I2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRGR0FyaXRoTW9kZS5oIgogI2lu
Y2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJUeXBlZEFycmF5VHlwZS5oIgpAQCAt
NDMsNyArNDQsNyBAQCBuYW1lc3BhY2UgREZHIHsKIAogc3RydWN0IE9TUkV4aXRCYXNlOwogCi1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZSwgSlND
ZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCosIENDYWxsSW50MzIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3Ry
aW5nRnJvbUNoYXJDb2RlVW50eXBlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlKSk7CiAKIC8vIFRoZXNlIHJvdXRpbmVzIHByb3ZpZGUgY2FsbGJhY2tz
IG91dCB0byBDKysgaW1wbGVtZW50YXRpb25zIG9mIG9wZXJhdGlvbnMgdG9vIGNvbXBsZXggdG8g
SklULgpAQCAtNTcsNyArNTgsNyBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk9iamVjdENyZWF0ZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jbwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RDcmVhdGVPYmplY3QsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25PYmplY3RBc3NpZ25PYmplY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2Jq
ZWN0KiwgSlNPYmplY3QqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9i
amVjdEFzc2lnblVudHlwZWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRl
VGhpcywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCB1
aW50MzJfdCBpbmxpbmVDYXBhY2l0eSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVUaGlzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogY29u
c3RydWN0b3IsIENDYWxsVUludDMyIGlubGluZUNhcGFjaXR5KSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVByb21pc2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiBjb25zdHJ1Y3RvcikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DcmVhdGVJbnRlcm5hbFByb21pc2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCos
IEpTT2JqZWN0KiBjb25zdHJ1Y3RvcikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVHZW5lcmF0b3IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0
KiBjb25zdHJ1Y3RvcikpOwpAQCAtOTEsOCArOTIsOCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkFyaXRoUm91bmQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aEZsb29yLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhDZWlsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQXJpdGhUcnVuYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5
VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFs
U3RyaW5nSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBp
bnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2Jq
ZWN0SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2Fs
bEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsU3Ry
aW5nSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBDQ2Fs
bEludDMyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2Jq
ZWN0U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlND
ZWxsKiBzdHJpbmcpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlW
YWxPYmplY3RTeW1ib2wsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
LCBKU0NlbGwqIHN5bWJvbCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
b1ByaW1pdGl2ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlKSk7CkBAIC0xMDMsNDIgKzEwNCw0MiBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNhbGxOdW1iZXJDb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsbwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbFdpdGhUaGlzLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRQcm90b3R5cGVPZiwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByb3RvdHlw
ZU9mT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSk7
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0VudW1lcmFibGVJbmRleGVkUHJvcGVydHksIHNp
emVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHksIENDYWxsU2l6ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25IYXNFbnVtZXJhYmxlSW5kZXhlZFByb3BlcnR5LCBDQ2FsbFNpemUs
IChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIENDYWxsSW50MzIpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9yLCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3JDZWxsLCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVu
dW1lcmF0b3JOZXh0VXBkYXRlSW5kZXhBbmRNb2RlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIHVpbnQzMl90LCBpbnQzMl90LCBKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1l
cmF0b3JOZXh0VXBkYXRlUHJvcGVydHlOYW1lLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCos
IHVpbnQzMl90LCBpbnQzMl90LCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqKSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JJbkJ5VmFsLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1
aW50MzJfdCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25F
bnVtZXJhdG9ySGFzT3duUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnQzMl90LCBpbnQzMl90KSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFtZUFu
ZEdldEJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIHVpbnQzMl90LCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlSW5kZXhBbmRNb2RlLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUlu
dDMyLCBDQ2FsbEludDMyLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlUHJvcGVydHlOYW1l
LCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIENDYWxsVUludDMyLCBDQ2FsbEludDMyLCBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkVudW1lcmF0b3JJbkJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnQzMiwgQ0NhbGxJbnQz
MikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9ySGFzT3du
UHJvcGVydHksIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludDMyLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFtZUFuZEdldEJ5VmFs
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxs
VUludDMyLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3UmVnZXhwV2l0aExhc3RJbmRleCwgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqLCB2b2lkKiwgc2l6ZV90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld0FycmF5LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgdm9pZCos
IENDYWxsU2l6ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdFbXB0
eUFycmF5LCBjaGFyKiwgKFZNKiwgU3RydWN0dXJlKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplQW5kSGludCwgY2hhciosIChKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIGludDMyX3QsIEJ1dHRlcmZseSopKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aFNpemUsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnRwdHJfdCwgY2hhciopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSwgY2hhciosIChK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50MzIsIEJ1dHRlcmZseSopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFuZEhpbnQs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludDMyLCBDQ2FsbElu
dDMyLCBCdXR0ZXJmbHkqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0ludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
Q0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld0ludDhBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3SW50MTZBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MzJBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4QXJyYXlXaXRoU2l6ZSwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OEFycmF5V2l0aFNpemUsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciopKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhPbmVB
cmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1Zh
bHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBl
ZEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnRw
dHJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWlu
dDhDbGFtcGVkQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnRwdHJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MTZBcnJheVdpdGhPbmVBcmd1bWVudCwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQzMkFycmF5V2l0aFNpemUs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnRwdHJfdCwgY2hhciopKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFy
KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MzJBcnJheVdp
dGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29k
ZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0
MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50
cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zs
b2F0MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
Q0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld0Zsb2F0MzJBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhcios
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ0ludDY0QXJyYXlXaXRoU2l6ZSwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdJbnQ2NEFycmF5V2l0aFNpemUs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciop
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnSW50NjRBcnJheVdp
dGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVuY29k
ZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ1Vp
bnQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBp
bnRwdHJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
QmlnVWludDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdCaWdVaW50NjRBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5SXRlcmF0b3IsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVy
ZSopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3TWFwSXRlcmF0b3Is
IEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSopKTsKQEAgLTE1MCwzNiArMTUxLDM2IEBAIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5nU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5VmFsQ2VsbFN0cmluZ05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
KiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1ib2xTdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlWYWxDZWxsU3ltYm9sTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNT
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0
KiwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNO
b25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJbnQzMiBp
bmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFBy
b3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdTdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlWYWxEaXJlY3RDZWxsU3RyaW5nTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN5
bWJvbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1i
b2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTeW1ib2xOb25TdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlW
YWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRB
cnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBp
bnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBk
b3VibGUgdmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91
YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJv
dW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGlu
ZGV4LCBkb3VibGUgdmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlJZFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJh
eUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbElu
dDMyIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyIGluZGV4
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyIGluZGV4LCBkb3VibGUgdmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxC
ZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmpl
Y3QqLCBDQ2FsbEludDMyIGluZGV4LCBkb3VibGUgdmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyIGluZGV4
LCBkb3VibGUgdmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyIGluZGV4LCBkb3VibGUgdmFsdWUpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlJZFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIp
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpcywg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0
YVByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiwgSlNTdHJpbmcqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJ
ZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBVbmlxdWVkU3RyaW5nSW1w
bCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqLCBTeW1ib2wqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBKU09iamVjdCos
IEpTT2JqZWN0KiwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBK
U09iamVjdCosIEpTU3RyaW5nKiwgSlNPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0
cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFVuaXF1ZWRTdHJp
bmdJbXBsKiwgSlNPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN5bWJvbCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBTeW1ib2wqLCBKU09iamVjdCosIEpTT2JqZWN0
KiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVE
YXRhUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqLCBKU1N0cmluZyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMy
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0
eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFVuaXF1ZWRT
dHJpbmdJbXBsKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN5bWJvbCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbElu
dDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29y
UHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmcsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgSlNTdHJpbmcqLCBKU09iamVjdCosIEpTT2JqZWN0
KiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZp
bmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBKU09iamVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJ
bnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3Nv
clByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN5bWJv
bCosIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNBcnJheSopKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoTXVsdGlwbGUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0FycmF5Kiwgdm9pZCogYnVmZmVyLCBpbnQzMl90IGVs
ZW1lbnRDb3VudCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1
c2hNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQXJyYXkqLCB2
b2lkKiBidWZmZXIsIENDYWxsSW50MzIgZWxlbWVudENvdW50KSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIGRvdWJsZSB2YWx1ZSwgSlNBcnJheSopKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0FycmF5Kiwgdm9pZCogYnVmZmVyLCBpbnQzMl90IGVsZW1l
bnRDb3VudCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hE
b3VibGVNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQXJyYXkq
LCB2b2lkKiBidWZmZXIsIENDYWxsSW50MzIgZWxlbWVudENvdW50KSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UG9wLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNBcnJheSopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
QXJyYXlQb3BBbmRSZWNvdmVyTGVuZ3RoLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNBcnJheSopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhw
RXhlY1N0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVj
dCosIEpTU3RyaW5nKikpOwpAQCAtMTg5LDEwICsxOTAsMTAgQEAgSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25SZWdFeHBFeGVjTm9uR2xvYmFsT3JTdGlja3ksIEVuY29kZWRKU1Zh
bHVlLAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBNYXRjaEZhc3RH
bG9iYWxTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHAqLCBK
U1N0cmluZyopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwTWF0
Y2hGYXN0U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2Jq
ZWN0KiwgSlNTdHJpbmcqKSk7CiAvLyBUaGVzZSBjb21wYXJpc29ucyByZXR1cm4gYSBib29sZWFu
IHdpdGhpbiBhIHNpemVfdCBzdWNoIHRoYXQgdGhlIHZhbHVlIGlzIHplcm8gZXh0ZW5kZWQgdG8g
ZmlsbCB0aGUgcmVnaXN0ZXIuCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJl
Z0V4cFRlc3RTdHJpbmcsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0Kiwg
SlNTdHJpbmcqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRl
c3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVy
aWMsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RF
cUNlbGwsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3Ay
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcs
IENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3QsIENDYWxsU2l6
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVyaWMsIENDYWxs
U2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGws
IENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN1YkhlYXBCaWdJbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTXVsSGVhcEJpZ0ludCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Nb2RIZWFwQmlnSW50LCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7CkBA
IC0yMDUsNjAgKzIwNiw2MCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJp
dExTaGlmdEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYQogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25BZGRIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdFJTaGlmdEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKTsKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0WG9ySGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TYW1lVmFsdWUsIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblNhbWVWYWx1ZSwgQ0NhbGxTaXplLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQWN0aXZhdGlvbkRpcmVjdCwgSlNDZWxsKiwgKFZNKiwg
U3RydWN0dXJlKiwgSlNTY29wZSosIFN5bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzLCBK
U0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqLCB1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90IG1pbkNh
cGFjaXR5KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVj
dEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSosIElubGluZUNhbGxGcmFtZSosIEpT
RnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1bWVudENvdW50KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlKiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGxl
bmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlLCBKU0xleGljYWxFbnZpcm9ubWVudCopKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5n
RXhpdCwgSlNDZWxsKiwgKFZNKiwgSW5saW5lQ2FsbEZyYW1lKiwgSlNGdW5jdGlvbiosIHVpbnQz
Ml90IGFyZ3VtZW50Q291bnQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmUqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9u
KiBjYWxsZWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJn
dW1lbnRzQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdpc3RlciogYXJn
dW1lbnRTdGFydCwgdWludDMyX3QgYXJndW1lbnRDb3VudCkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBS
ZWdpc3RlciogYXJndW1lbnRTdGFydCwgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudHNUb1NraXAs
IHVuc2lnbmVkIGFycmF5U2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25DcmVhdGVEaXJlY3RBcmd1bWVudHMsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIENDYWxs
VUludDMyIGxlbmd0aCwgQ0NhbGxVSW50MzIgbWluQ2FwYWNpdHkpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdCwgSlND
ZWxsKiwgKFZNKiwgSW5saW5lQ2FsbEZyYW1lKiwgSlNGdW5jdGlvbiosIENDYWxsVUludDMyIGFy
Z3VtZW50Q291bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRl
U2NvcGVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBS
ZWdpc3RlciogYXJndW1lbnRTdGFydCwgQ0NhbGxVSW50MzIgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBj
YWxsZWUsIEpTTGV4aWNhbEVudmlyb25tZW50KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0q
LCBJbmxpbmVDYWxsRnJhbWUqLCBKU0Z1bmN0aW9uKiwgQ0NhbGxVSW50MzIgYXJndW1lbnRDb3Vu
dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1
bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFJlZ2lzdGVyKiBh
cmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQzMiBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxlZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0ZXJm
bHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBD
Q2FsbFVJbnQzMiBhcmd1bWVudENvdW50KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNyZWF0ZVJlc3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIFJlZ2lzdGVyKiBh
cmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQzMiBudW1iZXJPZkFyZ3VtZW50c1RvU2tpcCwgQ0NhbGxV
SW50MzIgYXJyYXlTaXplKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0FycmF5QnVmZmVyLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqLCBKU0NlbGwqKSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiwg
SlNDZWxsKiwgSlNDZWxsKiwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XZWFrTWFwU2V0LCB2b2lkLCAoVk0qLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVk
SlNWYWx1ZSwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25G
TW9kT25JbnRzLCBkb3VibGUsIChpbnQzMl90LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklzT2JqZWN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9m
SXNGdW5jdGlvbiwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdElzQ2FsbGFibGUsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Jc0NvbnN0cnVjdG9yLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwU2V0LCBKU0NlbGwqLCAo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha1Nl
dEFkZCwgdm9pZCwgKFZNKiwgSlNDZWxsKiwgSlNDZWxsKiwgQ0NhbGxJbnQzMikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrTWFwU2V0LCB2b2lkLCAoVk0qLCBKU0Nl
bGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25GTW9kT25JbnRzLCBkb3VibGUsIChDQ2FsbEludDMyLCBD
Q2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklz
T2JqZWN0LCBDQ2FsbFNpemUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mSXNGdW5jdGlvbiwgQ0NhbGxTaXplLCAo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk9iamVjdElzQ2FsbGFibGUsIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc0NvbnN0cnVjdG9y
LCBDQ2FsbFNpemUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVjdCwgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHksIGNoYXIq
LCAoVk0qKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlU2lt
cGxlUHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiwgc2l6ZV90IG5ld1NpemUpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3Jh
Z2UsIGNoYXIqLCAoVk0qLCBDQ2FsbFNpemUgbmV3U2l6ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlh
bENhcGFjaXR5LCBjaGFyKiwgKFZNKiwgSlNPYmplY3QqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwgY2hhciosIChW
TSosIEpTT2JqZWN0Kiwgc2l6ZV90IG5ld1NpemUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiwg
SlNPYmplY3QqLCBDQ2FsbFNpemUgbmV3U2l6ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25FbnN1cmVJbnQzMiwgY2hhciosIChWTSosIEpTQ2VsbCopKTsKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlRG91YmxlLCBjaGFyKiwgKFZNKiwgSlND
ZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnN1cmVDb250aWd1
b3VzLCBjaGFyKiwgKFZNKiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25FbnN1cmVBcnJheVN0b3JhZ2UsIGNoYXIqLCAoVk0qLCBKU0NlbGwqKSk7CiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29sdmVSb3BlLCBTdHJpbmdJbXBsKiwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0cmluZywgSlNTdHJpbmcqLCAoVk0qLCBpbnQzMl90
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0
cmluZywgSlNTdHJpbmcqLCAoVk0qLCBDQ2FsbEludDMyKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU3Vic3RyLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqLCBpbnQzMl90LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblN0cmluZ1NsaWNlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
LCBpbnQzMl90LCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blN0cmluZ1N1YnN0ciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgQ0NhbGxJ
bnQzMiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
dHJpbmdTbGljZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgQ0NhbGxJbnQz
MiwgQ0NhbGxJbnQzMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJp
bmdWYWx1ZU9mLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmlu
ZyosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgdWludDMyX3QpKTsKLQotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiwgaW50MzJfdCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25JbnQ1MlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgaW50NjRfdCwg
aW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0
cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCosIGRvdWJsZSwgaW50MzJfdCkpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBpbnQzMl90LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCosIGludDY0X3QsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhcios
IChKU0dsb2JhbE9iamVjdCosIGRvdWJsZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Ub0xvd2VyQ2FzZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU1N0cmluZyosIENDYWxsVUludDMyKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSW50MzJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCosIENDYWxsSW50
MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50
NTJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCosIENDYWxsSW50NjQsIENDYWxsSW50
MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmcs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBkb3VibGUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBDQ2FsbEludDY0LCBDQ2FsbEludDMyKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nV2l0aFZhbGlkUmFk
aXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBkb3VibGUsIENDYWxsSW50MzIpKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRnVuY3Rpb25Ub1N0cmluZywgSlNTdHJpbmcq
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0Z1bmN0aW9uKikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5vcm1hbGl6ZU1hcEtleUhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVl
LCAoVk0qLCBKU0JpZ0ludCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWFwSGFzaCwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSBpbnB1dCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBIYXNoSGVh
cEJpZ0ludCwgVUNQVVN0cmljdEludDMyLCAoVk0qLCBKU0JpZ0ludCopKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9i
YWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU1NldEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTTWFwRmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNTZXRGaW5kQnVja2V0LCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikp
OwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50Tm9SYWRpeEdl
bmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0cmluZ05vUmFk
aXgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyopKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIGludDMyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKIAogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTeW1ib2wsIFN5bWJvbCosIChWTSopKTsKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3U3ltYm9sV2l0aFN0cmluZ0Rlc2Ny
aXB0aW9uLCBTeW1ib2wqLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyopKTsKQEAgLTI3Miw0
OCArMjczLDQ4IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFrZVJvcGUy
LCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyCiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk1ha2VSb3BlMywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBK
U1N0cmluZyosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblN0ckNhdDIsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblN0ckNhdDMsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25GaW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlLCBjaGFyKiwgKFZN
KiwgRW5jb2RlZEpTVmFsdWUsIHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZywgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIHNpemVfdCB0YWJsZUluZGV4LCBjb25zdCBVbmxpbmtlZFN0cmluZ0p1bXBUYWJs
ZSosIEpTU3RyaW5nKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21w
YXJlU3RyaW5nSW1wbExlc3MsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKikp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbExl
c3NFcSwgdWludHB0cl90LCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlciwgdWludHB0
cl90LCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlckVxLCB1aW50cHRyX3QsIChTdHJp
bmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZVN0cmluZ0xlc3MsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqLCBKU1N0cmluZyopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29t
cGFyZVN0cmluZ0xlc3NFcSwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyos
IEpTU3RyaW5nKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
U3RyaW5nR3JlYXRlciwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpT
U3RyaW5nKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aW5nR3JlYXRlckVxLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNT
dHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZpbmRTd2l0Y2hJ
bW1UYXJnZXRGb3JEb3VibGUsIGNoYXIqLCAoVk0qLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxTaXpl
IHRhYmxlSW5kZXgsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ0NhbGxTaXplIHRh
YmxlSW5kZXgsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiwgSlNTdHJpbmcqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzcywg
Q0NhbGxVSW50cHRyLCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzc0VxLCBDQ2FsbFVJbnRw
dHIsIChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyLCBDQ2FsbFVJbnRwdHIsIChTdHJp
bmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyRXEsIENDYWxsVUludHB0ciwgKFN0cmluZ0ltcGwq
LCBTdHJpbmdJbXBsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21w
YXJlU3RyaW5nTGVzcywgQ0NhbGxVSW50cHRyLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyos
IEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
U3RyaW5nTGVzc0VxLCBDQ2FsbFVJbnRwdHIsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwg
SlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVT
dHJpbmdHcmVhdGVyLCBDQ2FsbFVJbnRwdHIsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwg
SlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVT
dHJpbmdHcmVhdGVyRXEsIENDYWxsVUludHB0ciwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcq
LCBKU1N0cmluZyopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTm90aWZ5
V3JpdGUsIHZvaWQsIChWTSosIFdhdGNocG9pbnRTZXQqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0ZvclZhcmFyZ3MsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZU9m
VmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSBhcmd1bWVudHMsIHVpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBpbnQzMl90IGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgdWlu
dDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90IG1hbmRhdG9yeU1pbmltdW0p
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZU9mVmFyYXJncywgVUNQ
VVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMs
IENDYWxsVUludDMyIGZpcnN0VmFyQXJnT2Zmc2V0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBDQ2FsbElu
dDMyIGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgQ0NhbGxVSW50
MzIgb2Zmc2V0LCBDQ2FsbFVJbnQzMiBsZW5ndGgsIENDYWxsVUludDMyIG1hbmRhdG9yeU1pbmlt
dW0pKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dERkcsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IsIHZvaWQsIChKU0dsb2JhbE9iamVjdCos
IEpTU3RyaW5nKiwgdWludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVGhyb3dTdGF0aWNFcnJvciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBD
Q2FsbFVJbnQzMikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc093
blByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzT3duUHJvcGVy
dHksIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0
cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJmbHkqLCBKU1N0
cmluZyosIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJy
YXlJbmRleE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0Kiwg
QnV0dGVyZmx5KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVJbnQzMk9yQ29udGlndW91cywgVUNQ
VVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJmbHkqLCBFbmNvZGVkSlNWYWx1
ZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUlu
ZGV4T2ZTdHJpbmcsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiwgQnV0dGVyZmx5
KiwgSlNTdHJpbmcqLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlRG91YmxlLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2Jh
bE9iamVjdCosIEJ1dHRlcmZseSosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlSW50MzJPckNv
bnRpZ3VvdXMsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiwgQnV0dGVyZmx5Kiwg
RW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25TcHJlYWRGYXN0QXJyYXksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3ByZWFkR2VuZXJp
YywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTcHJlYWRTbG93LCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqLCB2b2lkKiwgdWludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ3JlYXRlSW1tdXRhYmxlQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqLCB1bnNpZ25lZCBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3QXJyYXlXaXRoU3ByZWFkU2xvdywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
dm9pZCosIENDYWxsVUludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNyZWF0ZUltbXV0YWJsZUJ1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ0Nh
bGxVSW50MzIgbGVuZ3RoKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UmVzb2x2ZVNjb3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU1Njb3BlKiwgVW5pcXVl
ZFN0cmluZ0ltcGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29s
dmVTY29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2YWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBKU1Njb3BlKiwgVW5pcXVlZFN0cmluZ0ltcGwqKSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldER5bmFtaWNWYXIsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgdW5zaWdu
ZWQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNW
YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25lZCkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqLCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1w
bCosIHVuc2lnbmVkKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldER5
bmFtaWNWYXIsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogc2Nv
cGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgQ0NhbGxVSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwq
LCBDQ2FsbFVJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRE
eW5hbWljVmFyTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogc2Nv
cGUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCosIENDYWxsVUludDMyKSk7CiAK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydEJveGVkRG91YmxlVG9J
bnQ1MiwgaW50NjRfdCwgKEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbnZlcnREb3VibGVUb0ludDUyLCBpbnQ2NF90LCAoZG91YmxlKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRCb3hlZERvdWJsZVRvSW50
NTIsIENDYWxsSW50NjQsIChFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db252ZXJ0RG91YmxlVG9JbnQ1MiwgQ0NhbGxJbnQ2NCwgKGRvdWJsZSkp
OwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk51bWJlcklzSW50ZWdlciwg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIENDYWxsU2l6ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdSYXdPYmplY3QsIGNoYXIqLCAoVk0qLCBTdHJ1Y3R1cmUqLCBpbnQzMl90
LCBCdXR0ZXJmbHkqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1Jh
d09iamVjdCwgY2hhciosIChWTSosIFN0cnVjdHVyZSosIENDYWxsSW50MzIsIEJ1dHRlcmZseSop
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRl
cmZseSwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKiwgQnV0dGVyZmx5KikpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4
aW5nSGVhZGVyQW5kVmVjdG9yTGVuZ3RoLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqLCB1bnNp
Z25lZCBsZW5ndGgsIEJ1dHRlcmZseSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseVdpdGhJbmRleGluZ0hlYWRlckFuZFZlY3Rvckxl
bmd0aCwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKiwgQ0NhbGxVSW50MzIgbGVuZ3RoLCBCdXR0
ZXJmbHkqKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTGlua0RpcmVj
dENhbGwsIHZvaWQsIChPcHRpbWl6aW5nQ2FsbExpbmtJbmZvKiwgSlNGdW5jdGlvbiopKTsKIApA
QCAtMzQ0LDggKzM0NSw4IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmFu
ZG9tLCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCopKTsKIAogI2lmIEVOQUJMRShGVExfSklUKQog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93LCB2b2lk
LCAoVk0qKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVy
VXBOb3dJbkxvb3AsIHZvaWQsIChWTSosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXhCaXRzKSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJPU1JFbnRyeU5vdywgY2hh
ciosIChWTSosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXhCaXRzKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3dJbkxvb3AsIHZvaWQsIChWTSosIEND
YWxsVUludDMyIGJ5dGVjb2RlSW5kZXhCaXRzKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblRyaWdnZXJPU1JFbnRyeU5vdywgY2hhciosIChWTSosIENDYWxsVUludDMyIGJ5
dGVjb2RlSW5kZXhCaXRzKSk7CiAjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCiAKIGlubGluZSBh
dXRvIG9wZXJhdGlvbk5ld1R5cGVkQXJyYXlXaXRoU2l6ZUZvclR5cGUoVHlwZWRBcnJheVR5cGUg
dHlwZSkgLT4gZGVjbHR5cGUoJm9wZXJhdGlvbk5ld0ludDhBcnJheVdpdGhTaXplKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDllNTk5YmZm
ZWM4YjkwMGZkNzIzOGVkYzYzOWNlYjU2NDk0M2E5YzguLjhiOGI1YmVjY2Y1ZTRjMTBjMWRkZjkz
N2VmZmJjY2I5N2Y0ZTk4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKQEAgLTEyMiwxMiArMTIyLDEyIEBAIG5hbWVzcGFjZSB7CiBzdGQ6OmF0
b21pYzxpbnQ+IGNvbXBpbGVDb3VudGVyOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT05fV0lUSF9BVFRSSUJVVEVTKGZ0bFVucmVhY2hhYmxlLCBOT19SRVRV
Uk5fRFVFX1RPX0NSQVNILCB2b2lkLCAoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJsb2NrSW5kZXgg
YmxvY2tJbmRleCwgdW5zaWduZWQgbm9kZUluZGV4KSk7Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T05fV0lUSF9BVFRSSUJVVEVTKGZ0bFVucmVhY2hhYmxlLCBOT19SRVRVUk5fRFVFX1RPX0NSQVNI
LCB2b2lkLCAoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJsb2NrSW5kZXggYmxvY2tJbmRleCwgdW5z
aWduZWQgbm9kZUluZGV4KSkKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT05fV0lUSF9BVFRSSUJV
VEVTKGZ0bFVucmVhY2hhYmxlLCBOT19SRVRVUk5fRFVFX1RPX0NSQVNILCB2b2lkLCAoQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIEJsb2NrSW5kZXggYmxvY2tJbmRleCwgQ0NhbGxVSW50MzIgbm9kZUlu
ZGV4KSk7CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT05fV0lUSF9BVFRSSUJVVEVTKGZ0bFVucmVh
Y2hhYmxlLCBOT19SRVRVUk5fRFVFX1RPX0NSQVNILCB2b2lkLCAoQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIEJsb2NrSW5kZXggYmxvY2tJbmRleCwgQ0NhbGxVSW50MzIgbm9kZUluZGV4KSkKIHsKICAg
ICBkYXRhTG9nKCJDcmFzaGluZyBpbiB0aG91Z2h0LXRvLWJlLXVucmVhY2hhYmxlIEZUTC1nZW5l
cmF0ZWQgY29kZSBmb3IgIiwgcG9pbnRlckR1bXAoY29kZUJsb2NrKSwgIiBhdCBiYXNpYyBibG9j
ayAjIiwgYmxvY2tJbmRleCk7CiAgICAgaWYgKG5vZGVJbmRleCAhPSBVSU5UX01BWCkKLSAgICAg
ICAgZGF0YUxvZygiLCBub2RlIEAiLCBub2RlSW5kZXgpOworICAgICAgICBkYXRhTG9nKCIsIG5v
ZGUgQCIsIHVpbnQzMl90KG5vZGVJbmRleCkpOwogICAgIGRhdGFMb2coIi5cbiIpOwogICAgIENS
QVNIKCk7CiB9CkBAIC00NzE1LDE0ICs0NzE1LDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnMuZ2V0KCksIENDYWxsSGVscGVyczo6QWRkcmVz
cyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mU2xvd09wZXJhdGlvbigp
KSwgSW52YWxpZEdQUlJlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0LmNv
ZGVCbG9jaygpLT5nbG9iYWxPYmplY3RGb3Iobm9kZVNlbWFudGljT3JpZ2luKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm9HUFIsIHBhcmFtc1sxXS5ncHIoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zWzBdLmdwcigpLCBpZGVudGlmaWVy
LnJhd0JpdHMoKSkuY2FsbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJh
bXNbMF0uZ3ByKCksIENDYWxsVUludHB0cihpZGVudGlmaWVyLnJhd0JpdHMoKSkpLmNhbGwoKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2xvd1BhdGhDYWxsID0gY2FsbE9wZXJhdGlvbigKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKnN0YXRlLCBwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgaml0LCBu
b2RlU2VtYW50aWNPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2Vw
dGlvbnMuZ2V0KCksIGdlbmVyYXRvci0+c2xvd1BhdGhGdW5jdGlvbigpLCBJbnZhbGlkR1BSUmVn
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCktPmdsb2Jh
bE9iamVjdEZvcihub2RlU2VtYW50aWNPcmlnaW4pLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoZ2VuZXJhdG9yLT5zdHViSW5mbygp
KSwgcGFyYW1zWzFdLmdwcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJh
bXNbMF0uZ3ByKCksIGlkZW50aWZpZXIucmF3Qml0cygpKS5jYWxsKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIoKSwgQ0NhbGxVSW50cHRyKGlkZW50aWZp
ZXIucmF3Qml0cygpKSkuY2FsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICAgaml0Lmp1bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAppbmRleCBm
ZTc5Zjc4ZDM3NTBkNjM0ZGUyMzIzY2FkZGIwNmQ0MTdlODgzYmU3Li5jZjIzMmMyMjdhOGFhMWJj
MTVlYjM4NmI5MjRjMmQ4OGE3NGQ4OTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCkBAIC00OTMsMTAgKzQ5MywxMCBAQCBzdGF0aWMg
dm9pZCBjb21waWxlU3R1YihWTSYgdm0sIHVuc2lnbmVkIGV4aXRJRCwgSklUQ29kZSogaml0Q29k
ZSwgT1NSRXhpdCYgZXhpdAogICAgICAgICApOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGlsZUZUTE9TUkV4aXQsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHVuc2lnbmVkIGV4aXRJRCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGlsZUZUTE9TUkV4aXQsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENDYWxsVUlu
dDMyIGV4aXRJRCkpCiB7CiAgICAgaWYgKHNob3VsZER1bXBEaXNhc3NlbWJseSgpIHx8IE9wdGlv
bnM6OnZlcmJvc2VPU1IoKSB8fCBPcHRpb25zOjp2ZXJib3NlRlRMT1NSRXhpdCgpKQotICAgICAg
ICBkYXRhTG9nKCJDb21waWxpbmcgT1NSIGV4aXQgd2l0aCBleGl0SUQgPSAiLCBleGl0SUQsICJc
biIpOworICAgICAgICBkYXRhTG9nKCJDb21waWxpbmcgT1NSIGV4aXQgd2l0aCBleGl0SUQgPSAi
LCB1aW50MzJfdChleGl0SUQpLCAiXG4iKTsKIAogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+ZGVw
cmVjYXRlZFZNKCk7CiAgICAgLy8gRG9uJ3QgbmVlZCBhbiBBY3RpdmVTY3JhdGNoQnVmZmVyU2Nv
cGUgaGVyZSBiZWNhdXNlIHdlIERlZmVyR0NGb3JBV2hpbGUgYmVsb3cuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuaAppbmRleCA4NDQ1YjAxNzAyZWY4
Nzg3NWUxOWFjZDk4OGU0ZWM1OWYzZjdhMGUwLi42OWJiNjc2Mzg2YWYwNGFjYmIwYjAwYmM5ZGIx
Yzc5ZDI4N2M5YjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9T
UkV4aXRDb21waWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhp
dENvbXBpbGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBG
VEwgewogCiAvLyBUYWtlcyB0aGUgY2FsbCBmcmFtZSBhbmQgdGhlIGluZGV4IG9mIHRoZSBleGl0
LCBhbmQgcmV0dXJucyB0aGUgYWRkcmVzcyB0bwogLy8ganVtcCB0by4KLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTE9TUkV4aXQsIHZvaWQqLCAoQ2FsbEZyYW1l
KiwgdW5zaWduZWQgZXhpdElEKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBpbGVGVExPU1JFeGl0LCB2b2lkKiwgKENhbGxGcmFtZSosIENDYWxsVUludDMyIGV4aXRJ
RCkpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCmluZGV4IDM5NjZiNGRhZmU4NjBmOWE5MjZlODk5MzVk
MWI5ZTFjZjk3MDc1YTQuLjAxNTQ5ZWQxN2E2NWIzMzhiZmU1ODAwYjU4YjIzNjljMGJiMjE5M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcApAQCAtNjk5
LDcgKzY5OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6
ZU9iamVjdEluT1NSLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplCiAgICAgfQogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nQW5kR2V0SW5kZXgsIHVuc2ln
bmVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVW5saW5rZWRTdHJpbmdK
dW1wVGFibGUqIHVubGlua2VkVGFibGUsIEpTU3RyaW5nKiBzdHJpbmcpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdldEluZGV4LCBDQ2FsbFVJbnQz
MiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVt
cFRhYmxlKiB1bmxpbmtlZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtNzEzLDcgKzcxMyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdBbmRHZXRJbmRleCwgdW5zaWduZWQsIChKU0dsb2Jh
bE9iCiAgICAgcmV0dXJuIHVubGlua2VkVGFibGUtPmluZGV4Rm9yVmFsdWUoc3RySW1wbCwgc3Rk
OjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVjdEFzVHlwZW9mVHlwZSwgaW50MzJfdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5cGUsIENDYWxsSW50
MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTcyOCw3ICs3MjgsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0QXNUeXBlb2ZUeXBlLCBpbnQzMl90
LCAoSlNHbG9iYWxPYgogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihUeXBlb2ZUeXBl
OjpPYmplY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGls
ZUZUTExhenlTbG93UGF0aCwgdm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWduZWQg
aW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5
U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENDYWxsVUludDMyIGluZGV4
KSkKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIC8vIERv
bid0IG5lZWQgYW4gQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGhlcmUgYmVjYXVzZSB3ZSBEZWZl
ckdDRm9yQVdoaWxlLgpAQCAtNzQ1LDEwICs3NDUsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiBj
YWwKICAgICByZXR1cm4gbGF6eVNsb3dQYXRoLnN0dWIoKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJl
c3MoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhvcGVy
YXRpb25SZXBvcnRCb3VuZHNDaGVja0VsaW1pbmF0aW9uRXJyb3JBbmRDcmFzaCwgTk9fUkVUVVJO
X0RVRV9UT19DUkFTSCwgdm9pZCwgKGludHB0cl90IGNvZGVCbG9ja0FzSW50UHRyLCBpbnQzMl90
IG5vZGVJbmRleCwgaW50MzJfdCBjaGlsZDFJbmRleCwgaW50MzJfdCBjaGlsZDJJbmRleCwgaW50
MzJfdCBjaGVja2VkSW5kZXgsIGludDMyX3QgYm91bmRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTl9XSVRIX0FUVFJJQlVURVMob3BlcmF0aW9uUmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlv
bkVycm9yQW5kQ3Jhc2gsIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChDQ2FsbEludHB0
ciBjb2RlQmxvY2tBc0ludFB0ciwgQ0NhbGxJbnQzMiBub2RlSW5kZXgsIENDYWxsSW50MzIgY2hp
bGQxSW5kZXgsIENDYWxsSW50MzIgY2hpbGQySW5kZXgsIENDYWxsSW50MzIgY2hlY2tlZEluZGV4
LCBDQ2FsbEludDMyIGJvdW5kcykpCiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBiaXR3
aXNlX2Nhc3Q8Q29kZUJsb2NrKj4oY29kZUJsb2NrQXNJbnRQdHIpOwotICAgIGRhdGFMb2dMbigi
Qm91bmRzIENoZWNrIEVpbWluYXRpb24gZXJyb3IgZm91bmQgQCBEQCIsIG5vZGVJbmRleCwgIjog
QXNzZXJ0SW5Cb3VuZHMoaW5kZXggREAiLCBjaGlsZDFJbmRleCwgIjogIiwgY2hlY2tlZEluZGV4
LCAiLCBib3VuZHMgREAiLCBjaGlsZDJJbmRleCwgIiAiLCBib3VuZHMsICIpIGluICIsIGNvZGVC
bG9jayk7CisgICAgZGF0YUxvZ0xuKCJCb3VuZHMgQ2hlY2sgRWltaW5hdGlvbiBlcnJvciBmb3Vu
ZCBAIERAIiwgaW50MzJfdChub2RlSW5kZXgpLCAiOiBBc3NlcnRJbkJvdW5kcyhpbmRleCBEQCIs
IGludDMyX3QoY2hpbGQxSW5kZXgpLCAiOiAiLCBpbnQzMl90KGNoZWNrZWRJbmRleCksICIsIGJv
dW5kcyBEQCIsIGludDMyX3QoY2hpbGQySW5kZXgpLCAiICIsIGludDMyX3QoYm91bmRzKSwgIikg
aW4gIiwgY29kZUJsb2NrKTsKICAgICBDUkFTSCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3BlcmF0aW9ucy5oCmluZGV4IDViYjhkMzBiN2IxMDFkNDA2MmI2ZjY2ZTkyYzBl
M2EwZjhkM2ExZTQuLjhkNmQ3NTMwNDYyZTAyNjdiMzAwNzA4ZmE1NWQ3MjhmMTMwOGRlMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5oCkBAIC00MiwxMiArNDIs
MTIgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6ZU9iamVj
dEluT1NSLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmoKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Qb3B1bGF0ZU9iamVjdEluT1NSLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBF
eGl0VGltZU9iamVjdE1hdGVyaWFsaXphdGlvbiosIEVuY29kZWRKU1ZhbHVlKiwgRW5jb2RlZEpT
VmFsdWUqKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZU
TExhenlTbG93UGF0aCwgdm9pZCosIChDYWxsRnJhbWUqLCB1bnNpZ25lZCkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRMTGF6eVNsb3dQYXRoLCB2b2lkKiwg
KENhbGxGcmFtZSosIENDYWxsVUludDMyKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU3dpdGNoU3RyaW5nQW5kR2V0SW5kZXgsIHVuc2lnbmVkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBVbmxpbmtlZFN0cmluZ0p1bXBUYWJsZSosIEpTU3RyaW5nKikpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5cGUsIGlu
dDMyX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nQW5kR2V0SW5kZXgsIENDYWxsVUludDMyLCAoSlNH
bG9iYWxPYmplY3QqLCBjb25zdCBVbmxpbmtlZFN0cmluZ0p1bXBUYWJsZSosIEpTU3RyaW5nKikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVv
ZlR5cGUsIENDYWxsSW50MzIsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKIAotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXBvcnRCb3VuZHNDaGVja0VsaW1pbmF0aW9u
RXJyb3JBbmRDcmFzaCwgdm9pZCwgKGludHB0cl90IGNvZGVCbG9ja0FzSW50UHRyLCBpbnQzMl90
LCBpbnQzMl90LCBpbnQzMl90LCBpbnQzMl90LCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJlcG9ydEJvdW5kc0NoZWNrRWxpbWluYXRpb25FcnJvckFuZENy
YXNoLCB2b2lkLCAoQ0NhbGxJbnRwdHIgY29kZUJsb2NrQXNJbnRQdHIsIENDYWxsSW50MzIsIEND
YWxsSW50MzIsIENDYWxsSW50MzIsIENDYWxsSW50MzIsIENDYWxsSW50MzIpKTsKIAogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkRGRwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBl
cnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li44NTVl
ZDQwYjY1OTFmNDM3NGQxMmRjMWMzOTZlMTcwNzMxNDIxZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoSklU
KQogCiAjaW5jbHVkZSAiQXNzZW1ibHlIZWxwZXJzLmgiCisjaW5jbHVkZSAiQ0NhbGxUeXBlcy5o
IgogI2luY2x1ZGUgIkZQUkluZm8uaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAi
U3RhY2tBbGlnbm1lbnQuaCIKQEAgLTYwOCwyMyArNjA5LDIzIEBAIHByaXZhdGU6CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJn
cywgdW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQg
bnVtRlBSU291cmNlcywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQ
UkFyZ3MsIHVuc2lnbmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZSwgdHlwZW5hbWUg
QXJnLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgIEFMV0FZU19JTkxJTkUgc3RkOjplbmFibGVfaWZf
dDwKLSAgICAgICAgc3RkOjppc19zYW1lPENVUlJFTlRfQVJHVU1FTlRfVFlQRSwgQXJnPjo6dmFs
dWUKLSAgICAgICAgJiYgc3RkOjppc19pbnRlZ3JhbDxDVVJSRU5UX0FSR1VNRU5UX1RZUEU+Ojp2
YWx1ZQotICAgICAgICAmJiAoc2l6ZW9mKENVUlJFTlRfQVJHVU1FTlRfVFlQRSkgPD0gNCk+Cisg
ICAgQUxXQVlTX0lOTElORSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfaW50ZWdyYWxfdjxBcmc+
ICYmIHN0ZDo6aXNfc2FtZV92PENVUlJFTlRfQVJHVU1FTlRfVFlQRSwgQ0NhbGxJbnRlZ2VyPEFy
Zz4+PgogICAgIHNldHVwQXJndW1lbnRzSW1wbChBcmdDb2xsZWN0aW9uPG51bUdQUkFyZ3MsIG51
bUdQUlNvdXJjZXMsIG51bUZQUkFyZ3MsIG51bUZQUlNvdXJjZXMsIG51bUNyb3NzU291cmNlcywg
ZXh0cmFHUFJBcmdzLCBub25BcmdHUFJzLCBleHRyYVBva2U+IGFyZ1NvdXJjZVJlZ3MsIEFyZyBh
cmcsIEFyZ3MuLi4gYXJncykKICAgICB7Ci0gICAgICAgIHNldHVwQXJndW1lbnRzSW1wbDxPcGVy
YXRpb25UeXBlPihhcmdTb3VyY2VSZWdzLCBUcnVzdGVkSW1tMzIoYXJnKSwgYXJncy4uLik7Cisg
ICAgICAgIGlmIGNvbnN0ZXhwciAoc2l6ZW9mKEFyZykgPD0gNCkKKyAgICAgICAgICAgIHNldHVw
QXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlPihhcmdTb3VyY2VSZWdzLCBUcnVzdGVkSW1tMzIo
YXJnKSwgYXJncy4uLik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNldHVwQXJndW1lbnRz
SW1wbDxPcGVyYXRpb25UeXBlPihhcmdTb3VyY2VSZWdzLCBUcnVzdGVkSW1tNjQoYXJnKSwgYXJn
cy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5z
aWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBS
QXJncywgdW5zaWduZWQgbnVtRlBSU291cmNlcywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1
bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2lnbmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJh
UG9rZSwgdHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgIEFMV0FZU19JTkxJTkUg
c3RkOjplbmFibGVfaWZfdDwKLSAgICAgICAgc3RkOjppc19zYW1lPENVUlJFTlRfQVJHVU1FTlRf
VFlQRSwgQXJnPjo6dmFsdWUKLSAgICAgICAgJiYgc3RkOjppc19pbnRlZ3JhbDxDVVJSRU5UX0FS
R1VNRU5UX1RZUEU+Ojp2YWx1ZQotICAgICAgICAmJiAoc2l6ZW9mKENVUlJFTlRfQVJHVU1FTlRf
VFlQRSkgPT0gOCk+CisgICAgQUxXQVlTX0lOTElORSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNf
c2FtZV92PEFyZywgQ0NhbGxJbnRlZ2VyPHR5cGVuYW1lIEFyZzo6SW50ZWdlclR5cGU+PiAmJiBz
dGQ6OmlzX3NhbWVfdjxDVVJSRU5UX0FSR1VNRU5UX1RZUEUsIEFyZz4+CiAgICAgc2V0dXBBcmd1
bWVudHNJbXBsKEFyZ0NvbGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNlcywgbnVtRlBS
QXJncywgbnVtRlBSU291cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIG5vbkFy
Z0dQUnMsIGV4dHJhUG9rZT4gYXJnU291cmNlUmVncywgQXJnIGFyZywgQXJncy4uLiBhcmdzKQog
ICAgIHsKLSAgICAgICAgc2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJj
ZVJlZ3MsIFRydXN0ZWRJbW02NChhcmcpLCBhcmdzLi4uKTsKKyAgICAgICAgaWYgY29uc3RleHBy
IChzaXplb2YodHlwZW5hbWUgQXJnOjpJbnRlZ2VyVHlwZSkgPD0gNCkKKyAgICAgICAgICAgIHNl
dHVwQXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlPihhcmdTb3VyY2VSZWdzLCBUcnVzdGVkSW1t
MzIodHlwZW5hbWUgQXJnOjpJbnRlZ2VyVHlwZShhcmcpKSwgYXJncy4uLik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHNldHVwQXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlPihhcmdTb3Vy
Y2VSZWdzLCBUcnVzdGVkSW1tNjQodHlwZW5hbWUgQXJnOjpJbnRlZ2VyVHlwZShhcmcpKSwgYXJn
cy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5z
aWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBS
QXJncywgdW5zaWduZWQgbnVtRlBSU291cmNlcywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1
bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2lnbmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJh
UG9rZSwgdHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4uLiBBcmdzPgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbFR5cGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0NDYWxsVHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTJiMTc2OTY0NjFkN2YyYzZlNzA1YmVlYTk2
MmZiMzAzMmFlMDFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DQ2FsbFR5cGVzLmgKQEAgLTAsMCArMSw3MCBAQAorI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoSklUKQorCisjaW5jbHVkZSA8d3RmL1N0ZEludEV4dHJhcy5oPgorCituYW1lc3BhY2UgSlND
IHsKKworI2lmIENQVShSSVNDVjY0KQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCBSSVND
VjY0Q0NhbGxJbnRlZ2VyIHsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihUKSA8PSBzaXplb2Yo
Q1BVUmVnaXN0ZXIpKTsKKyAgICB1c2luZyBJbnRlZ2VyVHlwZSA9IFQ7CisKKyAgICBSSVNDVjY0
Q0NhbGxJbnRlZ2VyKFQgdmFsdWUpCisgICAgICAgIDogdmFsdWUodmFsdWUpCisgICAgeyB9CisK
KyAgICBvcGVyYXRvciBUKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc2l6
ZW9mKFQpID09IDQpIHsKKyAgICAgICAgICAgIGFzbSB2b2xhdGlsZSAoCisgICAgICAgICAgICAg
ICAgInNleHQudyAlW291dF92YWx1ZV0sICVbaW5fdmFsdWVdXG5cdCIKKyAgICAgICAgICAgICAg
ICA6IFtvdXRfdmFsdWVdICI9ciIgKHZhbHVlKQorICAgICAgICAgICAgICAgIDogW2luX3ZhbHVl
XSAiciIgKHZhbHVlKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVudW1UeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxl
X2lmX3Q8c3RkOjppc19lbnVtX3Y8RW51bVR5cGU+Pj4KKyAgICBvcGVyYXRvciBFbnVtVHlwZSgp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gRW51bVR5cGUoVCgqdGhpcykpOworICAgIH0K
KworICAgIG11dGFibGUgVCB2YWx1ZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit1c2lu
ZyBDQ2FsbEludGVnZXIgPSBSSVNDVjY0Q0NhbGxJbnRlZ2VyPFQ+OworI2Vsc2UKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+CitzdHJ1Y3QgQ0NhbGxJbnRlZ2VyIHsKKyAgICBzdGF0aWNfYXNzZXJ0KHNp
emVvZihUKSA8PSBzaXplb2YoQ1BVUmVnaXN0ZXIpKTsKKyAgICB1c2luZyBJbnRlZ2VyVHlwZSA9
IFQ7CisKKyAgICBDQ2FsbEludGVnZXIoVCB2YWx1ZSkKKyAgICAgICAgOiB2YWx1ZSh2YWx1ZSkK
KyAgICB7IH0KKworICAgIG9wZXJhdG9yIFQoKSBjb25zdCB7IHJldHVybiB2YWx1ZTsgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRW51bVR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZf
dDxzdGQ6OmlzX2VudW1fdjxFbnVtVHlwZT4+PgorICAgIG9wZXJhdG9yIEVudW1UeXBlKCkgY29u
c3QgeyByZXR1cm4gRW51bVR5cGUodmFsdWUpOyB9CisKKyAgICBUIHZhbHVlOworfTsKKyNlbmRp
ZgorCit1c2luZyBDQ2FsbEludDMyID0gQ0NhbGxJbnRlZ2VyPGludDMyX3Q+OwordXNpbmcgQ0Nh
bGxVSW50MzIgPSBDQ2FsbEludGVnZXI8dWludDMyX3Q+OwordXNpbmcgQ0NhbGxJbnQ2NCA9IEND
YWxsSW50ZWdlcjxpbnQ2NF90PjsKK3VzaW5nIENDYWxsVUludDY0ID0gQ0NhbGxJbnRlZ2VyPHVp
bnQ2NF90PjsKK3VzaW5nIENDYWxsSW50cHRyID0gQ0NhbGxJbnRlZ2VyPGludHB0cl90PjsKK3Vz
aW5nIENDYWxsVUludHB0ciA9IENDYWxsSW50ZWdlcjx1aW50cHRyX3Q+OwordXNpbmcgQ0NhbGxT
aXplID0gQ0NhbGxJbnRlZ2VyPHNpemVfdD47CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5k
aWYgLy8gRU5BQkxFKEpJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCmluZGV4IDI1MGI3NzlkNjE0MGYzOTVkN2M2MDJiNGE2NGQwZmIwZWE0NTNiMzYuLjMz
NzM2MmM1MGZmMDMyYzI2YWEyYzRjNjc1NjlhNmUxOGEyMWM1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjA3LDcgKzIwNyw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd0l0ZXJhdG9yUmVzdWx0SXNOb3RPYmpl
Y3QsIHZvaWQsIChKU0dsb2JhCiAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgIkl0ZXJhdG9yIHJlc3VsdCBpbnRlcmZhY2UgaXMgbm90IGFuIG9iamVjdC4iX3MpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2ssIGludDMy
X3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25DYWxsQXJpdHlDaGVjaywgQ0NhbGxJbnQzMiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMjQs
NyArMjI0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxBcml0eUNo
ZWNrLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gbWlzc2luZ0Fy
Z0NvdW50OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29uc3RydWN0
QXJpdHlDaGVjaywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2ssIENDYWxs
SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMjQxLDcgKzI0MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3Qq
CiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1
ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29k
ZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU4LDcgKzI1OCw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnCiB9CiAKIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blRyeUdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVu
dGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkR2Vu
ZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3Myw3ICsyNzMsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2xvdC5nZXRQdXJl
UmVzdWx0KCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0
QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWlu
dHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRK
U1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk1LDcgKzI5NSw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG90LmdldFB1cmVSZXN1
bHQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGly
ZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJh
d0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldEJ5SWREaXJlY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBD
Q2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTMxNCw3ICszMTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlJZERpcmVjdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdAog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xv
dC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RHZW5lcmljLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0R2VuZXJpYywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBD
Q2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTMzMiw3ICszMzIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xv
dC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRpbWl6ZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRC
eUlkRGlyZWN0T3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTM1NCw3ICszNTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8g
c2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWQsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRp
ZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFi
bGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29w
ZShmYWxzZSk7CiAgICAgCkBAIC0zNzUsNyArMzc1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRy
X3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJs
ZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3Bl
KGZhbHNlKTsKICAgICAKQEAgLTM5NCw3ICszOTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2Nv
cGUoZmFsc2UpOwogICAgIApAQCAtNDE3LDcgKzQxNyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplCiAgICAgfSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlJZFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXMsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
RW5jb2RlZCwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1
cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIApAQCAtNDM2LDcgKzQz
Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgaWRlbnQsIHNsb3QpKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVyaWMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
YmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0
aFRoaXNHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCBDQ2Fs
bFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2Nv
cGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC00NTMsNyArNDUzLDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVyaWMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1ZS5n
ZXQoZ2xvYmFsT2JqZWN0LCBpZGVudCwgc2xvdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwgdWludHB0
cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIENDYWxsVUludHB0ciBy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNh
bXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC00NzcsNyArNDc3LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09wdGltaXplLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2wKICAgICB9KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25JbkJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkluQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVk
SlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAg
ICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC01MDUs
NyArNTA1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZEdlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzQm9vbGVhbihiYXNlT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoZ2xvYmFsT2JqZWN0
LCBpZGVudCwgc2xvdCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIApAQCAtNjk3LDcg
KzY5Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQcml2YXRlQnJh
bmRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZVZhbHVlKS0+aGFzUHJpdmF0ZUJyYW5kKGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCcmFuZCkpKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRy
X3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlJZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZh
bHNlKTsKICAgICAKQEAgLTcxNiw3ICs3MTYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgog
ICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgYmFzZVZhbHVlLmNs
YXNzSW5mb09yTnVsbCh2bSksIGlkZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRw
dHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3Vw
ZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNzM1LDcgKzczNSw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhCiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25QdXRCeUlkTm9u
U3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKHZtKSwgaWRlbnQsIHNsb3QuYmFzZSgp
ID09IGJhc2VWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlJZERpcmVjdFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3RT
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsK
ICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBA
IC03NTQsNyArNzU0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWREaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2wKICAgICBMT0dfSUMoKElD
RXZlbnQ6Ok9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QsIGJhc2VWYWx1ZS5jbGFzc0luZm9P
ck51bGwodm0pLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZhbHVlKSk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxV
SW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3Bl
IHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTc3Myw3ICs3NzMsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KgogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uUHV0QnlJ
ZERpcmVjdE5vblN0cmljdCwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCh2bSksIGlkZW50LCBz
bG90LmJhc2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZh
bHNlKTsKICAgICAKQEAgLTgwNSw3ICs4MDUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlJZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqCiAg
ICAgICAgIHJlcGF0Y2hQdXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBz
dHJ1Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpCeUlkLCBQ
dXRLaW5kOjpOb3REaXJlY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlJZE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJ
ZE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRl
bnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFs
c2UpOwogICAgIApAQCAtODM3LDcgKzgzNyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjCiAg
ICAgICAgIHJlcGF0Y2hQdXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBz
dHJ1Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpCeUlkLCBQ
dXRLaW5kOjpOb3REaXJlY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2Nv
cGUoZmFsc2UpOwogICAgIApAQCAtODY4LDcgKzg2OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2Jh
bE9iCiAgICAgICAgIHJlcGF0Y2hQdXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZU9i
amVjdCwgc3RydWN0dXJlLCBpZGVudGlmaWVyLCBzbG90LCAqc3R1YkluZm8sIFB1dEJ5S2luZDo6
QnlJZCwgUHV0S2luZDo6RGlyZWN0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90
IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRy
IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVy
U2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTkzOSw3ICs5MzksNyBAQCBBTFdBWVNfSU5M
SU5FIHN0YXRpYyB2b2lkIGRlZmluZVByaXZhdGVGaWVsZChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplYwogICAgIGNhbGxiYWNrKHZtLCBjb2RlQmxvY2ssIG9sZFN0cnVjdHVyZSwg
cHV0U2xvdCwgaWRlbnQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZp
bmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtOTUyLDcgKzk1Miw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGVmaW5lUHJpdmF0ZUZpZWxk
U3RyaWN0LCB2b2lkLCAoSlNHbG9iCiAgICAgZGVmaW5lUHJpdmF0ZUZpZWxkKHZtLCBnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBpZGVudGlmaWVyLCB2YWx1ZSwgW10oVk0mLCBD
b2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBQdXRQcm9wZXJ0eVNsb3QmLCBjb25zdCBJZGVudGlmaWVy
JikgeyB9KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRE
ZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50
cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1
cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC05NzUsNyArOTc1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwKICAgICB9KTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmll
bGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2Fs
bFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTk4OCw3ICs5ODgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsTwogICAg
IHNldFByaXZhdGVGaWVsZCh2bSwgZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwg
aWRlbnRpZmllciwgdmFsdWUsIFtdKFZNJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlKiwgUHV0UHJv
cGVydHlTbG90JiwgY29uc3QgSWRlbnRpZmllciYpIHsgfSk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1p
emUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAg
ICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTU1Myw3ICsxNTUzLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblZpcnR1YWxDYWxsLCBTbG93UGF0aFJldHVyblR5cGUsIChD
YWxsRnJhbWUqIGMKICAgICByZXR1cm4gdmlydHVhbEZvcldpdGhGdW5jdGlvbihnbG9iYWxPYmpl
Y3QsIGNhbGxlZUZyYW1lLCBjYWxsTGlua0luZm8sIGNhbGxlZUFzRnVuY3Rpb25DZWxsSWdub3Jl
ZCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzcywg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3MsIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTYyLDcgKzE1
NjIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3MsIHNp
emVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBqc0xlc3M8dHJ1ZT4o
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AyKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b21wYXJlTGVzc0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzc0VxLCBDQ2FsbFNpemUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMTU3MSw3ICsxNTcxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVMZXNzRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1
cm4ganNMZXNzRXE8dHJ1ZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
MSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdy
ZWF0ZXIsIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTgwLDcgKzE1ODAsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYQogICAgIHJldHVybiBqc0xlc3M8ZmFsc2U+KGdsb2JhbE9iamVjdCwgSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDIpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSkpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcSwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcSwgQ0NhbGxTaXplLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1ODksNyAr
MTU4OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRl
ckVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIGpzTGVzc0VxPGZh
bHNlPihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSwgSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRPcDEpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUVxLCBDQ2FsbFNpemUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTYwMSw3ICsxNjAxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bXBhcmVFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICNpZiBVU0UoSlNW
QUxVRTY0KQogSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdF
cSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IGxlZnQsIEpTQ2VsbCogcmlnaHQpKQogI2Vsc2UKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlU3RyaW5nRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0VxLCBDQ2FsbFNpemUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGxlZnQsIEpTQ2VsbCogcmlnaHQpKQogI2VuZGlmCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTYxNiw3ICsxNjE2LDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcSwgc2l6ZV90
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICNlbmRpZgogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aWN0RXEsIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjI5LDcgKzE2MjksNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYgogfQogCiAjaWYgVVNFKEJJR0lOVDMyKQotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVFcUhlYXBCaWdJbnRUb0ludDMyLCBzaXplX3QsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGhlYXBCaWdJbnQsIGludDMyX3Qgc21hbGxJ
bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcUhlYXBCaWdJ
bnRUb0ludDMyLCBDQ2FsbFNpemUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwqIGhlYXBCaWdJbnQsIENDYWxsSW50MzIgc21hbGxJbnQpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0xNjQxLDcgKzE2NDEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZUVxSGVhcEJpZ0ludFRvSW50MzIsIHNpemVfdCwgKEpTR2xvYmFs
TwogfQogI2VuZGlmCiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJh
eVdpdGhQcm9maWxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEpTVmFsdWUqIHZhbHVl
cywgaW50IHNpemUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5
V2l0aFByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgY29uc3QgSlNWYWx1ZSogdmFsdWVz
LCBDQ2FsbEludDMyIHNpemUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0x
ODE0LDcgKzE4MTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFuZGxl
VHJhcHMsIFVudXNlZFB0ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWcsIHZvaWQs
IChWTSogdm1Qb2ludGVyLCBpbnQzMl90IGRlYnVnSG9va1R5cGUpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxJbnQz
MiBkZWJ1Z0hvb2tUeXBlKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4MzAsNyArMTgz
MCw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUFsbFByZWRpY3Rpb25zQW5kT3B0aW1pemVBZnRlcldh
cm1VcChDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICBjb2RlQmxvY2stPm9wdGltaXplQWZ0ZXJX
YXJtVXAoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXpl
LCBTbG93UGF0aFJldHVyblR5cGUsIChWTSogdm1Qb2ludGVyLCB1aW50MzJfdCBieXRlY29kZUlu
ZGV4Qml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT3B0aW1pemUsIFNs
b3dQYXRoUmV0dXJuVHlwZSwgKFZNKiB2bVBvaW50ZXIsIENDYWxsVUludDMyIGJ5dGVjb2RlSW5k
ZXhCaXRzKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIwNTgsNyArMjA1OCw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgU2xvd1BhdGhSZXR1cm5U
eXBlLCAoVk0qIHZtUG9pbnRlciwKICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KG51bGxwdHIsIG51
bGxwdHIpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50
ZXJBdENhdGNoLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90IGJ5dGVjb2RlSW5kZXhC
aXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0
Y2gsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxVSW50MzIgYnl0ZWNvZGVJbmRleEJpdHMp
KQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjA4Miw3ICsyMDgyLDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaCwgY2hhciosIChWTSog
dm1Qb2ludGVyLCB1aW4KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFuZFZhbHVlUHJvZmlsZSwgY2hh
ciosIChWTSogdm1Qb2ludGVyLCB1aW50MzJfdCBieXRlY29kZUluZGV4Qml0cykpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoQW5kVmFsdWVQcm9m
aWxlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIENDYWxsVUludDMyIGJ5dGVjb2RlSW5kZXhCaXRz
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxMzUsNyArMjEzNSw3IEBAIHN0YXRpYyB2
b2lkIHB1dEFjY2Vzc29yQnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmpl
Y3QqIGJhc2UsIEpTVmFsCiAgICAgICAgIGJhc2UtPnB1dFNldHRlcihnbG9iYWxPYmplY3QsIHBy
b3BlcnR5S2V5LCBhY2Nlc3NvciwgYXR0cmlidXRlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJf
dCBvcHRpb25zLCBKU0NlbGwqIGdldHRlcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0R2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBDQ2FsbEludDMyIG9wdGlv
bnMsIEpTQ2VsbCogZ2V0dGVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MjE0OCw3ICsyMTQ4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdl
dHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBiYXNlT2JqLT5w
dXRHZXR0ZXIoZ2xvYmFsT2JqZWN0LCB1aWQsIGdldHRlciwgb3B0aW9ucyk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBs
KiB1aWQsIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKiBzZXR0ZXIpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgQ0Nh
bGxJbnQzMiBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTIxNjEsNyArMjE2MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRTZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAg
ICAgYmFzZU9iai0+cHV0U2V0dGVyKGdsb2JhbE9iamVjdCwgdWlkLCBzZXR0ZXIsIG9wdGlvbnMp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlWYWws
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdl
dHRlcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlWYWws
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIENDYWxsSW50MzIgYXR0cmlidXRlLCBKU0NlbGwq
IGdldHRlcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxNzAsNyArMjE3
MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcHV0QWNjZXNzb3JCeVZhbChnbG9i
YWxPYmplY3QsIGFzT2JqZWN0KGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlw
dCksIGF0dHJpYnV0ZSwgYXNPYmplY3QoZ2V0dGVyKSwgQWNjZXNzb3JUeXBlOjpHZXR0ZXIpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIHNldHRl
cikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIENDYWxsSW50MzIgYXR0cmlidXRlLCBKU0NlbGwqIHNl
dHRlcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxODAsNyArMjE4MCw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiB9CiAKICNpZiBVU0UoSlNWQUxVRTY0KQotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRl
clZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyVmFsdWUpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
LCBDQ2FsbEludDMyIGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRlclZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yMTk3LDcgKzIxOTcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bAogfQogCiAjZWxzZQotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRl
clNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2Jq
ZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBn
ZXR0ZXJDZWxsLCBKU0NlbGwqIHNldHRlckNlbGwpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBDQ2FsbEludDMy
IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXJDZWxsLCBKU0NlbGwqIHNldHRlckNlbGwpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMjE0LDcgKzIyMTQsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbAogfQogI2VuZGlmCiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTT2JqZWN0KiBjb25zdHJ1Y3Rv
ciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhhc0luc3RhbmNlKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tLCBDQ2FsbFNpemUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTT2JqZWN0
KiBjb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhhc0luc3RhbmNlKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjQ3Miw3ICsyNDcyLDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldFByaXZhdGVOYW1l
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBiYXNlVmFsdWUsIGZpZWxkTmFtZVZhbHVlKSk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
Q0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxl
clNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIApAQCAtMjQ5Myw3ICsyNDkzLDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFt
ZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVp
bnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAK
QEAgLTI1MjQsNyArMjUyNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2V0UHJpdmF0ZU5hbWUoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgZmllbGROYW1lKSkpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkR2VuZXJpYywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkR2VuZXJpYywgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1w
bGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC0yNTU4LDcgKzI1NTgsNyBA
QCBzdGF0aWMgYm9vbCBkZWxldGVCeUlkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZN
JiB2bSwgRGVsZXRlUHJvcGVydHlTbG90JgogICAgIHJldHVybiBjb3VsZERlbGV0ZTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJs
ZUlkZW50aWZpZXIsIEVDTUFNb2RlIGVjbWFNb2RlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EZWxldGVCeUlkT3B0aW1pemUsIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyLCBFQ01B
TW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1ODYs
NyArMjU4Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlk
T3B0aW1pemUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmlj
LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRl
bnRpZmllciwgRUNNQU1vZGUgZWNtYU1vZGUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmljLCBDQ2FsbFNpemUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllciwgRUNNQU1vZGUgZWNtYU1vZGUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNjIxLDcgKzI2MjEsNyBAQCBz
dGF0aWMgYm9vbCBkZWxldGVCeVZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYg
dm0sIERlbGV0ZVByb3BlcnR5U2xvdAogICAgIHJldHVybiBjb3VsZERlbGV0ZTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUsIHNpemVf
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRT
dWJzY3JpcHQsIEVDTUFNb2RlIGVjbWFNb2RlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EZWxldGVCeVZhbE9wdGltaXplLCBDQ2FsbFNpemUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFQ01BTW9kZSBl
Y21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2NTEsNyArMjY1
MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbE9wdGlt
aXplLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxHZW5lcmljLCBzaXpl
X3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
LCBFQ01BTW9kZSBlY21hTW9kZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVsZXRlQnlWYWxHZW5lcmljLCBDQ2FsbFNpemUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3MTcsNyArMjcxNyw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9mT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JG
b3J3YXJkQXJndW1lbnRzLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUsIGludDMyX3QgbnVtVXNlZFN0YWNrU2xvdHMsIGludDMyX3QpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVu
dHMsIENDYWxsSW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSwgQ0NhbGxJbnQzMiBudW1Vc2VkU3RhY2tTbG90cywgQ0NhbGxJbnQzMikpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3MjUsNyArMjcyNSw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzLCBpbnQz
Ml90LCAoSlNHbG9iCiAgICAgcmV0dXJuIHNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVudHMoZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIHZtLCBudW1Vc2VkU3RhY2tTbG90cyk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCBpbnQzMl90
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFy
Z3VtZW50cywgaW50MzJfdCBudW1Vc2VkU3RhY2tTbG90cywgaW50MzJfdCBmaXJzdFZhckFyZ09m
ZnNldCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFy
YXJncywgQ0NhbGxJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIENDYWxsSW50MzIgbnVtVXNlZFN0YWNrU2xvdHMsIEND
YWxsSW50MzIgZmlyc3RWYXJBcmdPZmZzZXQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yNzM0LDcgKzI3MzQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KgogICAgIHJl
dHVybiBzaXplRnJhbWVGb3JWYXJhcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCB2bSwgYXJn
dW1lbnRzLCBudW1Vc2VkU3RhY2tTbG90cywgZmlyc3RWYXJBcmdPZmZzZXQpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRzRnJhbWUs
IENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5l
d0NhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QgbGVuZ3RoKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cEZvcndhcmRBcmd1bWVudHNGcmFt
ZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
bmV3Q2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiBsZW5n
dGgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzQzLDcgKzI3NDMsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRz
RnJhbWUsIENhbGxGcmFtZSosIChKU0dsbwogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFtZSwgQ2Fs
bEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogbmV3Q2Fs
bEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IGZpcnN0VmFy
QXJnT2Zmc2V0LCBpbnQzMl90IGxlbmd0aCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEFyZ3VtZW50cywgQ0NhbGxJbnQzMiBmaXJzdFZhckFyZ09mZnNldCwgQ0NhbGxJbnQzMiBsZW5n
dGgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzUzLDcgKzI3NTMsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUsIENh
bGxGcmFtZSosIChKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25vd25L
ZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRLZXksIHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1pbikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhVbmtub3duS2V5VHlwZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkS2V5LCBDQ2FsbFNpemUgdGFibGVJbmRleCwgQ0NhbGxJbnQzMiBtaW4pKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzgwLDcgKzI3ODAsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhVbmtub3duS2V5VHlwZSwgY2hhcios
IChKU0dsb2JhbAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihyZXN1bHQpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25v
d25LZXlUeXBlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRL
ZXksIHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1pbikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKFZNKiB2
bVBvaW50ZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIENDYWxsU2l6ZSB0YWJsZUluZGV4
LCBDQ2FsbEludDMyIG1pbikpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODAxLDcgKzI4
MDEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVu
a25vd25LZXlUeXBlLCBjaGFyKiwgKFZNKiB2bVBvaQogICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU3dpdGNoU3RyaW5nV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIHNpemVfdCB0YWJsZUlu
ZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRo
VW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgQ0NhbGxTaXplIHRhYmxlSW5kZXgpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMDAxLDcgKzMwMDEsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvSGF2ZVByb3BlcnR5U3Rv
cmFnZVdpdGhJbgogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihyZXN1bHQpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZs
eVRvR3Jvd1Byb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBKU09iamVjdCog
b2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSog
dm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbFNpemUgbmV3U2l6ZSkpCiB7CiAgICAg
Vk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5o
CmluZGV4IGQ1ZTlmNWM3MDVhNTg5MzkwNzExYmFmNzM3MGIwMDRiMjYxZmRiODQuLmQ2NTU4YjU1
MWVjNGZkNzE4ZWIyZDA2MDk2Yzg3YWQ3NDUzYzMxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoSklU
KQogCisjaW5jbHVkZSAiQ0NhbGxUeXBlcy5oIgogI2luY2x1ZGUgIkpJVE1hdGhJQ0ZvcndhcmRz
LmgiCiAjaW5jbHVkZSAiSklUT3BlcmF0aW9uVmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIlByaXZh
dGVGaWVsZFB1dEtpbmQuaCIKQEAgLTEyNCwyOSArMTI1LDI3IEBAIHVzaW5nIEpfSklUT3BlcmF0
aW9uX0dQUCA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0ds
b2JhbE9iCiB1c2luZyBKX0pJVE9wZXJhdGlvbl9HUFBQID0gRW5jb2RlZEpTVmFsdWUoSklUX09Q
RVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0Kiwgdm9pZCosIHZvaWQqLCB2b2lk
Kik7CiB1c2luZyBKX0pJVE9wZXJhdGlvbl9HSkogPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFU
SU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpOwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR0pKTWljID0gRW5jb2RlZEpTVmFsdWUo
SklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCB2b2lkKik7Ci11c2luZyBaX0pJVE9wZXJhdGlvbl9HSlpaID0g
aW50MzJfdChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCk7Ci11c2luZyBGX0pJVE9wZXJhdGlvbl9HRkpa
WiA9IENhbGxGcmFtZSooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QpOwogdXNpbmcg
U3BydF9KSVRPcGVyYXRpb25fRUdDbGkgPSBTbG93UGF0aFJldHVyblR5cGUoSklUX09QRVJBVElP
Tl9BVFRSSUJVVEVTICopKENhbGxGcmFtZSosIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbExpbmtJbmZv
Kik7CiB1c2luZyBWX0pJVE9wZXJhdGlvbl9DYiA9IHZvaWQoSklUX09QRVJBVElPTl9BVFRSSUJV
VEVTICopKENvZGVCbG9jayopOwotdXNpbmcgWl9KSVRPcGVyYXRpb25fRyA9IGludDMyX3QgKEpJ
VF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCopOwotdXNpbmcgUF9KSVRP
cGVyYXRpb25fVm1TdFpCID0gY2hhciooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKFZNKiwg
U3RydWN0dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5Kik7Ci11c2luZyBQX0pJVE9wZXJhdGlvbl9H
U3RaQiA9IGNoYXIqKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSopOwordXNpbmcgWl9KSVRPcGVyYXRpb25f
RyA9IENDYWxsSW50MzIoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0
Kik7Cit1c2luZyBQX0pJVE9wZXJhdGlvbl9WbVN0WkIgPSBjaGFyKihKSVRfT1BFUkFUSU9OX0FU
VFJJQlVURVMgKikoVk0qLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludDMyLCBCdXR0ZXJmbHkqKTsKK3Vz
aW5nIFBfSklUT3BlcmF0aW9uX0dTdFpCID0gY2hhciooSklUX09QRVJBVElPTl9BVFRSSUJVVEVT
ICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5Kik7
CiB1c2luZyBKX0pJVE9wZXJhdGlvbl9HSiA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05f
QVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKIHVzaW5nIEpf
SklUT3BlcmF0aW9uX0dKSSA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRF
UyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCop
OwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR0pJUCA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJ
T05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVk
U3RyaW5nSW1wbCosIHZvaWQqKTsKLXVzaW5nIFZfSklUT3BlcmF0aW9uX0dTc2lKSkMgPSB2b2lk
KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpOwotdXNp
bmcgQ19KSVRPcGVyYXRpb25fVFQgPSB1aW50cHRyX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVT
ICopKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKik7Ci11c2luZyBDX0pJVE9wZXJhdGlvbl9CX0dK
c3NKc3MgPSB1aW50cHRyX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopOwotdXNpbmcgU19KSVRPcGVyYXRpb25fR0MgPSBz
aXplX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
Kik7Ci11c2luZyBTX0pJVE9wZXJhdGlvbl9HQ1ogPSBzaXplX3QoSklUX09QRVJBVElPTl9BVFRS
SUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCk7Ci11c2luZyBTX0pJ
VE9wZXJhdGlvbl9HSkogPSBzaXplX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKK3VzaW5nIFZfSklU
T3BlcmF0aW9uX0dTc2lKSkMgPSB2b2lkKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBDQ2FsbFVJbnRwdHIpOwordXNpbmcgQ19KSVRPcGVyYXRpb25fVFQgPSBDQ2FsbFVJ
bnRwdHIoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBs
Kik7Cit1c2luZyBDX0pJVE9wZXJhdGlvbl9CX0dKc3NKc3MgPSBDQ2FsbFVJbnRwdHIoSklUX09Q
RVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmlu
ZyopOwordXNpbmcgU19KSVRPcGVyYXRpb25fR0MgPSBDQ2FsbFNpemUoSklUX09QRVJBVElPTl9B
VFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKik7Cit1c2luZyBTX0pJVE9wZXJh
dGlvbl9HQ1ogPSBDQ2FsbFNpemUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKiwgQ0NhbGxJbnQzMik7Cit1c2luZyBTX0pJVE9wZXJhdGlvbl9HSkog
PSBDQ2FsbFNpemUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHVzaW5nIFZfSklUT3BlcmF0aW9uX0dK
SkogPSB2b2lkKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdXNpbmcgSl9K
SVRPcGVyYXRpb25fR1NzaUpKID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJV
VEVTICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpOwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR1NzaUpKSSA9IEVuY29k
ZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVk
U3RyaW5nSW1wbCopOwogdXNpbmcgVl9KSVRPcGVyYXRpb25fR0NDSiA9IHZvaWQoSklUX09QRVJB
VElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiwgRW5j
b2RlZEpTVmFsdWUpOwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR1NzaUpJID0gRW5jb2RlZEpTVmFs
dWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKLXVzaW5nIFpf
SklUT3BlcmF0aW9uX0dKWlogPSBpbnQzMl90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKLXVzaW5n
IEZfSklUT3BlcmF0aW9uX0dGSlpaID0gQ2FsbEZyYW1lKihKSVRfT1BFUkFUSU9OX0FUVFJJQlVU
RVMgKikoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJf
dCwgaW50MzJfdCk7Cit1c2luZyBaX0pJVE9wZXJhdGlvbl9HSlpaID0gQ0NhbGxJbnQzMihKSVRf
T1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
Q0NhbGxJbnQzMiwgQ0NhbGxJbnQzMik7Cit1c2luZyBGX0pJVE9wZXJhdGlvbl9HRkpaWiA9IENh
bGxGcmFtZSooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIsIENDYWxsSW50MzIpOwogCiAvLyBU
aGlzIG1ldGhvZCBpcyB1c2VkIHRvIGxvb2t1cCBhbiBleGNlcHRpb24gaGFuZGVyLCBrZXllZCBi
eSBmYXVsdExvY2F0aW9uLCB3aGljaCBpcwogLy8gdGhlIHJldHVybiBsb2NhdGlvbiBmcm9tIG9u
ZSBvZiB0aGUgY2FsbHMgb3V0IHRvIG9uZSBvZiB0aGUgaGVscGVyIG9wZXJhdGlvbnMgYWJvdmUu
CkBAIC0xNjEsMjQgKzE2MCwyNCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldFdyYXBwZWRWYWx1ZUZvclRhcmdldCwgRW5jb2RlZEpTVmFsdWUsIChKUwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1JlbW90ZUZ1bmN0aW9uRXhjZXB0aW9uLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTUmVtb3RlRnVuY3Rpb24qKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IsIHZvaWQsIChDb2RlQmxv
Y2sqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxBcml0eUNoZWNr
LCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCop
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2ssIEND
YWxsSW50MzIsIChKU0dsb2JhbE9iamVjdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjaywgQ0NhbGxJbnQzMiwgKEpTR2xvYmFsT2JqZWN0
KikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVHJ5R2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWlu
dHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRHZW5l
cmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIHVp
bnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0
aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlk
V2l0aFRoaXNHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRpbWl6ZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5j
b2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25UcnlHZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkT3B0aW1pemUsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRK
U1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgQ0Nh
bGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRX
aXRoVGhpcywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2VuZXJpYywg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5SWRXaXRoVGhpc09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRC
eUlkRGlyZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0T3B0aW1pemUsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRK
U1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25JbkJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWlu
dHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZEdlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSW5CeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeVZhbEdlbmVyaWMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEFycmF5UHJv
ZmlsZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25JbkJ5VmFsT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEFycmF5UHJvZmlsZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25IYXNQcml2YXRlTmFtZUdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkp
OwpAQCAtMTg2LDE4ICsxODUsMTggQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25IYXNQcml2YXRlTmFtZU9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2wKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5kR2VuZXJpYywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkhhc1ByaXZhdGVCcmFuZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
KTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemUs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RPcHRp
bWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRy
X3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0
cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlk
RGlyZWN0Tm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVs
ZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50
cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFBy
aXZhdGVGaWVsZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkRGlyZWN0U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0cikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0
T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0Nh
bGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRE
ZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRw
dHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZh
dGVGaWVsZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIENDYWxsVUludHB0cikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblNldFByaXZhdGVCcmFuZE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DaGVja1ByaXZhdGVCcmFuZE9wdGltaXpl
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwpAQCAtMjIyLDE5ICsyMjEsMTkgQEAgSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25MaW5rQ2FsbCwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoQ2Fs
bEZyYW1lKiwgSlMKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTGlua1BvbHlt
b3JwaGljQ2FsbCwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoQ2FsbEZyYW1lKiwgSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsTGlua0luZm8qKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blZpcnR1YWxDYWxsLCBTbG93UGF0aFJldHVyblR5cGUsIChDYWxsRnJhbWUqLCBKU0dsb2JhbE9i
amVjdCosIENhbGxMaW5rSW5mbyopKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlTGVzcywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGFyZUxlc3NFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29t
cGFyZUdyZWF0ZXIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVHcmVhdGVyRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlj
dEVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzcywg
Q0NhbGxTaXplLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3NFcSwg
Q0NhbGxTaXplLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIs
IENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVy
RXEsIENDYWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcSwg
Q0NhbGxTaXplLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVx
LCBDQ2FsbFNpemUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSkpOwogI2lmIFVTRShKU1ZBTFVFNjQpCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbXBhcmVTdHJpbmdFcSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqIGhlYXBCaWdJbnQsIGludDMyX3Qgc21hbGxJbnQpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUVxSGVhcEJpZ0ludFRvSW50MzIsIEND
YWxsU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBoZWFwQmlnSW50LCBDQ2FsbEludDMy
IHNtYWxsSW50KSk7CiAjZWxzZQotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b21wYXJlU3RyaW5nRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBsZWZ0LCBK
U0NlbGwqIHJpZ2h0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdFcSwgQ0NhbGxTaXplLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIGxlZnQsIEpT
Q2VsbCogcmlnaHQpKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdBcnJheVdpdGhQcm9maWxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSosIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgaW50MzJfdCBz
aXplKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFBy
b2ZpbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBBcnJheUFsbG9jYXRpb25Q
cm9maWxlKiwgY29uc3QgSlNWYWx1ZSogdmFsdWVzLCBDQ2FsbEludDMyIHNpemUpKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFuZFByb2ZpbGUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBBcnJheUFsbG9jYXRpb25Qcm9maWxl
KiwgRW5jb2RlZEpTVmFsdWUgc2l6ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdGdW5jdGlvbiwgRW5jb2RlZEpTVmFsdWUsIChWTSosIEpTU2NvcGUqLCBKU0NlbGwq
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Z1bmN0aW9uV2l0aElu
dmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludCwgRW5jb2RlZEpTVmFsdWUsIChWTSosIEpT
U2NvcGUqLCBKU0NlbGwqKSk7CkBAIC0yNTMsNTMgKzI1Miw1MyBAQCBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FzeW5jR2VuZXJhdG9yLCBKU0NlbGwqLCAoVk0qLCBTdHJ1
Y3R1cmUqKQogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdSZWdleHAsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSGFuZGxlVHJhcHMsIFVudXNlZFB0ciwgKEpTR2xvYmFsT2JqZWN0Kikp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvdywgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRGVidWcsIHZvaWQsIChWTSosIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGVidWcsIHZvaWQsIChWTSosIENDYWxsSW50MzIpKTsKICNpZiBF
TkFCTEUoREZHX0pJVCkKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT3B0aW1p
emUsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKFZNKiwgdWludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoLCBjaGFyKiwgKFZNKiwgdWlu
dDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJB
dENhdGNoQW5kVmFsdWVQcm9maWxlLCBjaGFyKiwgKFZNKiwgdWludDMyX3QpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT3B0aW1pemUsIFNsb3dQYXRoUmV0dXJuVHlwZSwg
KFZNKiwgQ0NhbGxVSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VHJ5T1NSRW50ZXJBdENhdGNoLCBjaGFyKiwgKFZNKiwgQ0NhbGxVSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoQW5kVmFsdWVQcm9m
aWxlLCBjaGFyKiwgKFZNKiwgQ0NhbGxVSW50MzIpKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3Qg
b3B0aW9ucywgSlNDZWxsKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRHZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpT
VmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBDQ2FsbEludDMyIG9w
dGlvbnMsIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
U2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmlu
Z0ltcGwqLCBDQ2FsbEludDMyIG9wdGlvbnMsIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyIGF0dHJpYnV0ZSwgSlNDZWxsKikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIg
YXR0cmlidXRlLCBKU0NlbGwqKSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QgYXR0cmlidXRlLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
LCBVbmlxdWVkU3RyaW5nSW1wbCosIENDYWxsSW50MzIgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpKTsKICNlbHNlCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwg
VW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiwgSlNDZWxsKikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgQ0NhbGxJ
bnQzMiBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpTQ2VsbCopKTsKICNlbmRpZgogCiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEFycmF5UHJvZmlsZSosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYywg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgQXJy
YXlQcm9maWxlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTdWJzY3JpcHQpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5KSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgc2l6ZV90LCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVp
bnRwdHJfdCwgRUNNQU1vZGUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVsZXRlQnlJZEdlbmVyaWMsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QsIEVDTUFNb2RlKSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUsIHNpemVf
dCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0YXJnZXQsIEVDTUFNb2RlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsR2VuZXJpYywgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIHRhcmdldCwgRUNNQU1vZGUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGVsZXRlQnlJZE9wdGltaXplLCBDQ2FsbFNpemUsIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyLCBFQ01B
TW9kZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkR2Vu
ZXJpYywgQ0NhbGxTaXplLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciwgRUNNQU1vZGUpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxPcHRpbWl6ZSwgQ0NhbGxTaXplLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IEVuY29kZWRKU1ZhbHVlIHRhcmdldCwgRUNNQU1vZGUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxHZW5lcmljLCBDQ2FsbFNpemUsIChKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpT
VmFsdWUgdGFyZ2V0LCBFQ01BTW9kZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXNoV2l0aFNjb3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIGN1
cnJlbnRTY29wZUNlbGwsIEVuY29kZWRKU1ZhbHVlIG9iamVjdCkpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXNoV2l0aFNjb3BlT2JqZWN0LCBKU0NlbGwqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjdXJyZW50U2NvcGVDZWxsLCBKU09iamVj
dCogb2JqZWN0KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluc3RhbmNl
T2ZHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvdG8pKTsKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZk9wdGltaXplLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVk
SlNWYWx1ZSB2YWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvdG8pKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cywgaW50MzJfdCwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG51bVVz
ZWRTdGFja1Nsb3RzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3MsIGludDMyX3QsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBudW1Vc2VkU3Rh
Y2tTbG90cywgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25TZXR1cEZvcndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwg
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGlu
dDMyX3QgbGVuZ3RoKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVw
VmFyYXJnc0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBF
bmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGludDMy
X3QgbGVuZ3RoKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFt
ZUZvckZvcndhcmRBcmd1bWVudHMsIENDYWxsSW50MzIsIChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIGFyZ3VtZW50cywgQ0NhbGxJbnQzMiBudW1Vc2VkU3RhY2tTbG90cywgQ0NhbGxJ
bnQzMiBmaXJzdFZhckFyZ09mZnNldCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCBDQ2FsbEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIENDYWxsSW50MzIgbnVtVXNlZFN0YWNrU2xvdHMsIEND
YWxsSW50MzIgZmlyc3RWYXJBcmdPZmZzZXQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyLCBDQ2FsbElu
dDMyIGxlbmd0aCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZh
cmFyZ3NGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRW5j
b2RlZEpTVmFsdWUgYXJndW1lbnRzLCBDQ2FsbEludDMyIGZpcnN0VmFyQXJnT2Zmc2V0LCBDQ2Fs
bEludDMyIGxlbmd0aCkpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdl
dFByaXZhdGVOYW1lLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEZpZWxkTmFtZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQ
cml2YXRlTmFtZU9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEZpZWxkTmFtZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRQcml2YXRlTmFtZUJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkT3B0aW1pemUsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0UHJpdmF0ZU5hbWVCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50
cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1l
QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZEdlbmVyaWMsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7
CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhVbmtu
b3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGtleSwg
c2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QgbWluKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblN3aXRjaEltbVdpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChWTSosIEVu
Y29kZWRKU1ZhbHVlIGtleSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QgbWluKSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ1dpdGhVbmtub3duS2V5
VHlwZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGtleSwgc2l6ZV90
IHRhYmxlSW5kZXgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNo
Q2hhcldpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIGtleSwgQ0NhbGxTaXplIHRhYmxlSW5kZXgsIENDYWxsSW50MzIgbWluKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaEltbVdpdGhVbmtub3duS2V5VHlw
ZSwgY2hhciosIChWTSosIEVuY29kZWRKU1ZhbHVlIGtleSwgQ0NhbGxTaXplIHRhYmxlSW5kZXgs
IENDYWxsSW50MzIgbWluKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3
aXRjaFN0cmluZ1dpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIGtleSwgQ0NhbGxTaXplIHRhYmxlSW5kZXgpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVNjb3BlRm9yQmFzZWxpbmUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBJbnN0cnVjdGlvbiogYnl0ZWNvZGVQQykpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRGcm9tU2NvcGUsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBJbnN0cnVjdGlvbiogYnl0ZWNvZGVQQykp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRUb1Njb3BlLCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqLCBjb25zdCBJbnN0cnVjdGlvbiogYnl0ZWNvZGVQQykpOwogCiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlYWxsb2NhdGVCdXR0ZXJmbHlUb0hhdmVQ
cm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaXR5LCBjaGFyKiwgKFZNKiwgSlNPYmplY3Qq
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlYWxsb2NhdGVCdXR0ZXJm
bHlUb0dyb3dQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qLCBKU09iamVjdCosIHNpemVfdCBu
ZXdTaXplKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlYWxsb2NhdGVC
dXR0ZXJmbHlUb0dyb3dQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qLCBKU09iamVjdCosIEND
YWxsU2l6ZSBuZXdTaXplKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
V3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChWTSosIEpTQ2VsbCopKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT1NSV3JpdGVCYXJyaWVyLCB2b2lkLCAoVk0qLCBKU0Nl
bGwqKSk7CkBAIC0zMDgsNyArMzA3LDcgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25FeGNlcHRpb25GdXp6LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enpXaXRoQ2FsbEZyYW1lLCB2b2lk
LCAoVk0qKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmV0cmlldmVB
bmRDbGVhckV4Y2VwdGlvbklmQ2F0Y2hhYmxlLCBKU0NlbGwqLCAoVk0qKSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIHNpemVfdCwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3Ry
dWN0b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5jZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tLCBDQ2FsbFNpemUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0
cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpKTsKIAogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVBZGRQ
cm9maWxlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEJpbmFyeUFyaXRoUHJvZmls
ZSopKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcApp
bmRleCAxMDgwNDQ5ZGE2MzhmNjc2ZTA3ZWNhMGY1ODJlM2I5ZmM3YjVlNjkxLi5kMGM3NmI5ZTA5
YWFlYWYxY2YyYThkYWM2YmQ2ZTJjYTgyZTQzOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCkBAIC00MTgsNyArNDE4LDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQ
cm9iZTo6Q29udGV4dCYKICAgICByZXR1cm4gcmV0dXJuV2l0aG91dE9TUkVudHJ5KCk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdywg
dm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgZnVuY3Rpb25JbmRleCkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQs
IChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGZ1bmN0aW9uSW5kZXgpKQogewogICAg
IFdhc206OkNhbGxlZUdyb3VwJiBjYWxsZWVHcm91cCA9ICppbnN0YW5jZS0+Y2FsbGVlR3JvdXAo
KTsKICAgICBBU1NFUlQoaW5zdGFuY2UtPm1lbW9yeSgpLT5tb2RlKCkgPT0gY2FsbGVlR3JvdXAu
bW9kZSgpKTsKQEAgLTQzMyw3ICs0MzMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuYwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZGF0YUxvZ0xuSWYoT3B0aW9uczo6dmVyYm9zZU9T
UigpLCAiQ29uc2lkZXIgT01HUGxhbiBmb3IgWyIsIGZ1bmN0aW9uSW5kZXgsICJdIHdpdGggZXhl
Y3V0ZUNvdW50ZXIgPSAiLCB0aWVyVXAsICIgIiwgUmF3UG9pbnRlcihjYWxsZWUucmVwbGFjZW1l
bnQoKSkpOworICAgIGRhdGFMb2dMbklmKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwgIkNvbnNpZGVy
IE9NR1BsYW4gZm9yIFsiLCB1aW50MzJfdChmdW5jdGlvbkluZGV4KSwgIl0gd2l0aCBleGVjdXRl
Q291bnRlciA9ICIsIHRpZXJVcCwgIiAiLCBSYXdQb2ludGVyKGNhbGxlZS5yZXBsYWNlbWVudCgp
KSk7CiAKICAgICBpZiAoc2hvdWxkVHJpZ2dlck9NR0NvbXBpbGUodGllclVwLCBjYWxsZWUucmVw
bGFjZW1lbnQoKSwgZnVuY3Rpb25JbmRleCkpCiAgICAgICAgIHRyaWdnZXJPTUdSZXBsYWNlbWVu
dENvbXBpbGUodGllclVwLCBjYWxsZWUucmVwbGFjZW1lbnQoKSwgaW5zdGFuY2UsIGNhbGxlZUdy
b3VwLCBmdW5jdGlvbkluZGV4KTsKQEAgLTQ0Miw3ICs0NDIsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSog
aW5zdGFuYwogICAgIGlmIChjYWxsZWUucmVwbGFjZW1lbnQoKSkgewogICAgICAgICAvLyBObyBP
U1IgZW50cnkgcG9pbnRzLiBKdXN0IGRlZmVyIGluZGVmaW5pdGVseS4KICAgICAgICAgaWYgKHRp
ZXJVcC5vc3JFbnRyeVRyaWdnZXJzKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBkYXRhTG9n
TG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJkZWxheU9NR0NvbXBpbGUgcmVwbGFjZW1lbnQg
aW4gcGxhY2UsIGRlbGF5aW5nIGluZGVmaW5pdGVseSBmb3IgIiwgZnVuY3Rpb25JbmRleCk7Cisg
ICAgICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJkZWxheU9NR0Nv
bXBpbGUgcmVwbGFjZW1lbnQgaW4gcGxhY2UsIGRlbGF5aW5nIGluZGVmaW5pdGVseSBmb3IgIiwg
dWludDMyX3QoZnVuY3Rpb25JbmRleCkpOwogICAgICAgICAgICAgdGllclVwLmRvbnRPcHRpbWl6
ZUFueXRpbWVTb29uKGZ1bmN0aW9uSW5kZXgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CkBAIC00NTAsNyArNDUwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21UcmlnZ2VyVGllclVwTm93LCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmMKICAgICAgICAg
Ly8gRm91bmQgb25lIE9TUiBlbnRyeSBwb2ludC4gU2luY2Ugd2UgZG8gbm90IGhhdmUgYSB3YXkg
dG8gamV0dGlzb24gV2FzbTo6Q2FsbGVlIHJpZ2h0IG5vdywgdGhpcyBtZWFucyB0aGF0IHRpZXJV
cCBmdW5jdGlvbiBpcyBub3cgbWVhbmluZ2xlc3MuCiAgICAgICAgIC8vIE5vdCBjYWxsIGl0IGFz
IG11Y2ggYXMgcG9zc2libGUuCiAgICAgICAgIGlmIChjYWxsZWUub3NyRW50cnlDYWxsZWUoKSkg
ewotICAgICAgICAgICAgZGF0YUxvZ0xuSWYoT3B0aW9uczo6dmVyYm9zZU9TUigpLCAiZGVsYXlP
TUdDb21waWxlIHRyaWdnZXIgaW4gcGxhY2UsIGRlbGF5aW5nIGluZGVmaW5pdGVseSBmb3IgIiwg
ZnVuY3Rpb25JbmRleCk7CisgICAgICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3Nl
T1NSKCksICJkZWxheU9NR0NvbXBpbGUgdHJpZ2dlciBpbiBwbGFjZSwgZGVsYXlpbmcgaW5kZWZp
bml0ZWx5IGZvciAiLCB1aW50MzJfdChmdW5jdGlvbkluZGV4KSk7CiAgICAgICAgICAgICB0aWVy
VXAuZG9udE9wdGltaXplQW55dGltZVNvb24oZnVuY3Rpb25JbmRleCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTQ2OCw3ICs0NjgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
ICAgICBBU1NFUlQoISF2bS5jYWxsRnJhbWVGb3JDYXRjaCk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b252ZXJ0VG9JNjQsIENDYWxsSW50NjQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2
KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMzIwNgpAQCAtNDg2LDcgKzQ4Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKCiAg
ICAgcmV0dXJuIHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGlu
dDMyX3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIENDYWxsSW50MzIsIChDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKIHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2lu
ZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzIwNgpAQCAtNTA0LDcgKzUwNCw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIEpTCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2LnRvTnVt
YmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUs
IChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBpbnQ2NF90IHZhbHVl
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVu
Y29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwg
Q0NhbGxJbnQ2NCB2YWx1ZSkpCiB7CiAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBqc0luc3Rh
bmNlID0gaW5zdGFuY2UtPm93bmVyPEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4oKTsKICAgICBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNJbnN0YW5jZS0+Z2xvYmFsT2JqZWN0KCk7CkBA
IC01ODgsNyArNTg4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJh
dGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEkKIC8vIEZJWE1FOiBJdCB3
b3VsZCBiZSBtdWNoIGVhc2llciB0byBpbmxpbmUgdGhpcyB3aGVuIHdlIGhhdmUgYSBnbG9iYWwg
R0MsIHdoaWNoIGNvdWxkIHByb2JhYmx5IG1lYW4gd2UgY291bGQgYXZvaWQKIC8vIHNwaWxsaW5n
IHRoZSByZXN1bHRzIG9udG8gdGhlIHN0YWNrLgogLy8gU2F2ZWQgcmVzdWx0IHJlZ2lzdGVycyBz
aG91bGQgYmUgcGxhY2VkIG9uIHRoZSBzdGFjayBqdXN0IGFib3ZlIHRoZSBsYXN0IHN0YWNrIHJl
c3VsdC4KLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNB
cnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgV2FzbTo6SW5zdGFuY2UqIGlu
c3RhbmNlLCBjb25zdCBTaWduYXR1cmUqIHNpZ25hdHVyZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5n
VHlwZSwgSlNWYWx1ZSogc3RhY2tQb2ludGVyRnJvbUNhbGxlZSkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIFdhc206Okluc3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgU2lnbmF0dXJl
KiBzaWduYXR1cmUsIENDYWxsSW50ZWdlcjxJbmRleGluZ1R5cGU+IGluZGV4aW5nVHlwZSwgSlNW
YWx1ZSogc3RhY2tQb2ludGVyRnJvbUNhbGxlZSkpCiB7CiAgICAgSlNXZWJBc3NlbWJseUluc3Rh
bmNlKiBqc0luc3RhbmNlID0gaW5zdGFuY2UtPm93bmVyPEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4o
KTsKICAgICBWTSYgdm0gPSBqc0luc3RhbmNlLT52bSgpOwpAQCAtNjI3LDE3ICs2MjcsMTcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Xcml0ZUJhcnJpZXJTbG93UGF0
aCwgdm9pZCwgKEpTQ2VsbCogY2VsbCwKICAgICB2bS53cml0ZUJhcnJpZXJTbG93UGF0aChjZWxs
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcGNvdW50MzIsIHVp
bnQzMl90LCAoaW50MzJfdCB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUG9wY291bnQzMiwgQ0NhbGxVSW50MzIsIChDQ2FsbEludDMyIHZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gX19idWlsdGluX3BvcGNvdW50KHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblBvcGNvdW50NjQsIHVpbnQ2NF90LCAoaW50NjRfdCB2YWx1ZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQ2NCwgQ0NhbGxVSW50NjQs
IChDQ2FsbEludDY0IHZhbHVlKSkKIHsKICAgICByZXR1cm4gX19idWlsdGluX3BvcGNvdW50bGwo
dmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR3Jvd01lbW9y
eSwgaW50MzJfdCwgKHZvaWQqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBpbnQzMl90
IGRlbHRhKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Hcm93TWVtb3J5LCBD
Q2FsbEludDMyLCAodm9pZCogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsSW50
MzIgZGVsdGEpKQogewogICAgIGluc3RhbmNlLT5zdG9yZVRvcENhbGxGcmFtZShjYWxsRnJhbWUp
OwogCkBAIC02NTksMTcgKzY1OSwxNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR3Jvd01lbW9yeSwgaW50MzJfdCwgKHZvaWQqIGNhbGxGcmFtZSwgSW5zdGFuYwogICAgIHJl
dHVybiBncm93bi52YWx1ZSgpLnBhZ2VDb3VudCgpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5j
ZSwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3QgdGFyZ2V0VmFsdWUsIHVpbnQzMl90IGNv
dW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwg
Q0NhbGxTaXplLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBkc3RBZGRyZXNzLCBD
Q2FsbFVJbnQzMiB0YXJnZXRWYWx1ZSwgQ0NhbGxVSW50MzIgY291bnQpKQogewogICAgIHJldHVy
biBpbnN0YW5jZS0+bWVtb3J5KCktPmZpbGwoZHN0QWRkcmVzcywgc3RhdGljX2Nhc3Q8dWludDhf
dD4odGFyZ2V0VmFsdWUpLCBjb3VudCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtTWVtb3J5Q29weSwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50
MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRyZXNzLCB1aW50MzJfdCBjb3VudCkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUNvcHksIENDYWxsU2l6
ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgZHN0QWRkcmVzcywgQ0NhbGxVSW50
MzIgc3JjQWRkcmVzcywgQ0NhbGxVSW50MzIgY291bnQpKQogewogICAgIHJldHVybiBpbnN0YW5j
ZS0+bWVtb3J5KCktPmNvcHkoZHN0QWRkcmVzcywgc3JjQWRkcmVzcywgY291bnQpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlRWxlbWVudCwgRW5j
b2RlZEpTVmFsdWUsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIGlu
dDMyX3Qgc2lnbmVkSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdl
dFdhc21UYWJsZUVsZW1lbnQsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBD
Q2FsbFVJbnQzMiB0YWJsZUluZGV4LCBDQ2FsbEludDMyIHNpZ25lZEluZGV4KSkKIHsKICAgICBB
U1NFUlQodGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigp
LnRhYmxlQ291bnQoKSk7CiAgICAgaWYgKHNpZ25lZEluZGV4IDwgMCkKQEAgLTcxMiwxMiArNzEy
LDEyIEBAIHN0YXRpYyBib29sIHNldFdhc21UYWJsZUVsZW1lbnQoSW5zdGFuY2UqIGluc3RhbmNl
LCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRXYXNtVGFibGVFbGVtZW50LCBzaXpl
X3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIHVpbnQzMl90IHNp
Z25lZEluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNWYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudCwgQ0NhbGxTaXplLCAoSW5zdGFuY2Uq
IGluc3RhbmNlLCBDQ2FsbFVJbnQzMiB0YWJsZUluZGV4LCBDQ2FsbFVJbnQzMiBzaWduZWRJbmRl
eCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFsdWUpKQogewogICAgIHJldHVybiBzZXRXYXNtVGFibGVF
bGVtZW50KGluc3RhbmNlLCB0YWJsZUluZGV4LCBzaWduZWRJbmRleCwgZW5jVmFsdWUpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlSW5pdCwgc2l6ZV90
LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBlbGVtZW50SW5kZXgsIHVuc2lnbmVkIHRh
YmxlSW5kZXgsIHVpbnQzMl90IGRzdE9mZnNldCwgdWludDMyX3Qgc3JjT2Zmc2V0LCB1aW50MzJf
dCBsZW5ndGgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUlu
aXQsIENDYWxsU2l6ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgZWxlbWVudElu
ZGV4LCBDQ2FsbFVJbnQzMiB0YWJsZUluZGV4LCBDQ2FsbFVJbnQzMiBkc3RPZmZzZXQsIENDYWxs
VUludDMyIHNyY09mZnNldCwgQ0NhbGxVSW50MzIgbGVuZ3RoKSkKIHsKICAgICBBU1NFUlQoZWxl
bWVudEluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkuZWxlbWVu
dENvdW50KCkpOwogICAgIEFTU0VSVCh0YWJsZUluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1v
ZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKQEAgLTc0MiwxMyArNzQyLDEzIEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVJbml0LCBzaXplX3QsIChJ
bnN0YW5jZSogaW5zdGFuY2UsIHVuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtRWxlbURyb3AsIHZvaWQsIChJbnN0YW5jZSogaW5z
dGFuY2UsIHVuc2lnbmVkIGVsZW1lbnRJbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbUVsZW1Ecm9wLCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJ
bnQzMiBlbGVtZW50SW5kZXgpKQogewogICAgIEFTU0VSVChlbGVtZW50SW5kZXggPCBpbnN0YW5j
ZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5lbGVtZW50Q291bnQoKSk7CiAgICAgaW5z
dGFuY2UtPmVsZW1Ecm9wKGVsZW1lbnRJbmRleCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNl
LCB1bnNpZ25lZCB0YWJsZUluZGV4LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCB1aW50MzJfdCBkZWx0
YSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlR3JvdywgQ0Nh
bGxJbnQzMiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgdGFibGVJbmRleCwgRW5j
b2RlZEpTVmFsdWUgZmlsbCwgQ0NhbGxVSW50MzIgZGVsdGEpKQogewogICAgIEFTU0VSVCh0YWJs
ZUluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3Vu
dCgpKTsKICAgICBhdXRvIG9sZFNpemUgPSBpbnN0YW5jZS0+dGFibGUodGFibGVJbmRleCktPmxl
bmd0aCgpOwpAQCAtNzYyLDcgKzc2Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1CiAgICAg
cmV0dXJuIG9sZFNpemU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtVGFibGVGaWxsLCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxl
SW5kZXgsIHVpbnQzMl90IG9mZnNldCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgdWludDMyX3QgY291
bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIEND
YWxsU2l6ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgdGFibGVJbmRleCwgQ0Nh
bGxVSW50MzIgb2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCBDQ2FsbFVJbnQzMiBjb3VudCkp
CiB7CiAgICAgQVNTRVJUKHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5m
b3JtYXRpb24oKS50YWJsZUNvdW50KCkpOwogCkBAIC03NzgsNyArNzc4LDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIHNpemVfdCwgKEluc3RhbmNl
KiBpbnN0YW5jZSwgdW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5j
ZSwgdW5zaWduZWQgZHN0VGFibGVJbmRleCwgdW5zaWduZWQgc3JjVGFibGVJbmRleCwgaW50MzJf
dCBkc3RPZmZzZXQsIGludDMyX3Qgc3JjT2Zmc2V0LCBpbnQzMl90IGxlbmd0aCkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlQ29weSwgQ0NhbGxTaXplLCAoSW5z
dGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBkc3RUYWJsZUluZGV4LCBDQ2FsbFVJbnQzMiBz
cmNUYWJsZUluZGV4LCBDQ2FsbEludDMyIGRzdE9mZnNldCwgQ0NhbGxJbnQzMiBzcmNPZmZzZXQs
IENDYWxsSW50MzIgbGVuZ3RoKSkKIHsKICAgICBBU1NFUlQoZHN0VGFibGVJbmRleCA8IGluc3Rh
bmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAgICAgQVNT
RVJUKHNyY1RhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24o
KS50YWJsZUNvdW50KCkpOwpAQCAtODExLDE0ICs4MTEsMTQgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5j
ZSwgdW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
dWludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21S
ZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIg
aW5kZXgpKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBpbnN0YW5jZS0+Z2V0RnVuY3Rpb25XcmFw
cGVyKGluZGV4KTsKICAgICBBU1NFUlQodmFsdWUuaXNDYWxsYWJsZShpbnN0YW5jZS0+b3duZXI8
SlNPYmplY3Q+KCktPnZtKCkpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUs
IGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUsIENDYWxsSW50
MzIsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIHRhYmxlSW5kZXgpKQogewogICAg
IHJldHVybiBpbnN0YW5jZS0+dGFibGUodGFibGVJbmRleCktPmxlbmd0aCgpOwogfQpAQCAtODQ5
LDcgKzg0OSw3IEBAIHN0YXRpYyBpbnQzMl90IHdhaXQoVk0mIHZtLCBWYWx1ZVR5cGUqIHBvaW50
ZXIsIFZhbHVlVHlwZSBleHBlY3RlZFZhbHVlLCBpbnQ2NF90CiAgICAgcmV0dXJuIDA7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0MzIsIGlu
dDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGJhc2UsIHVuc2lnbmVkIG9mZnNl
dCwgdWludDMyX3QgdmFsdWUsIGludDY0X3QgdGltZW91dEluTmFub3NlY29uZHMpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQzMiwgQ0NhbGxJbnQz
MiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgYmFzZSwgQ0NhbGxVSW50MzIgb2Zm
c2V0LCBDQ2FsbFVJbnQzMiB2YWx1ZSwgQ0NhbGxJbnQ2NCB0aW1lb3V0SW5OYW5vc2Vjb25kcykp
CiB7CiAgICAgVk0mIHZtID0gaW5zdGFuY2UtPm93bmVyPEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4o
KS0+dm0oKTsKICAgICB1aW50NjRfdCBvZmZzZXRJbk1lbW9yeSA9IHN0YXRpY19jYXN0PHVpbnQ2
NF90PihiYXNlKSArIG9mZnNldDsKQEAgLTg2Nyw3ICs4NjcsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDMyLCBpbnQzMl90LCAoSW5zdGFuY2Uq
IGluc3RhbgogICAgIHJldHVybiB3YWl0PHVpbnQzMl90Pih2bSwgcG9pbnRlciwgdmFsdWUsIHRp
bWVvdXRJbk5hbm9zZWNvbmRzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk1lbW9yeUF0b21pY1dhaXQ2NCwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5z
aWduZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCB1aW50NjRfdCB2YWx1ZSwgaW50NjRfdCB0aW1l
b3V0SW5OYW5vc2Vjb25kcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVt
b3J5QXRvbWljV2FpdDY0LCBDQ2FsbEludDMyLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJ
bnQzMiBiYXNlLCBDQ2FsbFVJbnQzMiBvZmZzZXQsIENDYWxsVUludDY0IHZhbHVlLCBDQ2FsbElu
dDY0IHRpbWVvdXRJbk5hbm9zZWNvbmRzKSkKIHsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+b3du
ZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpLT52bSgpOwogICAgIHVpbnQ2NF90IG9mZnNldElu
TWVtb3J5ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJhc2UpICsgb2Zmc2V0OwpAQCAtODg1LDcg
Kzg4NSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNX
YWl0NjQsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuCiAgICAgcmV0dXJuIHdhaXQ8dWludDY0
X3Q+KHZtLCBwb2ludGVyLCB2YWx1ZSwgdGltZW91dEluTmFub3NlY29uZHMpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljTm90aWZ5LCBpbnQzMl90
LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIGlu
dDMyX3QgY291bnRWYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVt
b3J5QXRvbWljTm90aWZ5LCBDQ2FsbEludDMyLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJ
bnQzMiBiYXNlLCBDQ2FsbFVJbnQzMiBvZmZzZXQsIENDYWxsSW50MzIgY291bnRWYWx1ZSkpCiB7
CiAgICAgdWludDY0X3Qgb2Zmc2V0SW5NZW1vcnkgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oYmFz
ZSkgKyBvZmZzZXQ7CiAgICAgaWYgKG9mZnNldEluTWVtb3J5ICYgKDB4NCAtIDEpKQpAQCAtOTAz
LDE5ICs5MDMsMTkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0
b21pY05vdGlmeSwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW4KICAgICByZXR1cm4gUGFya2lu
Z0xvdDo6dW5wYXJrQ291bnQocG9pbnRlciwgY291bnQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUluaXQsIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0
YW5jZSwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCwgdWludDMyX3QgZHN0QWRkcmVzcywgdWlu
dDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtTWVtb3J5SW5pdCwgQ0NhbGxTaXplLCAoSW5zdGFuY2UqIGluc3Rh
bmNlLCBDQ2FsbFVJbnQzMiBkYXRhU2VnbWVudEluZGV4LCBDQ2FsbFVJbnQzMiBkc3RBZGRyZXNz
LCBDQ2FsbFVJbnQzMiBzcmNBZGRyZXNzLCBDQ2FsbFVJbnQzMiBsZW5ndGgpKQogewogICAgIEFT
U0VSVChkYXRhU2VnbWVudEluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0
aW9uKCkuZGF0YVNlZ21lbnRzQ291bnQoKSk7CiAgICAgcmV0dXJuIGluc3RhbmNlLT5tZW1vcnlJ
bml0KGRzdEFkZHJlc3MsIHNyY0FkZHJlc3MsIGxlbmd0aCwgZGF0YVNlZ21lbnRJbmRleCk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtRGF0YURyb3AsIHZvaWQs
IChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGRhdGFTZWdtZW50SW5kZXgpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRhRHJvcCwgdm9pZCwgKEluc3RhbmNl
KiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgZGF0YVNlZ21lbnRJbmRleCkpCiB7CiAgICAgQVNTRVJU
KGRhdGFTZWdtZW50SW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24o
KS5kYXRhU2VnbWVudHNDb3VudCgpKTsKICAgICBpbnN0YW5jZS0+ZGF0YURyb3AoZGF0YVNlZ21l
bnRJbmRleCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhy
b3csIHZvaWQqLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5z
aWduZWQgZXhjZXB0aW9uSW5kZXgsIHVpbnQ2NF90KiBhcmd1bWVudHMpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5jZSogaW5zdGFu
Y2UsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBDQ2FsbFVJbnQzMiBleGNlcHRpb25JbmRleCwgdWlu
dDY0X3QqIGFyZ3VtZW50cykpCiB7CiAgICAgaW5zdGFuY2UtPnN0b3JlVG9wQ2FsbEZyYW1lKGNh
bGxGcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21P
cGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5o
CmluZGV4IGNmN2MwZDVmZWY0ZGZkMzVjN2NjYTMzNDc5M2ViMjQ0ZWNiYWRkMTUuLmY3NmVmMjhh
MTliZTExYTdmMmMwZTQ5NDFjNTI3NjMxZmViMmQyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaApAQCAtNTEsNDQgKzUxLDQ0IEBAIHZvaWQgbG9hZFZh
bHVlc0ludG9CdWZmZXIoUHJvYmU6OkNvbnRleHQmLCBjb25zdCBTdGFja01hcCYsIHVpbnQ2NF90
KiBidWZmZXIpOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZX0IzSklUKQogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlck9TUkVudHJ5Tm93LCB2b2lkLCAoUHJv
YmU6OkNvbnRleHQmKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21U
cmlnZ2VyVGllclVwTm93LCB2b2lkLCAoSW5zdGFuY2UqLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVw
Tm93LCB2b2lkLCAoSW5zdGFuY2UqLCBDQ2FsbFVJbnQzMiBmdW5jdGlvbkluZGV4KSk7CiAjZW5k
aWYKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwg
KENhbGxGcmFtZSopKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252
ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgQ0NhbGxJbnQ2NCwgKENhbGxGcmFt
ZSosIEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFtZSosIEpT
VmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMy
LCBDQ2FsbEludDMyLCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiwgSlNWYWx1
ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0lu
dCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGludDY0X3QpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVk
SlNWYWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgQ0NhbGxJbnQ2NCkpOwogCiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZy
YW1lKiwgSW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBKU1ZhbHVlLCB1aW50NjRfdCosIHVp
bnQ2NF90KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJl
c3VsdHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqLCBXYXNtOjpJbnN0YW5jZSosIGNvbnN0
IFNpZ25hdHVyZSosIEluZGV4aW5nVHlwZSwgSlNWYWx1ZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZy
YW1lKiwgV2FzbTo6SW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBDQ2FsbEludGVnZXI8SW5k
ZXhpbmdUeXBlPiwgSlNWYWx1ZSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqLCBWTSopKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQzMiwgdWludDMyX3QsIChp
bnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcGNvdW50NjQs
IHVpbnQ2NF90LCAoaW50NjRfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Hcm93TWVtb3J5LCBpbnQzMl90LCAodm9pZCosIEluc3RhbmNlKiwgaW50MzJfdCkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwgc2l6ZV90LCAo
SW5zdGFuY2UqLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCB0YXJnZXRWYWx1ZSwgdWlu
dDMyX3QgY291bnQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1l
bW9yeUNvcHksIHNpemVfdCwgKEluc3RhbmNlKiwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMy
X3Qgc3JjQWRkcmVzcywgdWludDMyX3QgY291bnQpKTsKLQotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3Rh
bmNlKiwgdW5zaWduZWQsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudCwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwg
dWludDMyX3QsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiwg
dWludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxl
SW5pdCwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBlbGVtZW50SW5kZXgsIHVuc2lnbmVk
IHRhYmxlSW5kZXgsIHVpbnQzMl90IGRzdE9mZnNldCwgdWludDMyX3Qgc3JjT2Zmc2V0LCB1aW50
MzJfdCBsZW5ndGgpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbUVs
ZW1Ecm9wLCB2b2lkLCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBlbGVtZW50SW5kZXgpKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlR3JvdywgaW50MzJfdCwgKElu
c3RhbmNlKiwgdW5zaWduZWQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIHVpbnQzMl90IGRlbHRhKSk7
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIHNpemVf
dCwgKEluc3RhbmNlKiwgdW5zaWduZWQsIHVpbnQzMl90IG9mZnNldCwgRW5jb2RlZEpTVmFsdWUg
ZmlsbCwgdWludDMyX3QgY291bnQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbVRhYmxlQ29weSwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBkc3RUYWJsZUlu
ZGV4LCB1bnNpZ25lZCBzcmNUYWJsZUluZGV4LCBpbnQzMl90IGRzdE9mZnNldCwgaW50MzJfdCBz
cmNPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldFdhc21UYWJsZVNpemUsIGludDMyX3QsIChJbnN0YW5jZSosIHVuc2lnbmVkKSk7
Ci0KLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDMy
LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBv
ZmZzZXQsIHVpbnQzMl90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXQpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDY0LCBpbnQzMl90LCAoSW5zdGFu
Y2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIHVpbnQ2NF90IHZh
bHVlLCBpbnQ2NF90IHRpbWVvdXQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTWVtb3J5QXRvbWljTm90aWZ5LCBpbnQzMl90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgdW5z
aWduZWQsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bU1lbW9yeUluaXQsIHNpemVfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRl
eCwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgbGVu
Z3RoKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRhRHJvcCwg
dm9pZCwgKEluc3RhbmNlKiwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCkpOwotCi1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5jZSos
IENhbGxGcmFtZSosIHVuc2lnbmVkIGV4Y2VwdGlvbkluZGV4LCB1aW50NjRfdCopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQzMiwgQ0NhbGxVSW50MzIsIChD
Q2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcGNvdW50
NjQsIENDYWxsVUludDY0LCAoQ0NhbGxJbnQ2NCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Hcm93TWVtb3J5LCBDQ2FsbEludDMyLCAodm9pZCosIEluc3RhbmNlKiwgQ0Nh
bGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5
RmlsbCwgQ0NhbGxTaXplLCAoSW5zdGFuY2UqLCBDQ2FsbFVJbnQzMiBkc3RBZGRyZXNzLCBDQ2Fs
bFVJbnQzMiB0YXJnZXRWYWx1ZSwgQ0NhbGxVSW50MzIgY291bnQpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUNvcHksIENDYWxsU2l6ZSwgKEluc3RhbmNl
KiwgQ0NhbGxVSW50MzIgZHN0QWRkcmVzcywgQ0NhbGxVSW50MzIgc3JjQWRkcmVzcywgQ0NhbGxV
SW50MzIgY291bnQpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRX
YXNtVGFibGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIs
IENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0V2Fz
bVRhYmxlRWxlbWVudCwgQ0NhbGxTaXplLCAoSW5zdGFuY2UqLCBDQ2FsbFVJbnQzMiwgQ0NhbGxV
SW50MzIsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiwgQ0Nh
bGxVSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxl
SW5pdCwgQ0NhbGxTaXplLCAoSW5zdGFuY2UqLCBDQ2FsbFVJbnQzMiBlbGVtZW50SW5kZXgsIEND
YWxsVUludDMyIHRhYmxlSW5kZXgsIENDYWxsVUludDMyIGRzdE9mZnNldCwgQ0NhbGxVSW50MzIg
c3JjT2Zmc2V0LCBDQ2FsbFVJbnQzMiBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbUVsZW1Ecm9wLCB2b2lkLCAoSW5zdGFuY2UqLCBDQ2FsbFVJbnQzMiBl
bGVtZW50SW5kZXgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRh
YmxlR3JvdywgQ0NhbGxJbnQzMiwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIsIEVuY29kZWRKU1Zh
bHVlIGZpbGwsIENDYWxsVUludDMyIGRlbHRhKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIENDYWxsU2l6ZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50
MzIsIENDYWxsVUludDMyIG9mZnNldCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgQ0NhbGxVSW50MzIg
Y291bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlQ29w
eSwgQ0NhbGxTaXplLCAoSW5zdGFuY2UqLCBDQ2FsbFVJbnQzMiBkc3RUYWJsZUluZGV4LCBDQ2Fs
bFVJbnQzMiBzcmNUYWJsZUluZGV4LCBDQ2FsbEludDMyIGRzdE9mZnNldCwgQ0NhbGxJbnQzMiBz
cmNPZmZzZXQsIENDYWxsSW50MzIgbGVuZ3RoKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUsIENDYWxsSW50MzIsIChJbnN0YW5jZSosIENDYWxs
VUludDMyKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRv
bWljV2FpdDMyLCBDQ2FsbEludDMyLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBi
YXNlLCBDQ2FsbFVJbnQzMiBvZmZzZXQsIENDYWxsVUludDMyIHZhbHVlLCBDQ2FsbEludDY0IHRp
bWVvdXQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWlj
V2FpdDY0LCBDQ2FsbEludDMyLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBiYXNl
LCBDQ2FsbFVJbnQzMiBvZmZzZXQsIENDYWxsVUludDY0IHZhbHVlLCBDQ2FsbEludDY0IHRpbWVv
dXQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljTm90
aWZ5LCBDQ2FsbEludDMyLCAoSW5zdGFuY2UqLCBDQ2FsbFVJbnQzMiwgQ0NhbGxVSW50MzIsIEND
YWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9y
eUluaXQsIENDYWxsU2l6ZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIgZGF0YVNlZ21lbnRJbmRl
eCwgQ0NhbGxVSW50MzIgZHN0QWRkcmVzcywgQ0NhbGxVSW50MzIgc3JjQWRkcmVzcywgQ0NhbGxV
SW50MzIgbGVuZ3RoKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21E
YXRhRHJvcCwgdm9pZCwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIgZGF0YVNlZ21lbnRJbmRleCkp
OworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9pZCos
IChJbnN0YW5jZSosIENhbGxGcmFtZSosIENDYWxsVUludDMyIGV4Y2VwdGlvbkluZGV4LCB1aW50
NjRfdCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldGhyb3cs
IHZvaWQqLCAoSW5zdGFuY2UqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSB0aHJvd25WYWx1
ZSkpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Ub0pTRXhjZXB0
aW9uLCB2b2lkKiwgKENhbGxGcmFtZSosIFdhc206OkV4Y2VwdGlvblR5cGUsIEluc3RhbmNlKikp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451893</attachid>
            <date>2022-02-14 05:17:49 -0800</date>
            <delta_ts>2022-02-14 06:38:22 -0800</delta_ts>
            <desc>RFC patch</desc>
            <filename>bug-236367-20220214141747.patch</filename>
            <type>text/plain</type>
            <size>265569</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YjhiNGQyZGJkYzZiOWZlOWJhZTE1NjY0ODUwMGRkNDYyZjg4NDMyLi41ZjkxZGNkNDU0NjM5ZDA4
MDQyMzEyOGZiZjQwZDFiYzc1ODE4MjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDggQEAKKzIwMjItMDItMTQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtKU0NdIEFjY29tbW9kYXRlIHRoZSBSSVNDVjY0IEMgY2FsbGluZyBj
b252ZW50aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzYzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6Cisg
ICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAoSlNDOjp0ZXN0U2ltcGxlKToK
KyAgICAgICAgKEpTQzo6dGVzdEdldEVmZmVjdGl2ZUFkZHJlc3MpOgorICAgICAgICAoSlNDOjp0
ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5j
aFRlc3Q4KToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaFRlc3QxNik6CisgICAgICAgIChKU0M6
OnRlc3RCcmFuY2hUZXN0Qml0MzJSZWdSZWcpOgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoVGVz
dEJpdDMyUmVnSW1tKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaFRlc3RCaXQzMkFkZHJJbW0p
OgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoVGVzdEJpdDY0UmVnUmVnKToKKyAgICAgICAgKEpT
Qzo6dGVzdEJyYW5jaFRlc3RCaXQ2NFJlZ0ltbSk6CisgICAgICAgIChKU0M6OnRlc3RCcmFuY2hU
ZXN0Qml0NjRBZGRySW1tKToKKyAgICAgICAgKEpTQzo6dGVzdENsZWFyQml0NjQpOgorICAgICAg
ICAoSlNDOjp0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFzayk6CisgICAgICAgIChKU0M6OnRlc3RDbGVh
ckJpdHM2NFdpdGhNYXNrVGVybmFyeSk6CisgICAgICAgIChKU0M6OnRlc3RDb3VudFRyYWlsaW5n
WmVyb3M2NEltcGwpOgorICAgICAgICAoSlNDOjp0ZXN0U2hpZnRBbmRBZGQpOgorICAgICAgICAo
SlNDOjp0ZXN0U3RvcmU2NEltbTY0QWRkcmVzc1BvaW50ZXIpOgorICAgICAgICAoSlNDOjp0ZXN0
Q29tcGFyZURvdWJsZSk6CisgICAgICAgIChKU0M6OnRlc3RDb21wYXJlRG91YmxlU2FtZUFyZyk6
CisgICAgICAgIChKU0M6OnRlc3RNdWwzMldpdGhJbW1lZGlhdGVzKToKKyAgICAgICAgKEpTQzo6
dGVzdE11bHRpcGx5U2lnbkV4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5WmVy
b0V4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5QWRkU2lnbkV4dGVuZDMyKToK
KyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5QWRkWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpT
Qzo6dGVzdFN1YjMyQXJncyk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkltbSk6CisgICAgICAg
IChKU0M6OnRlc3RTdWI2NEltbTMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YjY0QXJnSW1tMzIp
OgorICAgICAgICAoSlNDOjp0ZXN0U3ViNjRJbW02NCk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2
NEFyZ0ltbTY0KToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5U3ViU2lnbkV4dGVuZDMyKToK
KyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5U3ViWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpT
Qzo6dGVzdE11bHRpcGx5TmVnU2lnbkV4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRp
cGx5TmVnWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEV4dHJhY3RVbnNpZ25lZEJp
dGZpZWxkMzIpOgorICAgICAgICAoSlNDOjp0ZXN0RXh0cmFjdFVuc2lnbmVkQml0ZmllbGQ2NCk6
CisgICAgICAgIChKU0M6OnRlc3RJbnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5aZXJvMzIpOgorICAg
ICAgICAoSlNDOjp0ZXN0SW5zZXJ0VW5zaWduZWRCaXRmaWVsZEluWmVybzY0KToKKyAgICAgICAg
KEpTQzo6dGVzdEluc2VydEJpdEZpZWxkMzIpOgorICAgICAgICAoSlNDOjp0ZXN0SW5zZXJ0Qml0
RmllbGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0Vu
ZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEV4dHJhY3RJbnNlcnRCaXRmaWVsZEF0TG93RW5kNjQp
OgorICAgICAgICAoSlNDOjp0ZXN0Q2xlYXJCaXRGaWVsZDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dENsZWFyQml0RmllbGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RDbGVhckJpdHNXaXRoTWFzazMy
KToKKyAgICAgICAgKEpTQzo6dGVzdENsZWFyQml0c1dpdGhNYXNrNjQpOgorICAgICAgICAoSlND
Ojp0ZXN0T3JOb3QzMik6CisgICAgICAgIChKU0M6OnRlc3RPck5vdDY0KToKKyAgICAgICAgKEpT
Qzo6dGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIpOgorICAgICAgICAoSlNDOjp0ZXN0
SW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm82NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0
U2lnbmVkQml0ZmllbGQzMik6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0U2lnbmVkQml0Zmll
bGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0UmVnaXN0ZXIzMik6CisgICAgICAgIChK
U0M6OnRlc3RFeHRyYWN0UmVnaXN0ZXI2NCk6CisgICAgICAgIChKU0M6OnRlc3RBZGRXaXRoTGVm
dFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0QWRkV2l0aFJpZ2h0U2hpZnQzMik6CisgICAg
ICAgIChKU0M6OnRlc3RBZGRXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlND
Ojp0ZXN0QWRkV2l0aExlZnRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdEFkZFdpdGhSaWdo
dFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0QWRkV2l0aFVuc2lnbmVkUmlnaHRTaGlmdDY0
KToKKyAgICAgICAgKEpTQzo6dGVzdFN1YldpdGhMZWZ0U2hpZnQzMik6CisgICAgICAgIChKU0M6
OnRlc3RTdWJXaXRoUmlnaHRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YldpdGhVbnNp
Z25lZFJpZ2h0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RTdWJXaXRoTGVmdFNoaWZ0NjQp
OgorICAgICAgICAoSlNDOjp0ZXN0U3ViV2l0aFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6
OnRlc3RTdWJXaXRoVW5zaWduZWRSaWdodFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0WG9y
Tm90MzIpOgorICAgICAgICAoSlNDOjp0ZXN0WG9yTm90NjQpOgorICAgICAgICAoSlNDOjp0ZXN0
WG9yTm90V2l0aExlZnRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvck5vdFdpdGhSaWdo
dFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0WG9yTm90V2l0aFVuc2lnbmVkUmlnaHRTaGlm
dDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvck5vdFdpdGhMZWZ0U2hpZnQ2NCk6CisgICAgICAg
IChKU0M6OnRlc3RYb3JOb3RXaXRoUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdFhv
ck5vdFdpdGhVbnNpZ25lZFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RTdG9yZVBy
ZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN0b3JlUHJlUG9zdEluZGV4NjQpOgor
ICAgICAgICAoSlNDOjp0ZXN0TG9hZFByZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dExvYWRQcmVQb3N0SW5kZXg2NCk6CisgICAgICAgIChKU0M6OnRlc3RBbmRMZWZ0U2hpZnQzMik6
CisgICAgICAgIChKU0M6OnRlc3RBbmRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0
QW5kVW5zaWduZWRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0QW5kTGVmdFNoaWZ0
NjQpOgorICAgICAgICAoSlNDOjp0ZXN0QW5kUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6
dGVzdEFuZFVuc2lnbmVkUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdFhvckxlZnRT
aGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvclJpZ2h0U2hpZnQzMik6CisgICAgICAgIChK
U0M6OnRlc3RYb3JVbnNpZ25lZFJpZ2h0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RYb3JM
ZWZ0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RYb3JSaWdodFNoaWZ0NjQpOgorICAgICAg
ICAoSlNDOjp0ZXN0WG9yVW5zaWduZWRSaWdodFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0
T3JMZWZ0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RPclJpZ2h0U2hpZnQzMik6CisgICAg
ICAgIChKU0M6OnRlc3RPclVuc2lnbmVkUmlnaHRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dE9yTGVmdFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0T3JSaWdodFNoaWZ0NjQpOgorICAg
ICAgICAoSlNDOjp0ZXN0T3JVbnNpZ25lZFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRl
c3RDb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjp0ZXN0TW92ZUNvbmRpdGlvbmFsbHlGbG9h
dGluZ1BvaW50KToKKyAgICAgICAgKEpTQzo6dGVzdE1vdmVDb25kaXRpb25hbGx5RmxvYXRpbmdQ
b2ludFNhbWVBcmcpOgorICAgICAgICAoSlNDOjp0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDgpOgor
ICAgICAgICAoSlNDOjp0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDE2KToKKyAgICAgICAgKEpTQzo6
dGVzdFN1YjMyQXJnSW1tKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlUHJlc2VydmVzR1BSUyk6
CisgICAgICAgIChKU0M6OnRlc3RCeXRlU3dhcCk6CisgICAgICAgIChKU0M6OnRlc3RMb2FkQmFz
ZUluZGV4KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNhY2hlZFB1dEJ5SWQpOgorICAg
ICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpT
Q19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5oOgorICAgICAgICAqIGZ0bC9GVExPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAoSlNDOjpGVEw6OkpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMpOgorICAgICAgICAqIGZ0bC9GVExPcGVy
YXRpb25zLmg6CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpD
Q2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzSW1wbCk6CisgICAgICAgIChKU0M6OkNDYWxsSGVs
cGVyczo6c3RkOjppc19pbnRlZ3JhbDxDVVJSRU5UX0FSR1VNRU5UX1RZUEU+Ojp2YWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgICogaml0L0NDYWxsVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6
OlJJU0NWNjRDQ2FsbEludGVnZXI6OlJJU0NWNjRDQ2FsbEludGVnZXIpOgorICAgICAgICAoSlND
OjpSSVNDVjY0Q0NhbGxJbnRlZ2VyOjpvcGVyYXRvciBUIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
UklTQ1Y2NENDYWxsSW50ZWdlcjo6b3BlcmF0b3IgRW51bVR5cGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpDQ2FsbEludGVnZXI6OkNDYWxsSW50ZWdlcik6CisgICAgICAgIChKU0M6OkNDYWxsSW50
ZWdlcjo6b3BlcmF0b3IgVCBjb25zdCk6CisgICAgICAgIChKU0M6OkNDYWxsSW50ZWdlcjo6b3Bl
cmF0b3IgRW51bVR5cGUgY29uc3QpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBqaXQv
SklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHdhc20vV2FzbU9wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAqIHdh
c20vV2FzbU9wZXJhdGlvbnMuaDoKKwogMjAyMi0wMi0xMyAgTGF1cm8gTW91cmEgIDxsbW91cmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBub24tdW5pZmllZCBidWlsZCBmaXhl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDI3NzdiZTk5YWQxYjdjMDlk
MmI2Yzk1MDIyN2RhYzNlMTczYmNiZGMuLmNhMDExYjE4ODUwZDlhYzVmNDFlOGU2ZGQ0MGJmZDRk
Y2NiNGEyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTg0OCw2ICs4
NDgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IGppdC9CYXNlbGluZUpJVENvZGUuaAogICAgIGppdC9DYWxsRnJhbWVTaHVmZmxlRGF0YS5oCiAg
ICAgaml0L0NDYWxsSGVscGVycy5oCisgICAgaml0L0NDYWxsVHlwZXMuaAogICAgIGppdC9FeGVj
dXRhYmxlQWxsb2NhdG9yLmgKICAgICBqaXQvRXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oCiAgICAg
aml0L0ZQUkluZm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci90ZXN0bWFzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNt
LmNwcAppbmRleCAyMDRmZjQzMDQxNTE5MjNiYjJkOGY3ZmEzNzAxZDY1M2VmNThiMmM0Li4yMjhl
YjI3NDc3M2RjYjBkOTAzMTFhMDNlYjdmOTNjYmNhY2NiMTZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMTM3LDYgKzEzNywxMiBAQCBzdGF0
aWMgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIHZvaWQqIHZhbHVlKQogICAg
IG91dC5wcmludGYoIiVwIiwgdmFsdWUpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IEpTQzo6Q0NhbGxJbnRlZ2Vy
PFQ+JiB2YWx1ZSkKK3sKKyAgICBwcmludEludGVybmFsKG91dCwgc3RhdGljX2Nhc3Q8VD4odmFs
dWUpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMjY4
LDcgKzI3NCw3IEBAIHZvaWQgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoQ0NhbGxIZWxwZXJzJiBqaXQp
CiAKIHZvaWQgdGVzdFNpbXBsZSgpCiB7Ci0gICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxpbnQ+
KFtdIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgIENIRUNLX0VRKGNvbXBpbGVBbmRSdW48Q0Nh
bGxJbnQzMj4oW10gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAgIGVtaXRGdW5jdGlvblBy
b2xvZ3VlKGppdCk7CiAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KDQyKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwogICAgICAgICBlbWl0RnVuY3Rpb25FcGls
b2d1ZShqaXQpOwpAQCAtMjc4LDcgKzI4NCw3IEBAIHZvaWQgdGVzdFNpbXBsZSgpCiAKIHZvaWQg
dGVzdEdldEVmZmVjdGl2ZUFkZHJlc3Moc2l6ZV90IHBvaW50ZXIsIHB0cmRpZmZfdCBsZW5ndGgs
IGludDMyX3Qgb2Zmc2V0LCBDQ2FsbEhlbHBlcnM6OlNjYWxlIHNjYWxlKQogewotICAgIENIRUNL
X0VRKGNvbXBpbGVBbmRSdW48c2l6ZV90PihbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAg
Q0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxDQ2FsbFNpemU+KFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQp
IHsKICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKICAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4ocG9pbnRlcikp
LCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGxlbmd0aCkpLCBHUFJJbmZvOjpyZWdUMSk7CkBA
IC0yOTgsNyArMzA0LDcgQEAgdm9pZCB0ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKGRv
dWJsZSB2YWwsIGludDMyX3QgZXhwZWN0ZWQpCiAjZWxzZQogICAgIGNvbnN0IGJvb2wgaXNCaWdF
bmRpYW4gPSBmYWxzZTsKICNlbmRpZgotICAgIENIRUNLX0VRKGNvbXBpbGVBbmRSdW48aW50Pihb
Jl0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxDQ2Fs
bEludDMyPihbJl0gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAgIGVtaXRGdW5jdGlvblBy
b2xvZ3VlKGppdCk7CiAgICAgICAgIGppdC5zdWJQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIoc3RhY2tBbGlnbm1lbnRCeXRlcygpKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKICAgICAgICAgaWYgKGlzQmlnRW5kaWFuKSB7CkBAIC0zNjYsOCArMzcyLDggQEAg
dm9pZCB0ZXN0QnJhbmNoVGVzdDgoKQogICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8dWludDhfdD4odmFsdWUpCiAgICAgICAgICAgICB9OwotICAgICAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPGludD4odGVzdDEsIGFycmF5KSwgcmVzdWx0KTsKLSAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KHRlc3QyLCBhcnJheSwgMSksIHJlc3VsdCk7CisgICAg
ICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4odGVzdDEsIGFycmF5KSwgcmVzdWx0
KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0MiwgYXJyYXks
IDEpLCByZXN1bHQpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtNDEyLDggKzQxOCw4IEBAIHZv
aWQgdGVzdEJyYW5jaFRlc3QxNigpCiAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDx1aW50MTZfdD4odmFsdWUpCiAgICAgICAgICAgICB9OwotICAgICAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPGludD4odGVzdDEsIGFycmF5KSwgcmVzdWx0KTsKLSAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KHRlc3QyLCBhcnJheSwgMSksIHJlc3VsdCk7CisgICAg
ICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4odGVzdDEsIGFycmF5KSwgcmVzdWx0
KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0MiwgYXJyYXks
IDEpLCByZXN1bHQpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtNDM3LDcgKzQ0Myw3IEBAIHZv
aWQgdGVzdEJyYW5jaFRlc3RCaXQzMlJlZ1JlZygpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZv
ciAoYXV0byB2YWx1ZTIgOiBpbnQzMk9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShp
bnZva2U8aW50Pih0ZXN0LCB2YWx1ZSwgdmFsdWUyKSwgKHZhbHVlPj4odmFsdWUyJTMyKSkmMSk7
CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4odGVzdCwgdmFsdWUsIHZh
bHVlMiksICh2YWx1ZT4+KHZhbHVlMiUzMikpJjEpOwogICAgIH0KIH0KIApAQCAtNDU5LDcgKzQ2
NSw3IEBAIHZvaWQgdGVzdEJyYW5jaFRlc3RCaXQzMlJlZ0ltbSgpCiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGZvciAoYXV0byB2YWx1ZTIgOiBpbnQzMk9wZXJhbmRzKCkpCi0gICAgICAgICAgICBD
SEVDS19FUShpbnZva2U8aW50Pih0ZXN0LCB2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUlMzIpKSYx
KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCB2YWx1ZTIp
LCAodmFsdWUyPj4odmFsdWUlMzIpKSYxKTsKICAgICB9CiB9CiAKQEAgLTQ4MSw3ICs0ODcsNyBA
QCB2b2lkIHRlc3RCcmFuY2hUZXN0Qml0MzJBZGRySW1tKCkKICAgICAgICAgfSk7CiAKICAgICAg
ICAgZm9yIChhdXRvIHZhbHVlMiA6IGludDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTxpbnQ+KHRlc3QsICZ2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUlMzIpKSYxKTsK
KyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCAmdmFsdWUyKSwg
KHZhbHVlMj4+KHZhbHVlJTMyKSkmMSk7CiAgICAgfQogfQogCkBAIC01MDMsNyArNTA5LDcgQEAg
dm9pZCB0ZXN0QnJhbmNoVGVzdEJpdDY0UmVnUmVnKCkKICAgICAgICAgfSk7CiAKICAgICAgICAg
Zm9yIChhdXRvIHZhbHVlMiA6IGludDY0T3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VR
KGludm9rZTxsb25nIGludD4odGVzdCwgdmFsdWUsIHZhbHVlMiksICh2YWx1ZT4+KHZhbHVlMiU2
NCkpJjEpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIHZh
bHVlLCB2YWx1ZTIpLCAodmFsdWU+Pih2YWx1ZTIlNjQpKSYxKTsKICAgICB9CiB9CiAKQEAgLTUy
NSw3ICs1MzEsNyBAQCB2b2lkIHRlc3RCcmFuY2hUZXN0Qml0NjRSZWdJbW0oKQogICAgICAgICB9
KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDogaW50NjRPcGVyYW5kcygpKQotICAgICAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPGxvbmcgaW50Pih0ZXN0LCB2YWx1ZTIpLCAodmFsdWUyPj4o
dmFsdWUlNjQpKSYxKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDY0Pih0
ZXN0LCB2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUlNjQpKSYxKTsKICAgICB9CiB9CiAKQEAgLTU0
Nyw3ICs1NTMsNyBAQCB2b2lkIHRlc3RCcmFuY2hUZXN0Qml0NjRBZGRySW1tKCkKICAgICAgICAg
fSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6IGludDY0T3BlcmFuZHMoKSkKLSAgICAg
ICAgICAgIENIRUNLX0VRKGludm9rZTxsb25nIGludD4odGVzdCwgJnZhbHVlMiksICh2YWx1ZTI+
Pih2YWx1ZSU2NCkpJjEpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+
KHRlc3QsICZ2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUlNjQpKSYxKTsKICAgICB9CiB9CiAKQEAg
LTU3MiwxMiArNTc4LDEyIEBAIHZvaWQgdGVzdENsZWFyQml0NjQoKQogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBiaXRzSW5Xb3JkOyArK2kpIHsKICAgICAgICAgdWludDY0X3Qgd29yZCA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsKICAgICAgICAgY29uc3RleHBy
IHVpbnQ2NF90IG9uZSA9IDE7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVz
dCwgd29yZCwgaSksICh3b3JkICYgfihvbmUgPDwgaSkpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPENDYWxsVUludDY0Pih0ZXN0LCB3b3JkLCBpKSwgKHdvcmQgJiB+KG9uZSA8PCBpKSkpOwog
ICAgIH0KIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBiaXRzSW5Xb3JkOyArK2kpIHsK
ICAgICAgICAgdWludDY0X3Qgd29yZCA9IDA7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50
NjRfdD4odGVzdCwgd29yZCwgaSksIDApOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxV
SW50NjQ+KHRlc3QsIHdvcmQsIGkpLCAwKTsKICAgICB9CiB9CiAKQEAgLTU5NSwxMiArNjAxLDEy
IEBAIHZvaWQgdGVzdENsZWFyQml0czY0V2l0aE1hc2soKQogCiAgICAgZm9yIChhdXRvIHZhbHVl
IDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90IHdvcmQgPSBzdGQ6Om51bWVy
aWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50
NjRfdD4odGVzdCwgd29yZCwgdmFsdWUpLCAod29yZCAmIH52YWx1ZSkpOworICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFs
dWUpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsK
ICAgICAgICAgdWludDY0X3Qgd29yZCA9IDA7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50
NjRfdD4odGVzdCwgd29yZCwgdmFsdWUpLCAwKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsVUludDY0Pih0ZXN0LCB3b3JkLCB2YWx1ZSksIDApOwogICAgIH0KIAogICAgIHVpbnQ2NF90
IHNhdmVkTWFzayA9IDA7CkBAIC02MjQsMTIgKzYzMCwxMiBAQCB2b2lkIHRlc3RDbGVhckJpdHM2
NFdpdGhNYXNrKCkKIAogICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkgewog
ICAgICAgICB1aW50NjRfdCB3b3JkID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1h
eCgpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QyLCB3b3JkLCB2YWx1
ZSksICh3b3JkICYgfnZhbHVlKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2
ND4odGVzdDIsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFsdWUpKTsKICAgICB9CiAKICAgICBm
b3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgdWludDY0X3Qgd29y
ZCA9IDA7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdDIsIHdvcmQsIHZh
bHVlKSwgMCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdDIsIHdv
cmQsIHZhbHVlKSwgMCk7CiAgICAgfQogfQogCkBAIC02NDgsMTIgKzY1NCwxMiBAQCB2b2lkIHRl
c3RDbGVhckJpdHM2NFdpdGhNYXNrVGVybmFyeSgpCiAKICAgICBmb3IgKGF1dG8gdmFsdWUgOiBp
bnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgdWludDY0X3Qgd29yZCA9IHN0ZDo6bnVtZXJpY19s
aW1pdHM8dWludDY0X3Q+OjptYXgoKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90
Pih0ZXN0LCB3b3JkLCB2YWx1ZSksICh3b3JkICYgfnZhbHVlKSk7CisgICAgICAgIENIRUNLX0VR
KGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgd29yZCwgdmFsdWUpLCAod29yZCAmIH52YWx1ZSkp
OwogICAgIH0KIAogICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkgewogICAg
ICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90
Pih0ZXN0LCB3b3JkLCB2YWx1ZSksIDApOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxV
SW50NjQ+KHRlc3QsIHdvcmQsIHZhbHVlKSwgMCk7CiAgICAgfQogCiAgICAgdWludDY0X3Qgc2F2
ZWRNYXNrID0gMDsKQEAgLTY3OSwxMiArNjg1LDEyIEBAIHZvaWQgdGVzdENsZWFyQml0czY0V2l0
aE1hc2tUZXJuYXJ5KCkKIAogICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkg
ewogICAgICAgICB1aW50NjRfdCB3b3JkID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46
Om1heCgpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QyLCB3b3JkLCB2
YWx1ZSksICh3b3JkICYgfnZhbHVlKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJ
bnQ2ND4odGVzdDIsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFsdWUpKTsKICAgICB9CiAKICAg
ICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgdWludDY0X3Qg
d29yZCA9IDA7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdDIsIHdvcmQs
IHZhbHVlKSwgMCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdDIs
IHdvcmQsIHZhbHVlKSwgMCk7CiAgICAgfQogfQogCkBAIC03MTgsMTMgKzcyNCwxMyBAQCBzdGF0
aWMgdm9pZCB0ZXN0Q291bnRUcmFpbGluZ1plcm9zNjRJbXBsKGJvb2wgd29yZENhbkJlWmVybykK
ICAgICBmb3IgKGF1dG8gd29yZCA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICBpZiAoIXdv
cmRDYW5CZVplcm8gJiYgIXdvcmQpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPHNpemVfdD4odGVzdCwgd29yZCksIGV4cGVjdGVkTnVtYmVyT2ZUcmFpbGlu
Z1plcm9zKHdvcmQpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsU2l6ZT4odGVzdCwg
d29yZCksIGV4cGVjdGVkTnVtYmVyT2ZUcmFpbGluZ1plcm9zKHdvcmQpKTsKICAgICB9CiAKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bWJlck9mQml0czsgKytpKSB7CiAgICAgICAgIHVp
bnQ2NF90IG9uZSA9IDE7CiAgICAgICAgIHVpbnQ2NF90IHdvcmQgPSBvbmUgPDwgaTsKLSAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHNpemVfdD4odGVzdCwgd29yZCksIGkpOworICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxTaXplPih0ZXN0LCB3b3JkKSwgaSk7CiAgICAgfQogfQogCkBAIC03
OTEsNyArNzk3LDcgQEAgdm9pZCB0ZXN0U2hpZnRBbmRBZGQoKQogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKIAotICAgICAgICBDSEVDS19FUShpbnZva2U8aW50cHRyX3Q+KHRl
c3QpLCBiYXNlUG9pbnRlciArIChpbmRleCA8PCBzaGlmdCkpOworICAgICAgICBDSEVDS19FUShp
bnZva2U8Q0NhbGxJbnRwdHI+KHRlc3QpLCBiYXNlUG9pbnRlciArIChpbmRleCA8PCBzaGlmdCkp
OwogICAgIH07CiAKICAgICBmb3IgKGF1dG8gaW5kZXggOiBpbnQzMk9wZXJhbmRzKCkpIHsKQEAg
LTgyMSw3ICs4MjcsNyBAQCB2b2lkIHRlc3RTdG9yZTY0SW1tNjRBZGRyZXNzUG9pbnRlcigpCiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGludm9rZTxzaXpl
X3Q+KHRlc3QpOworICAgICAgICBpbnZva2U8Q0NhbGxTaXplPih0ZXN0KTsKICAgICAgICAgQ0hF
Q0tfRVEoZGVzdCwgdmFsdWUpOwogICAgIH07CiAgICAgCkBAIC05MDMsOCArOTA5LDggQEAgdm9p
ZCB0ZXN0Q29tcGFyZURvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlQ29uZGl0aW9uIGNvbmRp
dGlvbikKICAgICAgICAgZm9yIChhdXRvIGIgOiBvcGVyYW5kcykgewogICAgICAgICAgICAgYXJn
MSA9IGE7CiAgICAgICAgICAgICBhcmcyID0gYjsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9r
ZTxpbnQ+KGNvbXBhcmVEb3VibGUpLCBleHBlY3RlZFJlc3VsdChhLCBiKSk7Ci0gICAgICAgICAg
ICBDSEVDS19FUShpbnZva2U8aW50Pihjb21wYXJlRG91YmxlR2VuZXJpYyksIGV4cGVjdGVkUmVz
dWx0KGEsIGIpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPihjb21w
YXJlRG91YmxlKSwgZXhwZWN0ZWRSZXN1bHQoYSwgYikpOworICAgICAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPENDYWxsSW50MzI+KGNvbXBhcmVEb3VibGVHZW5lcmljKSwgZXhwZWN0ZWRSZXN1bHQo
YSwgYikpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtOTczLDggKzk3OSw4IEBAIHZvaWQgdGVz
dENvbXBhcmVEb3VibGVTYW1lQXJnKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24gY29u
ZGl0aW9uKQogICAgIGF1dG8gb3BlcmFuZHMgPSBkb3VibGVPcGVyYW5kcygpOwogICAgIGZvciAo
YXV0byBhIDogb3BlcmFuZHMpIHsKICAgICAgICAgYXJnMSA9IGE7Ci0gICAgICAgIENIRUNLX0VR
KGludm9rZTxpbnQ+KGNvbXBhcmVEb3VibGUpLCBleHBlY3RlZFJlc3VsdChhKSk7Ci0gICAgICAg
IENIRUNLX0VRKGludm9rZTxpbnQ+KGNvbXBhcmVEb3VibGVHZW5lcmljKSwgZXhwZWN0ZWRSZXN1
bHQoYSkpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4oY29tcGFyZURvdWJs
ZSksIGV4cGVjdGVkUmVzdWx0KGEpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50
MzI+KGNvbXBhcmVEb3VibGVHZW5lcmljKSwgZXhwZWN0ZWRSZXN1bHQoYSkpOwogICAgIH0KIH0K
IApAQCAtOTkxLDcgKzk5Nyw3IEBAIHZvaWQgdGVzdE11bDMyV2l0aEltbWVkaWF0ZXMoKQogICAg
ICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpCi0g
ICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PihtdWwsIHZhbHVlKSwgaW1tZWRpYXRlICog
dmFsdWUpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+KG11bCwgdmFs
dWUpLCBpbW1lZGlhdGUgKiB2YWx1ZSk7CiAgICAgfQogfQogCkBAIC0xMDA5LDcgKzEwMTUsNyBA
QCB2b2lkIHRlc3RNdWx0aXBseVNpZ25FeHRlbmQzMigpCiAgICAgICAgIH0pOwogCiAgICAgICAg
IGZvciAoYXV0byB2YWx1ZTIgOiBpbnQzMk9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19F
UShpbnZva2U8bG9uZyBpbnQ+KG11bCwgdmFsdWUsIHZhbHVlMiksICgobG9uZyBpbnQpIHZhbHVl
KSAqICgobG9uZyBpbnQpIHZhbHVlMikpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50NjQ+KG11bCwgdmFsdWUsIHZhbHVlMiksIGludDY0X3QodmFsdWUpICogaW50NjRfdCh2
YWx1ZTIpKTsKICAgICB9CiB9CiAKQEAgLTEwMjgsNyArMTAzNCw3IEBAIHZvaWQgdGVzdE11bHRp
cGx5WmVyb0V4dGVuZDMyKCkKICAgICAgICAgZm9yIChhdXRvIG1PcGVyYW5kIDogaW50MzJPcGVy
YW5kcygpKSB7CiAgICAgICAgICAgICB1aW50MzJfdCBuID0gbk9wZXJhbmQ7CiAgICAgICAgICAg
ICB1aW50MzJfdCBtID0gbU9wZXJhbmQ7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWlu
dDY0X3Q+KG11bCwgbiwgbSksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0
PHVpbnQ2NF90PihtKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+
KG11bCwgbiwgbSksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMDUxLDcgKzEwNTcsNyBAQCB2b2lk
IHRlc3RNdWx0aXBseUFkZFNpZ25FeHRlbmQzMigpCiAgICAgZm9yIChhdXRvIG4gOiBpbnQzMk9w
ZXJhbmRzKCkpIHsKICAgICAgICAgZm9yIChhdXRvIG0gOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAg
ICAgICAgICAgIGZvciAoYXV0byBhIDogaW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgICAg
IENIRUNLX0VRKGludm9rZTxpbnQ2NF90PihhZGQsIG4sIG0sIGEpLCBzdGF0aWNfY2FzdDxpbnQ2
NF90PihuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+KG0pICsgYSk7CisgICAgICAgICAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KGFkZCwgbiwgbSwgYSksIHN0YXRpY19jYXN0PGlu
dDY0X3Q+KG4pICogc3RhdGljX2Nhc3Q8aW50NjRfdD4obSkgKyBhKTsKICAgICAgICAgfQogICAg
IH0KIH0KQEAgLTEwNzYsNyArMTA4Miw3IEBAIHZvaWQgdGVzdE11bHRpcGx5QWRkWmVyb0V4dGVu
ZDMyKCkKICAgICAgICAgICAgIGZvciAoYXV0byBhIDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAg
ICAgICAgICAgICAgdWludDMyX3QgdW4gPSBuOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHVt
ID0gbTsKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oYWRkLCBuLCBt
LCBhKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4odW4pICogc3RhdGljX2Nhc3Q8aW50NjRfdD4odW0p
ICsgYSk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KGFkZCwg
biwgbSwgYSksIHN0YXRpY19jYXN0PGludDY0X3Q+KHVuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+
KHVtKSArIGEpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTA5NSw3ICsx
MTAxLDcgQEAgdm9pZCB0ZXN0U3ViMzJBcmdzKCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9y
IChhdXRvIHZhbHVlMiA6IGludDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGlu
dm9rZTx1aW50MzJfdD4oc3ViLCB2YWx1ZSwgdmFsdWUyKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KHZhbHVlIC0gdmFsdWUyKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50
MzI+KHN1YiwgdmFsdWUsIHZhbHVlMiksIHN0YXRpY19jYXN0PHVpbnQzMl90Pih2YWx1ZSAtIHZh
bHVlMikpOwogICAgIH0KIH0KIApAQCAtMTExMiw3ICsxMTE4LDcgQEAgdm9pZCB0ZXN0U3ViMzJJ
bW0oKQogICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAgICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBDSEVDS19F
UShpbnZva2U8dWludDMyX3Q+KHN1YiksIHN0YXRpY19jYXN0PHVpbnQzMl90PihpbW1lZGlhdGUg
LSBpbW1lZGlhdGUyKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+
KHN1YiksIHN0YXRpY19jYXN0PHVpbnQzMl90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7CiAg
ICAgICAgIH0KICAgICB9CiB9CkBAIC0xMTMwLDcgKzExMzYsNyBAQCB2b2lkIHRlc3RTdWI2NElt
bTMyKCkKICAgICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPHVpbnQ2NF90PihzdWIpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaW1tZWRpYXRl
IC0gaW1tZWRpYXRlMikpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0
PihzdWIpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaW1tZWRpYXRlIC0gaW1tZWRpYXRlMikpOwog
ICAgICAgICB9CiAgICAgfQogfQpAQCAtMTE0OCw3ICsxMTU0LDcgQEAgdm9pZCB0ZXN0U3ViNjRB
cmdJbW0zMigpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0
T3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90PihzdWIsIHZh
bHVlKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4odmFsdWUgLSBpbW1lZGlhdGUpKTsKKyAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDY0PihzdWIsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8
aW50NjRfdD4odmFsdWUgLSBpbW1lZGlhdGUpKTsKICAgICB9CiB9CiAKQEAgLTExNjUsNyArMTE3
MSw3IEBAIHZvaWQgdGVzdFN1YjY0SW1tNjQoKQogICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKGppdCk7CiAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHN1YiksIHN0YXRpY19j
YXN0PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7CisgICAgICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHN1YiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbW1l
ZGlhdGUgLSBpbW1lZGlhdGUyKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMTgzLDcgKzEx
ODksNyBAQCB2b2lkIHRlc3RTdWI2NEFyZ0ltbTY0KCkKICAgICAgICAgfSk7CiAKICAgICAgICAg
Zm9yIChhdXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPGludDY0X3Q+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAt
IGltbWVkaWF0ZSkpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHN1
YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOwogICAg
IH0KIH0KIApAQCAtMTIwNSw3ICsxMjExLDcgQEAgdm9pZCB0ZXN0TXVsdGlwbHlTdWJTaWduRXh0
ZW5kMzIoKQogICAgIGZvciAoYXV0byBhIDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIGZv
ciAoYXV0byBuIDogaW50MzJPcGVyYW5kcygpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8gbSA6
IGludDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRf
dD4oc3ViLCBhLCBuLCBtKSwgYSAtIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pICogc3RhdGljX2Nh
c3Q8aW50NjRfdD4obSkpOworICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbElu
dDY0PihzdWIsIGEsIG4sIG0pLCBhIC0gc3RhdGljX2Nhc3Q8aW50NjRfdD4obikgKiBzdGF0aWNf
Y2FzdDxpbnQ2NF90PihtKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMjMwLDcgKzEyMzYs
NyBAQCB2b2lkIHRlc3RNdWx0aXBseVN1Ylplcm9FeHRlbmQzMigpCiAgICAgICAgICAgICBmb3Ig
KGF1dG8gbSA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICAgICAgICAgIHVpbnQzMl90IHVu
ID0gbjsKICAgICAgICAgICAgICAgICB1aW50MzJfdCB1bSA9IG07Ci0gICAgICAgICAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHN1YiwgYSwgbiwgbSksIGEgLSBzdGF0aWNfY2FzdDxp
bnQ2NF90Pih1bikgKiBzdGF0aWNfY2FzdDxpbnQ2NF90Pih1bSkpOworICAgICAgICAgICAgICAg
IENIRUNLX0VRKGludm9rZTxDQ2FsbEludDY0PihzdWIsIGEsIG4sIG0pLCBhIC0gc3RhdGljX2Nh
c3Q8aW50NjRfdD4odW4pICogc3RhdGljX2Nhc3Q8aW50NjRfdD4odW0pKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KQEAgLTEyNTAsNyArMTI1Niw3IEBAIHZvaWQgdGVzdE11bHRp
cGx5TmVnU2lnbkV4dGVuZDMyKCkKIAogICAgIGZvciAoYXV0byBuIDogaW50MzJPcGVyYW5kcygp
KSB7CiAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVyYW5kcygpKQotICAgICAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KG5lZywgbiwgbSksIC0oc3RhdGljX2Nhc3Q8aW50NjRf
dD4obikgKiBzdGF0aWNfY2FzdDxpbnQ2NF90PihtKSkpOworICAgICAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPENDYWxsSW50NjQ+KG5lZywgbiwgbSksIC0oc3RhdGljX2Nhc3Q8aW50NjRfdD4obikg
KiBzdGF0aWNfY2FzdDxpbnQ2NF90PihtKSkpOwogICAgIH0KIH0KIApAQCAtMTI3MCw3ICsxMjc2
LDcgQEAgdm9pZCB0ZXN0TXVsdGlwbHlOZWdaZXJvRXh0ZW5kMzIoKQogICAgICAgICBmb3IgKGF1
dG8gbSA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICAgICAgdWludDMyX3QgdW4gPSBuOwog
ICAgICAgICAgICAgdWludDMyX3QgdW0gPSBtOwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHVpbnQ2NF90PihuZWcsIG4sIG0pLCAtKHN0YXRpY19jYXN0PHVpbnQ2NF90Pih1bikgKiBzdGF0
aWNfY2FzdDx1aW50NjRfdD4odW0pKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0Nh
bGxVSW50NjQ+KG5lZywgbiwgbSksIC0oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVuKSAqIHN0YXRp
Y19jYXN0PHVpbnQ2NF90Pih1bSkpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTEyOTMsNyAr
MTI5OSw3IEBAIHZvaWQgdGVzdEV4dHJhY3RVbnNpZ25lZEJpdGZpZWxkMzIoKQogICAgICAgICAg
ICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPHVpbnQzMl90Pih1YmZ4MzIsIHNyYyksICgoc3JjID4+IGxzYikgJiAoKDFVIDw8
IHdpZHRoKSAtIDFVKSkpOworICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJ
bnQzMj4odWJmeDMyLCBzcmMpLCAoKHNyYyA+PiBsc2IpICYgKCgxVSA8PCB3aWR0aCkgLSAxVSkp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTEzMTcsNyArMTMyMyw3IEBA
IHZvaWQgdGVzdEV4dHJhY3RVbnNpZ25lZEJpdGZpZWxkNjQoKQogICAgICAgICAgICAgICAgICAg
ICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHVpbnQ2NF90Pih1YmZ4NjQsIHNyYyksICgoc3JjID4+IGxzYikgJiAoKDFVTEwgPDwgd2lkdGgp
IC0gMVVMTCkpKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+
KHViZng2NCwgc3JjKSwgKChzcmMgPj4gbHNiKSAmICgoMVVMTCA8PCB3aWR0aCkgLSAxVUxMKSkp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTM0Miw3ICsxMzQ4LDcgQEAg
dm9pZCB0ZXN0SW5zZXJ0VW5zaWduZWRCaXRmaWVsZEluWmVybzMyKCkKICAgICAgICAgICAgICAg
ICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIHVp
bnQzMl90IG1hc2sgPSAoMVUgPDwgd2lkdGgpIC0gMVU7Ci0gICAgICAgICAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPHVpbnQzMl90Pih1YmZpejMyLCBzcmMpLCAoc3JjICYgbWFzaykgPDwgbHNiKTsK
KyAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHViZml6MzIsIHNy
YyksIChzcmMgJiBtYXNrKSA8PCBsc2IpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQpAQCAtMTM2Nyw3ICsxMzczLDcgQEAgdm9pZCB0ZXN0SW5zZXJ0VW5zaWduZWRCaXRmaWVsZElu
WmVybzY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IG1hc2sgPSAoMVVMTCA8PCB3aWR0aCkgLSAx
VUxMOwotICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odWJmaXo2NCwg
c3JjKSwgKHNyYyAmIG1hc2spIDw8IGxzYik7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPENDYWxsVUludDY0Pih1YmZpejY0LCBzcmMpLCAoc3JjICYgbWFzaykgPDwgbHNiKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTEzOTUsNyArMTQwMSw3IEBAIHZvaWQg
dGVzdEluc2VydEJpdEZpZWxkMzIoKQogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
ICAgIHVpbnQzMl90IG1hc2sxID0gKDFVIDw8IHdpZHRoKSAtIDFVOwogICAgICAgICAgICAgICAg
IHVpbnQzMl90IG1hc2syID0gfihtYXNrMSA8PCBsc2IpOwotICAgICAgICAgICAgICAgIHVpbnQz
Ml90IHJocyA9IGludm9rZTx1aW50MzJfdD4oYmZpMzIsIHNyYywgZHN0KTsKKyAgICAgICAgICAg
ICAgICB1aW50MzJfdCByaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KGJmaTMyLCBzcmMsIGRzdCk7
CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gKChzcmMgJiBtYXNrMSkgPDwgbHNiKSB8
IChkc3QgJiBtYXNrMik7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEocmhzLCBsaHMpOwogICAg
ICAgICAgICAgfQpAQCAtMTQyNSw3ICsxNDMxLDcgQEAgdm9pZCB0ZXN0SW5zZXJ0Qml0RmllbGQ2
NCgpCiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbWFzazEg
PSAoMVVMTCA8PCB3aWR0aCkgLSAxVUxMOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IG1hc2sy
ID0gfihtYXNrMSA8PCBsc2IpOwotICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9r
ZTx1aW50NjRfdD4oYmZpNjQsIHNyYywgZHN0KTsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBy
aHMgPSBpbnZva2U8Q0NhbGxVSW50NjQ+KGJmaTY0LCBzcmMsIGRzdCk7CiAgICAgICAgICAgICAg
ICAgdWludDY0X3QgbGhzID0gKChzcmMgJiBtYXNrMSkgPDwgbHNiKSB8IChkc3QgJiBtYXNrMik7
CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEocmhzLCBsaHMpOwogICAgICAgICAgICAgfQpAQCAt
MTQ1NSw3ICsxNDYxLDcgQEAgdm9pZCB0ZXN0RXh0cmFjdEluc2VydEJpdGZpZWxkQXRMb3dFbmQz
MigpCiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzazEg
PSAoMVUgPDwgd2lkdGgpIC0gMVU7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzazIgPSB+
bWFzazE7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gaW52b2tlPHVpbnQzMl90Pihi
ZnhpbDMyLCBzcmMsIGRzdCk7CisgICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gaW52b2tl
PENDYWxsVUludDMyPihiZnhpbDMyLCBzcmMsIGRzdCk7CiAgICAgICAgICAgICAgICAgdWludDMy
X3QgbGhzID0gKChzcmMgPj4gbHNiKSAmIG1hc2sxKSB8IChkc3QgJiBtYXNrMik7CiAgICAgICAg
ICAgICAgICAgQ0hFQ0tfRVEocmhzLCBsaHMpOwogICAgICAgICAgICAgfQpAQCAtMTQ4NSw3ICsx
NDkxLDcgQEAgdm9pZCB0ZXN0RXh0cmFjdEluc2VydEJpdGZpZWxkQXRMb3dFbmQ2NCgpCiAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbWFzazEgPSAoMVVMTCA8
PCB3aWR0aCkgLSAxVUxMOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IG1hc2syID0gfm1hc2sx
OwotICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9rZTx1aW50NjRfdD4oYmZ4aWw2
NCwgc3JjLCBkc3QpOworICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9rZTxDQ2Fs
bFVJbnQ2ND4oYmZ4aWw2NCwgc3JjLCBkc3QpOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxo
cyA9ICgoc3JjID4+IGxzYikgJiBtYXNrMSkgfCAoZHN0ICYgbWFzazIpOwogICAgICAgICAgICAg
ICAgIENIRUNLX0VRKHJocywgbGhzKTsKICAgICAgICAgICAgIH0KQEAgLTE1MTAsNyArMTUxNiw3
IEBAIHZvaWQgdGVzdENsZWFyQml0RmllbGQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCBtYXNr
ID0gKCgxVSA8PCB3aWR0aCkgLSAxVSkgPDwgbHNiOwotICAgICAgICAgICAgICAgIHVpbnQzMl90
IHJocyA9IGludm9rZTx1aW50MzJfdD4oYmZjMzIsIHNyYyk7CisgICAgICAgICAgICAgICAgdWlu
dDMyX3QgcmhzID0gaW52b2tlPENDYWxsVUludDMyPihiZmMzMiwgc3JjKTsKICAgICAgICAgICAg
ICAgICB1aW50MzJfdCBsaHMgPSBzcmMgJiB+bWFzazsKICAgICAgICAgICAgICAgICBDSEVDS19F
UShyaHMsIGxocyk7CiAgICAgICAgICAgICB9CkBAIC0xNTM1LDcgKzE1NDEsNyBAQCB2b2lkIHRl
c3RDbGVhckJpdEZpZWxkNjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbWFzayA9ICgoMVVMTCA8
PCB3aWR0aCkgLSAxVUxMKSA8PCBsc2I7Ci0gICAgICAgICAgICAgICAgdWludDY0X3QgcmhzID0g
aW52b2tlPHVpbnQ2NF90PihiZmM2NCwgc3JjKTsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBy
aHMgPSBpbnZva2U8Q0NhbGxVSW50NjQ+KGJmYzY0LCBzcmMpOwogICAgICAgICAgICAgICAgIHVp
bnQ2NF90IGxocyA9IHNyYyAmIH5tYXNrOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKHJocywg
bGhzKTsKICAgICAgICAgICAgIH0KQEAgLTE1NTYsOCArMTU2Miw4IEBAIHZvaWQgdGVzdENsZWFy
Qml0c1dpdGhNYXNrMzIoKQogCiAgICAgZm9yIChhdXRvIG1hc2sgOiBpbnQzMk9wZXJhbmRzKCkp
IHsKICAgICAgICAgdWludDMyX3Qgc3JjID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46
Om1heCgpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHRlc3QsIHNyYywgbWFz
ayksIChzcmMgJiB+bWFzaykpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHRl
c3QsIDBVLCBtYXNrKSwgMFUpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+
KHRlc3QsIHNyYywgbWFzayksIChzcmMgJiB+bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZv
a2U8Q0NhbGxVSW50MzI+KHRlc3QsIDBVLCBtYXNrKSwgMFUpOwogICAgIH0KIH0KIApAQCAtMTU3
NCw4ICsxNTgwLDggQEAgdm9pZCB0ZXN0Q2xlYXJCaXRzV2l0aE1hc2s2NCgpCiAKICAgICBmb3Ig
KGF1dG8gbWFzayA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRfdCBzcmMgPSBz
dGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGlu
dm9rZTx1aW50NjRfdD4odGVzdCwgc3JjLCBtYXNrKSwgKHNyYyAmIH5tYXNrKSk7Ci0gICAgICAg
IENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdCwgMFVMTCwgbWFzayksIDBVTEwpOworICAg
ICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIHNyYywgbWFzayksIChzcmMg
JiB+bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIDBV
TEwsIG1hc2spLCAwVUxMKTsKICAgICB9CiB9CiAKQEAgLTE1OTIsOCArMTU5OCw4IEBAIHZvaWQg
dGVzdE9yTm90MzIoKQogCiAgICAgZm9yIChhdXRvIG1hc2sgOiBpbnQzMk9wZXJhbmRzKCkpIHsK
ICAgICAgICAgaW50MzJfdCBzcmMgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4
KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQzMl90Pih0ZXN0LCBzcmMsIG1hc2spLCAo
c3JjIHwgfm1hc2spKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDMyX3Q+KHRlc3QsIDBV
LCBtYXNrKSwgfm1hc2spOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4odGVz
dCwgc3JjLCBtYXNrKSwgKHNyYyB8IH5tYXNrKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxD
Q2FsbEludDMyPih0ZXN0LCAwVSwgbWFzayksIH5tYXNrKTsKICAgICB9CiB9CiAKQEAgLTE2MTAs
OCArMTYxNiw4IEBAIHZvaWQgdGVzdE9yTm90NjQoKQogCiAgICAgZm9yIChhdXRvIG1hc2sgOiBp
bnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgaW50NjRfdCBzcmMgPSBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90Pih0
ZXN0LCBzcmMsIG1hc2spLCAoc3JjIHwgfm1hc2spKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PGludDY0X3Q+KHRlc3QsIDBVTEwsIG1hc2spLCB+bWFzayk7CisgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxDQ2FsbEludDY0Pih0ZXN0LCBzcmMsIG1hc2spLCAoc3JjIHwgfm1hc2spKTsKKyAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIDBVTEwsIG1hc2spLCB+bWFzayk7
CiAgICAgfQogfQogCkBAIC0xNjM5LDcgKzE2NDUsNyBAQCB2b2lkIHRlc3RJbnNlcnRTaWduZWRC
aXRmaWVsZEluWmVybzMyKCkKICAgICAgICAgICAgICAgICBpbnQzMl90IG1hc2syID0gMSA8PCAo
d2lkdGggLSAxKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IGJmc3ggPSAoKGJmICYgbWFzazEp
IF4gbWFzazIpIC0gbWFzazI7CiAKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50
MzJfdD4oaW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm8zMiwgc3JjKSwgYmZzeCA8PCBsc2IpOwor
ICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPihpbnNlcnRTaWduZWRC
aXRmaWVsZEluWmVybzMyLCBzcmMpLCBiZnN4IDw8IGxzYik7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CkBAIC0xNjY4LDcgKzE2NzQsNyBAQCB2b2lkIHRlc3RJbnNlcnRTaWduZWRC
aXRmaWVsZEluWmVybzY0KCkKICAgICAgICAgICAgICAgICBpbnQ2NF90IGFtb3VudCA9IENIQVJf
QklUICogc2l6ZW9mKGJmKSAtIHdpZHRoOwogICAgICAgICAgICAgICAgIGludDY0X3QgYmZzeCA9
IChiZiA8PCBhbW91bnQpID4+IGFtb3VudDsKIAotICAgICAgICAgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxpbnQ2NF90PihpbnNlcnRTaWduZWRCaXRmaWVsZEluWmVybzY0LCBzcmMpLCBiZnN4IDw8
IGxzYik7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KGluc2Vy
dFNpZ25lZEJpdGZpZWxkSW5aZXJvNjQsIHNyYyksIGJmc3ggPDwgbHNiKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KQEAgLTE2OTgsNyArMTcwNCw3IEBAIHZvaWQgdGVzdEV4dHJh
Y3RTaWduZWRCaXRmaWVsZDMyKCkKICAgICAgICAgICAgICAgICBpbnQzMl90IG1hc2syID0gMSA8
PCAod2lkdGggLSAxKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IGJmc3ggPSAoKGJmICYgbWFz
azEpIF4gbWFzazIpIC0gbWFzazI7CiAKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8
aW50MzJfdD4oZXh0cmFjdFNpZ25lZEJpdGZpZWxkMzIsIHNyYyksIGJmc3gpOworICAgICAgICAg
ICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPihleHRyYWN0U2lnbmVkQml0ZmllbGQz
Miwgc3JjKSwgYmZzeCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xNzI3
LDcgKzE3MzMsNyBAQCB2b2lkIHRlc3RFeHRyYWN0U2lnbmVkQml0ZmllbGQ2NCgpCiAgICAgICAg
ICAgICAgICAgaW50NjRfdCBhbW91bnQgPSBDSEFSX0JJVCAqIHNpemVvZihiZikgLSB3aWR0aDsK
ICAgICAgICAgICAgICAgICBpbnQ2NF90IGJmc3ggPSAoYmYgPDwgYW1vdW50KSA+PiBhbW91bnQ7
CiAKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oZXh0cmFjdFNpZ25l
ZEJpdGZpZWxkNjQsIHNyYyksIGJmc3gpOworICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9r
ZTxDQ2FsbEludDY0PihleHRyYWN0U2lnbmVkQml0ZmllbGQ2NCwgc3JjKSwgYmZzeCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xNzYyLDcgKzE3NjgsNyBAQCB2b2lkIHRl
c3RFeHRyYWN0UmVnaXN0ZXIzMigpCiAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGxlZnQg
PSBoaWdoV2lkdGggPT0gZGF0YXNpemUgPyAwVSA6IChuICYgbWFzaykgPDwgaGlnaFdpZHRoOwog
ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCByaWdodCA9IChzdGF0aWNfY2FzdDx1aW50MzJf
dD4obSkgPj4gbHNiKTsKICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gbGVmdCB8
IHJpZ2h0OwotICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8dWludDMy
X3Q+KGV4dHJhY3RSZWdpc3RlcjMyLCBuLCBtKTsKKyAgICAgICAgICAgICAgICAgICAgdWludDMy
X3QgbGhzID0gaW52b2tlPENDYWxsVUludDMyPihleHRyYWN0UmVnaXN0ZXIzMiwgbiwgbSk7CiAg
ICAgICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CkBAIC0xNzk2LDcgKzE4MDIsNyBAQCB2b2lkIHRlc3RFeHRyYWN0UmVn
aXN0ZXI2NCgpCiAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxlZnQgPSBoaWdoV2lkdGgg
PT0gZGF0YXNpemUgPyAwVUxMIDogKG4gJiBtYXNrKSA8PCBoaWdoV2lkdGg7CiAgICAgICAgICAg
ICAgICAgICAgIHVpbnQ2NF90IHJpZ2h0ID0gKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSA+PiBs
c2IpOwogICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCByaHMgPSBsZWZ0IHwgcmlnaHQ7Ci0g
ICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTx1aW50NjRfdD4oZXh0cmFj
dFJlZ2lzdGVyNjQsIG4sIG0pOworICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBp
bnZva2U8Q0NhbGxVSW50NjQ+KGV4dHJhY3RSZWdpc3RlcjY0LCBuLCBtKTsKICAgICAgICAgICAg
ICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KQEAgLTE4MjIsNyArMTgyOCw3IEBAIHZvaWQgdGVzdEFkZFdpdGhMZWZ0U2hpZnQzMigp
CiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAot
ICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KGFkZDMyLCBuLCBt
KTsKKyAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPihhZGQz
MiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMgPSBuICsgKG0gPDwgYW1vdW50
KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBA
IC0xODQ4LDcgKzE4NTQsNyBAQCB2b2lkIHRlc3RBZGRXaXRoUmlnaHRTaGlmdDMyKCkKICAgICAg
ICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAg
ICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4oYWRkMzIsIG4sIG0pOworICAg
ICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KGFkZDMyLCBuLCBt
KTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gKyAobSA+PiBhbW91bnQpOwogICAg
ICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTE4NzQs
NyArMTg4MCw3IEBAIHZvaWQgdGVzdEFkZFdpdGhVbnNpZ25lZFJpZ2h0U2hpZnQzMigpCiAgICAg
ICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAg
ICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTx1aW50MzJfdD4oYWRkMzIsIG4sIG0pOwor
ICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQzMj4oYWRkMzIs
IG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9IHN0YXRpY19jYXN0PHVpbnQz
Ml90PihuKSArIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obSkgPj4gYW1vdW50KTsKICAgICAgICAg
ICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0xOTAwLDcgKzE5
MDYsNyBAQCB2b2lkIHRlc3RBZGRXaXRoTGVmdFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2
NF90IGxocyA9IGludm9rZTxpbnQ2NF90PihhZGQ2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAg
aW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQ2ND4oYWRkNjQsIG4sIG0pOwogICAgICAgICAg
ICAgICAgIGludDY0X3QgcmhzID0gbiArIChtIDw8IGFtb3VudCk7CiAgICAgICAgICAgICAgICAg
Q0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMTkyNiw3ICsxOTMyLDcgQEAg
dm9pZCB0ZXN0QWRkV2l0aFJpZ2h0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhz
ID0gaW52b2tlPGludDY0X3Q+KGFkZDY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90
IGxocyA9IGludm9rZTxDQ2FsbEludDY0PihhZGQ2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAg
aW50NjRfdCByaHMgPSBuICsgKG0gPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19F
UShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0xOTUyLDcgKzE5NTgsNyBAQCB2b2lkIHRl
c3RBZGRXaXRoVW5zaWduZWRSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1aW50NjRfdCBs
aHMgPSBpbnZva2U8dWludDY0X3Q+KGFkZDY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50
NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50NjQ+KGFkZDY0LCBuLCBtKTsKICAgICAgICAgICAg
ICAgICB1aW50NjRfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4obikgKyAoc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhz
LCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMTk3OCw3ICsxOTg0LDcgQEAgdm9pZCB0ZXN0U3Vi
V2l0aExlZnRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50
MzJfdD4oc3ViMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tl
PENDYWxsSW50MzI+KHN1YjMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9
IG4gLSAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsK
ICAgICAgICAgICAgIH0KQEAgLTIwMDQsNyArMjAxMCw3IEBAIHZvaWQgdGVzdFN1YldpdGhSaWdo
dFNoaWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAg
ICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90Pihz
dWIzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJ
bnQzMj4oc3ViMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiAtICht
ID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAg
ICAgICAgfQpAQCAtMjAzMCw3ICsyMDM2LDcgQEAgdm9pZCB0ZXN0U3ViV2l0aFVuc2lnbmVkUmln
aHRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAg
ICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tlPHVpbnQzMl90
PihzdWIzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tlPEND
YWxsVUludDMyPihzdWIzMiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0g
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KG4pIC0gKHN0YXRpY19jYXN0PHVpbnQzMl90PihtKSA+PiBh
bW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAg
IH0KQEAgLTIwNTYsNyArMjA2Miw3IEBAIHZvaWQgdGVzdFN1YldpdGhMZWZ0U2hpZnQ2NCgpCiAg
ICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAg
ICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KHN1YjY0LCBuLCBtKTsK
KyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0PihzdWI2NCwg
biwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuIC0gKG0gPDwgYW1vdW50KTsK
ICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0y
MDgyLDcgKzIwODgsNyBAQCB2b2lkIHRlc3RTdWJXaXRoUmlnaHRTaGlmdDY0KCkKICAgICAgICAg
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAg
ICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8aW50NjRfdD4oc3ViNjQsIG4sIG0pOworICAgICAg
ICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KHN1YjY0LCBuLCBtKTsK
ICAgICAgICAgICAgICAgICBpbnQ2NF90IHJocyA9IG4gLSAobSA+PiBhbW91bnQpOwogICAgICAg
ICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTIxMDgsNyAr
MjExNCw3IEBAIHZvaWQgdGVzdFN1YldpdGhVbnNpZ25lZFJpZ2h0U2hpZnQ2NCgpCiAgICAgICAg
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAg
ICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTx1aW50NjRfdD4oc3ViNjQsIG4sIG0pOworICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oc3ViNjQsIG4s
IG0pOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90
PihuKSAtIChzdGF0aWNfY2FzdDx1aW50NjRfdD4obSkgPj4gYW1vdW50KTsKICAgICAgICAgICAg
ICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMTI5LDggKzIxMzUs
OCBAQCB2b2lkIHRlc3RYb3JOb3QzMigpCiAKICAgICBmb3IgKGF1dG8gbWFzayA6IGludDMyT3Bl
cmFuZHMoKSkgewogICAgICAgICBpbnQzMl90IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWlu
dDMyX3Q+OjptYXgoKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDMyX3Q+KHRlc3QsIHNy
YywgbWFzayksIChzcmMgXiB+bWFzaykpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8aW50MzJf
dD4odGVzdCwgMFUsIG1hc2spLCB+bWFzayk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2Fs
bEludDMyPih0ZXN0LCBzcmMsIG1hc2spLCAoc3JjIF4gfm1hc2spKTsKKyAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QsIDBVLCBtYXNrKSwgfm1hc2spOwogICAgIH0KIH0K
IApAQCAtMjE0Nyw4ICsyMTUzLDggQEAgdm9pZCB0ZXN0WG9yTm90NjQoKQogCiAgICAgZm9yIChh
dXRvIG1hc2sgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgaW50NjRfdCBzcmMgPSBzdGQ6
Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9r
ZTxpbnQ2NF90Pih0ZXN0LCBzcmMsIG1hc2spLCAoc3JjIF4gfm1hc2spKTsKLSAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPGludDY0X3Q+KHRlc3QsIDBVTEwsIG1hc2spLCB+bWFzayk7CisgICAgICAg
IENIRUNLX0VRKGludm9rZTxDQ2FsbEludDY0Pih0ZXN0LCBzcmMsIG1hc2spLCAoc3JjIF4gfm1h
c2spKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIDBVTEwsIG1h
c2spLCB+bWFzayk7CiAgICAgfQogfQogCkBAIC0yMTcwLDcgKzIxNzYsNyBAQCB2b2lkIHRlc3RY
b3JOb3RXaXRoTGVmdFNoaWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9r
ZTxpbnQzMl90Pih0ZXN0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGlu
dm9rZTxDQ2FsbEludDMyPih0ZXN0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJo
cyA9IG4gXiB+KG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJo
cyk7CiAgICAgICAgICAgICB9CkBAIC0yMTk2LDcgKzIyMDIsNyBAQCB2b2lkIHRlc3RYb3JOb3RX
aXRoUmlnaHRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50
MzJfdD4odGVzdCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8
Q0NhbGxJbnQzMj4odGVzdCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMgPSBu
IF4gfihtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwog
ICAgICAgICAgICAgfQpAQCAtMjIyMiw3ICsyMjI4LDcgQEAgdm9pZCB0ZXN0WG9yTm90V2l0aFVu
c2lnbmVkUmlnaHRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tl
PHVpbnQzMl90Pih0ZXN0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBp
bnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQzMl90
IHJocyA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihuKSBeIH4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAg
ICAgICAgICAgfQpAQCAtMjI0OCw3ICsyMjU0LDcgQEAgdm9pZCB0ZXN0WG9yTm90V2l0aExlZnRT
aGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAg
IH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8aW50NjRfdD4odGVz
dCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQ2
ND4odGVzdCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuIF4gfihtIDw8
IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAg
ICAgfQpAQCAtMjI3NCw3ICsyMjgwLDcgQEAgdm9pZCB0ZXN0WG9yTm90V2l0aFJpZ2h0U2hpZnQ2
NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsK
IAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KHRlc3QsIG4s
IG0pOworICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KHRl
c3QsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0X3QgcmhzID0gbiBeIH4obSA+PiBhbW91
bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0K
QEAgLTIzMDAsNyArMjMwNiw3IEBAIHZvaWQgdGVzdFhvck5vdFdpdGhVbnNpZ25lZFJpZ2h0U2hp
ZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9
KTsKIAotICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTx1aW50NjRfdD4odGVz
dCwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gaW52b2tlPENDYWxsVUlu
dDY0Pih0ZXN0LCBuLCBtKTsKICAgICAgICAgICAgICAgICB1aW50NjRfdCByaHMgPSBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4obikgXiB+KHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSA+PiBhbW91bnQp
OwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAg
LTIzMjUsNyArMjMzMSw3IEBAIHZvaWQgdGVzdFN0b3JlUHJlUG9zdEluZGV4MzIoKQogICAgICAg
ICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBpbnZva2U8aW50cHRyX3Q+KHN0b3JlLCBzcmMs
IGFkZHIpOworICAgICAgICByZXR1cm4gaW52b2tlPENDYWxsSW50cHRyPihzdG9yZSwgc3JjLCBh
ZGRyKTsKICAgICB9OwogCiAgICAgaW50MzJfdCogcDEgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdCo+
KHRlc3QxKDQpKTsKQEAgLTIzNDMsNyArMjM0OSw3IEBAIHZvaWQgdGVzdFN0b3JlUHJlUG9zdElu
ZGV4MzIoKQogICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBpbnZva2U8aW50cHRy
X3Q+KHN0b3JlLCBzcmMsIGFkZHIpOworICAgICAgICByZXR1cm4gaW52b2tlPENDYWxsSW50cHRy
PihzdG9yZSwgc3JjLCBhZGRyKTsKICAgICB9OwogCiAgICAgaW50MzJfdCogcDIgPSBiaXR3aXNl
X2Nhc3Q8aW50MzJfdCo+KHRlc3QyKDUpKTsKQEAgLTIzNjgsNyArMjM3NCw3IEBAIHZvaWQgdGVz
dFN0b3JlUHJlUG9zdEluZGV4NjQoKQogICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
aml0KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHJldHVy
biBpbnZva2U8aW50cHRyX3Q+KHN0b3JlLCBzcmMsIGFkZHIpOworICAgICAgICByZXR1cm4gaW52
b2tlPENDYWxsSW50cHRyPihzdG9yZSwgc3JjLCBhZGRyKTsKICAgICB9OwogCiAgICAgaW50NjRf
dCogcDEgPSBiaXR3aXNlX2Nhc3Q8aW50NjRfdCo+KHRlc3QxKDQpKTsKQEAgLTIzODYsNyArMjM5
Miw3IEBAIHZvaWQgdGVzdFN0b3JlUHJlUG9zdEluZGV4NjQoKQogICAgICAgICAgICAgZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
Ci0gICAgICAgIHJldHVybiBpbnZva2U8aW50cHRyX3Q+KHN0b3JlLCBzcmMsIGFkZHIpOworICAg
ICAgICByZXR1cm4gaW52b2tlPENDYWxsSW50cHRyPihzdG9yZSwgc3JjLCBhZGRyKTsKICAgICB9
OwogCiAgICAgaW50NjRfdCogcDIgPSBiaXR3aXNlX2Nhc3Q8aW50NjRfdCo+KHRlc3QyKDUpKTsK
QEAgLTI0MTEsNyArMjQxNyw3IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXgzMigpCiAgICAg
ICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnQzMl90Pihsb2FkLCAmbnVt
c1sxXSk7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnQzMj4obG9hZCwgJm51bXNbMV0p
OwogICAgIH07CiAKICAgICBDSEVDS19FUSh0ZXN0MSg0KSwgMyk7CkBAIC0yNDI5LDcgKzI0MzUs
NyBAQCB2b2lkIHRlc3RMb2FkUHJlUG9zdEluZGV4MzIoKQogICAgICAgICAgICAgZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0g
ICAgICAgIHJldHVybiBpbnZva2U8aW50MzJfdD4obG9hZCwgJm51bXNbMV0pOworICAgICAgICBy
ZXR1cm4gaW52b2tlPENDYWxsSW50MzI+KGxvYWQsICZudW1zWzFdKTsKICAgICB9OwogCiAgICAg
Q0hFQ0tfRVEodGVzdDIoNSksIDIpOwpAQCAtMjQ1Myw3ICsyNDU5LDcgQEAgdm9pZCB0ZXN0TG9h
ZFByZVBvc3RJbmRleDY0KCkKICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgICAgICByZXR1cm4gaW52
b2tlPGludDY0X3Q+KGxvYWQsICZudW1zWzFdKTsKKyAgICAgICAgcmV0dXJuIGludm9rZTxDQ2Fs
bEludDY0Pihsb2FkLCAmbnVtc1sxXSk7CiAgICAgfTsKIAogICAgIENIRUNLX0VRKHRlc3QxKDQp
LCAzKTsKQEAgLTI0NzEsNyArMjQ3Nyw3IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXg2NCgp
CiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0
LnJldCgpOwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnQ2NF90Pihsb2Fk
LCAmbnVtc1sxXSk7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnQ2ND4obG9hZCwgJm51
bXNbMV0pOwogICAgIH07CiAKICAgICBDSEVDS19FUSh0ZXN0Mig1KSwgMik7CkBAIC0yNDk2LDcg
KzI1MDIsNyBAQCB2b2lkIHRlc3RBbmRMZWZ0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAg
IGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDMy
X3QgbGhzID0gaW52b2tlPGludDMyX3Q+KGFuZDMyLCBuLCBtKTsKKyAgICAgICAgICAgICAgICBp
bnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPihhbmQzMiwgbiwgbSk7CiAgICAgICAgICAg
ICAgICAgaW50MzJfdCByaHMgPSBuICYgKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAgICBD
SEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNTIyLDcgKzI1MjgsNyBAQCB2
b2lkIHRlc3RBbmRSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7
CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGlu
dm9rZTxpbnQzMl90PihhbmQzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50MzJfdCBsaHMg
PSBpbnZva2U8Q0NhbGxJbnQzMj4oYW5kMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDMy
X3QgcmhzID0gbiAmIChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhz
LCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjU0OCw3ICsyNTU0LDcgQEAgdm9pZCB0ZXN0QW5k
VW5zaWduZWRSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZv
a2U8dWludDMyX3Q+KGFuZDMyLCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMg
PSBpbnZva2U8Q0NhbGxVSW50MzI+KGFuZDMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICB1aW50
MzJfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obikgJiAoc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwog
ICAgICAgICAgICAgfQpAQCAtMjU3NCw3ICsyNTgwLDcgQEAgdm9pZCB0ZXN0QW5kTGVmdFNoaWZ0
NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7
CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2NF90PihhbmQ2NCwg
biwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQ2ND4o
YW5kNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0X3QgcmhzID0gbiAmIChtIDw8IGFt
b3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAg
fQpAQCAtMjYwMCw3ICsyNjA2LDcgQEAgdm9pZCB0ZXN0QW5kUmlnaHRTaGlmdDY0KCkKICAgICAg
ICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAg
ICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8aW50NjRfdD4oYW5kNjQsIG4sIG0pOworICAg
ICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KGFuZDY0LCBuLCBt
KTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IHJocyA9IG4gJiAobSA+PiBhbW91bnQpOwogICAg
ICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI2MjYs
NyArMjYzMiw3IEBAIHZvaWQgdGVzdEFuZFVuc2lnbmVkUmlnaHRTaGlmdDY0KCkKICAgICAgICAg
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAg
ICAgICAgdWludDY0X3QgbGhzID0gaW52b2tlPHVpbnQ2NF90PihhbmQ2NCwgbiwgbSk7CisgICAg
ICAgICAgICAgICAgdWludDY0X3QgbGhzID0gaW52b2tlPENDYWxsVUludDY0PihhbmQ2NCwgbiwg
bSk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KG4pICYgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAgICAg
ICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI2NTIsNyArMjY1OCw3
IEBAIHZvaWQgdGVzdFhvckxlZnRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50MzJfdCBsaHMg
PSBpbnZva2U8aW50MzJfdD4oeG9yMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDMyX3Qg
bGhzID0gaW52b2tlPENDYWxsSW50MzI+KHhvcjMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICBp
bnQzMl90IHJocyA9IG4gXiAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VR
KGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI2NzgsNyArMjY4NCw3IEBAIHZvaWQgdGVz
dFhvclJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPGlu
dDMyX3Q+KHhvcjMyLCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9r
ZTxDQ2FsbEludDMyPih4b3IzMiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMg
PSBuIF4gKG0gPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7
CiAgICAgICAgICAgICB9CkBAIC0yNzA0LDcgKzI3MTAsNyBAQCB2b2lkIHRlc3RYb3JVbnNpZ25l
ZFJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
ICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTx1aW50
MzJfdD4oeG9yMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9r
ZTxDQ2FsbFVJbnQzMj4oeG9yMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHJo
cyA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihuKSBeIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obSkg
Pj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAg
ICAgICB9CkBAIC0yNzMwLDcgKzI3MzYsNyBAQCB2b2lkIHRlc3RYb3JMZWZ0U2hpZnQ2NCgpCiAg
ICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAg
ICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KHhvcjY0LCBuLCBtKTsK
KyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0Pih4b3I2NCwg
biwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuIF4gKG0gPDwgYW1vdW50KTsK
ICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0y
NzU2LDcgKzI3NjIsNyBAQCB2b2lkIHRlc3RYb3JSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAg
ICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2NF90Pih4b3I2NCwgbiwgbSk7CisgICAgICAgICAg
ICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQ2ND4oeG9yNjQsIG4sIG0pOwogICAg
ICAgICAgICAgICAgIGludDY0X3QgcmhzID0gbiBeIChtID4+IGFtb3VudCk7CiAgICAgICAgICAg
ICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjc4Miw3ICsyNzg4
LDcgQEAgdm9pZCB0ZXN0WG9yVW5zaWduZWRSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1
aW50NjRfdCBsaHMgPSBpbnZva2U8dWludDY0X3Q+KHhvcjY0LCBuLCBtKTsKKyAgICAgICAgICAg
ICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50NjQ+KHhvcjY0LCBuLCBtKTsKICAg
ICAgICAgICAgICAgICB1aW50NjRfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4obikgXiAo
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hF
Q0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjgwOCw3ICsyODE0LDcgQEAgdm9p
ZCB0ZXN0T3JMZWZ0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tl
PGludDMyX3Q+KG9yMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52
b2tlPENDYWxsSW50MzI+KG9yMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDMyX3Qgcmhz
ID0gbiB8IChtIDw8IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMp
OwogICAgICAgICAgICAgfQpAQCAtMjgzNCw3ICsyODQwLDcgQEAgdm9pZCB0ZXN0T3JSaWdodFNo
aWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAg
fSk7CiAKLSAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90PihvcjMy
LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMy
PihvcjMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gfCAobSA+PiBh
bW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAg
IH0KQEAgLTI4NjAsNyArMjg2Niw3IEBAIHZvaWQgdGVzdE9yVW5zaWduZWRSaWdodFNoaWZ0MzIo
KQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAK
LSAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8dWludDMyX3Q+KG9yMzIsIG4s
IG0pOworICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQzMj4o
b3IzMiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KG4pIHwgKHN0YXRpY19jYXN0PHVpbnQzMl90PihtKSA+PiBhbW91bnQpOwogICAg
ICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI4ODYs
NyArMjg5Miw3IEBAIHZvaWQgdGVzdE9yTGVmdFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2
NF90IGxocyA9IGludm9rZTxpbnQ2NF90PihvcjY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBp
bnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0PihvcjY0LCBuLCBtKTsKICAgICAgICAgICAg
ICAgICBpbnQ2NF90IHJocyA9IG4gfCAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENI
RUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI5MTIsNyArMjkxOCw3IEBAIHZv
aWQgdGVzdE9yUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwog
ICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZv
a2U8aW50NjRfdD4ob3I2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBp
bnZva2U8Q0NhbGxJbnQ2ND4ob3I2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCBy
aHMgPSBuIHwgKG0gPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJo
cyk7CiAgICAgICAgICAgICB9CkBAIC0yOTM4LDcgKzI5NDQsNyBAQCB2b2lkIHRlc3RPclVuc2ln
bmVkUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gaW52b2tlPHVp
bnQ2NF90PihvcjY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZv
a2U8Q0NhbGxVSW50NjQ+KG9yNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJo
cyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSB8IChzdGF0aWNfY2FzdDx1aW50NjRfdD4obSkg
Pj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAg
ICAgICB9CkBAIC0yOTg0LDcgKzI5OTAsNyBAQCB2b2lkIHRlc3RDb21wYXJlRmxvYXQoTWFjcm9B
c3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlvbiBjb25kaXRpb24pCiAgICAgICAgIGZvciAoYXV0byBi
IDogb3BlcmFuZHMpIHsKICAgICAgICAgICAgIGFyZzEgPSBhOwogICAgICAgICAgICAgYXJnMiA9
IGI7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50Pihjb21wYXJlRmxvYXQpLCBpbnZv
a2U8aW50Pihjb21wYXJlRmxvYXRHZW5lcmljKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZv
a2U8Q0NhbGxJbnQzMj4oY29tcGFyZUZsb2F0KSwgaW52b2tlPENDYWxsSW50MzI+KGNvbXBhcmVG
bG9hdEdlbmVyaWMpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTMwMjgsMTEgKzMwMzQsMTMg
QEAgdm9pZCB0ZXN0TW92ZUNvbmRpdGlvbmFsbHlGbG9hdGluZ1BvaW50KE1hY3JvQXNzZW1ibGVy
OjpEb3VibGVDb25kaXRpb24gY29uZGl0aW8KICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICB9OwogCisgICAgdXNpbmcgUmVzdWx0VHlwZSA9IHN0ZDo6Y29uZGl0aW9u
YWxfdDxzdGQ6OmlzX2ludGVncmFsX3Y8U2VsZWN0aW9uVHlwZT4sIENDYWxsSW50ZWdlcjxTZWxl
Y3Rpb25UeXBlPiwgU2VsZWN0aW9uVHlwZT47CisKICAgICBmb3IgKGF1dG8gYSA6IG9wZXJhbmRz
KSB7CiAgICAgICAgIGZvciAoYXV0byBiIDogb3BlcmFuZHMpIHsKICAgICAgICAgICAgIGFyZzEg
PSBhOwogICAgICAgICAgICAgYXJnMiA9IGI7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8
U2VsZWN0aW9uVHlwZT4odGVzdENvZGUpLCBleHBlY3RlZFJlc3VsdChhLCBiKSk7CisgICAgICAg
ICAgICBDSEVDS19FUShpbnZva2U8UmVzdWx0VHlwZT4odGVzdENvZGUpLCBleHBlY3RlZFJlc3Vs
dChhLCBiKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zNjAxLDkgKzM2MDksMTEgQEAgdm9p
ZCB0ZXN0TW92ZUNvbmRpdGlvbmFsbHlGbG9hdGluZ1BvaW50U2FtZUFyZyhNYWNyb0Fzc2VtYmxl
cjo6RG91YmxlQ29uZGl0aW9uIGMKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9OwogCisgICAgdXNpbmcgUmVzdWx0VHlwZSA9IHN0ZDo6Y29uZGl0aW9uYWxfdDxz
dGQ6OmlzX2ludGVncmFsX3Y8U2VsZWN0aW9uVHlwZT4sIENDYWxsSW50ZWdlcjxTZWxlY3Rpb25U
eXBlPiwgU2VsZWN0aW9uVHlwZT47CisKICAgICBmb3IgKGF1dG8gYSA6IG9wZXJhbmRzKSB7CiAg
ICAgICAgIGFyZzEgPSBhOwotICAgICAgICBDSEVDS19FUShpbnZva2U8U2VsZWN0aW9uVHlwZT4o
dGVzdENvZGUpLCBleHBlY3RlZFJlc3VsdChhKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxS
ZXN1bHRUeXBlPih0ZXN0Q29kZSksIGV4cGVjdGVkUmVzdWx0KGEpKTsKICAgICB9CiB9CiAKQEAg
LTM3NzAsNyArMzc4MCw3IEBAIHZvaWQgdGVzdEF0b21pY1N0cm9uZ0NBU0ZpbGw4KCkKICAgICB1
aW50OF90IGRhdGFbXSA9IHsKICAgICAgICAgMHhmZiwgMHhmZiwKICAgICB9OwotICAgIHVpbnQz
Ml90IHJlc3VsdCA9IGludm9rZTx1aW50MzJfdD4odGVzdCwgMHhmZmZmZmZmZmZmZmZmZmZmVUxM
LCAwLCBkYXRhKTsKKyAgICB1aW50MzJfdCByZXN1bHQgPSBpbnZva2U8Q0NhbGxVSW50MzI+KHRl
c3QsIDB4ZmZmZmZmZmZmZmZmZmZmZlVMTCwgMCwgZGF0YSk7CiAgICAgQ0hFQ0tfRVEocmVzdWx0
LCAweGZmKTsKICAgICBDSEVDS19FUShkYXRhWzBdLCAwKTsKICAgICBDSEVDS19FUShkYXRhWzFd
LCAweGZmKTsKQEAgLTM3OTEsNyArMzgwMSw3IEBAIHZvaWQgdGVzdEF0b21pY1N0cm9uZ0NBU0Zp
bGwxNigpCiAgICAgdWludDE2X3QgZGF0YVtdID0gewogICAgICAgICAweGZmZmYsIDB4ZmZmZiwK
ICAgICB9OwotICAgIHVpbnQzMl90IHJlc3VsdCA9IGludm9rZTx1aW50MzJfdD4odGVzdCwgMHhm
ZmZmZmZmZmZmZmZmZmZmVUxMLCAwLCBkYXRhKTsKKyAgICB1aW50MzJfdCByZXN1bHQgPSBpbnZv
a2U8Q0NhbGxVSW50MzI+KHRlc3QsIDB4ZmZmZmZmZmZmZmZmZmZmZlVMTCwgMCwgZGF0YSk7CiAg
ICAgQ0hFQ0tfRVEocmVzdWx0LCAweGZmZmYpOwogICAgIENIRUNLX0VRKGRhdGFbMF0sIDApOwog
ICAgIENIRUNLX0VRKGRhdGFbMV0sIDB4ZmZmZik7CkBAIC00MDUxLDcgKzQwNjEsNyBAQCB2b2lk
IHRlc3RTdWIzMkFyZ0ltbSgpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2YWx1
ZSA6IGludDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJf
dD4oc3ViLCB2YWx1ZSksIHN0YXRpY19jYXN0PHVpbnQzMl90Pih2YWx1ZSAtIGltbWVkaWF0ZSkp
OworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPihzdWIsIHZhbHVlKSwg
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CiAgICAgfQogfQogCkBA
IC00Njg0LDExICs0Njk0LDEyIEBAIHZvaWQgdGVzdFByb2JlUHJlc2VydmVzR1BSUygpCiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGNwdS5n
cHIoaWQpLCB0ZXN0V29yZChpZCkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yIChh
dXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxw
ZXJzOjpsYXN0RlBSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpCisgICAgICAgICAgICBmb3Ig
KGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0RlBSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhl
bHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgewogI2lmIENQVShNSVBT
KQogICAgICAgICAgICAgICAgIGlmICghKGlkICYgMSkpCiAjZW5kaWYKICAgICAgICAgICAgICAg
ICBDSEVDS19FUShjcHUuZnByPHVpbnQ2NF90PihpZCksIHRlc3RXb3JkNjQoaWQpKTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwg
c3RhdGUuCkBAIC01MTMxLDggKzUxNDIsOCBAQCB2b2lkIHRlc3RCeXRlU3dhcCgpCiAgICAgICAg
IGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAgICAgIGppdC5yZXQoKTsKICAgICB9KTsK
LSAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KGJ5dGVTd2FwMTYsIDB4YWFiYmNjZGRlZTAw
MTEyMiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweDIyMTEpKTsKLSAgICBDSEVDS19FUShpbnZv
a2U8dWludDY0X3Q+KGJ5dGVTd2FwMTYsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0
PHVpbnQ2NF90PigweGFhZmYpKTsKKyAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KGJ5
dGVTd2FwMTYsIDB4YWFiYmNjZGRlZTAwMTEyMiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweDIy
MTEpKTsKKyAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KGJ5dGVTd2FwMTYsIDB4YWFi
YmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweGFhZmYpKTsKIAogICAgIGF1
dG8gYnl0ZVN3YXAzMiA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAg
IGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CkBAIC01MTQxLDggKzUxNTIsOCBAQCB2b2lkIHRl
c3RCeXRlU3dhcCgpCiAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAgICAg
IGppdC5yZXQoKTsKICAgICB9KTsKLSAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KGJ5dGVT
d2FwMzIsIDB4YWFiYmNjZGRlZTAwMTEyMiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweDIyMTEw
MGVlKSk7Ci0gICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90PihieXRlU3dhcDMyLCAweGFhYmJj
Y2RkZWUwMGZmYWEpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oMHhhYWZmMDBlZSkpOworICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4oYnl0ZVN3YXAzMiwgMHhhYWJiY2NkZGVlMDAxMTIy
KSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4MjIxMTAwZWUpKTsKKyAgICBDSEVDS19FUShpbnZv
a2U8Q0NhbGxVSW50NjQ+KGJ5dGVTd2FwMzIsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19j
YXN0PHVpbnQ2NF90PigweGFhZmYwMGVlKSk7CiAKICAgICBhdXRvIGJ5dGVTd2FwNjQgPSBjb21w
aWxlKFtdIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1
ZShqaXQpOwpAQCAtNTE1MSw4ICs1MTYyLDggQEAgdm9pZCB0ZXN0Qnl0ZVN3YXAoKQogICAgICAg
ICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICBqaXQucmV0KCk7CiAgICAgfSk7
Ci0gICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90PihieXRlU3dhcDY0LCAweGFhYmJjY2RkZWUw
MDExMjIpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oMHgyMjExMDBlZWRkY2NiYmFhKSk7Ci0gICAg
Q0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90PihieXRlU3dhcDY0LCAweGFhYmJjY2RkZWUwMGZmYWEp
LCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oMHhhYWZmMDBlZWRkY2NiYmFhKSk7CisgICAgQ0hFQ0tf
RVEoaW52b2tlPENDYWxsVUludDY0PihieXRlU3dhcDY0LCAweGFhYmJjY2RkZWUwMDExMjIpLCBz
dGF0aWNfY2FzdDx1aW50NjRfdD4oMHgyMjExMDBlZWRkY2NiYmFhKSk7CisgICAgQ0hFQ0tfRVEo
aW52b2tlPENDYWxsVUludDY0PihieXRlU3dhcDY0LCAweGFhYmJjY2RkZWUwMGZmYWEpLCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oMHhhYWZmMDBlZWRkY2NiYmFhKSk7CiAjZW5kaWYKIH0KIApAQCAt
NTIzNiw3ICs1MjQ3LDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAgICB1aW50NjRfdCBhcnJheVtdID0geyBVSU5U
NjRfTUFYIC0gMSwgVUlOVDY0X01BWCAtIDIsIFVJTlQ2NF9NQVggLSAzLCBVSU5UNjRfTUFYIC0g
NCwgVUlOVDY0X01BWCAtIDUsIH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4o
dGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBVSU5UNjRfTUFYIC0g
Myk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgYXJyYXksIHN0
YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBVSU5UNjRfTUFYIC0gMyk7CiAgICAgfQogICAg
IHsKICAgICAgICAgYXV0byB0ZXN0ID0gY29tcGlsZShbPV0oQ0NhbGxIZWxwZXJzJiBqaXQpIHsK
QEAgLTUyNDYsNyArNTI1Nyw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDY0X3QgYXJyYXlbXSA9IHsg
VUlOVDY0X01BWCAtIDEsIFVJTlQ2NF9NQVggLSAyLCBVSU5UNjRfTUFYIC0gMywgVUlOVDY0X01B
WCAtIDQsIFVJTlQ2NF9NQVggLSA1LCB9OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0
X3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDY0X01B
WCAtIDUpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIGFycmF5
LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDY0X01BWCAtIDUpOwogICAgIH0K
ICNlbmRpZgogCkBAIC01MjU5LDcgKzUyNzAsNyBAQCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4KCkK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVpbnQzMl90IGFy
cmF5W10gPSB7IFVJTlQzMl9NQVggLSAxLCBVSU5UMzJfTUFYIC0gMiwgVUlOVDMyX01BWCAtIDMs
IFVJTlQzMl9NQVggLSA0LCBVSU5UMzJfTUFYIC0gNSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSks
IFVJTlQzMl9NQVggLSAzKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPih0
ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQzMl9NQVggLSAz
KTsKICAgICB9CiAgICAgewogICAgICAgICBhdXRvIHRlc3QgPSBjb21waWxlKFs9XShDQ2FsbEhl
bHBlcnMmIGppdCkgewpAQCAtNTI2OSw3ICs1MjgwLDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJbmRl
eCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAgICB1aW50MzJf
dCBhcnJheVtdID0geyBVSU5UMzJfTUFYIC0gMSwgVUlOVDMyX01BWCAtIDIsIFVJTlQzMl9NQVgg
LSAzLCBVSU5UMzJfTUFYIC0gNCwgVUlOVDMyX01BWCAtIDUsIH07Ci0gICAgICAgIENIRUNLX0VR
KGludm9rZTx1aW50MzJfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4o
MykpLCBVSU5UMzJfTUFYIC0gNSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQz
Mj4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBVSU5UMzJfTUFY
IC0gNSk7CiAgICAgfQogCiAgICAgLy8gbG9hZDE2CkBAIC01MjgxLDcgKzUyOTIsNyBAQCB2b2lk
IHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
CiAgICAgICAgIHVpbnQxNl90IGFycmF5W10gPSB7IFVJTlQxNl9NQVggLSAxLCBVSU5UMTZfTUFY
IC0gMiwgVUlOVDE2X01BWCAtIDMsIFVJTlQxNl9NQVggLSA0LCBVSU5UMTZfTUFYIC0gNSwgfTsK
LSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nh
c3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQxNl9NQVggLSAzKTsKKyAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVy
PigzKSksIFVJTlQxNl9NQVggLSAzKTsKICAgICB9CiAgICAgewogICAgICAgICBhdXRvIHRlc3Qg
PSBjb21waWxlKFs9XShDQ2FsbEhlbHBlcnMmIGppdCkgewpAQCAtNTI5MSw3ICs1MzAyLDcgQEAg
dm9pZCB0ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwogICAgICAgICB1aW50MTZfdCBhcnJheVtdID0geyBVSU5UMTZfTUFYIC0gMSwgVUlOVDE2
X01BWCAtIDIsIFVJTlQxNl9NQVggLSAzLCBVSU5UMTZfTUFYIC0gNCwgc3RhdGljX2Nhc3Q8dWlu
dDE2X3Q+KC0xKSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBh
cnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIDB4ZmZmZik7CisgICAgICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVS
ZWdpc3Rlcj4oMykpLCAweGZmZmYpOwogICAgIH0KIAogICAgIC8vIGxvYWQxNlNpZ25lZEV4dGVu
ZFRvMzIKQEAgLTUzMDMsNyArNTMxNCw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDE2X3QgYXJyYXlb
XSA9IHsgMSwgMiwgMHg3ZmYzLCA0LCA1LCB9OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWlu
dDMyX3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgMHg3ZmYz
KTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3Rh
dGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIDB4N2ZmMyk7CiAgICAgfQogICAgIHsKICAgICAg
ICAgYXV0byB0ZXN0ID0gY29tcGlsZShbPV0oQ0NhbGxIZWxwZXJzJiBqaXQpIHsKQEAgLTUzMTMs
NyArNTMyNCw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDE2X3QgYXJyYXlbXSA9IHsgVUlOVDE2X01B
WCAtIDEsIFVJTlQxNl9NQVggLSAyLCBVSU5UMTZfTUFYIC0gMywgVUlOVDE2X01BWCAtIDQsIHN0
YXRpY19jYXN0PHVpbnQxNl90PigtMSksIH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50
MzJfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oLTEpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMy
Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIHN0YXRpY19jYXN0
PHVpbnQzMl90PigtMSkpOwogICAgIH0KIAogICAgIC8vIGxvYWQ4CkBAIC01MzI1LDcgKzUzMzYs
NyBAQCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgfSk7CiAgICAgICAgIHVpbnQ4X3QgYXJyYXlbXSA9IHsgVUlOVDhfTUFYIC0gMSwgVUlO
VDhfTUFYIC0gMiwgVUlOVDhfTUFYIC0gMywgVUlOVDhfTUFYIC0gNCwgVUlOVDhfTUFYIC0gNSwg
fTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGlj
X2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQ4X01BWCAtIDMpOworICAgICAgICBDSEVDS19F
UShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0
ZXI+KDMpKSwgVUlOVDhfTUFYIC0gMyk7CiAgICAgfQogICAgIHsKICAgICAgICAgYXV0byB0ZXN0
ID0gY29tcGlsZShbPV0oQ0NhbGxIZWxwZXJzJiBqaXQpIHsKQEAgLTUzMzUsNyArNTM0Niw3IEBA
IHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICB9KTsKICAgICAgICAgdWludDhfdCBhcnJheVtdID0geyBVSU5UOF9NQVggLSAxLCBVSU5UOF9N
QVggLSAyLCBVSU5UOF9NQVggLSAzLCBVSU5UOF9NQVggLSA0LCBzdGF0aWNfY2FzdDx1aW50OF90
PigtMSksIH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgYXJyYXks
IHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCAweGZmKTsKKyAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVy
PigzKSksIDB4ZmYpOwogICAgIH0KIAogICAgIC8vIGxvYWQ4U2lnbmVkRXh0ZW5kVG8zMgpAQCAt
NTM0Nyw3ICs1MzU4LDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAgICB1aW50OF90IGFycmF5W10gPSB7IDEsIDIs
IDB4NzMsIDQsIDUsIH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwg
YXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCAweDczKTsKKyAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJl
Z2lzdGVyPigzKSksIDB4NzMpOwogICAgIH0KICAgICB7CiAgICAgICAgIGF1dG8gdGVzdCA9IGNv
bXBpbGUoWz1dKENDYWxsSGVscGVycyYgaml0KSB7CkBAIC01MzU3LDcgKzUzNjgsNyBAQCB2b2lk
IHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
CiAgICAgICAgIHVpbnQ4X3QgYXJyYXlbXSA9IHsgVUlOVDhfTUFYIC0gMSwgVUlOVDhfTUFYIC0g
MiwgVUlOVDhfTUFYIC0gMywgVUlOVDhfTUFYIC0gNCwgc3RhdGljX2Nhc3Q8dWludDhfdD4oLTEp
LCB9OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHRlc3QsIGFycmF5LCBzdGF0
aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KC0xKSk7Cisg
ICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgYXJyYXksIHN0YXRpY19j
YXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oLTEpKTsKICAgICB9
CiAKICAgICAvLyBsb2FkRG91YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcAppbmRleCA0MWY0YmQzMWY4MTM0NTI0ZWZjYTY2YmFjZjRkMDg1ZjUyY2FiMjAz
Li5iZDYyMGE2ZmI4OTFmYmIxMzUyMmMyMzk4Yzg3OTBiOTNlOTViMjgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTQwMCw3ICs0MDAsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0QXNzaWduVW50eXBlZCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIG9iamVjdEFzc2lnbkdlbmVyaWMoZ2xvYmFsT2Jq
ZWN0LCB2bSwgdGFyZ2V0LCBzb3VyY2UpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlVGhpcywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgdWludDMyX3QgaW5saW5lQ2FwYWNpdHkpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVRoaXMsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogY29uc3RydWN0b3IsIENDYWxsVUlu
dDMyIGlubGluZUNhcGFjaXR5KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
NzYwLDcgKzc2MCw3IEBAIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2V0QnlWYWxDZWxs
SW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1ZhbHVlKGJhc2UpLmdldChnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihpbmRleCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldEJ5VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBpbnQzMl90IGluZGV4KSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9iamVjdEludCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgQ0NhbGxJbnQzMiBp
bmRleCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTc2OSw3ICs3NjksNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RJbnQsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYgogICAgIHJldHVybiBnZXRCeVZhbENlbGxJbnQoZ2xv
YmFsT2JqZWN0LCB2bSwgYmFzZSwgaW5kZXgpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlWYWxTdHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGJhc2UsIGludDMyX3QgaW5kZXgpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50LCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBiYXNlLCBD
Q2FsbEludDMyIGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtODU4
LDcgKzg1OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENl
bGxTeW1ib2xOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iCiAgICAgcHV0QnlWYWxDZWxsSW50
ZXJuYWw8ZmFsc2UsIGZhbHNlPihnbG9iYWxPYmplY3QsIHZtLCBjZWxsLCBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGlu
ZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbEludDMyIGlu
ZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC04NzQsNyArODc0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2IKICAg
ICAgICAgb2JqZWN0LCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGlu
dDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIEND
YWxsSW50MzIgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTg5MCw3ICs4OTAsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9p
ZCwgKEpTRwogICAgICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2
bSwgaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5
Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmpl
Y3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwg
Q0NhbGxJbnQzMiBpbmRleCwgZG91YmxlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtOTA4LDcgKzkwOCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoCiAgICAg
ICAgIG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIGpz
VmFsdWUsIHNsb3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIGRvdWJs
ZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlW
YWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsSW50MzIgaW5kZXgsIGRvdWJsZSB2YWx1
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTkyNiw3ICs5MjYsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJh
eUJvdW5kc05vblN0cmljdCwgdm9pZAogICAgICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRl
bnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBqc1ZhbHVlLCBzbG90KTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlC
b3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNT
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2Jq
ZWN0LCBDQ2FsbEludDMyIGluZGV4LCBkb3VibGUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC05NDMsNyArOTQzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHYK
ICAgICBDb21tb25TbG93UGF0aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2bSwgZ2xvYmFsT2JqZWN0
LCBvYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVj
dEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJl
eW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNPYmplY3QqIG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwgZG91YmxlIHZhbHVlKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbE5v
blN0cmljdCwgdm9pZCwgKEpTR2wKICAgICBwdXRCeVZhbENlbGxJbnRlcm5hbDxmYWxzZSwgdHJ1
ZT4oZ2xvYmFsT2JqZWN0LCB2bSwgY2VsbCwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFZhbHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTAzMCw3ICsxMDMwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsICgKICAgICBD
b21tb25TbG93UGF0aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2bSwgZ2xvYmFsT2JqZWN0LCBvYmpl
Y3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSksIHNsb3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsSW50MzIgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTEwNjUsNyArMTA2NSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BcnJheVB1c2hEb3VibGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFy
cmF5LCB2b2lkKiBidWZmZXIsIGludDMyX3QgZWxlbWVudENvdW50KSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSwgdm9pZCogYnVmZmVy
LCBDQ2FsbEludDMyIGVsZW1lbnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTEwOTIsNyArMTA5Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BcnJheVB1c2hNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZU11bHRpcGxlLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFy
cmF5LCB2b2lkKiBidWZmZXIsIGludDMyX3QgZWxlbWVudENvdW50KSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hEb3VibGVNdWx0aXBsZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSwgdm9pZCog
YnVmZmVyLCBDQ2FsbEludDMyIGVsZW1lbnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTEyODAsNyArMTI4MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QYXJzZUludFN0cmluZ05vUmFkaXgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iCiAg
ICAgcmV0dXJuIHBhcnNlSW50UmVzdWx0KHBhcnNlSW50KHZpZXdXaXRoU3RyaW5nLnZpZXcsIDAp
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3RyaW5n
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5n
KiBzdHJpbmcsIGludDMyX3QgcmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblBhcnNlSW50U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIENDYWxsSW50MzIgcmFkaXgpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMjkzLDcgKzEyOTMsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplYwogICAgIHJldHVybiBwYXJzZUludFJlc3VsdChwYXJzZUludCh2aWV3V2l0aFN0
cmluZy52aWV3LCByYWRpeCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUGFyc2VJbnRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIEND
YWxsSW50MzIgcmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMzA0
LDcgKzEzMDQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRH
ZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZQogICAgIH0pOwogfQogICAgICAg
ICAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0U3RyaW5nLCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHBPYmplY3QqIHJlZ0V4
cE9iamVjdCwgSlNTdHJpbmcqIGlucHV0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25SZWdFeHBUZXN0U3RyaW5nLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEpTU3RyaW5n
KiBpbnB1dCkpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFs
c2UpOwogICAgIApAQCAtMTMxNSw3ICsxMzE1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG8K
ICAgICByZXR1cm4gcmVnRXhwT2JqZWN0LT50ZXN0SW5saW5lKGdsb2JhbE9iamVjdCwgaW5wdXQp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdCwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwT2JqZWN0KiByZWdFeHBP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3Bl
IHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTEzMzEsNyArMTMzMSw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0LCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIHJlZ0V4cE9iamVjdC0+dGVzdElubGlu
ZShnbG9iYWxPYmplY3QsIGlucHV0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEFyZ3VtZW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0
R2VuZXJpYywgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QXJndW1lbnQpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZh
bHNlKTsKICAgICAKQEAgLTE0OTksNyArMTQ5OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25CaXRYb3JIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6Yml0d2lzZVhvcihnbG9iYWxP
YmplY3QsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwsIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbCwgQ0NhbGxTaXpl
OjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3Ax
LCBKU0NlbGwqIG9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1MDgs
NyArMTUwOCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aWN0RXFDZWxsLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6
c3RyaWN0RXF1YWxGb3JDZWxscyhnbG9iYWxPYmplY3QsIG9wMSwgb3AyKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNhbWVWYWx1ZSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYXJnMSwgRW5jb2RlZEpTVmFsdWUg
YXJnMikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2FtZVZhbHVlLCBDQ2Fs
bFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgYXJnMSwgRW5jb2RlZEpTVmFsdWUgYXJnMikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTE2MDksNyArMTYwOSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRCeVZhbFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoYmFzZVZhbHVl
LmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5LCBzbG90KSkpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHVpbnRw
dHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeUlkV2l0aFRoaXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxVSW50cHRyIHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0x
NjIxLDcgKzE2MjEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJ
ZFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgcHV0V2l0aFRoaXM8
dHJ1ZT4oZ2xvYmFsT2JqZWN0LCBlbmNvZGVkQmFzZSwgZW5jb2RlZFRoaXMsIGVuY29kZWRWYWx1
ZSwgaWRlbnQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJ
ZFdpdGhUaGlzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
Q0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0xNjY5LDcgKzE2NjksNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2
b2lkIGRlZmluZURhdGFQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYg
dgogICAgICAgICBiYXNlLT5tZXRob2RUYWJsZSh2bSktPmRlZmluZU93blByb3BlcnR5KGJhc2Us
IGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCB0cnVlKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJf
dCBhdHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVE
YXRhUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTE2ODIsNyArMTY4Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
CiAgICAgZGVmaW5lRGF0YVByb3BlcnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIGF0dHJpYnV0ZXMpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5n
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEpT
U3RyaW5nKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0
dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQ
cm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBiYXNlLCBKU1N0cmluZyogcHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWMKICAgICBkZWZp
bmVEYXRhUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgYXR0cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJZGVudCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVk
U3RyaW5nSW1wbCogcHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJf
dCBhdHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVE
YXRhUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTcwMyw3ICsxNzAzLDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAo
SlNHbG9iYWwKICAgICBkZWZpbmVEYXRhUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwg
SWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgcHJvcGVydHkpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKSwgYXR0cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25EZWZpbmVEYXRhUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgU3ltYm9sKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBTeW1ib2wqIHByb3BlcnR5LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3MjEsNyArMTcyMSw3IEBAIEFMV0FZU19J
TkxJTkUgc3RhdGljIHZvaWQgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBWCiAgICAgICAgIGJhc2UtPm1ldGhvZFRhYmxlKHZtKS0+ZGVmaW5lT3du
UHJvcGVydHkoYmFzZSwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHRy
dWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNz
b3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIs
IEpTT2JqZWN0KiBzZXR0ZXIsIGludDMyX3QgYXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkUHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIENDYWxsSW50
MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3MzMs
NyArMTczMyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nl
c3NvclByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgZGVmaW5lQWNjZXNzb3JQ
cm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBwcm9wZXJ0eU5hbWUsIGdldHRlciwgc2V0
dGVyLCBhdHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgSlNTdHJpbmcqIHByb3BlcnR5LCBKU09iamVjdCog
Z2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmcsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgSlNTdHJp
bmcqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBDQ2FsbElu
dDMyIGF0dHJpYnV0ZXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNzQ1
LDcgKzE3NDUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNj
ZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsTwogICAgIGRlZmluZUFjY2Vzc29y
UHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0ZXIsIHNl
dHRlciwgYXR0cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqIHByb3Bl
cnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0
ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJv
cGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0
ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3NTMsNyArMTc1Myw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nSWRlbnQsIHZv
aWQsIChKU0dsCiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBi
YXNlLCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBwcm9wZXJ0eSksIGdldHRlciwgc2V0dGVyLCBh
dHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmlu
ZUFjY2Vzc29yUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogYmFzZSwgU3ltYm9sKiBwcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwg
SlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFN5bWJvbCogcHJvcGVy
dHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIENDYWxsSW50MzIgYXR0cmli
dXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3NjEsNyArMTc2MSw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3Bl
cnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPCiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShn
bG9iYWxPYmplY3QsIHZtLCBiYXNlLCBJZGVudGlmaWVyOjpmcm9tVWlkKHByb3BlcnR5LT5wcml2
YXRlTmFtZSgpKSwgZ2V0dGVyLCBzZXR0ZXIsIGF0dHJpYnV0ZXMpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgdm9pZCogYnVmZmVyLCBz
aXplX3Qgc2l6ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXks
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBhcnJheVN0
cnVjdHVyZSwgdm9pZCogYnVmZmVyLCBDQ2FsbFNpemUgc2l6ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTE3ODAsNyArMTc4MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdFbXB0eUFycmF5LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVj
dHVyCiAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxjaGFyKj4oSlNBcnJheTo6Y3JlYXRlKHZtLCBh
cnJheVN0cnVjdHVyZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCBpbnQzMl90IHNpemUsIEJ1dHRlcmZseSogYnV0dGVy
Zmx5KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXpl
LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlT
dHJ1Y3R1cmUsIENDYWxsSW50MzIgc2l6ZSwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xODA1LDcgKzE4MDUsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCogZ2xvYgogICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplQW5k
SGludCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFy
cmF5U3RydWN0dXJlLCBpbnQzMl90IHNpemUsIGludDMyX3QgdmVjdG9yTGVuZ3RoSGludCwgQnV0
dGVyZmx5KiBidXR0ZXJmbHkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0FycmF5V2l0aFNpemVBbmRIaW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIENDYWxsSW50MzIgc2l6ZSwgQ0NhbGxJbnQz
MiB2ZWN0b3JMZW5ndGhIaW50LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4NDQsNyArMTg0NCw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdBcnJheUJ1ZmZlciwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIs
IFN0cnVjCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld0ludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIq
IHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5
V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg2MCw3ICsxODYwLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDhBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhcios
IChKU0dsb2JhbE8KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0
R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0ludDhBcnJheT4oZ2xvYmFsT2Jq
ZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aFNpemUsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGludHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0aCwg
Y2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg3Niw3
ICsxODc2LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2QXJy
YXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWwKICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50
czxKU0ludDE2QXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAs
IHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3SW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3Rvcikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MzJBcnJheVdpdGhTaXpl
LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBDQ2FsbEludHB0ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTE4OTIsNyArMTg5Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xv
YmFsCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNU
eXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNJbnQzMkFycmF5PihnbG9iYWxPYmplY3QsIHN0
cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRy
X3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld1VpbnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2
ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xOTA4LDcgKzE5MDgs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhP
bmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWlu
dDhBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpu
dWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50
OENsYW1wZWRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3Rvcikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhDbGFtcGVkQXJyYXlX
aXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xOTI0LDcgKzE5MjQsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRoT25lQXJndW1lbnQs
IGNoYXIqLCAoSgogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RH
ZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWludDhDbGFtcGVkQXJyYXk+KGds
b2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRo
U2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRy
IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTk0MCw3ICsxOTQwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d1VpbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmEKICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0
aEFyZ3VtZW50czxKU1VpbnQxNkFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2Rl
ZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld1VpbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hh
ciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MzJB
cnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5NTYsNyArMTk1Niw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MzJBcnJheVdpdGhPbmVBcmd1bWVudCwg
Y2hhciosIChKU0dsb2JhCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0
cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNVaW50MzJBcnJheT4oZ2xv
YmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRo
U2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0
ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTE5NzIsNyArMTk3Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
ZXdGbG9hdDMyQXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iCiAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dp
dGhBcmd1bWVudHM8SlNGbG9hdDMyQXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNv
ZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwg
Y2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9h
dDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xOTg4LDcgKzE5ODgsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aE9uZUFyZ3Vt
ZW50LCBjaGFyKiwgKEpTR2xvYgogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihj
b25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTRmxvYXQ2NEFycmF5
PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQp
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ0ludDY0QXJy
YXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ0ludDY0QXJyYXlXaXRoU2l6ZSwgY2hhcios
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0Nh
bGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3QmlnSW50NjRBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsbwogICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJh
eVZpZXdXaXRoQXJndW1lbnRzPEpTQmlnSW50NjRBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdVaW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJf
dCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3QmlnVWludDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFy
KiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDU3LDEzICsy
MDU3LDEzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVBY3RpdmF0
aW9uRGlyZWN0LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlCiAgICAgcmV0dXJuIEpTTGV4aWNhbEVu
dmlyb25tZW50OjpjcmVhdGUodm0sIHN0cnVjdHVyZSwgc2NvcGUsIHRhYmxlLCBpbml0aWFsVmFs
dWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0
QXJndW1lbnRzLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IHVpbnQzMl90IGxlbmd0aCwgdWludDMyX3QgbWluQ2FwYWNpdHkpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50cywgSlNDZWxsKiwgKFZNKiB2
bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbFVJbnQzMiBsZW5ndGgsIENDYWxs
VUludDMyIG1pbkNhcGFjaXR5KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAg
RGlyZWN0QXJndW1lbnRzKiByZXN1bHQgPSBEaXJlY3RBcmd1bWVudHM6OmNyZWF0ZSgKLSAgICAg
ICAgdm0sIHN0cnVjdHVyZSwgbGVuZ3RoLCBzdGQ6Om1heChsZW5ndGgsIG1pbkNhcGFjaXR5KSk7
CisgICAgICAgIHZtLCBzdHJ1Y3R1cmUsIGxlbmd0aCwgc3RkOjptYXg8dWludDMyX3Q+KGxlbmd0
aCwgbWluQ2FwYWNpdHkpKTsKICAgICAvLyBUaGUgY2FsbGVyIHdpbGwgc3RvcmUgdG8gdGhpcyBv
YmplY3Qgd2l0aG91dCBiYXJyaWVycy4gTW9zdCBsaWtlbHksIGF0IHRoaXMgcG9pbnQsIHRoaXMg
aXMKICAgICAvLyBzdGlsbCBhIHlvdW5nIG9iamVjdCBhbmQgc28gbm8gYmFycmllcnMgYXJlIG5l
ZWRlZC4gQnV0IGl0J3MgZ29vZCB0byBiZSBjYXJlZnVsIGFueXdheSwKICAgICAvLyBzaW5jZSB0
aGUgR0Mgc2hvdWxkIGJlIGFsbG93ZWQgdG8gZG8gY3JhenkgKGxpa2UgcHJldGVudXJpbmcsIGZv
ciBleGFtcGxlKS4KQEAgLTIwNzEsNyArMjA3MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHMsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVy
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwg
dWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIEpTTGV4aWNhbEVudmlyb25tZW50
KiBzY29wZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlU2NvcGVk
QXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQzMiBsZW5n
dGgsIEpTRnVuY3Rpb24qIGNhbGxlZSwgSlNMZXhpY2FsRW52aXJvbm1lbnQqIHNjb3BlKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjA4NSw3ICsyMDg1LDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWMKICAgICAgICAgdm0sIHN0cnVjdHVyZSwgYXJndW1lbnRTdGFydCwg
bGVuZ3RoLCBjYWxsZWUsIHRhYmxlLCBzY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3Vt
ZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMsIEpTQ2VsbCos
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVn
aXN0ZXIqIGFyZ3VtZW50U3RhcnQsIENDYWxsVUludDMyIGxlbmd0aCwgSlNGdW5jdGlvbiogY2Fs
bGVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjA5NCw3ICsyMDk0LDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50
cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWMKICAgICAgICAgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUsIGFyZ3VtZW50U3RhcnQsIGxlbmd0aCwgY2FsbGVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50
MzJfdCBhcmd1bWVudENvdW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
cmVhdGVBcmd1bWVudHNCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgQ0NhbGxVSW50MzIgYXJndW1lbnRDb3Vu
dCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxMTEsNyArMjExMSw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0ZXJm
bHksIEpTQ2VsbCosIChKU0dsb2JhbE9iCiAgICAgcmV0dXJuIGJ1dHRlcmZseTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmlu
Z0V4aXQsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNh
bGxGcmFtZSwgSlNGdW5jdGlvbiogY2FsbGVlLCB1aW50MzJfdCBhcmd1bWVudENvdW50KSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNEdXJp
bmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVD
YWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNhbGxlZSwgQ0NhbGxVSW50MzIgYXJndW1lbnRDb3VudCkp
CiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTQxLDcgKzIxNDEsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdCwg
SlNDZWxsKiwgKFZNKgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwq
LCAoVk0qIHZtUG9pbnRlciwgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpTRnVu
Y3Rpb24qIGNhbGxlZSwgdWludDMyX3QgYXJndW1lbnRDb3VudCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxs
KiwgKFZNKiB2bVBvaW50ZXIsIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lLCBKU0Z1
bmN0aW9uKiBjYWxsZWUsIENDYWxsVUludDMyIGFyZ3VtZW50Q291bnQpKQogewogICAgIFZNJiB2
bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMjE3MCw3ICsyMTcwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSoK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ3JlYXRlUmVzdCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJl
Z2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1bnNpZ25lZCBudW1iZXJPZlBhcmFtc1RvU2tpcCwgdW5z
aWduZWQgYXJyYXlTaXplKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVh
dGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIq
IGFyZ3VtZW50U3RhcnQsIENDYWxsVUludDMyIG51bWJlck9mUGFyYW1zVG9Ta2lwLCBDQ2FsbFVJ
bnQzMiBhcnJheVNpemUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTgy
LDcgKzIxODIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVz
dCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBjb25zdHJ1
Y3RBcnJheShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgYXJndW1lbnRzVG9Db3B5UmVnaW9uLCBh
cnJheVNpemUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9m
SXNPYmplY3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCog
b2JqZWN0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc09iamVj
dCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogb2JqZWN0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE5
Myw3ICsyMTkzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklz
T2JqZWN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4ganNUeXBl
b2ZJc09iamVjdChnbG9iYWxPYmplY3QsIG9iamVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc0Z1bmN0aW9uLCBzaXplX3QsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVHlwZU9mSXNGdW5jdGlvbiwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjIwNCw3ICsyMjA0LDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklzRnVuY3Rpb24sIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG8KICAgICByZXR1cm4ganNUeXBlb2ZJc0Z1bmN0aW9uKGdsb2JhbE9iamVjdCwgb2Jq
ZWN0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdElzQ2Fs
bGFibGUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2Jq
ZWN0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RJc0NhbGxhYmxl
LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDZWxsKiBvYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMjE1
LDcgKzIyMTUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0SXND
YWxsYWJsZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBvYmplY3Qt
PmlzQ2FsbGFibGUodm0pOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SXNDb25zdHJ1Y3Rvciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklz
Q29uc3RydWN0b3IsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTIyNDksNyArMjI0OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpCiAg
ICAgICAgIEJ1dHRlcmZseTo6Y3JlYXRlVW5pbml0aWFsaXplZCh2bSwgbnVsbHB0ciwgMCwgaW5p
dGlhbE91dE9mTGluZUNhcGFjaXR5LCBmYWxzZSwgMCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAo
Vk0qIHZtUG9pbnRlciwgc2l6ZV90IG5ld1NpemUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBv
aW50ZXIsIENDYWxsU2l6ZSBuZXdTaXplKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIy
NzAsNyArMjI3MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0
ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjCiAgICAgICAgIG9iamVjdC0+
YWxsb2NhdGVNb3JlT3V0T2ZMaW5lU3RvcmFnZSh2bSwgMCwgaW5pdGlhbE91dE9mTGluZUNhcGFj
aXR5KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZUNv
bXBsZXhQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgSlNPYmplY3QqIG9i
amVjdCwgc2l6ZV90IG5ld1NpemUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBK
U09iamVjdCogb2JqZWN0LCBDQ2FsbFNpemUgbmV3U2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yMzM2LDcgKzIzMzYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRW5zdXJlQXJyYXlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTQwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJ
bmRleGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogYmFzZUNlbGwsIGludDMyX3Qgc3Vic2NyaXB0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHksIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2VDZWxsLCBDQ2FsbElu
dDMyIHN1YnNjcmlwdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzNDks
NyArMjM0OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJbmRleGVk
UHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIG9iamVjdC0+
aGFzUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3Vic2NyaXB0
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNFbnVtZXJhYmxl
SW5kZXhlZFByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIGJhc2VDZWxsLCBpbnQzMl90IHN1YnNjcmlwdCkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSGFzRW51bWVyYWJsZUluZGV4ZWRQcm9wZXJ0eSwgQ0NhbGxTaXplOjpJ
bnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZUNl
bGwsIENDYWxsSW50MzIgc3Vic2NyaXB0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjM5MiwxNyArMjM5MiwxOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9yQ2VsbCwgSlNDZWxsKiwgKEpTR2xvYmFsTwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgcHJvcGVydHlOYW1lRW51bWVyYXRvcihnbG9iYWxPYmpl
Y3QsIGJhc2UpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1l
cmF0b3JOZXh0VXBkYXRlSW5kZXhBbmRNb2RlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgdWludDMyX3QgaW5k
ZXgsIGludDMyX3QgbW9kZU51bWJlciwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJh
dG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVw
ZGF0ZUluZGV4QW5kTW9kZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlVmFsdWUsIENDYWxsVUludDMyIGluZGV4LCBDQ2Fs
bEludDMyIG1vZGVOdW1iZXIsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvcikp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCisgICAgdWludDMyX3QgaW5kZXhWYWx1ZSA9IGlu
ZGV4OwogICAgIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6RmxhZyBtb2RlID0gc3RhdGljX2Nh
c3Q8SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpGbGFnPihtb2RlTnVtYmVyKTsKICAgICBpZiAo
SlNWYWx1ZTo6ZGVjb2RlKGJhc2VWYWx1ZSkuaXNVbmRlZmluZWRPck51bGwoKSkgewogICAgICAg
ICBBU1NFUlQobW9kZSA9PSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkluaXRNb2RlKTsKLSAg
ICAgICAgQVNTRVJUKCFpbmRleCk7CisgICAgICAgIEFTU0VSVCghaW5kZXhWYWx1ZSk7CiAgICAg
ICAgIEFTU0VSVCghZW51bWVyYXRvci0+c2l6ZU9mUHJvcGVydHlOYW1lcygpKTsKICAgICAgICAg
bW9kZSA9IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6R2VuZXJpY01vZGU7CiAgICAgfSBlbHNl
IHsKQEAgLTI0MTAsMjcgKzI0MTEsMjcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlSW5kZXhBbmRNb2RlLCBFbmNvZGVkSlNWYWwKICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgICAgICBjb25zdGV4cHIg
Ym9vbCBzaG91bGRBbGxvY2F0ZUluZGV4ZWROYW1lU3RyaW5nID0gZmFsc2U7Ci0gICAgICAgIGVu
dW1lcmF0b3ItPmNvbXB1dGVOZXh0KGdsb2JhbE9iamVjdCwgYmFzZSwgaW5kZXgsIG1vZGUsIHNo
b3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJpbmcpOworICAgICAgICBlbnVtZXJhdG9yLT5jb21w
dXRlTmV4dChnbG9iYWxPYmplY3QsIGJhc2UsIGluZGV4VmFsdWUsIG1vZGUsIHNob3VsZEFsbG9j
YXRlSW5kZXhlZE5hbWVTdHJpbmcpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogICAgIH0KIAogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgSlNWYWx1ZSByZXN1bHQg
PSBiaXR3aXNlX2Nhc3Q8SlNWYWx1ZT4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1vZGUpIDw8IDMy
IHwgaW5kZXggfCBKU1ZhbHVlOjpEb3VibGVFbmNvZGVPZmZzZXQpOworICAgIEpTVmFsdWUgcmVz
dWx0ID0gYml0d2lzZV9jYXN0PEpTVmFsdWU+KHN0YXRpY19jYXN0PHVpbnQ2NF90Pihtb2RlKSA8
PCAzMiB8IGluZGV4VmFsdWUgfCBKU1ZhbHVlOjpEb3VibGVFbmNvZGVPZmZzZXQpOwogI2Vsc2UK
LSAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWUobW9kZSwgaW5kZXgpOworICAgIEpTVmFsdWUg
cmVzdWx0ID0gSlNWYWx1ZShtb2RlLCBpbmRleFZhbHVlKTsKICNlbmRpZgogICAgIEFTU0VSVChy
ZXN1bHQuaXNEb3VibGUoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRh
dGVQcm9wZXJ0eU5hbWUsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IHVpbnQzMl90IGluZGV4LCBpbnQzMl90IG1vZGVOdW1iZXIsIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvciogZW51bWVyYXRvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51
bWVyYXRvck5leHRVcGRhdGVQcm9wZXJ0eU5hbWUsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENDYWxsVUludDMyIGluZGV4LCBDQ2FsbEludDMyIG1vZGVOdW1iZXIs
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvcikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAKICAgICBpZiAobW9kZU51bWJlciA9PSBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3I6OkluZGV4ZWRNb2RlKSB7Ci0gICAgICAgIGlmIChpbmRleCA8IGVudW1l
cmF0b3ItPmluZGV4ZWRMZW5ndGgoKSkKKyAgICAgICAgaWYgKHVpbnQzMl90KGluZGV4KSA8IGVu
dW1lcmF0b3ItPmluZGV4ZWRMZW5ndGgoKSkKICAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyh2
bSwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLnN0cmluZygpKTsKICAgICAgICAgcmV0dXJu
IHZtLnNtYWxsU3RyaW5ncy5zZW50aW5lbFN0cmluZygpOwogICAgIH0KQEAgLTI0NDIsNyArMjQ0
Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVw
ZGF0ZVByb3BlcnR5TmFtZSwgSlNTdHJpbmcqLCAoCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFtZUFu
ZEdldEJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgdWludDMyX3QgaW5kZXgsIEpTUHJvcGVydHlOYW1l
RW51bWVyYXRvciogZW51bWVyYXRvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBDQ2Fs
bFVJbnQzMiBpbmRleCwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjQ2MCw3ICsyNDYxLDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFtZUFuZEdldEJ5
VmFsLCBFbmNvZGVkSlNWYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShvYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSkpKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JJbkJ5VmFsLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvcGVydHlOYW1lVmFsdWUsIHVpbnQzMl90IGlu
ZGV4LCBpbnQzMl90IG1vZGVOdW1iZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkVudW1lcmF0b3JJbkJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJv
cGVydHlOYW1lVmFsdWUsIENDYWxsVUludDMyIGluZGV4LCBDQ2FsbEludDMyIG1vZGVOdW1iZXIp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNDc1LDcgKzI0NzYsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckluQnlWYWwsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihDb21tb25TbG93UGF0aHM6Om9wSW5CeVZhbChnbG9iYWxP
YmplY3QsIGJhc2UsIHByb3BlcnR5TmFtZSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25FbnVtZXJhdG9ySGFzT3duUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eU5hbWVWYWx1ZSwgdWludDMyX3QgaW5kZXgsIGludDMyX3Qg
bW9kZU51bWJlcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRv
ckhhc093blByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvcGVydHlO
YW1lVmFsdWUsIENDYWxsVUludDMyIGluZGV4LCBDQ2FsbEludDMyIG1vZGVOdW1iZXIpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTMzLDcgKzI1MzQsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nVmFsdWVPZiwgSlNTdHJpbmcqLCAoSlNH
bG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU3Vic3RyLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBpbnQzMl90IGZyb20sIGludDMyX3Qgc3Bh
bikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU3Vic3RyLCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBDQ2FsbElu
dDMyIGZyb20sIENDYWxsSW50MzIgc3BhbikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTI1NDIsNyArMjU0Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25TdHJpbmdTdWJzdHIsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0
dXJuIGpzU3Vic3RyaW5nKHZtLCBnbG9iYWxPYmplY3QsIGpzQ2FzdDxKU1N0cmluZyo+KGNlbGwp
LCBmcm9tLCBzcGFuKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0
cmluZ1NsaWNlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBjZWxsLCBpbnQzMl90IHN0YXJ0LCBpbnQzMl90IGVuZCkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU3RyaW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIENDYWxsSW50MzIgc3RhcnQsIENDYWxsSW50MzIgZW5k
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU1MCwxMCArMjU1MSwxMCBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU2xpY2UsIEpTQ2VsbCos
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogCiAgICAgSlNTdHJpbmcqIHN0cmluZyA9IGFzU3Ry
aW5nKGNlbGwpOwogICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEpTU3Ry
aW5nOjpNYXhMZW5ndGgpIDw9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzdGQ6Om51bWVyaWNfbGlt
aXRzPGludDMyX3Q+OjptYXgoKSksICIiKTsKLSAgICByZXR1cm4gc3RyaW5nU2xpY2UoZ2xvYmFs
T2JqZWN0LCB2bSwgc3RyaW5nLCBzdHJpbmctPmxlbmd0aCgpLCBzdGFydCwgZW5kKTsKKyAgICBy
ZXR1cm4gc3RyaW5nU2xpY2U8aW50MzJfdD4oZ2xvYmFsT2JqZWN0LCB2bSwgc3RyaW5nLCBzdHJp
bmctPmxlbmd0aCgpLCBzdGFydCwgZW5kKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCB1aW50MzJfdCBmYWlsaW5nSW5kZXgpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmluZyosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCBDQ2FsbFVJbnQzMiBm
YWlsaW5nSW5kZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTcyLDcg
KzI1NzMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dlckNhc2Us
IEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwganNTdHJpbmcodm0sIGxvd2VyY2FzZWRTdHJpbmcpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCB2YWx1ZSwgaW50MzJfdCByYWRpeCkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0cmluZywgY2hhciosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2FsbEludDMyIHZhbHVlLCBDQ2FsbEludDMyIHJh
ZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU4OCw3ICsyNTg5LDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oaW50MzJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGludDY0X3QgdmFsdWUsIGludDMyX3QgcmFkaXgpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ0NhbGxJbnQ2NCB2YWx1ZSwgQ0NhbGxJbnQzMiByYWRp
eCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MDQsNyArMjYwNSw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5nLCBjaGFyKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KGludDUyVG9TdHJpbmcodm0sIHZhbHVlLCByYWRpeCkpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZywgY2hhciosIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIENDYWxsSW50MzIgcmFkaXgpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNjIwLDcgKzI2MjEsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmcsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihu
dW1iZXJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCB2YWx1ZSwgaW50MzJfdCByYWRpeCkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0cmluZ1dpdGhWYWxp
ZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxsSW50MzIg
dmFsdWUsIENDYWxsSW50MzIgcmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0yNjI5LDcgKzI2MzAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SW50MzJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsTwogICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PGNoYXIqPihpbnQzMlRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgp
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdX
aXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQ2
NF90IHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25JbnQ1MlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ0NhbGxJbnQ2NCB2YWx1ZSwgQ0NhbGxJbnQzMiByYWRpeCkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MzgsNyArMjYzOSw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNo
YXIqLCAoSlNHbG9iYWxPCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGludDUy
VG9TdHJpbmcodm0sIHZhbHVlLCByYWRpeCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIGludDMyX3QgcmFkaXgpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nV2l0aFZhbGlkUmFk
aXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlLCBD
Q2FsbEludDMyIHJhZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjY1
Niw3ICsyNjU3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZ1bmN0aW9u
VG9TdHJpbmcsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBmdW5jdGlv
bi0+dG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0cmluZywgSlNTdHJpbmcqLCAoVk0qIHZtUG9pbnRl
ciwgaW50MzJfdCBjaGFyYWN0ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blNpbmdsZUNoYXJhY3RlclN0cmluZywgSlNTdHJpbmcqLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxJ
bnQzMiBjaGFyYWN0ZXIpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjgwNiw3ICsyODA3
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0ckNhdDMsIEpTU3RyaW5n
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIGpzU3RyaW5nKGdsb2JhbE9iamVjdCwgc3RyMSwgc3RyMiwgc3RyMykpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRvdWJs
ZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHNp
emVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1pbikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRvdWJsZSwgY2hhciosIChWTSogdm1Qb2lu
dGVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBD
Q2FsbEludDMyIG1pbikpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODIyLDcgKzI4MjMs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdl
dEZvckRvdWJsZSwgY2hhciosIChWTSogdm1QbwogICAgIHJldHVybiBsaW5rZWRUYWJsZS5tX2N0
aURlZmF1bHQuZXhlY3V0YWJsZUFkZHJlc3M8Y2hhcio+KCk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgc2l6ZV90IHRhYmxlSW5kZXgsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVt
cFRhYmxlKiB1bmxpbmtlZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ0NhbGxTaXplIHRhYmxlSW5kZXgsIGNvbnN0IFVubGlua2VkU3RyaW5n
SnVtcFRhYmxlKiB1bmxpbmtlZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjgzNywyNyArMjgzOCwyNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYgogICAgIHJldHVybiBsaW5rZWRUYWJsZS5jdGlGb3JWYWx1ZSgqdW5saW5rZWRU
YWJsZSwgc3RySW1wbCkuZXhlY3V0YWJsZUFkZHJlc3M8Y2hhcio+KCk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbExlc3MsIHVpbnRwdHJf
dCwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzcywgQ0NhbGxVSW50cHRyOjpJbnRlZ2Vy
VHlwZSwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQogewogICAgIHJldHVybiBjb2Rl
UG9pbnRDb21wYXJlKGEsIGIpIDwgMDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzc0VxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiBh
LCBTdHJpbmdJbXBsKiBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21w
YXJlU3RyaW5nSW1wbExlc3NFcSwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKFN0cmluZ0lt
cGwqIGEsIFN0cmluZ0ltcGwqIGIpKQogewogICAgIHJldHVybiBjb2RlUG9pbnRDb21wYXJlKGEs
IGIpIDw9IDA7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
U3RyaW5nSW1wbEdyZWF0ZXIsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwq
IGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBs
R3JlYXRlciwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKFN0cmluZ0ltcGwqIGEsIFN0cmlu
Z0ltcGwqIGIpKQogewogICAgIHJldHVybiBjb2RlUG9pbnRDb21wYXJlKGEsIGIpID4gMDsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3Jl
YXRlckVxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBsKiBiKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbEdyZWF0ZXJFcSwg
Q0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIp
KQogewogICAgIHJldHVybiBjb2RlUG9pbnRDb21wYXJlKGEsIGIpID49IDA7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzcywgdWludHB0cl90
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBi
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzcywg
Q0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTI4NjYsNyArMjg2Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlU3RyaW5nTGVzcywgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0
dXJuIGNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihhc1N0cmluZyhhKS0+dmFsdWUoZ2xvYmFsT2Jq
ZWN0KSwgYXNTdHJpbmcoYiktPnZhbHVlKGdsb2JhbE9iamVjdCkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcSwgdWludHB0cl90LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzc0VxLCBD
Q2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjg3NSw3ICsyODc2LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVTdHJpbmdMZXNzRXEsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWMKICAgICByZXR1
cm4gIWNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihhc1N0cmluZyhiKS0+dmFsdWUoZ2xvYmFsT2Jq
ZWN0KSwgYXNTdHJpbmcoYSktPnZhbHVlKGdsb2JhbE9iamVjdCkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIsIHVpbnRwdHJfdCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIs
IENDYWxsVUludHB0cjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1N0cmluZyogYSwgSlNTdHJpbmcqIGIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yODg0LDcgKzI4ODUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZQogICAgIHJl
dHVybiBjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4oYXNTdHJpbmcoYiktPnZhbHVlKGdsb2JhbE9i
amVjdCksIGFzU3RyaW5nKGEpLT52YWx1ZShnbG9iYWxPYmplY3QpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyRXEsIHVpbnRwdHJf
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyog
YikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0
ZXJFcSwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTI5MTEsNyArMjkxMiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dGb3JWYXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxPCiAg
ICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplT2ZWYXJhcmdzLCBVQ1BVU3RyaWN0
SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQXJndW1lbnRzLCB1aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZU9mVmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50
cywgQ0NhbGxVSW50MzIgZmlyc3RWYXJBcmdPZmZzZXQpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yOTIxLDcgKzI5MjIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU2l6ZU9mVmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplYwog
ICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihzaXplT2ZWYXJhcmdzKGdsb2JhbE9iamVjdCwg
YXJndW1lbnRzLCBmaXJzdFZhckFyZ09mZnNldCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSGFzT3duUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
S2V5KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNPd25Qcm9wZXJ0eSwg
Q0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5KSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk0Miw3ICsyOTQzLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc093blByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmEKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTUwLDcgKzI5NTEsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyLCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBOdW1iZXJDb25zdHJ1Y3Rvcjo6aXNJbnRlZ2Vy
SW1wbChKU1ZhbHVlOjpkZWNvZGUodmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBidXR0ZXJmbHksIEpTU3RyaW5nKiBz
ZWFyY2hFbGVtZW50LCBpbnQzMl90IGluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BcnJheUluZGV4T2ZTdHJpbmcsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBKU1N0cmluZyogc2VhcmNo
RWxlbWVudCwgQ0NhbGxJbnQzMiBpbmRleCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTI5NTksMjMgKzI5NjAsMjMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFycmF5SW5kZXhPZlN0cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWwKIAogICAg
IGludDMyX3QgbGVuZ3RoID0gYnV0dGVyZmx5LT5wdWJsaWNMZW5ndGgoKTsKICAgICBhdXRvIGRh
dGEgPSBidXR0ZXJmbHktPmNvbnRpZ3VvdXMoKS5kYXRhKCk7Ci0gICAgZm9yICg7IGluZGV4IDwg
bGVuZ3RoOyArK2luZGV4KSB7Ci0gICAgICAgIEpTVmFsdWUgdmFsdWUgPSBkYXRhW2luZGV4XS5n
ZXQoKTsKKyAgICBmb3IgKGludDMyX3QgaSA9IGluZGV4OyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRhdGFbaV0uZ2V0KCk7CiAgICAgICAgIGlmICghdmFsdWUg
fHwgIXZhbHVlLmlzU3RyaW5nKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYXV0
byogc3RyaW5nID0gYXNTdHJpbmcodmFsdWUpOwogICAgICAgICBpZiAoc3RyaW5nID09IHNlYXJj
aEVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaW5kZXgpOwor
ICAgICAgICAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKGkpOwogICAgICAgICBpZiAoc3Ry
aW5nLT5lcXVhbChnbG9iYWxPYmplY3QsIHNlYXJjaEVsZW1lbnQpKSB7CiAgICAgICAgICAgICBz
Y29wZS5hc3NlcnROb0V4Y2VwdGlvbkV4Y2VwdFRlcm1pbmF0aW9uKCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIHRvVUNQ
VVN0cmljdEludDMyKGkpOwogICAgICAgICB9CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CiAgICAgfQogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZUlu
dDMyT3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBpbnQzMl90IGluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJh
eUluZGV4T2ZWYWx1ZUludDMyT3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBDQ2FsbEludDMyIGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMjk4NiwxOSArMjk4NywxOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVJbnQzMk9yQ29udGlndW91cywgVUNQVVN0cmlj
dAogCiAgICAgaW50MzJfdCBsZW5ndGggPSBidXR0ZXJmbHktPnB1YmxpY0xlbmd0aCgpOwogICAg
IGF1dG8gZGF0YSA9IGJ1dHRlcmZseS0+Y29udGlndW91cygpLmRhdGEoKTsKLSAgICBmb3IgKDsg
aW5kZXggPCBsZW5ndGg7ICsraW5kZXgpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRhdGFb
aW5kZXhdLmdldCgpOworICAgIGZvciAoaW50MzJfdCBpID0gaW5kZXg7IGkgPCBsZW5ndGg7ICsr
aSkgeworICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZGF0YVtpXS5nZXQoKTsKICAgICAgICAgaWYg
KCF2YWx1ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBib29sIGlzRXF1YWwgPSBK
U1ZhbHVlOjpzdHJpY3RFcXVhbChnbG9iYWxPYmplY3QsIHNlYXJjaEVsZW1lbnQsIHZhbHVlKTsK
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICAgICAgaWYgKGlz
RXF1YWwpCi0gICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaW5kZXgpOworICAg
ICAgICAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKGkpOwogICAgIH0KICAgICByZXR1cm4g
dG9VQ1BVU3RyaWN0SW50MzIoLTEpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXJyYXlJbmRleE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlRG91YmxlLCBVQ1BVU3RyaWN0SW50MzIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBDQ2FsbEludDMyIGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMzAxMiwxNyArMzAxMywxNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwg
KEpTRwogCiAgICAgaW50MzJfdCBsZW5ndGggPSBidXR0ZXJmbHktPnB1YmxpY0xlbmd0aCgpOwog
ICAgIGNvbnN0IGRvdWJsZSogZGF0YSA9IGJ1dHRlcmZseS0+Y29udGlndW91c0RvdWJsZSgpLmRh
dGEoKTsKLSAgICBmb3IgKDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpIHsKKyAgICBmb3IgKGlu
dDMyX3QgaSA9IGluZGV4OyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgLy8gVGhpcyBjb21w
YXJpc29uIGlnbm9yZXMgTmFOLgotICAgICAgICBpZiAoZGF0YVtpbmRleF0gPT0gbnVtYmVyKQot
ICAgICAgICAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKGluZGV4KTsKKyAgICAgICAgaWYg
KGRhdGFbaV0gPT0gbnVtYmVyKQorICAgICAgICAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMy
KGkpOwogICAgIH0KICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoLTEpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3QgbGVuZ3Ro
SW5jbHVkaW5nVGhpcywgdWludDMyX3QgbWFuZGF0b3J5TWluaW11bSkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDQ2FsbEludDMyIGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRBcmd1bWVudHMsIENDYWxsVUludDMyIG9mZnNldCwgQ0NhbGxVSW50MzIgbGVuZ3Ro
SW5jbHVkaW5nVGhpcywgQ0NhbGxVSW50MzIgbWFuZGF0b3J5TWluaW11bSkpCiB7Ci0gICAgVmly
dHVhbFJlZ2lzdGVyIGZpcnN0RWxlbWVudCB7IGZpcnN0RWxlbWVudERlc3QgfTsKKyAgICBWaXJ0
dWFsUmVnaXN0ZXIgZmlyc3RFbGVtZW50IHsgaW50MzJfdChmaXJzdEVsZW1lbnREZXN0KSB9Owog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzAzNCw5ICszMDM1LDkgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICAgICAgY2FsbEZyYW1lLT5yKGZpcnN0RWxlbWVu
dCArIGkpID0ganNVbmRlZmluZWQoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkZNb2RPbkludHMsIGRvdWJsZSwgKGludDMyX3QgYSwgaW50MzJfdCBiKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25GTW9kT25JbnRzLCBkb3VibGUsIChDQ2FsbElu
dDMyIGEsIENDYWxsSW50MzIgYikpCiB7Ci0gICAgcmV0dXJuIGZtb2QoYSwgYik7CisgICAgcmV0
dXJuIGZtb2QoaW50MzJfdChhKSwgaW50MzJfdChiKSk7CiB9CiAKICNpZiBVU0UoSlNWQUxVRTMy
XzY0KQpAQCAtMzA0Niw3ICszMDQ3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblJhbmRvbSwgZG91YmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIH0KICNl
bmRpZgogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJD
b2RlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCBvcDEp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZSwg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxsSW50MzIgb3AxKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzA2NCw3ICszMDY1LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZVVudHlwZWQs
IEVuY29kZWRKU1ZhbHVlLCAoSlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQzo6c3Ry
aW5nRnJvbUNoYXJDb2RlKGdsb2JhbE9iamVjdCwgY2hJbnQpKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRCb3hlZERvdWJsZVRvSW50NTIsIGludDY0X3Qs
IChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRCb3hlZERvdWJsZVRvSW50NTIsIENDYWxsSW50NjQ6OkludGVnZXJU
eXBlLCAoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAgICAgaWYgKCF2YWx1ZS5pc0RvdWJs
ZSgpKQpAQCAtMzA3MiwxMiArMzA3MywxMiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydEJveGVkRG91YmxlVG9JbnQ1MiwgaW50NjRfdCwgKEVuY29kZWRKUwogICAg
IHJldHVybiB0cnlDb252ZXJ0VG9JbnQ1Mih2YWx1ZS5hc0RvdWJsZSgpKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnREb3VibGVUb0ludDUyLCBpbnQ2NF90
LCAoZG91YmxlIHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252
ZXJ0RG91YmxlVG9JbnQ1MiwgQ0NhbGxJbnQ2NDo6SW50ZWdlclR5cGUsIChkb3VibGUgdmFsdWUp
KQogewogICAgIHJldHVybiB0cnlDb252ZXJ0VG9JbnQ1Mih2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdSYXdPYmplY3QsIGNoYXIqLCAoVk0qIHZtUG9p
bnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludDMyX3QgbGVuZ3RoLCBCdXR0ZXJmbHkqIGJ1
dHRlcmZseSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmF3T2JqZWN0
LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludDMy
IGxlbmd0aCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMzExNiw3ICszMTE3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d09iamVjdFdpdGhCdXR0ZXJmbHksIEpTQ2VsbCosIChWTSogdm1Qb2ludGUKICAgICByZXR1cm4g
SlNGaW5hbE9iamVjdDo6Y3JlYXRlV2l0aEJ1dHRlcmZseSh2bSwgc3RydWN0dXJlLCBidXR0ZXJm
bHkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0
aEJ1dHRlcmZseVdpdGhJbmRleGluZ0hlYWRlckFuZFZlY3Rvckxlbmd0aCwgSlNDZWxsKiwgKFZN
KiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBsZW5ndGgsIEJ1dHRl
cmZseSogYnV0dGVyZmx5KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdP
YmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVjdG9yTGVuZ3RoLCBKU0Nl
bGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsVUludDMyIGxl
bmd0aCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MzEzOCw3ICszMTM5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09i
amVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFkZXJBbmRWZWMKICAgICByZXR1cm4gSlNG
aW5hbE9iamVjdDo6Y3JlYXRlV2l0aEJ1dHRlcmZseSh2bSwgc3RydWN0dXJlLCBidXR0ZXJmbHkp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU3By
ZWFkU2xvdywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIGJ1
ZmZlciwgdWludDMyX3QgbnVtSXRlbXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld0FycmF5V2l0aFNwcmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCB2b2lkKiBidWZmZXIsIENDYWxsVUludDMyIG51bUl0ZW1zKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzE5Nyw3ICszMTk4LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVhZFNsb3csIEpTQ2VsbCosIChK
U0dsb2JhbE9iamUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ3JlYXRlSW1tdXRhYmxlQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWduZWQgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFibGVCdXR0ZXJmbHksIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2FsbFVJbnQzMiBsZW5ndGgpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMjg3LDcgKzMyODgsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVNjb3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbAogICAgIHJldHVybiByZXNvbHZlZFNjb3BlOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0RHluYW1pY1ZhciwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIFVuaXF1ZWRTdHJp
bmdJbXBsKiBpbXBsLCB1bnNpZ25lZCBnZXRQdXRJbmZvQml0cykpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0RHluYW1pY1ZhciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBs
KiBpbXBsLCBDQ2FsbFVJbnQzMiBnZXRQdXRJbmZvQml0cykpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTMzNDcsNyArMzM0OCw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZv
aWQgcHV0RHluYW1pY1ZhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIEpT
CiAgICAgc2NvcGUtPm1ldGhvZFRhYmxlKHZtKS0+cHV0KHNjb3BlLCBnbG9iYWxPYmplY3QsIGlk
ZW50LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlIHZhbHVl
LCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRK
U1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgQ0NhbGxVSW50MzIgZ2V0UHV0
SW5mb0JpdHMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzU2LDcgKzMz
NTcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIHJldHVybiBwdXREeW5hbWljVmFy
KGdsb2JhbE9iamVjdCwgdm0sIHNjb3BlLCB2YWx1ZSwgaW1wbCwgZ2V0UHV0SW5mb0JpdHMsIGlz
U3RyaWN0TW9kZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRE
eW5hbWljVmFyTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwq
IGltcGwsIHVuc2lnbmVkIGdldFB1dEluZm9CaXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXREeW5hbWljVmFyTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgVW5p
cXVlZFN0cmluZ0ltcGwqIGltcGwsIENDYWxsVUludDMyIGdldFB1dEluZm9CaXRzKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzM5MSw3ICszMzkyLDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhhc2hIZWFwQmlnSW50LCBVQ1BVU3RyaWN0SW50
MzIsIChWTSogdm1Qb2kKICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoanNNYXBIYXNoKGlu
cHV0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU01hcEZpbmRC
dWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1h
cCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkpTTWFwRmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIENDYWxsSW50
MzIgaGFzaCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM0MDIsNyArMzQw
Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU01hcEZpbmRCdWNrZXQs
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuICpidWNrZXQ7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU1NldEZpbmRCdWNrZXQsIEpTQ2Vs
bCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwgRW5jb2RlZEpT
VmFsdWUga2V5LCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIENDYWxsSW50MzIgaGFzaCkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM0MTMsNyArMzQxNCw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU1NldEZpbmRCdWNrZXQsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuICpidWNrZXQ7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TZXRBZGQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0NlbGwqIHNldCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhh
c2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogc2V0LCBFbmNvZGVkSlNWYWx1
ZSBrZXksIENDYWxsSW50MzIgaGFzaCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTM0MjQsNyArMzQyNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
ZXRBZGQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJu
IGJ1Y2tldDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcFNldCwg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNv
ZGVkSlNWYWx1ZSBrZXksIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBpbnQzMl90IGhhc2gpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcFNldCwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIEVu
Y29kZWRKU1ZhbHVlIHZhbHVlLCBDQ2FsbEludDMyIGhhc2gpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0zNDM1LDcgKzM0MzYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dAogICAgIHJldHVybiBidWNrZXQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XZWFrU2V0QWRkLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBzZXQsIEpTQ2Vs
bCoga2V5LCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldlYWtTZXRBZGQsIHZvaWQsIChWTSogdm1Qb2ludGVyLCBKU0NlbGwqIHNldCwgSlNDZWxsKiBr
ZXksIENDYWxsSW50MzIgaGFzaCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDQzLDcg
KzM0NDQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha1NldEFkZCwg
dm9pZCwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogc2V0LAogICAgIGpzQ2FzdDxKU1dlYWtTZXQq
PihzZXQpLT5hZGQodm0sIGFzT2JqZWN0KGtleSksIEpTVmFsdWUoKSwgaGFzaCk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrTWFwU2V0LCB2b2lkLCAoVk0qIHZt
UG9pbnRlciwgSlNDZWxsKiBtYXAsIEpTQ2VsbCoga2V5LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwg
aW50MzJfdCBoYXNoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrTWFw
U2V0LCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBtYXAsIEpTQ2VsbCoga2V5LCBFbmNv
ZGVkSlNWYWx1ZSB2YWx1ZSwgQ0NhbGxJbnQzMiBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Q
b2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTM2NjksNyArMzY3MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25UaHJvd0RGRywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgc2Nv
cGUudGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWVUb1Ro
cm93KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1N0YXRp
Y0Vycm9yLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIG1l
c3NhZ2UsIHVpbnQzMl90IGVycm9yVHlwZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVGhyb3dTdGF0aWNFcnJvciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTU3RyaW5nKiBtZXNzYWdlLCBDQ2FsbFVJbnQzMiBlcnJvclR5cGUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC00MTE2LDcgKzQxMTcsNyBAQCBzdGF0aWMgY2hhciog
dGllclVwQ29tbW9uKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEJ5dGVjb2RlSW5kZXgg
b3JpZ2luQnl0ZQogICAgIHJldHVybiB0YWdDb2RlUHRyV2l0aFN0YWNrUG9pbnRlckZvckpJVENh
bGwodW50YWdDb2RlUHRyPGNoYXIqLCBKU0VudHJ5UHRyVGFnPihhZGRyZXNzKSwgY2FsbEZyYW1l
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVyVXBO
b3dJbkxvb3AsIHZvaWQsIChWTSogdm1Qb2ludGVyLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0
cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0lu
TG9vcCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIENDYWxsVUludDMyIGJ5dGVjb2RlSW5kZXhCaXRz
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTQxNDgsNyArNDE0OSw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93SW5Mb29wLCB2b2lkLCAo
Vk0qIHZtUG9pbnRlciwKICAgICB9CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25UcmlnZ2VyT1NSRW50cnlOb3csIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgdW5zaWduZWQg
Ynl0ZWNvZGVJbmRleEJpdHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRy
aWdnZXJPU1JFbnRyeU5vdywgY2hhciosIChWTSogdm1Qb2ludGVyLCBDQ2FsbFVJbnQzMiBieXRl
Y29kZUluZGV4Qml0cykpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IGZiZDZkMDllNDY3MjVmOTczYmJlODdkODY4
YmZjOTQwMWRlOWE3MjYuLjA2ZDVjYTRiZGRjMDdmZjlkY2NmYTY0MjdjZjUxNzc0Njc3Y2IzYjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5o
IgogI2luY2x1ZGUgIkRGR0FyaXRoTW9kZS5oIgogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlICJUeXBlZEFycmF5VHlwZS5oIgpAQCAtNDMsNyArNDQsNyBAQCBuYW1lc3BhY2Ug
REZHIHsKIAogc3RydWN0IE9TUkV4aXRCYXNlOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
aW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdGcm9t
Q2hhckNvZGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIENDYWxsSW50MzIpKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlVW50eXBlZCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiAKIC8v
IFRoZXNlIHJvdXRpbmVzIHByb3ZpZGUgY2FsbGJhY2tzIG91dCB0byBDKysgaW1wbGVtZW50YXRp
b25zIG9mIG9wZXJhdGlvbnMgdG9vIGNvbXBsZXggdG8gSklULgpAQCAtNTcsNyArNTgsNyBAQCBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdENyZWF0ZSwgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jbwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25PYmplY3RDcmVhdGVPYmplY3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0
KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RBc3NpZ25PYmpl
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgSlNPYmplY3QqKSk7CiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdEFzc2lnblVudHlwZWQsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlVGhpcywgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCB1aW50MzJfdCBpbmxpbmVDYXBhY2l0eSkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVUaGlzLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogY29uc3RydWN0b3IsIENDYWxsVUludDMyIGlu
bGluZUNhcGFjaXR5KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0
ZVByb21pc2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBjb25zdHJ1Y3Rv
cikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbnRlcm5hbFBy
b21pc2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBjb25zdHJ1Y3Rvcikp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVHZW5lcmF0b3IsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBjb25zdHJ1Y3RvcikpOwpAQCAtOTEs
OCArOTIsOCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoUm91bmQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLAogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Bcml0aEZsb29yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
QXJpdGhDZWlsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhUcnVuYywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50LCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50LCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBDQ2FsbEludDMyKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0U3RyaW5nLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcpKTsKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RTeW1ib2wsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJvbCkpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub1ByaW1pdGl2ZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CkBAIC0xMDMsNDIgKzEwNCw0
MiBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxOdW1iZXJDb25zdHJ1
Y3RvciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsbwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeVZhbFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcm90b3R5cGVPZiwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByb3RvdHlwZU9mT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkhhc0VudW1lcmFibGVJbmRleGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25I
YXNJbmRleGVkUHJvcGVydHksIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSGFzRW51bWVyYWJsZUluZGV4ZWRQcm9wZXJ0eSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlw
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgQ0NhbGxJbnQzMikpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3IsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldFByb3BlcnR5RW51bWVyYXRvckNlbGwsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIGludDMyX3QsIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51
bWVyYXRvck5leHRVcGRhdGVQcm9wZXJ0eU5hbWUsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0
KiwgdWludDMyX3QsIGludDMyX3QsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckluQnlWYWwsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IHVpbnQzMl90LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIGludDMyX3QpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJOYW1l
QW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSwgdWludDMyX3QsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxV
SW50MzIsIENDYWxsSW50MzIsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVQcm9wZXJ0eU5h
bWUsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIs
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRW51bWVyYXRvckluQnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludDMyLCBDQ2FsbElu
dDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JIYXNP
d25Qcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlW
YWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0Nh
bGxVSW50MzIsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopKTsKIAogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdSZWdleHBXaXRoTGFzdEluZGV4LCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSosIHZvaWQqLCBzaXplX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCB2b2lk
KiwgQ0NhbGxTaXplKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Vt
cHR5QXJyYXksIGNoYXIqLCAoVk0qLCBTdHJ1Y3R1cmUqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBCdXR0ZXJmbHkqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemVBbmRIaW50LCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwgaW50MzJfdCwgQnV0dGVyZmx5KikpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoU2l6ZSwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplLCBjaGFyKiwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5KikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplQW5kSGlu
dCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50MzIsIENDYWxs
SW50MzIsIEJ1dHRlcmZseSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3SW50OEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3SW50OEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3SW50MTZBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50LCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhTaXplLCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4QXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OEFycmF5V2l0aE9u
ZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpT
VmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhDbGFt
cGVkQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGlu
dHB0cl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdV
aW50OENsYW1wZWRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MTZBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50
LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MzJBcnJheVdpdGhT
aXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnRwdHIsIGNo
YXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQzMkFycmF5
V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5j
b2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3Rmxv
YXQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBp
bnRwdHJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
RmxvYXQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3RmxvYXQzMkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqLCBpbnRwdHJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnSW50NjRBcnJheVdpdGhTaXplLCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ0ludDY0QXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFy
KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdJbnQ2NEFycmF5
V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5j
b2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3Qmln
VWludDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSos
IGludHB0cl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
ZXdCaWdVaW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld0JpZ1VpbnQ2NEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlJdGVyYXRvciwgSlNDZWxsKiwgKFZNKiwgU3RydWN0
dXJlKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdNYXBJdGVyYXRv
ciwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKikpOwpAQCAtMTUwLDM2ICsxNTEsMzYgQEAgSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdTdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iamUKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlWYWxDZWxsU3RyaW5nTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqLCBKU0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbFN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeVZhbENlbGxTeW1ib2xOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCosIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5k
c1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlW
YWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmpl
Y3QqLCBDQ2FsbEludDMyIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5k
c05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMy
IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
UHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeVZhbERpcmVjdENlbGxTdHJpbmdOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxs
U3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5
bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbE5vblN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9u
ZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCos
IGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRz
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgs
IGRvdWJsZSB2YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRE
b3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5
Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3Qg
aW5kZXgsIGRvdWJsZSB2YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeUlkV2l0aFRoaXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFy
cmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxs
SW50MzIgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9u
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIgaW5k
ZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIgaW5kZXgsIGRvdWJsZSB2
YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZh
bEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09i
amVjdCosIENDYWxsSW50MzIgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRz
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIgaW5k
ZXgsIGRvdWJsZSB2YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIgaW5kZXgsIGRvdWJsZSB2YWx1ZSkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeUlkV2l0aFRoaXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0
cikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFdpdGhUaGlz
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeVZhbFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVE
YXRhUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3QqLCBKU1N0cmluZyosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmlu
Z0lkZW50LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFVuaXF1ZWRTdHJpbmdJ
bXBsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCosIFN5bWJvbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHksIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEpTT2JqZWN0
KiwgSlNPYmplY3QqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCos
IEpTT2JqZWN0KiwgSlNTdHJpbmcqLCBKU09iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5
U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgVW5pcXVlZFN0
cmluZ0ltcGwqLCBKU09iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3ltYm9sLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN5bWJvbCosIEpTT2JqZWN0KiwgSlNPYmpl
Y3QqLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmlu
ZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBKU09iamVjdCosIEpTU3RyaW5nKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50
MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3Bl
cnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgVW5pcXVl
ZFN0cmluZ0ltcGwqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTeW1ib2wsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3ltYm9sKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxs
SW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNz
b3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSwgSlNPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBKU1N0cmluZyosIEpTT2JqZWN0KiwgSlNPYmpl
Y3QqLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRl
ZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqLCBVbmlxdWVkU3RyaW5nSW1wbCosIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2Fs
bEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vz
c29yUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3lt
Ym9sKiwgSlNPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0FycmF5KikpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hNdWx0aXBsZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQXJyYXkqLCB2b2lkKiBidWZmZXIsIGludDMyX3Qg
ZWxlbWVudENvdW50KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5
UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJheSos
IHZvaWQqIGJ1ZmZlciwgQ0NhbGxJbnQzMiBlbGVtZW50Q291bnQpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgZG91YmxlIHZhbHVlLCBKU0FycmF5KikpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hEb3VibGVNdWx0aXBsZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIEpTQXJyYXkqLCB2b2lkKiBidWZmZXIsIGludDMyX3QgZWxl
bWVudENvdW50KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVz
aERvdWJsZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJh
eSosIHZvaWQqIGJ1ZmZlciwgQ0NhbGxJbnQzMiBlbGVtZW50Q291bnQpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQb3AsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBKU0FycmF5KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BcnJheVBvcEFuZFJlY292ZXJMZW5ndGgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU0FycmF5KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdF
eHBFeGVjU3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2Jq
ZWN0KiwgSlNTdHJpbmcqKSk7CkBAIC0xODksMTAgKzE5MCwxMCBAQCBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreSwgRW5jb2RlZEpT
VmFsdWUsCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cE1hdGNoRmFz
dEdsb2JhbFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFJlZ0V4cCos
IEpTU3RyaW5nKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBN
YXRjaEZhc3RTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBP
YmplY3QqLCBKU1N0cmluZyopKTsKIC8vIFRoZXNlIGNvbXBhcmlzb25zIHJldHVybiBhIGJvb2xl
YW4gd2l0aGluIGEgc2l6ZV90IHN1Y2ggdGhhdCB0aGUgdmFsdWUgaXMgemVybyBleHRlbmRlZCB0
byBmaWxsIHRoZSByZWdpc3Rlci4KLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UmVnRXhwVGVzdFN0cmluZywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3Qq
LCBKU1N0cmluZyopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhw
VGVzdCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0R2Vu
ZXJpYywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlj
dEVxQ2VsbCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBv
cDIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdFN0cmlu
ZywgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0
KiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4
cFRlc3QsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblJlZ0V4cFRlc3RHZW5lcmljLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbCwgQ0NhbGxTaXplOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7CiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN1YkhlYXBCaWdJbnQsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKTsKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTXVsSGVhcEJpZ0ludCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Nb2RIZWFwQmlnSW50LCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7CkBAIC0y
MDUsNjAgKzIwNiw2MCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdExT
aGlmdEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYQogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25BZGRIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkJpdFJTaGlmdEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0WG9ySGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TYW1lVmFsdWUsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNhbWVWYWx1ZSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJlY3QsIEpTQ2Vs
bCosIChWTSosIFN0cnVjdHVyZSosIEpTU2NvcGUqLCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1Zh
bHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFy
Z3VtZW50cywgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKiwgdWludDMyX3QgbGVuZ3RoLCB1aW50
MzJfdCBtaW5DYXBhY2l0eSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
cmVhdGVEaXJlY3RBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qLCBJbmxpbmVDYWxs
RnJhbWUqLCBKU0Z1bmN0aW9uKiwgdWludDMyX3QgYXJndW1lbnRDb3VudCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVTY29wZWRBcmd1bWVudHMsIEpTQ2VsbCos
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1
aW50MzJfdCBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxlZSwgSlNMZXhpY2FsRW52aXJvbm1lbnQq
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3Vt
ZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSosIElubGluZUNhbGxGcmFtZSosIEpTRnVuY3Rp
b24qLCB1aW50MzJfdCBhcmd1bWVudENvdW50KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwg
SlNGdW5jdGlvbiogY2FsbGVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgUmVn
aXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVuc2lnbmVkIG51bWJlck9mQXJndW1l
bnRzVG9Ta2lwLCB1bnNpZ25lZCBhcnJheVNpemUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1
cmUqLCBDQ2FsbFVJbnQzMiBsZW5ndGgsIENDYWxsVUludDMyIG1pbkNhcGFjaXR5KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmlu
Z0V4aXQsIEpTQ2VsbCosIChWTSosIElubGluZUNhbGxGcmFtZSosIEpTRnVuY3Rpb24qLCBDQ2Fs
bFVJbnQzMiBhcmd1bWVudENvdW50KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIENDYWxsVUludDMyIGxlbmd0aCwgSlNG
dW5jdGlvbiogY2FsbGVlLCBKU0xleGljYWxFbnZpcm9ubWVudCopKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlND
ZWxsKiwgKFZNKiwgSW5saW5lQ2FsbEZyYW1lKiwgSlNGdW5jdGlvbiosIENDYWxsVUludDMyIGFy
Z3VtZW50Q291bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRl
Q2xvbmVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBS
ZWdpc3RlciogYXJndW1lbnRTdGFydCwgQ0NhbGxVSW50MzIgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBj
YWxsZWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1l
bnRzQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdpc3RlciogYXJndW1l
bnRTdGFydCwgQ0NhbGxVSW50MzIgYXJndW1lbnRDb3VudCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBS
ZWdpc3RlciogYXJndW1lbnRTdGFydCwgQ0NhbGxVSW50MzIgbnVtYmVyT2ZBcmd1bWVudHNUb1Nr
aXAsIENDYWxsVUludDMyIGFycmF5U2l6ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdBcnJheUJ1ZmZlciwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKiwgSlNDZWxs
KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRBZGQsIEpTQ2VsbCos
IChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcFNldCwgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBpbnQz
Ml90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldlYWtTZXRBZGQsIHZv
aWQsIChWTSosIEpTQ2VsbCosIEpTQ2VsbCosIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2Vha01hcFNldCwgdm9pZCwgKFZNKiwgSlNDZWxsKiwgSlNDZWxs
KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRk1vZE9uSW50cywgZG91YmxlLCAoaW50MzJfdCwgaW50MzJfdCkpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc09iamVjdCwgc2l6ZV90LCAoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblR5cGVPZklzRnVuY3Rpb24sIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RJc0NhbGxhYmxlLCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSXNDb25zdHJ1Y3Rvciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRB
ZGQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBD
Q2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcFNldCwg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldlYWtTZXRBZGQsIHZvaWQsIChWTSosIEpTQ2VsbCosIEpTQ2VsbCosIENDYWxsSW50MzIp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha01hcFNldCwgdm9pZCwg
KFZNKiwgSlNDZWxsKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRk1vZE9uSW50cywgZG91YmxlLCAoQ0Nh
bGxJbnQzMiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25UeXBlT2ZJc09iamVjdCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJ
c0Z1bmN0aW9uLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdElzQ2FsbGFi
bGUsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXNDb25zdHJ1Y3RvciwgQ0NhbGxT
aXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0LCBKU0NlbGwqLCAo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eSwg
Y2hhciosIChWTSopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2Nh
dGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qLCBzaXplX3QgbmV3U2l6ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5
U3RvcmFnZSwgY2hhciosIChWTSosIENDYWxsU2l6ZSBuZXdTaXplKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZVdpdGhJ
bml0aWFsQ2FwYWNpdHksIGNoYXIqLCAoVk0qLCBKU09iamVjdCopKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlLCBjaGFy
KiwgKFZNKiwgSlNPYmplY3QqLCBzaXplX3QgbmV3U2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAo
Vk0qLCBKU09iamVjdCosIENDYWxsU2l6ZSBuZXdTaXplKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkVuc3VyZUludDMyLCBjaGFyKiwgKFZNKiwgSlNDZWxsKikpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnN1cmVEb3VibGUsIGNoYXIqLCAoVk0q
LCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVuc3VyZUNv
bnRpZ3VvdXMsIGNoYXIqLCAoVk0qLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkVuc3VyZUFycmF5U3RvcmFnZSwgY2hhciosIChWTSosIEpTQ2VsbCopKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVJvcGUsIFN0cmluZ0lt
cGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBKU1N0cmluZyosIChWTSosIGlu
dDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2luZ2xlQ2hhcmFj
dGVyU3RyaW5nLCBKU1N0cmluZyosIChWTSosIENDYWxsSW50MzIpKTsKIAotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTdWJzdHIsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCosIGludDMyX3QsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU3RyaW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCosIGludDMyX3QsIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU3RyaW5nU3Vic3RyLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBD
Q2FsbEludDMyLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblN0cmluZ1NsaWNlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBDQ2Fs
bEludDMyLCBDQ2FsbEludDMyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blN0cmluZ1ZhbHVlT2YsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dlckNhc2UsIEpT
U3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCB1aW50MzJfdCkpOwotCi1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqLCBpbnQzMl90LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBpbnQ2
NF90LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJs
ZVRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlLCBpbnQzMl90KSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmdXaXRoVmFsaWRS
YWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIGludDMyX3QsIGludDMyX3QpKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4
LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgaW50NjRfdCwgaW50MzJfdCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmluZyosIChKU0dsb2JhbE9i
amVjdCosIEpTU3RyaW5nKiwgQ0NhbGxVSW50MzIpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ0Nh
bGxJbnQzMiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25JbnQ1MlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ0NhbGxJbnQ2NCwgQ0Nh
bGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0
cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCosIGRvdWJsZSwgQ0NhbGxJbnQzMikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFk
aXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBDQ2FsbEludDMyLCBDQ2FsbEludDMyKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRS
YWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIENDYWxsSW50NjQsIENDYWxsSW50MzIpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmdXaXRoVmFs
aWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIGRvdWJsZSwgQ0NhbGxJbnQzMikpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25GdW5jdGlvblRvU3RyaW5nLCBKU1N0
cmluZyosIChKU0dsb2JhbE9iamVjdCosIEpTRnVuY3Rpb24qKSk7CiAKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTm9ybWFsaXplTWFwS2V5SGVhcEJpZ0ludCwgRW5jb2RlZEpT
VmFsdWUsIChWTSosIEpTQmlnSW50KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25NYXBIYXNoLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIGlucHV0KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhh
c2hIZWFwQmlnSW50LCBVQ1BVU3RyaWN0SW50MzIsIChWTSosIEpTQmlnSW50KikpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU01hcEZpbmRCdWNrZXQsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0LCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU1NldEZpbmRCdWNrZXQsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbElu
dDMyKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnROb1Jh
ZGl4R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3RyaW5n
Tm9SYWRpeCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKikpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0cmluZywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgaW50MzJfdCkpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0cmluZywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOwogCiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1N5bWJvbCwgU3ltYm9sKiwgKFZNKikp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdTeW1ib2xXaXRoU3RyaW5n
RGVzY3JpcHRpb24sIFN5bWJvbCosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKikpOwpAQCAt
MjcyLDQ4ICsyNzMsNDggQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYWtl
Um9wZTIsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHIKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTWFrZVJvcGUzLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVj
dCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU3RyQ2F0MiwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU3RyQ2F0MywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZpbmRTd2l0Y2hJbW1UYXJnZXRGb3JEb3VibGUsIGNoYXIq
LCAoVk0qLCBFbmNvZGVkSlNWYWx1ZSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0Kiwgc2l6ZV90IHRhYmxlSW5kZXgsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVt
cFRhYmxlKiwgSlNTdHJpbmcqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVTdHJpbmdJbXBsTGVzcywgdWludHB0cl90LCAoU3RyaW5nSW1wbCosIFN0cmluZ0lt
cGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJ
bXBsTGVzc0VxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyLCB1
aW50cHRyX3QsIChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyRXEsIHVpbnRwdHJfdCwg
KFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlU3RyaW5nTGVzcywgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqLCBK
U1N0cmluZyosIEpTU3RyaW5nKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlU3RyaW5nTGVzc0VxLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCosIEpTU3Ry
aW5nKiwgSlNTdHJpbmcqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bXBhcmVTdHJpbmdHcmVhdGVyLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5n
KiwgSlNTdHJpbmcqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdHcmVhdGVyRXEsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcq
LCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3
aXRjaEltbVRhcmdldEZvckRvdWJsZSwgY2hhciosIChWTSosIEVuY29kZWRKU1ZhbHVlLCBDQ2Fs
bFNpemUgdGFibGVJbmRleCwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Td2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBDQ2FsbFNp
emUgdGFibGVJbmRleCwgY29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqLCBKU1N0cmluZyop
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxM
ZXNzLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwq
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBs
TGVzc0VxLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAoU3RyaW5nSW1wbCosIFN0cmluZ0lt
cGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJ
bXBsR3JlYXRlciwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKFN0cmluZ0ltcGwqLCBTdHJp
bmdJbXBsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aW5nSW1wbEdyZWF0ZXJFcSwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKFN0cmluZ0ltcGwq
LCBTdHJpbmdJbXBsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21w
YXJlU3RyaW5nTGVzcywgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcSwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIsIENDYWxsVUludHB0cjo6SW50
ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyRXEsIEND
YWxsVUludHB0cjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNT
dHJpbmcqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5vdGlmeVdyaXRl
LCB2b2lkLCAoVk0qLCBXYXRjaHBvaW50U2V0KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dGb3JWYXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVPZlZhcmFy
Z3MsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJn
dW1lbnRzLCB1aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Mb2FkVmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgaW50
MzJfdCBmaXJzdEVsZW1lbnREZXN0LCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIHVpbnQzMl90
IG9mZnNldCwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBtYW5kYXRvcnlNaW5pbXVtKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVPZlZhcmFyZ3MsIFVDUFVTdHJp
Y3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBDQ2Fs
bFVJbnQzMiBmaXJzdFZhckFyZ09mZnNldCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Mb2FkVmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgQ0NhbGxJbnQzMiBm
aXJzdEVsZW1lbnREZXN0LCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIENDYWxsVUludDMyIG9m
ZnNldCwgQ0NhbGxVSW50MzIgbGVuZ3RoLCBDQ2FsbFVJbnQzMiBtYW5kYXRvcnlNaW5pbXVtKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93REZHLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0
cmluZyosIHVpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRo
cm93U3RhdGljRXJyb3IsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgQ0NhbGxV
SW50MzIpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNPd25Qcm9w
ZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVl
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc093blByb3BlcnR5LCBD
Q2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEVuY29k
ZWRKU1ZhbHVlKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJ
bmRleE9mU3RyaW5nLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZs
eSosIEpTU3RyaW5nKiwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BcnJheUluZGV4T2ZWYWx1ZURvdWJsZSwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxP
YmplY3QqLCBCdXR0ZXJmbHkqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMyT3JDb250aWd1
b3VzLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEVuY29k
ZWRKU1ZhbHVlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFycmF5SW5kZXhPZlN0cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBC
dXR0ZXJmbHkqLCBKU1N0cmluZyosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwg
KEpTR2xvYmFsT2JqZWN0KiwgQnV0dGVyZmx5KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVJ
bnQzMk9yQ29udGlndW91cywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0
ZXJmbHkqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOwogCiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNwcmVhZEZhc3RBcnJheSwgSlNDZWxsKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TcHJl
YWRHZW5lcmljLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVhZFNsb3csIEpTQ2Vs
bCosIChKU0dsb2JhbE9iamVjdCosIHZvaWQqLCB1aW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFibGVCdXR0ZXJmbHksIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIGxlbmd0aCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTcHJlYWRTbG93LCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqLCB2b2lkKiwgQ0NhbGxVSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlSW1tdXRhYmxlQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmpl
Y3QqLCBDQ2FsbFVJbnQzMiBsZW5ndGgpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25SZXNvbHZlU2NvcGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTU2NvcGUq
LCBVbmlxdWVkU3RyaW5nSW1wbCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUmVzb2x2ZVNjb3BlRm9ySG9pc3RpbmdGdW5jRGVjbEluRXZhbCwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIEpTU2NvcGUqLCBVbmlxdWVkU3RyaW5nSW1wbCopKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0RHluYW1pY1ZhciwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwq
LCB1bnNpZ25lZCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREeW5h
bWljVmFyU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogc2NvcGUsIEVu
Y29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCosIHVuc2lnbmVkKSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJOb25TdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRT
dHJpbmdJbXBsKiwgdW5zaWduZWQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0RHluYW1pY1ZhciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTT2Jq
ZWN0KiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCBDQ2FsbFVJbnQzMikpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3Ry
aW5nSW1wbCosIENDYWxsVUludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dER5bmFtaWNWYXJOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2Jq
ZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgQ0NhbGxVSW50
MzIpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0Qm94ZWRE
b3VibGVUb0ludDUyLCBpbnQ2NF90LCAoRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydERvdWJsZVRvSW50NTIsIGludDY0X3QsIChkb3Vi
bGUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydEJveGVkRG91
YmxlVG9JbnQ1MiwgQ0NhbGxJbnQ2NDo6SW50ZWdlclR5cGUsIChFbmNvZGVkSlNWYWx1ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0RG91YmxlVG9JbnQ1Miwg
Q0NhbGxJbnQ2NDo6SW50ZWdlclR5cGUsIChkb3VibGUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TnVtYmVySXNJbnRlZ2VyLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld1Jhd09iamVjdCwgY2hhciosIChWTSosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZs
eSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmF3T2JqZWN0LCBj
aGFyKiwgKFZNKiwgU3RydWN0dXJlKiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5KikpOwogSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5LCBKU0Nl
bGwqLCAoVk0qLCBTdHJ1Y3R1cmUqLCBCdXR0ZXJmbHkqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFkZXJB
bmRWZWN0b3JMZW5ndGgsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIHVuc2lnbmVkIGxlbmd0
aCwgQnV0dGVyZmx5KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdP
YmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVjdG9yTGVuZ3RoLCBKU0Nl
bGwqLCAoVk0qLCBTdHJ1Y3R1cmUqLCBDQ2FsbFVJbnQzMiBsZW5ndGgsIEJ1dHRlcmZseSopKTsK
IAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25MaW5rRGlyZWN0Q2FsbCwgdm9p
ZCwgKE9wdGltaXppbmdDYWxsTGlua0luZm8qLCBKU0Z1bmN0aW9uKikpOwogCkBAIC0zNDQsOCAr
MzQ1LDggQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SYW5kb20sIGRvdWJs
ZSwgKEpTR2xvYmFsT2JqZWN0KikpOwogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChWTSopKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9v
cCwgdm9pZCwgKFZNKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlck9TUkVudHJ5Tm93LCBjaGFyKiwgKFZNKiwg
dW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiwgQ0NhbGxVSW50MzIg
Ynl0ZWNvZGVJbmRleEJpdHMpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VHJpZ2dlck9TUkVudHJ5Tm93LCBjaGFyKiwgKFZNKiwgQ0NhbGxVSW50MzIgYnl0ZWNvZGVJbmRl
eEJpdHMpKTsKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKIAogaW5saW5lIGF1dG8gb3BlcmF0
aW9uTmV3VHlwZWRBcnJheVdpdGhTaXplRm9yVHlwZShUeXBlZEFycmF5VHlwZSB0eXBlKSAtPiBk
ZWNsdHlwZSgmb3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aFNpemUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggOWU1OTliZmZlYzhiOTAwZmQ3
MjM4ZWRjNjM5Y2ViNTY0OTQzYTljOC4uOGI4YjViZWNjZjVlNGMxMGMxZGRmOTM3ZWZmYmNjYjk3
ZjRlOTg4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcApAQCAtMTIyLDEyICsxMjIsMTIgQEAgbmFtZXNwYWNlIHsKIHN0ZDo6YXRvbWljPGludD4g
Y29tcGlsZUNvdW50ZXI7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTl9XSVRIX0FUVFJJQlVURVMoZnRsVW5yZWFjaGFibGUsIE5PX1JFVFVSTl9EVUVfVE9f
Q1JBU0gsIHZvaWQsIChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQmxvY2tJbmRleCBibG9ja0luZGV4
LCB1bnNpZ25lZCBub2RlSW5kZXgpKTsKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FU
VFJJQlVURVMoZnRsVW5yZWFjaGFibGUsIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChD
b2RlQmxvY2sqIGNvZGVCbG9jaywgQmxvY2tJbmRleCBibG9ja0luZGV4LCB1bnNpZ25lZCBub2Rl
SW5kZXgpKQorSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMoZnRsVW5y
ZWFjaGFibGUsIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQmxvY2tJbmRleCBibG9ja0luZGV4LCBDQ2FsbFVJbnQzMiBub2RlSW5kZXgpKTsKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMoZnRsVW5yZWFjaGFibGUsIE5P
X1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQmxvY2tJ
bmRleCBibG9ja0luZGV4LCBDQ2FsbFVJbnQzMiBub2RlSW5kZXgpKQogewogICAgIGRhdGFMb2co
IkNyYXNoaW5nIGluIHRob3VnaHQtdG8tYmUtdW5yZWFjaGFibGUgRlRMLWdlbmVyYXRlZCBjb2Rl
IGZvciAiLCBwb2ludGVyRHVtcChjb2RlQmxvY2spLCAiIGF0IGJhc2ljIGJsb2NrICMiLCBibG9j
a0luZGV4KTsKICAgICBpZiAobm9kZUluZGV4ICE9IFVJTlRfTUFYKQotICAgICAgICBkYXRhTG9n
KCIsIG5vZGUgQCIsIG5vZGVJbmRleCk7CisgICAgICAgIGRhdGFMb2coIiwgbm9kZSBAIiwgdWlu
dDMyX3Qobm9kZUluZGV4KSk7CiAgICAgZGF0YUxvZygiLlxuIik7CiAgICAgQ1JBU0goKTsKIH0K
QEAgLTQ3MTUsMTQgKzQ3MTUsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZv
R1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZTbG93T3BlcmF0aW9uKCkpLCBJbnZhbGlk
R1BSUmVnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCkt
Pmdsb2JhbE9iamVjdEZvcihub2RlU2VtYW50aWNPcmlnaW4pLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHViSW5mb0dQUiwgcGFyYW1zWzFdLmdwcigpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXJhbXNbMF0uZ3ByKCksIGlkZW50aWZpZXIucmF3Qml0cygp
KS5jYWxsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIo
KSwgQ0NhbGxVSW50cHRyKGlkZW50aWZpZXIucmF3Qml0cygpKSkuY2FsbCgpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG93
UGF0aENhbGwgPSBjYWxsT3BlcmF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGVTZW1hbnRp
Y09yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQo
KSwgZ2VuZXJhdG9yLT5zbG93UGF0aEZ1bmN0aW9uKCksIEludmFsaWRHUFJSZWcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5jb2RlQmxvY2soKS0+Z2xvYmFsT2JqZWN0Rm9y
KG5vZGVTZW1hbnRpY09yaWdpbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihnZW5lcmF0b3ItPnN0dWJJbmZvKCkpLCBwYXJhbXNb
MV0uZ3ByKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIo
KSwgaWRlbnRpZmllci5yYXdCaXRzKCkpLmNhbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyYW1zWzBdLmdwcigpLCBDQ2FsbFVJbnRwdHIoaWRlbnRpZmllci5yYXdCaXRz
KCkpKS5jYWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgICAgICBqaXQuanVtcCgpLmxpbmtUbyhkb25lLCAmaml0KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCmluZGV4IGZlNzlmNzhkMzc1
MGQ2MzRkZTIzMjNjYWRkYjA2ZDQxN2U4ODNiZTcuLmNmMjMyYzIyN2E4YWExYmMxNWViMzg2Yjky
NGMyZDg4YTc0ZDg5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T1NSRXhpdENvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9T
UkV4aXRDb21waWxlci5jcHAKQEAgLTQ5MywxMCArNDkzLDEwIEBAIHN0YXRpYyB2b2lkIGNvbXBp
bGVTdHViKFZNJiB2bSwgdW5zaWduZWQgZXhpdElELCBKSVRDb2RlKiBqaXRDb2RlLCBPU1JFeGl0
JiBleGl0CiAgICAgICAgICk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21waWxlRlRMT1NSRXhpdCwgdm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWdu
ZWQgZXhpdElEKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRM
T1NSRXhpdCwgdm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ0NhbGxVSW50MzIgZXhpdElE
KSkKIHsKICAgICBpZiAoc2hvdWxkRHVtcERpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9z
ZU9TUigpIHx8IE9wdGlvbnM6OnZlcmJvc2VGVExPU1JFeGl0KCkpCi0gICAgICAgIGRhdGFMb2co
IkNvbXBpbGluZyBPU1IgZXhpdCB3aXRoIGV4aXRJRCA9ICIsIGV4aXRJRCwgIlxuIik7CisgICAg
ICAgIGRhdGFMb2coIkNvbXBpbGluZyBPU1IgZXhpdCB3aXRoIGV4aXRJRCA9ICIsIHVpbnQzMl90
KGV4aXRJRCksICJcbiIpOwogCiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0o
KTsKICAgICAvLyBEb24ndCBuZWVkIGFuIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBoZXJlIGJl
Y2F1c2Ugd2UgRGVmZXJHQ0ZvckFXaGlsZSBiZWxvdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5oCmluZGV4IDg0NDViMDE3MDJlZjg3ODc1ZTE5YWNk
OTg4ZTRlYzU5ZjNmN2EwZTAuLjY5YmI2NzYzODZhZjA0YWNiYjBiMDBiYzlkYjFjNzlkMjg3Yzli
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBp
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIu
aApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIC8v
IFRha2VzIHRoZSBjYWxsIGZyYW1lIGFuZCB0aGUgaW5kZXggb2YgdGhlIGV4aXQsIGFuZCByZXR1
cm5zIHRoZSBhZGRyZXNzIHRvCiAvLyBqdW1wIHRvLgotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db21waWxlRlRMT1NSRXhpdCwgdm9pZCosIChDYWxsRnJhbWUqLCB1bnNpZ25l
ZCBleGl0SUQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZU
TE9TUkV4aXQsIHZvaWQqLCAoQ2FsbEZyYW1lKiwgQ0NhbGxVSW50MzIgZXhpdElEKSk7CiAKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T3BlcmF0aW9ucy5jcHAKaW5kZXggMzk2NmI0ZGFmZTg2MGY5YTkyNmU4OTkzNWQxYjllMWNmOTcw
NzVhNC4uNWMxNTI4ODFlYjgxNWNiMDY0MmZmMGY4ZmM4OGZmY2I3NzlmOGEyNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCkBAIC02OTksNyArNjk5LDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hdGVyaWFsaXplT2JqZWN0SW5P
U1IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamUKICAgICB9CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdBbmRHZXRJbmRleCwgdW5zaWduZWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVbmxpbmtlZFN0cmluZ0p1bXBUYWJsZSog
dW5saW5rZWRUYWJsZSwgSlNTdHJpbmcqIHN0cmluZykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nQW5kR2V0SW5kZXgsIENDYWxsVUludDMyOjpJbnRlZ2Vy
VHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVubGlua2VkU3RyaW5n
SnVtcFRhYmxlKiB1bmxpbmtlZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNzEzLDcgKzcxMyw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdBbmRHZXRJbmRleCwgdW5zaWduZWQsIChKU0ds
b2JhbE9iCiAgICAgcmV0dXJuIHVubGlua2VkVGFibGUtPmluZGV4Rm9yVmFsdWUoc3RySW1wbCwg
c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVjdEFzVHlwZW9mVHlwZSwgaW50MzJfdCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5cGUsIENDYWxs
SW50MzI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBvYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03MjgsNyArNzI4
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVjdEFzVHlw
ZW9mVHlwZSwgaW50MzJfdCwgKEpTR2xvYmFsT2IKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50
MzJfdD4oVHlwZW9mVHlwZTo6T2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHVuc2lnbmVkIGluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21waWxlRlRMTGF6eVNsb3dQYXRoLCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBD
Q2FsbFVJbnQzMiBpbmRleCkpCiB7CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVk
Vk0oKTsKICAgICAvLyBEb24ndCBuZWVkIGFuIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBoZXJl
IGJlY2F1c2Ugd2UgRGVmZXJHQ0ZvckFXaGlsZS4KQEAgLTc0NSwxMCArNzQ1LDEwIEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRMTGF6eVNsb3dQYXRoLCB2b2lk
KiwgKENhbGxGcmFtZSogY2FsCiAgICAgcmV0dXJuIGxhenlTbG93UGF0aC5zdHViKCkuY29kZSgp
LmV4ZWN1dGFibGVBZGRyZXNzKCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRI
X0FUVFJJQlVURVMob3BlcmF0aW9uUmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVycm9yQW5k
Q3Jhc2gsIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChpbnRwdHJfdCBjb2RlQmxvY2tB
c0ludFB0ciwgaW50MzJfdCBub2RlSW5kZXgsIGludDMyX3QgY2hpbGQxSW5kZXgsIGludDMyX3Qg
Y2hpbGQySW5kZXgsIGludDMyX3QgY2hlY2tlZEluZGV4LCBpbnQzMl90IGJvdW5kcykpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT05fV0lUSF9BVFRSSUJVVEVTKG9wZXJhdGlvblJlcG9ydEJvdW5k
c0NoZWNrRWxpbWluYXRpb25FcnJvckFuZENyYXNoLCBOT19SRVRVUk5fRFVFX1RPX0NSQVNILCB2
b2lkLCAoQ0NhbGxJbnRwdHIgY29kZUJsb2NrQXNJbnRQdHIsIENDYWxsSW50MzIgbm9kZUluZGV4
LCBDQ2FsbEludDMyIGNoaWxkMUluZGV4LCBDQ2FsbEludDMyIGNoaWxkMkluZGV4LCBDQ2FsbElu
dDMyIGNoZWNrZWRJbmRleCwgQ0NhbGxJbnQzMiBib3VuZHMpKQogewogICAgIENvZGVCbG9jayog
Y29kZUJsb2NrID0gYml0d2lzZV9jYXN0PENvZGVCbG9jayo+KGNvZGVCbG9ja0FzSW50UHRyKTsK
LSAgICBkYXRhTG9nTG4oIkJvdW5kcyBDaGVjayBFaW1pbmF0aW9uIGVycm9yIGZvdW5kIEAgREAi
LCBub2RlSW5kZXgsICI6IEFzc2VydEluQm91bmRzKGluZGV4IERAIiwgY2hpbGQxSW5kZXgsICI6
ICIsIGNoZWNrZWRJbmRleCwgIiwgYm91bmRzIERAIiwgY2hpbGQySW5kZXgsICIgIiwgYm91bmRz
LCAiKSBpbiAiLCBjb2RlQmxvY2spOworICAgIGRhdGFMb2dMbigiQm91bmRzIENoZWNrIEVpbWlu
YXRpb24gZXJyb3IgZm91bmQgQCBEQCIsIGludDMyX3Qobm9kZUluZGV4KSwgIjogQXNzZXJ0SW5C
b3VuZHMoaW5kZXggREAiLCBpbnQzMl90KGNoaWxkMUluZGV4KSwgIjogIiwgaW50MzJfdChjaGVj
a2VkSW5kZXgpLCAiLCBib3VuZHMgREAiLCBpbnQzMl90KGNoaWxkMkluZGV4KSwgIiAiLCBpbnQz
Ml90KGJvdW5kcyksICIpIGluICIsIGNvZGVCbG9jayk7CiAgICAgQ1JBU0goKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuaAppbmRleCA1YmI4ZDMwYjdiMTAx
ZDQwNjJiNmY2NmU5MmMwZTNhMGY4ZDNhMWU0Li5jMDA4M2RiZjE4NWJiZTQyNjQyNWIwN2U0Y2Rm
MWQxN2E2MmY4NzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9w
ZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMu
aApAQCAtNDIsMTIgKzQyLDEyIEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWF0ZXJpYWxpemVPYmplY3RJbk9TUiwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqCiAKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wdWxhdGVPYmplY3RJbk9TUiwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgRXhpdFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24qLCBFbmNvZGVkSlNW
YWx1ZSosIEVuY29kZWRKU1ZhbHVlKikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiwgdW5zaWdu
ZWQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTExhenlT
bG93UGF0aCwgdm9pZCosIChDYWxsRnJhbWUqLCBDQ2FsbFVJbnQzMikpOwogCi1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdldEluZGV4LCB1bnNpZ25l
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqLCBKU1N0
cmluZyopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0
QXNUeXBlb2ZUeXBlLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdldEluZGV4LCBD
Q2FsbFVJbnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIGNvbnN0IFVubGlua2Vk
U3RyaW5nSnVtcFRhYmxlKiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblR5cGVPZk9iamVjdEFzVHlwZW9mVHlwZSwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5
cGUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25SZXBvcnRCb3VuZHNDaGVja0VsaW1pbmF0aW9uRXJyb3JBbmRDcmFzaCwg
dm9pZCwgKGludHB0cl90IGNvZGVCbG9ja0FzSW50UHRyLCBpbnQzMl90LCBpbnQzMl90LCBpbnQz
Ml90LCBpbnQzMl90LCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblJlcG9ydEJvdW5kc0NoZWNrRWxpbWluYXRpb25FcnJvckFuZENyYXNoLCB2b2lkLCAoQ0Nh
bGxJbnRwdHIgY29kZUJsb2NrQXNJbnRQdHIsIENDYWxsSW50MzIsIENDYWxsSW50MzIsIENDYWxs
SW50MzIsIENDYWxsSW50MzIsIENDYWxsSW50MzIpKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkRGRwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1
ZGNjODk5ZTc1NjMzOWE4MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li44NTVlZDQwYjY1OTFmNDM3NGQx
MmRjMWMzOTZlMTcwNzMxNDIxZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxI
ZWxwZXJzLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAi
QXNzZW1ibHlIZWxwZXJzLmgiCisjaW5jbHVkZSAiQ0NhbGxUeXBlcy5oIgogI2luY2x1ZGUgIkZQ
UkluZm8uaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQu
aCIKQEAgLTYwOCwyMyArNjA5LDIzIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQgbnVt
R1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNlcywg
dW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2lnbmVk
IG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZSwgdHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4u
LiBBcmdzPgotICAgIEFMV0FZU19JTkxJTkUgc3RkOjplbmFibGVfaWZfdDwKLSAgICAgICAgc3Rk
Ojppc19zYW1lPENVUlJFTlRfQVJHVU1FTlRfVFlQRSwgQXJnPjo6dmFsdWUKLSAgICAgICAgJiYg
c3RkOjppc19pbnRlZ3JhbDxDVVJSRU5UX0FSR1VNRU5UX1RZUEU+Ojp2YWx1ZQotICAgICAgICAm
JiAoc2l6ZW9mKENVUlJFTlRfQVJHVU1FTlRfVFlQRSkgPD0gNCk+CisgICAgQUxXQVlTX0lOTElO
RSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfaW50ZWdyYWxfdjxBcmc+ICYmIHN0ZDo6aXNfc2Ft
ZV92PENVUlJFTlRfQVJHVU1FTlRfVFlQRSwgQ0NhbGxJbnRlZ2VyPEFyZz4+PgogICAgIHNldHVw
QXJndW1lbnRzSW1wbChBcmdDb2xsZWN0aW9uPG51bUdQUkFyZ3MsIG51bUdQUlNvdXJjZXMsIG51
bUZQUkFyZ3MsIG51bUZQUlNvdXJjZXMsIG51bUNyb3NzU291cmNlcywgZXh0cmFHUFJBcmdzLCBu
b25BcmdHUFJzLCBleHRyYVBva2U+IGFyZ1NvdXJjZVJlZ3MsIEFyZyBhcmcsIEFyZ3MuLi4gYXJn
cykKICAgICB7Ci0gICAgICAgIHNldHVwQXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlPihhcmdT
b3VyY2VSZWdzLCBUcnVzdGVkSW1tMzIoYXJnKSwgYXJncy4uLik7CisgICAgICAgIGlmIGNvbnN0
ZXhwciAoc2l6ZW9mKEFyZykgPD0gNCkKKyAgICAgICAgICAgIHNldHVwQXJndW1lbnRzSW1wbDxP
cGVyYXRpb25UeXBlPihhcmdTb3VyY2VSZWdzLCBUcnVzdGVkSW1tMzIoYXJnKSwgYXJncy4uLik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNldHVwQXJndW1lbnRzSW1wbDxPcGVyYXRpb25U
eXBlPihhcmdTb3VyY2VSZWdzLCBUcnVzdGVkSW1tNjQoYXJnKSwgYXJncy4uLik7CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJn
cywgdW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQg
bnVtRlBSU291cmNlcywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQ
UkFyZ3MsIHVuc2lnbmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZSwgdHlwZW5hbWUg
QXJnLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgIEFMV0FZU19JTkxJTkUgc3RkOjplbmFibGVfaWZf
dDwKLSAgICAgICAgc3RkOjppc19zYW1lPENVUlJFTlRfQVJHVU1FTlRfVFlQRSwgQXJnPjo6dmFs
dWUKLSAgICAgICAgJiYgc3RkOjppc19pbnRlZ3JhbDxDVVJSRU5UX0FSR1VNRU5UX1RZUEU+Ojp2
YWx1ZQotICAgICAgICAmJiAoc2l6ZW9mKENVUlJFTlRfQVJHVU1FTlRfVFlQRSkgPT0gOCk+Cisg
ICAgQUxXQVlTX0lOTElORSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2FtZV92PEFyZywgQ0Nh
bGxJbnRlZ2VyPHR5cGVuYW1lIEFyZzo6SW50ZWdlclR5cGU+PiAmJiBzdGQ6OmlzX3NhbWVfdjxD
VVJSRU5UX0FSR1VNRU5UX1RZUEUsIEFyZz4+CiAgICAgc2V0dXBBcmd1bWVudHNJbXBsKEFyZ0Nv
bGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBSU291
cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIG5vbkFyZ0dQUnMsIGV4dHJhUG9r
ZT4gYXJnU291cmNlUmVncywgQXJnIGFyZywgQXJncy4uLiBhcmdzKQogICAgIHsKLSAgICAgICAg
c2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIFRydXN0ZWRJ
bW02NChhcmcpLCBhcmdzLi4uKTsKKyAgICAgICAgaWYgY29uc3RleHByIChzaXplb2YodHlwZW5h
bWUgQXJnOjpJbnRlZ2VyVHlwZSkgPD0gNCkKKyAgICAgICAgICAgIHNldHVwQXJndW1lbnRzSW1w
bDxPcGVyYXRpb25UeXBlPihhcmdTb3VyY2VSZWdzLCBUcnVzdGVkSW1tMzIodHlwZW5hbWUgQXJn
OjpJbnRlZ2VyVHlwZShhcmcpKSwgYXJncy4uLik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHNldHVwQXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlPihhcmdTb3VyY2VSZWdzLCBUcnVzdGVk
SW1tNjQodHlwZW5hbWUgQXJnOjpJbnRlZ2VyVHlwZShhcmcpKSwgYXJncy4uLik7CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJn
cywgdW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQg
bnVtRlBSU291cmNlcywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQ
UkFyZ3MsIHVuc2lnbmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZSwgdHlwZW5hbWUg
QXJnLCB0eXBlbmFtZS4uLiBBcmdzPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbFR5cGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsVHlwZXMu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MTY3NmUyMTdmZGRjMTY0MzhiYTgwNGFkYWEzMDdjMmVhNzhjZWM1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbFR5cGVzLmgK
QEAgLTAsMCArMSw3MSBAQAorI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5j
bHVkZSA8d3RmL1N0ZEludEV4dHJhcy5oPgorCituYW1lc3BhY2UgSlNDIHsKKworI2lmIENQVShS
SVNDVjY0KQordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCBSSVNDVjY0Q0NhbGxJbnRlZ2Vy
IHsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihUKSA8PSBzaXplb2YoQ1BVUmVnaXN0ZXIpKTsK
KyAgICB1c2luZyBJbnRlZ2VyVHlwZSA9IFQ7CisKKyAgICBSSVNDVjY0Q0NhbGxJbnRlZ2VyKCkg
PSBkZWxldGU7CisgICAgUklTQ1Y2NENDYWxsSW50ZWdlcihUIHZhbHVlKQorICAgICAgICA6IHZh
bHVlKHZhbHVlKQorICAgIHsgfQorCisgICAgb3BlcmF0b3IgVCgpIGNvbnN0CisgICAgeworICAg
ICAgICBpZiBjb25zdGV4cHIgKHNpemVvZihUKSA9PSA0KSB7CisgICAgICAgICAgICBhc20gdm9s
YXRpbGUgKAorICAgICAgICAgICAgICAgICJzZXh0LncgJVtvdXRfdmFsdWVdLCAlW2luX3ZhbHVl
XVxuXHQiCisgICAgICAgICAgICAgICAgOiBbb3V0X3ZhbHVlXSAiPXIiICh2YWx1ZSkKKyAgICAg
ICAgICAgICAgICA6IFtpbl92YWx1ZV0gInIiICh2YWx1ZSkpOworICAgICAgICB9CisgICAgICAg
IHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbnVtVHlwZSwg
dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfZW51bV92PEVudW1UeXBlPj4+Cisg
ICAgb3BlcmF0b3IgRW51bVR5cGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEVudW1U
eXBlKFQoKnRoaXMpKTsKKyAgICB9CisKKyAgICBtdXRhYmxlIFQgdmFsdWU7Cit9OworCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgordXNpbmcgQ0NhbGxJbnRlZ2VyID0gUklTQ1Y2NENDYWxsSW50ZWdl
cjxUPjsKKyNlbHNlCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IENDYWxsSW50ZWdlciB7
CisgICAgdXNpbmcgSW50ZWdlclR5cGUgPSBUOworCisgICAgQ0NhbGxJbnRlZ2VyKCkgPSBkZWxl
dGU7CisgICAgQ0NhbGxJbnRlZ2VyKFQgdmFsdWUpCisgICAgICAgIDogdmFsdWUodmFsdWUpCisg
ICAgeyB9CisKKyAgICBvcGVyYXRvciBUKCkgY29uc3QgeyByZXR1cm4gdmFsdWU7IH0KKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEVudW1UeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8
c3RkOjppc19lbnVtX3Y8RW51bVR5cGU+Pj4KKyAgICBvcGVyYXRvciBFbnVtVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIEVudW1UeXBlKHZhbHVlKTsgfQorCisgICAgVCB2YWx1ZTsKK307CisjZW5kaWYK
KwordXNpbmcgQ0NhbGxJbnQzMiA9IENDYWxsSW50ZWdlcjxpbnQzMl90PjsKK3VzaW5nIENDYWxs
VUludDMyID0gQ0NhbGxJbnRlZ2VyPHVpbnQzMl90PjsKK3VzaW5nIENDYWxsSW50NjQgPSBDQ2Fs
bEludGVnZXI8aW50NjRfdD47Cit1c2luZyBDQ2FsbFVJbnQ2NCA9IENDYWxsSW50ZWdlcjx1aW50
NjRfdD47Cit1c2luZyBDQ2FsbEludHB0ciA9IENDYWxsSW50ZWdlcjxpbnRwdHJfdD47Cit1c2lu
ZyBDQ2FsbFVJbnRwdHIgPSBDQ2FsbEludGVnZXI8dWludHB0cl90PjsKK3VzaW5nIENDYWxsU2l6
ZSA9IENDYWxsSW50ZWdlcjxzaXplX3Q+OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlm
IC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcAppbmRleCAyNTBiNzc5ZDYxNDBmMzk1ZDdjNjAyYjRhNjRkMGZiMGVhNDUzYjM2Li41NDcx
ODYxNWY5MTUzZjFiMWNmMDRiZWM2Y2NiMmFiM2ZiNjIwNjM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dJdGVyYXRvclJlc3VsdElzTm90T2JqZWN0
LCB2b2lkLCAoSlNHbG9iYQogICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJJdGVyYXRvciByZXN1bHQgaW50ZXJmYWNlIGlzIG5vdCBhbiBvYmplY3QuIl9zKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrLCBpbnQzMl90
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2ssIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTIyNCw3ICsyMjQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q2FsbEFyaXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVy
biBtaXNzaW5nQXJnQ291bnQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db25zdHJ1Y3RBcml0eUNoZWNrLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29uc3RydWN0QXJpdHlD
aGVjaywgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjQxLDcgKzI0MSw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrLCBp
bnQzMl90LCAoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8q
IHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRl
bnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdD
YWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MjU4LDcgKzI1OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRC
eUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiB9CiAKIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVp
bnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UcnlHZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTI3Myw3ICsyNzMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0
QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywg
RW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk1
LDcgKzI5NSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlk
T3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShzbG90LmdldFB1cmVSZXN1bHQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMxNCw3ICszMTQsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6
IGpzVW5kZWZpbmVkKCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldEJ5SWREaXJlY3RHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGly
ZWN0R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMzMiw3ICszMzIsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6
IGpzVW5kZWZpbmVkKCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldEJ5SWREaXJlY3RPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVl
IGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0T3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRp
ZmllcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM1NCw3ICszNTQsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXpl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50
KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50
cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBs
ZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC0zNzUsNyArMzc1LDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWQsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkR2Vu
ZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
Q0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxl
clNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTM5NCw3ICszOTQsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRPcHRp
bWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCBy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1w
bGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNDE3LDcgKzQxNyw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplCiAgICAgfSkpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywg
RW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIHVpbnRwdHJf
dCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRCeUlkV2l0aFRoaXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJs
ZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3Bl
KGZhbHNlKTsKIApAQCAtNDM2LDcgKzQzNiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeUlkV2l0aFRoaXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgaWRl
bnQsIHNsb3QpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5
SWRXaXRoVGhpc0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQs
IHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIHRoaXNFbmNvZGVkLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikp
CiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBA
IC00NTMsNyArNDUzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5
SWRXaXRoVGhpc0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG8KICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGJhc2VWYWx1ZS5nZXQoZ2xvYmFsT2JqZWN0LCBpZGVudCwgc2xvdCkpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0
aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09wdGltaXplLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0
dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c0VuY29kZWQsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBT
dXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC00Nzcs
NyArNDc3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRo
VGhpc09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2wKICAgICB9KSk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZEdlbmVyaWMsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVy
U2NvcGUoZmFsc2UpOwogCkBAIC01MDUsNyArNTA1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkluQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihiYXNlT2JqZWN0LT5nZXRQ
cm9wZXJ0eVNsb3QoZ2xvYmFsT2JqZWN0LCBpZGVudCwgc2xvdCkpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hl
YWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNj
b3BlKGZhbHNlKTsKIApAQCAtNjk3LDcgKzY5Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25IYXNQcml2YXRlQnJhbmRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZVZhbHVl
KS0+aGFzUHJpdmF0ZUJyYW5kKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRC
cmFuZCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlk
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0Nh
bGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNj
b3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTcxNiw3ICs3MTYsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uUHV0
QnlJZFN0cmljdCwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCh2bSksIGlkZW50LCBzbG90LmJh
c2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVu
dGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAg
ICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAt
NzM1LDcgKzczNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlk
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgTE9HX0lDKChJQ0V2
ZW50OjpPcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxs
KHZtKSwgaWRlbnQsIHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWlu
dHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdD
YWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBs
ZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC03NTQsNyArNzU0LDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2wKICAgICBMT0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJp
Y3QsIGJhc2VWYWx1ZS5jbGFzc0luZm9Pck51bGwodm0pLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0g
YmFzZVZhbHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRp
ZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdE5v
blN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0
dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQog
ewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAK
QEAgLTc3Myw3ICs3NzMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KgogICAgIExPR19JQygo
SUNFdmVudDo6T3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdCwgYmFzZVZhbHVlLmNsYXNz
SW5mb09yTnVsbCh2bSksIGlkZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0Nh
bGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNj
b3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTgwNSw3ICs4MDUsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdE9wdGltaXplLCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgICAgIHJlcGF0Y2hQdXRCeShnbG9iYWxPYmplY3Qs
IGNvZGVCbG9jaywgYmFzZVZhbHVlLCBzdHJ1Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHVi
SW5mbywgUHV0QnlLaW5kOjpCeUlkLCBQdXRLaW5kOjpOb3REaXJlY3QpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdE9wdGltaXplLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2Fs
bFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2Nv
cGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtODM3LDcgKzgzNyw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0T3B0aW1pemUs
IHZvaWQsIChKU0dsb2JhbE9iamVjCiAgICAgICAgIHJlcGF0Y2hQdXRCeShnbG9iYWxPYmplY3Qs
IGNvZGVCbG9jaywgYmFzZVZhbHVlLCBzdHJ1Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHVi
SW5mbywgUHV0QnlLaW5kOjpCeUlkLCBQdXRLaW5kOjpOb3REaXJlY3QpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1w
bGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtODY4LDcgKzg2OCw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0
T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iCiAgICAgICAgIHJlcGF0Y2hQdXRCeShnbG9iYWxP
YmplY3QsIGNvZGVCbG9jaywgYmFzZU9iamVjdCwgc3RydWN0dXJlLCBpZGVudGlmaWVyLCBzbG90
LCAqc3R1YkluZm8sIFB1dEJ5S2luZDo6QnlJZCwgUHV0S2luZDo6RGlyZWN0KTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRp
bWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6
ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTkz
OSw3ICs5MzksNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGRlZmluZVByaXZhdGVGaWVs
ZChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGNhbGxiYWNrKHZtLCBj
b2RlQmxvY2ssIG9sZFN0cnVjdHVyZSwgcHV0U2xvdCwgaWRlbnQpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0
ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtOTUyLDcgKzk1Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkRGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iCiAgICAgZGVmaW5l
UHJpdmF0ZUZpZWxkKHZtLCBnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBpZGVu
dGlmaWVyLCB2YWx1ZSwgW10oVk0mLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBQdXRQcm9wZXJ0
eVNsb3QmLCBjb25zdCBJZGVudGlmaWVyJikgeyB9KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRp
bWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewog
ICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC05NzUsNyArOTc1LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRp
bWl6ZSwgdm9pZCwKICAgICB9KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0
UHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTk4OCw3ICs5ODgsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsTwogICAgIHNldFByaXZhdGVGaWVsZCh2bSwgZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgaWRlbnRpZmllciwgdmFsdWUsIFtdKFZNJiwgQ29kZUJs
b2NrKiwgU3RydWN0dXJlKiwgUHV0UHJvcGVydHlTbG90JiwgY29uc3QgSWRlbnRpZmllciYpIHsg
fSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJp
dmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0
UHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJT
Y29wZShmYWxzZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTU1Myw3
ICsxNTUzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZpcnR1YWxDYWxs
LCBTbG93UGF0aFJldHVyblR5cGUsIChDYWxsRnJhbWUqIGMKICAgICByZXR1cm4gdmlydHVhbEZv
cldpdGhGdW5jdGlvbihnbG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBjYWxsTGlua0luZm8sIGNh
bGxlZUFzRnVuY3Rpb25DZWxsSWdub3JlZCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db21wYXJlTGVzcywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3MsIENDYWxs
U2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTU2Miw3ICsxNTYyLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVMZXNzLCBzaXplX3QsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2IKICAgICByZXR1cm4ganNMZXNzPHRydWU+KGdsb2JhbE9iamVjdCwgSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3NFcSwgc2l6ZV90
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29tcGFyZUxlc3NFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0x
NTcxLDcgKzE1NzEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFy
ZUxlc3NFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBqc0xl
c3NFcTx0cnVlPihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlciwg
Q0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTgwLDcgKzE1ODAsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIsIHNpemVfdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVybiBqc0xlc3M8ZmFsc2U+KGdsb2JhbE9iamVjdCwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSkp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJF
cSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlw
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0xNTg5LDcgKzE1ODksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZUdyZWF0ZXJFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAg
IHJldHVybiBqc0xlc3NFcTxmYWxzZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9wMiksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVF
cSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjAxLDcgKzE2MDEsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUVxLCBzaXplX3QsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZQogI2lmIFVTRShKU1ZBTFVFNjQpCiBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0VxLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkpCiAj
ZWxzZQotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcSwg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBsZWZ0LCBKU0Nl
bGwqIHJpZ2h0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aW5nRXEsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIGxlZnQsIEpTQ2VsbCogcmlnaHQpKQogI2VuZGlmCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTYxNiw3ICsxNjE2LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2IKICNlbmRpZgogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZVN0cmljdEVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEsIENDYWxs
U2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTYyOSw3ICsxNjI5LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2IKIH0KIAogI2lmIFVTRShCSUdJTlQzMikKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgc2l6ZV90LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBoZWFwQmlnSW50LCBpbnQzMl90IHNtYWxs
SW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlRXFIZWFwQmln
SW50VG9JbnQzMiwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogaGVhcEJpZ0ludCwgQ0NhbGxJbnQzMiBzbWFsbEludCkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2NDEsNyArMTY0MSw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgc2l6
ZV90LCAoSlNHbG9iYWxPCiB9CiAjZW5kaWYKIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld0FycmF5V2l0aFByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgY29uc3Qg
SlNWYWx1ZSogdmFsdWVzLCBpbnQgc2l6ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBjb25zdCBK
U1ZhbHVlKiB2YWx1ZXMsIENDYWxsSW50MzIgc2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTE4MTQsNyArMTgxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25IYW5kbGVUcmFwcywgVW51c2VkUHRyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EZWJ1Zywgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIGludDMyX3QgZGVidWdIb29rVHlwZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVidWcsIHZvaWQsIChWTSogdm1Qb2lu
dGVyLCBDQ2FsbEludDMyIGRlYnVnSG9va1R5cGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMTgzMCw3ICsxODMwLDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlQWxsUHJlZGljdGlvbnNBbmRP
cHRpbWl6ZUFmdGVyV2FybVVwKENvZGVCbG9jayogY29kZUJsb2NrKQogICAgIGNvZGVCbG9jay0+
b3B0aW1pemVBZnRlcldhcm1VcCgpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uT3B0aW1pemUsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKFZNKiB2bVBvaW50ZXIsIHVpbnQz
Ml90IGJ5dGVjb2RlSW5kZXhCaXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25PcHRpbWl6ZSwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxVSW50
MzIgYnl0ZWNvZGVJbmRleEJpdHMpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjA1OCw3
ICsyMDU4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXplLCBT
bG93UGF0aFJldHVyblR5cGUsIChWTSogdm1Qb2ludGVyLAogICAgIHJldHVybiBlbmNvZGVSZXN1
bHQobnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25UcnlPU1JFbnRlckF0Q2F0Y2gsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgdWludDMyX3Qg
Ynl0ZWNvZGVJbmRleEJpdHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRy
eU9TUkVudGVyQXRDYXRjaCwgY2hhciosIChWTSogdm1Qb2ludGVyLCBDQ2FsbFVJbnQzMiBieXRl
Y29kZUluZGV4Qml0cykpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDgyLDcgKzIwODIs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNo
LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIHVpbgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoQW5kVmFs
dWVQcm9maWxlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90IGJ5dGVjb2RlSW5kZXhC
aXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0
Y2hBbmRWYWx1ZVByb2ZpbGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxVSW50MzIgYnl0
ZWNvZGVJbmRleEJpdHMpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjEzNSw3ICsyMTM1
LDcgQEAgc3RhdGljIHZvaWQgcHV0QWNjZXNzb3JCeVZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU09iamVjdCogYmFzZSwgSlNWYWwKICAgICAgICAgYmFzZS0+cHV0U2V0dGVyKGds
b2JhbE9iamVjdCwgcHJvcGVydHlLZXksIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1w
bCogdWlkLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCogZ2V0dGVyKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIEND
YWxsSW50MzIgb3B0aW9ucywgSlNDZWxsKiBnZXR0ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yMTQ4LDcgKzIxNDgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgog
ICAgIGJhc2VPYmotPnB1dEdldHRlcihnbG9iYWxPYmplY3QsIHVpZCwgZ2V0dGVyLCBvcHRpb25z
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5SWQs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5p
cXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkLCBDQ2FsbEludDMyIG9wdGlvbnMsIEpTQ2VsbCogc2V0dGVyKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE2MSw3ICsyMTYxLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2IKICAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZ2xvYmFsT2JqZWN0LCB1aWQsIHNl
dHRlciwgb3B0aW9ucyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRHZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2Vs
bCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1
dGUsIEpTQ2VsbCogZ2V0dGVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRHZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2Vs
bCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQ0NhbGxJbnQzMiBhdHRy
aWJ1dGUsIEpTQ2VsbCogZ2V0dGVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtMjE3MCw3ICsyMTcwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBwdXRBY2Nl
c3NvckJ5VmFsKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIpLCBBY2Nlc3NvclR5
cGU6OkdldHRlcik7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRT
ZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCog
YmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUs
IEpTQ2VsbCogc2V0dGVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRT
ZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCog
YmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQ0NhbGxJbnQzMiBhdHRyaWJ1
dGUsIEpTQ2VsbCogc2V0dGVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MjE4MCw3ICsyMTgwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNl
dHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIH0KIAogI2lmIFVTRShK
U1ZBTFVFNjQpCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0
dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3Qs
IFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkR2V0dGVyVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRT
dHJpbmdJbXBsKiB1aWQsIENDYWxsSW50MzIgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkR2V0dGVyVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxOTcsNyArMjE5Nyw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsCiB9CiAKICNlbHNlCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3QgYXR0cmli
dXRlLCBKU0NlbGwqIGdldHRlckNlbGwsIEpTQ2VsbCogc2V0dGVyQ2VsbCkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQsIENDYWxsSW50MzIgYXR0cmlidXRlLCBKU0NlbGwqIGdldHRlckNlbGwsIEpTQ2VsbCogc2V0
dGVyQ2VsbCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyMTQsNyArMjIx
NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiB9CiAjZW5kaWYKIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmpl
Y3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIENDYWxsU2l6
ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEhhc0luc3RhbmNlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MjQ3Miw3ICsyNDcyLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFBy
aXZhdGVOYW1lLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGdldFByaXZhdGVOYW1lKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBiYXNl
VmFsdWUsIGZpZWxkTmFtZVZhbHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNW
YWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNl
KTsKIApAQCAtMjQ5Myw3ICsyNDkzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldFByaXZhdGVOYW1lQnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE8KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1Yklu
Zm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRP
cHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUlu
dHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBz
dXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKQEAgLTI1MjQsNyArMjUyNCw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChKCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUoZ2V0UHJpdmF0ZU5hbWUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwg
ZmllbGROYW1lKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
UHJpdmF0ZU5hbWVCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxl
SWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0
ZU5hbWVCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRl
bnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFs
c2UpOwogCkBAIC0yNTU4LDcgKzI1NTgsNyBAQCBzdGF0aWMgYm9vbCBkZWxldGVCeUlkKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgRGVsZXRlUHJvcGVydHlTbG90JgogICAg
IHJldHVybiBjb3VsZERlbGV0ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIsIEVDTUFNb2RlIGVjbWFNb2Rl
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkT3B0aW1pemUs
IENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBD
Q2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllciwgRUNNQU1vZGUgZWNtYU1vZGUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTg2LDcgKzI1ODYsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJZE9wdGltaXplLCBzaXplX3Qs
IChKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkR2VuZXJpYywgc2l6ZV90LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIsIEVDTUFNb2Rl
IGVjbWFNb2RlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlk
R2VuZXJpYywgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEND
YWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyLCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MjEsNyArMjYyMSw3IEBAIHN0YXRp
YyBib29sIGRlbGV0ZUJ5VmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwg
RGVsZXRlUHJvcGVydHlTbG90CiAgICAgcmV0dXJuIGNvdWxkRGVsZXRlOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxPcHRpbWl6ZSwgc2l6ZV90LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgRUNNQU1vZGUgZWNtYU1vZGUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBF
Q01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2
NTEsNyArMjY1MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVC
eVZhbE9wdGltaXplLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxHZW5l
cmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
U3Vic2NyaXB0LCBFQ01BTW9kZSBlY21hTW9kZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRGVsZXRlQnlWYWxHZW5lcmljLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRUNNQU1v
ZGUgZWNtYU1vZGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzE3LDcg
KzI3MTcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZk9w
dGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKHJlc3VsdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cywgaW50MzJfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90IG51bVVzZWRTdGFj
a1Nsb3RzLCBpbnQzMl90KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXpl
RnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyIG51bVVz
ZWRTdGFja1Nsb3RzLCBDQ2FsbEludDMyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjcyNSw3ICsyNzI1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVudHMsIGludDMyX3QsIChKU0dsb2IKICAgICByZXR1
cm4gc2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwg
dm0sIG51bVVzZWRTdGFja1Nsb3RzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3MsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IG51bVVz
ZWRTdGFja1Nsb3RzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCBDQ2FsbEludDMyOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRBcmd1bWVudHMsIENDYWxsSW50MzIgbnVtVXNlZFN0YWNrU2xvdHMsIENDYWxsSW50MzIg
Zmlyc3RWYXJBcmdPZmZzZXQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
NzM0LDcgKzI3MzQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZy
YW1lRm9yVmFyYXJncywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBzaXpl
RnJhbWVGb3JWYXJhcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCB2bSwgYXJndW1lbnRzLCBu
dW1Vc2VkU3RhY2tTbG90cywgZmlyc3RWYXJBcmdPZmZzZXQpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRzRnJhbWUsIENhbGxGcmFt
ZSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFt
ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cEZvcndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZy
YW1lKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogbmV3Q2FsbEZy
YW1lLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiBsZW5ndGgpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzQzLDcgKzI3NDMsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRzRnJhbWUsIENh
bGxGcmFtZSosIChKU0dsbwogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFtZSwgQ2FsbEZyYW1lKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0
LCBpbnQzMl90IGxlbmd0aCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0
dXBWYXJhcmdzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50
cywgQ0NhbGxJbnQzMiBmaXJzdFZhckFyZ09mZnNldCwgQ0NhbGxJbnQzMiBsZW5ndGgpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzUzLDcgKzI3NTMsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUsIENhbGxGcmFtZSos
IChKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25vd25LZXlUeXBlLCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRLZXksIHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1pbikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5LCBD
Q2FsbFNpemUgdGFibGVJbmRleCwgQ0NhbGxJbnQzMiBtaW4pKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yNzgwLDcgKzI3ODAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2Jh
bAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBl
LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIHNpemVf
dCB0YWJsZUluZGV4LCBpbnQzMl90IG1pbikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBDQ2FsbElu
dDMyIG1pbikpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODAxLDcgKzI4MDEsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlU
eXBlLCBjaGFyKiwgKFZNKiB2bVBvaQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIq
PihyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNo
U3RyaW5nV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIHNpemVfdCB0YWJsZUluZGV4KSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktl
eVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEtleSwgQ0NhbGxTaXplIHRhYmxlSW5kZXgpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0zMDAxLDcgKzMwMDEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvSGF2ZVByb3BlcnR5U3RvcmFnZVdpdGhJ
bgogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jvd1By
b3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBz
aXplX3QgbmV3U2l6ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxv
Y2F0ZUJ1dHRlcmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVy
LCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbFNpemUgbmV3U2l6ZSkpCiB7CiAgICAgVk0mIHZtID0g
KnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IGQ1
ZTlmNWM3MDVhNTg5MzkwNzExYmFmNzM3MGIwMDRiMjYxZmRiODQuLmUzYmFiMjkwYWYyY2Y0ODI4
ZWQ4MmUyNWZkMjY3Y2NhNjYwYjYwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5j
bHVkZSAiQ0NhbGxUeXBlcy5oIgogI2luY2x1ZGUgIkpJVE1hdGhJQ0ZvcndhcmRzLmgiCiAjaW5j
bHVkZSAiSklUT3BlcmF0aW9uVmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIlByaXZhdGVGaWVsZFB1
dEtpbmQuaCIKQEAgLTEyNCwyOSArMTI1LDI3IEBAIHVzaW5nIEpfSklUT3BlcmF0aW9uX0dQUCA9
IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iCiB1
c2luZyBKX0pJVE9wZXJhdGlvbl9HUFBQID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9B
VFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0Kiwgdm9pZCosIHZvaWQqLCB2b2lkKik7CiB1c2lu
ZyBKX0pJVE9wZXJhdGlvbl9HSkogPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJ
QlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
OwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR0pKTWljID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJB
VElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCB2b2lkKik7Ci11c2luZyBaX0pJVE9wZXJhdGlvbl9HSlpaID0gaW50MzJfdChK
SVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgaW50MzJfdCwgaW50MzJfdCk7Ci11c2luZyBGX0pJVE9wZXJhdGlvbl9HRkpaWiA9IENhbGxG
cmFtZSooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QpOwogdXNpbmcgU3BydF9KSVRP
cGVyYXRpb25fRUdDbGkgPSBTbG93UGF0aFJldHVyblR5cGUoSklUX09QRVJBVElPTl9BVFRSSUJV
VEVTICopKENhbGxGcmFtZSosIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbExpbmtJbmZvKik7CiB1c2lu
ZyBWX0pJVE9wZXJhdGlvbl9DYiA9IHZvaWQoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKENv
ZGVCbG9jayopOwotdXNpbmcgWl9KSVRPcGVyYXRpb25fRyA9IGludDMyX3QgKEpJVF9PUEVSQVRJ
T05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCopOwotdXNpbmcgUF9KSVRPcGVyYXRpb25f
Vm1TdFpCID0gY2hhciooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKFZNKiwgU3RydWN0dXJl
KiwgaW50MzJfdCwgQnV0dGVyZmx5Kik7Ci11c2luZyBQX0pJVE9wZXJhdGlvbl9HU3RaQiA9IGNo
YXIqKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIGludDMyX3QsIEJ1dHRlcmZseSopOwordXNpbmcgWl9KSVRPcGVyYXRpb25fRyA9IENDYWxs
SW50MzI6OkludGVnZXJUeXBlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9i
amVjdCopOwordXNpbmcgUF9KSVRPcGVyYXRpb25fVm1TdFpCID0gY2hhciooSklUX09QRVJBVElP
Tl9BVFRSSUJVVEVTICopKFZNKiwgU3RydWN0dXJlKiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5Kik7
Cit1c2luZyBQX0pJVE9wZXJhdGlvbl9HU3RaQiA9IGNoYXIqKEpJVF9PUEVSQVRJT05fQVRUUklC
VVRFUyAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50MzIsIEJ1dHRlcmZs
eSopOwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR0ogPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFU
SU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSk7CiB1c2lu
ZyBKX0pJVE9wZXJhdGlvbl9HSkkgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJ
QlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0lt
cGwqKTsKIHVzaW5nIEpfSklUT3BlcmF0aW9uX0dKSVAgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BF
UkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgVW5p
cXVlZFN0cmluZ0ltcGwqLCB2b2lkKik7Ci11c2luZyBWX0pJVE9wZXJhdGlvbl9HU3NpSkpDID0g
dm9pZChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KTsK
LXVzaW5nIENfSklUT3BlcmF0aW9uX1RUID0gdWludHB0cl90KEpJVF9PUEVSQVRJT05fQVRUUklC
VVRFUyAqKShTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopOwotdXNpbmcgQ19KSVRPcGVyYXRpb25f
Ql9HSnNzSnNzID0gdWludHB0cl90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2Jh
bE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKTsKLXVzaW5nIFNfSklUT3BlcmF0aW9uX0dD
ID0gc2l6ZV90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCopOwotdXNpbmcgU19KSVRPcGVyYXRpb25fR0NaID0gc2l6ZV90KEpJVF9PUEVSQVRJT05f
QVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIGludDMyX3QpOwotdXNpbmcg
U19KSVRPcGVyYXRpb25fR0pKID0gc2l6ZV90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Cit1c2luZyBW
X0pJVE9wZXJhdGlvbl9HU3NpSkpDID0gdm9pZChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKiko
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKTsKK3VzaW5nIENfSklUT3BlcmF0aW9uX1RUID0gQ0Nh
bGxVSW50cHRyOjpJbnRlZ2VyVHlwZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoU3RyaW5n
SW1wbCosIFN0cmluZ0ltcGwqKTsKK3VzaW5nIENfSklUT3BlcmF0aW9uX0JfR0pzc0pzcyA9IEND
YWxsVUludHB0cjo6SW50ZWdlclR5cGUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xv
YmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopOwordXNpbmcgU19KSVRPcGVyYXRpb25f
R0MgPSBDQ2FsbFNpemU6OkludGVnZXJUeXBlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShK
U0dsb2JhbE9iamVjdCosIEpTQ2VsbCopOwordXNpbmcgU19KSVRPcGVyYXRpb25fR0NaID0gQ0Nh
bGxTaXplOjpJbnRlZ2VyVHlwZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqLCBDQ2FsbEludDMyKTsKK3VzaW5nIFNfSklUT3BlcmF0aW9uX0dKSiA9
IENDYWxsU2l6ZTo6SW50ZWdlclR5cGUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHVzaW5nIFZfSklU
T3BlcmF0aW9uX0dKSkogPSB2b2lkKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
OwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR1NzaUpKID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJB
VElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR1Nz
aUpKSSA9IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogdXNpbmcgVl9KSVRPcGVyYXRpb25fR0NDSiA9IHZv
aWQoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwg
SlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUpOwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR1NzaUpJID0g
RW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwq
KTsKLXVzaW5nIFpfSklUT3BlcmF0aW9uX0dKWlogPSBpbnQzMl90KEpJVF9PUEVSQVRJT05fQVRU
UklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQz
Ml90KTsKLXVzaW5nIEZfSklUT3BlcmF0aW9uX0dGSlpaID0gQ2FsbEZyYW1lKihKSVRfT1BFUkFU
SU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNW
YWx1ZSwgaW50MzJfdCwgaW50MzJfdCk7Cit1c2luZyBaX0pJVE9wZXJhdGlvbl9HSlpaID0gQ0Nh
bGxJbnQzMjo6SW50ZWdlclR5cGUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIsIENDYWxsSW50MzIpOwordXNpbmcg
Rl9KSVRPcGVyYXRpb25fR0ZKWlogPSBDYWxsRnJhbWUqKEpJVF9PUEVSQVRJT05fQVRUUklCVVRF
UyAqKShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbElu
dDMyLCBDQ2FsbEludDMyKTsKIAogLy8gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBsb29rdXAgYW4g
ZXhjZXB0aW9uIGhhbmRlciwga2V5ZWQgYnkgZmF1bHRMb2NhdGlvbiwgd2hpY2ggaXMKIC8vIHRo
ZSByZXR1cm4gbG9jYXRpb24gZnJvbSBvbmUgb2YgdGhlIGNhbGxzIG91dCB0byBvbmUgb2YgdGhl
IGhlbHBlciBvcGVyYXRpb25zIGFib3ZlLgpAQCAtMTYxLDI0ICsxNjAsMjQgQEAgSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXcmFwcGVkVmFsdWVGb3JUYXJnZXQsIEVuY29k
ZWRKU1ZhbHVlLCAoSlMKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dS
ZW1vdGVGdW5jdGlvbkV4Y2VwdGlvbiwgRW5jb2RlZEpTVmFsdWUsIChKU1JlbW90ZUZ1bmN0aW9u
KikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVy
Zmxvd0Vycm9yLCB2b2lkLCAoQ29kZUJsb2NrKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DYWxsQXJpdHlDaGVjaywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KikpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrLCBp
bnQzMl90LCAoSlNHbG9iYWxPYmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNhbGxBcml0eUNoZWNrLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db25zdHJ1Y3RB
cml0eUNoZWNrLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KikpOwog
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5
R2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blRyeUdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRHZW5lcmljLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJf
dCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0QnlJZFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRw
dHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRo
aXNHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldEJ5SWREaXJlY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRpbWl6ZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpT
VmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
cnlHZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
LCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50
cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhp
cywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2VuZXJpYywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdl
dEJ5SWRXaXRoVGhpc09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxs
VUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGly
ZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8q
LCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0T3B0aW1pemUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
LCBDQ2FsbFVJbnRwdHIpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25J
bkJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZEdlbmVyaWMsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSW5CeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeVZhbEdlbmVyaWMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEFycmF5UHJvZmlsZSos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25JbkJ5VmFsT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEFycmF5UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25I
YXNQcml2YXRlTmFtZUdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwpAQCAt
MTg2LDE4ICsxODUsMTggQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQ
cml2YXRlTmFtZU9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2wKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5kR2VuZXJpYywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhh
c1ByaXZhdGVCcmFuZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKIAot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemUsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9w
dGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRw
dHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0
Tm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3Qp
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVG
aWVsZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkRGlyZWN0U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0cikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1p
emUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50
cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQ
cml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVs
ZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIENDYWxsVUludHB0cikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blNldFByaXZhdGVCcmFuZE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DaGVja1ByaXZhdGVCcmFuZE9wdGltaXplLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSkpOwpAQCAtMjIyLDE5ICsyMjEsMTkgQEAgSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25MaW5rQ2FsbCwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoQ2FsbEZyYW1l
KiwgSlMKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTGlua1BvbHltb3JwaGlj
Q2FsbCwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoQ2FsbEZyYW1lKiwgSlNHbG9iYWxPYmplY3QqLCBD
YWxsTGlua0luZm8qKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZpcnR1
YWxDYWxsLCBTbG93UGF0aFJldHVyblR5cGUsIChDYWxsRnJhbWUqLCBKU0dsb2JhbE9iamVjdCos
IENhbGxMaW5rSW5mbyopKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b21wYXJlTGVzcywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFy
ZUxlc3NFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdy
ZWF0ZXIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVHcmVh
dGVyRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcSwg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUp
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxLCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzcywgQ0NhbGxT
aXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVM
ZXNzRXEsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlR3JlYXRlciwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyRXEsIENDYWxsU2l6ZTo6SW50ZWdlclR5
cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlRXEsIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0
RXEsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogI2lmIFVTRShKU1ZBTFVFNjQpCiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcSwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCosIEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIGhlYXBCaWdJbnQsIGludDMyX3Qgc21hbGxJ
bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUVxSGVhcEJp
Z0ludFRvSW50MzIsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCogaGVhcEJpZ0ludCwgQ0NhbGxJbnQzMiBzbWFsbEludCkpOwogI2Vsc2UKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0VxLCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCosIEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nRXEsIENDYWxsU2l6ZTo6SW50ZWdl
clR5cGUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkpOwog
I2VuZGlmCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFBy
b2ZpbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBBcnJheUFsbG9jYXRpb25Q
cm9maWxlKiwgY29uc3QgSlNWYWx1ZSogdmFsdWVzLCBpbnQzMl90IHNpemUpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBjb25zdCBK
U1ZhbHVlKiB2YWx1ZXMsIENDYWxsSW50MzIgc2l6ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplQW5kUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBFbmNvZGVkSlNWYWx1
ZSBzaXplKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Z1bmN0aW9u
LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgSlNTY29wZSosIEpTQ2VsbCopKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFsbG9j
YXRpb25XYXRjaHBvaW50LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgSlNTY29wZSosIEpTQ2VsbCop
KTsKQEAgLTI1Myw1MyArMjUyLDUzIEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3QXN5bmNHZW5lcmF0b3IsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSopCiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1JlZ2V4cCwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25I
YW5kbGVUcmFwcywgVW51c2VkUHRyLCAoSlNHbG9iYWxPYmplY3QqKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWJ1Zywg
dm9pZCwgKFZNKiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EZWJ1Zywgdm9pZCwgKFZNKiwgQ0NhbGxJbnQzMikpOwogI2lmIEVOQUJMRShERkdfSklUKQot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgU2xvd1BhdGhSZXR1
cm5UeXBlLCAoVk0qLCB1aW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25UcnlPU1JFbnRlckF0Q2F0Y2gsIGNoYXIqLCAoVk0qLCB1aW50MzJfdCkpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1ZVBy
b2ZpbGUsIGNoYXIqLCAoVk0qLCB1aW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25PcHRpbWl6ZSwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoVk0qLCBDQ2FsbFVJbnQz
MikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0
Y2gsIGNoYXIqLCAoVk0qLCBDQ2FsbFVJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUsIGNoYXIqLCAoVk0q
LCBDQ2FsbFVJbnQzMikpOwogI2VuZGlmCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEdldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1
ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwq
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBh
dHRyaWJ1dGUsIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0U2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRK
U1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIENDYWxsSW50MzIgb3B0aW9ucywgSlNDZWxsKikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIENDYWxsSW50
MzIgb3B0aW9ucywgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRHZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2Rl
ZEpTVmFsdWUsIENDYWxsSW50MzIgYXR0cmlidXRlLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGUsIEpTQ2Vs
bCopKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVu
aXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0
ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJ
bXBsKiwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSkpOwogI2Vsc2UKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVy
U2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1w
bCosIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBDQ2FsbEludDMyIGF0dHJpYnV0ZSwg
SlNDZWxsKiwgSlNDZWxsKikpOwogI2VuZGlmCiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgQXJyYXlQcm9maWxlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBBcnJheVByb2ZpbGUqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRGVsZXRlQnlJZE9wdGltaXplLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90LCBFQ01BTW9k
ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkR2VuZXJp
Yywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRK
U1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCwgRUNNQU1vZGUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxPcHRpbWl6ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1Zh
bHVlIHRhcmdldCwgRUNNQU1vZGUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRGVsZXRlQnlWYWxHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGFyZ2V0LCBF
Q01BTW9kZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlk
T3B0aW1pemUsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyLCBFQ01BTW9k
ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkR2VuZXJp
YywgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIsIEVDTUFNb2RlKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUsIEND
YWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGFyZ2V0LCBFQ01BTW9kZSkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbEdlbmVyaWMs
IENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGFyZ2V0LCBFQ01BTW9k
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXNoV2l0aFNjb3BlLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEVuY29k
ZWRKU1ZhbHVlIG9iamVjdCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXNoV2l0aFNjb3BlT2JqZWN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDZWxsKiBjdXJyZW50U2NvcGVDZWxsLCBKU09iamVjdCogb2JqZWN0KSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluc3RhbmNlT2ZHZW5lcmljLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1
ZSB2YWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvdG8pKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSW5zdGFuY2VPZk9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgcHJvdG8pKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6
ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQzMl90
IGZpcnN0VmFyQXJnT2Zmc2V0KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blNpemVGcmFtZUZvclZhcmFyZ3MsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBudW1Vc2VkU3RhY2tTbG90cywgaW50MzJfdCBmaXJz
dFZhckFyZ09mZnNldCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1
cEZvcndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QgbGVuZ3RoKSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwVmFyYXJnc0ZyYW1lLCBDYWxsRnJh
bWUqLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVu
dHMsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVudHMs
IENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSBhcmd1bWVudHMsIENDYWxsSW50MzIgbnVtVXNlZFN0YWNrU2xvdHMsIENDYWxsSW50MzIgZmly
c3RWYXJBcmdPZmZzZXQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6
ZUZyYW1lRm9yVmFyYXJncywgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgQ0NhbGxJbnQzMiBudW1Vc2VkU3RhY2tTbG90
cywgQ0NhbGxJbnQzMiBmaXJzdFZhckFyZ09mZnNldCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25TZXR1cEZvcndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIsIEND
YWxsSW50MzIgbGVuZ3RoKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNl
dHVwVmFyYXJnc0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
LCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIENDYWxsSW50MzIgZmlyc3RWYXJBcmdPZmZzZXQs
IENDYWxsSW50MzIgbGVuZ3RoKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0UHJpdmF0ZU5hbWUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkRmllbGROYW1lKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldFByaXZhdGVOYW1lT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkRmllbGROYW1lKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6
ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2Fs
bFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0
ZU5hbWVCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkR2VuZXJpYywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRw
dHIpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0
aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
a2V5LCBzaXplX3QgdGFibGVJbmRleCwgaW50MzJfdCBtaW4pKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKFZN
KiwgRW5jb2RlZEpTVmFsdWUga2V5LCBzaXplX3QgdGFibGVJbmRleCwgaW50MzJfdCBtaW4pKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nV2l0aFVua25v
d25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUga2V5LCBz
aXplX3QgdGFibGVJbmRleCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
d2l0Y2hDaGFyV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUga2V5LCBDQ2FsbFNpemUgdGFibGVJbmRleCwgQ0NhbGxJbnQzMiBtaW4pKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25L
ZXlUeXBlLCBjaGFyKiwgKFZNKiwgRW5jb2RlZEpTVmFsdWUga2V5LCBDQ2FsbFNpemUgdGFibGVJ
bmRleCwgQ0NhbGxJbnQzMiBtaW4pKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU3dpdGNoU3RyaW5nV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUga2V5LCBDQ2FsbFNpemUgdGFibGVJbmRleCkpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlU2NvcGVGb3JCYXNlbGluZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIGNvbnN0IEluc3RydWN0aW9uKiBieXRlY29kZVBD
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEZyb21TY29wZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIGNvbnN0IEluc3RydWN0aW9uKiBieXRlY29k
ZVBDKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFRvU2NvcGUsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIGNvbnN0IEluc3RydWN0aW9uKiBieXRlY29kZVBDKSk7CiAK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRv
SGF2ZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHksIGNoYXIqLCAoVk0qLCBKU09i
amVjdCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1
dHRlcmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSosIEpTT2JqZWN0Kiwgc2l6
ZV90IG5ld1NpemUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxv
Y2F0ZUJ1dHRlcmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSosIEpTT2JqZWN0
KiwgQ0NhbGxTaXplIG5ld1NpemUpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Xcml0ZUJhcnJpZXJTbG93UGF0aCwgdm9pZCwgKFZNKiwgSlNDZWxsKikpOwogSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PU1JXcml0ZUJhcnJpZXIsIHZvaWQsIChWTSos
IEpTQ2VsbCopKTsKQEAgLTMwOCw3ICszMDcsNyBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enosIHZvaWQsIChKU0dsb2JhbE9iamVjdCopKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRXhjZXB0aW9uRnV6eldpdGhDYWxsRnJhbWUs
IHZvaWQsIChWTSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXRy
aWV2ZUFuZENsZWFyRXhjZXB0aW9uSWZDYXRjaGFibGUsIEpTQ2VsbCosIChWTSopKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSwgc2l6ZV90LCAo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTT2JqZWN0KiBj
b25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhhc0luc3RhbmNlKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFu
Y2UpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIs
IEJpbmFyeUFyaXRoUHJvZmlsZSopKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGVyYXRpb25zLmNwcAppbmRleCAxMDgwNDQ5ZGE2MzhmNjc2ZTA3ZWNhMGY1ODJlM2I5ZmM3
YjVlNjkxLi40MTY4NWUzOGQ4YWUzODc5YTQwNTE3M2UwZGY0OGI4ZTA1MjUzODQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCkBAIC00MTgsNyAr
NDE4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NS
RW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29udGV4dCYKICAgICByZXR1cm4gcmV0dXJuV2l0aG91
dE9TUkVudHJ5KCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgZnVu
Y3Rpb25JbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdn
ZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGZ1bmN0
aW9uSW5kZXgpKQogewogICAgIFdhc206OkNhbGxlZUdyb3VwJiBjYWxsZWVHcm91cCA9ICppbnN0
YW5jZS0+Y2FsbGVlR3JvdXAoKTsKICAgICBBU1NFUlQoaW5zdGFuY2UtPm1lbW9yeSgpLT5tb2Rl
KCkgPT0gY2FsbGVlR3JvdXAubW9kZSgpKTsKQEAgLTQzMyw3ICs0MzMsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0
YW5jZSogaW5zdGFuYwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZGF0YUxvZ0xuSWYo
T3B0aW9uczo6dmVyYm9zZU9TUigpLCAiQ29uc2lkZXIgT01HUGxhbiBmb3IgWyIsIGZ1bmN0aW9u
SW5kZXgsICJdIHdpdGggZXhlY3V0ZUNvdW50ZXIgPSAiLCB0aWVyVXAsICIgIiwgUmF3UG9pbnRl
cihjYWxsZWUucmVwbGFjZW1lbnQoKSkpOworICAgIGRhdGFMb2dMbklmKE9wdGlvbnM6OnZlcmJv
c2VPU1IoKSwgIkNvbnNpZGVyIE9NR1BsYW4gZm9yIFsiLCB1aW50MzJfdChmdW5jdGlvbkluZGV4
KSwgIl0gd2l0aCBleGVjdXRlQ291bnRlciA9ICIsIHRpZXJVcCwgIiAiLCBSYXdQb2ludGVyKGNh
bGxlZS5yZXBsYWNlbWVudCgpKSk7CiAKICAgICBpZiAoc2hvdWxkVHJpZ2dlck9NR0NvbXBpbGUo
dGllclVwLCBjYWxsZWUucmVwbGFjZW1lbnQoKSwgZnVuY3Rpb25JbmRleCkpCiAgICAgICAgIHRy
aWdnZXJPTUdSZXBsYWNlbWVudENvbXBpbGUodGllclVwLCBjYWxsZWUucmVwbGFjZW1lbnQoKSwg
aW5zdGFuY2UsIGNhbGxlZUdyb3VwLCBmdW5jdGlvbkluZGV4KTsKQEAgLTQ0Miw3ICs0NDIsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3cs
IHZvaWQsIChJbnN0YW5jZSogaW5zdGFuYwogICAgIGlmIChjYWxsZWUucmVwbGFjZW1lbnQoKSkg
ewogICAgICAgICAvLyBObyBPU1IgZW50cnkgcG9pbnRzLiBKdXN0IGRlZmVyIGluZGVmaW5pdGVs
eS4KICAgICAgICAgaWYgKHRpZXJVcC5vc3JFbnRyeVRyaWdnZXJzKCkuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJkZWxheU9NR0Nv
bXBpbGUgcmVwbGFjZW1lbnQgaW4gcGxhY2UsIGRlbGF5aW5nIGluZGVmaW5pdGVseSBmb3IgIiwg
ZnVuY3Rpb25JbmRleCk7CisgICAgICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3Nl
T1NSKCksICJkZWxheU9NR0NvbXBpbGUgcmVwbGFjZW1lbnQgaW4gcGxhY2UsIGRlbGF5aW5nIGlu
ZGVmaW5pdGVseSBmb3IgIiwgdWludDMyX3QoZnVuY3Rpb25JbmRleCkpOwogICAgICAgICAgICAg
dGllclVwLmRvbnRPcHRpbWl6ZUFueXRpbWVTb29uKGZ1bmN0aW9uSW5kZXgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC00NTAsNyArNDUwLDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVwTm93LCB2b2lkLCAoSW5zdGFuY2Uq
IGluc3RhbmMKICAgICAgICAgLy8gRm91bmQgb25lIE9TUiBlbnRyeSBwb2ludC4gU2luY2Ugd2Ug
ZG8gbm90IGhhdmUgYSB3YXkgdG8gamV0dGlzb24gV2FzbTo6Q2FsbGVlIHJpZ2h0IG5vdywgdGhp
cyBtZWFucyB0aGF0IHRpZXJVcCBmdW5jdGlvbiBpcyBub3cgbWVhbmluZ2xlc3MuCiAgICAgICAg
IC8vIE5vdCBjYWxsIGl0IGFzIG11Y2ggYXMgcG9zc2libGUuCiAgICAgICAgIGlmIChjYWxsZWUu
b3NyRW50cnlDYWxsZWUoKSkgewotICAgICAgICAgICAgZGF0YUxvZ0xuSWYoT3B0aW9uczo6dmVy
Ym9zZU9TUigpLCAiZGVsYXlPTUdDb21waWxlIHRyaWdnZXIgaW4gcGxhY2UsIGRlbGF5aW5nIGlu
ZGVmaW5pdGVseSBmb3IgIiwgZnVuY3Rpb25JbmRleCk7CisgICAgICAgICAgICBkYXRhTG9nTG5J
ZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJkZWxheU9NR0NvbXBpbGUgdHJpZ2dlciBpbiBwbGFj
ZSwgZGVsYXlpbmcgaW5kZWZpbml0ZWx5IGZvciAiLCB1aW50MzJfdChmdW5jdGlvbkluZGV4KSk7
CiAgICAgICAgICAgICB0aWVyVXAuZG9udE9wdGltaXplQW55dGltZVNvb24oZnVuY3Rpb25JbmRl
eCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTQ2OCw3ICs0NjgsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKICAgICBBU1NFUlQoISF2bS5jYWxsRnJhbWVGb3JDYXRjaCk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0
X3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIENDYWxsSW50NjQ6OkludGVnZXJUeXBlLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNp
ZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKQEAgLTQ4Niw3ICs0ODYs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3Vi
bGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSgogICAgIHJldHVybiB2LnRvTnVtYmVyKGNhbGxG
cmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEpTVmFsdWUgdikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dFRvSTMyLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U1ZhbHVlIHYpKQogewogICAgIC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1i
bHlJbnN0YW5jZSogaW5zdGVhZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMjA2CkBAIC01MDQsNyArNTA0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlMKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHYudG9OdW1iZXIoY2FsbEZyYW1l
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGludDY0X3QgdmFsdWUpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUs
IChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbEludDY0IHZh
bHVlKSkKIHsKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5j
ZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBqc0luc3RhbmNlLT5nbG9iYWxPYmplY3QoKTsKQEAgLTU4OCw3ICs1ODgs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZv
aWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSQogLy8gRklYTUU6IEl0IHdvdWxkIGJlIG11Y2gg
ZWFzaWVyIHRvIGlubGluZSB0aGlzIHdoZW4gd2UgaGF2ZSBhIGdsb2JhbCBHQywgd2hpY2ggY291
bGQgcHJvYmFibHkgbWVhbiB3ZSBjb3VsZCBhdm9pZAogLy8gc3BpbGxpbmcgdGhlIHJlc3VsdHMg
b250byB0aGUgc3RhY2suCiAvLyBTYXZlZCByZXN1bHQgcmVnaXN0ZXJzIHNob3VsZCBiZSBwbGFj
ZWQgb24gdGhlIHN0YWNrIGp1c3QgYWJvdmUgdGhlIGxhc3Qgc3RhY2sgcmVzdWx0LgotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5
KiwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBXYXNtOjpJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0
IFNpZ25hdHVyZSogc2lnbmF0dXJlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlLCBKU1ZhbHVl
KiBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgV2FzbTo6SW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBTaWduYXR1cmUqIHNpZ25hdHVyZSwg
Q0NhbGxJbnRlZ2VyPEluZGV4aW5nVHlwZT4gaW5kZXhpbmdUeXBlLCBKU1ZhbHVlKiBzdGFja1Bv
aW50ZXJGcm9tQ2FsbGVlKSkKIHsKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFu
Y2UgPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwogICAgIFZNJiB2
bSA9IGpzSW5zdGFuY2UtPnZtKCk7CkBAIC02MjcsMTcgKzYyNywxNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoSlND
ZWxsKiBjZWxsLAogICAgIHZtLndyaXRlQmFycmllclNsb3dQYXRoKGNlbGwpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQzMiwgdWludDMyX3QsIChpbnQz
Ml90IHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDMy
LCBDQ2FsbFVJbnQzMjo6SW50ZWdlclR5cGUsIChDQ2FsbEludDMyIHZhbHVlKSkKIHsKICAgICBy
ZXR1cm4gX19idWlsdGluX3BvcGNvdW50KHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblBvcGNvdW50NjQsIHVpbnQ2NF90LCAoaW50NjRfdCB2YWx1ZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQ2NCwgQ0NhbGxVSW50NjQ6
OkludGVnZXJUeXBlLCAoQ0NhbGxJbnQ2NCB2YWx1ZSkpCiB7CiAgICAgcmV0dXJuIF9fYnVpbHRp
bl9wb3Bjb3VudGxsKHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdyb3dNZW1vcnksIGludDMyX3QsICh2b2lkKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0
YW5jZSwgaW50MzJfdCBkZWx0YSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
R3Jvd01lbW9yeSwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsICh2b2lkKiBjYWxsRnJhbWUsIElu
c3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxJbnQzMiBkZWx0YSkpCiB7CiAgICAgaW5zdGFuY2UtPnN0
b3JlVG9wQ2FsbEZyYW1lKGNhbGxGcmFtZSk7CiAKQEAgLTY1OSwxNyArNjU5LDE3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Hcm93TWVtb3J5LCBpbnQzMl90LCAodm9pZCog
Y2FsbEZyYW1lLCBJbnN0YW5jCiAgICAgcmV0dXJuIGdyb3duLnZhbHVlKCkucGFnZUNvdW50KCk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwg
c2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJf
dCB0YXJnZXRWYWx1ZSwgdWludDMyX3QgY291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21NZW1vcnlGaWxsLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSW5zdGFu
Y2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBkc3RBZGRyZXNzLCBDQ2FsbFVJbnQzMiB0YXJnZXRW
YWx1ZSwgQ0NhbGxVSW50MzIgY291bnQpKQogewogICAgIHJldHVybiBpbnN0YW5jZS0+bWVtb3J5
KCktPmZpbGwoZHN0QWRkcmVzcywgc3RhdGljX2Nhc3Q8dWludDhfdD4odGFyZ2V0VmFsdWUpLCBj
b3VudCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5
Q29weSwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1
aW50MzJfdCBzcmNBZGRyZXNzLCB1aW50MzJfdCBjb3VudCkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUNvcHksIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJ
bnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGRzdEFkZHJlc3MsIENDYWxsVUludDMyIHNy
Y0FkZHJlc3MsIENDYWxsVUludDMyIGNvdW50KSkKIHsKICAgICByZXR1cm4gaW5zdGFuY2UtPm1l
bW9yeSgpLT5jb3B5KGRzdEFkZHJlc3MsIHNyY0FkZHJlc3MsIGNvdW50KTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQsIEVuY29kZWRK
U1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4LCBpbnQzMl90
IHNpZ25lZEluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNt
VGFibGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxV
SW50MzIgdGFibGVJbmRleCwgQ0NhbGxJbnQzMiBzaWduZWRJbmRleCkpCiB7CiAgICAgQVNTRVJU
KHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS50YWJs
ZUNvdW50KCkpOwogICAgIGlmIChzaWduZWRJbmRleCA8IDApCkBAIC03MTIsMTIgKzcxMiwxMiBA
QCBzdGF0aWMgYm9vbCBzZXRXYXNtVGFibGVFbGVtZW50KEluc3RhbmNlKiBpbnN0YW5jZSwgdW5z
aWduZWQgdGFibGVJbmRleCwgdWludDMyXwogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudCwgc2l6ZV90LCAo
SW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfdCBzaWduZWRJ
bmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNldFdhc21UYWJsZUVsZW1lbnQsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJ
bnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIHRhYmxlSW5kZXgsIENDYWxsVUludDMyIHNp
Z25lZEluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIHNldFdh
c21UYWJsZUVsZW1lbnQoaW5zdGFuY2UsIHRhYmxlSW5kZXgsIHNpZ25lZEluZGV4LCBlbmNWYWx1
ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVJbml0
LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGVsZW1lbnRJbmRleCwgdW5z
aWduZWQgdGFibGVJbmRleCwgdWludDMyX3QgZHN0T2Zmc2V0LCB1aW50MzJfdCBzcmNPZmZzZXQs
IHVpbnQzMl90IGxlbmd0aCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bVRhYmxlSW5pdCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
Q0NhbGxVSW50MzIgZWxlbWVudEluZGV4LCBDQ2FsbFVJbnQzMiB0YWJsZUluZGV4LCBDQ2FsbFVJ
bnQzMiBkc3RPZmZzZXQsIENDYWxsVUludDMyIHNyY09mZnNldCwgQ0NhbGxVSW50MzIgbGVuZ3Ro
KSkKIHsKICAgICBBU1NFUlQoZWxlbWVudEluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVs
ZUluZm9ybWF0aW9uKCkuZWxlbWVudENvdW50KCkpOwogICAgIEFTU0VSVCh0YWJsZUluZGV4IDwg
aW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKQEAg
LTc0MiwxMyArNzQyLDEzIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VGFibGVJbml0LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtRWxlbURyb3As
IHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGVsZW1lbnRJbmRleCkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbUVsZW1Ecm9wLCB2b2lkLCAoSW5zdGFu
Y2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBlbGVtZW50SW5kZXgpKQogewogICAgIEFTU0VSVChl
bGVtZW50SW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5lbGVt
ZW50Q291bnQoKSk7CiAgICAgaW5zdGFuY2UtPmVsZW1Ecm9wKGVsZW1lbnRJbmRleCk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90
LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4LCBFbmNvZGVkSlNWYWx1
ZSBmaWxsLCB1aW50MzJfdCBkZWx0YSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbVRhYmxlR3JvdywgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5z
dGFuY2UsIENDYWxsVUludDMyIHRhYmxlSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIENDYWxs
VUludDMyIGRlbHRhKSkKIHsKICAgICBBU1NFUlQodGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1
bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAgICAgYXV0byBvbGRTaXpl
ID0gaW5zdGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgpLT5sZW5ndGgoKTsKQEAgLTc2Miw3ICs3NjIs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlR3JvdywgaW50
MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdQogICAgIHJldHVybiBvbGRTaXplOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlRmlsbCwgc2l6ZV90LCAo
SW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfdCBvZmZzZXQs
IEVuY29kZWRKU1ZhbHVlIGZpbGwsIHVpbnQzMl90IGNvdW50KSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVGaWxsLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAo
SW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiB0YWJsZUluZGV4LCBDQ2FsbFVJbnQzMiBv
ZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIENDYWxsVUludDMyIGNvdW50KSkKIHsKICAgICBB
U1NFUlQodGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigp
LnRhYmxlQ291bnQoKSk7CiAKQEAgLTc3OCw3ICs3NzgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlRmlsbCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNl
LCB1bgogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRhYmxlQ29weSwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25l
ZCBkc3RUYWJsZUluZGV4LCB1bnNpZ25lZCBzcmNUYWJsZUluZGV4LCBpbnQzMl90IGRzdE9mZnNl
dCwgaW50MzJfdCBzcmNPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVDb3B5LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAo
SW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBkc3RUYWJsZUluZGV4LCBDQ2FsbFVJbnQz
MiBzcmNUYWJsZUluZGV4LCBDQ2FsbEludDMyIGRzdE9mZnNldCwgQ0NhbGxJbnQzMiBzcmNPZmZz
ZXQsIENDYWxsSW50MzIgbGVuZ3RoKSkKIHsKICAgICBBU1NFUlQoZHN0VGFibGVJbmRleCA8IGlu
c3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAgICAg
QVNTRVJUKHNyY1RhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRp
b24oKS50YWJsZUNvdW50KCkpOwpAQCAtODExLDE0ICs4MTEsMTQgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0
YW5jZSwgdW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5j
ZSwgdWludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldh
c21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50
MzIgaW5kZXgpKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBpbnN0YW5jZS0+Z2V0RnVuY3Rpb25X
cmFwcGVyKGluZGV4KTsKICAgICBBU1NFUlQodmFsdWUuaXNDYWxsYWJsZShpbnN0YW5jZS0+b3du
ZXI8SlNPYmplY3Q+KCktPnZtKCkpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVl
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZVNp
emUsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUsIENDYWxs
SW50MzI6OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiB0YWJs
ZUluZGV4KSkKIHsKICAgICByZXR1cm4gaW5zdGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgpLT5sZW5n
dGgoKTsKIH0KQEAgLTg0OSw3ICs4NDksNyBAQCBzdGF0aWMgaW50MzJfdCB3YWl0KFZNJiB2bSwg
VmFsdWVUeXBlKiBwb2ludGVyLCBWYWx1ZVR5cGUgZXhwZWN0ZWRWYWx1ZSwgaW50NjRfdAogICAg
IHJldHVybiAwOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5
QXRvbWljV2FpdDMyLCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNl
LCB1bnNpZ25lZCBvZmZzZXQsIHVpbnQzMl90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXRJbk5hbm9z
ZWNvbmRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNX
YWl0MzIsIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2Fs
bFVJbnQzMiBiYXNlLCBDQ2FsbFVJbnQzMiBvZmZzZXQsIENDYWxsVUludDMyIHZhbHVlLCBDQ2Fs
bEludDY0IHRpbWVvdXRJbk5hbm9zZWNvbmRzKSkKIHsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+
b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpLT52bSgpOwogICAgIHVpbnQ2NF90IG9mZnNl
dEluTWVtb3J5ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJhc2UpICsgb2Zmc2V0OwpAQCAtODY3
LDcgKzg2Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9t
aWNXYWl0MzIsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuCiAgICAgcmV0dXJuIHdhaXQ8dWlu
dDMyX3Q+KHZtLCBwb2ludGVyLCB2YWx1ZSwgdGltZW91dEluTmFub3NlY29uZHMpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDY0LCBpbnQz
Ml90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQs
IHVpbnQ2NF90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXRJbk5hbm9zZWNvbmRzKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0NjQsIENDYWxsSW50MzI6
OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBiYXNlLCBDQ2Fs
bFVJbnQzMiBvZmZzZXQsIENDYWxsVUludDY0IHZhbHVlLCBDQ2FsbEludDY0IHRpbWVvdXRJbk5h
bm9zZWNvbmRzKSkKIHsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJs
eUluc3RhbmNlPigpLT52bSgpOwogICAgIHVpbnQ2NF90IG9mZnNldEluTWVtb3J5ID0gc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KGJhc2UpICsgb2Zmc2V0OwpAQCAtODg1LDcgKzg4NSw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0NjQsIGludDMyX3Qs
IChJbnN0YW5jZSogaW5zdGFuCiAgICAgcmV0dXJuIHdhaXQ8dWludDY0X3Q+KHZtLCBwb2ludGVy
LCB2YWx1ZSwgdGltZW91dEluTmFub3NlY29uZHMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljTm90aWZ5LCBpbnQzMl90LCAoSW5zdGFuY2UqIGlu
c3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIGludDMyX3QgY291bnRWYWx1
ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljTm90aWZ5
LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50
MzIgYmFzZSwgQ0NhbGxVSW50MzIgb2Zmc2V0LCBDQ2FsbEludDMyIGNvdW50VmFsdWUpKQogewog
ICAgIHVpbnQ2NF90IG9mZnNldEluTWVtb3J5ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJhc2Up
ICsgb2Zmc2V0OwogICAgIGlmIChvZmZzZXRJbk1lbW9yeSAmICgweDQgLSAxKSkKQEAgLTkwMywx
OSArOTAzLDE5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9t
aWNOb3RpZnksIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuCiAgICAgcmV0dXJuIFBhcmtpbmdM
b3Q6OnVucGFya0NvdW50KHBvaW50ZXIsIGNvdW50KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlJbml0LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFu
Y2UsIHVuc2lnbmVkIGRhdGFTZWdtZW50SW5kZXgsIHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQz
Ml90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGxlbmd0aCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbU1lbW9yeUluaXQsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0
YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGRhdGFTZWdtZW50SW5kZXgsIENDYWxsVUludDMy
IGRzdEFkZHJlc3MsIENDYWxsVUludDMyIHNyY0FkZHJlc3MsIENDYWxsVUludDMyIGxlbmd0aCkp
CiB7CiAgICAgQVNTRVJUKGRhdGFTZWdtZW50SW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9k
dWxlSW5mb3JtYXRpb24oKS5kYXRhU2VnbWVudHNDb3VudCgpKTsKICAgICByZXR1cm4gaW5zdGFu
Y2UtPm1lbW9yeUluaXQoZHN0QWRkcmVzcywgc3JjQWRkcmVzcywgbGVuZ3RoLCBkYXRhU2VnbWVu
dEluZGV4KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRh
RHJvcCwgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRl
eCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbURhdGFEcm9wLCB2b2lk
LCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBkYXRhU2VnbWVudEluZGV4KSkKIHsK
ICAgICBBU1NFUlQoZGF0YVNlZ21lbnRJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJ
bmZvcm1hdGlvbigpLmRhdGFTZWdtZW50c0NvdW50KCkpOwogICAgIGluc3RhbmNlLT5kYXRhRHJv
cChkYXRhU2VnbWVudEluZGV4KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5jZSogaW5zdGFuY2UsIENhbGxGcmFtZSogY2Fs
bEZyYW1lLCB1bnNpZ25lZCBleGNlcHRpb25JbmRleCwgdWludDY0X3QqIGFyZ3VtZW50cykpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRocm93LCB2b2lkKiwgKEluc3Rh
bmNlKiBpbnN0YW5jZSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENDYWxsVUludDMyIGV4Y2VwdGlv
bkluZGV4LCB1aW50NjRfdCogYXJndW1lbnRzKSkKIHsKICAgICBpbnN0YW5jZS0+c3RvcmVUb3BD
YWxsRnJhbWUoY2FsbEZyYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21P
cGVyYXRpb25zLmgKaW5kZXggY2Y3YzBkNWZlZjRkZmQzNWM3Y2NhMzM0NzkzZWIyNDRlY2JhZGQx
NS4uMmYyMzQyODJlZDEyOTg3NDFjYjgyYmU3MDYyMjQ1Y2Q3MjE2ZTQ5NyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCkBAIC01MSw0NCArNTEsNDQgQEAg
dm9pZCBsb2FkVmFsdWVzSW50b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNrTWFw
JiwgdWludDY0X3QqIGJ1ZmZlcik7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3cs
IHZvaWQsIChQcm9iZTo6Q29udGV4dCYpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSosIHVpbnQzMl90IGZ1
bmN0aW9uSW5kZXgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRy
aWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGZ1bmN0aW9uSW5k
ZXgpKTsKICNlbmRpZgogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53
aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBDQ2FsbEludDY0
OjpJbnRlZ2VyVHlwZSwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBKU1Zh
bHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwg
aW50MzJfdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKENhbGxG
cmFtZSosIEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAo
Q2FsbEZyYW1lKiwgSW5zdGFuY2UqLCBpbnQ2NF90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUq
LCBJbnN0YW5jZSosIENDYWxsSW50NjQpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29u
c3QgU2lnbmF0dXJlKiwgSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkq
LCAoQ2FsbEZyYW1lKiwgV2FzbTo6SW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBJbmRleGlu
Z1R5cGUsIEpTVmFsdWUqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFs
bG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSosIFdhc206Okluc3RhbmNl
KiwgY29uc3QgU2lnbmF0dXJlKiwgQ0NhbGxJbnRlZ2VyPEluZGV4aW5nVHlwZT4sIEpTVmFsdWUq
KSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVdyaXRlQmFycmll
clNsb3dQYXRoLCB2b2lkLCAoSlNDZWxsKiwgVk0qKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblBvcGNvdW50MzIsIHVpbnQzMl90LCAoaW50MzJfdCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDY0LCB1aW50NjRfdCwgKGludDY0X3Qp
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR3Jvd01lbW9yeSwgaW50MzJf
dCwgKHZvaWQqLCBJbnN0YW5jZSosIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbU1lbW9yeUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiwgdWludDMyX3Qg
ZHN0QWRkcmVzcywgdWludDMyX3QgdGFyZ2V0VmFsdWUsIHVpbnQzMl90IGNvdW50KSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlDb3B5LCBzaXplX3QsIChJ
bnN0YW5jZSosIHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQz
Ml90IGNvdW50KSk7Ci0KLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2Fz
bVRhYmxlRWxlbWVudCwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIHVuc2lnbmVkLCBpbnQz
Ml90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFdhc21UYWJsZUVs
ZW1lbnQsIHNpemVfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQsIHVpbnQzMl90LCBFbmNvZGVkSlNW
YWx1ZSBlbmNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
UmVmRnVuYywgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIHVpbnQzMl90KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUluaXQsIHNpemVfdCwgKEluc3Rh
bmNlKiwgdW5zaWduZWQgZWxlbWVudEluZGV4LCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJf
dCBkc3RPZmZzZXQsIHVpbnQzMl90IHNyY09mZnNldCwgdWludDMyX3QgbGVuZ3RoKSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21FbGVtRHJvcCwgdm9pZCwgKEluc3Rh
bmNlKiwgdW5zaWduZWQgZWxlbWVudEluZGV4KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21UYWJsZUdyb3csIGludDMyX3QsIChJbnN0YW5jZSosIHVuc2lnbmVkLCBF
bmNvZGVkSlNWYWx1ZSBmaWxsLCB1aW50MzJfdCBkZWx0YSkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVGaWxsLCBzaXplX3QsIChJbnN0YW5jZSosIHVuc2ln
bmVkLCB1aW50MzJfdCBvZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIHVpbnQzMl90IGNvdW50
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIHNp
emVfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQgZHN0VGFibGVJbmRleCwgdW5zaWduZWQgc3JjVGFi
bGVJbmRleCwgaW50MzJfdCBkc3RPZmZzZXQsIGludDMyX3Qgc3JjT2Zmc2V0LCBpbnQzMl90IGxl
bmd0aCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVT
aXplLCBpbnQzMl90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCkpOwotCi1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQzMiwgaW50MzJfdCwgKEluc3RhbmNl
KiBpbnN0YW5jZSwgdW5zaWduZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCB1aW50MzJfdCB2YWx1
ZSwgaW50NjRfdCB0aW1lb3V0KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk1lbW9yeUF0b21pY1dhaXQ2NCwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWdu
ZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCB1aW50NjRfdCB2YWx1ZSwgaW50NjRfdCB0aW1lb3V0
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY05vdGlm
eSwgaW50MzJfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQsIHVuc2lnbmVkLCBpbnQzMl90KSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlJbml0LCBzaXplX3Qs
IChJbnN0YW5jZSosIHVuc2lnbmVkIGRhdGFTZWdtZW50SW5kZXgsIHVpbnQzMl90IGRzdEFkZHJl
c3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGxlbmd0aCkpOwotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtRGF0YURyb3AsIHZvaWQsIChJbnN0YW5jZSosIHVu
c2lnbmVkIGRhdGFTZWdtZW50SW5kZXgpKTsKLQotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqLCBDYWxsRnJhbWUqLCB1bnNpZ25l
ZCBleGNlcHRpb25JbmRleCwgdWludDY0X3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblBvcGNvdW50MzIsIENDYWxsVUludDMyOjpJbnRlZ2VyVHlwZSwgKENDYWxsSW50
MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQ2NCwgQ0Nh
bGxVSW50NjQ6OkludGVnZXJUeXBlLCAoQ0NhbGxJbnQ2NCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Hcm93TWVtb3J5LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKHZv
aWQqLCBJbnN0YW5jZSosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbU1lbW9yeUZpbGwsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5j
ZSosIENDYWxsVUludDMyIGRzdEFkZHJlc3MsIENDYWxsVUludDMyIHRhcmdldFZhbHVlLCBDQ2Fs
bFVJbnQzMiBjb3VudCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
TWVtb3J5Q29weSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50
MzIgZHN0QWRkcmVzcywgQ0NhbGxVSW50MzIgc3JjQWRkcmVzcywgQ0NhbGxVSW50MzIgY291bnQp
KTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVt
ZW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVu
dCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIsIENDYWxs
VUludDMyLCBFbmNvZGVkSlNWYWx1ZSBlbmNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtUmVmRnVuYywgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIEND
YWxsVUludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJs
ZUluaXQsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGVs
ZW1lbnRJbmRleCwgQ0NhbGxVSW50MzIgdGFibGVJbmRleCwgQ0NhbGxVSW50MzIgZHN0T2Zmc2V0
LCBDQ2FsbFVJbnQzMiBzcmNPZmZzZXQsIENDYWxsVUludDMyIGxlbmd0aCkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtRWxlbURyb3AsIHZvaWQsIChJbnN0YW5jZSos
IENDYWxsVUludDMyIGVsZW1lbnRJbmRleCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtVGFibGVHcm93LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNl
KiwgQ0NhbGxVSW50MzIsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIENDYWxsVUludDMyIGRlbHRhKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIENDYWxs
U2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyLCBDQ2FsbFVJbnQzMiBv
ZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIENDYWxsVUludDMyIGNvdW50KSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIENDYWxsU2l6ZTo6SW50
ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGRzdFRhYmxlSW5kZXgsIENDYWxsVUlu
dDMyIHNyY1RhYmxlSW5kZXgsIENDYWxsSW50MzIgZHN0T2Zmc2V0LCBDQ2FsbEludDMyIHNyY09m
ZnNldCwgQ0NhbGxJbnQzMiBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0V2FzbVRhYmxlU2l6ZSwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJbnN0YW5j
ZSosIENDYWxsVUludDMyKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWVtb3J5QXRvbWljV2FpdDMyLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBp
bnN0YW5jZSwgQ0NhbGxVSW50MzIgYmFzZSwgQ0NhbGxVSW50MzIgb2Zmc2V0LCBDQ2FsbFVJbnQz
MiB2YWx1ZSwgQ0NhbGxJbnQ2NCB0aW1lb3V0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQ2NCwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJ
bnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGJhc2UsIENDYWxsVUludDMyIG9mZnNldCwg
Q0NhbGxVSW50NjQgdmFsdWUsIENDYWxsSW50NjQgdGltZW91dCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNOb3RpZnksIENDYWxsSW50MzI6OkludGVn
ZXJUeXBlLCAoSW5zdGFuY2UqLCBDQ2FsbFVJbnQzMiwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUluaXQsIEND
YWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGRhdGFTZWdtZW50
SW5kZXgsIENDYWxsVUludDMyIGRzdEFkZHJlc3MsIENDYWxsVUludDMyIHNyY0FkZHJlc3MsIEND
YWxsVUludDMyIGxlbmd0aCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtRGF0YURyb3AsIHZvaWQsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGRhdGFTZWdtZW50SW5k
ZXgpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZv
aWQqLCAoSW5zdGFuY2UqLCBDYWxsRnJhbWUqLCBDQ2FsbFVJbnQzMiBleGNlcHRpb25JbmRleCwg
dWludDY0X3QqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRo
cm93LCB2b2lkKiwgKEluc3RhbmNlKiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUgdGhyb3du
VmFsdWUpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVG9KU0V4
Y2VwdGlvbiwgdm9pZCosIChDYWxsRnJhbWUqLCBXYXNtOjpFeGNlcHRpb25UeXBlLCBJbnN0YW5j
ZSopKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451898</attachid>
            <date>2022-02-14 06:38:29 -0800</date>
            <delta_ts>2022-02-14 07:27:21 -0800</delta_ts>
            <desc>RFC patch</desc>
            <filename>bug-236367-20220214153827.patch</filename>
            <type>text/plain</type>
            <size>272277</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YjhiNGQyZGJkYzZiOWZlOWJhZTE1NjY0ODUwMGRkNDYyZjg4NDMyLi41ZjkxZGNkNDU0NjM5ZDA4
MDQyMzEyOGZiZjQwZDFiYzc1ODE4MjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDggQEAKKzIwMjItMDItMTQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtKU0NdIEFjY29tbW9kYXRlIHRoZSBSSVNDVjY0IEMgY2FsbGluZyBj
b252ZW50aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzYzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6Cisg
ICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAoSlNDOjp0ZXN0U2ltcGxlKToK
KyAgICAgICAgKEpTQzo6dGVzdEdldEVmZmVjdGl2ZUFkZHJlc3MpOgorICAgICAgICAoSlNDOjp0
ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5j
aFRlc3Q4KToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaFRlc3QxNik6CisgICAgICAgIChKU0M6
OnRlc3RCcmFuY2hUZXN0Qml0MzJSZWdSZWcpOgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoVGVz
dEJpdDMyUmVnSW1tKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaFRlc3RCaXQzMkFkZHJJbW0p
OgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoVGVzdEJpdDY0UmVnUmVnKToKKyAgICAgICAgKEpT
Qzo6dGVzdEJyYW5jaFRlc3RCaXQ2NFJlZ0ltbSk6CisgICAgICAgIChKU0M6OnRlc3RCcmFuY2hU
ZXN0Qml0NjRBZGRySW1tKToKKyAgICAgICAgKEpTQzo6dGVzdENsZWFyQml0NjQpOgorICAgICAg
ICAoSlNDOjp0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFzayk6CisgICAgICAgIChKU0M6OnRlc3RDbGVh
ckJpdHM2NFdpdGhNYXNrVGVybmFyeSk6CisgICAgICAgIChKU0M6OnRlc3RDb3VudFRyYWlsaW5n
WmVyb3M2NEltcGwpOgorICAgICAgICAoSlNDOjp0ZXN0U2hpZnRBbmRBZGQpOgorICAgICAgICAo
SlNDOjp0ZXN0U3RvcmU2NEltbTY0QWRkcmVzc1BvaW50ZXIpOgorICAgICAgICAoSlNDOjp0ZXN0
Q29tcGFyZURvdWJsZSk6CisgICAgICAgIChKU0M6OnRlc3RDb21wYXJlRG91YmxlU2FtZUFyZyk6
CisgICAgICAgIChKU0M6OnRlc3RNdWwzMldpdGhJbW1lZGlhdGVzKToKKyAgICAgICAgKEpTQzo6
dGVzdE11bHRpcGx5U2lnbkV4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5WmVy
b0V4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5QWRkU2lnbkV4dGVuZDMyKToK
KyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5QWRkWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpT
Qzo6dGVzdFN1YjMyQXJncyk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkltbSk6CisgICAgICAg
IChKU0M6OnRlc3RTdWI2NEltbTMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YjY0QXJnSW1tMzIp
OgorICAgICAgICAoSlNDOjp0ZXN0U3ViNjRJbW02NCk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2
NEFyZ0ltbTY0KToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5U3ViU2lnbkV4dGVuZDMyKToK
KyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5U3ViWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpT
Qzo6dGVzdE11bHRpcGx5TmVnU2lnbkV4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRp
cGx5TmVnWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEV4dHJhY3RVbnNpZ25lZEJp
dGZpZWxkMzIpOgorICAgICAgICAoSlNDOjp0ZXN0RXh0cmFjdFVuc2lnbmVkQml0ZmllbGQ2NCk6
CisgICAgICAgIChKU0M6OnRlc3RJbnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5aZXJvMzIpOgorICAg
ICAgICAoSlNDOjp0ZXN0SW5zZXJ0VW5zaWduZWRCaXRmaWVsZEluWmVybzY0KToKKyAgICAgICAg
KEpTQzo6dGVzdEluc2VydEJpdEZpZWxkMzIpOgorICAgICAgICAoSlNDOjp0ZXN0SW5zZXJ0Qml0
RmllbGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0Vu
ZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEV4dHJhY3RJbnNlcnRCaXRmaWVsZEF0TG93RW5kNjQp
OgorICAgICAgICAoSlNDOjp0ZXN0Q2xlYXJCaXRGaWVsZDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dENsZWFyQml0RmllbGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RDbGVhckJpdHNXaXRoTWFzazMy
KToKKyAgICAgICAgKEpTQzo6dGVzdENsZWFyQml0c1dpdGhNYXNrNjQpOgorICAgICAgICAoSlND
Ojp0ZXN0T3JOb3QzMik6CisgICAgICAgIChKU0M6OnRlc3RPck5vdDY0KToKKyAgICAgICAgKEpT
Qzo6dGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIpOgorICAgICAgICAoSlNDOjp0ZXN0
SW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm82NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0
U2lnbmVkQml0ZmllbGQzMik6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0U2lnbmVkQml0Zmll
bGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0UmVnaXN0ZXIzMik6CisgICAgICAgIChK
U0M6OnRlc3RFeHRyYWN0UmVnaXN0ZXI2NCk6CisgICAgICAgIChKU0M6OnRlc3RBZGRXaXRoTGVm
dFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0QWRkV2l0aFJpZ2h0U2hpZnQzMik6CisgICAg
ICAgIChKU0M6OnRlc3RBZGRXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlND
Ojp0ZXN0QWRkV2l0aExlZnRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdEFkZFdpdGhSaWdo
dFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0QWRkV2l0aFVuc2lnbmVkUmlnaHRTaGlmdDY0
KToKKyAgICAgICAgKEpTQzo6dGVzdFN1YldpdGhMZWZ0U2hpZnQzMik6CisgICAgICAgIChKU0M6
OnRlc3RTdWJXaXRoUmlnaHRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YldpdGhVbnNp
Z25lZFJpZ2h0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RTdWJXaXRoTGVmdFNoaWZ0NjQp
OgorICAgICAgICAoSlNDOjp0ZXN0U3ViV2l0aFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6
OnRlc3RTdWJXaXRoVW5zaWduZWRSaWdodFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0WG9y
Tm90MzIpOgorICAgICAgICAoSlNDOjp0ZXN0WG9yTm90NjQpOgorICAgICAgICAoSlNDOjp0ZXN0
WG9yTm90V2l0aExlZnRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvck5vdFdpdGhSaWdo
dFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0WG9yTm90V2l0aFVuc2lnbmVkUmlnaHRTaGlm
dDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvck5vdFdpdGhMZWZ0U2hpZnQ2NCk6CisgICAgICAg
IChKU0M6OnRlc3RYb3JOb3RXaXRoUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdFhv
ck5vdFdpdGhVbnNpZ25lZFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RTdG9yZVBy
ZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN0b3JlUHJlUG9zdEluZGV4NjQpOgor
ICAgICAgICAoSlNDOjp0ZXN0TG9hZFByZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dExvYWRQcmVQb3N0SW5kZXg2NCk6CisgICAgICAgIChKU0M6OnRlc3RBbmRMZWZ0U2hpZnQzMik6
CisgICAgICAgIChKU0M6OnRlc3RBbmRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0
QW5kVW5zaWduZWRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0QW5kTGVmdFNoaWZ0
NjQpOgorICAgICAgICAoSlNDOjp0ZXN0QW5kUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6
dGVzdEFuZFVuc2lnbmVkUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdFhvckxlZnRT
aGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvclJpZ2h0U2hpZnQzMik6CisgICAgICAgIChK
U0M6OnRlc3RYb3JVbnNpZ25lZFJpZ2h0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RYb3JM
ZWZ0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RYb3JSaWdodFNoaWZ0NjQpOgorICAgICAg
ICAoSlNDOjp0ZXN0WG9yVW5zaWduZWRSaWdodFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0
T3JMZWZ0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RPclJpZ2h0U2hpZnQzMik6CisgICAg
ICAgIChKU0M6OnRlc3RPclVuc2lnbmVkUmlnaHRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dE9yTGVmdFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0T3JSaWdodFNoaWZ0NjQpOgorICAg
ICAgICAoSlNDOjp0ZXN0T3JVbnNpZ25lZFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRl
c3RDb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjp0ZXN0TW92ZUNvbmRpdGlvbmFsbHlGbG9h
dGluZ1BvaW50KToKKyAgICAgICAgKEpTQzo6dGVzdE1vdmVDb25kaXRpb25hbGx5RmxvYXRpbmdQ
b2ludFNhbWVBcmcpOgorICAgICAgICAoSlNDOjp0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDgpOgor
ICAgICAgICAoSlNDOjp0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDE2KToKKyAgICAgICAgKEpTQzo6
dGVzdFN1YjMyQXJnSW1tKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlUHJlc2VydmVzR1BSUyk6
CisgICAgICAgIChKU0M6OnRlc3RCeXRlU3dhcCk6CisgICAgICAgIChKU0M6OnRlc3RMb2FkQmFz
ZUluZGV4KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNhY2hlZFB1dEJ5SWQpOgorICAg
ICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpT
Q19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5oOgorICAgICAgICAqIGZ0bC9GVExPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAoSlNDOjpGVEw6OkpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMpOgorICAgICAgICAqIGZ0bC9GVExPcGVy
YXRpb25zLmg6CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpD
Q2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzSW1wbCk6CisgICAgICAgIChKU0M6OkNDYWxsSGVs
cGVyczo6c3RkOjppc19pbnRlZ3JhbDxDVVJSRU5UX0FSR1VNRU5UX1RZUEU+Ojp2YWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgICogaml0L0NDYWxsVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6
OlJJU0NWNjRDQ2FsbEludGVnZXI6OlJJU0NWNjRDQ2FsbEludGVnZXIpOgorICAgICAgICAoSlND
OjpSSVNDVjY0Q0NhbGxJbnRlZ2VyOjpvcGVyYXRvciBUIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
UklTQ1Y2NENDYWxsSW50ZWdlcjo6b3BlcmF0b3IgRW51bVR5cGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpDQ2FsbEludGVnZXI6OkNDYWxsSW50ZWdlcik6CisgICAgICAgIChKU0M6OkNDYWxsSW50
ZWdlcjo6b3BlcmF0b3IgVCBjb25zdCk6CisgICAgICAgIChKU0M6OkNDYWxsSW50ZWdlcjo6b3Bl
cmF0b3IgRW51bVR5cGUgY29uc3QpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBqaXQv
SklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHdhc20vV2FzbU9wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAqIHdh
c20vV2FzbU9wZXJhdGlvbnMuaDoKKwogMjAyMi0wMi0xMyAgTGF1cm8gTW91cmEgIDxsbW91cmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBub24tdW5pZmllZCBidWlsZCBmaXhl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDI3NzdiZTk5YWQxYjdjMDlk
MmI2Yzk1MDIyN2RhYzNlMTczYmNiZGMuLmNhMDExYjE4ODUwZDlhYzVmNDFlOGU2ZGQ0MGJmZDRk
Y2NiNGEyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTg0OCw2ICs4
NDgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IGppdC9CYXNlbGluZUpJVENvZGUuaAogICAgIGppdC9DYWxsRnJhbWVTaHVmZmxlRGF0YS5oCiAg
ICAgaml0L0NDYWxsSGVscGVycy5oCisgICAgaml0L0NDYWxsVHlwZXMuaAogICAgIGppdC9FeGVj
dXRhYmxlQWxsb2NhdG9yLmgKICAgICBqaXQvRXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oCiAgICAg
aml0L0ZQUkluZm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMDQ4MDkxOGNi
MDQ3ZDQ0OTgzZWRkNWU2ZDdhMDFiZTUzZWVlZjhjLi40Njg0MWZhNzFmNWQxZDUzOWRhYTVkYzkx
MTI5MmM0NjYwZDJlOTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc5OSw2
ICsxNzk5LDcgQEAKIAkJQ0QxRjlCM0MyNzBDMEMxQTAwNjE3RUI2IC8qIFR5cGVkQXJyYXlBZGFw
dGVyc0ZvcndhcmREZWNsYXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMUY5QjNCMjcwQzBDMUEwMDYxN0VCNiAvKiBUeXBlZEFycmF5QWRh
cHRlcnNGb3J3YXJkRGVjbGFyYXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxRjlCNDkyNzBDRkRDQzAwNjE3RUI2IC8qIEhhbmRsZUZv
cndhcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MUY5QjQ4MjcwQ0ZEQ0MwMDYxN0VCNiAvKiBIYW5kbGVGb3J3YXJkLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxRjlCNEIyNzBDRkUwRjAwNjE3
RUI2IC8qIFN0cm9uZ0ZvcndhcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMUY5QjRBMjcwQ0ZFMEYwMDYxN0VCNiAvKiBTdHJvbmdGb3J3YXJkLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QzNTAx
RTQyN0JBOUM0RjAwQzlBOUM1IC8qIENDYWxsVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzUwMUUzMjdCQTlDNEUwMEM5QTlDNSAvKiBDQ2Fs
bFR5cGVzLmggKi87IH07CiAJCUNFMjBCRDA1MjM3RDNFMjMwMDQ2RTUyMCAvKiBGaWxlQmFzZWRG
dXp6ZXJBZ2VudEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENFMjBCRDAzMjM3RDNBRDQwMDQ2RTUyMCAvKiBGaWxlQmFzZWRGdXp6ZXJBZ2VudEJh
c2UuaCAqLzsgfTsKIAkJQ0UyMEJEMDcyMzdEM0U0ODAwNDZFNTIwIC8qIFByZWRpY3Rpb25GaWxl
Q3JlYXRpbmdGdXp6ZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0UyMEJEMDEyMzdEM0FENDAwNDZFNTIwIC8qIFByZWRpY3Rpb25GaWxlQ3Jl
YXRpbmdGdXp6ZXJBZ2VudC5oICovOyB9OwogCQlDRUFFN0Q3Qjg4OUI0NzdCQTkzQUJBNkMgLyog
U2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODg1MjE1MUE5QzM4NDIzODlCMzIxNUI3IC8qIFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTE2NSw2ICs1MTY2
LDcgQEAKIAkJQ0QxRjlCM0IyNzBDMEMxQTAwNjE3RUI2IC8qIFR5cGVkQXJyYXlBZGFwdGVyc0Zv
cndhcmREZWNsYXJhdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwZWRBcnJheUFkYXB0ZXJzRm9y
d2FyZERlY2xhcmF0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDFGOUI0
ODI3MENGRENDMDA2MTdFQjYgLyogSGFuZGxlRm9yd2FyZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIYW5k
bGVGb3J3YXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMUY5QjRBMjcwQ0ZF
MEYwMDYxN0VCNiAvKiBTdHJvbmdGb3J3YXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cm9uZ0Zvcndh
cmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNTAxRTMyN0JBOUM0RTAwQzlB
OUM1IC8qIENDYWxsVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0Nh
bGxUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTIwQkQwMTIzN0QzQUQ0
MDA0NkU1MjAgLyogUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFByZWRpY3Rpb25GaWxlQ3JlYXRpbmdGdXp6ZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRTIwQkQwMjIzN0QzQUQ0MDA0NkU1MjAgLyogUHJlZGljdGlvbkZp
bGVDcmVhdGluZ0Z1enplckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZWRpY3Rpb25G
aWxlQ3JlYXRpbmdGdXp6ZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFMjBCRDAzMjM3RDNBRDQwMDQ2RTUyMCAvKiBGaWxlQmFzZWRGdXp6ZXJBZ2VudEJhc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRmlsZUJhc2VkRnV6emVyQWdlbnRCYXNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01OTMyLDcgKzU5MzQsNiBAQAogCQkJCTg2MDNDRUYwMTRDNzUzRUYw
MEFFNTlFMyAvKiB0b29scyAqLywKIAkJCQk3Qjk4RDEzMzFCNjBDRDFFMDAyM0IxQTQgLyogd2Fz
bSAqLywKIAkJCQk4NkVBQzQ4QzBGOTNFOEI5MDA4RUM5NDggLyogeWFyciAqLywKLQkJCQk1MzM2
OTlBRjI3QTMwNkY2MDBDOTU2MUQgLyogUmVjb3ZlcmVkIFJlZmVyZW5jZXMgKi8sCiAJCQkpOwog
CQkJbmFtZSA9IEphdmFTY3JpcHRDb3JlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTY1MDEsNiArNjUwMiw3IEBACiAJCQkJNjJENzU1RDMxQjg0RkIzOTAwMTgwMUZBIC8qIENhbGxG
cmFtZVNodWZmbGVyNjQuY3BwICovLAogCQkJCURDMTdFODE2MUM5QzgwMkIwMDhBNkFCMyAvKiBD
Q2FsbEhlbHBlcnMuY3BwICovLAogCQkJCTBGMjRFNTNEMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2Fs
bEhlbHBlcnMuaCAqLywKKwkJCQlDRDM1MDFFMzI3QkE5QzRFMDBDOUE5QzUgLyogQ0NhbGxUeXBl
cy5oICovLAogCQkJCTBGRjA1NEY3MUFDMzVCNDQwMEU1QkU1NyAvKiBFeGVjdXRhYmxlQWxsb2Nh
dGlvbkZ1enouY3BwICovLAogCQkJCTBGRjA1NEY4MUFDMzVCNDQwMEU1QkU1NyAvKiBFeGVjdXRh
YmxlQWxsb2NhdGlvbkZ1enouaCAqLywKIAkJCQlBN0I0OERCNjBFRTc0Q0ZDMDBEQ0JEQjYgLyog
RXhlY3V0YWJsZUFsbG9jYXRvci5jcHAgKi8sCkBAIC03MzI3LDkgKzczMjksNiBAQAogCQk3Qjk4
RDEzMzFCNjBDRDFFMDAyM0IxQTQgLyogd2FzbSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCi0JCQkJMzdBQUMwOTEyNzlGMTI0MjAwRDY0ODQyIC8qIFdhc21CcmFu
Y2hIaW50cy5oICovLAotCQkJCTM3QUFDMDkwMjc5RjEyNDEwMEQ2NDg0MiAvKiBXYXNtQnJhbmNo
SGludHNTZWN0aW9uUGFyc2VyLmNwcCAqLywKLQkJCQkzN0FBQzA5MjI3OUYxMjQyMDBENjQ4NDIg
LyogV2FzbUJyYW5jaEhpbnRzU2VjdGlvblBhcnNlci5oICovLAogCQkJCUFEMkZDQjhBMURCNTg0
MDAwMEIzRTczNiAvKiBqcyAqLywKIAkJCQk1Mjg0N0FEOTIxRkZCODYzMDA2MUE5REIgLyogV2Fz
bUFpcklSR2VuZXJhdG9yLmNwcCAqLywKIAkJCQk1Mjg0N0FEQTIxRkZCODYzMDA2MUE5REIgLyog
V2FzbUFpcklSR2VuZXJhdG9yLmggKi8sCkBAIC03MzM5LDYgKzczMzgsOSBAQAogCQkJCTUzQ0E3
MzA4MUVBNTMzRDgwMDc2MDQ5RCAvKiBXYXNtQkJRUGxhbi5oICovLAogCQkJCUFENEIxREY3MURG
MjQ0RDcwMDcxQUUzMiAvKiBXYXNtQmluZGluZy5jcHAgKi8sCiAJCQkJQUQ0QjFERjgxREYyNDRE
NzAwNzFBRTMyIC8qIFdhc21CaW5kaW5nLmggKi8sCisJCQkJMzdBQUMwOTEyNzlGMTI0MjAwRDY0
ODQyIC8qIFdhc21CcmFuY2hIaW50cy5oICovLAorCQkJCTM3QUFDMDkwMjc5RjEyNDEwMEQ2NDg0
MiAvKiBXYXNtQnJhbmNoSGludHNTZWN0aW9uUGFyc2VyLmNwcCAqLywKKwkJCQkzN0FBQzA5MjI3
OUYxMjQyMDBENjQ4NDIgLyogV2FzbUJyYW5jaEhpbnRzU2VjdGlvblBhcnNlci5oICovLAogCQkJ
CTUyNUMwREQ3MUU5MzU4NDcwMDIxODRDRCAvKiBXYXNtQ2FsbGVlLmNwcCAqLywKIAkJCQk1MjVD
MEREODFFOTM1ODQ3MDAyMTg0Q0QgLyogV2FzbUNhbGxlZS5oICovLAogCQkJCTUyNkFDNEI0MUU5
NzdDNUQwMDM1MDBFMSAvKiBXYXNtQ2FsbGVlR3JvdXAuY3BwICovLApAQCAtOTkwNCw2ICs5OTA2
LDcgQEAKIAkJCQkwRjNCN0UyQjE5QTExQjgwMDBEOUJDNTYgLyogQ2FsbFZhcmlhbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZFODBDMTk3MUQ3NzVDREQwMDg1MTBDMCAvKiBDYXRjaFNjb3BlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0MjE3RUE5RjU5MDBBQkIyMTcgLyogQ0NhbGxIZWxw
ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDM1MDFFNDI3QkE5QzRGMDBDOUE5QzUgLyogQ0Nh
bGxUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NjMwM0ExRDQxOTJDODAwNTYwOUQ5IC8q
IENlbGxBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjA3MEE0NzFENTQzQThCMDA2
RTcyMzIgLyogQ2VsbENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNzBBNDgxRDU0
M0E5MDAwNkU3MjMyIC8qIENlbGxDb250YWluZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAg
LTEwOTc5LDcgKzEwOTgyLDYgQEAKIAkJCQkwRkUwNTAyOTFBQTkwOTU2MDBEMzNCMzMgLyogU2Nv
cGVkQXJndW1lbnRzVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDJCMUFBOTA5NTYw
MEQzM0IzMyAvKiBTY29wZU9mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NTIxN0VF
Mjc0OTAwQUJCMjE3IC8qIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMzdBQUMwOTQyNzlGMUMwNTAwRDY0ODQyIC8qIFdhc21CcmFuY2hIaW50cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzMxMTFCOEIyMzk3MjU2NTAwQUEzNENFIC8qIFNjcmliYmxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNUZEMDA2ODE4OUFGRTlDMDA2MzMyMzEgLyogU2NyaXB0QXJndW1l
bnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUZEMDA2RTE4OUIwMEFBMDA2MzMyMzEgLyogU2Ny
aXB0Q2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKQEAgLTExMTA5LDcgKzExMTExLDYgQEAKIAkJ
CQlGRTM0MjIxMjFENkI4MUMzMDAzMkJFODggLyogVGhyb3dTY29wZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY1NzJENEYxNjg3OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNzM4NjU1NjExODY5N0I0MDA1NDAyNzkgLyogVGh1bmtHZW5lcmF0b3Jz
LmggaW4gSGVhZGVycyAqLywKLQkJCQkzN0FBQzA5MzI3OUYxQkZDMDBENjQ4NDIgLyogV2FzbUJy
YW5jaEhpbnRzU2VjdGlvblBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxNDQ4Q0QxM0Ex
NzgzNzAwRjVCQTFBIC8qIFRpbnlCbG9vbUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1
NTk4OTgxN0M4NkM1ODAwQTFFNTQzIC8qIFRvTmF0aXZlRnJvbVZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjJENERFOTE5ODMyREFDMDA3RDRCMTkgLyogVG9UaGlzU3RhdHVzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTExMTY2LDYgKzExMTY3LDggQEAKIAkJCQk1M0Y0MEU5MzFENUE0QUIzMDA5
OUExQjYgLyogV2FzbUIzSVJHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzQ0E3MzBB
MUVBNTMzRDgwMDc2MDQ5RCAvKiBXYXNtQkJRUGxhbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ0
QjFERkExREYyNDRFMjAwNzFBRTMyIC8qIFdhc21CaW5kaW5nLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkzN0FBQzA5NDI3OUYxQzA1MDBENjQ4NDIgLyogV2FzbUJyYW5jaEhpbnRzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkzN0FBQzA5MzI3OUYxQkZDMDBENjQ4NDIgLyogV2FzbUJyYW5jaEhpbnRzU2Vj
dGlvblBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTI1QzBEREExRTkzNTg0NzAwMjE4NENE
IC8qIFdhc21DYWxsZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyNkFDNEI3MUU5NzdDNUQwMDM1
MDBFMSAvKiBXYXNtQ2FsbGVlR3JvdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzRkI4NTNBMjJG
MzY2N0IwMDhGOTBFRCAvKiBXYXNtQ2FsbGVlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAppbmRleCAyMDRmZjQz
MDQxNTE5MjNiYjJkOGY3ZmEzNzAxZDY1M2VmNThiMmM0Li4yMjhlYjI3NDc3M2RjYjBkOTAzMTFh
MDNlYjdmOTNjYmNhY2NiMTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L3Rlc3RtYXNtLmNwcApAQCAtMTM3LDYgKzEzNywxMiBAQCBzdGF0aWMgdm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiBvdXQsIHZvaWQqIHZhbHVlKQogICAgIG91dC5wcmludGYoIiVwIiwg
dmFsdWUpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiBvdXQsIGNvbnN0IEpTQzo6Q0NhbGxJbnRlZ2VyPFQ+JiB2YWx1ZSkKK3sKKyAg
ICBwcmludEludGVybmFsKG91dCwgc3RhdGljX2Nhc3Q8VD4odmFsdWUpKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV1RGCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMjY4LDcgKzI3NCw3IEBAIHZvaWQg
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoQ0NhbGxIZWxwZXJzJiBqaXQpCiAKIHZvaWQgdGVzdFNpbXBs
ZSgpCiB7Ci0gICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxpbnQ+KFtdIChDQ2FsbEhlbHBlcnMm
IGppdCkgeworICAgIENIRUNLX0VRKGNvbXBpbGVBbmRSdW48Q0NhbGxJbnQzMj4oW10gKENDYWxs
SGVscGVycyYgaml0KSB7CiAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CiAgICAg
ICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDQyKSwgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIpOwogICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwpAQCAtMjc4
LDcgKzI4NCw3IEBAIHZvaWQgdGVzdFNpbXBsZSgpCiAKIHZvaWQgdGVzdEdldEVmZmVjdGl2ZUFk
ZHJlc3Moc2l6ZV90IHBvaW50ZXIsIHB0cmRpZmZfdCBsZW5ndGgsIGludDMyX3Qgb2Zmc2V0LCBD
Q2FsbEhlbHBlcnM6OlNjYWxlIHNjYWxlKQogewotICAgIENIRUNLX0VRKGNvbXBpbGVBbmRSdW48
c2l6ZV90PihbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgQ0hFQ0tfRVEoY29tcGlsZUFu
ZFJ1bjxDQ2FsbFNpemU+KFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKICAgICAgICAgZW1pdEZ1
bmN0aW9uUHJvbG9ndWUoaml0KTsKICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4ocG9pbnRlcikpLCBHUFJJbmZvOjpyZWdUMCk7
CiAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nh
c3Q8dm9pZCo+KGxlbmd0aCkpLCBHUFJJbmZvOjpyZWdUMSk7CkBAIC0yOTgsNyArMzA0LDcgQEAg
dm9pZCB0ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKGRvdWJsZSB2YWwsIGludDMyX3Qg
ZXhwZWN0ZWQpCiAjZWxzZQogICAgIGNvbnN0IGJvb2wgaXNCaWdFbmRpYW4gPSBmYWxzZTsKICNl
bmRpZgotICAgIENIRUNLX0VRKGNvbXBpbGVBbmRSdW48aW50PihbJl0gKENDYWxsSGVscGVycyYg
aml0KSB7CisgICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxDQ2FsbEludDMyPihbJl0gKENDYWxs
SGVscGVycyYgaml0KSB7CiAgICAgICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CiAgICAg
ICAgIGppdC5zdWJQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc3RhY2tBbGlnbm1lbnRC
eXRlcygpKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAg
aWYgKGlzQmlnRW5kaWFuKSB7CkBAIC0zNjYsOCArMzcyLDggQEAgdm9pZCB0ZXN0QnJhbmNoVGVz
dDgoKQogICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWlu
dDhfdD4odmFsdWUpCiAgICAgICAgICAgICB9OwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PGludD4odGVzdDEsIGFycmF5KSwgcmVzdWx0KTsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9r
ZTxpbnQ+KHRlc3QyLCBhcnJheSwgMSksIHJlc3VsdCk7CisgICAgICAgICAgICBDSEVDS19FUShp
bnZva2U8Q0NhbGxJbnQzMj4odGVzdDEsIGFycmF5KSwgcmVzdWx0KTsKKyAgICAgICAgICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0MiwgYXJyYXksIDEpLCByZXN1bHQpOwogICAg
ICAgICB9CiAgICAgfQogfQpAQCAtNDEyLDggKzQxOCw4IEBAIHZvaWQgdGVzdEJyYW5jaFRlc3Qx
NigpCiAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50
MTZfdD4odmFsdWUpCiAgICAgICAgICAgICB9OwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PGludD4odGVzdDEsIGFycmF5KSwgcmVzdWx0KTsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9r
ZTxpbnQ+KHRlc3QyLCBhcnJheSwgMSksIHJlc3VsdCk7CisgICAgICAgICAgICBDSEVDS19FUShp
bnZva2U8Q0NhbGxJbnQzMj4odGVzdDEsIGFycmF5KSwgcmVzdWx0KTsKKyAgICAgICAgICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0MiwgYXJyYXksIDEpLCByZXN1bHQpOwogICAg
ICAgICB9CiAgICAgfQogfQpAQCAtNDM3LDcgKzQ0Myw3IEBAIHZvaWQgdGVzdEJyYW5jaFRlc3RC
aXQzMlJlZ1JlZygpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2YWx1ZTIgOiBp
bnQzMk9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50Pih0ZXN0LCB2
YWx1ZSwgdmFsdWUyKSwgKHZhbHVlPj4odmFsdWUyJTMyKSkmMSk7CisgICAgICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxJbnQzMj4odGVzdCwgdmFsdWUsIHZhbHVlMiksICh2YWx1ZT4+KHZh
bHVlMiUzMikpJjEpOwogICAgIH0KIH0KIApAQCAtNDU5LDcgKzQ2NSw3IEBAIHZvaWQgdGVzdEJy
YW5jaFRlc3RCaXQzMlJlZ0ltbSgpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2
YWx1ZTIgOiBpbnQzMk9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50
Pih0ZXN0LCB2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUlMzIpKSYxKTsKKyAgICAgICAgICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCB2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUl
MzIpKSYxKTsKICAgICB9CiB9CiAKQEAgLTQ4MSw3ICs0ODcsNyBAQCB2b2lkIHRlc3RCcmFuY2hU
ZXN0Qml0MzJBZGRySW1tKCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVl
MiA6IGludDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KHRl
c3QsICZ2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUlMzIpKSYxKTsKKyAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCAmdmFsdWUyKSwgKHZhbHVlMj4+KHZhbHVlJTMy
KSkmMSk7CiAgICAgfQogfQogCkBAIC01MDMsNyArNTA5LDcgQEAgdm9pZCB0ZXN0QnJhbmNoVGVz
dEJpdDY0UmVnUmVnKCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6
IGludDY0T3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxsb25nIGludD4o
dGVzdCwgdmFsdWUsIHZhbHVlMiksICh2YWx1ZT4+KHZhbHVlMiU2NCkpJjEpOworICAgICAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIHZhbHVlLCB2YWx1ZTIpLCAodmFs
dWU+Pih2YWx1ZTIlNjQpKSYxKTsKICAgICB9CiB9CiAKQEAgLTUyNSw3ICs1MzEsNyBAQCB2b2lk
IHRlc3RCcmFuY2hUZXN0Qml0NjRSZWdJbW0oKQogICAgICAgICB9KTsKIAogICAgICAgICBmb3Ig
KGF1dG8gdmFsdWUyIDogaW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPGxvbmcgaW50Pih0ZXN0LCB2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUlNjQpKSYxKTsKKyAg
ICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDY0Pih0ZXN0LCB2YWx1ZTIpLCAodmFs
dWUyPj4odmFsdWUlNjQpKSYxKTsKICAgICB9CiB9CiAKQEAgLTU0Nyw3ICs1NTMsNyBAQCB2b2lk
IHRlc3RCcmFuY2hUZXN0Qml0NjRBZGRySW1tKCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9y
IChhdXRvIHZhbHVlMiA6IGludDY0T3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxsb25nIGludD4odGVzdCwgJnZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSU2NCkpJjEpOwor
ICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsICZ2YWx1ZTIpLCAo
dmFsdWUyPj4odmFsdWUlNjQpKSYxKTsKICAgICB9CiB9CiAKQEAgLTU3MiwxMiArNTc4LDEyIEBA
IHZvaWQgdGVzdENsZWFyQml0NjQoKQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBiaXRz
SW5Xb3JkOyArK2kpIHsKICAgICAgICAgdWludDY0X3Qgd29yZCA9IHN0ZDo6bnVtZXJpY19saW1p
dHM8dWludDY0X3Q+OjptYXgoKTsKICAgICAgICAgY29uc3RleHByIHVpbnQ2NF90IG9uZSA9IDE7
Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdCwgd29yZCwgaSksICh3b3Jk
ICYgfihvbmUgPDwgaSkpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0
ZXN0LCB3b3JkLCBpKSwgKHdvcmQgJiB+KG9uZSA8PCBpKSkpOwogICAgIH0KIAogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBiaXRzSW5Xb3JkOyArK2kpIHsKICAgICAgICAgdWludDY0X3Qg
d29yZCA9IDA7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdCwgd29yZCwg
aSksIDApOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIHdvcmQs
IGkpLCAwKTsKICAgICB9CiB9CiAKQEAgLTU5NSwxMiArNjAxLDEyIEBAIHZvaWQgdGVzdENsZWFy
Qml0czY0V2l0aE1hc2soKQogCiAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygp
KSB7CiAgICAgICAgIHVpbnQ2NF90IHdvcmQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90
Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdCwgd29yZCwg
dmFsdWUpLCAod29yZCAmIH52YWx1ZSkpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxV
SW50NjQ+KHRlc3QsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFsdWUpKTsKICAgICB9CiAKICAg
ICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgdWludDY0X3Qg
d29yZCA9IDA7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdCwgd29yZCwg
dmFsdWUpLCAwKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0LCB3
b3JkLCB2YWx1ZSksIDApOwogICAgIH0KIAogICAgIHVpbnQ2NF90IHNhdmVkTWFzayA9IDA7CkBA
IC02MjQsMTIgKzYzMCwxMiBAQCB2b2lkIHRlc3RDbGVhckJpdHM2NFdpdGhNYXNrKCkKIAogICAg
IGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRfdCB3
b3JkID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOwotICAgICAgICBDSEVD
S19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QyLCB3b3JkLCB2YWx1ZSksICh3b3JkICYgfnZhbHVl
KSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdDIsIHdvcmQsIHZh
bHVlKSwgKHdvcmQgJiB+dmFsdWUpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8gdmFsdWUgOiBp
bnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgdWludDY0X3Qgd29yZCA9IDA7Ci0gICAgICAgIENI
RUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdDIsIHdvcmQsIHZhbHVlKSwgMCk7CisgICAgICAg
IENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdDIsIHdvcmQsIHZhbHVlKSwgMCk7CiAg
ICAgfQogfQogCkBAIC02NDgsMTIgKzY1NCwxMiBAQCB2b2lkIHRlc3RDbGVhckJpdHM2NFdpdGhN
YXNrVGVybmFyeSgpCiAKICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsK
ICAgICAgICAgdWludDY0X3Qgd29yZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+Ojpt
YXgoKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCB2YWx1
ZSksICh3b3JkICYgfnZhbHVlKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2
ND4odGVzdCwgd29yZCwgdmFsdWUpLCAod29yZCAmIH52YWx1ZSkpOwogICAgIH0KIAogICAgIGZv
ciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRfdCB3b3Jk
ID0gMDsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCB2YWx1
ZSksIDApOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIHdvcmQs
IHZhbHVlKSwgMCk7CiAgICAgfQogCiAgICAgdWludDY0X3Qgc2F2ZWRNYXNrID0gMDsKQEAgLTY3
OSwxMiArNjg1LDEyIEBAIHZvaWQgdGVzdENsZWFyQml0czY0V2l0aE1hc2tUZXJuYXJ5KCkKIAog
ICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRf
dCB3b3JkID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOwotICAgICAgICBD
SEVDS19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QyLCB3b3JkLCB2YWx1ZSksICh3b3JkICYgfnZh
bHVlKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdDIsIHdvcmQs
IHZhbHVlKSwgKHdvcmQgJiB+dmFsdWUpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8gdmFsdWUg
OiBpbnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgdWludDY0X3Qgd29yZCA9IDA7Ci0gICAgICAg
IENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdDIsIHdvcmQsIHZhbHVlKSwgMCk7CisgICAg
ICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdDIsIHdvcmQsIHZhbHVlKSwgMCk7
CiAgICAgfQogfQogCkBAIC03MTgsMTMgKzcyNCwxMyBAQCBzdGF0aWMgdm9pZCB0ZXN0Q291bnRU
cmFpbGluZ1plcm9zNjRJbXBsKGJvb2wgd29yZENhbkJlWmVybykKICAgICBmb3IgKGF1dG8gd29y
ZCA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICBpZiAoIXdvcmRDYW5CZVplcm8gJiYgIXdv
cmQpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHNpemVf
dD4odGVzdCwgd29yZCksIGV4cGVjdGVkTnVtYmVyT2ZUcmFpbGluZ1plcm9zKHdvcmQpKTsKKyAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsU2l6ZT4odGVzdCwgd29yZCksIGV4cGVjdGVkTnVt
YmVyT2ZUcmFpbGluZ1plcm9zKHdvcmQpKTsKICAgICB9CiAKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG51bWJlck9mQml0czsgKytpKSB7CiAgICAgICAgIHVpbnQ2NF90IG9uZSA9IDE7CiAg
ICAgICAgIHVpbnQ2NF90IHdvcmQgPSBvbmUgPDwgaTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHNpemVfdD4odGVzdCwgd29yZCksIGkpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxT
aXplPih0ZXN0LCB3b3JkKSwgaSk7CiAgICAgfQogfQogCkBAIC03OTEsNyArNzk3LDcgQEAgdm9p
ZCB0ZXN0U2hpZnRBbmRBZGQoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsK
IAotICAgICAgICBDSEVDS19FUShpbnZva2U8aW50cHRyX3Q+KHRlc3QpLCBiYXNlUG9pbnRlciAr
IChpbmRleCA8PCBzaGlmdCkpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnRwdHI+
KHRlc3QpLCBiYXNlUG9pbnRlciArIChpbmRleCA8PCBzaGlmdCkpOwogICAgIH07CiAKICAgICBm
b3IgKGF1dG8gaW5kZXggOiBpbnQzMk9wZXJhbmRzKCkpIHsKQEAgLTgyMSw3ICs4MjcsNyBAQCB2
b2lkIHRlc3RTdG9yZTY0SW1tNjRBZGRyZXNzUG9pbnRlcigpCiAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGludm9rZTxzaXplX3Q+KHRlc3QpOworICAgICAg
ICBpbnZva2U8Q0NhbGxTaXplPih0ZXN0KTsKICAgICAgICAgQ0hFQ0tfRVEoZGVzdCwgdmFsdWUp
OwogICAgIH07CiAgICAgCkBAIC05MDMsOCArOTA5LDggQEAgdm9pZCB0ZXN0Q29tcGFyZURvdWJs
ZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlQ29uZGl0aW9uIGNvbmRpdGlvbikKICAgICAgICAgZm9y
IChhdXRvIGIgOiBvcGVyYW5kcykgewogICAgICAgICAgICAgYXJnMSA9IGE7CiAgICAgICAgICAg
ICBhcmcyID0gYjsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KGNvbXBhcmVEb3Vi
bGUpLCBleHBlY3RlZFJlc3VsdChhLCBiKSk7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8
aW50Pihjb21wYXJlRG91YmxlR2VuZXJpYyksIGV4cGVjdGVkUmVzdWx0KGEsIGIpKTsKKyAgICAg
ICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPihjb21wYXJlRG91YmxlKSwgZXhwZWN0
ZWRSZXN1bHQoYSwgYikpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+
KGNvbXBhcmVEb3VibGVHZW5lcmljKSwgZXhwZWN0ZWRSZXN1bHQoYSwgYikpOwogICAgICAgICB9
CiAgICAgfQogfQpAQCAtOTczLDggKzk3OSw4IEBAIHZvaWQgdGVzdENvbXBhcmVEb3VibGVTYW1l
QXJnKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24gY29uZGl0aW9uKQogICAgIGF1dG8g
b3BlcmFuZHMgPSBkb3VibGVPcGVyYW5kcygpOwogICAgIGZvciAoYXV0byBhIDogb3BlcmFuZHMp
IHsKICAgICAgICAgYXJnMSA9IGE7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KGNvbXBh
cmVEb3VibGUpLCBleHBlY3RlZFJlc3VsdChhKSk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTxp
bnQ+KGNvbXBhcmVEb3VibGVHZW5lcmljKSwgZXhwZWN0ZWRSZXN1bHQoYSkpOworICAgICAgICBD
SEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4oY29tcGFyZURvdWJsZSksIGV4cGVjdGVkUmVzdWx0
KGEpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+KGNvbXBhcmVEb3VibGVH
ZW5lcmljKSwgZXhwZWN0ZWRSZXN1bHQoYSkpOwogICAgIH0KIH0KIApAQCAtOTkxLDcgKzk5Nyw3
IEBAIHZvaWQgdGVzdE11bDMyV2l0aEltbWVkaWF0ZXMoKQogICAgICAgICB9KTsKIAogICAgICAg
ICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19F
UShpbnZva2U8aW50PihtdWwsIHZhbHVlKSwgaW1tZWRpYXRlICogdmFsdWUpOworICAgICAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+KG11bCwgdmFsdWUpLCBpbW1lZGlhdGUgKiB2
YWx1ZSk7CiAgICAgfQogfQogCkBAIC0xMDA5LDcgKzEwMTUsNyBAQCB2b2lkIHRlc3RNdWx0aXBs
eVNpZ25FeHRlbmQzMigpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2YWx1ZTIg
OiBpbnQzMk9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8bG9uZyBpbnQ+
KG11bCwgdmFsdWUsIHZhbHVlMiksICgobG9uZyBpbnQpIHZhbHVlKSAqICgobG9uZyBpbnQpIHZh
bHVlMikpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KG11bCwgdmFs
dWUsIHZhbHVlMiksIGludDY0X3QodmFsdWUpICogaW50NjRfdCh2YWx1ZTIpKTsKICAgICB9CiB9
CiAKQEAgLTEwMjgsNyArMTAzNCw3IEBAIHZvaWQgdGVzdE11bHRpcGx5WmVyb0V4dGVuZDMyKCkK
ICAgICAgICAgZm9yIChhdXRvIG1PcGVyYW5kIDogaW50MzJPcGVyYW5kcygpKSB7CiAgICAgICAg
ICAgICB1aW50MzJfdCBuID0gbk9wZXJhbmQ7CiAgICAgICAgICAgICB1aW50MzJfdCBtID0gbU9w
ZXJhbmQ7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KG11bCwgbiwgbSks
IHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSk7Cisg
ICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KG11bCwgbiwgbSksIHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSk7CiAgICAgICAg
IH0KICAgICB9CiB9CkBAIC0xMDUxLDcgKzEwNTcsNyBAQCB2b2lkIHRlc3RNdWx0aXBseUFkZFNp
Z25FeHRlbmQzMigpCiAgICAgZm9yIChhdXRvIG4gOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAgICAg
ICAgZm9yIChhdXRvIG0gOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0
byBhIDogaW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxp
bnQ2NF90PihhZGQsIG4sIG0sIGEpLCBzdGF0aWNfY2FzdDxpbnQ2NF90PihuKSAqIHN0YXRpY19j
YXN0PGludDY0X3Q+KG0pICsgYSk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50NjQ+KGFkZCwgbiwgbSwgYSksIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pICogc3RhdGlj
X2Nhc3Q8aW50NjRfdD4obSkgKyBhKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTEwNzYsNyAr
MTA4Miw3IEBAIHZvaWQgdGVzdE11bHRpcGx5QWRkWmVyb0V4dGVuZDMyKCkKICAgICAgICAgICAg
IGZvciAoYXV0byBhIDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgICAgICAgICAgdWludDMy
X3QgdW4gPSBuOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHVtID0gbTsKLSAgICAgICAgICAg
ICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oYWRkLCBuLCBtLCBhKSwgc3RhdGljX2Nhc3Q8
aW50NjRfdD4odW4pICogc3RhdGljX2Nhc3Q8aW50NjRfdD4odW0pICsgYSk7CisgICAgICAgICAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KGFkZCwgbiwgbSwgYSksIHN0YXRpY19j
YXN0PGludDY0X3Q+KHVuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+KHVtKSArIGEpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTA5NSw3ICsxMTAxLDcgQEAgdm9pZCB0ZXN0
U3ViMzJBcmdzKCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6IGlu
dDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4oc3Vi
LCB2YWx1ZSwgdmFsdWUyKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbHVlIC0gdmFsdWUyKSk7
CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHN1YiwgdmFsdWUsIHZh
bHVlMiksIHN0YXRpY19jYXN0PHVpbnQzMl90Pih2YWx1ZSAtIHZhbHVlMikpOwogICAgIH0KIH0K
IApAQCAtMTExMiw3ICsxMTE4LDcgQEAgdm9pZCB0ZXN0U3ViMzJJbW0oKQogICAgICAgICAgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAgICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+
KHN1YiksIHN0YXRpY19jYXN0PHVpbnQzMl90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7Cisg
ICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHN1YiksIHN0YXRpY19jYXN0
PHVpbnQzMl90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7CiAgICAgICAgIH0KICAgICB9CiB9
CkBAIC0xMTMwLDcgKzExMzYsNyBAQCB2b2lkIHRlc3RTdWI2NEltbTMyKCkKICAgICAgICAgICAg
ICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90
PihzdWIpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oaW1tZWRpYXRlIC0gaW1tZWRpYXRlMikpOwor
ICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0PihzdWIpLCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oaW1tZWRpYXRlIC0gaW1tZWRpYXRlMikpOwogICAgICAgICB9CiAgICAgfQog
fQpAQCAtMTE0OCw3ICsxMTU0LDcgQEAgdm9pZCB0ZXN0U3ViNjRBcmdJbW0zMigpCiAgICAgICAg
IH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKLSAgICAg
ICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90PihzdWIsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8
aW50NjRfdD4odmFsdWUgLSBpbW1lZGlhdGUpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9r
ZTxDQ2FsbEludDY0PihzdWIsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4odmFsdWUgLSBp
bW1lZGlhdGUpKTsKICAgICB9CiB9CiAKQEAgLTExNjUsNyArMTE3MSw3IEBAIHZvaWQgdGVzdFN1
YjY0SW1tNjQoKQogICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAg
ICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBD
SEVDS19FUShpbnZva2U8dWludDY0X3Q+KHN1YiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbW1l
ZGlhdGUgLSBpbW1lZGlhdGUyKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxV
SW50NjQ+KHN1YiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUy
KSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMTgzLDcgKzExODksNyBAQCB2b2lkIHRlc3RT
dWI2NEFyZ0ltbTY0KCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlIDog
aW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHN1
YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOworICAg
ICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHN1YiwgdmFsdWUpLCBzdGF0aWNf
Y2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOwogICAgIH0KIH0KIApAQCAtMTIwNSw3
ICsxMjExLDcgQEAgdm9pZCB0ZXN0TXVsdGlwbHlTdWJTaWduRXh0ZW5kMzIoKQogICAgIGZvciAo
YXV0byBhIDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIGZvciAoYXV0byBuIDogaW50MzJP
cGVyYW5kcygpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8gbSA6IGludDMyT3BlcmFuZHMoKSkK
LSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oc3ViLCBhLCBuLCBtKSwg
YSAtIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pICogc3RhdGljX2Nhc3Q8aW50NjRfdD4obSkpOwor
ICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDY0PihzdWIsIGEsIG4sIG0p
LCBhIC0gc3RhdGljX2Nhc3Q8aW50NjRfdD4obikgKiBzdGF0aWNfY2FzdDxpbnQ2NF90PihtKSk7
CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMjMwLDcgKzEyMzYsNyBAQCB2b2lkIHRlc3RNdWx0
aXBseVN1Ylplcm9FeHRlbmQzMigpCiAgICAgICAgICAgICBmb3IgKGF1dG8gbSA6IGludDMyT3Bl
cmFuZHMoKSkgewogICAgICAgICAgICAgICAgIHVpbnQzMl90IHVuID0gbjsKICAgICAgICAgICAg
ICAgICB1aW50MzJfdCB1bSA9IG07Ci0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGlu
dDY0X3Q+KHN1YiwgYSwgbiwgbSksIGEgLSBzdGF0aWNfY2FzdDxpbnQ2NF90Pih1bikgKiBzdGF0
aWNfY2FzdDxpbnQ2NF90Pih1bSkpOworICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxD
Q2FsbEludDY0PihzdWIsIGEsIG4sIG0pLCBhIC0gc3RhdGljX2Nhc3Q8aW50NjRfdD4odW4pICog
c3RhdGljX2Nhc3Q8aW50NjRfdD4odW0pKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KQEAgLTEyNTAsNyArMTI1Niw3IEBAIHZvaWQgdGVzdE11bHRpcGx5TmVnU2lnbkV4dGVuZDMy
KCkKIAogICAgIGZvciAoYXV0byBuIDogaW50MzJPcGVyYW5kcygpKSB7CiAgICAgICAgIGZvciAo
YXV0byBtIDogaW50MzJPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGlu
dDY0X3Q+KG5lZywgbiwgbSksIC0oc3RhdGljX2Nhc3Q8aW50NjRfdD4obikgKiBzdGF0aWNfY2Fz
dDxpbnQ2NF90PihtKSkpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+
KG5lZywgbiwgbSksIC0oc3RhdGljX2Nhc3Q8aW50NjRfdD4obikgKiBzdGF0aWNfY2FzdDxpbnQ2
NF90PihtKSkpOwogICAgIH0KIH0KIApAQCAtMTI3MCw3ICsxMjc2LDcgQEAgdm9pZCB0ZXN0TXVs
dGlwbHlOZWdaZXJvRXh0ZW5kMzIoKQogICAgICAgICBmb3IgKGF1dG8gbSA6IGludDMyT3BlcmFu
ZHMoKSkgewogICAgICAgICAgICAgdWludDMyX3QgdW4gPSBuOwogICAgICAgICAgICAgdWludDMy
X3QgdW0gPSBtOwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90PihuZWcsIG4s
IG0pLCAtKHN0YXRpY19jYXN0PHVpbnQ2NF90Pih1bikgKiBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
dW0pKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KG5lZywgbiwg
bSksIC0oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVuKSAqIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih1
bSkpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTEyOTMsNyArMTI5OSw3IEBAIHZvaWQgdGVz
dEV4dHJhY3RVbnNpZ25lZEJpdGZpZWxkMzIoKQogICAgICAgICAgICAgICAgICAgICBlbWl0RnVu
Y3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90
Pih1YmZ4MzIsIHNyYyksICgoc3JjID4+IGxzYikgJiAoKDFVIDw8IHdpZHRoKSAtIDFVKSkpOwor
ICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odWJmeDMyLCBzcmMp
LCAoKHNyYyA+PiBsc2IpICYgKCgxVSA8PCB3aWR0aCkgLSAxVSkpKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KQEAgLTEzMTcsNyArMTMyMyw3IEBAIHZvaWQgdGVzdEV4dHJhY3RV
bnNpZ25lZEJpdGZpZWxkNjQoKQogICAgICAgICAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGls
b2d1ZShqaXQpOwogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih1YmZ4NjQs
IHNyYyksICgoc3JjID4+IGxzYikgJiAoKDFVTEwgPDwgd2lkdGgpIC0gMVVMTCkpKTsKKyAgICAg
ICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHViZng2NCwgc3JjKSwgKChz
cmMgPj4gbHNiKSAmICgoMVVMTCA8PCB3aWR0aCkgLSAxVUxMKSkpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQpAQCAtMTM0Miw3ICsxMzQ4LDcgQEAgdm9pZCB0ZXN0SW5zZXJ0VW5z
aWduZWRCaXRmaWVsZEluWmVybzMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwog
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IG1hc2sgPSAoMVUg
PDwgd2lkdGgpIC0gMVU7Ci0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90
Pih1YmZpejMyLCBzcmMpLCAoc3JjICYgbWFzaykgPDwgbHNiKTsKKyAgICAgICAgICAgICAgICBD
SEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHViZml6MzIsIHNyYyksIChzcmMgJiBtYXNrKSA8
PCBsc2IpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTM2Nyw3ICsxMzcz
LDcgQEAgdm9pZCB0ZXN0SW5zZXJ0VW5zaWduZWRCaXRmaWVsZEluWmVybzY0KCkKICAgICAgICAg
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
ICAgIHVpbnQ2NF90IG1hc2sgPSAoMVVMTCA8PCB3aWR0aCkgLSAxVUxMOwotICAgICAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odWJmaXo2NCwgc3JjKSwgKHNyYyAmIG1hc2sp
IDw8IGxzYik7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih1
YmZpejY0LCBzcmMpLCAoc3JjICYgbWFzaykgPDwgbHNiKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KQEAgLTEzOTUsNyArMTQwMSw3IEBAIHZvaWQgdGVzdEluc2VydEJpdEZpZWxk
MzIoKQogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IG1hc2sx
ID0gKDFVIDw8IHdpZHRoKSAtIDFVOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IG1hc2syID0g
fihtYXNrMSA8PCBsc2IpOwotICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9IGludm9rZTx1
aW50MzJfdD4oYmZpMzIsIHNyYywgZHN0KTsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCByaHMg
PSBpbnZva2U8Q0NhbGxVSW50MzI+KGJmaTMyLCBzcmMsIGRzdCk7CiAgICAgICAgICAgICAgICAg
dWludDMyX3QgbGhzID0gKChzcmMgJiBtYXNrMSkgPDwgbHNiKSB8IChkc3QgJiBtYXNrMik7CiAg
ICAgICAgICAgICAgICAgQ0hFQ0tfRVEocmhzLCBsaHMpOwogICAgICAgICAgICAgfQpAQCAtMTQy
NSw3ICsxNDMxLDcgQEAgdm9pZCB0ZXN0SW5zZXJ0Qml0RmllbGQ2NCgpCiAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbWFzazEgPSAoMVVMTCA8PCB3aWR0aCkg
LSAxVUxMOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IG1hc2syID0gfihtYXNrMSA8PCBsc2Ip
OwotICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9rZTx1aW50NjRfdD4oYmZpNjQs
IHNyYywgZHN0KTsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCByaHMgPSBpbnZva2U8Q0NhbGxV
SW50NjQ+KGJmaTY0LCBzcmMsIGRzdCk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0g
KChzcmMgJiBtYXNrMSkgPDwgbHNiKSB8IChkc3QgJiBtYXNrMik7CiAgICAgICAgICAgICAgICAg
Q0hFQ0tfRVEocmhzLCBsaHMpOwogICAgICAgICAgICAgfQpAQCAtMTQ1NSw3ICsxNDYxLDcgQEAg
dm9pZCB0ZXN0RXh0cmFjdEluc2VydEJpdGZpZWxkQXRMb3dFbmQzMigpCiAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzazEgPSAoMVUgPDwgd2lkdGgpIC0g
MVU7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzazIgPSB+bWFzazE7Ci0gICAgICAgICAg
ICAgICAgdWludDMyX3QgcmhzID0gaW52b2tlPHVpbnQzMl90PihiZnhpbDMyLCBzcmMsIGRzdCk7
CisgICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gaW52b2tlPENDYWxsVUludDMyPihiZnhp
bDMyLCBzcmMsIGRzdCk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gKChzcmMgPj4g
bHNiKSAmIG1hc2sxKSB8IChkc3QgJiBtYXNrMik7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEo
cmhzLCBsaHMpOwogICAgICAgICAgICAgfQpAQCAtMTQ4NSw3ICsxNDkxLDcgQEAgdm9pZCB0ZXN0
RXh0cmFjdEluc2VydEJpdGZpZWxkQXRMb3dFbmQ2NCgpCiAgICAgICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICAgICAgdWludDY0X3QgbWFzazEgPSAoMVVMTCA8PCB3aWR0aCkgLSAxVUxMOwog
ICAgICAgICAgICAgICAgIHVpbnQ2NF90IG1hc2syID0gfm1hc2sxOwotICAgICAgICAgICAgICAg
IHVpbnQ2NF90IHJocyA9IGludm9rZTx1aW50NjRfdD4oYmZ4aWw2NCwgc3JjLCBkc3QpOworICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oYmZ4aWw2NCwg
c3JjLCBkc3QpOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9ICgoc3JjID4+IGxzYikg
JiBtYXNrMSkgfCAoZHN0ICYgbWFzazIpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKHJocywg
bGhzKTsKICAgICAgICAgICAgIH0KQEAgLTE1MTAsNyArMTUxNiw3IEBAIHZvaWQgdGVzdENsZWFy
Qml0RmllbGQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCBtYXNrID0gKCgxVSA8PCB3aWR0aCkg
LSAxVSkgPDwgbHNiOwotICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9IGludm9rZTx1aW50
MzJfdD4oYmZjMzIsIHNyYyk7CisgICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gaW52b2tl
PENDYWxsVUludDMyPihiZmMzMiwgc3JjKTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMg
PSBzcmMgJiB+bWFzazsKICAgICAgICAgICAgICAgICBDSEVDS19FUShyaHMsIGxocyk7CiAgICAg
ICAgICAgICB9CkBAIC0xNTM1LDcgKzE1NDEsNyBAQCB2b2lkIHRlc3RDbGVhckJpdEZpZWxkNjQo
KQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICAgICAgdWludDY0X3QgbWFzayA9ICgoMVVMTCA8PCB3aWR0aCkgLSAxVUxMKSA8
PCBsc2I7Ci0gICAgICAgICAgICAgICAgdWludDY0X3QgcmhzID0gaW52b2tlPHVpbnQ2NF90Pihi
ZmM2NCwgc3JjKTsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCByaHMgPSBpbnZva2U8Q0NhbGxV
SW50NjQ+KGJmYzY0LCBzcmMpOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IHNyYyAm
IH5tYXNrOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKHJocywgbGhzKTsKICAgICAgICAgICAg
IH0KQEAgLTE1NTYsOCArMTU2Miw4IEBAIHZvaWQgdGVzdENsZWFyQml0c1dpdGhNYXNrMzIoKQog
CiAgICAgZm9yIChhdXRvIG1hc2sgOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAgICAgICAgdWludDMy
X3Qgc3JjID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpOwotICAgICAgICBD
SEVDS19FUShpbnZva2U8dWludDMyX3Q+KHRlc3QsIHNyYywgbWFzayksIChzcmMgJiB+bWFzaykp
OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHRlc3QsIDBVLCBtYXNrKSwgMFUp
OworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIHNyYywgbWFzayks
IChzcmMgJiB+bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRl
c3QsIDBVLCBtYXNrKSwgMFUpOwogICAgIH0KIH0KIApAQCAtMTU3NCw4ICsxNTgwLDggQEAgdm9p
ZCB0ZXN0Q2xlYXJCaXRzV2l0aE1hc2s2NCgpCiAKICAgICBmb3IgKGF1dG8gbWFzayA6IGludDY0
T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRfdCBzcmMgPSBzdGQ6Om51bWVyaWNfbGltaXRz
PHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVz
dCwgc3JjLCBtYXNrKSwgKHNyYyAmIH5tYXNrKSk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1
aW50NjRfdD4odGVzdCwgMFVMTCwgbWFzayksIDBVTEwpOworICAgICAgICBDSEVDS19FUShpbnZv
a2U8Q0NhbGxVSW50NjQ+KHRlc3QsIHNyYywgbWFzayksIChzcmMgJiB+bWFzaykpOworICAgICAg
ICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIDBVTEwsIG1hc2spLCAwVUxMKTsK
ICAgICB9CiB9CiAKQEAgLTE1OTIsOCArMTU5OCw4IEBAIHZvaWQgdGVzdE9yTm90MzIoKQogCiAg
ICAgZm9yIChhdXRvIG1hc2sgOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAgICAgICAgaW50MzJfdCBz
cmMgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNL
X0VRKGludm9rZTxpbnQzMl90Pih0ZXN0LCBzcmMsIG1hc2spLCAoc3JjIHwgfm1hc2spKTsKLSAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDMyX3Q+KHRlc3QsIDBVLCBtYXNrKSwgfm1hc2spOwor
ICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4odGVzdCwgc3JjLCBtYXNrKSwgKHNy
YyB8IH5tYXNrKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCAw
VSwgbWFzayksIH5tYXNrKTsKICAgICB9CiB9CiAKQEAgLTE2MTAsOCArMTYxNiw4IEBAIHZvaWQg
dGVzdE9yTm90NjQoKQogCiAgICAgZm9yIChhdXRvIG1hc2sgOiBpbnQ2NE9wZXJhbmRzKCkpIHsK
ICAgICAgICAgaW50NjRfdCBzcmMgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4
KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90Pih0ZXN0LCBzcmMsIG1hc2spLCAo
c3JjIHwgfm1hc2spKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHRlc3QsIDBV
TEwsIG1hc2spLCB+bWFzayk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDY0Pih0
ZXN0LCBzcmMsIG1hc2spLCAoc3JjIHwgfm1hc2spKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PENDYWxsSW50NjQ+KHRlc3QsIDBVTEwsIG1hc2spLCB+bWFzayk7CiAgICAgfQogfQogCkBAIC0x
NjM5LDcgKzE2NDUsNyBAQCB2b2lkIHRlc3RJbnNlcnRTaWduZWRCaXRmaWVsZEluWmVybzMyKCkK
ICAgICAgICAgICAgICAgICBpbnQzMl90IG1hc2syID0gMSA8PCAod2lkdGggLSAxKTsKICAgICAg
ICAgICAgICAgICBpbnQzMl90IGJmc3ggPSAoKGJmICYgbWFzazEpIF4gbWFzazIpIC0gbWFzazI7
CiAKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50MzJfdD4oaW5zZXJ0U2lnbmVk
Qml0ZmllbGRJblplcm8zMiwgc3JjKSwgYmZzeCA8PCBsc2IpOworICAgICAgICAgICAgICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbEludDMyPihpbnNlcnRTaWduZWRCaXRmaWVsZEluWmVybzMyLCBz
cmMpLCBiZnN4IDw8IGxzYik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0x
NjY4LDcgKzE2NzQsNyBAQCB2b2lkIHRlc3RJbnNlcnRTaWduZWRCaXRmaWVsZEluWmVybzY0KCkK
ICAgICAgICAgICAgICAgICBpbnQ2NF90IGFtb3VudCA9IENIQVJfQklUICogc2l6ZW9mKGJmKSAt
IHdpZHRoOwogICAgICAgICAgICAgICAgIGludDY0X3QgYmZzeCA9IChiZiA8PCBhbW91bnQpID4+
IGFtb3VudDsKIAotICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90PihpbnNl
cnRTaWduZWRCaXRmaWVsZEluWmVybzY0LCBzcmMpLCBiZnN4IDw8IGxzYik7CisgICAgICAgICAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KGluc2VydFNpZ25lZEJpdGZpZWxkSW5a
ZXJvNjQsIHNyYyksIGJmc3ggPDwgbHNiKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KQEAgLTE2OTgsNyArMTcwNCw3IEBAIHZvaWQgdGVzdEV4dHJhY3RTaWduZWRCaXRmaWVsZDMy
KCkKICAgICAgICAgICAgICAgICBpbnQzMl90IG1hc2syID0gMSA8PCAod2lkdGggLSAxKTsKICAg
ICAgICAgICAgICAgICBpbnQzMl90IGJmc3ggPSAoKGJmICYgbWFzazEpIF4gbWFzazIpIC0gbWFz
azI7CiAKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50MzJfdD4oZXh0cmFjdFNp
Z25lZEJpdGZpZWxkMzIsIHNyYyksIGJmc3gpOworICAgICAgICAgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxDQ2FsbEludDMyPihleHRyYWN0U2lnbmVkQml0ZmllbGQzMiwgc3JjKSwgYmZzeCk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xNzI3LDcgKzE3MzMsNyBAQCB2b2lk
IHRlc3RFeHRyYWN0U2lnbmVkQml0ZmllbGQ2NCgpCiAgICAgICAgICAgICAgICAgaW50NjRfdCBh
bW91bnQgPSBDSEFSX0JJVCAqIHNpemVvZihiZikgLSB3aWR0aDsKICAgICAgICAgICAgICAgICBp
bnQ2NF90IGJmc3ggPSAoYmYgPDwgYW1vdW50KSA+PiBhbW91bnQ7CiAKLSAgICAgICAgICAgICAg
ICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oZXh0cmFjdFNpZ25lZEJpdGZpZWxkNjQsIHNyYyks
IGJmc3gpOworICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDY0PihleHRy
YWN0U2lnbmVkQml0ZmllbGQ2NCwgc3JjKSwgYmZzeCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CkBAIC0xNzYyLDcgKzE3NjgsNyBAQCB2b2lkIHRlc3RFeHRyYWN0UmVnaXN0ZXIz
MigpCiAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGxlZnQgPSBoaWdoV2lkdGggPT0gZGF0
YXNpemUgPyAwVSA6IChuICYgbWFzaykgPDwgaGlnaFdpZHRoOwogICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCByaWdodCA9IChzdGF0aWNfY2FzdDx1aW50MzJfdD4obSkgPj4gbHNiKTsKICAg
ICAgICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gbGVmdCB8IHJpZ2h0OwotICAgICAgICAg
ICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8dWludDMyX3Q+KGV4dHJhY3RSZWdpc3Rl
cjMyLCBuLCBtKTsKKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tlPEND
YWxsVUludDMyPihleHRyYWN0UmVnaXN0ZXIzMiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgICAg
IENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBA
IC0xNzk2LDcgKzE4MDIsNyBAQCB2b2lkIHRlc3RFeHRyYWN0UmVnaXN0ZXI2NCgpCiAgICAgICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IGxlZnQgPSBoaWdoV2lkdGggPT0gZGF0YXNpemUgPyAwVUxM
IDogKG4gJiBtYXNrKSA8PCBoaWdoV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90
IHJpZ2h0ID0gKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSA+PiBsc2IpOwogICAgICAgICAgICAg
ICAgICAgICB1aW50NjRfdCByaHMgPSBsZWZ0IHwgcmlnaHQ7Ci0gICAgICAgICAgICAgICAgICAg
IHVpbnQ2NF90IGxocyA9IGludm9rZTx1aW50NjRfdD4oZXh0cmFjdFJlZ2lzdGVyNjQsIG4sIG0p
OworICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50NjQ+
KGV4dHJhY3RSZWdpc3RlcjY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEo
bGhzLCByaHMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTE4MjIsNyAr
MTgyOCw3IEBAIHZvaWQgdGVzdEFkZFdpdGhMZWZ0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGlu
dDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KGFkZDMyLCBuLCBtKTsKKyAgICAgICAgICAgICAg
ICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPihhZGQzMiwgbiwgbSk7CiAgICAgICAg
ICAgICAgICAgaW50MzJfdCByaHMgPSBuICsgKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAg
ICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0xODQ4LDcgKzE4NTQsNyBA
QCB2b2lkIHRlc3RBZGRXaXRoUmlnaHRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0
LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50MzJfdCBs
aHMgPSBpbnZva2U8aW50MzJfdD4oYWRkMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDMy
X3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KGFkZDMyLCBuLCBtKTsKICAgICAgICAgICAgICAg
ICBpbnQzMl90IHJocyA9IG4gKyAobSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNL
X0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTE4NzQsNyArMTg4MCw3IEBAIHZvaWQg
dGVzdEFkZFdpdGhVbnNpZ25lZFJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGpp
dC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIHVpbnQzMl90
IGxocyA9IGludm9rZTx1aW50MzJfdD4oYWRkMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIHVp
bnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQzMj4oYWRkMzIsIG4sIG0pOwogICAgICAgICAg
ICAgICAgIHVpbnQzMl90IHJocyA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihuKSArIChzdGF0aWNf
Y2FzdDx1aW50MzJfdD4obSkgPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShs
aHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0xOTAwLDcgKzE5MDYsNyBAQCB2b2lkIHRlc3RB
ZGRXaXRoTGVmdFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxp
bnQ2NF90PihhZGQ2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZv
a2U8Q0NhbGxJbnQ2ND4oYWRkNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0X3Qgcmhz
ID0gbiArIChtIDw8IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMp
OwogICAgICAgICAgICAgfQpAQCAtMTkyNiw3ICsxOTMyLDcgQEAgdm9pZCB0ZXN0QWRkV2l0aFJp
Z2h0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAg
ICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+
KGFkZDY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2Fs
bEludDY0PihhZGQ2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuICsg
KG0gPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAg
ICAgICAgICB9CkBAIC0xOTUyLDcgKzE5NTgsNyBAQCB2b2lkIHRlc3RBZGRXaXRoVW5zaWduZWRS
aWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAg
ICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8dWludDY0
X3Q+KGFkZDY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8
Q0NhbGxVSW50NjQ+KGFkZDY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICB1aW50NjRfdCByaHMg
PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4obikgKyAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pID4+
IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAg
ICAgfQpAQCAtMTk3OCw3ICsxOTg0LDcgQEAgdm9pZCB0ZXN0U3ViV2l0aExlZnRTaGlmdDMyKCkK
ICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0g
ICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4oc3ViMzIsIG4sIG0p
OworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KHN1YjMy
LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gLSAobSA8PCBhbW91bnQp
OwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAg
LTIwMDQsNyArMjAxMCw3IEBAIHZvaWQgdGVzdFN1YldpdGhSaWdodFNoaWZ0MzIoKQogICAgICAg
ICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAg
ICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90PihzdWIzMiwgbiwgbSk7CisgICAg
ICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4oc3ViMzIsIG4sIG0p
OwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiAtIChtID4+IGFtb3VudCk7CiAgICAg
ICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjAzMCw3
ICsyMDM2LDcgQEAgdm9pZCB0ZXN0U3ViV2l0aFVuc2lnbmVkUmlnaHRTaGlmdDMyKCkKICAgICAg
ICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAg
ICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tlPHVpbnQzMl90PihzdWIzMiwgbiwgbSk7Cisg
ICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tlPENDYWxsVUludDMyPihzdWIzMiwg
biwgbSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KG4pIC0gKHN0YXRpY19jYXN0PHVpbnQzMl90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAg
ICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTIwNTYsNyArMjA2
Miw3IEBAIHZvaWQgdGVzdFN1YldpdGhMZWZ0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAg
IGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0
X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KHN1YjY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBp
bnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0PihzdWI2NCwgbiwgbSk7CiAgICAgICAgICAg
ICAgICAgaW50NjRfdCByaHMgPSBuIC0gKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAgICBD
SEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMDgyLDcgKzIwODgsNyBAQCB2
b2lkIHRlc3RTdWJXaXRoUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMg
PSBpbnZva2U8aW50NjRfdD4oc3ViNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDY0X3Qg
bGhzID0gaW52b2tlPENDYWxsSW50NjQ+KHN1YjY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBp
bnQ2NF90IHJocyA9IG4gLSAobSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VR
KGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTIxMDgsNyArMjExNCw3IEBAIHZvaWQgdGVz
dFN1YldpdGhVbnNpZ25lZFJpZ2h0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxo
cyA9IGludm9rZTx1aW50NjRfdD4oc3ViNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIHVpbnQ2
NF90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oc3ViNjQsIG4sIG0pOwogICAgICAgICAgICAg
ICAgIHVpbnQ2NF90IHJocyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSAtIChzdGF0aWNfY2Fz
dDx1aW50NjRfdD4obSkgPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMs
IHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMTI5LDggKzIxMzUsOCBAQCB2b2lkIHRlc3RYb3JO
b3QzMigpCiAKICAgICBmb3IgKGF1dG8gbWFzayA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAg
ICBpbnQzMl90IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKTsKLSAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDMyX3Q+KHRlc3QsIHNyYywgbWFzayksIChzcmMgXiB+
bWFzaykpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8aW50MzJfdD4odGVzdCwgMFUsIG1hc2sp
LCB+bWFzayk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCBzcmMs
IG1hc2spLCAoc3JjIF4gfm1hc2spKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50
MzI+KHRlc3QsIDBVLCBtYXNrKSwgfm1hc2spOwogICAgIH0KIH0KIApAQCAtMjE0Nyw4ICsyMTUz
LDggQEAgdm9pZCB0ZXN0WG9yTm90NjQoKQogCiAgICAgZm9yIChhdXRvIG1hc2sgOiBpbnQ2NE9w
ZXJhbmRzKCkpIHsKICAgICAgICAgaW50NjRfdCBzcmMgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVp
bnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ2NF90Pih0ZXN0LCBz
cmMsIG1hc2spLCAoc3JjIF4gfm1hc2spKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0
X3Q+KHRlc3QsIDBVTEwsIG1hc2spLCB+bWFzayk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxD
Q2FsbEludDY0Pih0ZXN0LCBzcmMsIG1hc2spLCAoc3JjIF4gfm1hc2spKTsKKyAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIDBVTEwsIG1hc2spLCB+bWFzayk7CiAgICAg
fQogfQogCkBAIC0yMTcwLDcgKzIxNzYsNyBAQCB2b2lkIHRlc3RYb3JOb3RXaXRoTGVmdFNoaWZ0
MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7
CiAKLSAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90Pih0ZXN0LCBu
LCBtKTsKKyAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPih0
ZXN0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gXiB+KG0gPDwgYW1v
dW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9
CkBAIC0yMTk2LDcgKzIyMDIsNyBAQCB2b2lkIHRlc3RYb3JOb3RXaXRoUmlnaHRTaGlmdDMyKCkK
ICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0g
ICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4odGVzdCwgbiwgbSk7
CisgICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4odGVzdCwg
biwgbSk7CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMgPSBuIF4gfihtID4+IGFtb3VudCk7
CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAt
MjIyMiw3ICsyMjI4LDcgQEAgdm9pZCB0ZXN0WG9yTm90V2l0aFVuc2lnbmVkUmlnaHRTaGlmdDMy
KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwog
Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBu
LCBtKTsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+
KHRlc3QsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9IHN0YXRpY19jYXN0
PHVpbnQzMl90PihuKSBeIH4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG0pID4+IGFtb3VudCk7CiAg
ICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjI0
OCw3ICsyMjU0LDcgQEAgdm9pZCB0ZXN0WG9yTm90V2l0aExlZnRTaGlmdDY0KCkKICAgICAgICAg
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAg
ICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8aW50NjRfdD4odGVzdCwgbiwgbSk7CisgICAgICAg
ICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQ2ND4odGVzdCwgbiwgbSk7CiAg
ICAgICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuIF4gfihtIDw8IGFtb3VudCk7CiAgICAgICAg
ICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjI3NCw3ICsy
MjgwLDcgQEAgdm9pZCB0ZXN0WG9yTm90V2l0aFJpZ2h0U2hpZnQ2NCgpCiAgICAgICAgICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAg
IGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KHRlc3QsIG4sIG0pOworICAgICAgICAgICAg
ICAgIGludDY0X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIG4sIG0pOwogICAgICAg
ICAgICAgICAgIGludDY0X3QgcmhzID0gbiBeIH4obSA+PiBhbW91bnQpOwogICAgICAgICAgICAg
ICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTIzMDAsNyArMjMwNiw3
IEBAIHZvaWQgdGVzdFhvck5vdFdpdGhVbnNpZ25lZFJpZ2h0U2hpZnQ2NCgpCiAgICAgICAgICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAg
ICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTx1aW50NjRfdD4odGVzdCwgbiwgbSk7CisgICAgICAg
ICAgICAgICAgdWludDY0X3QgbGhzID0gaW52b2tlPENDYWxsVUludDY0Pih0ZXN0LCBuLCBtKTsK
ICAgICAgICAgICAgICAgICB1aW50NjRfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4obikg
XiB+KHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAg
IENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTIzMjUsNyArMjMzMSw3IEBA
IHZvaWQgdGVzdFN0b3JlUHJlUG9zdEluZGV4MzIoKQogICAgICAgICAgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAg
ICAgIHJldHVybiBpbnZva2U8aW50cHRyX3Q+KHN0b3JlLCBzcmMsIGFkZHIpOworICAgICAgICBy
ZXR1cm4gaW52b2tlPENDYWxsSW50cHRyPihzdG9yZSwgc3JjLCBhZGRyKTsKICAgICB9OwogCiAg
ICAgaW50MzJfdCogcDEgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdCo+KHRlc3QxKDQpKTsKQEAgLTIz
NDMsNyArMjM0OSw3IEBAIHZvaWQgdGVzdFN0b3JlUHJlUG9zdEluZGV4MzIoKQogICAgICAgICAg
ICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBpbnZva2U8aW50cHRyX3Q+KHN0b3JlLCBzcmMsIGFk
ZHIpOworICAgICAgICByZXR1cm4gaW52b2tlPENDYWxsSW50cHRyPihzdG9yZSwgc3JjLCBhZGRy
KTsKICAgICB9OwogCiAgICAgaW50MzJfdCogcDIgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdCo+KHRl
c3QyKDUpKTsKQEAgLTIzNjgsNyArMjM3NCw3IEBAIHZvaWQgdGVzdFN0b3JlUHJlUG9zdEluZGV4
NjQoKQogICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAg
IGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBpbnZva2U8aW50cHRyX3Q+
KHN0b3JlLCBzcmMsIGFkZHIpOworICAgICAgICByZXR1cm4gaW52b2tlPENDYWxsSW50cHRyPihz
dG9yZSwgc3JjLCBhZGRyKTsKICAgICB9OwogCiAgICAgaW50NjRfdCogcDEgPSBiaXR3aXNlX2Nh
c3Q8aW50NjRfdCo+KHRlc3QxKDQpKTsKQEAgLTIzODYsNyArMjM5Miw3IEBAIHZvaWQgdGVzdFN0
b3JlUHJlUG9zdEluZGV4NjQoKQogICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0
KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBp
bnZva2U8aW50cHRyX3Q+KHN0b3JlLCBzcmMsIGFkZHIpOworICAgICAgICByZXR1cm4gaW52b2tl
PENDYWxsSW50cHRyPihzdG9yZSwgc3JjLCBhZGRyKTsKICAgICB9OwogCiAgICAgaW50NjRfdCog
cDIgPSBiaXR3aXNlX2Nhc3Q8aW50NjRfdCo+KHRlc3QyKDUpKTsKQEAgLTI0MTEsNyArMjQxNyw3
IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXgzMigpCiAgICAgICAgICAgICBlbWl0RnVuY3Rp
b25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICAgICAgcmV0dXJuIGludm9rZTxpbnQzMl90Pihsb2FkLCAmbnVtc1sxXSk7CisgICAgICAgIHJl
dHVybiBpbnZva2U8Q0NhbGxJbnQzMj4obG9hZCwgJm51bXNbMV0pOwogICAgIH07CiAKICAgICBD
SEVDS19FUSh0ZXN0MSg0KSwgMyk7CkBAIC0yNDI5LDcgKzI0MzUsNyBAQCB2b2lkIHRlc3RMb2Fk
UHJlUG9zdEluZGV4MzIoKQogICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBpbnZv
a2U8aW50MzJfdD4obG9hZCwgJm51bXNbMV0pOworICAgICAgICByZXR1cm4gaW52b2tlPENDYWxs
SW50MzI+KGxvYWQsICZudW1zWzFdKTsKICAgICB9OwogCiAgICAgQ0hFQ0tfRVEodGVzdDIoNSks
IDIpOwpAQCAtMjQ1Myw3ICsyNDU5LDcgQEAgdm9pZCB0ZXN0TG9hZFByZVBvc3RJbmRleDY0KCkK
ICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgICAgICByZXR1cm4gaW52b2tlPGludDY0X3Q+KGxvYWQs
ICZudW1zWzFdKTsKKyAgICAgICAgcmV0dXJuIGludm9rZTxDQ2FsbEludDY0Pihsb2FkLCAmbnVt
c1sxXSk7CiAgICAgfTsKIAogICAgIENIRUNLX0VRKHRlc3QxKDQpLCAzKTsKQEAgLTI0NzEsNyAr
MjQ3Nyw3IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXg2NCgpCiAgICAgICAgICAgICBlbWl0
RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9
KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnQ2NF90Pihsb2FkLCAmbnVtc1sxXSk7CisgICAg
ICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnQ2ND4obG9hZCwgJm51bXNbMV0pOwogICAgIH07CiAK
ICAgICBDSEVDS19FUSh0ZXN0Mig1KSwgMik7CkBAIC0yNDk2LDcgKzI1MDIsNyBAQCB2b2lkIHRl
c3RBbmRMZWZ0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPGlu
dDMyX3Q+KGFuZDMyLCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9r
ZTxDQ2FsbEludDMyPihhbmQzMiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMg
PSBuICYgKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7
CiAgICAgICAgICAgICB9CkBAIC0yNTIyLDcgKzI1MjgsNyBAQCB2b2lkIHRlc3RBbmRSaWdodFNo
aWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAg
fSk7CiAKLSAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90PihhbmQz
MiwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQz
Mj4oYW5kMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiAmIChtID4+
IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAg
ICAgfQpAQCAtMjU0OCw3ICsyNTU0LDcgQEAgdm9pZCB0ZXN0QW5kVW5zaWduZWRSaWdodFNoaWZ0
MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7
CiAKLSAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8dWludDMyX3Q+KGFuZDMy
LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50
MzI+KGFuZDMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCByaHMgPSBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4obikgJiAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG0pID4+IGFtb3VudCk7
CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAt
MjU3NCw3ICsyNTgwLDcgQEAgdm9pZCB0ZXN0QW5kTGVmdFNoaWZ0NjQoKQogICAgICAgICAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAg
ICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2NF90PihhbmQ2NCwgbiwgbSk7CisgICAgICAgICAg
ICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQ2ND4oYW5kNjQsIG4sIG0pOwogICAg
ICAgICAgICAgICAgIGludDY0X3QgcmhzID0gbiAmIChtIDw8IGFtb3VudCk7CiAgICAgICAgICAg
ICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjYwMCw3ICsyNjA2
LDcgQEAgdm9pZCB0ZXN0QW5kUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0
LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBs
aHMgPSBpbnZva2U8aW50NjRfdD4oYW5kNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDY0
X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KGFuZDY0LCBuLCBtKTsKICAgICAgICAgICAgICAg
ICBpbnQ2NF90IHJocyA9IG4gJiAobSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNL
X0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI2MjYsNyArMjYzMiw3IEBAIHZvaWQg
dGVzdEFuZFVuc2lnbmVkUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDY0X3QgbGhz
ID0gaW52b2tlPHVpbnQ2NF90PihhbmQ2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWludDY0
X3QgbGhzID0gaW52b2tlPENDYWxsVUludDY0PihhbmQ2NCwgbiwgbSk7CiAgICAgICAgICAgICAg
ICAgdWludDY0X3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG4pICYgKHN0YXRpY19jYXN0
PHVpbnQ2NF90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywg
cmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI2NTIsNyArMjY1OCw3IEBAIHZvaWQgdGVzdFhvckxl
ZnRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAg
ICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4o
eG9yMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxs
SW50MzI+KHhvcjMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gXiAo
bSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAg
ICAgICAgIH0KQEAgLTI2NzgsNyArMjY4NCw3IEBAIHZvaWQgdGVzdFhvclJpZ2h0U2hpZnQzMigp
CiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAot
ICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KHhvcjMyLCBuLCBt
KTsKKyAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPih4b3Iz
MiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMgPSBuIF4gKG0gPj4gYW1vdW50
KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBA
IC0yNzA0LDcgKzI3MTAsNyBAQCB2b2lkIHRlc3RYb3JVbnNpZ25lZFJpZ2h0U2hpZnQzMigpCiAg
ICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAg
ICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTx1aW50MzJfdD4oeG9yMzIsIG4sIG0p
OworICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQzMj4oeG9y
MzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9IHN0YXRpY19jYXN0PHVp
bnQzMl90PihuKSBeIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obSkgPj4gYW1vdW50KTsKICAgICAg
ICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNzMwLDcg
KzI3MzYsNyBAQCB2b2lkIHRlc3RYb3JMZWZ0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAg
IGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0
X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KHhvcjY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBp
bnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0Pih4b3I2NCwgbiwgbSk7CiAgICAgICAgICAg
ICAgICAgaW50NjRfdCByaHMgPSBuIF4gKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAgICBD
SEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNzU2LDcgKzI3NjIsNyBAQCB2
b2lkIHRlc3RYb3JSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7
CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGlu
dm9rZTxpbnQ2NF90Pih4b3I2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMg
PSBpbnZva2U8Q0NhbGxJbnQ2ND4oeG9yNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0
X3QgcmhzID0gbiBeIChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhz
LCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjc4Miw3ICsyNzg4LDcgQEAgdm9pZCB0ZXN0WG9y
VW5zaWduZWRSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZv
a2U8dWludDY0X3Q+KHhvcjY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMg
PSBpbnZva2U8Q0NhbGxVSW50NjQ+KHhvcjY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICB1aW50
NjRfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4obikgXiAoc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwog
ICAgICAgICAgICAgfQpAQCAtMjgwOCw3ICsyODE0LDcgQEAgdm9pZCB0ZXN0T3JMZWZ0U2hpZnQz
MigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsK
IAotICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KG9yMzIsIG4s
IG0pOworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KG9y
MzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiB8IChtIDw8IGFtb3Vu
dCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpA
QCAtMjgzNCw3ICsyODQwLDcgQEAgdm9pZCB0ZXN0T3JSaWdodFNoaWZ0MzIoKQogICAgICAgICAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAg
ICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90PihvcjMyLCBuLCBtKTsKKyAgICAgICAg
ICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPihvcjMyLCBuLCBtKTsKICAg
ICAgICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gfCAobSA+PiBhbW91bnQpOwogICAgICAgICAg
ICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI4NjAsNyArMjg2
Niw3IEBAIHZvaWQgdGVzdE9yVW5zaWduZWRSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1
aW50MzJfdCBsaHMgPSBpbnZva2U8dWludDMyX3Q+KG9yMzIsIG4sIG0pOworICAgICAgICAgICAg
ICAgIHVpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQzMj4ob3IzMiwgbiwgbSk7CiAgICAg
ICAgICAgICAgICAgdWludDMyX3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG4pIHwgKHN0
YXRpY19jYXN0PHVpbnQzMl90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNL
X0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI4ODYsNyArMjg5Miw3IEBAIHZvaWQg
dGVzdE9yTGVmdFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxp
bnQ2NF90PihvcjY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9r
ZTxDQ2FsbEludDY0PihvcjY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IHJocyA9
IG4gfCAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsK
ICAgICAgICAgICAgIH0KQEAgLTI5MTIsNyArMjkxOCw3IEBAIHZvaWQgdGVzdE9yUmlnaHRTaGlm
dDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0p
OwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8aW50NjRfdD4ob3I2NCwg
biwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQ2ND4o
b3I2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuIHwgKG0gPj4gYW1v
dW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9
CkBAIC0yOTM4LDcgKzI5NDQsNyBAQCB2b2lkIHRlc3RPclVuc2lnbmVkUmlnaHRTaGlmdDY0KCkK
ICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0g
ICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gaW52b2tlPHVpbnQ2NF90PihvcjY0LCBuLCBt
KTsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50NjQ+KG9y
NjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IHN0YXRpY19jYXN0PHVp
bnQ2NF90PihuKSB8IChzdGF0aWNfY2FzdDx1aW50NjRfdD4obSkgPj4gYW1vdW50KTsKICAgICAg
ICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yOTg0LDcg
KzI5OTAsNyBAQCB2b2lkIHRlc3RDb21wYXJlRmxvYXQoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUNv
bmRpdGlvbiBjb25kaXRpb24pCiAgICAgICAgIGZvciAoYXV0byBiIDogb3BlcmFuZHMpIHsKICAg
ICAgICAgICAgIGFyZzEgPSBhOwogICAgICAgICAgICAgYXJnMiA9IGI7Ci0gICAgICAgICAgICBD
SEVDS19FUShpbnZva2U8aW50Pihjb21wYXJlRmxvYXQpLCBpbnZva2U8aW50Pihjb21wYXJlRmxv
YXRHZW5lcmljKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4oY29t
cGFyZUZsb2F0KSwgaW52b2tlPENDYWxsSW50MzI+KGNvbXBhcmVGbG9hdEdlbmVyaWMpKTsKICAg
ICAgICAgfQogICAgIH0KIH0KQEAgLTMwMjgsMTEgKzMwMzQsMTMgQEAgdm9pZCB0ZXN0TW92ZUNv
bmRpdGlvbmFsbHlGbG9hdGluZ1BvaW50KE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24g
Y29uZGl0aW8KICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9Owog
CisgICAgdXNpbmcgUmVzdWx0VHlwZSA9IHN0ZDo6Y29uZGl0aW9uYWxfdDxzdGQ6OmlzX2ludGVn
cmFsX3Y8U2VsZWN0aW9uVHlwZT4sIENDYWxsSW50ZWdlcjxTZWxlY3Rpb25UeXBlPiwgU2VsZWN0
aW9uVHlwZT47CisKICAgICBmb3IgKGF1dG8gYSA6IG9wZXJhbmRzKSB7CiAgICAgICAgIGZvciAo
YXV0byBiIDogb3BlcmFuZHMpIHsKICAgICAgICAgICAgIGFyZzEgPSBhOwogICAgICAgICAgICAg
YXJnMiA9IGI7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8U2VsZWN0aW9uVHlwZT4odGVz
dENvZGUpLCBleHBlY3RlZFJlc3VsdChhLCBiKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZv
a2U8UmVzdWx0VHlwZT4odGVzdENvZGUpLCBleHBlY3RlZFJlc3VsdChhLCBiKSk7CiAgICAgICAg
IH0KICAgICB9CiB9CkBAIC0zNjAxLDkgKzM2MDksMTEgQEAgdm9pZCB0ZXN0TW92ZUNvbmRpdGlv
bmFsbHlGbG9hdGluZ1BvaW50U2FtZUFyZyhNYWNyb0Fzc2VtYmxlcjo6RG91YmxlQ29uZGl0aW9u
IGMKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9OwogCisgICAg
dXNpbmcgUmVzdWx0VHlwZSA9IHN0ZDo6Y29uZGl0aW9uYWxfdDxzdGQ6OmlzX2ludGVncmFsX3Y8
U2VsZWN0aW9uVHlwZT4sIENDYWxsSW50ZWdlcjxTZWxlY3Rpb25UeXBlPiwgU2VsZWN0aW9uVHlw
ZT47CisKICAgICBmb3IgKGF1dG8gYSA6IG9wZXJhbmRzKSB7CiAgICAgICAgIGFyZzEgPSBhOwot
ICAgICAgICBDSEVDS19FUShpbnZva2U8U2VsZWN0aW9uVHlwZT4odGVzdENvZGUpLCBleHBlY3Rl
ZFJlc3VsdChhKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxSZXN1bHRUeXBlPih0ZXN0Q29k
ZSksIGV4cGVjdGVkUmVzdWx0KGEpKTsKICAgICB9CiB9CiAKQEAgLTM3NzAsNyArMzc4MCw3IEBA
IHZvaWQgdGVzdEF0b21pY1N0cm9uZ0NBU0ZpbGw4KCkKICAgICB1aW50OF90IGRhdGFbXSA9IHsK
ICAgICAgICAgMHhmZiwgMHhmZiwKICAgICB9OwotICAgIHVpbnQzMl90IHJlc3VsdCA9IGludm9r
ZTx1aW50MzJfdD4odGVzdCwgMHhmZmZmZmZmZmZmZmZmZmZmVUxMLCAwLCBkYXRhKTsKKyAgICB1
aW50MzJfdCByZXN1bHQgPSBpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIDB4ZmZmZmZmZmZmZmZm
ZmZmZlVMTCwgMCwgZGF0YSk7CiAgICAgQ0hFQ0tfRVEocmVzdWx0LCAweGZmKTsKICAgICBDSEVD
S19FUShkYXRhWzBdLCAwKTsKICAgICBDSEVDS19FUShkYXRhWzFdLCAweGZmKTsKQEAgLTM3OTEs
NyArMzgwMSw3IEBAIHZvaWQgdGVzdEF0b21pY1N0cm9uZ0NBU0ZpbGwxNigpCiAgICAgdWludDE2
X3QgZGF0YVtdID0gewogICAgICAgICAweGZmZmYsIDB4ZmZmZiwKICAgICB9OwotICAgIHVpbnQz
Ml90IHJlc3VsdCA9IGludm9rZTx1aW50MzJfdD4odGVzdCwgMHhmZmZmZmZmZmZmZmZmZmZmVUxM
LCAwLCBkYXRhKTsKKyAgICB1aW50MzJfdCByZXN1bHQgPSBpbnZva2U8Q0NhbGxVSW50MzI+KHRl
c3QsIDB4ZmZmZmZmZmZmZmZmZmZmZlVMTCwgMCwgZGF0YSk7CiAgICAgQ0hFQ0tfRVEocmVzdWx0
LCAweGZmZmYpOwogICAgIENIRUNLX0VRKGRhdGFbMF0sIDApOwogICAgIENIRUNLX0VRKGRhdGFb
MV0sIDB4ZmZmZik7CkBAIC00MDUxLDcgKzQwNjEsNyBAQCB2b2lkIHRlc3RTdWIzMkFyZ0ltbSgp
CiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDMyT3BlcmFuZHMo
KSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4oc3ViLCB2YWx1ZSksIHN0
YXRpY19jYXN0PHVpbnQzMl90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOworICAgICAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsVUludDMyPihzdWIsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CiAgICAgfQogfQogCkBAIC00Njg0LDExICs0Njk0LDEy
IEBAIHZvaWQgdGVzdFByb2JlUHJlc2VydmVzR1BSUygpCiAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGNwdS5ncHIoaWQpLCB0ZXN0V29yZChp
ZCkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxw
ZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdpc3Rl
cigpOyBpZCA9IG5leHRJRChpZCkpCisgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhl
bHBlcnM6OmZpcnN0RlBSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lz
dGVyKCk7IGlkID0gbmV4dElEKGlkKSkgewogI2lmIENQVShNSVBTKQogICAgICAgICAgICAgICAg
IGlmICghKGlkICYgMSkpCiAjZW5kaWYKICAgICAgICAgICAgICAgICBDSEVDS19FUShjcHUuZnBy
PHVpbnQ2NF90PihpZCksIHRlc3RXb3JkNjQoaWQpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
fSk7CiAKICAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgc3RhdGUuCkBAIC01MTMxLDgg
KzUxNDIsOCBAQCB2b2lkIHRlc3RCeXRlU3dhcCgpCiAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxv
Z3VlKGppdCk7CiAgICAgICAgIGppdC5yZXQoKTsKICAgICB9KTsKLSAgICBDSEVDS19FUShpbnZv
a2U8dWludDY0X3Q+KGJ5dGVTd2FwMTYsIDB4YWFiYmNjZGRlZTAwMTEyMiksIHN0YXRpY19jYXN0
PHVpbnQ2NF90PigweDIyMTEpKTsKLSAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KGJ5dGVT
d2FwMTYsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweGFhZmYp
KTsKKyAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KGJ5dGVTd2FwMTYsIDB4YWFiYmNj
ZGRlZTAwMTEyMiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweDIyMTEpKTsKKyAgICBDSEVDS19F
UShpbnZva2U8Q0NhbGxVSW50NjQ+KGJ5dGVTd2FwMTYsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0
YXRpY19jYXN0PHVpbnQ2NF90PigweGFhZmYpKTsKIAogICAgIGF1dG8gYnl0ZVN3YXAzMiA9IGNv
bXBpbGUoW10gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAgIGVtaXRGdW5jdGlvblByb2xv
Z3VlKGppdCk7CkBAIC01MTQxLDggKzUxNTIsOCBAQCB2b2lkIHRlc3RCeXRlU3dhcCgpCiAgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAgICAgIGppdC5yZXQoKTsKICAgICB9
KTsKLSAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KGJ5dGVTd2FwMzIsIDB4YWFiYmNjZGRl
ZTAwMTEyMiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweDIyMTEwMGVlKSk7Ci0gICAgQ0hFQ0tf
RVEoaW52b2tlPHVpbnQ2NF90PihieXRlU3dhcDMyLCAweGFhYmJjY2RkZWUwMGZmYWEpLCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oMHhhYWZmMDBlZSkpOworICAgIENIRUNLX0VRKGludm9rZTxDQ2Fs
bFVJbnQ2ND4oYnl0ZVN3YXAzMiwgMHhhYWJiY2NkZGVlMDAxMTIyKSwgc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KDB4MjIxMTAwZWUpKTsKKyAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KGJ5
dGVTd2FwMzIsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweGFh
ZmYwMGVlKSk7CiAKICAgICBhdXRvIGJ5dGVTd2FwNjQgPSBjb21waWxlKFtdIChDQ2FsbEhlbHBl
cnMmIGppdCkgewogICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQpOwpAQCAtNTE1MSw4
ICs1MTYyLDggQEAgdm9pZCB0ZXN0Qnl0ZVN3YXAoKQogICAgICAgICBlbWl0RnVuY3Rpb25FcGls
b2d1ZShqaXQpOwogICAgICAgICBqaXQucmV0KCk7CiAgICAgfSk7Ci0gICAgQ0hFQ0tfRVEoaW52
b2tlPHVpbnQ2NF90PihieXRlU3dhcDY0LCAweGFhYmJjY2RkZWUwMDExMjIpLCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oMHgyMjExMDBlZWRkY2NiYmFhKSk7Ci0gICAgQ0hFQ0tfRVEoaW52b2tlPHVp
bnQ2NF90PihieXRlU3dhcDY0LCAweGFhYmJjY2RkZWUwMGZmYWEpLCBzdGF0aWNfY2FzdDx1aW50
NjRfdD4oMHhhYWZmMDBlZWRkY2NiYmFhKSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUlu
dDY0PihieXRlU3dhcDY0LCAweGFhYmJjY2RkZWUwMDExMjIpLCBzdGF0aWNfY2FzdDx1aW50NjRf
dD4oMHgyMjExMDBlZWRkY2NiYmFhKSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0
PihieXRlU3dhcDY0LCAweGFhYmJjY2RkZWUwMGZmYWEpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
MHhhYWZmMDBlZWRkY2NiYmFhKSk7CiAjZW5kaWYKIH0KIApAQCAtNTIzNiw3ICs1MjQ3LDcgQEAg
dm9pZCB0ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwogICAgICAgICB1aW50NjRfdCBhcnJheVtdID0geyBVSU5UNjRfTUFYIC0gMSwgVUlOVDY0
X01BWCAtIDIsIFVJTlQ2NF9NQVggLSAzLCBVSU5UNjRfTUFYIC0gNCwgVUlOVDY0X01BWCAtIDUs
IH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdCwgYXJyYXksIHN0YXRp
Y19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBVSU5UNjRfTUFYIC0gMyk7CisgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdp
c3Rlcj4oMykpLCBVSU5UNjRfTUFYIC0gMyk7CiAgICAgfQogICAgIHsKICAgICAgICAgYXV0byB0
ZXN0ID0gY29tcGlsZShbPV0oQ0NhbGxIZWxwZXJzJiBqaXQpIHsKQEAgLTUyNDYsNyArNTI1Nyw3
IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKICAgICAgICAgdWludDY0X3QgYXJyYXlbXSA9IHsgVUlOVDY0X01BWCAtIDEsIFVJ
TlQ2NF9NQVggLSAyLCBVSU5UNjRfTUFYIC0gMywgVUlOVDY0X01BWCAtIDQsIFVJTlQ2NF9NQVgg
LSA1LCB9OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QsIGFycmF5LCBz
dGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDY0X01BWCAtIDUpOworICAgICAgICBD
SEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BV
UmVnaXN0ZXI+KDMpKSwgVUlOVDY0X01BWCAtIDUpOwogICAgIH0KICNlbmRpZgogCkBAIC01MjU5
LDcgKzUyNzAsNyBAQCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVpbnQzMl90IGFycmF5W10gPSB7IFVJTlQzMl9N
QVggLSAxLCBVSU5UMzJfTUFYIC0gMiwgVUlOVDMyX01BWCAtIDMsIFVJTlQzMl9NQVggLSA0LCBV
SU5UMzJfTUFYIC0gNSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0
LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQzMl9NQVggLSAzKTsK
KyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3RhdGlj
X2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQzMl9NQVggLSAzKTsKICAgICB9CiAgICAgewog
ICAgICAgICBhdXRvIHRlc3QgPSBjb21waWxlKFs9XShDQ2FsbEhlbHBlcnMmIGppdCkgewpAQCAt
NTI2OSw3ICs1MjgwLDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAgICB1aW50MzJfdCBhcnJheVtdID0geyBVSU5U
MzJfTUFYIC0gMSwgVUlOVDMyX01BWCAtIDIsIFVJTlQzMl9NQVggLSAzLCBVSU5UMzJfTUFYIC0g
NCwgVUlOVDMyX01BWCAtIDUsIH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4o
dGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBVSU5UMzJfTUFYIC0g
NSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgYXJyYXksIHN0
YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBVSU5UMzJfTUFYIC0gNSk7CiAgICAgfQogCiAg
ICAgLy8gbG9hZDE2CkBAIC01MjgxLDcgKzUyOTIsNyBAQCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4
KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVpbnQxNl90
IGFycmF5W10gPSB7IFVJTlQxNl9NQVggLSAxLCBVSU5UMTZfTUFYIC0gMiwgVUlOVDE2X01BWCAt
IDMsIFVJTlQxNl9NQVggLSA0LCBVSU5UMTZfTUFYIC0gNSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigz
KSksIFVJTlQxNl9NQVggLSAzKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMy
Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQxNl9NQVgg
LSAzKTsKICAgICB9CiAgICAgewogICAgICAgICBhdXRvIHRlc3QgPSBjb21waWxlKFs9XShDQ2Fs
bEhlbHBlcnMmIGppdCkgewpAQCAtNTI5MSw3ICs1MzAyLDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJ
bmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAgICB1aW50
MTZfdCBhcnJheVtdID0geyBVSU5UMTZfTUFYIC0gMSwgVUlOVDE2X01BWCAtIDIsIFVJTlQxNl9N
QVggLSAzLCBVSU5UMTZfTUFYIC0gNCwgc3RhdGljX2Nhc3Q8dWludDE2X3Q+KC0xKSwgfTsKLSAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8
VUNQVVJlZ2lzdGVyPigzKSksIDB4ZmZmZik7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2Fs
bFVJbnQzMj4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCAweGZm
ZmYpOwogICAgIH0KIAogICAgIC8vIGxvYWQxNlNpZ25lZEV4dGVuZFRvMzIKQEAgLTUzMDMsNyAr
NTMxNCw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKICAgICAgICAgdWludDE2X3QgYXJyYXlbXSA9IHsgMSwgMiwgMHg3ZmYz
LCA0LCA1LCB9OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHRlc3QsIGFycmF5
LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgMHg3ZmYzKTsKKyAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lz
dGVyPigzKSksIDB4N2ZmMyk7CiAgICAgfQogICAgIHsKICAgICAgICAgYXV0byB0ZXN0ID0gY29t
cGlsZShbPV0oQ0NhbGxIZWxwZXJzJiBqaXQpIHsKQEAgLTUzMTMsNyArNTMyNCw3IEBAIHZvaWQg
dGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsK
ICAgICAgICAgdWludDE2X3QgYXJyYXlbXSA9IHsgVUlOVDE2X01BWCAtIDEsIFVJTlQxNl9NQVgg
LSAyLCBVSU5UMTZfTUFYIC0gMywgVUlOVDE2X01BWCAtIDQsIHN0YXRpY19jYXN0PHVpbnQxNl90
PigtMSksIH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgYXJyYXks
IHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oLTEp
KTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3Rh
dGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIHN0YXRpY19jYXN0PHVpbnQzMl90PigtMSkpOwog
ICAgIH0KIAogICAgIC8vIGxvYWQ4CkBAIC01MzI1LDcgKzUzMzYsNyBAQCB2b2lkIHRlc3RMb2Fk
QmFzZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAg
IHVpbnQ4X3QgYXJyYXlbXSA9IHsgVUlOVDhfTUFYIC0gMSwgVUlOVDhfTUFYIC0gMiwgVUlOVDhf
TUFYIC0gMywgVUlOVDhfTUFYIC0gNCwgVUlOVDhfTUFYIC0gNSwgfTsKLSAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVy
PigzKSksIFVJTlQ4X01BWCAtIDMpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50
MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDhfTUFY
IC0gMyk7CiAgICAgfQogICAgIHsKICAgICAgICAgYXV0byB0ZXN0ID0gY29tcGlsZShbPV0oQ0Nh
bGxIZWxwZXJzJiBqaXQpIHsKQEAgLTUzMzUsNyArNTM0Niw3IEBAIHZvaWQgdGVzdExvYWRCYXNl
SW5kZXgoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWlu
dDhfdCBhcnJheVtdID0geyBVSU5UOF9NQVggLSAxLCBVSU5UOF9NQVggLSAyLCBVSU5UOF9NQVgg
LSAzLCBVSU5UOF9NQVggLSA0LCBzdGF0aWNfY2FzdDx1aW50OF90PigtMSksIH07Ci0gICAgICAg
IENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVS
ZWdpc3Rlcj4oMykpLCAweGZmKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMy
Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIDB4ZmYpOwogICAg
IH0KIAogICAgIC8vIGxvYWQ4U2lnbmVkRXh0ZW5kVG8zMgpAQCAtNTM0Nyw3ICs1MzU4LDcgQEAg
dm9pZCB0ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwogICAgICAgICB1aW50OF90IGFycmF5W10gPSB7IDEsIDIsIDB4NzMsIDQsIDUsIH07Ci0g
ICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0
PFVDUFVSZWdpc3Rlcj4oMykpLCAweDczKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxs
VUludDMyPih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIDB4NzMp
OwogICAgIH0KICAgICB7CiAgICAgICAgIGF1dG8gdGVzdCA9IGNvbXBpbGUoWz1dKENDYWxsSGVs
cGVycyYgaml0KSB7CkBAIC01MzU3LDcgKzUzNjgsNyBAQCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4
KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVpbnQ4X3Qg
YXJyYXlbXSA9IHsgVUlOVDhfTUFYIC0gMSwgVUlOVDhfTUFYIC0gMiwgVUlOVDhfTUFYIC0gMywg
VUlOVDhfTUFYIC0gNCwgc3RhdGljX2Nhc3Q8dWludDhfdD4oLTEpLCB9OwotICAgICAgICBDSEVD
S19FUShpbnZva2U8dWludDMyX3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0
ZXI+KDMpKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KC0xKSk7CisgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4o
MykpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oLTEpKTsKICAgICB9CiAKICAgICAvLyBsb2FkRG91
YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCA0
MWY0YmQzMWY4MTM0NTI0ZWZjYTY2YmFjZjRkMDg1ZjUyY2FiMjAzLi5iZDYyMGE2ZmI4OTFmYmIx
MzUyMmMyMzk4Yzg3OTBiOTNlOTViMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKQEAgLTQwMCw3ICs0MDAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uT2JqZWN0QXNzaWduVW50eXBlZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbAogICAgIG9iamVjdEFzc2lnbkdlbmVyaWMoZ2xvYmFsT2JqZWN0LCB2bSwgdGFyZ2V0LCBz
b3VyY2UpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlVGhp
cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBjb25z
dHJ1Y3RvciwgdWludDMyX3QgaW5saW5lQ2FwYWNpdHkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNyZWF0ZVRoaXMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU09iamVjdCogY29uc3RydWN0b3IsIENDYWxsVUludDMyIGlubGluZUNhcGFjaXR5
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNzYwLDcgKzc2MCw3IEBAIEFM
V0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2V0QnlWYWxDZWxsSW50KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFZNJiB2CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVl
KGJhc2UpLmdldChnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbmRleCkpKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBiYXNlLCBpbnQzMl90IGluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeVZhbE9iamVjdEludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgQ0NhbGxJbnQzMiBpbmRleCkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTc2OSw3ICs3NjksNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYgogICAgIHJldHVybiBnZXRCeVZhbENlbGxJbnQoZ2xvYmFsT2JqZWN0LCB2bSwgYmFz
ZSwgaW5kZXgpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlW
YWxTdHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNTdHJpbmcqIGJhc2UsIGludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBiYXNlLCBDQ2FsbEludDMyIGluZGV4KSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtODU4LDcgKzg1OCw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1ib2xOb25TdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iCiAgICAgcHV0QnlWYWxDZWxsSW50ZXJuYWw8ZmFsc2UsIGZhbHNl
PihnbG9iYWxPYmplY3QsIHZtLCBjZWxsLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbEludDMyIGluZGV4LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC04NzQs
NyArODc0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5
b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2IKICAgICAgICAgb2JqZWN0LCBnbG9i
YWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSksIHNsb3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsSW50MzIgaW5kZXgsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTg5MCw3ICs4OTAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTRwogICAgICAgICBv
YmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJf
dCBpbmRleCwgZG91YmxlIHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwg
ZG91YmxlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtOTA4LDcg
KzkwOCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZh
bEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoCiAgICAgICAgIG9iamVjdCwgZ2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIGpzVmFsdWUsIHNsb3QpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRB
cnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5k
c05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBvYmplY3QsIENDYWxsSW50MzIgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTkyNiw3ICs5MjYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwg
dm9pZAogICAgICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwg
aW5kZXgpLCBqc1ZhbHVlLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90
IGluZGV4LCBkb3VibGUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbEludDMyIGlu
ZGV4LCBkb3VibGUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC05
NDMsNyArOTQzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJs
ZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHYKICAgICBDb21tb25TbG93UGF0
aHM6OnB1dERpcmVjdFdpdGhSZWlmeSh2bSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QsIElkZW50aWZp
ZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRz
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9u
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9i
amVjdCwgQ0NhbGxJbnQzMiBpbmRleCwgZG91YmxlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbE5vblN0cmljdCwgdm9pZCwgKEpT
R2wKICAgICBwdXRCeVZhbENlbGxJbnRlcm5hbDxmYWxzZSwgdHJ1ZT4oZ2xvYmFsT2JqZWN0LCB2
bSwgY2VsbCwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9u
ZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJl
eW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTAzMCw3ICsx
MDMwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsICgKICAgICBDb21tb25TbG93UGF0aHM6OnB1
dERpcmVjdFdpdGhSZWlmeSh2bSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QsIElkZW50aWZpZXI6OmZy
b20odm0sIGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRB
cnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RC
ZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsSW50MzIgaW5kZXgsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEwNjUs
NyArMTA2NSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hE
b3VibGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIs
IGludDMyX3QgZWxlbWVudENvdW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BcnJheVB1c2hNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSwgdm9pZCogYnVmZmVyLCBDQ2FsbEludDMyIGVsZW1l
bnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEwOTIsNyArMTA5
Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hNdWx0aXBs
ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIs
IGludDMyX3QgZWxlbWVudENvdW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BcnJheVB1c2hEb3VibGVNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSwgdm9pZCogYnVmZmVyLCBDQ2FsbEludDMy
IGVsZW1lbnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEyODAs
NyArMTI4MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0
cmluZ05vUmFkaXgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iCiAgICAgcmV0dXJuIHBhcnNlSW50
UmVzdWx0KHBhcnNlSW50KHZpZXdXaXRoU3RyaW5nLnZpZXcsIDApKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIGludDMyX3Qg
cmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3RyaW5n
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5n
KiBzdHJpbmcsIENDYWxsSW50MzIgcmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0xMjkzLDcgKzEyOTMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplYwogICAgIHJl
dHVybiBwYXJzZUludFJlc3VsdChwYXJzZUludCh2aWV3V2l0aFN0cmluZy52aWV3LCByYWRpeCkp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRHZW5lcmlj
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIENDYWxsSW50MzIgcmFkaXgpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMzA0LDcgKzEzMDQsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRHZW5lcmljLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZQogICAgIH0pOwogfQogICAgICAgICAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0U3RyaW5nLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCwgSlNTdHJpbmcq
IGlucHV0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0U3Ry
aW5nLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEpTU3RyaW5nKiBpbnB1dCkpCiB7CiAgICAg
U3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtMTMx
NSw3ICsxMzE1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRl
c3RTdHJpbmcsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1cm4gcmVnRXhw
T2JqZWN0LT50ZXN0SW5saW5lKGdsb2JhbE9iamVjdCwgaW5wdXQpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdCwgc2l6ZV90LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRBcmd1bWVudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UmVnRXhwVGVzdCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQXJndW1lbnQpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3Bl
KGZhbHNlKTsKICAgICAKQEAgLTEzMzEsNyArMTMzMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25SZWdFeHBUZXN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqCiAgICAgcmV0dXJuIHJlZ0V4cE9iamVjdC0+dGVzdElubGluZShnbG9iYWxPYmplY3QsIGlu
cHV0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RH
ZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50KSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0R2VuZXJpYywgQ0NhbGxTaXpl
OjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpKQogewogICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTE0
OTksNyArMTQ5OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXRYb3JI
ZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU0JpZ0ludDo6Yml0d2lzZVhvcihnbG9iYWxPYmplY3QsIGxlZnRPcGVyYW5k
LCByaWdodE9wZXJhbmQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVTdHJpY3RFcUNlbGwsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1MDgsNyArMTUwOCw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXFDZWxsLCBzaXplX3Qs
IChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6c3RyaWN0RXF1YWxGb3JDZWxs
cyhnbG9iYWxPYmplY3QsIG9wMSwgb3AyKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNhbWVWYWx1ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgYXJnMSwgRW5jb2RlZEpTVmFsdWUgYXJnMikpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2FtZVZhbHVlLCBDQ2FsbFNpemU6OkludGVnZXJUeXBl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYXJnMSwgRW5j
b2RlZEpTVmFsdWUgYXJnMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2
MDksNyArMTYwOSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZh
bFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoYmFzZVZhbHVlLmdldChnbG9iYWxPYmplY3Qs
IHByb3BlcnR5LCBzbG90KSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlJZFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRU
aGlzLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0
aFRoaXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjIxLDcgKzE2MjEsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgcHV0V2l0aFRoaXM8dHJ1ZT4oZ2xvYmFsT2JqZWN0
LCBlbmNvZGVkQmFzZSwgZW5jb2RlZFRoaXMsIGVuY29kZWRWYWx1ZSwgaWRlbnQpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzLCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxVSW50cHRyIHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0x
NjY5LDcgKzE2NjksNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGRlZmluZURhdGFQcm9w
ZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdgogICAgICAgICBiYXNlLT5t
ZXRob2RUYWJsZSh2bSktPmRlZmluZU93blByb3BlcnR5KGJhc2UsIGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yLCB0cnVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVy
dHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHksIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIENDYWxs
SW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2
ODIsNyArMTY4Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVE
YXRhUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgZGVmaW5lRGF0YVBy
b3BlcnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIHByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSksIGF0dHJpYnV0ZXMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEpTU3RyaW5nKiBwcm9wZXJ0eSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZywgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBKU1N0cmlu
ZyogcHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxJbnQzMiBhdHRy
aWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTY5NSw3ICsxNjk1
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0
eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWMKICAgICBkZWZpbmVEYXRhUHJvcGVydHkoZ2xv
YmFsT2JqZWN0LCB2bSwgYmFzZSwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKSwgYXR0cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVy
dHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJ
ZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNl
LCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMTcwMyw3ICsxNzAzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWwKICAgICBkZWZp
bmVEYXRhUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgSWRlbnRpZmllcjo6ZnJvbVVp
ZCh2bSwgcHJvcGVydHkpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgYXR0cmlidXRl
cyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJv
cGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogYmFzZSwgU3ltYm9sKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBp
bnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRl
ZmluZURhdGFQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBiYXNlLCBTeW1ib2wqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTE3MjEsNyArMTcyMSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQg
ZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWCiAg
ICAgICAgIGJhc2UtPm1ldGhvZFRhYmxlKHZtKS0+ZGVmaW5lT3duUHJvcGVydHkoYmFzZSwgZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHRydWUpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkUHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIs
IGludDMyX3QgYXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEpTT2Jq
ZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3MzMsNyArMTczMyw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqCiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmpl
Y3QsIHZtLCBiYXNlLCBwcm9wZXJ0eU5hbWUsIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJv
cGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogYmFzZSwgSlNTdHJpbmcqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCog
c2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgSlNTdHJpbmcqIHByb3BlcnR5LCBKU09i
amVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBDQ2FsbEludDMyIGF0dHJpYnV0ZXMpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNzQ1LDcgKzE3NDUsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmlu
Zywgdm9pZCwgKEpTR2xvYmFsTwogICAgIGRlZmluZUFjY2Vzc29yUHJvcGVydHkoZ2xvYmFsT2Jq
ZWN0LCB2bSwgYmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0ZXIsIHNldHRlciwgYXR0cmlidXRlcyk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclBy
b3BlcnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U09iamVjdCogYmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0
dGVyLCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVudCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlx
dWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0
ZXIsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKQEAgLTE3NTMsNyArMTc1Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsCiAgICAgZGVm
aW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBJZGVudGlmaWVyOjpm
cm9tVWlkKHZtLCBwcm9wZXJ0eSksIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlT
eW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFz
ZSwgU3ltYm9sKiBwcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwg
aW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
ZWZpbmVBY2Nlc3NvclByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFN5bWJvbCogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0
ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE3NjEsNyArMTc2MSw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3ltYm9sLCB2b2lkLCAo
SlNHbG9iYWxPCiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBi
YXNlLCBJZGVudGlmaWVyOjpmcm9tVWlkKHByb3BlcnR5LT5wcml2YXRlTmFtZSgpKSwgZ2V0dGVy
LCBzZXR0ZXIsIGF0dHJpYnV0ZXMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgdm9pZCogYnVmZmVyLCBzaXplX3Qgc2l6ZSkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXksIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgdm9pZCogYnVm
ZmVyLCBDQ2FsbFNpemUgc2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTE3ODAsNyArMTc4MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdF
bXB0eUFycmF5LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyCiAgICAgcmV0dXJuIGJp
dHdpc2VfY2FzdDxjaGFyKj4oSlNBcnJheTo6Y3JlYXRlKHZtLCBhcnJheVN0cnVjdHVyZSkpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3Ry
dWN0dXJlLCBpbnQzMl90IHNpemUsIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIENDYWxsSW50
MzIgc2l6ZSwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0xODA1LDcgKzE4MDUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAg
IHJldHVybiBiaXR3aXNlX2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplQW5kSGludCwgY2hhciosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCBpbnQz
Ml90IHNpemUsIGludDMyX3QgdmVjdG9yTGVuZ3RoSGludCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemVBbmRI
aW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJy
YXlTdHJ1Y3R1cmUsIENDYWxsSW50MzIgc2l6ZSwgQ0NhbGxJbnQzMiB2ZWN0b3JMZW5ndGhIaW50
LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTE4NDQsNyArMTg0NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
ZXdBcnJheUJ1ZmZlciwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDhB
cnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aFNpemUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxs
SW50cHRyIGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTg2MCw3ICsxODYwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld0ludDhBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbE8KICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlW
aWV3V2l0aEFyZ3VtZW50czxKU0ludDhBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVu
Y29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwg
Y2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQx
NkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg3Niw3ICsxODc2LDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoT25lQXJndW1lbnQs
IGNoYXIqLCAoSlNHbG9iYWwKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29u
c3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0ludDE2QXJyYXk+KGds
b2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MzJBcnJheVdpdGhT
aXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBs
ZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTE4OTIsNyArMTg5Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJ
bnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsCiAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhB
cmd1bWVudHM8SlNJbnQzMkFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZh
bHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld1VpbnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2
ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4QXJyYXlX
aXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xOTA4LDcgKzE5MDgsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhcios
IChKU0dsb2JhbAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RH
ZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWludDhBcnJheT4oZ2xvYmFsT2Jq
ZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhT
aXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRoU2l6ZSwgY2hhciosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0NhbGxJ
bnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0xOTI0LDcgKzE5MjQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSgogICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZp
ZXdXaXRoQXJndW1lbnRzPEpTVWludDhDbGFtcGVkQXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0
dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3Qg
bGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld1VpbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0aCwgY2hhciogdmVj
dG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTk0MCw3ICsxOTQwLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aE9u
ZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmEKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU1VpbnQx
NkFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51
bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQz
MkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MzJBcnJheVdpdGhTaXplLCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBD
Q2FsbEludHB0ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTE5NTYsNyArMTk1Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdVaW50MzJBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhCiAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFy
cmF5Vmlld1dpdGhBcmd1bWVudHM8SlNVaW50MzJBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3Qg
bGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld0Zsb2F0MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBsZW5ndGgsIGNoYXIqIHZl
Y3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5NzIsNyArMTk3Miw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRo
T25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNGbG9h
dDMyQXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6
bnVsbG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3Rmxv
YXQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0xOTg4LDcgKzE5ODgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xv
YgogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlw
ZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTRmxvYXQ2NEFycmF5PihnbG9iYWxPYmplY3QsIHN0
cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ0ludDY0QXJyYXlXaXRoU2l6ZSwgY2hhcios
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50
cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld0JpZ0ludDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBj
aGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDA0LDcg
KzIwMDQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnSW50NjRB
cnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsbwogICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRz
PEpTQmlnSW50NjRBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwg
MCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdCaWdVaW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZl
Y3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnVWludDY0QXJy
YXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDU3LDEzICsyMDU3LDEzIEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVBY3RpdmF0aW9uRGlyZWN0LCBKU0NlbGwq
LCAoVk0qIHZtUG9pbnRlCiAgICAgcmV0dXJuIEpTTGV4aWNhbEVudmlyb25tZW50OjpjcmVhdGUo
dm0sIHN0cnVjdHVyZSwgc2NvcGUsIHRhYmxlLCBpbml0aWFsVmFsdWUpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzLCBKU0NlbGwq
LCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVpbnQzMl90IGxlbmd0aCwg
dWludDMyX3QgbWluQ2FwYWNpdHkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNyZWF0ZURpcmVjdEFyZ3VtZW50cywgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBDQ2FsbFVJbnQzMiBsZW5ndGgsIENDYWxsVUludDMyIG1pbkNhcGFjaXR5
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgRGlyZWN0QXJndW1lbnRzKiBy
ZXN1bHQgPSBEaXJlY3RBcmd1bWVudHM6OmNyZWF0ZSgKLSAgICAgICAgdm0sIHN0cnVjdHVyZSwg
bGVuZ3RoLCBzdGQ6Om1heChsZW5ndGgsIG1pbkNhcGFjaXR5KSk7CisgICAgICAgIHZtLCBzdHJ1
Y3R1cmUsIGxlbmd0aCwgc3RkOjptYXg8dWludDMyX3Q+KGxlbmd0aCwgbWluQ2FwYWNpdHkpKTsK
ICAgICAvLyBUaGUgY2FsbGVyIHdpbGwgc3RvcmUgdG8gdGhpcyBvYmplY3Qgd2l0aG91dCBiYXJy
aWVycy4gTW9zdCBsaWtlbHksIGF0IHRoaXMgcG9pbnQsIHRoaXMgaXMKICAgICAvLyBzdGlsbCBh
IHlvdW5nIG9iamVjdCBhbmQgc28gbm8gYmFycmllcnMgYXJlIG5lZWRlZC4gQnV0IGl0J3MgZ29v
ZCB0byBiZSBjYXJlZnVsIGFueXdheSwKICAgICAvLyBzaW5jZSB0aGUgR0Mgc2hvdWxkIGJlIGFs
bG93ZWQgdG8gZG8gY3JhenkgKGxpa2UgcHJldGVudXJpbmcsIGZvciBleGFtcGxlKS4KQEAgLTIw
NzEsNyArMjA3MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVE
aXJlY3RBcmd1bWVudHMsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFy
Z3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3RoLCBK
U0Z1bmN0aW9uKiBjYWxsZWUsIEpTTGV4aWNhbEVudmlyb25tZW50KiBzY29wZSkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJl
Z2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQzMiBsZW5ndGgsIEpTRnVuY3Rpb24qIGNh
bGxlZSwgSlNMZXhpY2FsRW52aXJvbm1lbnQqIHNjb3BlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMjA4NSw3ICsyMDg1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWMK
ICAgICAgICAgdm0sIHN0cnVjdHVyZSwgYXJndW1lbnRTdGFydCwgbGVuZ3RoLCBjYWxsZWUsIHRh
YmxlLCBzY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVh
dGVDbG9uZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90
IGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3VtZW50U3Rh
cnQsIENDYWxsVUludDMyIGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjA5NCw3ICsyMDk0LDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWMKICAgICAgICAgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGFyZ3VtZW50U3RhcnQs
IGxlbmd0aCwgY2FsbGVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBhcmd1bWVudENvdW50
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0
ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdpc3Rlciog
YXJndW1lbnRTdGFydCwgQ0NhbGxVSW50MzIgYXJndW1lbnRDb3VudCkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxMTEsNyArMjExMSw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0ds
b2JhbE9iCiAgICAgcmV0dXJuIGJ1dHRlcmZseTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChW
TSogdm1Qb2ludGVyLCBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSwgSlNGdW5jdGlv
biogY2FsbGVlLCB1aW50MzJfdCBhcmd1bWVudENvdW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAo
Vk0qIHZtUG9pbnRlciwgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpTRnVuY3Rp
b24qIGNhbGxlZSwgQ0NhbGxVSW50MzIgYXJndW1lbnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0g
KnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0yMTQxLDcgKzIxNDEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKgogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
cmVhdGVDbG9uZWRBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwg
SW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNhbGxlZSwgdWlu
dDMyX3QgYXJndW1lbnRDb3VudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIs
IElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIEND
YWxsVUludDMyIGFyZ3VtZW50Q291bnQpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE3
MCw3ICsyMTcwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNs
b25lZEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSoKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlND
ZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVudFN0
YXJ0LCB1bnNpZ25lZCBudW1iZXJPZlBhcmFtc1RvU2tpcCwgdW5zaWduZWQgYXJyYXlTaXplKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIEND
YWxsVUludDMyIG51bWJlck9mUGFyYW1zVG9Ta2lwLCBDQ2FsbFVJbnQzMiBhcnJheVNpemUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTgyLDcgKzIxODIsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheShnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgYXJndW1lbnRzVG9Db3B5UmVnaW9uLCBhcnJheVNpemUpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mSXNPYmplY3QsIHNpemVfdCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc09iamVjdCwgQ0NhbGxTaXplOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE5Myw3ICsyMTkzLDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklzT2JqZWN0LCBzaXplX3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4ganNUeXBlb2ZJc09iamVjdChnbG9iYWxP
YmplY3QsIG9iamVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
eXBlT2ZJc0Z1bmN0aW9uLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIG9iamVjdCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9m
SXNGdW5jdGlvbiwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjIwNCw3ICsyMjA0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blR5cGVPZklzRnVuY3Rpb24sIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1
cm4ganNUeXBlb2ZJc0Z1bmN0aW9uKGdsb2JhbE9iamVjdCwgb2JqZWN0KTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdElzQ2FsbGFibGUsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RJc0NhbGxhYmxlLCBDQ2FsbFNpemU6OkludGVn
ZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMjE1LDcgKzIyMTUsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2JqZWN0SXNDYWxsYWJsZSwgc2l6ZV90LCAo
SlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBvYmplY3QtPmlzQ2FsbGFibGUodm0pOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXNDb25zdHJ1Y3Rvciwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklzQ29uc3RydWN0b3IsIENDYWxs
U2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyNDks
NyArMjI0OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNp
bXBsZVByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpCiAgICAgICAgIEJ1dHRlcmZseTo6
Y3JlYXRlVW5pbml0aWFsaXplZCh2bSwgbnVsbHB0ciwgMCwgaW5pdGlhbE91dE9mTGluZUNhcGFj
aXR5LCBmYWxzZSwgMCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
QWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgc2l6
ZV90IG5ld1NpemUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRl
U2ltcGxlUHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIENDYWxsU2l6ZSBu
ZXdTaXplKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyNzAsNyArMjI3MCw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0
b3JhZ2VXaXRoSW5pdGlhbENhcGFjCiAgICAgICAgIG9iamVjdC0+YWxsb2NhdGVNb3JlT3V0T2ZM
aW5lU3RvcmFnZSh2bSwgMCwgaW5pdGlhbE91dE9mTGluZUNhcGFjaXR5KSk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3Jh
Z2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgSlNPYmplY3QqIG9iamVjdCwgc2l6ZV90IG5ld1Np
emUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFBy
b3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBD
Q2FsbFNpemUgbmV3U2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMzM2LDcgKzIz
MzYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlQXJyYXlTdG9y
YWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTQwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHksIHNp
emVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZUNlbGwsIGlu
dDMyX3Qgc3Vic2NyaXB0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJ
bmRleGVkUHJvcGVydHksIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2VDZWxsLCBDQ2FsbEludDMyIHN1YnNjcmlwdCkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzNDksNyArMjM0OSw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHksIHNpemVfdCwg
KEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIG9iamVjdC0+aGFzUHJvcGVydHkoZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3Vic2NyaXB0KSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNFbnVtZXJhYmxlSW5kZXhlZFByb3BlcnR5LCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2VDZWxsLCBp
bnQzMl90IHN1YnNjcmlwdCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFz
RW51bWVyYWJsZUluZGV4ZWRQcm9wZXJ0eSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZUNlbGwsIENDYWxsSW50MzIgc3Vi
c2NyaXB0KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjM5MiwxNyArMjM5
MiwxOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVt
ZXJhdG9yQ2VsbCwgSlNDZWxsKiwgKEpTR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgcHJvcGVydHlOYW1lRW51bWVyYXRvcihnbG9iYWxPYmplY3QsIGJhc2UpKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlSW5k
ZXhBbmRNb2RlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgdWludDMyX3QgaW5kZXgsIGludDMyX3QgbW9kZU51
bWJlciwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZUluZGV4QW5kTW9kZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBiYXNlVmFsdWUsIENDYWxsVUludDMyIGluZGV4LCBDQ2FsbEludDMyIG1vZGVOdW1iZXIs
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvcikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCisgICAgdWludDMyX3QgaW5kZXhWYWx1ZSA9IGluZGV4OwogICAgIEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvcjo6RmxhZyBtb2RlID0gc3RhdGljX2Nhc3Q8SlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yOjpGbGFnPihtb2RlTnVtYmVyKTsKICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGJh
c2VWYWx1ZSkuaXNVbmRlZmluZWRPck51bGwoKSkgewogICAgICAgICBBU1NFUlQobW9kZSA9PSBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkluaXRNb2RlKTsKLSAgICAgICAgQVNTRVJUKCFpbmRl
eCk7CisgICAgICAgIEFTU0VSVCghaW5kZXhWYWx1ZSk7CiAgICAgICAgIEFTU0VSVCghZW51bWVy
YXRvci0+c2l6ZU9mUHJvcGVydHlOYW1lcygpKTsKICAgICAgICAgbW9kZSA9IEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvcjo6R2VuZXJpY01vZGU7CiAgICAgfSBlbHNlIHsKQEAgLTI0MTAsMjcgKzI0
MTEsMjcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0
VXBkYXRlSW5kZXhBbmRNb2RlLCBFbmNvZGVkSlNWYWwKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKIAogICAgICAgICBjb25zdGV4cHIgYm9vbCBzaG91bGRBbGxvY2F0
ZUluZGV4ZWROYW1lU3RyaW5nID0gZmFsc2U7Ci0gICAgICAgIGVudW1lcmF0b3ItPmNvbXB1dGVO
ZXh0KGdsb2JhbE9iamVjdCwgYmFzZSwgaW5kZXgsIG1vZGUsIHNob3VsZEFsbG9jYXRlSW5kZXhl
ZE5hbWVTdHJpbmcpOworICAgICAgICBlbnVtZXJhdG9yLT5jb21wdXRlTmV4dChnbG9iYWxPYmpl
Y3QsIGJhc2UsIGluZGV4VmFsdWUsIG1vZGUsIHNob3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJp
bmcpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIH0KIAog
I2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8SlNW
YWx1ZT4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1vZGUpIDw8IDMyIHwgaW5kZXggfCBKU1ZhbHVl
OjpEb3VibGVFbmNvZGVPZmZzZXQpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gYml0d2lzZV9jYXN0
PEpTVmFsdWU+KHN0YXRpY19jYXN0PHVpbnQ2NF90Pihtb2RlKSA8PCAzMiB8IGluZGV4VmFsdWUg
fCBKU1ZhbHVlOjpEb3VibGVFbmNvZGVPZmZzZXQpOwogI2Vsc2UKLSAgICBKU1ZhbHVlIHJlc3Vs
dCA9IEpTVmFsdWUobW9kZSwgaW5kZXgpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZSht
b2RlLCBpbmRleFZhbHVlKTsKICNlbmRpZgogICAgIEFTU0VSVChyZXN1bHQuaXNEb3VibGUoKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVQcm9wZXJ0eU5hbWUsIEpT
U3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVpbnQzMl90IGluZGV4LCBp
bnQzMl90IG1vZGVOdW1iZXIsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRvcikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVQ
cm9wZXJ0eU5hbWUsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEND
YWxsVUludDMyIGluZGV4LCBDQ2FsbEludDMyIG1vZGVOdW1iZXIsIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciogZW51bWVyYXRvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7CiAKICAgICBpZiAobW9kZU51bWJlciA9PSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Oklu
ZGV4ZWRNb2RlKSB7Ci0gICAgICAgIGlmIChpbmRleCA8IGVudW1lcmF0b3ItPmluZGV4ZWRMZW5n
dGgoKSkKKyAgICAgICAgaWYgKHVpbnQzMl90KGluZGV4KSA8IGVudW1lcmF0b3ItPmluZGV4ZWRM
ZW5ndGgoKSkKICAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyh2bSwgSWRlbnRpZmllcjo6ZnJv
bSh2bSwgaW5kZXgpLnN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIHZtLnNtYWxsU3RyaW5ncy5z
ZW50aW5lbFN0cmluZygpOwogICAgIH0KQEAgLTI0NDIsNyArMjQ0Myw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwg
SlNTdHJpbmcqLCAoCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFtZUFuZEdldEJ5VmFsLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJh
c2VWYWx1ZSwgdWludDMyX3QgaW5kZXgsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVy
YXRvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvclJlY292
ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBDQ2FsbFVJbnQzMiBpbmRleCwgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwpAQCAtMjQ2MCw3ICsyNDYxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFtZUFuZEdldEJ5VmFsLCBFbmNvZGVkSlNWYWwK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShvYmplY3QtPmdl
dChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JJbkJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgcHJvcGVydHlOYW1lVmFsdWUsIHVpbnQzMl90IGluZGV4LCBpbnQzMl90IG1vZGVO
dW1iZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JJbkJ5
VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvcGVydHlOYW1lVmFsdWUsIEND
YWxsVUludDMyIGluZGV4LCBDQ2FsbEludDMyIG1vZGVOdW1iZXIpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yNDc1LDcgKzI0NzYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckluQnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbihDb21tb25TbG93UGF0aHM6Om9wSW5CeVZhbChnbG9iYWxPYmplY3QsIGJhc2UsIHByb3Bl
cnR5TmFtZSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVt
ZXJhdG9ySGFzT3duUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm9w
ZXJ0eU5hbWVWYWx1ZSwgdWludDMyX3QgaW5kZXgsIGludDMyX3QgbW9kZU51bWJlcikpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckhhc093blByb3BlcnR5LCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvcGVydHlOYW1lVmFsdWUsIENDYWxsVUlu
dDMyIGluZGV4LCBDQ2FsbEludDMyIG1vZGVOdW1iZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yNTMzLDcgKzI1MzQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU3RyaW5nVmFsdWVPZiwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsbwog
ICAgIHJldHVybiBudWxscHRyOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU3RyaW5nU3Vic3RyLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDZWxsKiBjZWxsLCBpbnQzMl90IGZyb20sIGludDMyX3Qgc3BhbikpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU3Vic3RyLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBDQ2FsbEludDMyIGZyb20sIENDYWxsSW50
MzIgc3BhbikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1NDIsNyArMjU0
Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTdWJzdHIsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIGpzU3Vic3RyaW5nKHZt
LCBnbG9iYWxPYmplY3QsIGpzQ2FzdDxKU1N0cmluZyo+KGNlbGwpLCBmcm9tLCBzcGFuKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1NsaWNlLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBpbnQzMl90IHN0
YXJ0LCBpbnQzMl90IGVuZCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3Ry
aW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IGNlbGwsIENDYWxsSW50MzIgc3RhcnQsIENDYWxsSW50MzIgZW5kKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMjU1MCwxMCArMjU1MSwxMCBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsTwogCiAgICAgSlNTdHJpbmcqIHN0cmluZyA9IGFzU3RyaW5nKGNlbGwpOwogICAgIHN0
YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEpTU3RyaW5nOjpNYXhMZW5ndGgpIDw9
IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgo
KSksICIiKTsKLSAgICByZXR1cm4gc3RyaW5nU2xpY2UoZ2xvYmFsT2JqZWN0LCB2bSwgc3RyaW5n
LCBzdHJpbmctPmxlbmd0aCgpLCBzdGFydCwgZW5kKTsKKyAgICByZXR1cm4gc3RyaW5nU2xpY2U8
aW50MzJfdD4oZ2xvYmFsT2JqZWN0LCB2bSwgc3RyaW5nLCBzdHJpbmctPmxlbmd0aCgpLCBzdGFy
dCwgZW5kKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvTG93ZXJD
YXNlLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyog
c3RyaW5nLCB1aW50MzJfdCBmYWlsaW5nSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCBDQ2FsbFVJbnQzMiBmYWlsaW5nSW5kZXgpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTcyLDcgKzI1NzMsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dlckNhc2UsIEpTU3RyaW5nKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJpbmco
dm0sIGxvd2VyY2FzZWRTdHJpbmcpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgaW50MzJfdCB2YWx1ZSwgaW50MzJfdCByYWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSW50MzJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDQ2FsbEludDMyIHZhbHVlLCBDQ2FsbEludDMyIHJhZGl4KSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU4OCw3ICsyNTg5LDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE8KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW50MzJUb1N0cmlu
Zyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25JbnQ1MlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGludDY0X3QgdmFsdWUsIGludDMyX3QgcmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkludDUyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ0NhbGxJbnQ2NCB2YWx1ZSwgQ0NhbGxJbnQzMiByYWRpeCkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MDQsNyArMjYwNSw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGludDUyVG9TdHJpbmco
dm0sIHZhbHVlLCByYWRpeCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRG91YmxlVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
ZG91YmxlIHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Eb3VibGVUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBkb3VibGUgdmFsdWUsIENDYWxsSW50MzIgcmFkaXgpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yNjIwLDcgKzI2MjEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihudW1iZXJUb1N0cmluZyh2bSwg
dmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25J
bnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgaW50MzJfdCB2YWx1ZSwgaW50MzJfdCByYWRpeCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxsSW50MzIgdmFsdWUsIENDYWxsSW50MzIg
cmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNjI5LDcgKzI2MzAs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0cmluZ1dpdGhW
YWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsTwogICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PGNoYXIqPihpbnQzMlRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQ2NF90IHZhbHVlLCBpbnQzMl90
IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5n
V2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ0Nh
bGxJbnQ2NCB2YWx1ZSwgQ0NhbGxJbnQzMiByYWRpeCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTI2MzgsNyArMjYzOSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25JbnQ1MlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPCiAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGludDUyVG9TdHJpbmcodm0sIHZhbHVl
LCByYWRpeCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91Ymxl
VG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBkb3VibGUgdmFsdWUsIGludDMyX3QgcmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91YmxlIHZhbHVlLCBDQ2FsbEludDMyIHJhZGl4KSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjY1Niw3ICsyNjU3LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZ1bmN0aW9uVG9TdHJpbmcsIEpTU3RyaW5n
KiwgKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBmdW5jdGlvbi0+dG9TdHJpbmcoZ2xvYmFs
T2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpbmdsZUNo
YXJhY3RlclN0cmluZywgSlNTdHJpbmcqLCAoVk0qIHZtUG9pbnRlciwgaW50MzJfdCBjaGFyYWN0
ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpbmdsZUNoYXJhY3RlclN0
cmluZywgSlNTdHJpbmcqLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxJbnQzMiBjaGFyYWN0ZXIpKQog
ewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjgwNiw3ICsyODA3LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0ckNhdDMsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGpzU3RyaW5nKGdsb2Jh
bE9iamVjdCwgc3RyMSwgc3RyMiwgc3RyMykpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRvdWJsZSwgY2hhciosIChWTSogdm1Q
b2ludGVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHNpemVfdCB0YWJsZUluZGV4LCBp
bnQzMl90IG1pbikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRj
aEltbVRhcmdldEZvckRvdWJsZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBDQ2FsbEludDMyIG1pbikpCiB7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODIyLDcgKzI4MjMsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRvdWJsZSwgY2hhcios
IChWTSogdm1QbwogICAgIHJldHVybiBsaW5rZWRUYWJsZS5tX2N0aURlZmF1bHQuZXhlY3V0YWJs
ZUFkZHJlc3M8Y2hhcio+KCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Td2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgc2l6
ZV90IHRhYmxlSW5kZXgsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiB1bmxpbmtlZFRh
YmxlLCBKU1N0cmluZyogc3RyaW5nKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Td2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ0Nh
bGxTaXplIHRhYmxlSW5kZXgsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiB1bmxpbmtl
ZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjgzNywyNyArMjgzOCwyNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJl
dHVybiBsaW5rZWRUYWJsZS5jdGlGb3JWYWx1ZSgqdW5saW5rZWRUYWJsZSwgc3RySW1wbCkuZXhl
Y3V0YWJsZUFkZHJlc3M8Y2hhcio+KCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbExlc3MsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEs
IFN0cmluZ0ltcGwqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdJbXBsTGVzcywgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKFN0cmluZ0ltcGwq
IGEsIFN0cmluZ0ltcGwqIGIpKQogewogICAgIHJldHVybiBjb2RlUG9pbnRDb21wYXJlKGEsIGIp
IDwgMDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJp
bmdJbXBsTGVzc0VxLCB1aW50cHRyX3QsIChTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBsKiBiKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbExlc3NF
cSwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwq
IGIpKQogewogICAgIHJldHVybiBjb2RlUG9pbnRDb21wYXJlKGEsIGIpIDw9IDA7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbEdyZWF0ZXIs
IHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlciwgQ0NhbGxVSW50
cHRyOjpJbnRlZ2VyVHlwZSwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQogewogICAg
IHJldHVybiBjb2RlUG9pbnRDb21wYXJlKGEsIGIpID4gMDsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlckVxLCB1aW50cHRyX3Qs
IChTdHJpbmdJbXBsKiBhLCBTdHJpbmdJbXBsKiBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbEdyZWF0ZXJFcSwgQ0NhbGxVSW50cHRyOjpJbnRl
Z2VyVHlwZSwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQogewogICAgIHJldHVybiBj
b2RlUG9pbnRDb21wYXJlKGEsIGIpID49IDA7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzcywgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzcywgQ0NhbGxVSW50cHRyOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0
cmluZyogYikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI4NjYsNyArMjg2
Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVz
cywgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBh
cmVMZXNzVGhhbihhc1N0cmluZyhhKS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSwgYXNTdHJpbmcoYikt
PnZhbHVlKGdsb2JhbE9iamVjdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcSwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzc0VxLCBDQ2FsbFVJbnRwdHI6OkludGVn
ZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3Ry
aW5nKiBiKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjg3NSw3ICsyODc2
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNz
RXEsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gIWNvZGVQb2ludENvbXBh
cmVMZXNzVGhhbihhc1N0cmluZyhiKS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSwgYXNTdHJpbmcoYSkt
PnZhbHVlKGdsb2JhbE9iamVjdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIsIENDYWxsVUludHB0cjo6SW50
ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYSwgSlNT
dHJpbmcqIGIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODg0LDcgKzI4
ODUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dy
ZWF0ZXIsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBjb2RlUG9pbnRDb21w
YXJlTGVzc1RoYW4oYXNTdHJpbmcoYiktPnZhbHVlKGdsb2JhbE9iamVjdCksIGFzU3RyaW5nKGEp
LT52YWx1ZShnbG9iYWxPYmplY3QpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyRXEsIHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXJFcSwgQ0NhbGxVSW50cHRy
OjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBh
LCBKU1N0cmluZyogYikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5MTEs
NyArMjkxMiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1N0YWNr
T3ZlcmZsb3dGb3JWYXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxPCiAgICAgdGhyb3dTdGFja092ZXJm
bG93RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25TaXplT2ZWYXJhcmdzLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCB1aW50
MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU2l6ZU9mVmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgQ0NhbGxVSW50MzIgZmly
c3RWYXJBcmdPZmZzZXQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTIx
LDcgKzI5MjIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZU9mVmFy
YXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0b1VDUFVT
dHJpY3RJbnQzMihzaXplT2ZWYXJhcmdzKGdsb2JhbE9iamVjdCwgYXJndW1lbnRzLCBmaXJzdFZh
ckFyZ09mZnNldCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFz
T3duUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25IYXNPd25Qcm9wZXJ0eSwgQ0NhbGxTaXplOjpJbnRlZ2Vy
VHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0aGlzT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMjk0Miw3ICsyOTQzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkhhc093blByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTnVt
YmVySXNJbnRlZ2VyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTnVt
YmVySXNJbnRlZ2VyLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yOTUwLDcgKzI5NTEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYgog
ICAgIHJldHVybiBOdW1iZXJDb25zdHJ1Y3Rvcjo6aXNJbnRlZ2VySW1wbChKU1ZhbHVlOjpkZWNv
ZGUodmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5
SW5kZXhPZlN0cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQnV0dGVyZmx5KiBidXR0ZXJmbHksIEpTU3RyaW5nKiBzZWFyY2hFbGVtZW50LCBpbnQz
Ml90IGluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4
T2ZTdHJpbmcsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEJ1dHRlcmZseSogYnV0dGVyZmx5LCBKU1N0cmluZyogc2VhcmNoRWxlbWVudCwgQ0NhbGxJbnQz
MiBpbmRleCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5NTksMjMgKzI5
NjAsMjMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0
cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWwKIAogICAgIGludDMyX3QgbGVuZ3RoID0g
YnV0dGVyZmx5LT5wdWJsaWNMZW5ndGgoKTsKICAgICBhdXRvIGRhdGEgPSBidXR0ZXJmbHktPmNv
bnRpZ3VvdXMoKS5kYXRhKCk7Ci0gICAgZm9yICg7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KSB7
Ci0gICAgICAgIEpTVmFsdWUgdmFsdWUgPSBkYXRhW2luZGV4XS5nZXQoKTsKKyAgICBmb3IgKGlu
dDMyX3QgaSA9IGluZGV4OyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgSlNWYWx1ZSB2YWx1
ZSA9IGRhdGFbaV0uZ2V0KCk7CiAgICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmlzU3RyaW5n
KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYXV0byogc3RyaW5nID0gYXNTdHJp
bmcodmFsdWUpOwogICAgICAgICBpZiAoc3RyaW5nID09IHNlYXJjaEVsZW1lbnQpCi0gICAgICAg
ICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaW5kZXgpOworICAgICAgICAgICAgcmV0dXJu
IHRvVUNQVVN0cmljdEludDMyKGkpOwogICAgICAgICBpZiAoc3RyaW5nLT5lcXVhbChnbG9iYWxP
YmplY3QsIHNlYXJjaEVsZW1lbnQpKSB7CiAgICAgICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2Vw
dGlvbkV4Y2VwdFRlcm1pbmF0aW9uKCk7Ci0gICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0
SW50MzIoaW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKGkpOwog
ICAgICAgICB9CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAg
fQogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMyT3JDb250aWd1b3VzLCBV
Q1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCdXR0ZXJmbHkq
IGJ1dHRlcmZseSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGluZGV4KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMy
T3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBD
Q2FsbEludDMyIGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk4
NiwxOSArMjk4NywxOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJ
bmRleE9mVmFsdWVJbnQzMk9yQ29udGlndW91cywgVUNQVVN0cmljdAogCiAgICAgaW50MzJfdCBs
ZW5ndGggPSBidXR0ZXJmbHktPnB1YmxpY0xlbmd0aCgpOwogICAgIGF1dG8gZGF0YSA9IGJ1dHRl
cmZseS0+Y29udGlndW91cygpLmRhdGEoKTsKLSAgICBmb3IgKDsgaW5kZXggPCBsZW5ndGg7ICsr
aW5kZXgpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRhdGFbaW5kZXhdLmdldCgpOworICAg
IGZvciAoaW50MzJfdCBpID0gaW5kZXg7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBKU1Zh
bHVlIHZhbHVlID0gZGF0YVtpXS5nZXQoKTsKICAgICAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICBib29sIGlzRXF1YWwgPSBKU1ZhbHVlOjpzdHJpY3RFcXVh
bChnbG9iYWxPYmplY3QsIHNlYXJjaEVsZW1lbnQsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICAgICAgaWYgKGlzRXF1YWwpCi0gICAgICAgICAg
ICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIHRv
VUNQVVN0cmljdEludDMyKGkpOwogICAgIH0KICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIo
LTEpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9m
VmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGlu
dDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5k
ZXhPZlZhbHVlRG91YmxlLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBDQ2FsbEludDMyIGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MzAxMiwxNyArMzAxMywxNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJy
YXlJbmRleE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTRwogCiAgICAgaW50MzJf
dCBsZW5ndGggPSBidXR0ZXJmbHktPnB1YmxpY0xlbmd0aCgpOwogICAgIGNvbnN0IGRvdWJsZSog
ZGF0YSA9IGJ1dHRlcmZseS0+Y29udGlndW91c0RvdWJsZSgpLmRhdGEoKTsKLSAgICBmb3IgKDsg
aW5kZXggPCBsZW5ndGg7ICsraW5kZXgpIHsKKyAgICBmb3IgKGludDMyX3QgaSA9IGluZGV4OyBp
IDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgLy8gVGhpcyBjb21wYXJpc29uIGlnbm9yZXMgTmFO
LgotICAgICAgICBpZiAoZGF0YVtpbmRleF0gPT0gbnVtYmVyKQotICAgICAgICAgICAgcmV0dXJu
IHRvVUNQVVN0cmljdEludDMyKGluZGV4KTsKKyAgICAgICAgaWYgKGRhdGFbaV0gPT0gbnVtYmVy
KQorICAgICAgICAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKGkpOwogICAgIH0KICAgICBy
ZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoLTEpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBpbnQzMl90IGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1
bWVudHMsIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3QgbGVuZ3RoSW5jbHVkaW5nVGhpcywgdWlu
dDMyX3QgbWFuZGF0b3J5TWluaW11bSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTG9hZFZhcmFyZ3MsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2Fs
bEludDMyIGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMs
IENDYWxsVUludDMyIG9mZnNldCwgQ0NhbGxVSW50MzIgbGVuZ3RoSW5jbHVkaW5nVGhpcywgQ0Nh
bGxVSW50MzIgbWFuZGF0b3J5TWluaW11bSkpCiB7Ci0gICAgVmlydHVhbFJlZ2lzdGVyIGZpcnN0
RWxlbWVudCB7IGZpcnN0RWxlbWVudERlc3QgfTsKKyAgICBWaXJ0dWFsUmVnaXN0ZXIgZmlyc3RF
bGVtZW50IHsgaW50MzJfdChmaXJzdEVsZW1lbnREZXN0KSB9OwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBjYWxsRnJhbWUpOwpAQCAtMzAzNCw5ICszMDM1LDkgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamUKICAgICAgICAgY2FsbEZyYW1lLT5yKGZpcnN0RWxlbWVudCArIGkpID0ganNVbmRlZmlu
ZWQoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZNb2RPbkludHMs
IGRvdWJsZSwgKGludDMyX3QgYSwgaW50MzJfdCBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25GTW9kT25JbnRzLCBkb3VibGUsIChDQ2FsbEludDMyIGEsIENDYWxsSW50MzIg
YikpCiB7Ci0gICAgcmV0dXJuIGZtb2QoYSwgYik7CisgICAgcmV0dXJuIGZtb2QoaW50MzJfdChh
KSwgaW50MzJfdChiKSk7CiB9CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtMzA0Niw3ICsz
MDQ3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJhbmRvbSwgZG91Ymxl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIH0KICNlbmRpZgogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlLCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCBvcDEpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZSwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxsSW50MzIgb3AxKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMzA2NCw3ICszMDY1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZVVudHlwZWQsIEVuY29kZWRKU1ZhbHVlLCAo
SlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQzo6c3RyaW5nRnJvbUNoYXJDb2RlKGds
b2JhbE9iamVjdCwgY2hJbnQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRCb3hlZERvdWJsZVRvSW50NTIsIGludDY0X3QsIChFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRC
b3hlZERvdWJsZVRvSW50NTIsIENDYWxsSW50NjQ6OkludGVnZXJUeXBlLCAoRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSk7CiAgICAgaWYgKCF2YWx1ZS5pc0RvdWJsZSgpKQpAQCAtMzA3MiwxMiAr
MzA3MywxMiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydEJveGVk
RG91YmxlVG9JbnQ1MiwgaW50NjRfdCwgKEVuY29kZWRKUwogICAgIHJldHVybiB0cnlDb252ZXJ0
VG9JbnQ1Mih2YWx1ZS5hc0RvdWJsZSgpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnREb3VibGVUb0ludDUyLCBpbnQ2NF90LCAoZG91YmxlIHZhbHVlKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0RG91YmxlVG9JbnQ1Miwg
Q0NhbGxJbnQ2NDo6SW50ZWdlclR5cGUsIChkb3VibGUgdmFsdWUpKQogewogICAgIHJldHVybiB0
cnlDb252ZXJ0VG9JbnQ1Mih2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdSYXdPYmplY3QsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGludDMyX3QgbGVuZ3RoLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmF3T2JqZWN0LCBjaGFyKiwgKFZNKiB2bVBv
aW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludDMyIGxlbmd0aCwgQnV0dGVyZmx5
KiBidXR0ZXJmbHkpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzExNiw3ICszMTE3LDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJm
bHksIEpTQ2VsbCosIChWTSogdm1Qb2ludGUKICAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3Jl
YXRlV2l0aEJ1dHRlcmZseSh2bSwgc3RydWN0dXJlLCBidXR0ZXJmbHkpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseVdpdGhJbmRl
eGluZ0hlYWRlckFuZFZlY3Rvckxlbmd0aCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBsZW5ndGgsIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5
V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVjdG9yTGVuZ3RoLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRl
ciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsVUludDMyIGxlbmd0aCwgQnV0dGVyZmx5KiBi
dXR0ZXJmbHkpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzEzOCw3ICszMTM5LDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlX
aXRoSW5kZXhpbmdIZWFkZXJBbmRWZWMKICAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRl
V2l0aEJ1dHRlcmZseSh2bSwgc3RydWN0dXJlLCBidXR0ZXJmbHkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU3ByZWFkU2xvdywgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIGJ1ZmZlciwgdWludDMyX3QgbnVt
SXRlbXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNw
cmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiBi
dWZmZXIsIENDYWxsVUludDMyIG51bUl0ZW1zKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMzE5Nyw3ICszMTk4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld0FycmF5V2l0aFNwcmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamUKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlSW1tdXRhYmxlQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgdW5zaWduZWQgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25DcmVhdGVJbW11dGFibGVCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDQ2FsbFVJbnQzMiBsZW5ndGgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0zMjg3LDcgKzMyODgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUmVzb2x2ZVNjb3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAg
IHJldHVybiByZXNvbHZlZFNjb3BlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0RHluYW1pY1ZhciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNp
Z25lZCBnZXRQdXRJbmZvQml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
R2V0RHluYW1pY1ZhciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCBDQ2FsbFVJbnQz
MiBnZXRQdXRJbmZvQml0cykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMz
NDcsNyArMzM0OCw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcHV0RHluYW1pY1ZhcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIEpTCiAgICAgc2NvcGUtPm1ldGhv
ZFRhYmxlKHZtKS0+cHV0KHNjb3BlLCBnbG9iYWxPYmplY3QsIGlkZW50LCBKU1ZhbHVlOjpkZWNv
ZGUodmFsdWUpLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dER5bmFtaWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1w
bCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlx
dWVkU3RyaW5nSW1wbCogaW1wbCwgQ0NhbGxVSW50MzIgZ2V0UHV0SW5mb0JpdHMpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzU2LDcgKzMzNTcsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbAogICAgIHJldHVybiBwdXREeW5hbWljVmFyKGdsb2JhbE9iamVjdCwgdm0s
IHNjb3BlLCB2YWx1ZSwgaW1wbCwgZ2V0UHV0SW5mb0JpdHMsIGlzU3RyaWN0TW9kZSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyTm9uU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNjb3BlLCBF
bmNvZGVkSlNWYWx1ZSB2YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdl
dFB1dEluZm9CaXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREeW5h
bWljVmFyTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNP
YmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlt
cGwsIENDYWxsVUludDMyIGdldFB1dEluZm9CaXRzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMzM5MSw3ICszMzkyLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk1hcEhhc2hIZWFwQmlnSW50LCBVQ1BVU3RyaWN0SW50MzIsIChWTSogdm1Qb2kKICAg
ICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoanNNYXBIYXNoKGlucHV0KSk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU01hcEZpbmRCdWNrZXQsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwgRW5jb2RlZEpTVmFsdWUg
a2V5LCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpT
TWFwRmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIENDYWxsSW50MzIgaGFzaCkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM0MDIsNyArMzQwMyw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25KU01hcEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdCogZ2xvCiAgICAgcmV0dXJuICpidWNrZXQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25KU1NldEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90
IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTU2V0RmluZEJ1Y2tl
dCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBF
bmNvZGVkSlNWYWx1ZSBrZXksIENDYWxsSW50MzIgaGFzaCkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTM0MTMsNyArMzQxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25KU1NldEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
CiAgICAgcmV0dXJuICpidWNrZXQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TZXRBZGQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwqIHNldCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogc2V0LCBFbmNvZGVkSlNWYWx1ZSBrZXksIENDYWxsSW50MzIg
aGFzaCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM0MjQsNyArMzQyNSw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRBZGQsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIGJ1Y2tldDsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcFNldCwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIEVu
Y29kZWRKU1ZhbHVlIHZhbHVlLCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk1hcFNldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIEVuY29kZWRKU1ZhbHVlIHZhbHVl
LCBDQ2FsbEludDMyIGhhc2gpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0z
NDM1LDcgKzM0MzYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwU2V0
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVybiBidWNr
ZXQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrU2V0QWRkLCB2
b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBzZXQsIEpTQ2VsbCoga2V5LCBpbnQzMl90IGhh
c2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldlYWtTZXRBZGQsIHZvaWQs
IChWTSogdm1Qb2ludGVyLCBKU0NlbGwqIHNldCwgSlNDZWxsKiBrZXksIENDYWxsSW50MzIgaGFz
aCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zNDQzLDcgKzM0NDQsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiB2bVBvaW50
ZXIsIEpTQ2VsbCogc2V0LAogICAgIGpzQ2FzdDxKU1dlYWtTZXQqPihzZXQpLT5hZGQodm0sIGFz
T2JqZWN0KGtleSksIEpTVmFsdWUoKSwgaGFzaCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XZWFrTWFwU2V0LCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBt
YXAsIEpTQ2VsbCoga2V5LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgaW50MzJfdCBoYXNoKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrTWFwU2V0LCB2b2lkLCAoVk0qIHZt
UG9pbnRlciwgSlNDZWxsKiBtYXAsIEpTQ2VsbCoga2V5LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwg
Q0NhbGxJbnQzMiBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM2NjksNyArMzY3
MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd0RGRywgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgc2NvcGUudGhyb3dFeGNlcHRpb24o
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWVUb1Rocm93KSk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIG1lc3NhZ2UsIHVpbnQzMl90IGVy
cm9yVHlwZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGF0aWNF
cnJvciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBtZXNz
YWdlLCBDQ2FsbFVJbnQzMiBlcnJvclR5cGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC00MTE2LDcgKzQxMTcsNyBAQCBzdGF0aWMgY2hhciogdGllclVwQ29tbW9uKFZNJiB2
bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEJ5dGVjb2RlSW5kZXggb3JpZ2luQnl0ZQogICAgIHJl
dHVybiB0YWdDb2RlUHRyV2l0aFN0YWNrUG9pbnRlckZvckpJVENhbGwodW50YWdDb2RlUHRyPGNo
YXIqLCBKU0VudHJ5UHRyVGFnPihhZGRyZXNzKSwgY2FsbEZyYW1lKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3dJbkxvb3AsIHZvaWQsIChW
TSogdm1Qb2ludGVyLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiB2
bVBvaW50ZXIsIENDYWxsVUludDMyIGJ5dGVjb2RlSW5kZXhCaXRzKSkKIHsKICAgICBWTSYgdm0g
PSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTQxNDgsNyArNDE0OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25UcmlnZ2VyVGllclVwTm93SW5Mb29wLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwKICAg
ICB9CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyT1NSRW50
cnlOb3csIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJPU1JFbnRyeU5vdywg
Y2hhciosIChWTSogdm1Qb2ludGVyLCBDQ2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpCiB7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5oCmluZGV4IGZiZDZkMDllNDY3MjVmOTczYmJlODdkODY4YmZjOTQwMWRlOWE3MjYuLjA2
ZDVjYTRiZGRjMDdmZjlkY2NmYTY0MjdjZjUxNzc0Njc3Y2IzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFC
TEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRGR0Fy
aXRoTW9kZS5oIgogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJUeXBlZEFy
cmF5VHlwZS5oIgpAQCAtNDMsNyArNDQsNyBAQCBuYW1lc3BhY2UgREZHIHsKIAogc3RydWN0IE9T
UkV4aXRCYXNlOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0Zy
b21DaGFyQ29kZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgaW50MzJfdCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGUsIEpTQ2VsbCos
IChKU0dsb2JhbE9iamVjdCosIENDYWxsSW50MzIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlVW50eXBlZCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiAKIC8vIFRoZXNlIHJvdXRpbmVzIHBy
b3ZpZGUgY2FsbGJhY2tzIG91dCB0byBDKysgaW1wbGVtZW50YXRpb25zIG9mIG9wZXJhdGlvbnMg
dG9vIGNvbXBsZXggdG8gSklULgpAQCAtNTcsNyArNTgsNyBAQCBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk9iamVjdENyZWF0ZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jbwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RDcmVhdGVPYmpl
Y3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KikpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RBc3NpZ25PYmplY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCosIEpTT2JqZWN0KiwgSlNPYmplY3QqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk9iamVjdEFzc2lnblVudHlwZWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCos
IEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlVGhpcywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
IGNvbnN0cnVjdG9yLCB1aW50MzJfdCBpbmxpbmVDYXBhY2l0eSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVUaGlzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCogY29uc3RydWN0b3IsIENDYWxsVUludDMyIGlubGluZUNhcGFjaXR5KSk7CiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVByb21pc2UsIEpTQ2VsbCos
IChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBjb25zdHJ1Y3RvcikpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbnRlcm5hbFByb21pc2UsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBjb25zdHJ1Y3RvcikpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVHZW5lcmF0b3IsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiBjb25zdHJ1Y3RvcikpOwpAQCAtOTEsOCArOTIsOCBAQCBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoUm91bmQsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0
aEZsb29yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUp
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhDZWlsLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJpdGhUcnVuYywgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNTdHJpbmcqLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5VmFsU3RyaW5nSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNTdHJpbmcqLCBDQ2FsbEludDMyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5VmFsT2JqZWN0U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlWYWxPYmplY3RTeW1ib2wsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJvbCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Ub1ByaW1pdGl2ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlKSk7CkBAIC0xMDMsNDIgKzEwNCw0MiBAQCBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxOdW1iZXJDb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsbwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbFdp
dGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRQcm90b3R5cGVPZiwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldFByb3RvdHlwZU9mT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0lu
ZGV4ZWRQcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBpbnQzMl90
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0VudW1lcmFibGVJbmRl
eGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHks
IENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIENDYWxs
SW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzRW51bWVyYWJs
ZUluZGV4ZWRQcm9wZXJ0eSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKiwgQ0NhbGxJbnQzMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3IsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFBy
b3BlcnR5RW51bWVyYXRvckNlbGwsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCop
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRh
dGVJbmRleEFuZE1vZGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgdWludDMyX3QsIGludDMyX3QsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVQ
cm9wZXJ0eU5hbWUsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgdWludDMyX3QsIGludDMy
X3QsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRW51bWVyYXRvckluQnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnQzMl90LCBpbnQzMl90
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JIYXNPd25Q
cm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIs
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVQcm9wZXJ0eU5hbWUsIEpTU3RyaW5nKiwgKEpT
R2xvYmFsT2JqZWN0KiwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIsIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRv
ckluQnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludDMyLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50MzIsIEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvciopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdSZWdleHBXaXRoTGFzdEluZGV4LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdBcnJheSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIHZvaWQqLCBz
aXplX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXksIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCB2b2lkKiwgQ0NhbGxTaXplKSk7CiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0VtcHR5QXJyYXksIGNoYXIqLCAo
Vk0qLCBTdHJ1Y3R1cmUqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0FycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQz
Ml90LCBCdXR0ZXJmbHkqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0FycmF5V2l0aFNpemVBbmRIaW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
KiwgaW50MzJfdCwgaW50MzJfdCwgQnV0dGVyZmx5KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5KikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplQW5kSGludCwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50MzIsIENDYWxsSW50MzIsIEJ1dHRlcmZseSop
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aFNp
emUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hh
ciopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5V2l0
aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2Rl
ZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MTZB
cnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50cHRy
X3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2
QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxs
SW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJ
bnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3SW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld0ludDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OENsYW1wZWRBcnJheVdp
dGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnRwdHIs
IGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xh
bXBlZEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3VWludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdVaW50MTZBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50LCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQzMkFycmF5V2l0aFNpemUs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnRwdHJfdCwgY2hhciopKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQzMkFycmF5V2l0aFNp
emUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hh
ciopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQzMkFycmF5
V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5j
b2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3Rmxv
YXQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBp
bnRwdHJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
RmxvYXQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3RmxvYXQ2NEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3QmlnSW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0JpZ0ludDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdJbnQ2NEFycmF5V2l0aE9uZUFyZ3VtZW50LCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnVWludDY0QXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdVaW50NjRBcnJheVdp
dGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnRwdHIs
IGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ1VpbnQ2
NEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3QXJyYXlJdGVyYXRvciwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdNYXBJdGVyYXRvciwgSlNDZWxsKiwgKFZNKiwg
U3RydWN0dXJlKikpOwpAQCAtMTUwLDM2ICsxNTEsMzYgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amUKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxsU3RyaW5n
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN0cmlu
ZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTeW1i
b2xOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3lt
Ym9sLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlW
YWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNP
YmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5k
c1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyIGlu
ZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyIGluZGV4LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlWYWxEaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeVZhbERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENl
bGxTdHJpbmdOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2Vs
bCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3ltYm9sU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5VmFsRGlyZWN0Q2VsbFN5bWJvbE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFy
cmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMy
X3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFy
cmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGlu
dDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1
ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERp
cmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBK
U09iamVjdCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRw
dHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRo
aXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIgaW5kZXgsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIgaW5kZXgsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRE
b3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIENDYWxsSW50MzIgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRz
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIg
aW5kZXgsIGRvdWJsZSB2YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIgaW5kZXgsIGRvdWJsZSB2YWx1ZSkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVj
dEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09i
amVjdCosIENDYWxsSW50MzIgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxs
VUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0
aFRoaXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbFdpdGhUaGlzLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eVZhbFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHksIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmlu
ZURhdGFQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBK
U1N0cmluZyosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgRW5jb2RlZEpTVmFs
dWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5l
RGF0YVByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFN5
bWJvbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQz
Ml90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29y
UHJvcGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgSlNTdHJp
bmcqLCBKU09iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nSWRlbnQsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBKU09iamVj
dCosIEpTT2JqZWN0KiwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIFN5bWJvbCosIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBpbnQzMl90KSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVj
dCosIEpTU3RyaW5nKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nSWRlbnQsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBFbmNv
ZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25EZWZpbmVEYXRhUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgU3ltYm9sKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgSlNPYmplY3QqLCBK
U09iamVjdCosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqLCBKU1N0cmluZyosIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVy
dHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBVbmlxdWVk
U3RyaW5nSW1wbCosIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBDQ2FsbEludDMyKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTeW1ib2ws
IHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3ltYm9sKiwgSlNPYmplY3QqLCBK
U09iamVjdCosIENDYWxsSW50MzIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXJyYXlQdXNoLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBKU0FycmF5KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25BcnJheVB1c2hNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEpTQXJyYXkqLCB2b2lkKiBidWZmZXIsIGludDMyX3QgZWxlbWVudENvdW50KSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJheSosIHZvaWQqIGJ1ZmZlciwgQ0Nh
bGxJbnQzMiBlbGVtZW50Q291bnQpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXJyYXlQdXNoRG91YmxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgZG91
YmxlIHZhbHVlLCBKU0FycmF5KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BcnJheVB1c2hEb3VibGVNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEpTQXJyYXkqLCB2b2lkKiBidWZmZXIsIGludDMyX3QgZWxlbWVudENvdW50KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZU11bHRpcGxlLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJheSosIHZvaWQqIGJ1ZmZlciwg
Q0NhbGxJbnQzMiBlbGVtZW50Q291bnQpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQXJyYXlQb3AsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0FycmF5
KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVBvcEFuZFJlY292
ZXJMZW5ndGgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0FycmF5KikpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBFeGVjU3RyaW5nLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKSk7
CkBAIC0xODksMTAgKzE5MCwxMCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreSwgRW5jb2RlZEpTVmFsdWUsCiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cE1hdGNoRmFzdEdsb2JhbFN0cmluZywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFJlZ0V4cCosIEpTU3RyaW5nKikpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBNYXRjaEZhc3RTdHJpbmcsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyop
KTsKIC8vIFRoZXNlIGNvbXBhcmlzb25zIHJldHVybiBhIGJvb2xlYW4gd2l0aGluIGEgc2l6ZV90
IHN1Y2ggdGhhdCB0aGUgdmFsdWUgaXMgemVybyBleHRlbmRlZCB0byBmaWxsIHRoZSByZWdpc3Rl
ci4KLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdFN0cmluZywg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdCwgc2l6ZV90LCAoSlNH
bG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0R2VuZXJpYywgc2l6ZV90LCAoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbCwgc2l6ZV90LCAo
SlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdFN0cmluZywgQ0NhbGxTaXplOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3QsIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5l
cmljLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZVN0cmljdEVxQ2VsbCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblN1YkhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTXVsSGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Nb2RIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSk7CkBAIC0yMDUsNjAgKzIwNiw2MCBAQCBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdExTaGlmdEhlYXBCaWdJbnQsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYQogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BZGRIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
KiBvcDEsIEpTQ2VsbCogb3AyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkJpdFJTaGlmdEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqIG9wMSwgSlNDZWxsKiBvcDIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQml0WG9ySGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TYW1lVmFsdWUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blNhbWVWYWx1ZSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJlY3QsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVy
ZSosIEpTU2NvcGUqLCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50cywgSlNDZWxsKiwg
KFZNKiwgU3RydWN0dXJlKiwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBtaW5DYXBhY2l0eSkp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVu
dHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qLCBJbmxpbmVDYWxsRnJhbWUqLCBKU0Z1bmN0aW9u
KiwgdWludDMyX3QgYXJndW1lbnRDb3VudCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DcmVhdGVTY29wZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBsZW5ndGgsIEpT
RnVuY3Rpb24qIGNhbGxlZSwgSlNMZXhpY2FsRW52aXJvbm1lbnQqKSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpT
Q2VsbCosIChWTSosIElubGluZUNhbGxGcmFtZSosIEpTRnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1
bWVudENvdW50KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNs
b25lZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVn
aXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVl
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50c0J1
dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3Rh
cnQsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnaXN0ZXIq
IGFyZ3VtZW50U3RhcnQsIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRzVG9Ta2lwLCB1bnNpZ25l
ZCBhcnJheVNpemUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRl
RGlyZWN0QXJndW1lbnRzLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqLCBDQ2FsbFVJbnQzMiBs
ZW5ndGgsIENDYWxsVUludDMyIG1pbkNhcGFjaXR5KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChW
TSosIElubGluZUNhbGxGcmFtZSosIEpTRnVuY3Rpb24qLCBDQ2FsbFVJbnQzMiBhcmd1bWVudENv
dW50KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFy
Z3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVnaXN0ZXIq
IGFyZ3VtZW50U3RhcnQsIENDYWxsVUludDMyIGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlLCBK
U0xleGljYWxFbnZpcm9ubWVudCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiwgSW5saW5l
Q2FsbEZyYW1lKiwgSlNGdW5jdGlvbiosIENDYWxsVUludDMyIGFyZ3VtZW50Q291bnQpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBSZWdpc3RlciogYXJndW1lbnRT
dGFydCwgQ0NhbGxVSW50MzIgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRzQnV0dGVyZmx5LCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgQ0NhbGxVSW50
MzIgYXJndW1lbnRDb3VudCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
cmVhdGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdpc3RlciogYXJndW1lbnRT
dGFydCwgQ0NhbGxVSW50MzIgbnVtYmVyT2ZBcmd1bWVudHNUb1NraXAsIENDYWxsVUludDMyIGFy
cmF5U2l6ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheUJ1
ZmZlciwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKiwgSlNDZWxsKikpOwotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TZXRBZGQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk1hcFNldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxs
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldlYWtTZXRBZGQsIHZvaWQsIChWTSosIEpTQ2VsbCos
IEpTQ2VsbCosIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
V2Vha01hcFNldCwgdm9pZCwgKFZNKiwgSlNDZWxsKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUs
IGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRk1vZE9uSW50
cywgZG91YmxlLCAoaW50MzJfdCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UeXBlT2ZJc09iamVjdCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklzRnVuY3Rp
b24sIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25PYmplY3RJc0NhbGxhYmxlLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXND
b25zdHJ1Y3Rvciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRBZGQsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcFNldCwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbElu
dDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldlYWtTZXRBZGQsIHZv
aWQsIChWTSosIEpTQ2VsbCosIEpTQ2VsbCosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha01hcFNldCwgdm9pZCwgKFZNKiwgSlNDZWxsKiwgSlND
ZWxsKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRk1vZE9uSW50cywgZG91YmxlLCAoQ0NhbGxJbnQzMiwgQ0NhbGxJbnQz
MikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc09iamVjdCwg
Q0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc0Z1bmN0aW9uLCBDQ2FsbFNp
emU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdElzQ2FsbGFibGUsIENDYWxsU2l6ZTo6SW50
ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSXNDb25zdHJ1Y3RvciwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlU2lt
cGxlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eSwgY2hhciosIChWTSopKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0
b3JhZ2UsIGNoYXIqLCAoVk0qLCBzaXplX3QgbmV3U2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZSwgY2hhciosIChW
TSosIENDYWxsU2l6ZSBuZXdTaXplKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpdHksIGNo
YXIqLCAoVk0qLCBKU09iamVjdCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiwgSlNPYmplY3Qq
LCBzaXplX3QgbmV3U2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25B
bGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qLCBKU09iamVjdCosIEND
YWxsU2l6ZSBuZXdTaXplKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVu
c3VyZUludDMyLCBjaGFyKiwgKFZNKiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25FbnN1cmVEb3VibGUsIGNoYXIqLCAoVk0qLCBKU0NlbGwqKSk7CiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVuc3VyZUNvbnRpZ3VvdXMsIGNoYXIqLCAo
Vk0qLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVuc3Vy
ZUFycmF5U3RvcmFnZSwgY2hhciosIChWTSosIEpTQ2VsbCopKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVJvcGUsIFN0cmluZ0ltcGwqLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU1N0cmluZyopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2lu
Z2xlQ2hhcmFjdGVyU3RyaW5nLCBKU1N0cmluZyosIChWTSosIGludDMyX3QpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBKU1N0cmlu
ZyosIChWTSosIENDYWxsSW50MzIpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TdHJpbmdTdWJzdHIsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIGlu
dDMyX3QsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3Ry
aW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIGludDMyX3QsIGlu
dDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU3Vic3Ry
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBDQ2FsbEludDMyLCBDQ2FsbElu
dDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1NsaWNlLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBDQ2FsbEludDMyLCBDQ2FsbEludDMy
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1ZhbHVlT2YsIEpT
U3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dlckNhc2UsIEpTU3RyaW5nKiwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNTdHJpbmcqLCB1aW50MzJfdCkpOwotCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBpbnQz
Ml90LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUy
VG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBpbnQ2NF90LCBpbnQzMl90KSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nLCBjaGFyKiwg
KEpTR2xvYmFsT2JqZWN0KiwgZG91YmxlLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIGludDMyX3QsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSW50NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiwgaW50NjRfdCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Eb3VibGVUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgZG91YmxlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblRvTG93ZXJDYXNlLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwg
Q0NhbGxVSW50MzIpKTsKKworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQz
MlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQz
MikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1MlRvU3RyaW5nLCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ0NhbGxJbnQ2NCwgQ0NhbGxJbnQzMikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZywgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIGRvdWJsZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9i
YWxPYmplY3QqLCBDQ2FsbEludDMyLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIENDYWxsSW50NjQsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChK
U0dsb2JhbE9iamVjdCosIGRvdWJsZSwgQ0NhbGxJbnQzMikpOwogSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25GdW5jdGlvblRvU3RyaW5nLCBKU1N0cmluZyosIChKU0dsb2JhbE9i
amVjdCosIEpTRnVuY3Rpb24qKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTm9ybWFsaXplTWFwS2V5SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChWTSosIEpTQmln
SW50KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBIYXNoLCBVQ1BV
U3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGlucHV0KSk7CiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhhc2hIZWFwQmlnSW50LCBVQ1BV
U3RyaWN0SW50MzIsIChWTSosIEpTQmlnSW50KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25KU01hcEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25KU1NldEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyKSk7CiAKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnROb1JhZGl4R2VuZXJpYywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3RyaW5nTm9SYWRpeCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKikpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIEpTU3RyaW5nKiwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QYXJzZUludFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEpTU3RyaW5nKiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk5ld1N5bWJvbCwgU3ltYm9sKiwgKFZNKikpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdTeW1ib2xXaXRoU3RyaW5nRGVzY3JpcHRpb24sIFN5bWJv
bCosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKikpOwpAQCAtMjcyLDQ4ICsyNzMsNDggQEAg
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYWtlUm9wZTIsIEpTU3RyaW5nKiwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNTdHIKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTWFrZVJvcGUzLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNT
dHJpbmcqLCBKU1N0cmluZyopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U3RyQ2F0MiwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyQ2F0
MywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkZpbmRTd2l0Y2hJbW1UYXJnZXRGb3JEb3VibGUsIGNoYXIqLCAoVk0qLCBFbmNvZGVkSlNW
YWx1ZSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0Kiwgc2l6
ZV90IHRhYmxlSW5kZXgsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiwgSlNTdHJpbmcq
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBs
TGVzcywgdWludHB0cl90LCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzc0VxLCB1aW50cHRy
X3QsIChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyLCB1aW50cHRyX3QsIChTdHJpbmdJ
bXBsKiwgU3RyaW5nSW1wbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyRXEsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqLCBTdHJp
bmdJbXBsKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aW5nTGVzcywgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5n
KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVz
c0VxLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKSk7
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVy
LCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyRXEs
IHVpbnRwdHJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRv
dWJsZSwgY2hhciosIChWTSosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFNpemUgdGFibGVJbmRleCwg
Q0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hT
dHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBDQ2FsbFNpemUgdGFibGVJbmRleCwgY29u
c3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzLCBDQ2FsbFVJbnRwdHI6
OkludGVnZXJUeXBlLCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzc0VxLCBDQ2FsbFVJbnRw
dHI6OkludGVnZXJUeXBlLCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlciwgQ0NhbGxV
SW50cHRyOjpJbnRlZ2VyVHlwZSwgKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1wbEdyZWF0ZXJFcSwg
Q0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzcywgQ0Nh
bGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0
cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlu
Z0xlc3NFcSwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNT
dHJpbmcqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGFyZVN0cmluZ0dyZWF0ZXIsIENDYWxsVUludHB0cjo6SW50ZWdlclR5cGUsIChKU0dsb2Jh
bE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdHcmVhdGVyRXEsIENDYWxsVUludHB0cjo6SW50ZWdl
clR5cGUsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5vdGlmeVdyaXRlLCB2b2lkLCAoVk0qLCBXYXRj
aHBvaW50U2V0KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1N0
YWNrT3ZlcmZsb3dGb3JWYXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqKSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVPZlZhcmFyZ3MsIFVDUFVTdHJpY3RJbnQz
MiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCB1aW50MzJfdCBm
aXJzdFZhckFyZ09mZnNldCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25M
b2FkVmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgaW50MzJfdCBmaXJzdEVsZW1lbnRE
ZXN0LCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3Qg
bGVuZ3RoLCB1aW50MzJfdCBtYW5kYXRvcnlNaW5pbXVtKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblNpemVPZlZhcmFyZ3MsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFs
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBDQ2FsbFVJbnQzMiBmaXJzdFZhckFy
Z09mZnNldCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb2FkVmFyYXJn
cywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgQ0NhbGxJbnQzMiBmaXJzdEVsZW1lbnREZXN0LCBF
bmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIENDYWxsVUludDMyIG9mZnNldCwgQ0NhbGxVSW50MzIg
bGVuZ3RoLCBDQ2FsbFVJbnQzMiBtYW5kYXRvcnlNaW5pbXVtKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRocm93REZHLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1N0
YXRpY0Vycm9yLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIHVpbnQzMl90KSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgQ0NhbGxVSW50MzIpKTsKIAotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNPd25Qcm9wZXJ0eSwgc2l6ZV90LCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc093blByb3BlcnR5LCBDQ2FsbFNpemU6OkludGVnZXJU
eXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiAKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mU3RyaW5nLCBVQ1BV
U3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEpTU3RyaW5nKiwgaW50
MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZW
YWx1ZURvdWJsZSwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJmbHkq
LCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMyT3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0SW50
MzIsIChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0cmlu
ZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJmbHkqLCBKU1N0cmlu
ZyosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJy
YXlJbmRleE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0Kiwg
QnV0dGVyZmx5KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVJbnQzMk9yQ29udGlndW91cywg
VUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJmbHkqLCBFbmNvZGVkSlNW
YWx1ZSwgQ0NhbGxJbnQzMikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blNwcmVhZEZhc3RBcnJheSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TcHJlYWRHZW5lcmljLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCosIHZvaWQqLCB1aW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25DcmVhdGVJbW11dGFibGVCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIHVu
c2lnbmVkIGxlbmd0aCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdB
cnJheVdpdGhTcHJlYWRTbG93LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCB2b2lkKiwgQ0Nh
bGxVSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlSW1t
dXRhYmxlQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBDQ2FsbFVJbnQzMiBs
ZW5ndGgpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlU2Nv
cGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTU2NvcGUqLCBVbmlxdWVkU3RyaW5nSW1w
bCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVzb2x2ZVNjb3BlRm9y
SG9pc3RpbmdGdW5jRGVjbEluRXZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IEpTU2NvcGUqLCBVbmlxdWVkU3RyaW5nSW1wbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0RHluYW1pY1ZhciwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25lZCkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlLCBVbmlx
dWVkU3RyaW5nSW1wbCosIHVuc2lnbmVkKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dER5bmFtaWNWYXJOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgdW5zaWdu
ZWQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0RHluYW1pY1Zhciwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBzY29wZSwgVW5pcXVl
ZFN0cmluZ0ltcGwqLCBDQ2FsbFVJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXREeW5hbWljVmFyU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09i
amVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCosIENDYWxsVUlu
dDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJO
b25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBzY29wZSwgRW5jb2Rl
ZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgQ0NhbGxVSW50MzIpKTsKIAotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0Qm94ZWREb3VibGVUb0ludDUyLCBpbnQ2
NF90LCAoRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29udmVydERvdWJsZVRvSW50NTIsIGludDY0X3QsIChkb3VibGUpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydEJveGVkRG91YmxlVG9JbnQ1MiwgQ0NhbGxJ
bnQ2NDo6SW50ZWdlclR5cGUsIChFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0RG91YmxlVG9JbnQ1MiwgQ0NhbGxJbnQ2NDo6SW50ZWdl
clR5cGUsIChkb3VibGUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
dW1iZXJJc0ludGVnZXIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyLCBD
Q2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkp
OwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1Jhd09iamVjdCwgY2hh
ciosIChWTSosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSopKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmF3T2JqZWN0LCBjaGFyKiwgKFZNKiwgU3RydWN0
dXJlKiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5LCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1
cmUqLCBCdXR0ZXJmbHkqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFkZXJBbmRWZWN0b3JMZW5ndGgsIEpT
Q2VsbCosIChWTSosIFN0cnVjdHVyZSosIHVuc2lnbmVkIGxlbmd0aCwgQnV0dGVyZmx5KikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5
V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVjdG9yTGVuZ3RoLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1
cmUqLCBDQ2FsbFVJbnQzMiBsZW5ndGgsIEJ1dHRlcmZseSopKTsKIAogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25MaW5rRGlyZWN0Q2FsbCwgdm9pZCwgKE9wdGltaXppbmdDYWxs
TGlua0luZm8qLCBKU0Z1bmN0aW9uKikpOwogCkBAIC0zNDQsOCArMzQ1LDggQEAgSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SYW5kb20sIGRvdWJsZSwgKEpTR2xvYmFsT2JqZWN0
KikpOwogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChWTSopKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiwgdW5z
aWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVHJpZ2dlck9TUkVudHJ5Tm93LCBjaGFyKiwgKFZNKiwgdW5zaWduZWQgYnl0ZWNvZGVJ
bmRleEJpdHMpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRp
ZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiwgQ0NhbGxVSW50MzIgYnl0ZWNvZGVJbmRleEJpdHMp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlck9TUkVudHJ5Tm93
LCBjaGFyKiwgKFZNKiwgQ0NhbGxVSW50MzIgYnl0ZWNvZGVJbmRleEJpdHMpKTsKICNlbmRpZiAv
LyBFTkFCTEUoRlRMX0pJVCkKIAogaW5saW5lIGF1dG8gb3BlcmF0aW9uTmV3VHlwZWRBcnJheVdp
dGhTaXplRm9yVHlwZShUeXBlZEFycmF5VHlwZSB0eXBlKSAtPiBkZWNsdHlwZSgmb3BlcmF0aW9u
TmV3SW50OEFycmF5V2l0aFNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKaW5kZXggOWU1OTliZmZlYzhiOTAwZmQ3MjM4ZWRjNjM5Y2ViNTY0OTQz
YTljOC4uOGI4YjViZWNjZjVlNGMxMGMxZGRmOTM3ZWZmYmNjYjk3ZjRlOTg4OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTIyLDEyICsx
MjIsMTIgQEAgbmFtZXNwYWNlIHsKIHN0ZDo6YXRvbWljPGludD4gY29tcGlsZUNvdW50ZXI7CiAK
ICNpZiBBU1NFUlRfRU5BQkxFRAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJ
QlVURVMoZnRsVW5yZWFjaGFibGUsIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChDb2Rl
QmxvY2sqIGNvZGVCbG9jaywgQmxvY2tJbmRleCBibG9ja0luZGV4LCB1bnNpZ25lZCBub2RlSW5k
ZXgpKTsKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMoZnRsVW5yZWFj
aGFibGUsIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChDb2RlQmxvY2sqIGNvZGVCbG9j
aywgQmxvY2tJbmRleCBibG9ja0luZGV4LCB1bnNpZ25lZCBub2RlSW5kZXgpKQorSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMoZnRsVW5yZWFjaGFibGUsIE5PX1JFVFVS
Tl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQmxvY2tJbmRleCBi
bG9ja0luZGV4LCBDQ2FsbFVJbnQzMiBub2RlSW5kZXgpKTsKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTl9XSVRIX0FUVFJJQlVURVMoZnRsVW5yZWFjaGFibGUsIE5PX1JFVFVSTl9EVUVfVE9fQ1JB
U0gsIHZvaWQsIChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQmxvY2tJbmRleCBibG9ja0luZGV4LCBD
Q2FsbFVJbnQzMiBub2RlSW5kZXgpKQogewogICAgIGRhdGFMb2coIkNyYXNoaW5nIGluIHRob3Vn
aHQtdG8tYmUtdW5yZWFjaGFibGUgRlRMLWdlbmVyYXRlZCBjb2RlIGZvciAiLCBwb2ludGVyRHVt
cChjb2RlQmxvY2spLCAiIGF0IGJhc2ljIGJsb2NrICMiLCBibG9ja0luZGV4KTsKICAgICBpZiAo
bm9kZUluZGV4ICE9IFVJTlRfTUFYKQotICAgICAgICBkYXRhTG9nKCIsIG5vZGUgQCIsIG5vZGVJ
bmRleCk7CisgICAgICAgIGRhdGFMb2coIiwgbm9kZSBAIiwgdWludDMyX3Qobm9kZUluZGV4KSk7
CiAgICAgZGF0YUxvZygiLlxuIik7CiAgICAgQ1JBU0goKTsKIH0KQEAgLTQ3MTUsMTQgKzQ3MTUs
MTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9u
cy5nZXQoKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHVi
SW5mbzo6b2Zmc2V0T2ZTbG93T3BlcmF0aW9uKCkpLCBJbnZhbGlkR1BSUmVnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCktPmdsb2JhbE9iamVjdEZvcihu
b2RlU2VtYW50aWNPcmlnaW4pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHVi
SW5mb0dQUiwgcGFyYW1zWzFdLmdwcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXJhbXNbMF0uZ3ByKCksIGlkZW50aWZpZXIucmF3Qml0cygpKS5jYWxsKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIoKSwgQ0NhbGxVSW50cHRyKGlk
ZW50aWZpZXIucmF3Qml0cygpKSkuY2FsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG93UGF0aENhbGwgPSBjYWxsT3Bl
cmF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqc3RhdGUsIHBhcmFtcy51
bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGVTZW1hbnRpY09yaWdpbiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgZ2VuZXJhdG9yLT5zbG93
UGF0aEZ1bmN0aW9uKCksIEludmFsaWRHUFJSZWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGppdC5jb2RlQmxvY2soKS0+Z2xvYmFsT2JqZWN0Rm9yKG5vZGVTZW1hbnRpY09yaWdp
biksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cihnZW5lcmF0b3ItPnN0dWJJbmZvKCkpLCBwYXJhbXNbMV0uZ3ByKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIoKSwgaWRlbnRpZmllci5yYXdC
aXRzKCkpLmNhbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zWzBd
LmdwcigpLCBDQ2FsbFVJbnRwdHIoaWRlbnRpZmllci5yYXdCaXRzKCkpKS5jYWxsKCk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBqaXQuanVtcCgp
LmxpbmtUbyhkb25lLCAmaml0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPU1JFeGl0Q29tcGlsZXIuY3BwCmluZGV4IGZlNzlmNzhkMzc1MGQ2MzRkZTIzMjNjYWRkYjA2
ZDQxN2U4ODNiZTcuLmNmMjMyYzIyN2E4YWExYmMxNWViMzg2YjkyNGMyZDg4YTc0ZDg5MTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAK
QEAgLTQ5MywxMCArNDkzLDEwIEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKFZNJiB2bSwgdW5z
aWduZWQgZXhpdElELCBKSVRDb2RlKiBqaXRDb2RlLCBPU1JFeGl0JiBleGl0CiAgICAgICAgICk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRMT1NSRXhp
dCwgdm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWduZWQgZXhpdElEKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRMT1NSRXhpdCwgdm9pZCosIChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgQ0NhbGxVSW50MzIgZXhpdElEKSkKIHsKICAgICBpZiAoc2hv
dWxkRHVtcERpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpIHx8IE9wdGlvbnM6
OnZlcmJvc2VGVExPU1JFeGl0KCkpCi0gICAgICAgIGRhdGFMb2coIkNvbXBpbGluZyBPU1IgZXhp
dCB3aXRoIGV4aXRJRCA9ICIsIGV4aXRJRCwgIlxuIik7CisgICAgICAgIGRhdGFMb2coIkNvbXBp
bGluZyBPU1IgZXhpdCB3aXRoIGV4aXRJRCA9ICIsIHVpbnQzMl90KGV4aXRJRCksICJcbiIpOwog
CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICAvLyBEb24ndCBu
ZWVkIGFuIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBoZXJlIGJlY2F1c2Ugd2UgRGVmZXJHQ0Zv
ckFXaGlsZSBiZWxvdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T1NSRXhpdENvbXBpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRD
b21waWxlci5oCmluZGV4IDg0NDViMDE3MDJlZjg3ODc1ZTE5YWNkOTg4ZTRlYzU5ZjNmN2EwZTAu
LjY5YmI2NzYzODZhZjA0YWNiYjBiMDBiYzlkYjFjNzlkMjg3YzliNDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuaApAQCAtMzMsNyArMzMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIC8vIFRha2VzIHRoZSBjYWxsIGZy
YW1lIGFuZCB0aGUgaW5kZXggb2YgdGhlIGV4aXQsIGFuZCByZXR1cm5zIHRoZSBhZGRyZXNzIHRv
CiAvLyBqdW1wIHRvLgotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxl
RlRMT1NSRXhpdCwgdm9pZCosIChDYWxsRnJhbWUqLCB1bnNpZ25lZCBleGl0SUQpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTE9TUkV4aXQsIHZvaWQqLCAo
Q2FsbEZyYW1lKiwgQ0NhbGxVSW50MzIgZXhpdElEKSk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpGVEwKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAKaW5k
ZXggMzk2NmI0ZGFmZTg2MGY5YTkyNmU4OTkzNWQxYjllMWNmOTcwNzVhNC4uNWMxNTI4ODFlYjgx
NWNiMDY0MmZmMGY4ZmM4OGZmY2I3NzlmOGEyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCkBAIC02OTksNyArNjk5LDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk1hdGVyaWFsaXplT2JqZWN0SW5PU1IsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamUKICAgICB9CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
d2l0Y2hTdHJpbmdBbmRHZXRJbmRleCwgdW5zaWduZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBjb25zdCBVbmxpbmtlZFN0cmluZ0p1bXBUYWJsZSogdW5saW5rZWRUYWJsZSwgSlNT
dHJpbmcqIHN0cmluZykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNo
U3RyaW5nQW5kR2V0SW5kZXgsIENDYWxsVUludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiB1bmxpbmtl
ZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtNzEzLDcgKzcxMyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
d2l0Y2hTdHJpbmdBbmRHZXRJbmRleCwgdW5zaWduZWQsIChKU0dsb2JhbE9iCiAgICAgcmV0dXJu
IHVubGlua2VkVGFibGUtPmluZGV4Rm9yVmFsdWUoc3RySW1wbCwgc3RkOjpudW1lcmljX2xpbWl0
czx1bnNpZ25lZD46Om1heCgpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblR5cGVPZk9iamVjdEFzVHlwZW9mVHlwZSwgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5cGUsIENDYWxsSW50MzI6OkludGVnZXJUeXBl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03MjgsNyArNzI4LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVjdEFzVHlwZW9mVHlwZSwgaW50MzJfdCwg
KEpTR2xvYmFsT2IKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oVHlwZW9mVHlwZTo6
T2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVG
VExMYXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIHVuc2lnbmVkIGlu
ZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRMTGF6eVNs
b3dQYXRoLCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDQ2FsbFVJbnQzMiBpbmRleCkp
CiB7CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKTsKICAgICAvLyBEb24n
dCBuZWVkIGFuIEFjdGl2ZVNjcmF0Y2hCdWZmZXJTY29wZSBoZXJlIGJlY2F1c2Ugd2UgRGVmZXJH
Q0ZvckFXaGlsZS4KQEAgLTc0NSwxMCArNzQ1LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db21waWxlRlRMTGF6eVNsb3dQYXRoLCB2b2lkKiwgKENhbGxGcmFtZSogY2Fs
CiAgICAgcmV0dXJuIGxhenlTbG93UGF0aC5zdHViKCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNz
KCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMob3BlcmF0
aW9uUmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVycm9yQW5kQ3Jhc2gsIE5PX1JFVFVSTl9E
VUVfVE9fQ1JBU0gsIHZvaWQsIChpbnRwdHJfdCBjb2RlQmxvY2tBc0ludFB0ciwgaW50MzJfdCBu
b2RlSW5kZXgsIGludDMyX3QgY2hpbGQxSW5kZXgsIGludDMyX3QgY2hpbGQySW5kZXgsIGludDMy
X3QgY2hlY2tlZEluZGV4LCBpbnQzMl90IGJvdW5kcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T05fV0lUSF9BVFRSSUJVVEVTKG9wZXJhdGlvblJlcG9ydEJvdW5kc0NoZWNrRWxpbWluYXRpb25F
cnJvckFuZENyYXNoLCBOT19SRVRVUk5fRFVFX1RPX0NSQVNILCB2b2lkLCAoQ0NhbGxJbnRwdHIg
Y29kZUJsb2NrQXNJbnRQdHIsIENDYWxsSW50MzIgbm9kZUluZGV4LCBDQ2FsbEludDMyIGNoaWxk
MUluZGV4LCBDQ2FsbEludDMyIGNoaWxkMkluZGV4LCBDQ2FsbEludDMyIGNoZWNrZWRJbmRleCwg
Q0NhbGxJbnQzMiBib3VuZHMpKQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gYml0d2lz
ZV9jYXN0PENvZGVCbG9jayo+KGNvZGVCbG9ja0FzSW50UHRyKTsKLSAgICBkYXRhTG9nTG4oIkJv
dW5kcyBDaGVjayBFaW1pbmF0aW9uIGVycm9yIGZvdW5kIEAgREAiLCBub2RlSW5kZXgsICI6IEFz
c2VydEluQm91bmRzKGluZGV4IERAIiwgY2hpbGQxSW5kZXgsICI6ICIsIGNoZWNrZWRJbmRleCwg
IiwgYm91bmRzIERAIiwgY2hpbGQySW5kZXgsICIgIiwgYm91bmRzLCAiKSBpbiAiLCBjb2RlQmxv
Y2spOworICAgIGRhdGFMb2dMbigiQm91bmRzIENoZWNrIEVpbWluYXRpb24gZXJyb3IgZm91bmQg
QCBEQCIsIGludDMyX3Qobm9kZUluZGV4KSwgIjogQXNzZXJ0SW5Cb3VuZHMoaW5kZXggREAiLCBp
bnQzMl90KGNoaWxkMUluZGV4KSwgIjogIiwgaW50MzJfdChjaGVja2VkSW5kZXgpLCAiLCBib3Vu
ZHMgREAiLCBpbnQzMl90KGNoaWxkMkluZGV4KSwgIiAiLCBpbnQzMl90KGJvdW5kcyksICIpIGlu
ICIsIGNvZGVCbG9jayk7CiAgICAgQ1JBU0goKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE9wZXJhdGlvbnMuaAppbmRleCA1YmI4ZDMwYjdiMTAxZDQwNjJiNmY2NmU5MmMwZTNh
MGY4ZDNhMWU0Li5jMDA4M2RiZjE4NWJiZTQyNjQyNWIwN2U0Y2RmMWQxN2E2MmY4NzEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuaApAQCAtNDIsMTIgKzQyLDEy
IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJ
bk9TUiwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqCiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUG9wdWxhdGVPYmplY3RJbk9TUiwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRXhp
dFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24qLCBFbmNvZGVkSlNWYWx1ZSosIEVuY29kZWRKU1Zh
bHVlKikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExM
YXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiwgdW5zaWduZWQpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTExhenlTbG93UGF0aCwgdm9pZCosIChD
YWxsRnJhbWUqLCBDQ2FsbFVJbnQzMikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdldEluZGV4LCB1bnNpZ25lZCwgKEpTR2xvYmFsT2JqZWN0
KiwgY29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqLCBKU1N0cmluZyopKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0QXNUeXBlb2ZUeXBlLCBpbnQz
Ml90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdldEluZGV4LCBDQ2FsbFVJbnQzMjo6SW50ZWdl
clR5cGUsIChKU0dsb2JhbE9iamVjdCosIGNvbnN0IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiwg
SlNTdHJpbmcqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9i
amVjdEFzVHlwZW9mVHlwZSwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCopKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXBv
cnRCb3VuZHNDaGVja0VsaW1pbmF0aW9uRXJyb3JBbmRDcmFzaCwgdm9pZCwgKGludHB0cl90IGNv
ZGVCbG9ja0FzSW50UHRyLCBpbnQzMl90LCBpbnQzMl90LCBpbnQzMl90LCBpbnQzMl90LCBpbnQz
Ml90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlcG9ydEJvdW5kc0No
ZWNrRWxpbWluYXRpb25FcnJvckFuZENyYXNoLCB2b2lkLCAoQ0NhbGxJbnRwdHIgY29kZUJsb2Nr
QXNJbnRQdHIsIENDYWxsSW50MzIsIENDYWxsSW50MzIsIENDYWxsSW50MzIsIENDYWxsSW50MzIs
IENDYWxsSW50MzIpKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4MTE2
MzRlMjNjMjE3YmRhMWNjZjY0Li44NTVlZDQwYjY1OTFmNDM3NGQxMmRjMWMzOTZlMTcwNzMxNDIx
ZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTI4LDYg
KzI4LDcgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAiQXNzZW1ibHlIZWxwZXJzLmgi
CisjaW5jbHVkZSAiQ0NhbGxUeXBlcy5oIgogI2luY2x1ZGUgIkZQUkluZm8uaCIKICNpbmNsdWRl
ICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKQEAgLTYwOCwyMyArNjA5
LDIzIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9u
VHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWdu
ZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNlcywgdW5zaWduZWQgbnVtQ3Jvc3NT
b3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2lnbmVkIG5vbkFyZ0dQUnMsIHVuc2ln
bmVkIGV4dHJhUG9rZSwgdHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgIEFMV0FZ
U19JTkxJTkUgc3RkOjplbmFibGVfaWZfdDwKLSAgICAgICAgc3RkOjppc19zYW1lPENVUlJFTlRf
QVJHVU1FTlRfVFlQRSwgQXJnPjo6dmFsdWUKLSAgICAgICAgJiYgc3RkOjppc19pbnRlZ3JhbDxD
VVJSRU5UX0FSR1VNRU5UX1RZUEU+Ojp2YWx1ZQotICAgICAgICAmJiAoc2l6ZW9mKENVUlJFTlRf
QVJHVU1FTlRfVFlQRSkgPD0gNCk+CisgICAgQUxXQVlTX0lOTElORSBzdGQ6OmVuYWJsZV9pZl90
PHN0ZDo6aXNfaW50ZWdyYWxfdjxBcmc+ICYmIHN0ZDo6aXNfc2FtZV92PENVUlJFTlRfQVJHVU1F
TlRfVFlQRSwgQ0NhbGxJbnRlZ2VyPEFyZz4+PgogICAgIHNldHVwQXJndW1lbnRzSW1wbChBcmdD
b2xsZWN0aW9uPG51bUdQUkFyZ3MsIG51bUdQUlNvdXJjZXMsIG51bUZQUkFyZ3MsIG51bUZQUlNv
dXJjZXMsIG51bUNyb3NzU291cmNlcywgZXh0cmFHUFJBcmdzLCBub25BcmdHUFJzLCBleHRyYVBv
a2U+IGFyZ1NvdXJjZVJlZ3MsIEFyZyBhcmcsIEFyZ3MuLi4gYXJncykKICAgICB7Ci0gICAgICAg
IHNldHVwQXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlPihhcmdTb3VyY2VSZWdzLCBUcnVzdGVk
SW1tMzIoYXJnKSwgYXJncy4uLik7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc2l6ZW9mKEFyZykg
PD0gNCkKKyAgICAgICAgICAgIHNldHVwQXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlPihhcmdT
b3VyY2VSZWdzLCBUcnVzdGVkSW1tMzIoYXJnKSwgYXJncy4uLik7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHNldHVwQXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlPihhcmdTb3VyY2VSZWdz
LCBUcnVzdGVkSW1tNjQoYXJnKSwgYXJncy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQgbnVtR1BS
U291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNlcywgdW5z
aWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2lnbmVkIG5v
bkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZSwgdHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4uLiBB
cmdzPgotICAgIEFMV0FZU19JTkxJTkUgc3RkOjplbmFibGVfaWZfdDwKLSAgICAgICAgc3RkOjpp
c19zYW1lPENVUlJFTlRfQVJHVU1FTlRfVFlQRSwgQXJnPjo6dmFsdWUKLSAgICAgICAgJiYgc3Rk
Ojppc19pbnRlZ3JhbDxDVVJSRU5UX0FSR1VNRU5UX1RZUEU+Ojp2YWx1ZQotICAgICAgICAmJiAo
c2l6ZW9mKENVUlJFTlRfQVJHVU1FTlRfVFlQRSkgPT0gOCk+CisgICAgQUxXQVlTX0lOTElORSBz
dGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2FtZV92PEFyZywgQ0NhbGxJbnRlZ2VyPHR5cGVuYW1l
IEFyZzo6SW50ZWdlclR5cGU+PiAmJiBzdGQ6OmlzX3NhbWVfdjxDVVJSRU5UX0FSR1VNRU5UX1RZ
UEUsIEFyZz4+CiAgICAgc2V0dXBBcmd1bWVudHNJbXBsKEFyZ0NvbGxlY3Rpb248bnVtR1BSQXJn
cywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBSU291cmNlcywgbnVtQ3Jvc3NTb3Vy
Y2VzLCBleHRyYUdQUkFyZ3MsIG5vbkFyZ0dQUnMsIGV4dHJhUG9rZT4gYXJnU291cmNlUmVncywg
QXJnIGFyZywgQXJncy4uLiBhcmdzKQogICAgIHsKLSAgICAgICAgc2V0dXBBcmd1bWVudHNJbXBs
PE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIFRydXN0ZWRJbW02NChhcmcpLCBhcmdzLi4u
KTsKKyAgICAgICAgaWYgY29uc3RleHByIChzaXplb2YodHlwZW5hbWUgQXJnOjpJbnRlZ2VyVHlw
ZSkgPD0gNCkKKyAgICAgICAgICAgIHNldHVwQXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlPihh
cmdTb3VyY2VSZWdzLCBUcnVzdGVkSW1tMzIodHlwZW5hbWUgQXJnOjpJbnRlZ2VyVHlwZShhcmcp
KSwgYXJncy4uLik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNldHVwQXJndW1lbnRzSW1w
bDxPcGVyYXRpb25UeXBlPihhcmdTb3VyY2VSZWdzLCBUcnVzdGVkSW1tNjQodHlwZW5hbWUgQXJn
OjpJbnRlZ2VyVHlwZShhcmcpKSwgYXJncy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQgbnVtR1BS
U291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNlcywgdW5z
aWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2lnbmVkIG5v
bkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZSwgdHlwZW5hbWUgQXJnLCB0eXBlbmFtZS4uLiBB
cmdzPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbFR5cGVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsVHlwZXMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTY3
NmUyMTdmZGRjMTY0MzhiYTgwNGFkYWEzMDdjMmVhNzhjZWM1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbFR5cGVzLmgKQEAgLTAsMCArMSw3MSBAQAor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSA8d3RmL1N0ZEludEV4
dHJhcy5oPgorCituYW1lc3BhY2UgSlNDIHsKKworI2lmIENQVShSSVNDVjY0KQordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK3N0cnVjdCBSSVNDVjY0Q0NhbGxJbnRlZ2VyIHsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihUKSA8PSBzaXplb2YoQ1BVUmVnaXN0ZXIpKTsKKyAgICB1c2luZyBJbnRlZ2Vy
VHlwZSA9IFQ7CisKKyAgICBSSVNDVjY0Q0NhbGxJbnRlZ2VyKCkgPSBkZWxldGU7CisgICAgUklT
Q1Y2NENDYWxsSW50ZWdlcihUIHZhbHVlKQorICAgICAgICA6IHZhbHVlKHZhbHVlKQorICAgIHsg
fQorCisgICAgb3BlcmF0b3IgVCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiBjb25zdGV4cHIg
KHNpemVvZihUKSA9PSA0KSB7CisgICAgICAgICAgICBhc20gdm9sYXRpbGUgKAorICAgICAgICAg
ICAgICAgICJzZXh0LncgJVtvdXRfdmFsdWVdLCAlW2luX3ZhbHVlXVxuXHQiCisgICAgICAgICAg
ICAgICAgOiBbb3V0X3ZhbHVlXSAiPXIiICh2YWx1ZSkKKyAgICAgICAgICAgICAgICA6IFtpbl92
YWx1ZV0gInIiICh2YWx1ZSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbnVtVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVu
YWJsZV9pZl90PHN0ZDo6aXNfZW51bV92PEVudW1UeXBlPj4+CisgICAgb3BlcmF0b3IgRW51bVR5
cGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEVudW1UeXBlKFQoKnRoaXMpKTsKKyAg
ICB9CisKKyAgICBtdXRhYmxlIFQgdmFsdWU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
dXNpbmcgQ0NhbGxJbnRlZ2VyID0gUklTQ1Y2NENDYWxsSW50ZWdlcjxUPjsKKyNlbHNlCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IENDYWxsSW50ZWdlciB7CisgICAgdXNpbmcgSW50ZWdl
clR5cGUgPSBUOworCisgICAgQ0NhbGxJbnRlZ2VyKCkgPSBkZWxldGU7CisgICAgQ0NhbGxJbnRl
Z2VyKFQgdmFsdWUpCisgICAgICAgIDogdmFsdWUodmFsdWUpCisgICAgeyB9CisKKyAgICBvcGVy
YXRvciBUKCkgY29uc3QgeyByZXR1cm4gdmFsdWU7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEVudW1UeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19lbnVtX3Y8RW51
bVR5cGU+Pj4KKyAgICBvcGVyYXRvciBFbnVtVHlwZSgpIGNvbnN0IHsgcmV0dXJuIEVudW1UeXBl
KHZhbHVlKTsgfQorCisgICAgVCB2YWx1ZTsKK307CisjZW5kaWYKKwordXNpbmcgQ0NhbGxJbnQz
MiA9IENDYWxsSW50ZWdlcjxpbnQzMl90PjsKK3VzaW5nIENDYWxsVUludDMyID0gQ0NhbGxJbnRl
Z2VyPHVpbnQzMl90PjsKK3VzaW5nIENDYWxsSW50NjQgPSBDQ2FsbEludGVnZXI8aW50NjRfdD47
Cit1c2luZyBDQ2FsbFVJbnQ2NCA9IENDYWxsSW50ZWdlcjx1aW50NjRfdD47Cit1c2luZyBDQ2Fs
bEludHB0ciA9IENDYWxsSW50ZWdlcjxpbnRwdHJfdD47Cit1c2luZyBDQ2FsbFVJbnRwdHIgPSBD
Q2FsbEludGVnZXI8dWludHB0cl90PjsKK3VzaW5nIENDYWxsU2l6ZSA9IENDYWxsSW50ZWdlcjxz
aXplX3Q+OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCAyNTBiNzc5
ZDYxNDBmMzk1ZDdjNjAyYjRhNjRkMGZiMGVhNDUzYjM2Li41NDcxODYxNWY5MTUzZjFiMWNmMDRi
ZWM2Y2NiMmFiM2ZiNjIwNjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKQEAgLTIwNyw3ICsyMDcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVGhyb3dJdGVyYXRvclJlc3VsdElzTm90T2JqZWN0LCB2b2lkLCAoSlNHbG9iYQog
ICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJJdGVyYXRvciByZXN1bHQg
aW50ZXJmYWNlIGlzIG5vdCBhbiBvYmplY3QuIl9zKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbEFy
aXR5Q2hlY2ssIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyNCw3ICsyMjQs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2ssIGlu
dDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBtaXNzaW5nQXJnQ291bnQ7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNo
ZWNrLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjaywgQ0NhbGxJbnQzMjo6
SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjQxLDcgKzI0MSw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrLCBpbnQzMl90LCAoSlNHbG9iYWxP
YmplY3QqCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVk
SlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU4LDcgKzI1OCw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiB9CiAKIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRyeUdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFi
bGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRC
eUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3Myw3ICsyNzMsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZEdlbmVyaWMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2xvdC5n
ZXRQdXJlUmVzdWx0KCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VHJ5R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVu
Y29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk1LDcgKzI5NSw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkT3B0aW1pemUsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG90LmdldFB1
cmVSZXN1bHQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRC
eUlkRGlyZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0
cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMxNCw3ICszMTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGZvdW5k
ID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RHZW5l
cmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0R2VuZXJpYywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMzMiw3ICszMzIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGZvdW5k
ID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRp
bWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCBy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeUlkRGlyZWN0T3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1
ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM1NCw3ICszNTQsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGZv
dW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkp
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWQsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxl
SWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdD
YWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBs
ZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC0zNzUsNyArMzc1LDcgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1
aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxl
clNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTM5NCw3ICszOTQsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlm
aWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1w
bGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNDE3LDcgKzQxNyw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplCiAgICAgfSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlJZFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVu
dGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRo
aXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzRW5jb2RlZCwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewog
ICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIApAQCAtNDM2
LDcgKzQzNiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0
aFRoaXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgaWRlbnQsIHNsb3QpKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVyaWMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRC
eUlkV2l0aFRoaXNHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVk
LCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1w
bGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC00NTMsNyArNDUzLDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVyaWMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJhc2VW
YWx1ZS5nZXQoZ2xvYmFsT2JqZWN0LCBpZGVudCwgc2xvdCkpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywg
RW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIENDYWxsVUlu
dHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBz
dXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC00NzcsNyArNDc3LDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09wdGltaXplLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2wKICAgICB9KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25JbkJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBF
bmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikp
CiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBA
IC01MDUsNyArNTA1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJ
ZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihiYXNlT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoZ2xvYmFs
T2JqZWN0LCBpZGVudCwgc2xvdCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUg
YmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQog
ewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIApAQCAt
Njk3LDcgKzY5Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQcml2
YXRlQnJhbmRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZVZhbHVlKS0+aGFzUHJpdmF0ZUJyYW5k
KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCcmFuZCkpKSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1
aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hl
YWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNj
b3BlKGZhbHNlKTsKICAgICAKQEAgLTcxNiw3ICs3MTYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYgogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgYmFzZVZh
bHVlLmNsYXNzSW5mb09yTnVsbCh2bSksIGlkZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUp
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2Fs
bFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2Nv
cGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNzM1LDcgKzczNSw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25QdXRC
eUlkTm9uU3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKHZtKSwgaWRlbnQsIHNsb3Qu
YmFzZSgpID09IGJhc2VWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJs
ZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRE
aXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAg
ICAgCkBAIC03NTQsNyArNzU0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5SWREaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2wKICAgICBMT0df
SUMoKElDRXZlbnQ6Ok9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QsIGJhc2VWYWx1ZS5jbGFz
c0luZm9Pck51bGwodm0pLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZhbHVlKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8q
IHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
Q0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxl
clNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTc3Myw3ICs3NzMsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KgogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9u
UHV0QnlJZERpcmVjdE5vblN0cmljdCwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCh2bSksIGlk
ZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90
IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hl
YWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNj
b3BlKGZhbHNlKTsKICAgICAKQEAgLTgwNSw3ICs4MDUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqCiAgICAgICAgIHJlcGF0Y2hQdXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZh
bHVlLCBzdHJ1Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpC
eUlkLCBQdXRLaW5kOjpOb3REaXJlY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlJZE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2Nv
cGUoZmFsc2UpOwogICAgIApAQCAtODM3LDcgKzgzNyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9i
amVjCiAgICAgICAgIHJlcGF0Y2hQdXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZh
bHVlLCBzdHJ1Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpC
eUlkLCBQdXRLaW5kOjpOb3REaXJlY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3Qg
cmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1w
bGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtODY4LDcgKzg2OCw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUsIHZvaWQsIChK
U0dsb2JhbE9iCiAgICAgICAgIHJlcGF0Y2hQdXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywg
YmFzZU9iamVjdCwgc3RydWN0dXJlLCBpZGVudGlmaWVyLCBzbG90LCAqc3R1YkluZm8sIFB1dEJ5
S2luZDo6QnlJZCwgUHV0S2luZDo6RGlyZWN0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWlu
dHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxV
SW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3Bl
IHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTkzOSw3ICs5MzksNyBAQCBBTFdB
WVNfSU5MSU5FIHN0YXRpYyB2b2lkIGRlZmluZVByaXZhdGVGaWVsZChWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGNhbGxiYWNrKHZtLCBjb2RlQmxvY2ssIG9sZFN0cnVj
dHVyZSwgcHV0U2xvdCwgaWRlbnQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hl
YWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVu
dGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtOTUyLDcgKzk1Miw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGVmaW5lUHJpdmF0
ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iCiAgICAgZGVmaW5lUHJpdmF0ZUZpZWxkKHZtLCBn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBpZGVudGlmaWVyLCB2YWx1ZSwgW10o
Vk0mLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBQdXRQcm9wZXJ0eVNsb3QmLCBjb25zdCBJZGVu
dGlmaWVyJikgeyB9KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90
IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0Nh
bGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNj
b3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CkBAIC05NzUsNyArOTc1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwKICAgICB9
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2
YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8q
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTk4OCw3ICs5ODgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
TwogICAgIHNldFByaXZhdGVGaWVsZCh2bSwgZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGJhc2VW
YWx1ZSwgaWRlbnRpZmllciwgdmFsdWUsIFtdKFZNJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlKiwg
UHV0UHJvcGVydHlTbG90JiwgY29uc3QgSWRlbnRpZmllciYpIHsgfSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0T3B0
aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0
T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkK
IHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTU1Myw3ICsxNTUzLDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZpcnR1YWxDYWxsLCBTbG93UGF0aFJldHVyblR5
cGUsIChDYWxsRnJhbWUqIGMKICAgICByZXR1cm4gdmlydHVhbEZvcldpdGhGdW5jdGlvbihnbG9i
YWxPYmplY3QsIGNhbGxlZUZyYW1lLCBjYWxsTGlua0luZm8sIGNhbGxlZUFzRnVuY3Rpb25DZWxs
SWdub3JlZCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
TGVzcywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3MsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTU2Miw3ICsxNTYyLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVMZXNzLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBy
ZXR1cm4ganNMZXNzPHRydWU+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3NFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxl
c3NFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTcxLDcgKzE1NzEsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3NFcSwgc2l6ZV90LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBqc0xlc3NFcTx0cnVlPihnbG9iYWxP
YmplY3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRPcDIpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVH
cmVhdGVyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlciwgQ0NhbGxTaXplOjpJbnRlZ2Vy
VHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0xNTgwLDcgKzE1ODAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQog
ICAgIHJldHVybiBqc0xlc3M8ZmFsc2U+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcDIpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcSwgc2l6ZV90LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGFyZUdyZWF0ZXJFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTg5LDcg
KzE1ODksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0
ZXJFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBqc0xlc3NFcTxm
YWxzZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMiksIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT3AxKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcSwgQ0NhbGxTaXplOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0xNjAxLDcgKzE2MDEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZUVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZQogI2lmIFVTRShKU1ZBTFVFNjQpCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGFyZVN0cmluZ0VxLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkpCiAjZWxzZQotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBsZWZ0LCBKU0NlbGwqIHJpZ2h0KSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nRXEsIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGxlZnQs
IEpTQ2VsbCogcmlnaHQpKQogI2VuZGlmCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwpAQCAtMTYxNiw3ICsxNjE2LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVTdHJpbmdFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICNlbmRp
ZgogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVx
LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTYyOSw3ICsxNjI5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVTdHJpY3RFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKIH0KIAog
I2lmIFVTRShCSUdJTlQzMikKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21w
YXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBoZWFwQmlnSW50LCBpbnQzMl90IHNtYWxsSW50KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgQ0NhbGxT
aXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCog
aGVhcEJpZ0ludCwgQ0NhbGxJbnQzMiBzbWFsbEludCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTE2NDEsNyArMTY0MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgc2l6ZV90LCAoSlNHbG9iYWxPCiB9
CiAjZW5kaWYKIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0
aFByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgY29uc3QgSlNWYWx1ZSogdmFsdWVzLCBp
bnQgc2l6ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRo
UHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBB
cnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMsIEND
YWxsSW50MzIgc2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4MTQs
NyArMTgxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYW5kbGVUcmFw
cywgVW51c2VkUHRyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWJ1Zywgdm9pZCwgKFZN
KiB2bVBvaW50ZXIsIGludDMyX3QgZGVidWdIb29rVHlwZSkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRGVidWcsIHZvaWQsIChWTSogdm1Qb2ludGVyLCBDQ2FsbEludDMyIGRl
YnVnSG9va1R5cGUpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTgzMCw3ICsxODMwLDcg
QEAgc3RhdGljIHZvaWQgdXBkYXRlQWxsUHJlZGljdGlvbnNBbmRPcHRpbWl6ZUFmdGVyV2FybVVw
KENvZGVCbG9jayogY29kZUJsb2NrKQogICAgIGNvZGVCbG9jay0+b3B0aW1pemVBZnRlcldhcm1V
cCgpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT3B0aW1pemUsIFNs
b3dQYXRoUmV0dXJuVHlwZSwgKFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90IGJ5dGVjb2RlSW5kZXhC
aXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgU2xvd1Bh
dGhSZXR1cm5UeXBlLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxVSW50MzIgYnl0ZWNvZGVJbmRleEJp
dHMpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXplLCBTbG93UGF0aFJldHVyblR5cGUs
IChWTSogdm1Qb2ludGVyLAogICAgIHJldHVybiBlbmNvZGVSZXN1bHQobnVsbHB0ciwgbnVsbHB0
cik7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0
Q2F0Y2gsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYnl0ZWNvZGVJbmRleEJpdHMp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaCwg
Y2hhciosIChWTSogdm1Qb2ludGVyLCBDQ2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpCiB7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMDgyLDcgKzIwODIsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoLCBjaGFyKiwgKFZNKiB2bVBv
aW50ZXIsIHVpbgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoQW5kVmFsdWVQcm9maWxlLCBjaGFyKiwg
KFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90IGJ5dGVjb2RlSW5kZXhCaXRzKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUs
IGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxVSW50MzIgYnl0ZWNvZGVJbmRleEJpdHMpKQog
ewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjEzNSw3ICsyMTM1LDcgQEAgc3RhdGljIHZvaWQg
cHV0QWNjZXNzb3JCeVZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
YmFzZSwgSlNWYWwKICAgICAgICAgYmFzZS0+cHV0U2V0dGVyKGdsb2JhbE9iamVjdCwgcHJvcGVy
dHlLZXksIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IG9w
dGlvbnMsIEpTQ2VsbCogZ2V0dGVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRHZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIENDYWxsSW50MzIgb3B0aW9ucywg
SlNDZWxsKiBnZXR0ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTQ4
LDcgKzIxNDgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVy
QnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIGJhc2VPYmotPnB1dEdl
dHRlcihnbG9iYWxPYmplY3QsIHVpZCwgZ2V0dGVyLCBvcHRpb25zKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVp
ZCwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBDQ2FsbElu
dDMyIG9wdGlvbnMsIEpTQ2VsbCogc2V0dGVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMjE2MSw3ICsyMTYxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dFNldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBi
YXNlT2JqLT5wdXRTZXR0ZXIoZ2xvYmFsT2JqZWN0LCB1aWQsIHNldHRlciwgb3B0aW9ucyk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVy
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0
dGVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE3MCw3ICsyMTcwLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBwdXRBY2Nlc3NvckJ5VmFsKGdsb2JhbE9i
amVjdCwgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwg
YXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIpLCBBY2Nlc3NvclR5cGU6OkdldHRlcik7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogc2V0dGVyKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFN1YnNjcmlwdCwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGUsIEpTQ2VsbCogc2V0dGVy
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE4MCw3ICsyMTgwLDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIH0KIAogI2lmIFVTRShKU1ZBTFVFNjQpCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBs
KiB1aWQsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVyVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIEND
YWxsSW50MzIgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVyVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTIxOTcsNyArMjE5Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiB9
CiAKICNlbHNlCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0
dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3Qs
IFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdldHRl
ckNlbGwsIEpTQ2VsbCogc2V0dGVyQ2VsbCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIENDYWxsSW50MzIgYXR0
cmlidXRlLCBKU0NlbGwqIGdldHRlckNlbGwsIEpTQ2VsbCogc2V0dGVyQ2VsbCkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIyMTQsNyArMjIxNCw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsCiB9CiAjZW5kaWYKIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkluc3RhbmNlT2ZDdXN0b20sIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhhc0luc3RhbmNl
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjQ3Miw3ICsyNDcyLDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldFBy
aXZhdGVOYW1lKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBiYXNlVmFsdWUsIGZpZWxkTmFtZVZh
bHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRl
TmFtZUJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRy
X3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1
cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIApAQCAtMjQ5Myw3ICsy
NDkzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1l
QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQ
cml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVl
IGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShm
YWxzZSk7CiAKQEAgLTI1MjQsNyArMjUyNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZ2V0UHJpdmF0ZU5h
bWUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgZmllbGROYW1lKSkpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkR2Vu
ZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkR2VuZXJpYywg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAg
U3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC0yNTU4LDcg
KzI1NTgsNyBAQCBzdGF0aWMgYm9vbCBkZWxldGVCeUlkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFZNJiB2bSwgRGVsZXRlUHJvcGVydHlTbG90JgogICAgIHJldHVybiBjb3VsZERlbGV0
ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRPcHRp
bWl6ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJh
d0NhY2hlYWJsZUlkZW50aWZpZXIsIEVDTUFNb2RlIGVjbWFNb2RlKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkT3B0aW1pemUsIENDYWxsU2l6ZTo6SW50ZWdl
clR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllciwgRUNNQU1vZGUgZWNtYU1vZGUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yNTg2LDcgKzI1ODYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGVsZXRlQnlJZE9wdGltaXplLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
ZwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25EZWxldGVCeUlkR2VuZXJpYywgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWlu
dHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIsIEVDTUFNb2RlIGVjbWFNb2RlKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkR2VuZXJpYywgQ0NhbGxTaXpl
OjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNo
ZWFibGVJZGVudGlmaWVyLCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI2MjEsNyArMjYyMSw3IEBAIHN0YXRpYyBib29sIGRlbGV0ZUJ5VmFs
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgRGVsZXRlUHJvcGVydHlTbG90
CiAgICAgcmV0dXJuIGNvdWxkRGVsZXRlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRGVsZXRlQnlWYWxPcHRpbWl6ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRUNNQU1vZGUgZWNt
YU1vZGUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0
aW1pemUsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFQ01BTW9kZSBlY21hTW9kZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2NTEsNyArMjY1MSw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbE9wdGltaXplLCBzaXpl
X3QsIChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxHZW5lcmljLCBzaXplX3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFQ01BTW9k
ZSBlY21hTW9kZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlW
YWxHZW5lcmljLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRUNNQU1vZGUgZWNtYU1vZGUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzE3LDcgKzI3MTcsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZk9wdGltaXplLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJl
c3VsdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1l
Rm9yRm9yd2FyZEFyZ3VtZW50cywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQzMl90KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJn
dW1lbnRzLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyIG51bVVzZWRTdGFja1Nsb3RzLCBDQ2Fs
bEludDMyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjcyNSw3ICsyNzI1
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvckZvcndh
cmRBcmd1bWVudHMsIGludDMyX3QsIChKU0dsb2IKICAgICByZXR1cm4gc2l6ZUZyYW1lRm9yRm9y
d2FyZEFyZ3VtZW50cyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgdm0sIG51bVVzZWRTdGFja1Ns
b3RzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZv
clZhcmFyZ3MsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQz
Ml90IGZpcnN0VmFyQXJnT2Zmc2V0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25TaXplRnJhbWVGb3JWYXJhcmdzLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIEND
YWxsSW50MzIgbnVtVXNlZFN0YWNrU2xvdHMsIENDYWxsSW50MzIgZmlyc3RWYXJBcmdPZmZzZXQp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzM0LDcgKzI3MzQsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgaW50
MzJfdCwgKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBzaXplRnJhbWVGb3JWYXJhcmdzKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCB2bSwgYXJndW1lbnRzLCBudW1Vc2VkU3RhY2tTbG90cywg
Zmlyc3RWYXJBcmdPZmZzZXQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUs
IGludDMyX3QsIGludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TZXR1cEZvcndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1
ZSwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiBsZW5ndGgpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yNzQzLDcgKzI3NDMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsbwog
ICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQXJndW1lbnRzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBpbnQzMl90IGxlbmd0aCkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUsIENh
bGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5ld0Nh
bGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgQ0NhbGxJbnQzMiBmaXJz
dFZhckFyZ09mZnNldCwgQ0NhbGxJbnQzMiBsZW5ndGgpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CkBAIC0yNzUzLDcgKzI3NTMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdAog
ICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIHNpemVfdCB0YWJs
ZUluZGV4LCBpbnQzMl90IG1pbikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U3dpdGNoQ2hhcldpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5LCBDQ2FsbFNpemUgdGFibGVJbmRl
eCwgQ0NhbGxJbnQzMiBtaW4pKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
NzgwLDcgKzI3ODAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNo
Q2hhcldpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbAogICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKFZNKiB2bVBv
aW50ZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIHNpemVfdCB0YWJsZUluZGV4LCBpbnQz
Ml90IG1pbikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0
aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRLZXksIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBDQ2FsbEludDMyIG1pbikpCiB7CiAgICAg
Vk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yODAxLDcgKzI4MDEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKFZNKiB2
bVBvaQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nV2l0aFVua25vd25L
ZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRLZXksIHNpemVfdCB0YWJsZUluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgQ0Nh
bGxTaXplIHRhYmxlSW5kZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0z
MDAxLDcgKzMwMDEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxv
Y2F0ZUJ1dHRlcmZseVRvSGF2ZVByb3BlcnR5U3RvcmFnZVdpdGhJbgogICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZSwgY2hh
ciosIChWTSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jv
d1Byb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0
LCBDQ2FsbFNpemUgbmV3U2l6ZSkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IGQ1ZTlmNWM3MDVhNTg5MzkwNzEx
YmFmNzM3MGIwMDRiMjYxZmRiODQuLmUzYmFiMjkwYWYyY2Y0ODI4ZWQ4MmUyNWZkMjY3Y2NhNjYw
YjYwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoSklUKQogCisjaW5jbHVkZSAiQ0NhbGxUeXBlcy5o
IgogI2luY2x1ZGUgIkpJVE1hdGhJQ0ZvcndhcmRzLmgiCiAjaW5jbHVkZSAiSklUT3BlcmF0aW9u
VmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIlByaXZhdGVGaWVsZFB1dEtpbmQuaCIKQEAgLTEyNCwy
OSArMTI1LDI3IEBAIHVzaW5nIEpfSklUT3BlcmF0aW9uX0dQUCA9IEVuY29kZWRKU1ZhbHVlKEpJ
VF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iCiB1c2luZyBKX0pJVE9wZXJhdGlv
bl9HUFBQID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xv
YmFsT2JqZWN0Kiwgdm9pZCosIHZvaWQqLCB2b2lkKik7CiB1c2luZyBKX0pJVE9wZXJhdGlvbl9H
SkogPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdXNpbmcgSl9KSVRPcGVy
YXRpb25fR0pKTWljID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICop
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB2b2lkKik7
Ci11c2luZyBaX0pJVE9wZXJhdGlvbl9HSlpaID0gaW50MzJfdChKSVRfT1BFUkFUSU9OX0FUVFJJ
QlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJf
dCk7Ci11c2luZyBGX0pJVE9wZXJhdGlvbl9HRkpaWiA9IENhbGxGcmFtZSooSklUX09QRVJBVElP
Tl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFs
dWUsIGludDMyX3QsIGludDMyX3QpOwogdXNpbmcgU3BydF9KSVRPcGVyYXRpb25fRUdDbGkgPSBT
bG93UGF0aFJldHVyblR5cGUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKENhbGxGcmFtZSos
IEpTR2xvYmFsT2JqZWN0KiwgQ2FsbExpbmtJbmZvKik7CiB1c2luZyBWX0pJVE9wZXJhdGlvbl9D
YiA9IHZvaWQoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKENvZGVCbG9jayopOwotdXNpbmcg
Wl9KSVRPcGVyYXRpb25fRyA9IGludDMyX3QgKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShK
U0dsb2JhbE9iamVjdCopOwotdXNpbmcgUF9KSVRPcGVyYXRpb25fVm1TdFpCID0gY2hhciooSklU
X09QRVJBVElPTl9BVFRSSUJVVEVTICopKFZNKiwgU3RydWN0dXJlKiwgaW50MzJfdCwgQnV0dGVy
Zmx5Kik7Ci11c2luZyBQX0pJVE9wZXJhdGlvbl9HU3RaQiA9IGNoYXIqKEpJVF9PUEVSQVRJT05f
QVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRl
cmZseSopOwordXNpbmcgWl9KSVRPcGVyYXRpb25fRyA9IENDYWxsSW50MzI6OkludGVnZXJUeXBl
KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCopOwordXNpbmcgUF9K
SVRPcGVyYXRpb25fVm1TdFpCID0gY2hhciooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKFZN
KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5Kik7Cit1c2luZyBQX0pJVE9wZXJh
dGlvbl9HU3RaQiA9IGNoYXIqKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50MzIsIEJ1dHRlcmZseSopOwogdXNpbmcgSl9KSVRP
cGVyYXRpb25fR0ogPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKiko
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSk7CiB1c2luZyBKX0pJVE9wZXJhdGlvbl9H
SkkgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKIHVzaW5nIEpfSklU
T3BlcmF0aW9uX0dKSVAgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMg
KikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB2
b2lkKik7Ci11c2luZyBWX0pJVE9wZXJhdGlvbl9HU3NpSkpDID0gdm9pZChKSVRfT1BFUkFUSU9O
X0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KTsKLXVzaW5nIENfSklUT3BlcmF0
aW9uX1RUID0gdWludHB0cl90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShTdHJpbmdJbXBs
KiwgU3RyaW5nSW1wbCopOwotdXNpbmcgQ19KSVRPcGVyYXRpb25fQl9HSnNzSnNzID0gdWludHB0
cl90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5n
KiwgSlNTdHJpbmcqKTsKLXVzaW5nIFNfSklUT3BlcmF0aW9uX0dDID0gc2l6ZV90KEpJVF9PUEVS
QVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopOwotdXNpbmcgU19K
SVRPcGVyYXRpb25fR0NaID0gc2l6ZV90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0ds
b2JhbE9iamVjdCosIEpTQ2VsbCosIGludDMyX3QpOwotdXNpbmcgU19KSVRPcGVyYXRpb25fR0pK
ID0gc2l6ZV90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Cit1c2luZyBWX0pJVE9wZXJhdGlvbl9HU3Np
SkpDID0gdm9pZChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxV
SW50cHRyKTsKK3VzaW5nIENfSklUT3BlcmF0aW9uX1RUID0gQ0NhbGxVSW50cHRyOjpJbnRlZ2Vy
VHlwZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwq
KTsKK3VzaW5nIENfSklUT3BlcmF0aW9uX0JfR0pzc0pzcyA9IENDYWxsVUludHB0cjo6SW50ZWdl
clR5cGUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqLCBKU1N0cmluZyopOwordXNpbmcgU19KSVRPcGVyYXRpb25fR0MgPSBDQ2FsbFNpemU6Oklu
dGVnZXJUeXBlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCopOwordXNpbmcgU19KSVRPcGVyYXRpb25fR0NaID0gQ0NhbGxTaXplOjpJbnRlZ2VyVHlw
ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBD
Q2FsbEludDMyKTsKK3VzaW5nIFNfSklUT3BlcmF0aW9uX0dKSiA9IENDYWxsU2l6ZTo6SW50ZWdl
clR5cGUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHVzaW5nIFZfSklUT3BlcmF0aW9uX0dKSkogPSB2
b2lkKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdXNpbmcgSl9KSVRPcGVy
YXRpb25fR1NzaUpKID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICop
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpOwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR1NzaUpKSSA9IEVuY29kZWRKU1Zh
bHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5n
SW1wbCopOwogdXNpbmcgVl9KSVRPcGVyYXRpb25fR0NDSiA9IHZvaWQoSklUX09QRVJBVElPTl9B
VFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiwgRW5jb2RlZEpT
VmFsdWUpOwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR1NzaUpJID0gRW5jb2RlZEpTVmFsdWUoSklU
X09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1Yklu
Zm8qLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKLXVzaW5nIFpfSklUT3Bl
cmF0aW9uX0dKWlogPSBpbnQzMl90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKLXVzaW5nIEZfSklU
T3BlcmF0aW9uX0dGSlpaID0gQ2FsbEZyYW1lKihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKiko
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50
MzJfdCk7Cit1c2luZyBaX0pJVE9wZXJhdGlvbl9HSlpaID0gQ0NhbGxJbnQzMjo6SW50ZWdlclR5
cGUoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIENDYWxsSW50MzIsIENDYWxsSW50MzIpOwordXNpbmcgRl9KSVRPcGVyYXRpb25fR0ZK
WlogPSBDYWxsRnJhbWUqKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyLCBDQ2FsbEludDMyKTsK
IAogLy8gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBsb29rdXAgYW4gZXhjZXB0aW9uIGhhbmRlciwg
a2V5ZWQgYnkgZmF1bHRMb2NhdGlvbiwgd2hpY2ggaXMKIC8vIHRoZSByZXR1cm4gbG9jYXRpb24g
ZnJvbSBvbmUgb2YgdGhlIGNhbGxzIG91dCB0byBvbmUgb2YgdGhlIGhlbHBlciBvcGVyYXRpb25z
IGFib3ZlLgpAQCAtMTYxLDI0ICsxNjAsMjQgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRXcmFwcGVkVmFsdWVGb3JUYXJnZXQsIEVuY29kZWRKU1ZhbHVlLCAoSlMKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dSZW1vdGVGdW5jdGlvbkV4Y2Vw
dGlvbiwgRW5jb2RlZEpTVmFsdWUsIChKU1JlbW90ZUZ1bmN0aW9uKikpOwogCiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yLCB2b2lkLCAo
Q29kZUJsb2NrKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsQXJp
dHlDaGVjaywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KikpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrLCBpbnQzMl90LCAoSlNHbG9iYWxP
YmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxBcml0eUNo
ZWNrLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrLCBDQ2FsbElu
dDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KikpOwogCi1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZEdlbmVyaWMsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6
ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50
cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhU
aGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8q
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNHZW5lcmljLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJ
ZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blRyeUdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25UcnlHZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZCwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUs
IENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRC
eUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpcywgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09wdGlt
aXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8q
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0LCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwg
Q0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5
SWREaXJlY3RHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRCeUlkRGlyZWN0T3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsK
IAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5SWRHZW5lcmljLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVk
SlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJ
bnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkT3B0aW1p
emUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSW5CeVZhbEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEFycmF5UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5
VmFsT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEFycmF5UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQcml2YXRlTmFtZUdlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwpAQCAtMTg2LDE4ICsxODUsMTggQEAg
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQcml2YXRlTmFtZU9wdGltaXpl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2wKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSGFzUHJpdmF0ZUJyYW5kR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVCcmFuZE9wdGlt
aXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8q
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1pemUs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRl
RmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRE
ZWZpbmVQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdE9wdGltaXpl
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0cikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0cikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0cikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUlu
dHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0
T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0Nh
bGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRO
b25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1Yklu
Zm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRy
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2
YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdE9wdGltaXplLCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0cikp
OwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFByaXZhdGVCcmFuZE9w
dGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DaGVja1ByaXZhdGVCcmFuZE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwpA
QCAtMjIyLDE5ICsyMjEsMTkgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25M
aW5rQ2FsbCwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoQ2FsbEZyYW1lKiwgSlMKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTGlua1BvbHltb3JwaGljQ2FsbCwgU2xvd1BhdGhSZXR1
cm5UeXBlLCAoQ2FsbEZyYW1lKiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsTGlua0luZm8qKSk7CiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblZpcnR1YWxDYWxsLCBTbG93UGF0aFJl
dHVyblR5cGUsIChDYWxsRnJhbWUqLCBKU0dsb2JhbE9iamVjdCosIENhbGxMaW5rSW5mbyopKTsK
IAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzcywgc2l6ZV90
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3NFcSwgc2l6ZV90LCAo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyRXEsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzcywgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVMZXNzRXEsIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRl
ciwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVHcmVhdGVyRXEsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlRXEsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEsIENDYWxsU2l6ZTo6SW50
ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSkpOwogI2lmIFVTRShKU1ZBTFVFNjQpCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVTdHJpbmdFcSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgc2l6ZV90LCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqIGhlYXBCaWdJbnQsIGludDMyX3Qgc21hbGxJbnQpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUVxSGVhcEJpZ0ludFRvSW50MzIsIENDYWxs
U2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogaGVhcEJpZ0ludCwg
Q0NhbGxJbnQzMiBzbWFsbEludCkpOwogI2Vsc2UKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29tcGFyZVN0cmluZ0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2Vs
bCogbGVmdCwgSlNDZWxsKiByaWdodCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlU3RyaW5nRXEsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkpOwogI2VuZGlmCi1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFByb2ZpbGUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiwgY29uc3QgSlNW
YWx1ZSogdmFsdWVzLCBpbnQzMl90IHNpemUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMsIEND
YWxsSW50MzIgc2l6ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdB
cnJheVdpdGhTaXplQW5kUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBFbmNvZGVkSlNWYWx1ZSBzaXplKSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Z1bmN0aW9uLCBFbmNvZGVkSlNWYWx1ZSwg
KFZNKiwgSlNTY29wZSosIEpTQ2VsbCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTmV3RnVuY3Rpb25XaXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50LCBF
bmNvZGVkSlNWYWx1ZSwgKFZNKiwgSlNTY29wZSosIEpTQ2VsbCopKTsKQEAgLTI1Myw1MyArMjUy
LDUzIEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXN5bmNHZW5lcmF0
b3IsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSopCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld1JlZ2V4cCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYW5kbGVUcmFwcywgVW51c2Vk
UHRyLCAoSlNHbG9iYWxPYmplY3QqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblRocm93LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWJ1Zywgdm9pZCwgKFZNKiwgaW50MzJf
dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWJ1Zywgdm9pZCwgKFZN
KiwgQ0NhbGxJbnQzMikpOwogI2lmIEVOQUJMRShERkdfSklUKQotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoVk0qLCB1aW50
MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0
Q2F0Y2gsIGNoYXIqLCAoVk0qLCB1aW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUsIGNoYXIqLCAoVk0q
LCB1aW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6
ZSwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoVk0qLCBDQ2FsbFVJbnQzMikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2gsIGNoYXIqLCAoVk0qLCBD
Q2FsbFVJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JF
bnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUsIGNoYXIqLCAoVk0qLCBDQ2FsbFVJbnQzMikpOwog
I2VuZGlmCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5SWQs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50
MzJfdCBvcHRpb25zLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dFNldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1
ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCop
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90IGF0
dHJpYnV0ZSwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRHZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBVbmlxdWVkU3Ry
aW5nSW1wbCosIENDYWxsSW50MzIgb3B0aW9ucywgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIENDYWxsSW50MzIgb3B0aW9ucywgSlNDZWxs
KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50
MzIgYXR0cmlidXRlLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNv
ZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGUsIEpTQ2VsbCopKTsKICNpZiBVU0UoSlNW
QUxVRTY0KQotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0
ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwg
aW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgQ0NhbGxJbnQzMiBh
dHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwogI2Vsc2UKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QgYXR0cmli
dXRlLCBKU0NlbGwqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5p
cXVlZFN0cmluZ0ltcGwqLCBDQ2FsbEludDMyIGF0dHJpYnV0ZSwgSlNDZWxsKiwgSlNDZWxsKikp
OwogI2VuZGlmCiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxP
cHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgQXJyYXlQcm9maWxlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0QnlWYWxHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlU3R1YkluZm8qLCBBcnJheVByb2ZpbGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
UHJvcGVydHkpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJ
ZE9wdGltaXplLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90LCBFQ01BTW9kZSkpOwotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkR2VuZXJpYywgc2l6ZV90LCAoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRw
dHJfdCwgRUNNQU1vZGUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVs
ZXRlQnlWYWxPcHRpbWl6ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRhcmdldCwgRUNNQU1v
ZGUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxHZW5l
cmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGFyZ2V0LCBFQ01BTW9kZSkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkT3B0aW1pemUsIENDYWxsU2l6
ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5j
b2RlZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyLCBFQ01BTW9kZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkR2VuZXJpYywgQ0NhbGxTaXplOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIsIEVDTUFNb2RlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUsIENDYWxsU2l6ZTo6SW50ZWdlclR5
cGUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUg
YmFzZSwgRW5jb2RlZEpTVmFsdWUgdGFyZ2V0LCBFQ01BTW9kZSkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbEdlbmVyaWMsIENDYWxsU2l6ZTo6SW50ZWdl
clR5cGUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGFyZ2V0LCBFQ01BTW9kZSkpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXNoV2l0aFNjb3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEVuY29kZWRKU1ZhbHVlIG9iamVjdCkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXNoV2l0aFNjb3BlT2JqZWN0
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjdXJyZW50
U2NvcGVDZWxsLCBKU09iamVjdCogb2JqZWN0KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkluc3RhbmNlT2ZHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgRW5jb2RlZEpT
VmFsdWUgcHJvdG8pKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFu
Y2VPZk9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvdG8pKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFy
Z3VtZW50cywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1l
bnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFy
Z3MsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywg
aW50MzJfdCBudW1Vc2VkU3RhY2tTbG90cywgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cEZvcndhcmRBcmd1bWVudHNG
cmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpT
VmFsdWUsIGludDMyX3QsIGludDMyX3QgbGVuZ3RoKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblNldHVwVmFyYXJnc0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3QgZmlyc3RW
YXJBcmdPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVudHMsIENDYWxsSW50MzI6OkludGVn
ZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIENDYWxs
SW50MzIgbnVtVXNlZFN0YWNrU2xvdHMsIENDYWxsSW50MzIgZmlyc3RWYXJBcmdPZmZzZXQpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywg
Q0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
IGFyZ3VtZW50cywgQ0NhbGxJbnQzMiBudW1Vc2VkU3RhY2tTbG90cywgQ0NhbGxJbnQzMiBmaXJz
dFZhckFyZ09mZnNldCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1
cEZvcndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIsIENDYWxsSW50MzIgbGVuZ3RoKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwVmFyYXJnc0ZyYW1lLCBD
YWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSBh
cmd1bWVudHMsIENDYWxsSW50MzIgZmlyc3RWYXJBcmdPZmZzZXQsIENDYWxsSW50MzIgbGVuZ3Ro
KSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkRmllbGROYW1l
KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lT3B0
aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkRmll
bGROYW1lKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVO
YW1lQnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVp
bnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRl
TmFtZUJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIHVpbnRwdHJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRQcml2YXRlTmFtZUJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkT3B0aW1pemUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKIAotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25vd25LZXlUeXBlLCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUga2V5LCBzaXplX3QgdGFibGVJ
bmRleCwgaW50MzJfdCBtaW4pKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKFZNKiwgRW5jb2RlZEpTVmFsdWUg
a2V5LCBzaXplX3QgdGFibGVJbmRleCwgaW50MzJfdCBtaW4pKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUga2V5LCBzaXplX3QgdGFibGVJbmRleCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25v
d25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUga2V5LCBD
Q2FsbFNpemUgdGFibGVJbmRleCwgQ0NhbGxJbnQzMiBtaW4pKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKFZN
KiwgRW5jb2RlZEpTVmFsdWUga2V5LCBDQ2FsbFNpemUgdGFibGVJbmRleCwgQ0NhbGxJbnQzMiBt
aW4pKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nV2l0
aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUg
a2V5LCBDQ2FsbFNpemUgdGFibGVJbmRleCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25SZXNvbHZlU2NvcGVGb3JCYXNlbGluZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIGNvbnN0IEluc3RydWN0aW9uKiBieXRlY29kZVBDKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEZyb21TY29wZSwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIGNvbnN0IEluc3RydWN0aW9uKiBieXRlY29kZVBDKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFRvU2NvcGUsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIGNvbnN0IEluc3RydWN0aW9uKiBieXRlY29kZVBDKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvSGF2ZVByb3BlcnR5U3RvcmFn
ZVdpdGhJbml0aWFsQ2FwYWNpdHksIGNoYXIqLCAoVk0qLCBKU09iamVjdCopKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jvd1Byb3Bl
cnR5U3RvcmFnZSwgY2hhciosIChWTSosIEpTT2JqZWN0Kiwgc2l6ZV90IG5ld1NpemUpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jv
d1Byb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSosIEpTT2JqZWN0KiwgQ0NhbGxTaXplIG5ld1Np
emUpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Xcml0ZUJhcnJpZXJT
bG93UGF0aCwgdm9pZCwgKFZNKiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25PU1JXcml0ZUJhcnJpZXIsIHZvaWQsIChWTSosIEpTQ2VsbCopKTsKQEAgLTMw
OCw3ICszMDcsNyBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkV4Y2VwdGlv
bkZ1enosIHZvaWQsIChKU0dsb2JhbE9iamVjdCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRXhjZXB0aW9uRnV6eldpdGhDYWxsRnJhbWUsIHZvaWQsIChWTSopKTsKIAog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXRyaWV2ZUFuZENsZWFyRXhjZXB0
aW9uSWZDYXRjaGFibGUsIEpTQ2VsbCosIChWTSopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEhhc0luc3RhbmNlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0
cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpKTsKIAogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVmFsdWVBZGRQ
cm9maWxlZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIsIEJpbmFyeUFyaXRoUHJvZmls
ZSopKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcApp
bmRleCAxMDgwNDQ5ZGE2MzhmNjc2ZTA3ZWNhMGY1ODJlM2I5ZmM3YjVlNjkxLi40MTY4NWUzOGQ4
YWUzODc5YTQwNTE3M2UwZGY0OGI4ZTA1MjUzODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCkBAIC00MTgsNyArNDE4LDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQ
cm9iZTo6Q29udGV4dCYKICAgICByZXR1cm4gcmV0dXJuV2l0aG91dE9TUkVudHJ5KCk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdywg
dm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgZnVuY3Rpb25JbmRleCkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQs
IChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGZ1bmN0aW9uSW5kZXgpKQogewogICAg
IFdhc206OkNhbGxlZUdyb3VwJiBjYWxsZWVHcm91cCA9ICppbnN0YW5jZS0+Y2FsbGVlR3JvdXAo
KTsKICAgICBBU1NFUlQoaW5zdGFuY2UtPm1lbW9yeSgpLT5tb2RlKCkgPT0gY2FsbGVlR3JvdXAu
bW9kZSgpKTsKQEAgLTQzMyw3ICs0MzMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuYwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZGF0YUxvZ0xuSWYoT3B0aW9uczo6dmVyYm9zZU9T
UigpLCAiQ29uc2lkZXIgT01HUGxhbiBmb3IgWyIsIGZ1bmN0aW9uSW5kZXgsICJdIHdpdGggZXhl
Y3V0ZUNvdW50ZXIgPSAiLCB0aWVyVXAsICIgIiwgUmF3UG9pbnRlcihjYWxsZWUucmVwbGFjZW1l
bnQoKSkpOworICAgIGRhdGFMb2dMbklmKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwgIkNvbnNpZGVy
IE9NR1BsYW4gZm9yIFsiLCB1aW50MzJfdChmdW5jdGlvbkluZGV4KSwgIl0gd2l0aCBleGVjdXRl
Q291bnRlciA9ICIsIHRpZXJVcCwgIiAiLCBSYXdQb2ludGVyKGNhbGxlZS5yZXBsYWNlbWVudCgp
KSk7CiAKICAgICBpZiAoc2hvdWxkVHJpZ2dlck9NR0NvbXBpbGUodGllclVwLCBjYWxsZWUucmVw
bGFjZW1lbnQoKSwgZnVuY3Rpb25JbmRleCkpCiAgICAgICAgIHRyaWdnZXJPTUdSZXBsYWNlbWVu
dENvbXBpbGUodGllclVwLCBjYWxsZWUucmVwbGFjZW1lbnQoKSwgaW5zdGFuY2UsIGNhbGxlZUdy
b3VwLCBmdW5jdGlvbkluZGV4KTsKQEAgLTQ0Miw3ICs0NDIsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSog
aW5zdGFuYwogICAgIGlmIChjYWxsZWUucmVwbGFjZW1lbnQoKSkgewogICAgICAgICAvLyBObyBP
U1IgZW50cnkgcG9pbnRzLiBKdXN0IGRlZmVyIGluZGVmaW5pdGVseS4KICAgICAgICAgaWYgKHRp
ZXJVcC5vc3JFbnRyeVRyaWdnZXJzKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBkYXRhTG9n
TG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJkZWxheU9NR0NvbXBpbGUgcmVwbGFjZW1lbnQg
aW4gcGxhY2UsIGRlbGF5aW5nIGluZGVmaW5pdGVseSBmb3IgIiwgZnVuY3Rpb25JbmRleCk7Cisg
ICAgICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJkZWxheU9NR0Nv
bXBpbGUgcmVwbGFjZW1lbnQgaW4gcGxhY2UsIGRlbGF5aW5nIGluZGVmaW5pdGVseSBmb3IgIiwg
dWludDMyX3QoZnVuY3Rpb25JbmRleCkpOwogICAgICAgICAgICAgdGllclVwLmRvbnRPcHRpbWl6
ZUFueXRpbWVTb29uKGZ1bmN0aW9uSW5kZXgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CkBAIC00NTAsNyArNDUwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21UcmlnZ2VyVGllclVwTm93LCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmMKICAgICAgICAg
Ly8gRm91bmQgb25lIE9TUiBlbnRyeSBwb2ludC4gU2luY2Ugd2UgZG8gbm90IGhhdmUgYSB3YXkg
dG8gamV0dGlzb24gV2FzbTo6Q2FsbGVlIHJpZ2h0IG5vdywgdGhpcyBtZWFucyB0aGF0IHRpZXJV
cCBmdW5jdGlvbiBpcyBub3cgbWVhbmluZ2xlc3MuCiAgICAgICAgIC8vIE5vdCBjYWxsIGl0IGFz
IG11Y2ggYXMgcG9zc2libGUuCiAgICAgICAgIGlmIChjYWxsZWUub3NyRW50cnlDYWxsZWUoKSkg
ewotICAgICAgICAgICAgZGF0YUxvZ0xuSWYoT3B0aW9uczo6dmVyYm9zZU9TUigpLCAiZGVsYXlP
TUdDb21waWxlIHRyaWdnZXIgaW4gcGxhY2UsIGRlbGF5aW5nIGluZGVmaW5pdGVseSBmb3IgIiwg
ZnVuY3Rpb25JbmRleCk7CisgICAgICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3Nl
T1NSKCksICJkZWxheU9NR0NvbXBpbGUgdHJpZ2dlciBpbiBwbGFjZSwgZGVsYXlpbmcgaW5kZWZp
bml0ZWx5IGZvciAiLCB1aW50MzJfdChmdW5jdGlvbkluZGV4KSk7CiAgICAgICAgICAgICB0aWVy
VXAuZG9udE9wdGltaXplQW55dGltZVNvb24oZnVuY3Rpb25JbmRleCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTQ2OCw3ICs0NjgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVVud2luZCwgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
ICAgICBBU1NFUlQoISF2bS5jYWxsRnJhbWVGb3JDYXRjaCk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JNjQsIGludDY0X3QsIChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b252ZXJ0VG9JNjQsIENDYWxsSW50NjQ6OkludGVnZXJUeXBlLCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIHBhc3NpbmcgSlNXZWJB
c3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKQEAgLTQ4Niw3ICs0ODYsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSgogICAgIHJldHVybiB2LnRvTnVtYmVyKGNhbGxGcmFtZS0+bGV4aWNhbEdsb2Jh
bE9iamVjdCh2bSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29u
dmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTMyLCBDQ2FsbEludDMy
OjpJbnRlZ2VyVHlwZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIHYpKQogewogICAg
IC8vIEZJWE1FOiBDb25zaWRlciBwYXNzaW5nIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGVh
ZC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjA2
CkBAIC01MDQsNyArNTA0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNv
bnZlcnRUb0YzMiwgZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlMKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KHZtKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dFRvQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5j
ZSogaW5zdGFuY2UsIGludDY0X3QgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbEludDY0IHZhbHVlKSkKIHsKICAgICBKU1dl
YkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3Nl
bWJseUluc3RhbmNlPigpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0lu
c3RhbmNlLT5nbG9iYWxPYmplY3QoKTsKQEAgLTU4OCw3ICs1ODgsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSQogLy8gRklYTUU6IEl0IHdvdWxkIGJlIG11Y2ggZWFzaWVyIHRvIGlubGluZSB0
aGlzIHdoZW4gd2UgaGF2ZSBhIGdsb2JhbCBHQywgd2hpY2ggY291bGQgcHJvYmFibHkgbWVhbiB3
ZSBjb3VsZCBhdm9pZAogLy8gc3BpbGxpbmcgdGhlIHJlc3VsdHMgb250byB0aGUgc3RhY2suCiAv
LyBTYXZlZCByZXN1bHQgcmVnaXN0ZXJzIHNob3VsZCBiZSBwbGFjZWQgb24gdGhlIHN0YWNrIGp1
c3QgYWJvdmUgdGhlIGxhc3Qgc3RhY2sgcmVzdWx0LgotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBXYXNtOjpJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFNpZ25hdHVyZSogc2lnbmF0
dXJlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlLCBKU1ZhbHVlKiBzdGFja1BvaW50ZXJGcm9t
Q2FsbGVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3Vs
dHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgV2FzbTo6SW5zdGFuY2Uq
IGluc3RhbmNlLCBjb25zdCBTaWduYXR1cmUqIHNpZ25hdHVyZSwgQ0NhbGxJbnRlZ2VyPEluZGV4
aW5nVHlwZT4gaW5kZXhpbmdUeXBlLCBKU1ZhbHVlKiBzdGFja1BvaW50ZXJGcm9tQ2FsbGVlKSkK
IHsKICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5jZS0+b3du
ZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwogICAgIFZNJiB2bSA9IGpzSW5zdGFuY2UtPnZt
KCk7CkBAIC02MjcsMTcgKzYyNywxNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoSlNDZWxsKiBjZWxsLAogICAgIHZt
LndyaXRlQmFycmllclNsb3dQYXRoKGNlbGwpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUG9wY291bnQzMiwgdWludDMyX3QsIChpbnQzMl90IHZhbHVlKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDMyLCBDQ2FsbFVJbnQzMjo6SW50
ZWdlclR5cGUsIChDQ2FsbEludDMyIHZhbHVlKSkKIHsKICAgICByZXR1cm4gX19idWlsdGluX3Bv
cGNvdW50KHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBv
cGNvdW50NjQsIHVpbnQ2NF90LCAoaW50NjRfdCB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUG9wY291bnQ2NCwgQ0NhbGxVSW50NjQ6OkludGVnZXJUeXBlLCAoQ0Nh
bGxJbnQ2NCB2YWx1ZSkpCiB7CiAgICAgcmV0dXJuIF9fYnVpbHRpbl9wb3Bjb3VudGxsKHZhbHVl
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdyb3dNZW1vcnksIGlu
dDMyX3QsICh2b2lkKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgaW50MzJfdCBkZWx0
YSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR3Jvd01lbW9yeSwgQ0NhbGxJ
bnQzMjo6SW50ZWdlclR5cGUsICh2b2lkKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwg
Q0NhbGxJbnQzMiBkZWx0YSkpCiB7CiAgICAgaW5zdGFuY2UtPnN0b3JlVG9wQ2FsbEZyYW1lKGNh
bGxGcmFtZSk7CiAKQEAgLTY1OSwxNyArNjU5LDE3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Hcm93TWVtb3J5LCBpbnQzMl90LCAodm9pZCogY2FsbEZyYW1lLCBJbnN0YW5j
CiAgICAgcmV0dXJuIGdyb3duLnZhbHVlKCkucGFnZUNvdW50KCk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwgc2l6ZV90LCAoSW5zdGFuY2Uq
IGluc3RhbmNlLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCB0YXJnZXRWYWx1ZSwgdWlu
dDMyX3QgY291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1v
cnlGaWxsLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2Fs
bFVJbnQzMiBkc3RBZGRyZXNzLCBDQ2FsbFVJbnQzMiB0YXJnZXRWYWx1ZSwgQ0NhbGxVSW50MzIg
Y291bnQpKQogewogICAgIHJldHVybiBpbnN0YW5jZS0+bWVtb3J5KCktPmZpbGwoZHN0QWRkcmVz
cywgc3RhdGljX2Nhc3Q8dWludDhfdD4odGFyZ2V0VmFsdWUpLCBjb3VudCk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5Q29weSwgc2l6ZV90LCAoSW5z
dGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRyZXNz
LCB1aW50MzJfdCBjb3VudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bU1lbW9yeUNvcHksIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2Us
IENDYWxsVUludDMyIGRzdEFkZHJlc3MsIENDYWxsVUludDMyIHNyY0FkZHJlc3MsIENDYWxsVUlu
dDMyIGNvdW50KSkKIHsKICAgICByZXR1cm4gaW5zdGFuY2UtPm1lbW9yeSgpLT5jb3B5KGRzdEFk
ZHJlc3MsIHNyY0FkZHJlc3MsIGNvdW50KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2Uq
IGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4LCBpbnQzMl90IHNpZ25lZEluZGV4KSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50LCBFbmNv
ZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgdGFibGVJbmRleCwg
Q0NhbGxJbnQzMiBzaWduZWRJbmRleCkpCiB7CiAgICAgQVNTRVJUKHRhYmxlSW5kZXggPCBpbnN0
YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS50YWJsZUNvdW50KCkpOwogICAgIGlm
IChzaWduZWRJbmRleCA8IDApCkBAIC03MTIsMTIgKzcxMiwxMiBAQCBzdGF0aWMgYm9vbCBzZXRX
YXNtVGFibGVFbGVtZW50KEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwg
dWludDMyXwogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNl
LCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfdCBzaWduZWRJbmRleCwgRW5jb2RlZEpTVmFs
dWUgZW5jVmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFdhc21U
YWJsZUVsZW1lbnQsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2Us
IENDYWxsVUludDMyIHRhYmxlSW5kZXgsIENDYWxsVUludDMyIHNpZ25lZEluZGV4LCBFbmNvZGVk
SlNWYWx1ZSBlbmNWYWx1ZSkpCiB7CiAgICAgcmV0dXJuIHNldFdhc21UYWJsZUVsZW1lbnQoaW5z
dGFuY2UsIHRhYmxlSW5kZXgsIHNpZ25lZEluZGV4LCBlbmNWYWx1ZSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVJbml0LCBzaXplX3QsIChJbnN0YW5j
ZSogaW5zdGFuY2UsIHVuc2lnbmVkIGVsZW1lbnRJbmRleCwgdW5zaWduZWQgdGFibGVJbmRleCwg
dWludDMyX3QgZHN0T2Zmc2V0LCB1aW50MzJfdCBzcmNPZmZzZXQsIHVpbnQzMl90IGxlbmd0aCkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlSW5pdCwgQ0NhbGxT
aXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgZWxlbWVu
dEluZGV4LCBDQ2FsbFVJbnQzMiB0YWJsZUluZGV4LCBDQ2FsbFVJbnQzMiBkc3RPZmZzZXQsIEND
YWxsVUludDMyIHNyY09mZnNldCwgQ0NhbGxVSW50MzIgbGVuZ3RoKSkKIHsKICAgICBBU1NFUlQo
ZWxlbWVudEluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkuZWxl
bWVudENvdW50KCkpOwogICAgIEFTU0VSVCh0YWJsZUluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgp
Lm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKQEAgLTc0MiwxMyArNzQyLDEzIEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVJbml0LCBzaXplX3Qs
IChJbnN0YW5jZSogaW5zdGFuY2UsIHVuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtRWxlbURyb3AsIHZvaWQsIChJbnN0YW5jZSog
aW5zdGFuY2UsIHVuc2lnbmVkIGVsZW1lbnRJbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbUVsZW1Ecm9wLCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2Fs
bFVJbnQzMiBlbGVtZW50SW5kZXgpKQogewogICAgIEFTU0VSVChlbGVtZW50SW5kZXggPCBpbnN0
YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5lbGVtZW50Q291bnQoKSk7CiAgICAg
aW5zdGFuY2UtPmVsZW1Ecm9wKGVsZW1lbnRJbmRleCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3Rh
bmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCB1aW50MzJfdCBk
ZWx0YSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlR3Jvdywg
Q0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMy
IHRhYmxlSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIENDYWxsVUludDMyIGRlbHRhKSkKIHsK
ICAgICBBU1NFUlQodGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1h
dGlvbigpLnRhYmxlQ291bnQoKSk7CiAgICAgYXV0byBvbGRTaXplID0gaW5zdGFuY2UtPnRhYmxl
KHRhYmxlSW5kZXgpLT5sZW5ndGgoKTsKQEAgLTc2Miw3ICs3NjIsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlR3JvdywgaW50MzJfdCwgKEluc3RhbmNlKiBp
bnN0YW5jZSwgdQogICAgIHJldHVybiBvbGRTaXplOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlRmlsbCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNl
LCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfdCBvZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZp
bGwsIHVpbnQzMl90IGNvdW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtVGFibGVGaWxsLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNl
LCBDQ2FsbFVJbnQzMiB0YWJsZUluZGV4LCBDQ2FsbFVJbnQzMiBvZmZzZXQsIEVuY29kZWRKU1Zh
bHVlIGZpbGwsIENDYWxsVUludDMyIGNvdW50KSkKIHsKICAgICBBU1NFUlQodGFibGVJbmRleCA8
IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAK
QEAgLTc3OCw3ICs3NzgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bVRhYmxlRmlsbCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bgogICAgIHJldHVybiB0
cnVlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlQ29w
eSwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBkc3RUYWJsZUluZGV4LCB1
bnNpZ25lZCBzcmNUYWJsZUluZGV4LCBpbnQzMl90IGRzdE9mZnNldCwgaW50MzJfdCBzcmNPZmZz
ZXQsIGludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtVGFibGVDb3B5LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNl
LCBDQ2FsbFVJbnQzMiBkc3RUYWJsZUluZGV4LCBDQ2FsbFVJbnQzMiBzcmNUYWJsZUluZGV4LCBD
Q2FsbEludDMyIGRzdE9mZnNldCwgQ0NhbGxJbnQzMiBzcmNPZmZzZXQsIENDYWxsSW50MzIgbGVu
Z3RoKSkKIHsKICAgICBBU1NFUlQoZHN0VGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5t
b2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAgICAgQVNTRVJUKHNyY1RhYmxlSW5k
ZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS50YWJsZUNvdW50KCkp
OwpAQCAtODExLDE0ICs4MTEsMTQgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21UYWJsZUNvcHksIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW4KICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZG
dW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgaW5kZXgp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVk
SlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgaW5kZXgpKQogewogICAg
IEpTVmFsdWUgdmFsdWUgPSBpbnN0YW5jZS0+Z2V0RnVuY3Rpb25XcmFwcGVyKGluZGV4KTsKICAg
ICBBU1NFUlQodmFsdWUuaXNDYWxsYWJsZShpbnN0YW5jZS0+b3duZXI8SlNPYmplY3Q+KCktPnZt
KCkpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUsIGludDMyX3QsIChJbnN0
YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUsIENDYWxsSW50MzI6OkludGVnZXJUeXBl
LCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiB0YWJsZUluZGV4KSkKIHsKICAgICBy
ZXR1cm4gaW5zdGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgpLT5sZW5ndGgoKTsKIH0KQEAgLTg0OSw3
ICs4NDksNyBAQCBzdGF0aWMgaW50MzJfdCB3YWl0KFZNJiB2bSwgVmFsdWVUeXBlKiBwb2ludGVy
LCBWYWx1ZVR5cGUgZXhwZWN0ZWRWYWx1ZSwgaW50NjRfdAogICAgIHJldHVybiAwOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDMyLCBpbnQz
Ml90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQs
IHVpbnQzMl90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXRJbk5hbm9zZWNvbmRzKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0MzIsIENDYWxsSW50MzI6
OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBiYXNlLCBDQ2Fs
bFVJbnQzMiBvZmZzZXQsIENDYWxsVUludDMyIHZhbHVlLCBDQ2FsbEludDY0IHRpbWVvdXRJbk5h
bm9zZWNvbmRzKSkKIHsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJs
eUluc3RhbmNlPigpLT52bSgpOwogICAgIHVpbnQ2NF90IG9mZnNldEluTWVtb3J5ID0gc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KGJhc2UpICsgb2Zmc2V0OwpAQCAtODY3LDcgKzg2Nyw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0MzIsIGludDMyX3Qs
IChJbnN0YW5jZSogaW5zdGFuCiAgICAgcmV0dXJuIHdhaXQ8dWludDMyX3Q+KHZtLCBwb2ludGVy
LCB2YWx1ZSwgdGltZW91dEluTmFub3NlY29uZHMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDY0LCBpbnQzMl90LCAoSW5zdGFuY2UqIGlu
c3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIHVpbnQ2NF90IHZhbHVlLCBp
bnQ2NF90IHRpbWVvdXRJbk5hbm9zZWNvbmRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25NZW1vcnlBdG9taWNXYWl0NjQsIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSW5z
dGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBiYXNlLCBDQ2FsbFVJbnQzMiBvZmZzZXQsIEND
YWxsVUludDY0IHZhbHVlLCBDQ2FsbEludDY0IHRpbWVvdXRJbk5hbm9zZWNvbmRzKSkKIHsKICAg
ICBWTSYgdm0gPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpLT52bSgp
OwogICAgIHVpbnQ2NF90IG9mZnNldEluTWVtb3J5ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJh
c2UpICsgb2Zmc2V0OwpAQCAtODg1LDcgKzg4NSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0NjQsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFu
CiAgICAgcmV0dXJuIHdhaXQ8dWludDY0X3Q+KHZtLCBwb2ludGVyLCB2YWx1ZSwgdGltZW91dElu
TmFub3NlY29uZHMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVt
b3J5QXRvbWljTm90aWZ5LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBi
YXNlLCB1bnNpZ25lZCBvZmZzZXQsIGludDMyX3QgY291bnRWYWx1ZSkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljTm90aWZ5LCBDQ2FsbEludDMyOjpJbnRl
Z2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgYmFzZSwgQ0NhbGxVSW50
MzIgb2Zmc2V0LCBDQ2FsbEludDMyIGNvdW50VmFsdWUpKQogewogICAgIHVpbnQ2NF90IG9mZnNl
dEluTWVtb3J5ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJhc2UpICsgb2Zmc2V0OwogICAgIGlm
IChvZmZzZXRJbk1lbW9yeSAmICgweDQgLSAxKSkKQEAgLTkwMywxOSArOTAzLDE5IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNOb3RpZnksIGludDMyX3Qs
IChJbnN0YW5jZSogaW5zdGFuCiAgICAgcmV0dXJuIFBhcmtpbmdMb3Q6OnVucGFya0NvdW50KHBv
aW50ZXIsIGNvdW50KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldh
c21NZW1vcnlJbml0LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGRhdGFT
ZWdtZW50SW5kZXgsIHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVp
bnQzMl90IGxlbmd0aCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1l
bW9yeUluaXQsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2UsIEND
YWxsVUludDMyIGRhdGFTZWdtZW50SW5kZXgsIENDYWxsVUludDMyIGRzdEFkZHJlc3MsIENDYWxs
VUludDMyIHNyY0FkZHJlc3MsIENDYWxsVUludDMyIGxlbmd0aCkpCiB7CiAgICAgQVNTRVJUKGRh
dGFTZWdtZW50SW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5k
YXRhU2VnbWVudHNDb3VudCgpKTsKICAgICByZXR1cm4gaW5zdGFuY2UtPm1lbW9yeUluaXQoZHN0
QWRkcmVzcywgc3JjQWRkcmVzcywgbGVuZ3RoLCBkYXRhU2VnbWVudEluZGV4KTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRhRHJvcCwgdm9pZCwgKEluc3Rh
bmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbURhdGFEcm9wLCB2b2lkLCAoSW5zdGFuY2UqIGluc3Rh
bmNlLCBDQ2FsbFVJbnQzMiBkYXRhU2VnbWVudEluZGV4KSkKIHsKICAgICBBU1NFUlQoZGF0YVNl
Z21lbnRJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLmRhdGFT
ZWdtZW50c0NvdW50KCkpOwogICAgIGluc3RhbmNlLT5kYXRhRHJvcChkYXRhU2VnbWVudEluZGV4
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9p
ZCosIChJbnN0YW5jZSogaW5zdGFuY2UsIENhbGxGcmFtZSogY2FsbEZyYW1lLCB1bnNpZ25lZCBl
eGNlcHRpb25JbmRleCwgdWludDY0X3QqIGFyZ3VtZW50cykpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVRocm93LCB2b2lkKiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIENDYWxsVUludDMyIGV4Y2VwdGlvbkluZGV4LCB1aW50NjRfdCog
YXJndW1lbnRzKSkKIHsKICAgICBpbnN0YW5jZS0+c3RvcmVUb3BDYWxsRnJhbWUoY2FsbEZyYW1l
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKaW5kZXgg
Y2Y3YzBkNWZlZjRkZmQzNWM3Y2NhMzM0NzkzZWIyNDRlY2JhZGQxNS4uMmYyMzQyODJlZDEyOTg3
NDFjYjgyYmU3MDYyMjQ1Y2Q3MjE2ZTQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5oCkBAIC01MSw0NCArNTEsNDQgQEAgdm9pZCBsb2FkVmFsdWVzSW50
b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWludDY0X3QqIGJ1ZmZl
cik7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQcm9iZTo6Q29u
dGV4dCYpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJU
aWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSosIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZv
aWQsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGZ1bmN0aW9uSW5kZXgpKTsKICNlbmRpZgogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZy
YW1lKikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2
NCwgaW50NjRfdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBDQ2FsbEludDY0OjpJbnRlZ2VyVHlwZSwgKENh
bGxGcmFtZSosIEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENhbGxGcmFt
ZSosIEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dFRvSTMyLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwg
KENhbGxGcmFtZSosIEpTVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiwgSW5zdGFu
Y2UqLCBpbnQ2NF90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZl
cnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIENDYWxs
SW50NjQpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVz
dWx0cywgdm9pZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJlKiwgSlNW
YWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiwgV2Fz
bTo6SW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBJbmRleGluZ1R5cGUsIEpTVmFsdWUqKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5
LCBKU0FycmF5KiwgKENhbGxGcmFtZSosIFdhc206Okluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJl
KiwgQ0NhbGxJbnRlZ2VyPEluZGV4aW5nVHlwZT4sIEpTVmFsdWUqKSk7CiAKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAo
SlNDZWxsKiwgVk0qKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcGNv
dW50MzIsIHVpbnQzMl90LCAoaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Qb3Bjb3VudDY0LCB1aW50NjRfdCwgKGludDY0X3QpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR3Jvd01lbW9yeSwgaW50MzJfdCwgKHZvaWQqLCBJbnN0YW5j
ZSosIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1l
bW9yeUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMy
X3QgdGFyZ2V0VmFsdWUsIHVpbnQzMl90IGNvdW50KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21NZW1vcnlDb3B5LCBzaXplX3QsIChJbnN0YW5jZSosIHVpbnQzMl90
IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50KSk7Ci0KLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlRWxlbWVudCwgRW5j
b2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIHVuc2lnbmVkLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFdhc21UYWJsZUVsZW1lbnQsIHNpemVfdCwgKElu
c3RhbmNlKiwgdW5zaWduZWQsIHVpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSBlbmNWYWx1ZSkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmVmRnVuYywgRW5jb2RlZEpT
VmFsdWUsIChJbnN0YW5jZSosIHVpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21UYWJsZUluaXQsIHNpemVfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQgZWxl
bWVudEluZGV4LCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfdCBkc3RPZmZzZXQsIHVpbnQz
Ml90IHNyY09mZnNldCwgdWludDMyX3QgbGVuZ3RoKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21FbGVtRHJvcCwgdm9pZCwgKEluc3RhbmNlKiwgdW5zaWduZWQgZWxl
bWVudEluZGV4KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJs
ZUdyb3csIGludDMyX3QsIChJbnN0YW5jZSosIHVuc2lnbmVkLCBFbmNvZGVkSlNWYWx1ZSBmaWxs
LCB1aW50MzJfdCBkZWx0YSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtVGFibGVGaWxsLCBzaXplX3QsIChJbnN0YW5jZSosIHVuc2lnbmVkLCB1aW50MzJfdCBvZmZz
ZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIHVpbnQzMl90IGNvdW50KSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIHNpemVfdCwgKEluc3RhbmNlKiwg
dW5zaWduZWQgZHN0VGFibGVJbmRleCwgdW5zaWduZWQgc3JjVGFibGVJbmRleCwgaW50MzJfdCBk
c3RPZmZzZXQsIGludDMyX3Qgc3JjT2Zmc2V0LCBpbnQzMl90IGxlbmd0aCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVTaXplLCBpbnQzMl90LCAoSW5z
dGFuY2UqLCB1bnNpZ25lZCkpOwotCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk1lbW9yeUF0b21pY1dhaXQzMiwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWdu
ZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCB1aW50MzJfdCB2YWx1ZSwgaW50NjRfdCB0aW1lb3V0
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQ2
NCwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgYmFzZSwgdW5zaWduZWQg
b2Zmc2V0LCB1aW50NjRfdCB2YWx1ZSwgaW50NjRfdCB0aW1lb3V0KSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY05vdGlmeSwgaW50MzJfdCwgKEluc3Rh
bmNlKiwgdW5zaWduZWQsIHVuc2lnbmVkLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlJbml0LCBzaXplX3QsIChJbnN0YW5jZSosIHVuc2ln
bmVkIGRhdGFTZWdtZW50SW5kZXgsIHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0Fk
ZHJlc3MsIHVpbnQzMl90IGxlbmd0aCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtRGF0YURyb3AsIHZvaWQsIChJbnN0YW5jZSosIHVuc2lnbmVkIGRhdGFTZWdtZW50
SW5kZXgpKTsKLQotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3cs
IHZvaWQqLCAoSW5zdGFuY2UqLCBDYWxsRnJhbWUqLCB1bnNpZ25lZCBleGNlcHRpb25JbmRleCwg
dWludDY0X3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcGNvdW50
MzIsIENDYWxsVUludDMyOjpJbnRlZ2VyVHlwZSwgKENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQ2NCwgQ0NhbGxVSW50NjQ6OkludGVnZXJU
eXBlLCAoQ0NhbGxJbnQ2NCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
cm93TWVtb3J5LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKHZvaWQqLCBJbnN0YW5jZSosIEND
YWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9y
eUZpbGwsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGRz
dEFkZHJlc3MsIENDYWxsVUludDMyIHRhcmdldFZhbHVlLCBDQ2FsbFVJbnQzMiBjb3VudCkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5Q29weSwgQ0NhbGxT
aXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIgZHN0QWRkcmVzcywgQ0Nh
bGxVSW50MzIgc3JjQWRkcmVzcywgQ0NhbGxVSW50MzIgY291bnQpKTsKKworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1
ZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudCwgQ0NhbGxTaXplOjpJbnRl
Z2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIsIENDYWxsVUludDMyLCBFbmNvZGVkSlNW
YWx1ZSBlbmNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
UmVmRnVuYywgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIENDYWxsVUludDMyKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUluaXQsIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGVsZW1lbnRJbmRleCwgQ0NhbGxV
SW50MzIgdGFibGVJbmRleCwgQ0NhbGxVSW50MzIgZHN0T2Zmc2V0LCBDQ2FsbFVJbnQzMiBzcmNP
ZmZzZXQsIENDYWxsVUludDMyIGxlbmd0aCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtRWxlbURyb3AsIHZvaWQsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGVsZW1l
bnRJbmRleCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVH
cm93LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIsIEVu
Y29kZWRKU1ZhbHVlIGZpbGwsIENDYWxsVUludDMyIGRlbHRhKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUs
IChJbnN0YW5jZSosIENDYWxsVUludDMyLCBDQ2FsbFVJbnQzMiBvZmZzZXQsIEVuY29kZWRKU1Zh
bHVlIGZpbGwsIENDYWxsVUludDMyIGNvdW50KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21UYWJsZUNvcHksIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5j
ZSosIENDYWxsVUludDMyIGRzdFRhYmxlSW5kZXgsIENDYWxsVUludDMyIHNyY1RhYmxlSW5kZXgs
IENDYWxsSW50MzIgZHN0T2Zmc2V0LCBDQ2FsbEludDMyIHNyY09mZnNldCwgQ0NhbGxJbnQzMiBs
ZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxl
U2l6ZSwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyKSk7
CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDMy
LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50
MzIgYmFzZSwgQ0NhbGxVSW50MzIgb2Zmc2V0LCBDQ2FsbFVJbnQzMiB2YWx1ZSwgQ0NhbGxJbnQ2
NCB0aW1lb3V0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0
b21pY1dhaXQ2NCwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2Us
IENDYWxsVUludDMyIGJhc2UsIENDYWxsVUludDMyIG9mZnNldCwgQ0NhbGxVSW50NjQgdmFsdWUs
IENDYWxsSW50NjQgdGltZW91dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25NZW1vcnlBdG9taWNOb3RpZnksIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSW5zdGFuY2Uq
LCBDQ2FsbFVJbnQzMiwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUluaXQsIENDYWxsU2l6ZTo6SW50ZWdlclR5
cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGRhdGFTZWdtZW50SW5kZXgsIENDYWxsVUludDMy
IGRzdEFkZHJlc3MsIENDYWxsVUludDMyIHNyY0FkZHJlc3MsIENDYWxsVUludDMyIGxlbmd0aCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtRGF0YURyb3AsIHZvaWQs
IChJbnN0YW5jZSosIENDYWxsVUludDMyIGRhdGFTZWdtZW50SW5kZXgpKTsKKworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqLCBD
YWxsRnJhbWUqLCBDQ2FsbFVJbnQzMiBleGNlcHRpb25JbmRleCwgdWludDY0X3QqKSk7CiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRocm93LCB2b2lkKiwgKEluc3Rh
bmNlKiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUgdGhyb3duVmFsdWUpKTsKIAogSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVG9KU0V4Y2VwdGlvbiwgdm9pZCosIChD
YWxsRnJhbWUqLCBXYXNtOjpFeGNlcHRpb25UeXBlLCBJbnN0YW5jZSopKTsK
</data>
<flag name="commit-queue"
          id="478776"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451899</attachid>
            <date>2022-02-14 07:07:12 -0800</date>
            <delta_ts>2022-02-14 08:38:43 -0800</delta_ts>
            <desc>RFC patch</desc>
            <filename>bug-236367-20220214160710.patch</filename>
            <type>text/plain</type>
            <size>272318</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YjhiNGQyZGJkYzZiOWZlOWJhZTE1NjY0ODUwMGRkNDYyZjg4NDMyLi41ZjkxZGNkNDU0NjM5ZDA4
MDQyMzEyOGZiZjQwZDFiYzc1ODE4MjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDggQEAKKzIwMjItMDItMTQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtKU0NdIEFjY29tbW9kYXRlIHRoZSBSSVNDVjY0IEMgY2FsbGluZyBj
b252ZW50aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzYzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6Cisg
ICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAoSlNDOjp0ZXN0U2ltcGxlKToK
KyAgICAgICAgKEpTQzo6dGVzdEdldEVmZmVjdGl2ZUFkZHJlc3MpOgorICAgICAgICAoSlNDOjp0
ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5j
aFRlc3Q4KToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaFRlc3QxNik6CisgICAgICAgIChKU0M6
OnRlc3RCcmFuY2hUZXN0Qml0MzJSZWdSZWcpOgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoVGVz
dEJpdDMyUmVnSW1tKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaFRlc3RCaXQzMkFkZHJJbW0p
OgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoVGVzdEJpdDY0UmVnUmVnKToKKyAgICAgICAgKEpT
Qzo6dGVzdEJyYW5jaFRlc3RCaXQ2NFJlZ0ltbSk6CisgICAgICAgIChKU0M6OnRlc3RCcmFuY2hU
ZXN0Qml0NjRBZGRySW1tKToKKyAgICAgICAgKEpTQzo6dGVzdENsZWFyQml0NjQpOgorICAgICAg
ICAoSlNDOjp0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFzayk6CisgICAgICAgIChKU0M6OnRlc3RDbGVh
ckJpdHM2NFdpdGhNYXNrVGVybmFyeSk6CisgICAgICAgIChKU0M6OnRlc3RDb3VudFRyYWlsaW5n
WmVyb3M2NEltcGwpOgorICAgICAgICAoSlNDOjp0ZXN0U2hpZnRBbmRBZGQpOgorICAgICAgICAo
SlNDOjp0ZXN0U3RvcmU2NEltbTY0QWRkcmVzc1BvaW50ZXIpOgorICAgICAgICAoSlNDOjp0ZXN0
Q29tcGFyZURvdWJsZSk6CisgICAgICAgIChKU0M6OnRlc3RDb21wYXJlRG91YmxlU2FtZUFyZyk6
CisgICAgICAgIChKU0M6OnRlc3RNdWwzMldpdGhJbW1lZGlhdGVzKToKKyAgICAgICAgKEpTQzo6
dGVzdE11bHRpcGx5U2lnbkV4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5WmVy
b0V4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5QWRkU2lnbkV4dGVuZDMyKToK
KyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5QWRkWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpT
Qzo6dGVzdFN1YjMyQXJncyk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkltbSk6CisgICAgICAg
IChKU0M6OnRlc3RTdWI2NEltbTMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YjY0QXJnSW1tMzIp
OgorICAgICAgICAoSlNDOjp0ZXN0U3ViNjRJbW02NCk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2
NEFyZ0ltbTY0KToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5U3ViU2lnbkV4dGVuZDMyKToK
KyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5U3ViWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpT
Qzo6dGVzdE11bHRpcGx5TmVnU2lnbkV4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRp
cGx5TmVnWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEV4dHJhY3RVbnNpZ25lZEJp
dGZpZWxkMzIpOgorICAgICAgICAoSlNDOjp0ZXN0RXh0cmFjdFVuc2lnbmVkQml0ZmllbGQ2NCk6
CisgICAgICAgIChKU0M6OnRlc3RJbnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5aZXJvMzIpOgorICAg
ICAgICAoSlNDOjp0ZXN0SW5zZXJ0VW5zaWduZWRCaXRmaWVsZEluWmVybzY0KToKKyAgICAgICAg
KEpTQzo6dGVzdEluc2VydEJpdEZpZWxkMzIpOgorICAgICAgICAoSlNDOjp0ZXN0SW5zZXJ0Qml0
RmllbGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0Vu
ZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEV4dHJhY3RJbnNlcnRCaXRmaWVsZEF0TG93RW5kNjQp
OgorICAgICAgICAoSlNDOjp0ZXN0Q2xlYXJCaXRGaWVsZDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dENsZWFyQml0RmllbGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RDbGVhckJpdHNXaXRoTWFzazMy
KToKKyAgICAgICAgKEpTQzo6dGVzdENsZWFyQml0c1dpdGhNYXNrNjQpOgorICAgICAgICAoSlND
Ojp0ZXN0T3JOb3QzMik6CisgICAgICAgIChKU0M6OnRlc3RPck5vdDY0KToKKyAgICAgICAgKEpT
Qzo6dGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIpOgorICAgICAgICAoSlNDOjp0ZXN0
SW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm82NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0
U2lnbmVkQml0ZmllbGQzMik6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0U2lnbmVkQml0Zmll
bGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0UmVnaXN0ZXIzMik6CisgICAgICAgIChK
U0M6OnRlc3RFeHRyYWN0UmVnaXN0ZXI2NCk6CisgICAgICAgIChKU0M6OnRlc3RBZGRXaXRoTGVm
dFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0QWRkV2l0aFJpZ2h0U2hpZnQzMik6CisgICAg
ICAgIChKU0M6OnRlc3RBZGRXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlND
Ojp0ZXN0QWRkV2l0aExlZnRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdEFkZFdpdGhSaWdo
dFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0QWRkV2l0aFVuc2lnbmVkUmlnaHRTaGlmdDY0
KToKKyAgICAgICAgKEpTQzo6dGVzdFN1YldpdGhMZWZ0U2hpZnQzMik6CisgICAgICAgIChKU0M6
OnRlc3RTdWJXaXRoUmlnaHRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YldpdGhVbnNp
Z25lZFJpZ2h0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RTdWJXaXRoTGVmdFNoaWZ0NjQp
OgorICAgICAgICAoSlNDOjp0ZXN0U3ViV2l0aFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6
OnRlc3RTdWJXaXRoVW5zaWduZWRSaWdodFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0WG9y
Tm90MzIpOgorICAgICAgICAoSlNDOjp0ZXN0WG9yTm90NjQpOgorICAgICAgICAoSlNDOjp0ZXN0
WG9yTm90V2l0aExlZnRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvck5vdFdpdGhSaWdo
dFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0WG9yTm90V2l0aFVuc2lnbmVkUmlnaHRTaGlm
dDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvck5vdFdpdGhMZWZ0U2hpZnQ2NCk6CisgICAgICAg
IChKU0M6OnRlc3RYb3JOb3RXaXRoUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdFhv
ck5vdFdpdGhVbnNpZ25lZFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RTdG9yZVBy
ZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN0b3JlUHJlUG9zdEluZGV4NjQpOgor
ICAgICAgICAoSlNDOjp0ZXN0TG9hZFByZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dExvYWRQcmVQb3N0SW5kZXg2NCk6CisgICAgICAgIChKU0M6OnRlc3RBbmRMZWZ0U2hpZnQzMik6
CisgICAgICAgIChKU0M6OnRlc3RBbmRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0
QW5kVW5zaWduZWRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0QW5kTGVmdFNoaWZ0
NjQpOgorICAgICAgICAoSlNDOjp0ZXN0QW5kUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6
dGVzdEFuZFVuc2lnbmVkUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdFhvckxlZnRT
aGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvclJpZ2h0U2hpZnQzMik6CisgICAgICAgIChK
U0M6OnRlc3RYb3JVbnNpZ25lZFJpZ2h0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RYb3JM
ZWZ0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RYb3JSaWdodFNoaWZ0NjQpOgorICAgICAg
ICAoSlNDOjp0ZXN0WG9yVW5zaWduZWRSaWdodFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0
T3JMZWZ0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RPclJpZ2h0U2hpZnQzMik6CisgICAg
ICAgIChKU0M6OnRlc3RPclVuc2lnbmVkUmlnaHRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dE9yTGVmdFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0T3JSaWdodFNoaWZ0NjQpOgorICAg
ICAgICAoSlNDOjp0ZXN0T3JVbnNpZ25lZFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRl
c3RDb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjp0ZXN0TW92ZUNvbmRpdGlvbmFsbHlGbG9h
dGluZ1BvaW50KToKKyAgICAgICAgKEpTQzo6dGVzdE1vdmVDb25kaXRpb25hbGx5RmxvYXRpbmdQ
b2ludFNhbWVBcmcpOgorICAgICAgICAoSlNDOjp0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDgpOgor
ICAgICAgICAoSlNDOjp0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDE2KToKKyAgICAgICAgKEpTQzo6
dGVzdFN1YjMyQXJnSW1tKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlUHJlc2VydmVzR1BSUyk6
CisgICAgICAgIChKU0M6OnRlc3RCeXRlU3dhcCk6CisgICAgICAgIChKU0M6OnRlc3RMb2FkQmFz
ZUluZGV4KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNhY2hlZFB1dEJ5SWQpOgorICAg
ICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpT
Q19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5oOgorICAgICAgICAqIGZ0bC9GVExPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAoSlNDOjpGVEw6OkpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMpOgorICAgICAgICAqIGZ0bC9GVExPcGVy
YXRpb25zLmg6CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpD
Q2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzSW1wbCk6CisgICAgICAgIChKU0M6OkNDYWxsSGVs
cGVyczo6c3RkOjppc19pbnRlZ3JhbDxDVVJSRU5UX0FSR1VNRU5UX1RZUEU+Ojp2YWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgICogaml0L0NDYWxsVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6
OlJJU0NWNjRDQ2FsbEludGVnZXI6OlJJU0NWNjRDQ2FsbEludGVnZXIpOgorICAgICAgICAoSlND
OjpSSVNDVjY0Q0NhbGxJbnRlZ2VyOjpvcGVyYXRvciBUIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
UklTQ1Y2NENDYWxsSW50ZWdlcjo6b3BlcmF0b3IgRW51bVR5cGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpDQ2FsbEludGVnZXI6OkNDYWxsSW50ZWdlcik6CisgICAgICAgIChKU0M6OkNDYWxsSW50
ZWdlcjo6b3BlcmF0b3IgVCBjb25zdCk6CisgICAgICAgIChKU0M6OkNDYWxsSW50ZWdlcjo6b3Bl
cmF0b3IgRW51bVR5cGUgY29uc3QpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBqaXQv
SklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHdhc20vV2FzbU9wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAqIHdh
c20vV2FzbU9wZXJhdGlvbnMuaDoKKwogMjAyMi0wMi0xMyAgTGF1cm8gTW91cmEgIDxsbW91cmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBub24tdW5pZmllZCBidWlsZCBmaXhl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDI3NzdiZTk5YWQxYjdjMDlk
MmI2Yzk1MDIyN2RhYzNlMTczYmNiZGMuLmNhMDExYjE4ODUwZDlhYzVmNDFlOGU2ZGQ0MGJmZDRk
Y2NiNGEyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTg0OCw2ICs4
NDgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IGppdC9CYXNlbGluZUpJVENvZGUuaAogICAgIGppdC9DYWxsRnJhbWVTaHVmZmxlRGF0YS5oCiAg
ICAgaml0L0NDYWxsSGVscGVycy5oCisgICAgaml0L0NDYWxsVHlwZXMuaAogICAgIGppdC9FeGVj
dXRhYmxlQWxsb2NhdG9yLmgKICAgICBqaXQvRXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oCiAgICAg
aml0L0ZQUkluZm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMDQ4MDkxOGNi
MDQ3ZDQ0OTgzZWRkNWU2ZDdhMDFiZTUzZWVlZjhjLi5kYWQ4MGY2OGZlN2FlNGQ0OTEyN2E5YTdm
Mjk1ZGRmZWY5MTQwMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc5OSw2
ICsxNzk5LDcgQEAKIAkJQ0QxRjlCM0MyNzBDMEMxQTAwNjE3RUI2IC8qIFR5cGVkQXJyYXlBZGFw
dGVyc0ZvcndhcmREZWNsYXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMUY5QjNCMjcwQzBDMUEwMDYxN0VCNiAvKiBUeXBlZEFycmF5QWRh
cHRlcnNGb3J3YXJkRGVjbGFyYXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxRjlCNDkyNzBDRkRDQzAwNjE3RUI2IC8qIEhhbmRsZUZv
cndhcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MUY5QjQ4MjcwQ0ZEQ0MwMDYxN0VCNiAvKiBIYW5kbGVGb3J3YXJkLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxRjlCNEIyNzBDRkUwRjAwNjE3
RUI2IC8qIFN0cm9uZ0ZvcndhcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMUY5QjRBMjcwQ0ZFMEYwMDYxN0VCNiAvKiBTdHJvbmdGb3J3YXJkLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QzNTAx
RTQyN0JBOUM0RjAwQzlBOUM1IC8qIENDYWxsVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzUwMUUzMjdCQTlDNEUwMEM5QTlDNSAvKiBDQ2Fs
bFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0UyMEJEMDUyMzdEM0UyMzAwNDZFNTIwIC8qIEZpbGVCYXNlZEZ1enplckFnZW50QmFzZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UyMEJEMDMy
MzdEM0FENDAwNDZFNTIwIC8qIEZpbGVCYXNlZEZ1enplckFnZW50QmFzZS5oICovOyB9OwogCQlD
RTIwQkQwNzIzN0QzRTQ4MDA0NkU1MjAgLyogUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFn
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTIw
QkQwMTIzN0QzQUQ0MDA0NkU1MjAgLyogUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50
LmggKi87IH07CiAJCUNFQUU3RDdCODg5QjQ3N0JBOTNBQkE2QyAvKiBTY3JpcHRGZXRjaGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4ODUyMTUxQTlD
Mzg0MjM4OUIzMjE1QjcgLyogU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MTY1LDYgKzUxNjYsNyBAQAogCQlDRDFGOUIz
QjI3MEMwQzFBMDA2MTdFQjYgLyogVHlwZWRBcnJheUFkYXB0ZXJzRm9yd2FyZERlY2xhcmF0aW9u
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlZEFycmF5QWRhcHRlcnNGb3J3YXJkRGVjbGFyYXRpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMUY5QjQ4MjcwQ0ZEQ0MwMDYxN0VC
NiAvKiBIYW5kbGVGb3J3YXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhhbmRsZUZvcndhcmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxRjlCNEEyNzBDRkUwRjAwNjE3RUI2IC8qIFN0
cm9uZ0ZvcndhcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Ryb25nRm9yd2FyZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDM1MDFFMzI3QkE5QzRFMDBDOUE5QzUgLyogQ0NhbGxUeXBl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDQ2FsbFR5cGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMjBCRDAxMjM3RDNBRDQwMDQ2RTUyMCAvKiBQcmVk
aWN0aW9uRmlsZUNyZWF0aW5nRnV6emVyQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJlZGljdGlv
bkZpbGVDcmVhdGluZ0Z1enplckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFMjBCRDAyMjM3RDNBRDQwMDQ2RTUyMCAvKiBQcmVkaWN0aW9uRmlsZUNyZWF0aW5nRnV6emVy
QWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enpl
ckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UyMEJEMDMyMzdEM0FE
NDAwNDZFNTIwIC8qIEZpbGVCYXNlZEZ1enplckFnZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
aWxlQmFzZWRGdXp6ZXJBZ2VudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU5MzIsNyArNTkzNCw2IEBACiAJCQkJODYwM0NFRjAxNEM3NTNFRjAwQUU1OUUzIC8qIHRvb2xz
ICovLAogCQkJCTdCOThEMTMzMUI2MENEMUUwMDIzQjFBNCAvKiB3YXNtICovLAogCQkJCTg2RUFD
NDhDMEY5M0U4QjkwMDhFQzk0OCAvKiB5YXJyICovLAotCQkJCTUzMzY5OUFGMjdBMzA2RjYwMEM5
NTYxRCAvKiBSZWNvdmVyZWQgUmVmZXJlbmNlcyAqLywKIAkJCSk7CiAJCQluYW1lID0gSmF2YVNj
cmlwdENvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjUwMSw2ICs2NTAyLDcg
QEAKIAkJCQk2MkQ3NTVEMzFCODRGQjM5MDAxODAxRkEgLyogQ2FsbEZyYW1lU2h1ZmZsZXI2NC5j
cHAgKi8sCiAJCQkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAg
Ki8sCiAJCQkJMEYyNEU1M0QxN0VBOUY1OTAwQUJCMjE3IC8qIENDYWxsSGVscGVycy5oICovLAor
CQkJCUNEMzUwMUUzMjdCQTlDNEUwMEM5QTlDNSAvKiBDQ2FsbFR5cGVzLmggKi8sCiAJCQkJMEZG
MDU0RjcxQUMzNUI0NDAwRTVCRTU3IC8qIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ei5jcHAgKi8s
CiAJCQkJMEZGMDU0RjgxQUMzNUI0NDAwRTVCRTU3IC8qIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6
ei5oICovLAogCQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcCAqLywKQEAgLTczMjcsOSArNzMyOSw2IEBACiAJCTdCOThEMTMzMUI2MENEMUUwMDIz
QjFBNCAvKiB3YXNtICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
LQkJCQkzN0FBQzA5MTI3OUYxMjQyMDBENjQ4NDIgLyogV2FzbUJyYW5jaEhpbnRzLmggKi8sCi0J
CQkJMzdBQUMwOTAyNzlGMTI0MTAwRDY0ODQyIC8qIFdhc21CcmFuY2hIaW50c1NlY3Rpb25QYXJz
ZXIuY3BwICovLAotCQkJCTM3QUFDMDkyMjc5RjEyNDIwMEQ2NDg0MiAvKiBXYXNtQnJhbmNoSGlu
dHNTZWN0aW9uUGFyc2VyLmggKi8sCiAJCQkJQUQyRkNCOEExREI1ODQwMDAwQjNFNzM2IC8qIGpz
ICovLAogCQkJCTUyODQ3QUQ5MjFGRkI4NjMwMDYxQTlEQiAvKiBXYXNtQWlySVJHZW5lcmF0b3Iu
Y3BwICovLAogCQkJCTUyODQ3QURBMjFGRkI4NjMwMDYxQTlEQiAvKiBXYXNtQWlySVJHZW5lcmF0
b3IuaCAqLywKQEAgLTczMzksNiArNzMzOCw5IEBACiAJCQkJNTNDQTczMDgxRUE1MzNEODAwNzYw
NDlEIC8qIFdhc21CQlFQbGFuLmggKi8sCiAJCQkJQUQ0QjFERjcxREYyNDRENzAwNzFBRTMyIC8q
IFdhc21CaW5kaW5nLmNwcCAqLywKIAkJCQlBRDRCMURGODFERjI0NEQ3MDA3MUFFMzIgLyogV2Fz
bUJpbmRpbmcuaCAqLywKKwkJCQkzN0FBQzA5MTI3OUYxMjQyMDBENjQ4NDIgLyogV2FzbUJyYW5j
aEhpbnRzLmggKi8sCisJCQkJMzdBQUMwOTAyNzlGMTI0MTAwRDY0ODQyIC8qIFdhc21CcmFuY2hI
aW50c1NlY3Rpb25QYXJzZXIuY3BwICovLAorCQkJCTM3QUFDMDkyMjc5RjEyNDIwMEQ2NDg0MiAv
KiBXYXNtQnJhbmNoSGludHNTZWN0aW9uUGFyc2VyLmggKi8sCiAJCQkJNTI1QzBERDcxRTkzNTg0
NzAwMjE4NENEIC8qIFdhc21DYWxsZWUuY3BwICovLAogCQkJCTUyNUMwREQ4MUU5MzU4NDcwMDIx
ODRDRCAvKiBXYXNtQ2FsbGVlLmggKi8sCiAJCQkJNTI2QUM0QjQxRTk3N0M1RDAwMzUwMEUxIC8q
IFdhc21DYWxsZWVHcm91cC5jcHAgKi8sCkBAIC05OTA0LDYgKzk5MDYsNyBAQAogCQkJCTBGM0I3
RTJCMTlBMTFCODAwMEQ5QkM1NiAvKiBDYWxsVmFyaWFudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkU4MEMxOTcxRDc3NUNERDAwODUxMEMwIC8qIENhdGNoU2NvcGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMjRFNTQyMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2FsbEhlbHBlcnMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNEMzUwMUU0MjdCQTlDNEYwMEM5QTlDNSAvKiBDQ2FsbFR5cGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjk2MzAzQTFENDE5MkM4MDA1NjA5RDkgLyogQ2VsbEF0dHJpYnV0ZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMDcwQTQ3MUQ1NDNBOEIwMDZFNzIzMiAvKiBDZWxsQ29u
dGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjA3MEE0ODFENTQzQTkwMDA2RTcyMzIgLyog
Q2VsbENvbnRhaW5lcklubGluZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTA5NzksNyArMTA5ODIs
NiBAQAogCQkJCTBGRTA1MDI5MUFBOTA5NTYwMEQzM0IzMyAvKiBTY29wZWRBcmd1bWVudHNUYWJs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFMDUwMkIxQUE5MDk1NjAwRDMzQjMzIC8qIFNjb3Bl
T2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU1MjE3RUUyNzQ5MDBBQkIyMTcgLyog
U2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkzN0FBQzA5NDI3
OUYxQzA1MDBENjQ4NDIgLyogV2FzbUJyYW5jaEhpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MzExMUI4QjIzOTcyNTY1MDBBQTM0Q0UgLyogU2NyaWJibGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1RkQwMDY4MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1RkQwMDZFMTg5QjAwQUEwMDYzMzIzMSAvKiBTY3JpcHRDYWxsRnJhbWUuaCBp
biBIZWFkZXJzICovLApAQCAtMTExMDksNyArMTExMTEsNiBAQAogCQkJCUZFMzQyMjEyMUQ2Qjgx
QzMwMDMyQkU4OCAvKiBUaHJvd1Njb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU3MkQ0RjE2
ODc5RkREMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
Mzg2NTU2MTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTM3QUFDMDkzMjc5RjFCRkMwMEQ2NDg0MiAvKiBXYXNtQnJhbmNoSGludHNTZWN0aW9u
UGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE0NDhDRDEzQTE3ODM3MDBGNUJBMUEgLyog
VGlueUJsb29tRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU1OTg5ODE3Qzg2QzU4MDBB
MUU1NDMgLyogVG9OYXRpdmVGcm9tVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkQ0REU5
MTk4MzJEQUMwMDdENEIxOSAvKiBUb1RoaXNTdGF0dXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTEx
NjYsNiArMTExNjcsOCBAQAogCQkJCTUzRjQwRTkzMUQ1QTRBQjMwMDk5QTFCNiAvKiBXYXNtQjNJ
UkdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNDQTczMEExRUE1MzNEODAwNzYwNDlE
IC8qIFdhc21CQlFQbGFuLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDRCMURGQTFERjI0NEUyMDA3
MUFFMzIgLyogV2FzbUJpbmRpbmcuaCBpbiBIZWFkZXJzICovLAorCQkJCTM3QUFDMDk0Mjc5RjFD
MDUwMEQ2NDg0MiAvKiBXYXNtQnJhbmNoSGludHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTM3QUFD
MDkzMjc5RjFCRkMwMEQ2NDg0MiAvKiBXYXNtQnJhbmNoSGludHNTZWN0aW9uUGFyc2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MjVDMEREQTFFOTM1ODQ3MDAyMTg0Q0QgLyogV2FzbUNhbGxlZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTI2QUM0QjcxRTk3N0M1RDAwMzUwMEUxIC8qIFdhc21DYWxs
ZWVHcm91cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNGQjg1M0EyMkYzNjY3QjAwOEY5MEVEIC8q
IFdhc21DYWxsZWVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCmluZGV4IDIwNGZmNDMwNDE1MTkyM2JiMmQ4Zjdm
YTM3MDFkNjUzZWY1OGIyYzQuLjIyOGViMjc0NzczZGNiMGQ5MDMxMWEwM2ViN2Y5M2NiY2FjY2Ix
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCkBA
IC0xMzcsNiArMTM3LDEyIEBAIHN0YXRpYyB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0m
IG91dCwgdm9pZCogdmFsdWUpCiAgICAgb3V0LnByaW50ZigiJXAiLCB2YWx1ZSk7CiB9CiAKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwg
Y29uc3QgSlNDOjpDQ2FsbEludGVnZXI8VD4mIHZhbHVlKQoreworICAgIHByaW50SW50ZXJuYWwo
b3V0LCBzdGF0aWNfY2FzdDxUPih2YWx1ZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAog
bmFtZXNwYWNlIEpTQyB7CkBAIC0yNjgsNyArMjc0LDcgQEAgdm9pZCBlbWl0RnVuY3Rpb25FcGls
b2d1ZShDQ2FsbEhlbHBlcnMmIGppdCkKIAogdm9pZCB0ZXN0U2ltcGxlKCkKIHsKLSAgICBDSEVD
S19FUShjb21waWxlQW5kUnVuPGludD4oW10gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgQ0hF
Q0tfRVEoY29tcGlsZUFuZFJ1bjxDQ2FsbEludDMyPihbXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsK
ICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKICAgICAgICAgaml0Lm1vdmUoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoNDIpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAg
ICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CkBAIC0yNzgsNyArMjg0LDcgQEAgdm9p
ZCB0ZXN0U2ltcGxlKCkKIAogdm9pZCB0ZXN0R2V0RWZmZWN0aXZlQWRkcmVzcyhzaXplX3QgcG9p
bnRlciwgcHRyZGlmZl90IGxlbmd0aCwgaW50MzJfdCBvZmZzZXQsIENDYWxsSGVscGVyczo6U2Nh
bGUgc2NhbGUpCiB7Ci0gICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxzaXplX3Q+KFs9XSAoQ0Nh
bGxIZWxwZXJzJiBqaXQpIHsKKyAgICBDSEVDS19FUShjb21waWxlQW5kUnVuPENDYWxsU2l6ZT4o
Wz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShq
aXQpOwogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYml0d2lz
ZV9jYXN0PHZvaWQqPihwb2ludGVyKSksIEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAgaml0Lm1v
dmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4obGVuZ3Ro
KSksIEdQUkluZm86OnJlZ1QxKTsKQEAgLTI5OCw3ICszMDQsNyBAQCB2b2lkIHRlc3RCcmFuY2hU
cnVuY2F0ZURvdWJsZVRvSW50MzIoZG91YmxlIHZhbCwgaW50MzJfdCBleHBlY3RlZCkKICNlbHNl
CiAgICAgY29uc3QgYm9vbCBpc0JpZ0VuZGlhbiA9IGZhbHNlOwogI2VuZGlmCi0gICAgQ0hFQ0tf
RVEoY29tcGlsZUFuZFJ1bjxpbnQ+KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICBDSEVD
S19FUShjb21waWxlQW5kUnVuPENDYWxsSW50MzI+KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsK
ICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKICAgICAgICAgaml0LnN1YlB0cihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihzdGFja0FsaWdubWVudEJ5dGVzKCkpLCBNYWNyb0Fz
c2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBpZiAoaXNCaWdFbmRpYW4p
IHsKQEAgLTM2Niw4ICszNzIsOCBAQCB2b2lkIHRlc3RCcmFuY2hUZXN0OCgpCiAgICAgICAgICAg
ICAgICAgMCwKICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90Pih2YWx1ZSkKICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50Pih0ZXN0MSwgYXJy
YXkpLCByZXN1bHQpOwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4odGVzdDIsIGFy
cmF5LCAxKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMy
Pih0ZXN0MSwgYXJyYXkpLCByZXN1bHQpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50MzI+KHRlc3QyLCBhcnJheSwgMSksIHJlc3VsdCk7CiAgICAgICAgIH0KICAgICB9CiB9
CkBAIC00MTIsOCArNDE4LDggQEAgdm9pZCB0ZXN0QnJhbmNoVGVzdDE2KCkKICAgICAgICAgICAg
ICAgICAwLAogICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQxNl90Pih2YWx1ZSkKICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50Pih0ZXN0MSwgYXJy
YXkpLCByZXN1bHQpOwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4odGVzdDIsIGFy
cmF5LCAxKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMy
Pih0ZXN0MSwgYXJyYXkpLCByZXN1bHQpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50MzI+KHRlc3QyLCBhcnJheSwgMSksIHJlc3VsdCk7CiAgICAgICAgIH0KICAgICB9CiB9
CkBAIC00MzcsNyArNDQzLDcgQEAgdm9pZCB0ZXN0QnJhbmNoVGVzdEJpdDMyUmVnUmVnKCkKICAg
ICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6IGludDMyT3BlcmFuZHMoKSkK
LSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KHRlc3QsIHZhbHVlLCB2YWx1ZTIpLCAo
dmFsdWU+Pih2YWx1ZTIlMzIpKSYxKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2Fs
bEludDMyPih0ZXN0LCB2YWx1ZSwgdmFsdWUyKSwgKHZhbHVlPj4odmFsdWUyJTMyKSkmMSk7CiAg
ICAgfQogfQogCkBAIC00NTksNyArNDY1LDcgQEAgdm9pZCB0ZXN0QnJhbmNoVGVzdEJpdDMyUmVn
SW1tKCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6IGludDMyT3Bl
cmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KHRlc3QsIHZhbHVlMiks
ICh2YWx1ZTI+Pih2YWx1ZSUzMikpJjEpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50MzI+KHRlc3QsIHZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSUzMikpJjEpOwogICAgIH0K
IH0KIApAQCAtNDgxLDcgKzQ4Nyw3IEBAIHZvaWQgdGVzdEJyYW5jaFRlc3RCaXQzMkFkZHJJbW0o
KQogICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDogaW50MzJPcGVyYW5k
cygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4odGVzdCwgJnZhbHVlMiksICh2
YWx1ZTI+Pih2YWx1ZSUzMikpJjEpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxs
SW50MzI+KHRlc3QsICZ2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUlMzIpKSYxKTsKICAgICB9CiB9
CiAKQEAgLTUwMyw3ICs1MDksNyBAQCB2b2lkIHRlc3RCcmFuY2hUZXN0Qml0NjRSZWdSZWcoKQog
ICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDogaW50NjRPcGVyYW5kcygp
KQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGxvbmcgaW50Pih0ZXN0LCB2YWx1ZSwgdmFs
dWUyKSwgKHZhbHVlPj4odmFsdWUyJTY0KSkmMSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZv
a2U8Q0NhbGxJbnQ2ND4odGVzdCwgdmFsdWUsIHZhbHVlMiksICh2YWx1ZT4+KHZhbHVlMiU2NCkp
JjEpOwogICAgIH0KIH0KIApAQCAtNTI1LDcgKzUzMSw3IEBAIHZvaWQgdGVzdEJyYW5jaFRlc3RC
aXQ2NFJlZ0ltbSgpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2YWx1ZTIgOiBp
bnQ2NE9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8bG9uZyBpbnQ+KHRl
c3QsIHZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSU2NCkpJjEpOworICAgICAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIHZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSU2NCkp
JjEpOwogICAgIH0KIH0KIApAQCAtNTQ3LDcgKzU1Myw3IEBAIHZvaWQgdGVzdEJyYW5jaFRlc3RC
aXQ2NEFkZHJJbW0oKQogICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDog
aW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGxvbmcgaW50Pih0
ZXN0LCAmdmFsdWUyKSwgKHZhbHVlMj4+KHZhbHVlJTY0KSkmMSk7CisgICAgICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxJbnQ2ND4odGVzdCwgJnZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSU2
NCkpJjEpOwogICAgIH0KIH0KIApAQCAtNTcyLDEyICs1NzgsMTIgQEAgdm9pZCB0ZXN0Q2xlYXJC
aXQ2NCgpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJpdHNJbldvcmQ7ICsraSkgewog
ICAgICAgICB1aW50NjRfdCB3b3JkID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1h
eCgpOwogICAgICAgICBjb25zdGV4cHIgdWludDY0X3Qgb25lID0gMTsKLSAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCBpKSwgKHdvcmQgJiB+KG9uZSA8PCBpKSkp
OworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIHdvcmQsIGkpLCAo
d29yZCAmIH4ob25lIDw8IGkpKSk7CiAgICAgfQogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGJpdHNJbldvcmQ7ICsraSkgewogICAgICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCBpKSwgMCk7CisgICAgICAg
IENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgd29yZCwgaSksIDApOwogICAgIH0K
IH0KIApAQCAtNTk1LDEyICs2MDEsMTIgQEAgdm9pZCB0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFzaygp
CiAKICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgdWlu
dDY0X3Qgd29yZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsKLSAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCB2YWx1ZSksICh3b3JkICYg
fnZhbHVlKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgd29y
ZCwgdmFsdWUpLCAod29yZCAmIH52YWx1ZSkpOwogICAgIH0KIAogICAgIGZvciAoYXV0byB2YWx1
ZSA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCB2YWx1ZSksIDApOworICAg
ICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIHdvcmQsIHZhbHVlKSwgMCk7
CiAgICAgfQogCiAgICAgdWludDY0X3Qgc2F2ZWRNYXNrID0gMDsKQEAgLTYyNCwxMiArNjMwLDEy
IEBAIHZvaWQgdGVzdENsZWFyQml0czY0V2l0aE1hc2soKQogCiAgICAgZm9yIChhdXRvIHZhbHVl
IDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90IHdvcmQgPSBzdGQ6Om51bWVy
aWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50
NjRfdD4odGVzdDIsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFsdWUpKTsKKyAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAod29yZCAmIH52
YWx1ZSkpOwogICAgIH0KIAogICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkg
ewogICAgICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVp
bnQ2NF90Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKICAgICB9CiB9CiAKQEAgLTY0
OCwxMiArNjU0LDEyIEBAIHZvaWQgdGVzdENsZWFyQml0czY0V2l0aE1hc2tUZXJuYXJ5KCkKIAog
ICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRf
dCB3b3JkID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOwotICAgICAgICBD
SEVDS19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFs
dWUpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0LCB3b3JkLCB2
YWx1ZSksICh3b3JkICYgfnZhbHVlKSk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvIHZhbHVlIDog
aW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90IHdvcmQgPSAwOwotICAgICAgICBD
SEVDS19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QsIHdvcmQsIHZhbHVlKSwgMCk7CisgICAgICAg
IENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgd29yZCwgdmFsdWUpLCAwKTsKICAg
ICB9CiAKICAgICB1aW50NjRfdCBzYXZlZE1hc2sgPSAwOwpAQCAtNjc5LDEyICs2ODUsMTIgQEAg
dm9pZCB0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFza1Rlcm5hcnkoKQogCiAgICAgZm9yIChhdXRvIHZh
bHVlIDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90IHdvcmQgPSBzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1
aW50NjRfdD4odGVzdDIsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFsdWUpKTsKKyAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAod29yZCAm
IH52YWx1ZSkpOwogICAgIH0KIAogICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMo
KSkgewogICAgICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHVpbnQ2NF90Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKICAgICB9CiB9CiAKQEAg
LTcxOCwxMyArNzI0LDEzIEBAIHN0YXRpYyB2b2lkIHRlc3RDb3VudFRyYWlsaW5nWmVyb3M2NElt
cGwoYm9vbCB3b3JkQ2FuQmVaZXJvKQogICAgIGZvciAoYXV0byB3b3JkIDogaW50NjRPcGVyYW5k
cygpKSB7CiAgICAgICAgIGlmICghd29yZENhbkJlWmVybyAmJiAhd29yZCkKICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICBDSEVDS19FUShpbnZva2U8c2l6ZV90Pih0ZXN0LCB3b3JkKSwg
ZXhwZWN0ZWROdW1iZXJPZlRyYWlsaW5nWmVyb3Mod29yZCkpOworICAgICAgICBDSEVDS19FUShp
bnZva2U8Q0NhbGxTaXplPih0ZXN0LCB3b3JkKSwgZXhwZWN0ZWROdW1iZXJPZlRyYWlsaW5nWmVy
b3Mod29yZCkpOwogICAgIH0KIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZC
aXRzOyArK2kpIHsKICAgICAgICAgdWludDY0X3Qgb25lID0gMTsKICAgICAgICAgdWludDY0X3Qg
d29yZCA9IG9uZSA8PCBpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8c2l6ZV90Pih0ZXN0LCB3
b3JkKSwgaSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFNpemU+KHRlc3QsIHdvcmQp
LCBpKTsKICAgICB9CiB9CiAKQEAgLTc5MSw3ICs3OTcsNyBAQCB2b2lkIHRlc3RTaGlmdEFuZEFk
ZCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIENIRUNL
X0VRKGludm9rZTxpbnRwdHJfdD4odGVzdCksIGJhc2VQb2ludGVyICsgKGluZGV4IDw8IHNoaWZ0
KSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludHB0cj4odGVzdCksIGJhc2VQb2lu
dGVyICsgKGluZGV4IDw8IHNoaWZ0KSk7CiAgICAgfTsKIAogICAgIGZvciAoYXV0byBpbmRleCA6
IGludDMyT3BlcmFuZHMoKSkgewpAQCAtODIxLDcgKzgyNyw3IEBAIHZvaWQgdGVzdFN0b3JlNjRJ
bW02NEFkZHJlc3NQb2ludGVyKCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
CiAKLSAgICAgICAgaW52b2tlPHNpemVfdD4odGVzdCk7CisgICAgICAgIGludm9rZTxDQ2FsbFNp
emU+KHRlc3QpOwogICAgICAgICBDSEVDS19FUShkZXN0LCB2YWx1ZSk7CiAgICAgfTsKICAgICAK
QEAgLTkwMyw4ICs5MDksOCBAQCB2b2lkIHRlc3RDb21wYXJlRG91YmxlKE1hY3JvQXNzZW1ibGVy
OjpEb3VibGVDb25kaXRpb24gY29uZGl0aW9uKQogICAgICAgICBmb3IgKGF1dG8gYiA6IG9wZXJh
bmRzKSB7CiAgICAgICAgICAgICBhcmcxID0gYTsKICAgICAgICAgICAgIGFyZzIgPSBiOwotICAg
ICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oY29tcGFyZURvdWJsZSksIGV4cGVjdGVkUmVz
dWx0KGEsIGIpKTsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KGNvbXBhcmVEb3Vi
bGVHZW5lcmljKSwgZXhwZWN0ZWRSZXN1bHQoYSwgYikpOworICAgICAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPENDYWxsSW50MzI+KGNvbXBhcmVEb3VibGUpLCBleHBlY3RlZFJlc3VsdChhLCBiKSk7
CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4oY29tcGFyZURvdWJsZUdl
bmVyaWMpLCBleHBlY3RlZFJlc3VsdChhLCBiKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC05
NzMsOCArOTc5LDggQEAgdm9pZCB0ZXN0Q29tcGFyZURvdWJsZVNhbWVBcmcoTWFjcm9Bc3NlbWJs
ZXI6OkRvdWJsZUNvbmRpdGlvbiBjb25kaXRpb24pCiAgICAgYXV0byBvcGVyYW5kcyA9IGRvdWJs
ZU9wZXJhbmRzKCk7CiAgICAgZm9yIChhdXRvIGEgOiBvcGVyYW5kcykgewogICAgICAgICBhcmcx
ID0gYTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oY29tcGFyZURvdWJsZSksIGV4cGVj
dGVkUmVzdWx0KGEpKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oY29tcGFyZURvdWJs
ZUdlbmVyaWMpLCBleHBlY3RlZFJlc3VsdChhKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxD
Q2FsbEludDMyPihjb21wYXJlRG91YmxlKSwgZXhwZWN0ZWRSZXN1bHQoYSkpOworICAgICAgICBD
SEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4oY29tcGFyZURvdWJsZUdlbmVyaWMpLCBleHBlY3Rl
ZFJlc3VsdChhKSk7CiAgICAgfQogfQogCkBAIC05OTEsNyArOTk3LDcgQEAgdm9pZCB0ZXN0TXVs
MzJXaXRoSW1tZWRpYXRlcygpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2YWx1
ZSA6IGludDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KG11
bCwgdmFsdWUpLCBpbW1lZGlhdGUgKiB2YWx1ZSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZv
a2U8Q0NhbGxJbnQzMj4obXVsLCB2YWx1ZSksIGltbWVkaWF0ZSAqIHZhbHVlKTsKICAgICB9CiB9
CiAKQEAgLTEwMDksNyArMTAxNSw3IEBAIHZvaWQgdGVzdE11bHRpcGx5U2lnbkV4dGVuZDMyKCkK
ICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6IGludDMyT3BlcmFuZHMo
KSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxsb25nIGludD4obXVsLCB2YWx1ZSwgdmFs
dWUyKSwgKChsb25nIGludCkgdmFsdWUpICogKChsb25nIGludCkgdmFsdWUyKSk7CisgICAgICAg
ICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4obXVsLCB2YWx1ZSwgdmFsdWUyKSwgaW50
NjRfdCh2YWx1ZSkgKiBpbnQ2NF90KHZhbHVlMikpOwogICAgIH0KIH0KIApAQCAtMTAyOCw3ICsx
MDM0LDcgQEAgdm9pZCB0ZXN0TXVsdGlwbHlaZXJvRXh0ZW5kMzIoKQogICAgICAgICBmb3IgKGF1
dG8gbU9wZXJhbmQgOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAgICAgICAgICAgIHVpbnQzMl90IG4g
PSBuT3BlcmFuZDsKICAgICAgICAgICAgIHVpbnQzMl90IG0gPSBtT3BlcmFuZDsKLSAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4obXVsLCBuLCBtKSwgc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KG4pICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pKTsKKyAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4obXVsLCBuLCBtKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KG4pICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAg
LTEwNTEsNyArMTA1Nyw3IEBAIHZvaWQgdGVzdE11bHRpcGx5QWRkU2lnbkV4dGVuZDMyKCkKICAg
ICBmb3IgKGF1dG8gbiA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICBmb3IgKGF1dG8gbSA6
IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvIGEgOiBpbnQ2NE9wZXJh
bmRzKCkpCi0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KGFkZCwgbiwg
bSwgYSksIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pICogc3RhdGljX2Nhc3Q8aW50NjRfdD4obSkg
KyBhKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4oYWRkLCBu
LCBtLCBhKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4obikgKiBzdGF0aWNfY2FzdDxpbnQ2NF90Piht
KSArIGEpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTA3Niw3ICsxMDgyLDcgQEAgdm9pZCB0
ZXN0TXVsdGlwbHlBZGRaZXJvRXh0ZW5kMzIoKQogICAgICAgICAgICAgZm9yIChhdXRvIGEgOiBp
bnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgICAgICAgICB1aW50MzJfdCB1biA9IG47CiAgICAg
ICAgICAgICAgICAgdWludDMyX3QgdW0gPSBtOwotICAgICAgICAgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxpbnQ2NF90PihhZGQsIG4sIG0sIGEpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih1bikgKiBz
dGF0aWNfY2FzdDxpbnQ2NF90Pih1bSkgKyBhKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUShp
bnZva2U8Q0NhbGxJbnQ2ND4oYWRkLCBuLCBtLCBhKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4odW4p
ICogc3RhdGljX2Nhc3Q8aW50NjRfdD4odW0pICsgYSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CkBAIC0xMDk1LDcgKzExMDEsNyBAQCB2b2lkIHRlc3RTdWIzMkFyZ3MoKQogICAg
ICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDogaW50MzJPcGVyYW5kcygpKQot
ICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIsIHZhbHVlLCB2YWx1ZTIp
LCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUgLSB2YWx1ZTIpKTsKKyAgICAgICAgICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4oc3ViLCB2YWx1ZSwgdmFsdWUyKSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KHZhbHVlIC0gdmFsdWUyKSk7CiAgICAgfQogfQogCkBAIC0xMTEyLDcgKzEx
MTgsNyBAQCB2b2lkIHRlc3RTdWIzMkltbSgpCiAgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4oc3ViKSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsKKyAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbFVJbnQzMj4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGltbWVk
aWF0ZSAtIGltbWVkaWF0ZTIpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTExMzAsNyArMTEz
Niw3IEBAIHZvaWQgdGVzdFN1YjY0SW1tMzIoKQogICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKGppdCk7CiAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHN1YiksIHN0YXRpY19j
YXN0PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7CisgICAgICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHN1YiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbW1l
ZGlhdGUgLSBpbW1lZGlhdGUyKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMTQ4LDcgKzEx
NTQsNyBAQCB2b2lkIHRlc3RTdWI2NEFyZ0ltbTMyKCkKICAgICAgICAgfSk7CiAKICAgICAgICAg
Zm9yIChhdXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPGludDY0X3Q+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAt
IGltbWVkaWF0ZSkpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHN1
YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOwogICAg
IH0KIH0KIApAQCAtMTE2NSw3ICsxMTcxLDcgQEAgdm9pZCB0ZXN0U3ViNjRJbW02NCgpCiAgICAg
ICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1
aW50NjRfdD4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0
ZTIpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4oc3ViKSwgc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsKICAgICAgICAgfQog
ICAgIH0KIH0KQEAgLTExODMsNyArMTE4OSw3IEBAIHZvaWQgdGVzdFN1YjY0QXJnSW1tNjQoKQog
ICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkp
Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oc3ViLCB2YWx1ZSksIHN0YXRp
Y19jYXN0PGludDY0X3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgICAgICAgICBDSEVDS19F
UShpbnZva2U8Q0NhbGxJbnQ2ND4oc3ViLCB2YWx1ZSksIHN0YXRpY19jYXN0PGludDY0X3Q+KHZh
bHVlIC0gaW1tZWRpYXRlKSk7CiAgICAgfQogfQogCkBAIC0xMjA1LDcgKzEyMTEsNyBAQCB2b2lk
IHRlc3RNdWx0aXBseVN1YlNpZ25FeHRlbmQzMigpCiAgICAgZm9yIChhdXRvIGEgOiBpbnQ2NE9w
ZXJhbmRzKCkpIHsKICAgICAgICAgZm9yIChhdXRvIG4gOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAg
ICAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVyYW5kcygpKQotICAgICAgICAgICAgICAg
IENIRUNLX0VRKGludm9rZTxpbnQ2NF90PihzdWIsIGEsIG4sIG0pLCBhIC0gc3RhdGljX2Nhc3Q8
aW50NjRfdD4obikgKiBzdGF0aWNfY2FzdDxpbnQ2NF90PihtKSk7CisgICAgICAgICAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHN1YiwgYSwgbiwgbSksIGEgLSBzdGF0aWNfY2Fz
dDxpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+KG0pKTsKICAgICAgICAgfQogICAg
IH0KIH0KQEAgLTEyMzAsNyArMTIzNiw3IEBAIHZvaWQgdGVzdE11bHRpcGx5U3ViWmVyb0V4dGVu
ZDMyKCkKICAgICAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVyYW5kcygpKSB7CiAgICAg
ICAgICAgICAgICAgdWludDMyX3QgdW4gPSBuOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHVt
ID0gbTsKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oc3ViLCBhLCBu
LCBtKSwgYSAtIHN0YXRpY19jYXN0PGludDY0X3Q+KHVuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+
KHVtKSk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHN1Yiwg
YSwgbiwgbSksIGEgLSBzdGF0aWNfY2FzdDxpbnQ2NF90Pih1bikgKiBzdGF0aWNfY2FzdDxpbnQ2
NF90Pih1bSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTI1MCw3ICsx
MjU2LDcgQEAgdm9pZCB0ZXN0TXVsdGlwbHlOZWdTaWduRXh0ZW5kMzIoKQogCiAgICAgZm9yIChh
dXRvIG4gOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAgICAgICAgZm9yIChhdXRvIG0gOiBpbnQzMk9w
ZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4obmVnLCBuLCBt
KSwgLShzdGF0aWNfY2FzdDxpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+KG0pKSk7
CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4obmVnLCBuLCBtKSwgLShz
dGF0aWNfY2FzdDxpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+KG0pKSk7CiAgICAg
fQogfQogCkBAIC0xMjcwLDcgKzEyNzYsNyBAQCB2b2lkIHRlc3RNdWx0aXBseU5lZ1plcm9FeHRl
bmQzMigpCiAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVyYW5kcygpKSB7CiAgICAgICAg
ICAgICB1aW50MzJfdCB1biA9IG47CiAgICAgICAgICAgICB1aW50MzJfdCB1bSA9IG07Ci0gICAg
ICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KG5lZywgbiwgbSksIC0oc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KHVuKSAqIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih1bSkpKTsKKyAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4obmVnLCBuLCBtKSwgLShzdGF0aWNfY2Fz
dDx1aW50NjRfdD4odW4pICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVtKSkpOwogICAgICAgICB9
CiAgICAgfQogfQpAQCAtMTI5Myw3ICsxMjk5LDcgQEAgdm9pZCB0ZXN0RXh0cmFjdFVuc2lnbmVk
Qml0ZmllbGQzMigpCiAgICAgICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGpp
dCk7CiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHViZngzMiwgc3JjKSwg
KChzcmMgPj4gbHNiKSAmICgoMVUgPDwgd2lkdGgpIC0gMVUpKSk7CisgICAgICAgICAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPih1YmZ4MzIsIHNyYyksICgoc3JjID4+IGxzYikg
JiAoKDFVIDw8IHdpZHRoKSAtIDFVKSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQpAQCAtMTMxNyw3ICsxMzIzLDcgQEAgdm9pZCB0ZXN0RXh0cmFjdFVuc2lnbmVkQml0ZmllbGQ2
NCgpCiAgICAgICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAg
ICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHViZng2NCwgc3JjKSwgKChzcmMgPj4g
bHNiKSAmICgoMVVMTCA8PCB3aWR0aCkgLSAxVUxMKSkpOworICAgICAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odWJmeDY0LCBzcmMpLCAoKHNyYyA+PiBsc2IpICYgKCgx
VUxMIDw8IHdpZHRoKSAtIDFVTEwpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CkBAIC0xMzQyLDcgKzEzNDgsNyBAQCB2b2lkIHRlc3RJbnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5a
ZXJvMzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzayA9ICgxVSA8PCB3aWR0aCkgLSAxVTsK
LSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHViZml6MzIsIHNyYyks
IChzcmMgJiBtYXNrKSA8PCBsc2IpOworICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxD
Q2FsbFVJbnQzMj4odWJmaXozMiwgc3JjKSwgKHNyYyAmIG1hc2spIDw8IGxzYik7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzY3LDcgKzEzNzMsNyBAQCB2b2lkIHRlc3RJ
bnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5aZXJvNjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbWFz
ayA9ICgxVUxMIDw8IHdpZHRoKSAtIDFVTEw7Ci0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPHVpbnQ2NF90Pih1YmZpejY0LCBzcmMpLCAoc3JjICYgbWFzaykgPDwgbHNiKTsKKyAgICAg
ICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHViZml6NjQsIHNyYyksIChz
cmMgJiBtYXNrKSA8PCBsc2IpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAt
MTM5NSw3ICsxNDAxLDcgQEAgdm9pZCB0ZXN0SW5zZXJ0Qml0RmllbGQzMigpCiAgICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzazEgPSAoMVUgPDwgd2lkdGgp
IC0gMVU7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzazIgPSB+KG1hc2sxIDw8IGxzYik7
Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gaW52b2tlPHVpbnQzMl90PihiZmkzMiwg
c3JjLCBkc3QpOworICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9IGludm9rZTxDQ2FsbFVJ
bnQzMj4oYmZpMzIsIHNyYywgZHN0KTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSAo
KHNyYyAmIG1hc2sxKSA8PCBsc2IpIHwgKGRzdCAmIG1hc2syKTsKICAgICAgICAgICAgICAgICBD
SEVDS19FUShyaHMsIGxocyk7CiAgICAgICAgICAgICB9CkBAIC0xNDI1LDcgKzE0MzEsNyBAQCB2
b2lkIHRlc3RJbnNlcnRCaXRGaWVsZDY0KCkKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgICAgICB1aW50NjRfdCBtYXNrMSA9ICgxVUxMIDw8IHdpZHRoKSAtIDFVTEw7CiAgICAgICAg
ICAgICAgICAgdWludDY0X3QgbWFzazIgPSB+KG1hc2sxIDw8IGxzYik7Ci0gICAgICAgICAgICAg
ICAgdWludDY0X3QgcmhzID0gaW52b2tlPHVpbnQ2NF90PihiZmk2NCwgc3JjLCBkc3QpOworICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oYmZpNjQsIHNy
YywgZHN0KTsKICAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSAoKHNyYyAmIG1hc2sxKSA8
PCBsc2IpIHwgKGRzdCAmIG1hc2syKTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShyaHMsIGxo
cyk7CiAgICAgICAgICAgICB9CkBAIC0xNDU1LDcgKzE0NjEsNyBAQCB2b2lkIHRlc3RFeHRyYWN0
SW5zZXJ0Qml0ZmllbGRBdExvd0VuZDMyKCkKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgICAgICB1aW50MzJfdCBtYXNrMSA9ICgxVSA8PCB3aWR0aCkgLSAxVTsKICAgICAgICAgICAg
ICAgICB1aW50MzJfdCBtYXNrMiA9IH5tYXNrMTsKLSAgICAgICAgICAgICAgICB1aW50MzJfdCBy
aHMgPSBpbnZva2U8dWludDMyX3Q+KGJmeGlsMzIsIHNyYywgZHN0KTsKKyAgICAgICAgICAgICAg
ICB1aW50MzJfdCByaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KGJmeGlsMzIsIHNyYywgZHN0KTsK
ICAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSAoKHNyYyA+PiBsc2IpICYgbWFzazEpIHwg
KGRzdCAmIG1hc2syKTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShyaHMsIGxocyk7CiAgICAg
ICAgICAgICB9CkBAIC0xNDg1LDcgKzE0OTEsNyBAQCB2b2lkIHRlc3RFeHRyYWN0SW5zZXJ0Qml0
ZmllbGRBdExvd0VuZDY0KCkKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB1
aW50NjRfdCBtYXNrMSA9ICgxVUxMIDw8IHdpZHRoKSAtIDFVTEw7CiAgICAgICAgICAgICAgICAg
dWludDY0X3QgbWFzazIgPSB+bWFzazE7Ci0gICAgICAgICAgICAgICAgdWludDY0X3QgcmhzID0g
aW52b2tlPHVpbnQ2NF90PihiZnhpbDY0LCBzcmMsIGRzdCk7CisgICAgICAgICAgICAgICAgdWlu
dDY0X3QgcmhzID0gaW52b2tlPENDYWxsVUludDY0PihiZnhpbDY0LCBzcmMsIGRzdCk7CiAgICAg
ICAgICAgICAgICAgdWludDY0X3QgbGhzID0gKChzcmMgPj4gbHNiKSAmIG1hc2sxKSB8IChkc3Qg
JiBtYXNrMik7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEocmhzLCBsaHMpOwogICAgICAgICAg
ICAgfQpAQCAtMTUxMCw3ICsxNTE2LDcgQEAgdm9pZCB0ZXN0Q2xlYXJCaXRGaWVsZDMyKCkKICAg
ICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgICAgIHVpbnQzMl90IG1hc2sgPSAoKDFVIDw8IHdpZHRoKSAtIDFVKSA8PCBsc2I7Ci0g
ICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gaW52b2tlPHVpbnQzMl90PihiZmMzMiwgc3Jj
KTsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCByaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KGJm
YzMyLCBzcmMpOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IHNyYyAmIH5tYXNrOwog
ICAgICAgICAgICAgICAgIENIRUNLX0VRKHJocywgbGhzKTsKICAgICAgICAgICAgIH0KQEAgLTE1
MzUsNyArMTU0MSw3IEBAIHZvaWQgdGVzdENsZWFyQml0RmllbGQ2NCgpCiAgICAgICAgICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB1
aW50NjRfdCBtYXNrID0gKCgxVUxMIDw8IHdpZHRoKSAtIDFVTEwpIDw8IGxzYjsKLSAgICAgICAg
ICAgICAgICB1aW50NjRfdCByaHMgPSBpbnZva2U8dWludDY0X3Q+KGJmYzY0LCBzcmMpOworICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oYmZjNjQsIHNy
Yyk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gc3JjICYgfm1hc2s7CiAgICAgICAg
ICAgICAgICAgQ0hFQ0tfRVEocmhzLCBsaHMpOwogICAgICAgICAgICAgfQpAQCAtMTU1Niw4ICsx
NTYyLDggQEAgdm9pZCB0ZXN0Q2xlYXJCaXRzV2l0aE1hc2szMigpCiAKICAgICBmb3IgKGF1dG8g
bWFzayA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICB1aW50MzJfdCBzcmMgPSBzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1
aW50MzJfdD4odGVzdCwgc3JjLCBtYXNrKSwgKHNyYyAmIH5tYXNrKSk7Ci0gICAgICAgIENIRUNL
X0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgMFUsIG1hc2spLCAwVSk7CisgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgc3JjLCBtYXNrKSwgKHNyYyAmIH5tYXNrKSk7
CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgMFUsIG1hc2spLCAw
VSk7CiAgICAgfQogfQogCkBAIC0xNTc0LDggKzE1ODAsOCBAQCB2b2lkIHRlc3RDbGVhckJpdHNX
aXRoTWFzazY0KCkKIAogICAgIGZvciAoYXV0byBtYXNrIDogaW50NjRPcGVyYW5kcygpKSB7CiAg
ICAgICAgIHVpbnQ2NF90IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgo
KTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCBzcmMsIG1hc2spLCAo
c3JjICYgfm1hc2spKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCAw
VUxMLCBtYXNrKSwgMFVMTCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4o
dGVzdCwgc3JjLCBtYXNrKSwgKHNyYyAmIH5tYXNrKSk7CisgICAgICAgIENIRUNLX0VRKGludm9r
ZTxDQ2FsbFVJbnQ2ND4odGVzdCwgMFVMTCwgbWFzayksIDBVTEwpOwogICAgIH0KIH0KIApAQCAt
MTU5Miw4ICsxNTk4LDggQEAgdm9pZCB0ZXN0T3JOb3QzMigpCiAKICAgICBmb3IgKGF1dG8gbWFz
ayA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICBpbnQzMl90IHNyYyA9IHN0ZDo6bnVtZXJp
Y19saW1pdHM8dWludDMyX3Q+OjptYXgoKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDMy
X3Q+KHRlc3QsIHNyYywgbWFzayksIChzcmMgfCB+bWFzaykpOwotICAgICAgICBDSEVDS19FUShp
bnZva2U8aW50MzJfdD4odGVzdCwgMFUsIG1hc2spLCB+bWFzayk7CisgICAgICAgIENIRUNLX0VR
KGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCBzcmMsIG1hc2spLCAoc3JjIHwgfm1hc2spKTsKKyAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QsIDBVLCBtYXNrKSwgfm1hc2sp
OwogICAgIH0KIH0KIApAQCAtMTYxMCw4ICsxNjE2LDggQEAgdm9pZCB0ZXN0T3JOb3Q2NCgpCiAK
ICAgICBmb3IgKGF1dG8gbWFzayA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICBpbnQ2NF90
IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsKLSAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPGludDY0X3Q+KHRlc3QsIHNyYywgbWFzayksIChzcmMgfCB+bWFzaykpOwot
ICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4odGVzdCwgMFVMTCwgbWFzayksIH5tYXNr
KTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIHNyYywgbWFzayks
IChzcmMgfCB+bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4odGVz
dCwgMFVMTCwgbWFzayksIH5tYXNrKTsKICAgICB9CiB9CiAKQEAgLTE2MzksNyArMTY0NSw3IEBA
IHZvaWQgdGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIoKQogICAgICAgICAgICAgICAg
IGludDMyX3QgbWFzazIgPSAxIDw8ICh3aWR0aCAtIDEpOwogICAgICAgICAgICAgICAgIGludDMy
X3QgYmZzeCA9ICgoYmYgJiBtYXNrMSkgXiBtYXNrMikgLSBtYXNrMjsKIAotICAgICAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTxpbnQzMl90PihpbnNlcnRTaWduZWRCaXRmaWVsZEluWmVybzMy
LCBzcmMpLCBiZnN4IDw8IGxzYik7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50MzI+KGluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIsIHNyYyksIGJmc3ggPDwgbHNi
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTE2NjgsNyArMTY3NCw3IEBA
IHZvaWQgdGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvNjQoKQogICAgICAgICAgICAgICAg
IGludDY0X3QgYW1vdW50ID0gQ0hBUl9CSVQgKiBzaXplb2YoYmYpIC0gd2lkdGg7CiAgICAgICAg
ICAgICAgICAgaW50NjRfdCBiZnN4ID0gKGJmIDw8IGFtb3VudCkgPj4gYW1vdW50OwogCi0gICAg
ICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KGluc2VydFNpZ25lZEJpdGZpZWxk
SW5aZXJvNjQsIHNyYyksIGJmc3ggPDwgbHNiKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUShp
bnZva2U8Q0NhbGxJbnQ2ND4oaW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm82NCwgc3JjKSwgYmZz
eCA8PCBsc2IpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTY5OCw3ICsx
NzA0LDcgQEAgdm9pZCB0ZXN0RXh0cmFjdFNpZ25lZEJpdGZpZWxkMzIoKQogICAgICAgICAgICAg
ICAgIGludDMyX3QgbWFzazIgPSAxIDw8ICh3aWR0aCAtIDEpOwogICAgICAgICAgICAgICAgIGlu
dDMyX3QgYmZzeCA9ICgoYmYgJiBtYXNrMSkgXiBtYXNrMikgLSBtYXNrMjsKIAotICAgICAgICAg
ICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQzMl90PihleHRyYWN0U2lnbmVkQml0ZmllbGQzMiwg
c3JjKSwgYmZzeCk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+
KGV4dHJhY3RTaWduZWRCaXRmaWVsZDMyLCBzcmMpLCBiZnN4KTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0KQEAgLTE3MjcsNyArMTczMyw3IEBAIHZvaWQgdGVzdEV4dHJhY3RTaWdu
ZWRCaXRmaWVsZDY0KCkKICAgICAgICAgICAgICAgICBpbnQ2NF90IGFtb3VudCA9IENIQVJfQklU
ICogc2l6ZW9mKGJmKSAtIHdpZHRoOwogICAgICAgICAgICAgICAgIGludDY0X3QgYmZzeCA9IChi
ZiA8PCBhbW91bnQpID4+IGFtb3VudDsKIAotICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9r
ZTxpbnQ2NF90PihleHRyYWN0U2lnbmVkQml0ZmllbGQ2NCwgc3JjKSwgYmZzeCk7CisgICAgICAg
ICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KGV4dHJhY3RTaWduZWRCaXRmaWVs
ZDY0LCBzcmMpLCBiZnN4KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTE3
NjIsNyArMTc2OCw3IEBAIHZvaWQgdGVzdEV4dHJhY3RSZWdpc3RlcjMyKCkKICAgICAgICAgICAg
ICAgICAgICAgdWludDMyX3QgbGVmdCA9IGhpZ2hXaWR0aCA9PSBkYXRhc2l6ZSA/IDBVIDogKG4g
JiBtYXNrKSA8PCBoaWdoV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHJpZ2h0
ID0gKHN0YXRpY19jYXN0PHVpbnQzMl90PihtKSA+PiBsc2IpOwogICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCByaHMgPSBsZWZ0IHwgcmlnaHQ7Ci0gICAgICAgICAgICAgICAgICAgIHVpbnQz
Ml90IGxocyA9IGludm9rZTx1aW50MzJfdD4oZXh0cmFjdFJlZ2lzdGVyMzIsIG4sIG0pOworICAg
ICAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KGV4dHJh
Y3RSZWdpc3RlcjMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCBy
aHMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTE3OTYsNyArMTgwMiw3
IEBAIHZvaWQgdGVzdEV4dHJhY3RSZWdpc3RlcjY0KCkKICAgICAgICAgICAgICAgICAgICAgdWlu
dDY0X3QgbGVmdCA9IGhpZ2hXaWR0aCA9PSBkYXRhc2l6ZSA/IDBVTEwgOiAobiAmIG1hc2spIDw8
IGhpZ2hXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgcmlnaHQgPSAoc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KG0pID4+IGxzYik7CiAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90
IHJocyA9IGxlZnQgfCByaWdodDsKLSAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0g
aW52b2tlPHVpbnQ2NF90PihleHRyYWN0UmVnaXN0ZXI2NCwgbiwgbSk7CisgICAgICAgICAgICAg
ICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oZXh0cmFjdFJlZ2lzdGVy
NjQsIG4sIG0pOwogICAgICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTgyMiw3ICsxODI4LDcgQEAgdm9pZCB0
ZXN0QWRkV2l0aExlZnRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwog
ICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZv
a2U8aW50MzJfdD4oYWRkMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0g
aW52b2tlPENDYWxsSW50MzI+KGFkZDMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90
IHJocyA9IG4gKyAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywg
cmhzKTsKICAgICAgICAgICAgIH0KQEAgLTE4NDgsNyArMTg1NCw3IEBAIHZvaWQgdGVzdEFkZFdp
dGhSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
ICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQz
Ml90PihhZGQzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8
Q0NhbGxJbnQzMj4oYWRkMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0g
biArIChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwog
ICAgICAgICAgICAgfQpAQCAtMTg3NCw3ICsxODgwLDcgQEAgdm9pZCB0ZXN0QWRkV2l0aFVuc2ln
bmVkUmlnaHRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tlPHVp
bnQzMl90PihhZGQzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52
b2tlPENDYWxsVUludDMyPihhZGQzMiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3Qg
cmhzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG4pICsgKHN0YXRpY19jYXN0PHVpbnQzMl90Piht
KSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAg
ICAgICAgIH0KQEAgLTE5MDAsNyArMTkwNiw3IEBAIHZvaWQgdGVzdEFkZFdpdGhMZWZ0U2hpZnQ2
NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsK
IAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KGFkZDY0LCBu
LCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0Pihh
ZGQ2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuICsgKG0gPDwgYW1v
dW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9
CkBAIC0xOTI2LDcgKzE5MzIsNyBAQCB2b2lkIHRlc3RBZGRXaXRoUmlnaHRTaGlmdDY0KCkKICAg
ICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAg
ICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8aW50NjRfdD4oYWRkNjQsIG4sIG0pOwor
ICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KGFkZDY0LCBu
LCBtKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IHJocyA9IG4gKyAobSA+PiBhbW91bnQpOwog
ICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTE5
NTIsNyArMTk1OCw3IEBAIHZvaWQgdGVzdEFkZFdpdGhVbnNpZ25lZFJpZ2h0U2hpZnQ2NCgpCiAg
ICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTx1aW50NjRfdD4oYWRkNjQsIG4sIG0p
OworICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oYWRk
NjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IHN0YXRpY19jYXN0PHVp
bnQ2NF90PihuKSArIChzdGF0aWNfY2FzdDx1aW50NjRfdD4obSkgPj4gYW1vdW50KTsKICAgICAg
ICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0xOTc4LDcg
KzE5ODQsNyBAQCB2b2lkIHRlc3RTdWJXaXRoTGVmdFNoaWZ0MzIoKQogICAgICAgICAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBp
bnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90PihzdWIzMiwgbiwgbSk7CisgICAgICAgICAgICAg
ICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4oc3ViMzIsIG4sIG0pOwogICAgICAg
ICAgICAgICAgIGludDMyX3QgcmhzID0gbiAtIChtIDw8IGFtb3VudCk7CiAgICAgICAgICAgICAg
ICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjAwNCw3ICsyMDEwLDcg
QEAgdm9pZCB0ZXN0U3ViV2l0aFJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGpp
dC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDMyX3Qg
bGhzID0gaW52b2tlPGludDMyX3Q+KHN1YjMyLCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQz
Ml90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPihzdWIzMiwgbiwgbSk7CiAgICAgICAgICAgICAg
ICAgaW50MzJfdCByaHMgPSBuIC0gKG0gPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVD
S19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMDMwLDcgKzIwMzYsNyBAQCB2b2lk
IHRlc3RTdWJXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1aW50MzJf
dCBsaHMgPSBpbnZva2U8dWludDMyX3Q+KHN1YjMyLCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1
aW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KHN1YjMyLCBuLCBtKTsKICAgICAgICAg
ICAgICAgICB1aW50MzJfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obikgLSAoc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEo
bGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjA1Niw3ICsyMDYyLDcgQEAgdm9pZCB0ZXN0
U3ViV2l0aExlZnRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8
aW50NjRfdD4oc3ViNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52
b2tlPENDYWxsSW50NjQ+KHN1YjY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IHJo
cyA9IG4gLSAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhz
KTsKICAgICAgICAgICAgIH0KQEAgLTIwODIsNyArMjA4OCw3IEBAIHZvaWQgdGVzdFN1YldpdGhS
aWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAg
ICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2NF90
PihzdWI2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8Q0Nh
bGxJbnQ2ND4oc3ViNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0X3QgcmhzID0gbiAt
IChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAg
ICAgICAgICAgfQpAQCAtMjEwOCw3ICsyMTE0LDcgQEAgdm9pZCB0ZXN0U3ViV2l0aFVuc2lnbmVk
UmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAg
ICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gaW52b2tlPHVpbnQ2
NF90PihzdWI2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gaW52b2tl
PENDYWxsVUludDY0PihzdWI2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgdWludDY0X3Qgcmhz
ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG4pIC0gKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSA+
PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAg
ICAgIH0KQEAgLTIxMjksOCArMjEzNSw4IEBAIHZvaWQgdGVzdFhvck5vdDMyKCkKIAogICAgIGZv
ciAoYXV0byBtYXNrIDogaW50MzJPcGVyYW5kcygpKSB7CiAgICAgICAgIGludDMyX3Qgc3JjID0g
c3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpOwotICAgICAgICBDSEVDS19FUShp
bnZva2U8aW50MzJfdD4odGVzdCwgc3JjLCBtYXNrKSwgKHNyYyBeIH5tYXNrKSk7Ci0gICAgICAg
IENIRUNLX0VRKGludm9rZTxpbnQzMl90Pih0ZXN0LCAwVSwgbWFzayksIH5tYXNrKTsKKyAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QsIHNyYywgbWFzayksIChzcmMgXiB+
bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4odGVzdCwgMFUsIG1h
c2spLCB+bWFzayk7CiAgICAgfQogfQogCkBAIC0yMTQ3LDggKzIxNTMsOCBAQCB2b2lkIHRlc3RY
b3JOb3Q2NCgpCiAKICAgICBmb3IgKGF1dG8gbWFzayA6IGludDY0T3BlcmFuZHMoKSkgewogICAg
ICAgICBpbnQ2NF90IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsK
LSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHRlc3QsIHNyYywgbWFzayksIChzcmMg
XiB+bWFzaykpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4odGVzdCwgMFVMTCwg
bWFzayksIH5tYXNrKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3Qs
IHNyYywgbWFzayksIChzcmMgXiB+bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0Nh
bGxJbnQ2ND4odGVzdCwgMFVMTCwgbWFzayksIH5tYXNrKTsKICAgICB9CiB9CiAKQEAgLTIxNzAs
NyArMjE3Niw3IEBAIHZvaWQgdGVzdFhvck5vdFdpdGhMZWZ0U2hpZnQzMigpCiAgICAgICAgICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAg
ICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KHRlc3QsIG4sIG0pOworICAgICAgICAg
ICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KHRlc3QsIG4sIG0pOwogICAg
ICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiBeIH4obSA8PCBhbW91bnQpOwogICAgICAgICAg
ICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTIxOTYsNyArMjIw
Miw3IEBAIHZvaWQgdGVzdFhvck5vdFdpdGhSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBp
bnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90Pih0ZXN0LCBuLCBtKTsKKyAgICAgICAgICAgICAg
ICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCBuLCBtKTsKICAgICAgICAg
ICAgICAgICBpbnQzMl90IHJocyA9IG4gXiB+KG0gPj4gYW1vdW50KTsKICAgICAgICAgICAgICAg
ICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMjIyLDcgKzIyMjgsNyBA
QCB2b2lkIHRlc3RYb3JOb3RXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAg
ICB1aW50MzJfdCBsaHMgPSBpbnZva2U8dWludDMyX3Q+KHRlc3QsIG4sIG0pOworICAgICAgICAg
ICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgbiwgbSk7CiAg
ICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG4pIF4g
fihzdGF0aWNfY2FzdDx1aW50MzJfdD4obSkgPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBD
SEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMjQ4LDcgKzIyNTQsNyBAQCB2
b2lkIHRlc3RYb3JOb3RXaXRoTGVmdFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxo
cyA9IGludm9rZTxpbnQ2NF90Pih0ZXN0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90
IGxocyA9IGludm9rZTxDQ2FsbEludDY0Pih0ZXN0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBp
bnQ2NF90IHJocyA9IG4gXiB+KG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19F
UShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMjc0LDcgKzIyODAsNyBAQCB2b2lkIHRl
c3RYb3JOb3RXaXRoUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBp
bnZva2U8aW50NjRfdD4odGVzdCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMg
PSBpbnZva2U8Q0NhbGxJbnQ2ND4odGVzdCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRf
dCByaHMgPSBuIF4gfihtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhz
LCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjMwMCw3ICsyMzA2LDcgQEAgdm9pZCB0ZXN0WG9y
Tm90V2l0aFVuc2lnbmVkUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDY0X3QgbGhz
ID0gaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50NjRf
dCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIG4sIG0pOwogICAgICAgICAgICAgICAg
IHVpbnQ2NF90IHJocyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSBeIH4oc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCBy
aHMpOwogICAgICAgICAgICAgfQpAQCAtMjMyNSw3ICsyMzMxLDcgQEAgdm9pZCB0ZXN0U3RvcmVQ
cmVQb3N0SW5kZXgzMigpCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwog
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9r
ZTxpbnRwdHJfdD4oc3RvcmUsIHNyYywgYWRkcik7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0Nh
bGxJbnRwdHI+KHN0b3JlLCBzcmMsIGFkZHIpOwogICAgIH07CiAKICAgICBpbnQzMl90KiBwMSA9
IGJpdHdpc2VfY2FzdDxpbnQzMl90Kj4odGVzdDEoNCkpOwpAQCAtMjM0Myw3ICsyMzQ5LDcgQEAg
dm9pZCB0ZXN0U3RvcmVQcmVQb3N0SW5kZXgzMigpCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICAg
ICAgcmV0dXJuIGludm9rZTxpbnRwdHJfdD4oc3RvcmUsIHNyYywgYWRkcik7CisgICAgICAgIHJl
dHVybiBpbnZva2U8Q0NhbGxJbnRwdHI+KHN0b3JlLCBzcmMsIGFkZHIpOwogICAgIH07CiAKICAg
ICBpbnQzMl90KiBwMiA9IGJpdHdpc2VfY2FzdDxpbnQzMl90Kj4odGVzdDIoNSkpOwpAQCAtMjM2
OCw3ICsyMzc0LDcgQEAgdm9pZCB0ZXN0U3RvcmVQcmVQb3N0SW5kZXg2NCgpCiAgICAgICAgICAg
ICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnRwdHJfdD4oc3RvcmUsIHNyYywgYWRk
cik7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnRwdHI+KHN0b3JlLCBzcmMsIGFkZHIp
OwogICAgIH07CiAKICAgICBpbnQ2NF90KiBwMSA9IGJpdHdpc2VfY2FzdDxpbnQ2NF90Kj4odGVz
dDEoNCkpOwpAQCAtMjM4Niw3ICsyMzkyLDcgQEAgdm9pZCB0ZXN0U3RvcmVQcmVQb3N0SW5kZXg2
NCgpCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnRwdHJfdD4o
c3RvcmUsIHNyYywgYWRkcik7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnRwdHI+KHN0
b3JlLCBzcmMsIGFkZHIpOwogICAgIH07CiAKICAgICBpbnQ2NF90KiBwMiA9IGJpdHdpc2VfY2Fz
dDxpbnQ2NF90Kj4odGVzdDIoNSkpOwpAQCAtMjQxMSw3ICsyNDE3LDcgQEAgdm9pZCB0ZXN0TG9h
ZFByZVBvc3RJbmRleDMyKCkKICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgICAgICByZXR1cm4gaW52
b2tlPGludDMyX3Q+KGxvYWQsICZudW1zWzFdKTsKKyAgICAgICAgcmV0dXJuIGludm9rZTxDQ2Fs
bEludDMyPihsb2FkLCAmbnVtc1sxXSk7CiAgICAgfTsKIAogICAgIENIRUNLX0VRKHRlc3QxKDQp
LCAzKTsKQEAgLTI0MjksNyArMjQzNSw3IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXgzMigp
CiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0
LnJldCgpOwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnQzMl90Pihsb2Fk
LCAmbnVtc1sxXSk7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnQzMj4obG9hZCwgJm51
bXNbMV0pOwogICAgIH07CiAKICAgICBDSEVDS19FUSh0ZXN0Mig1KSwgMik7CkBAIC0yNDUzLDcg
KzI0NTksNyBAQCB2b2lkIHRlc3RMb2FkUHJlUG9zdEluZGV4NjQoKQogICAgICAgICAgICAgZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgICAgIHJldHVybiBpbnZva2U8aW50NjRfdD4obG9hZCwgJm51bXNbMV0pOworICAg
ICAgICByZXR1cm4gaW52b2tlPENDYWxsSW50NjQ+KGxvYWQsICZudW1zWzFdKTsKICAgICB9Owog
CiAgICAgQ0hFQ0tfRVEodGVzdDEoNCksIDMpOwpAQCAtMjQ3MSw3ICsyNDc3LDcgQEAgdm9pZCB0
ZXN0TG9hZFByZVBvc3RJbmRleDY0KCkKICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KGppdCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgICAgICByZXR1
cm4gaW52b2tlPGludDY0X3Q+KGxvYWQsICZudW1zWzFdKTsKKyAgICAgICAgcmV0dXJuIGludm9r
ZTxDQ2FsbEludDY0Pihsb2FkLCAmbnVtc1sxXSk7CiAgICAgfTsKIAogICAgIENIRUNLX0VRKHRl
c3QyKDUpLCAyKTsKQEAgLTI0OTYsNyArMjUwMiw3IEBAIHZvaWQgdGVzdEFuZExlZnRTaGlmdDMy
KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwog
Ci0gICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4oYW5kMzIsIG4s
IG0pOworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KGFu
ZDMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gJiAobSA8PCBhbW91
bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0K
QEAgLTI1MjIsNyArMjUyOCw3IEBAIHZvaWQgdGVzdEFuZFJpZ2h0U2hpZnQzMigpCiAgICAgICAg
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAg
ICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KGFuZDMyLCBuLCBtKTsKKyAgICAg
ICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPihhbmQzMiwgbiwgbSk7
CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMgPSBuICYgKG0gPj4gYW1vdW50KTsKICAgICAg
ICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNTQ4LDcg
KzI1NTQsNyBAQCB2b2lkIHRlc3RBbmRVbnNpZ25lZFJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAg
ICAgIHVpbnQzMl90IGxocyA9IGludm9rZTx1aW50MzJfdD4oYW5kMzIsIG4sIG0pOworICAgICAg
ICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQzMj4oYW5kMzIsIG4sIG0p
OwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pihu
KSAmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obSkgPj4gYW1vdW50KTsKICAgICAgICAgICAgICAg
ICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNTc0LDcgKzI1ODAsNyBA
QCB2b2lkIHRlc3RBbmRMZWZ0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0g
aW52b2tlPGludDY0X3Q+KGFuZDY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxo
cyA9IGludm9rZTxDQ2FsbEludDY0PihhbmQ2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50
NjRfdCByaHMgPSBuICYgKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShs
aHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNjAwLDcgKzI2MDYsNyBAQCB2b2lkIHRlc3RB
bmRSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
ICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2
NF90PihhbmQ2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8
Q0NhbGxJbnQ2ND4oYW5kNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0X3QgcmhzID0g
biAmIChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwog
ICAgICAgICAgICAgfQpAQCAtMjYyNiw3ICsyNjMyLDcgQEAgdm9pZCB0ZXN0QW5kVW5zaWduZWRS
aWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAg
ICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8dWludDY0
X3Q+KGFuZDY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8
Q0NhbGxVSW50NjQ+KGFuZDY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICB1aW50NjRfdCByaHMg
PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4obikgJiAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pID4+
IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAg
ICAgfQpAQCAtMjY1Miw3ICsyNjU4LDcgQEAgdm9pZCB0ZXN0WG9yTGVmdFNoaWZ0MzIoKQogICAg
ICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAg
ICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90Pih4b3IzMiwgbiwgbSk7Cisg
ICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4oeG9yMzIsIG4s
IG0pOwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiBeIChtIDw8IGFtb3VudCk7CiAg
ICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjY3
OCw3ICsyNjg0LDcgQEAgdm9pZCB0ZXN0WG9yUmlnaHRTaGlmdDMyKCkKICAgICAgICAgICAgICAg
ICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAg
aW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4oeG9yMzIsIG4sIG0pOworICAgICAgICAgICAg
ICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KHhvcjMyLCBuLCBtKTsKICAgICAg
ICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gXiAobSA+PiBhbW91bnQpOwogICAgICAgICAgICAg
ICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI3MDQsNyArMjcxMCw3
IEBAIHZvaWQgdGVzdFhvclVuc2lnbmVkUmlnaHRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWlu
dDMyX3QgbGhzID0gaW52b2tlPHVpbnQzMl90Pih4b3IzMiwgbiwgbSk7CisgICAgICAgICAgICAg
ICAgdWludDMyX3QgbGhzID0gaW52b2tlPENDYWxsVUludDMyPih4b3IzMiwgbiwgbSk7CiAgICAg
ICAgICAgICAgICAgdWludDMyX3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG4pIF4gKHN0
YXRpY19jYXN0PHVpbnQzMl90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNL
X0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI3MzAsNyArMjczNiw3IEBAIHZvaWQg
dGVzdFhvckxlZnRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8
aW50NjRfdD4oeG9yNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52
b2tlPENDYWxsSW50NjQ+KHhvcjY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IHJo
cyA9IG4gXiAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhz
KTsKICAgICAgICAgICAgIH0KQEAgLTI3NTYsNyArMjc2Miw3IEBAIHZvaWQgdGVzdFhvclJpZ2h0
U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAg
ICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KHhv
cjY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbElu
dDY0Pih4b3I2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuIF4gKG0g
Pj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAg
ICAgICB9CkBAIC0yNzgyLDcgKzI3ODgsNyBAQCB2b2lkIHRlc3RYb3JVbnNpZ25lZFJpZ2h0U2hp
ZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9
KTsKIAotICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTx1aW50NjRfdD4oeG9y
NjQsIG4sIG0pOworICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJ
bnQ2ND4oeG9yNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihuKSBeIChzdGF0aWNfY2FzdDx1aW50NjRfdD4obSkgPj4gYW1vdW50
KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBA
IC0yODA4LDcgKzI4MTQsNyBAQCB2b2lkIHRlc3RPckxlZnRTaGlmdDMyKCkKICAgICAgICAgICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAg
ICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4ob3IzMiwgbiwgbSk7CisgICAgICAgICAg
ICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4ob3IzMiwgbiwgbSk7CiAgICAg
ICAgICAgICAgICAgaW50MzJfdCByaHMgPSBuIHwgKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAg
ICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yODM0LDcgKzI4NDAs
NyBAQCB2b2lkIHRlc3RPclJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDMyX3QgbGhz
ID0gaW52b2tlPGludDMyX3Q+KG9yMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDMyX3Qg
bGhzID0gaW52b2tlPENDYWxsSW50MzI+KG9yMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIGlu
dDMyX3QgcmhzID0gbiB8IChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEo
bGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjg2MCw3ICsyODY2LDcgQEAgdm9pZCB0ZXN0
T3JVbnNpZ25lZFJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGlu
dm9rZTx1aW50MzJfdD4ob3IzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWludDMyX3QgbGhz
ID0gaW52b2tlPENDYWxsVUludDMyPihvcjMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICB1aW50
MzJfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obikgfCAoc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwog
ICAgICAgICAgICAgfQpAQCAtMjg4Niw3ICsyODkyLDcgQEAgdm9pZCB0ZXN0T3JMZWZ0U2hpZnQ2
NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsK
IAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KG9yNjQsIG4s
IG0pOworICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KG9y
NjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0X3QgcmhzID0gbiB8IChtIDw8IGFtb3Vu
dCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpA
QCAtMjkxMiw3ICsyOTE4LDcgQEAgdm9pZCB0ZXN0T3JSaWdodFNoaWZ0NjQoKQogICAgICAgICAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAg
ICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2NF90PihvcjY0LCBuLCBtKTsKKyAgICAgICAg
ICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0PihvcjY0LCBuLCBtKTsKICAg
ICAgICAgICAgICAgICBpbnQ2NF90IHJocyA9IG4gfCAobSA+PiBhbW91bnQpOwogICAgICAgICAg
ICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI5MzgsNyArMjk0
NCw3IEBAIHZvaWQgdGVzdE9yVW5zaWduZWRSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1
aW50NjRfdCBsaHMgPSBpbnZva2U8dWludDY0X3Q+KG9yNjQsIG4sIG0pOworICAgICAgICAgICAg
ICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4ob3I2NCwgbiwgbSk7CiAgICAg
ICAgICAgICAgICAgdWludDY0X3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG4pIHwgKHN0
YXRpY19jYXN0PHVpbnQ2NF90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNL
X0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI5ODQsNyArMjk5MCw3IEBAIHZvaWQg
dGVzdENvbXBhcmVGbG9hdChNYWNyb0Fzc2VtYmxlcjo6RG91YmxlQ29uZGl0aW9uIGNvbmRpdGlv
bikKICAgICAgICAgZm9yIChhdXRvIGIgOiBvcGVyYW5kcykgewogICAgICAgICAgICAgYXJnMSA9
IGE7CiAgICAgICAgICAgICBhcmcyID0gYjsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxp
bnQ+KGNvbXBhcmVGbG9hdCksIGludm9rZTxpbnQ+KGNvbXBhcmVGbG9hdEdlbmVyaWMpKTsKKyAg
ICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPihjb21wYXJlRmxvYXQpLCBpbnZv
a2U8Q0NhbGxJbnQzMj4oY29tcGFyZUZsb2F0R2VuZXJpYykpOwogICAgICAgICB9CiAgICAgfQog
fQpAQCAtMzAyOCwxMSArMzAzNCwxMyBAQCB2b2lkIHRlc3RNb3ZlQ29uZGl0aW9uYWxseUZsb2F0
aW5nUG9pbnQoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlvbiBjb25kaXRpbwogICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH07CiAKKyAgICB1c2luZyBSZXN1
bHRUeXBlID0gc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfaW50ZWdyYWxfdjxTZWxlY3Rpb25U
eXBlPiwgQ0NhbGxJbnRlZ2VyPFNlbGVjdGlvblR5cGU+LCBTZWxlY3Rpb25UeXBlPjsKKwogICAg
IGZvciAoYXV0byBhIDogb3BlcmFuZHMpIHsKICAgICAgICAgZm9yIChhdXRvIGIgOiBvcGVyYW5k
cykgewogICAgICAgICAgICAgYXJnMSA9IGE7CiAgICAgICAgICAgICBhcmcyID0gYjsKLSAgICAg
ICAgICAgIENIRUNLX0VRKGludm9rZTxTZWxlY3Rpb25UeXBlPih0ZXN0Q29kZSksIGV4cGVjdGVk
UmVzdWx0KGEsIGIpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxSZXN1bHRUeXBlPih0
ZXN0Q29kZSksIGV4cGVjdGVkUmVzdWx0KGEsIGIpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAg
LTM2MDEsOSArMzYwOSwxMSBAQCB2b2lkIHRlc3RNb3ZlQ29uZGl0aW9uYWxseUZsb2F0aW5nUG9p
bnRTYW1lQXJnKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24gYwogICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH07CiAKKyAgICB1c2luZyBSZXN1bHRUeXBl
ID0gc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfaW50ZWdyYWxfdjxTZWxlY3Rpb25UeXBlPiwg
Q0NhbGxJbnRlZ2VyPFNlbGVjdGlvblR5cGU+LCBTZWxlY3Rpb25UeXBlPjsKKwogICAgIGZvciAo
YXV0byBhIDogb3BlcmFuZHMpIHsKICAgICAgICAgYXJnMSA9IGE7Ci0gICAgICAgIENIRUNLX0VR
KGludm9rZTxTZWxlY3Rpb25UeXBlPih0ZXN0Q29kZSksIGV4cGVjdGVkUmVzdWx0KGEpKTsKKyAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPFJlc3VsdFR5cGU+KHRlc3RDb2RlKSwgZXhwZWN0ZWRSZXN1
bHQoYSkpOwogICAgIH0KIH0KIApAQCAtMzc3MCw3ICszNzgwLDcgQEAgdm9pZCB0ZXN0QXRvbWlj
U3Ryb25nQ0FTRmlsbDgoKQogICAgIHVpbnQ4X3QgZGF0YVtdID0gewogICAgICAgICAweGZmLCAw
eGZmLAogICAgIH07Ci0gICAgdWludDMyX3QgcmVzdWx0ID0gaW52b2tlPHVpbnQzMl90Pih0ZXN0
LCAweGZmZmZmZmZmZmZmZmZmZmZVTEwsIDAsIGRhdGEpOworICAgIHVpbnQzMl90IHJlc3VsdCA9
IGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgMHhmZmZmZmZmZmZmZmZmZmZmVUxMLCAwLCBkYXRh
KTsKICAgICBDSEVDS19FUShyZXN1bHQsIDB4ZmYpOwogICAgIENIRUNLX0VRKGRhdGFbMF0sIDAp
OwogICAgIENIRUNLX0VRKGRhdGFbMV0sIDB4ZmYpOwpAQCAtMzc5MSw3ICszODAxLDcgQEAgdm9p
ZCB0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDE2KCkKICAgICB1aW50MTZfdCBkYXRhW10gPSB7CiAg
ICAgICAgIDB4ZmZmZiwgMHhmZmZmLAogICAgIH07Ci0gICAgdWludDMyX3QgcmVzdWx0ID0gaW52
b2tlPHVpbnQzMl90Pih0ZXN0LCAweGZmZmZmZmZmZmZmZmZmZmZVTEwsIDAsIGRhdGEpOworICAg
IHVpbnQzMl90IHJlc3VsdCA9IGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgMHhmZmZmZmZmZmZm
ZmZmZmZmVUxMLCAwLCBkYXRhKTsKICAgICBDSEVDS19FUShyZXN1bHQsIDB4ZmZmZik7CiAgICAg
Q0hFQ0tfRVEoZGF0YVswXSwgMCk7CiAgICAgQ0hFQ0tfRVEoZGF0YVsxXSwgMHhmZmZmKTsKQEAg
LTQwNTEsNyArNDA2MSw3IEBAIHZvaWQgdGVzdFN1YjMyQXJnSW1tKCkKICAgICAgICAgfSk7CiAK
ICAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50MzJPcGVyYW5kcygpKQotICAgICAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0Nh
bGxVSW50MzI+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUgLSBpbW1l
ZGlhdGUpKTsKICAgICB9CiB9CiAKQEAgLTQ2ODQsMTEgKzQ2OTQsMTIgQEAgdm9pZCB0ZXN0UHJv
YmVQcmVzZXJ2ZXNHUFJTKCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgQ0hFQ0tfRVEoY3B1LmdwcihpZCksIHRlc3RXb3JkKGlkKSk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0RlBSZWdp
c3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7IGlkID0gbmV4dElE
KGlkKSkKKyAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RGUFJl
Z2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0
SUQoaWQpKSB7CiAjaWYgQ1BVKE1JUFMpCiAgICAgICAgICAgICAgICAgaWYgKCEoaWQgJiAxKSkK
ICNlbmRpZgogICAgICAgICAgICAgICAgIENIRUNLX0VRKGNwdS5mcHI8dWludDY0X3Q+KGlkKSwg
dGVzdFdvcmQ2NChpZCkpOworICAgICAgICAgICAgfQogICAgICAgICB9KTsKIAogICAgICAgICAv
LyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBzdGF0ZS4KQEAgLTUxMzEsOCArNTE0Miw4IEBAIHZvaWQg
dGVzdEJ5dGVTd2FwKCkKICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAg
ICAgaml0LnJldCgpOwogICAgIH0pOwotICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4oYnl0
ZVN3YXAxNiwgMHhhYWJiY2NkZGVlMDAxMTIyKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4MjIx
MSkpOwotICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4oYnl0ZVN3YXAxNiwgMHhhYWJiY2Nk
ZGVlMDBmZmFhKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4YWFmZikpOworICAgIENIRUNLX0VR
KGludm9rZTxDQ2FsbFVJbnQ2ND4oYnl0ZVN3YXAxNiwgMHhhYWJiY2NkZGVlMDAxMTIyKSwgc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KDB4MjIxMSkpOworICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJ
bnQ2ND4oYnl0ZVN3YXAxNiwgMHhhYWJiY2NkZGVlMDBmZmFhKSwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KDB4YWFmZikpOwogCiAgICAgYXV0byBieXRlU3dhcDMyID0gY29tcGlsZShbXSAoQ0NhbGxI
ZWxwZXJzJiBqaXQpIHsKICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKQEAgLTUx
NDEsOCArNTE1Miw4IEBAIHZvaWQgdGVzdEJ5dGVTd2FwKCkKICAgICAgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoaml0KTsKICAgICAgICAgaml0LnJldCgpOwogICAgIH0pOwotICAgIENIRUNLX0VR
KGludm9rZTx1aW50NjRfdD4oYnl0ZVN3YXAzMiwgMHhhYWJiY2NkZGVlMDAxMTIyKSwgc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KDB4MjIxMTAwZWUpKTsKLSAgICBDSEVDS19FUShpbnZva2U8dWludDY0
X3Q+KGJ5dGVTd2FwMzIsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2NF90
PigweGFhZmYwMGVlKSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0PihieXRlU3dh
cDMyLCAweGFhYmJjY2RkZWUwMDExMjIpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oMHgyMjExMDBl
ZSkpOworICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4oYnl0ZVN3YXAzMiwgMHhhYWJi
Y2NkZGVlMDBmZmFhKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4YWFmZjAwZWUpKTsKIAogICAg
IGF1dG8gYnl0ZVN3YXA2NCA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAg
ICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CkBAIC01MTUxLDggKzUxNjIsOCBAQCB2b2lk
IHRlc3RCeXRlU3dhcCgpCiAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAg
ICAgIGppdC5yZXQoKTsKICAgICB9KTsKLSAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KGJ5
dGVTd2FwNjQsIDB4YWFiYmNjZGRlZTAwMTEyMiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweDIy
MTEwMGVlZGRjY2JiYWEpKTsKLSAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KGJ5dGVTd2Fw
NjQsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweGFhZmYwMGVl
ZGRjY2JiYWEpKTsKKyAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KGJ5dGVTd2FwNjQs
IDB4YWFiYmNjZGRlZTAwMTEyMiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweDIyMTEwMGVlZGRj
Y2JiYWEpKTsKKyAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KGJ5dGVTd2FwNjQsIDB4
YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweGFhZmYwMGVlZGRjY2Ji
YWEpKTsKICNlbmRpZgogfQogCkBAIC01MjM2LDcgKzUyNDcsNyBAQCB2b2lkIHRlc3RMb2FkQmFz
ZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVp
bnQ2NF90IGFycmF5W10gPSB7IFVJTlQ2NF9NQVggLSAxLCBVSU5UNjRfTUFYIC0gMiwgVUlOVDY0
X01BWCAtIDMsIFVJTlQ2NF9NQVggLSA0LCBVSU5UNjRfTUFYIC0gNSwgfTsKLSAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lz
dGVyPigzKSksIFVJTlQ2NF9NQVggLSAzKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxs
VUludDY0Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQ2
NF9NQVggLSAzKTsKICAgICB9CiAgICAgewogICAgICAgICBhdXRvIHRlc3QgPSBjb21waWxlKFs9
XShDQ2FsbEhlbHBlcnMmIGppdCkgewpAQCAtNTI0Niw3ICs1MjU3LDcgQEAgdm9pZCB0ZXN0TG9h
ZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAg
ICB1aW50NjRfdCBhcnJheVtdID0geyBVSU5UNjRfTUFYIC0gMSwgVUlOVDY0X01BWCAtIDIsIFVJ
TlQ2NF9NQVggLSAzLCBVSU5UNjRfTUFYIC0gNCwgVUlOVDY0X01BWCAtIDUsIH07Ci0gICAgICAg
IENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVS
ZWdpc3Rlcj4oMykpLCBVSU5UNjRfTUFYIC0gNSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxD
Q2FsbFVJbnQ2ND4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBV
SU5UNjRfTUFYIC0gNSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTUyNTksNyArNTI3MCw3IEBAIHZv
aWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9
KTsKICAgICAgICAgdWludDMyX3QgYXJyYXlbXSA9IHsgVUlOVDMyX01BWCAtIDEsIFVJTlQzMl9N
QVggLSAyLCBVSU5UMzJfTUFYIC0gMywgVUlOVDMyX01BWCAtIDQsIFVJTlQzMl9NQVggLSA1LCB9
OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNf
Y2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDMyX01BWCAtIDMpOworICAgICAgICBDSEVDS19F
UShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0
ZXI+KDMpKSwgVUlOVDMyX01BWCAtIDMpOwogICAgIH0KICAgICB7CiAgICAgICAgIGF1dG8gdGVz
dCA9IGNvbXBpbGUoWz1dKENDYWxsSGVscGVycyYgaml0KSB7CkBAIC01MjY5LDcgKzUyODAsNyBA
QCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgfSk7CiAgICAgICAgIHVpbnQzMl90IGFycmF5W10gPSB7IFVJTlQzMl9NQVggLSAxLCBVSU5U
MzJfTUFYIC0gMiwgVUlOVDMyX01BWCAtIDMsIFVJTlQzMl9NQVggLSA0LCBVSU5UMzJfTUFYIC0g
NSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3Rh
dGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQzMl9NQVggLSA1KTsKKyAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJl
Z2lzdGVyPigzKSksIFVJTlQzMl9NQVggLSA1KTsKICAgICB9CiAKICAgICAvLyBsb2FkMTYKQEAg
LTUyODEsNyArNTI5Miw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDE2X3QgYXJyYXlbXSA9IHsgVUlO
VDE2X01BWCAtIDEsIFVJTlQxNl9NQVggLSAyLCBVSU5UMTZfTUFYIC0gMywgVUlOVDE2X01BWCAt
IDQsIFVJTlQxNl9NQVggLSA1LCB9OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+
KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDE2X01BWCAt
IDMpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBz
dGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDE2X01BWCAtIDMpOwogICAgIH0KICAg
ICB7CiAgICAgICAgIGF1dG8gdGVzdCA9IGNvbXBpbGUoWz1dKENDYWxsSGVscGVycyYgaml0KSB7
CkBAIC01MjkxLDcgKzUzMDIsNyBAQCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVpbnQxNl90IGFycmF5W10gPSB7
IFVJTlQxNl9NQVggLSAxLCBVSU5UMTZfTUFYIC0gMiwgVUlOVDE2X01BWCAtIDMsIFVJTlQxNl9N
QVggLSA0LCBzdGF0aWNfY2FzdDx1aW50MTZfdD4oLTEpLCB9OwotICAgICAgICBDSEVDS19FUShp
bnZva2U8dWludDMyX3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMp
KSwgMHhmZmZmKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBh
cnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIDB4ZmZmZik7CiAgICAgfQogCiAg
ICAgLy8gbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMgpAQCAtNTMwMyw3ICs1MzE0LDcgQEAgdm9pZCB0
ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwog
ICAgICAgICB1aW50MTZfdCBhcnJheVtdID0geyAxLCAyLCAweDdmZjMsIDQsIDUsIH07Ci0gICAg
ICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVD
UFVSZWdpc3Rlcj4oMykpLCAweDdmZjMpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxV
SW50MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgMHg3ZmYz
KTsKICAgICB9CiAgICAgewogICAgICAgICBhdXRvIHRlc3QgPSBjb21waWxlKFs9XShDQ2FsbEhl
bHBlcnMmIGppdCkgewpAQCAtNTMxMyw3ICs1MzI0LDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJbmRl
eCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAgICB1aW50MTZf
dCBhcnJheVtdID0geyBVSU5UMTZfTUFYIC0gMSwgVUlOVDE2X01BWCAtIDIsIFVJTlQxNl9NQVgg
LSAzLCBVSU5UMTZfTUFYIC0gNCwgc3RhdGljX2Nhc3Q8dWludDE2X3Q+KC0xKSwgfTsKLSAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQ
VVJlZ2lzdGVyPigzKSksIHN0YXRpY19jYXN0PHVpbnQzMl90PigtMSkpOworICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVn
aXN0ZXI+KDMpKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KC0xKSk7CiAgICAgfQogCiAgICAgLy8g
bG9hZDgKQEAgLTUzMjUsNyArNTMzNiw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDhfdCBhcnJheVtd
ID0geyBVSU5UOF9NQVggLSAxLCBVSU5UOF9NQVggLSAyLCBVSU5UOF9NQVggLSAzLCBVSU5UOF9N
QVggLSA0LCBVSU5UOF9NQVggLSA1LCB9OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMy
X3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDhfTUFY
IC0gMyk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgYXJyYXks
IHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBVSU5UOF9NQVggLSAzKTsKICAgICB9CiAg
ICAgewogICAgICAgICBhdXRvIHRlc3QgPSBjb21waWxlKFs9XShDQ2FsbEhlbHBlcnMmIGppdCkg
ewpAQCAtNTMzNSw3ICs1MzQ2LDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAgICB1aW50OF90IGFycmF5W10gPSB7
IFVJTlQ4X01BWCAtIDEsIFVJTlQ4X01BWCAtIDIsIFVJTlQ4X01BWCAtIDMsIFVJTlQ4X01BWCAt
IDQsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KC0xKSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIDB4
ZmYpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBz
dGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgMHhmZik7CiAgICAgfQogCiAgICAgLy8gbG9h
ZDhTaWduZWRFeHRlbmRUbzMyCkBAIC01MzQ3LDcgKzUzNTgsNyBAQCB2b2lkIHRlc3RMb2FkQmFz
ZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVp
bnQ4X3QgYXJyYXlbXSA9IHsgMSwgMiwgMHg3MywgNCwgNSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigz
KSksIDB4NzMpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFy
cmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgMHg3Myk7CiAgICAgfQogICAgIHsK
ICAgICAgICAgYXV0byB0ZXN0ID0gY29tcGlsZShbPV0oQ0NhbGxIZWxwZXJzJiBqaXQpIHsKQEAg
LTUzNTcsNyArNTM2OCw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDhfdCBhcnJheVtdID0geyBVSU5U
OF9NQVggLSAxLCBVSU5UOF9NQVggLSAyLCBVSU5UOF9NQVggLSAzLCBVSU5UOF9NQVggLSA0LCBz
dGF0aWNfY2FzdDx1aW50OF90PigtMSksIH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50
MzJfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oLTEpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMy
Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIHN0YXRpY19jYXN0
PHVpbnQzMl90PigtMSkpOwogICAgIH0KIAogICAgIC8vIGxvYWREb3VibGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDQxZjRiZDMxZjgxMzQ1MjRl
ZmNhNjZiYWNmNGQwODVmNTJjYWIyMDMuLmJkNjIwYTZmYjg5MWZiYjEzNTIyYzIzOThjODc5MGI5
M2U5NWIyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cApAQCAtNDAwLDcgKzQwMCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25P
YmplY3RBc3NpZ25VbnR5cGVkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgb2JqZWN0
QXNzaWduR2VuZXJpYyhnbG9iYWxPYmplY3QsIHZtLCB0YXJnZXQsIHNvdXJjZSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVUaGlzLCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCB1aW50MzJf
dCBpbmxpbmVDYXBhY2l0eSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlVGhpcywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBjb25zdHJ1Y3RvciwgQ0NhbGxVSW50MzIgaW5saW5lQ2FwYWNpdHkpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03NjAsNyArNzYwLDcgQEAgQUxXQVlTX0lOTElORSBFbmNv
ZGVkSlNWYWx1ZSBnZXRCeVZhbENlbGxJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Vk0mIHYKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoYmFzZSkuZ2V0KGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluZGV4KSkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RJbnQsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIGludDMyX3Qg
aW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0
SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBiYXNlLCBDQ2FsbEludDMyIGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtNzY5LDcgKzc2OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeVZhbE9iamVjdEludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgcmV0
dXJuIGdldEJ5VmFsQ2VsbEludChnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBpbmRleCk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbFN0cmluZ0ludCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYmFz
ZSwgaW50MzJfdCBpbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlWYWxTdHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNTdHJpbmcqIGJhc2UsIENDYWxsSW50MzIgaW5kZXgpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC04NTgsNyArODU4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2IKICAgICBwdXRCeVZhbENlbGxJbnRlcm5hbDxmYWxzZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwg
dm0sIGNlbGwsIHByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJh
eUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJv
dW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBvYmplY3QsIENDYWxsSW50MzIgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTg3NCw3ICs4NzQsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0
cmljdCwgdm9pZCwgKEpTR2xvYgogICAgICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRp
Zmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xv
dCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9u
ZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9u
ZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtODkwLDcgKzg5
MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFy
cmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHCiAgICAgICAgIG9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBkb3VibGUg
dmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbEludDMyIGluZGV4LCBkb3VibGUgdmFsdWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC05MDgsNyArOTA4LDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3Vu
ZHNTdHJpY3QsIHZvaWQsICgKICAgICAgICAgb2JqZWN0LCBnbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVj
dCwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgQ0NhbGxJ
bnQzMiBpbmRleCwgZG91YmxlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtOTI2LDcgKzkyNiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkCiAgICAgICAgIG9i
amVjdCwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIGpzVmFsdWUs
IHNsb3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91Ymxl
QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2
YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxE
aXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsSW50MzIgaW5kZXgsIGRvdWJsZSB2YWx1
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTk0Myw3ICs5NDMsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlv
bmRBcnJheUJvdW5kc1N0cmljdCwgdgogICAgIENvbW1vblNsb3dQYXRoczo6cHV0RGlyZWN0V2l0
aFJlaWZ5KHZtLCBnbG9iYWxPYmplY3QsIG9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5k
ZXgpLCBqc1ZhbHVlLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90
IGluZGV4LCBkb3VibGUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbEludDMy
IGluZGV4LCBkb3VibGUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0xMDE2LDcgKzEwMTYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RDZWxsU3ltYm9sTm9uU3RyaWN0LCB2b2lkLCAoSlNHbAogICAgIHB1dEJ5VmFs
Q2VsbEludGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBjZWxsLCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0
LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNT
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2Jq
ZWN0LCBDQ2FsbEludDMyIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMDMwLDcgKzEwMzAsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5k
c1N0cmljdCwgdm9pZCwgKAogICAgIENvbW1vblNsb3dQYXRoczo6cHV0RGlyZWN0V2l0aFJlaWZ5
KHZtLCBnbG9iYWxPYmplY3QsIG9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVj
dCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRz
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTA2NSw3ICsxMDY1LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KGFycmF5LT5sZW5ndGgoKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXJyYXlQdXNoTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNBcnJheSogYXJyYXksIHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50
Q291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRp
cGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJy
YXkqIGFycmF5LCB2b2lkKiBidWZmZXIsIENDYWxsSW50MzIgZWxlbWVudENvdW50KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGFycmF5
LT5sZW5ndGgoKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJy
YXlQdXNoRG91YmxlTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNBcnJheSogYXJyYXksIHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50
Q291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJs
ZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIsIENDYWxsSW50MzIgZWxlbWVudENvdW50KSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTI4MCw3ICsxMjgwLDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3RyaW5nTm9SYWRpeCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2IKICAgICByZXR1cm4gcGFyc2VJbnRSZXN1bHQocGFyc2VJbnQo
dmlld1dpdGhTdHJpbmcudmlldywgMCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZywgaW50MzJfdCByYWRpeCkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZywgQ0NhbGxJ
bnQzMiByYWRpeCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEyOTMsNyAr
MTI5Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0cmlu
ZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHBhcnNlSW50UmVz
dWx0KHBhcnNlSW50KHZpZXdXaXRoU3RyaW5nLnZpZXcsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIGlu
dDMyX3QgcmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50
R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB2YWx1ZSwgQ0NhbGxJbnQzMiByYWRpeCkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTEzMDQsNyArMTMwNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplCiAgICAgfSk7CiB9CiAgICAgICAgIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblJlZ0V4cFRlc3RTdHJpbmcsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBKU1N0cmluZyogaW5wdXQpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcsIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHBPYmplY3Qq
IHJlZ0V4cE9iamVjdCwgSlNTdHJpbmcqIGlucHV0KSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC0xMzE1LDcgKzEzMTUsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdFN0cmluZywgc2l6ZV90
LCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiByZWdFeHBPYmplY3QtPnRlc3RJbmxp
bmUoZ2xvYmFsT2JqZWN0LCBpbnB1dCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25SZWdFeHBUZXN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3Vt
ZW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0LCBDQ2Fs
bFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhw
T2JqZWN0KiByZWdFeHBPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCiB7
CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApA
QCAtMTMzMSw3ICsxMzMxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJl
Z0V4cFRlc3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4g
cmVnRXhwT2JqZWN0LT50ZXN0SW5saW5lKGdsb2JhbE9iamVjdCwgaW5wdXQpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVyaWMsIHNpemVfdCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2Nv
cGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtMTQ5OSw3ICsxNDk5LDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdFhvckhlYXBCaWdJbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmln
SW50OjpiaXR3aXNlWG9yKGdsb2JhbE9iamVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVx
Q2VsbCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEs
IEpTQ2VsbCogb3AyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
U3RyaWN0RXFDZWxsLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTUwOCw3ICsxNTA4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0
KgogICAgIHJldHVybiBKU1ZhbHVlOjpzdHJpY3RFcXVhbEZvckNlbGxzKGdsb2JhbE9iamVjdCwg
b3AxLCBvcDIpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2FtZVZh
bHVlLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBhcmcxLCBFbmNvZGVkSlNWYWx1ZSBhcmcyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TYW1lVmFsdWUsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBhcmcxLCBFbmNvZGVkSlNWYWx1ZSBhcmcy
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTYwOSw3ICsxNjA5LDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHksIHNsb3Qp
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRo
aXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2MjEsNyArMTYyMSw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCoKICAgICBwdXRXaXRoVGhpczx0cnVlPihnbG9iYWxPYmplY3QsIGVuY29kZWRCYXNlLCBl
bmNvZGVkVGhpcywgZW5jb2RlZFZhbHVlLCBpZGVudCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWRXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2NjksNyArMTY2OSw3IEBA
IEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgZGVmaW5lRGF0YVByb3BlcnR5KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2CiAgICAgICAgIGJhc2UtPm1ldGhvZFRhYmxlKHZtKS0+
ZGVmaW5lT3duUHJvcGVydHkoYmFzZSwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3IsIHRydWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVm
aW5lRGF0YVByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNP
YmplY3QqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJv
cGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGVz
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTY4Miw3ICsxNjgyLDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICBkZWZpbmVEYXRhUHJvcGVydHkoZ2xvYmFsT2Jq
ZWN0LCB2bSwgYmFzZSwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KSwgYXR0cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
ZWZpbmVEYXRhUHJvcGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogYmFzZSwgSlNTdHJpbmcqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIGludDMyX3QgYXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEpTU3RyaW5nKiBwcm9wZXJ0eSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBDQ2FsbEludDMyIGF0dHJpYnV0ZXMpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjk1LDcgKzE2OTUsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nLCB2b2lkLCAo
SlNHbG9iYWxPYmplYwogICAgIGRlZmluZURhdGFQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBi
YXNlLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBhdHRyaWJ1
dGVzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQ
cm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJ
bXBsKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBDQ2FsbEludDMyIGF0
dHJpYnV0ZXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNzAzLDcgKzE3
MDMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3Bl
cnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbAogICAgIGRlZmluZURhdGFQcm9wZXJ0eShn
bG9iYWxPYmplY3QsIHZtLCBiYXNlLCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBwcm9wZXJ0eSks
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBhdHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN5bWJvbCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBTeW1ib2wq
IHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgYXR0cmlidXRl
cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5
U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJh
c2UsIFN5bWJvbCogcHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxJ
bnQzMiBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTcy
MSw3ICsxNzIxLDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBkZWZpbmVBY2Nlc3NvclBy
b3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFYKICAgICAgICAgYmFzZS0+bWV0
aG9kVGFibGUodm0pLT5kZWZpbmVPd25Qcm9wZXJ0eShiYXNlLCBnbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvciwgdHJ1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9w
ZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1
dGVzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclBy
b3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNP
YmplY3QqIHNldHRlciwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTczMyw3ICsxNzMzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9iamVj
dCoKICAgICBkZWZpbmVBY2Nlc3NvclByb3BlcnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIHBy
b3BlcnR5TmFtZSwgZ2V0dGVyLCBzZXR0ZXIsIGF0dHJpYnV0ZXMpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBKU1N0cmlu
ZyogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIGludDMyX3Qg
YXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNj
ZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiBiYXNlLCBKU1N0cmluZyogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpT
T2JqZWN0KiBzZXR0ZXIsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTE3NDUsNyArMTc0NSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9i
YWxPCiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBw
cm9wZXJ0eU5hbWUsIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVu
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBV
bmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBz
ZXR0ZXIsIGludDMyX3QgYXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBw
cm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgQ0NhbGxJbnQzMiBh
dHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTc1Myw3ICsx
NzUzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29y
UHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2wKICAgICBkZWZpbmVBY2Nlc3NvclByb3Bl
cnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIElkZW50aWZpZXI6OmZyb21VaWQodm0sIHByb3Bl
cnR5KSwgZ2V0dGVyLCBzZXR0ZXIsIGF0dHJpYnV0ZXMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBTeW1ib2wqIHByb3Bl
cnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0
ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJv
cGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogYmFzZSwgU3ltYm9sKiBwcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNl
dHRlciwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTc2MSw3ICsxNzYxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE8KICAgICBk
ZWZpbmVBY2Nlc3NvclByb3BlcnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIElkZW50aWZpZXI6
OmZyb21VaWQocHJvcGVydHktPnByaXZhdGVOYW1lKCkpLCBnZXR0ZXIsIHNldHRlciwgYXR0cmli
dXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3Ry
dWN0dXJlLCB2b2lkKiBidWZmZXIsIHNpemVfdCBzaXplKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBcnJheSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCB2b2lkKiBidWZmZXIsIENDYWxsU2l6ZSBz
aXplKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTc4MCw3ICsxNzgwLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0VtcHR5QXJyYXksIGNoYXIq
LCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXIKICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGNoYXIq
PihKU0FycmF5OjpjcmVhdGUodm0sIGFycmF5U3RydWN0dXJlKSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIGludDMyX3Qg
c2l6ZSwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld0FycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgQ0NhbGxJbnQzMiBzaXplLCBCdXR0ZXJm
bHkqIGJ1dHRlcmZseSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4MDUs
NyArMTgwNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdp
dGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxjaGFyKj4ocmVzdWx0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld0FycmF5V2l0aFNpemVBbmRIaW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIGludDMyX3Qgc2l6ZSwgaW50MzJf
dCB2ZWN0b3JMZW5ndGhIaW50LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFuZEhpbnQsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgQ0Nh
bGxJbnQzMiBzaXplLCBDQ2FsbEludDMyIHZlY3Rvckxlbmd0aEhpbnQsIEJ1dHRlcmZseSogYnV0
dGVyZmx5KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg0NCw3ICsxODQ0
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5QnVmZmVyLCBK
U0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aFNpemUsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGludHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBj
aGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xODYwLDcg
KzE4NjAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5
V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsTwogICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRz
PEpTSW50OEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBz
dGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0ludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0xODc2LDcgKzE4NzYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3SW50MTZBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2Jh
bAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlw
ZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTSW50MTZBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90
IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdJbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0aCwgY2hhciogdmVj
dG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg5Miw3ICsxODkyLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoT25l
QXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWwKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0ludDMy
QXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVs
bG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhB
cnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhTaXplLCBjaGFyKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2Fs
bEludHB0ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTE5MDgsNyArMTkwOCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdVaW50OEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsCiAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5
Vmlld1dpdGhBcmd1bWVudHM8SlNVaW50OEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwg
ZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90
IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBsZW5ndGgsIGNo
YXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5MjQsNyAr
MTkyNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OENsYW1w
ZWRBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8
SlNVaW50OENsYW1wZWRBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1
ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdVaW50MTZBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZl
Y3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2QXJyYXlX
aXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xOTQwLDcgKzE5NDAsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIq
LCAoSlNHbG9iYQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RH
ZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWludDE2QXJyYXk+KGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk5ld1VpbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0
aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTk1
Niw3ICsxOTU2LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQz
MkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmEKICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3Vt
ZW50czxKU1VpbnQzMkFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVl
LCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZl
Y3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQzMkFycmF5
V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTk3Miw3ICsxOTcyLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hh
ciosIChKU0dsb2IKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0
R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0Zsb2F0MzJBcnJheT4oZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBs
ZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTE5ODgsNyArMTk4OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdG
bG9hdDY0QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iCiAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhB
cmd1bWVudHM8SlNGbG9hdDY0QXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVk
VmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3QmlnSW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNo
YXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnSW50
NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdJbnQ2NEFycmF5V2l0aE9uZUFyZ3Vt
ZW50LCBjaGFyKiwgKEpTR2xvCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNv
bnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNCaWdJbnQ2NEFycmF5
PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQp
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ1VpbnQ2NEFy
cmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdVaW50NjRBcnJheVdpdGhTaXplLCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBD
Q2FsbEludHB0ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTIwNTcsMTMgKzIwNTcsMTMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJlY3QsIEpTQ2VsbCosIChWTSogdm1Qb2ludGUK
ICAgICByZXR1cm4gSlNMZXhpY2FsRW52aXJvbm1lbnQ6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCBz
Y29wZSwgdGFibGUsIGluaXRpYWxWYWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHMsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVy
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBtaW5DYXBh
Y2l0eSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJn
dW1lbnRzLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEND
YWxsVUludDMyIGxlbmd0aCwgQ0NhbGxVSW50MzIgbWluQ2FwYWNpdHkpKQogewogICAgIFZNJiB2
bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKICAgICBEaXJlY3RBcmd1bWVudHMqIHJlc3VsdCA9IERpcmVjdEFy
Z3VtZW50czo6Y3JlYXRlKAotICAgICAgICB2bSwgc3RydWN0dXJlLCBsZW5ndGgsIHN0ZDo6bWF4
KGxlbmd0aCwgbWluQ2FwYWNpdHkpKTsKKyAgICAgICAgdm0sIHN0cnVjdHVyZSwgbGVuZ3RoLCBz
dGQ6Om1heDx1aW50MzJfdD4obGVuZ3RoLCBtaW5DYXBhY2l0eSkpOwogICAgIC8vIFRoZSBjYWxs
ZXIgd2lsbCBzdG9yZSB0byB0aGlzIG9iamVjdCB3aXRob3V0IGJhcnJpZXJzLiBNb3N0IGxpa2Vs
eSwgYXQgdGhpcyBwb2ludCwgdGhpcyBpcwogICAgIC8vIHN0aWxsIGEgeW91bmcgb2JqZWN0IGFu
ZCBzbyBubyBiYXJyaWVycyBhcmUgbmVlZGVkLiBCdXQgaXQncyBnb29kIHRvIGJlIGNhcmVmdWwg
YW55d2F5LAogICAgIC8vIHNpbmNlIHRoZSBHQyBzaG91bGQgYmUgYWxsb3dlZCB0byBkbyBjcmF6
eSAobGlrZSBwcmV0ZW51cmluZywgZm9yIGV4YW1wbGUpLgpAQCAtMjA3MSw3ICsyMDcxLDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50cywg
SlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJl
Z2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxl
ZSwgSlNMZXhpY2FsRW52aXJvbm1lbnQqIHNjb3BlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DcmVhdGVTY29wZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3VtZW50
U3RhcnQsIENDYWxsVUludDMyIGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlLCBKU0xleGljYWxF
bnZpcm9ubWVudCogc2NvcGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
MDg1LDcgKzIwODUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRl
U2NvcGVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplYwogICAgICAgICB2bSwgc3Ry
dWN0dXJlLCBhcmd1bWVudFN0YXJ0LCBsZW5ndGgsIGNhbGxlZSwgdGFibGUsIHNjb3BlKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50
cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0
aW9uKiBjYWxsZWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNs
b25lZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgQ0NhbGxVSW50MzIg
bGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yMDk0LDcgKzIwOTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplYwogICAgICAg
ICBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgYXJndW1lbnRTdGFydCwgbGVuZ3RoLCBjYWxsZWUp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRz
QnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0
ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBD
Q2FsbFVJbnQzMiBhcmd1bWVudENvdW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjExMSw3ICsyMTExLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2IKICAgICByZXR1
cm4gYnV0dGVyZmx5OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIElu
bGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIHVpbnQz
Ml90IGFyZ3VtZW50Q291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNy
ZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBJ
bmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSwgSlNGdW5jdGlvbiogY2FsbGVlLCBDQ2Fs
bFVJbnQzMiBhcmd1bWVudENvdW50KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxNDEs
NyArMjE0MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJl
Y3RBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3Vt
ZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBJbmxpbmVDYWxsRnJhbWUq
IGlubGluZUNhbGxGcmFtZSwgSlNGdW5jdGlvbiogY2FsbGVlLCB1aW50MzJfdCBhcmd1bWVudENv
dW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1
bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgSW5saW5lQ2FsbEZyYW1l
KiBpbmxpbmVDYWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNhbGxlZSwgQ0NhbGxVSW50MzIgYXJndW1l
bnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTcwLDcgKzIxNzAsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVy
aW5nRXhpdCwgSlNDZWxsKiwgKFZNKgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVuc2lnbmVkIG51
bWJlck9mUGFyYW1zVG9Ta2lwLCB1bnNpZ25lZCBhcnJheVNpemUpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVJlc3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgQ0NhbGxVSW50MzIgbnVtYmVy
T2ZQYXJhbXNUb1NraXAsIENDYWxsVUludDMyIGFycmF5U2l6ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTIxODIsNyArMjE4Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iCiAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBh
cmd1bWVudHNUb0NvcHlSZWdpb24sIGFycmF5U2l6ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc09iamVjdCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblR5cGVPZklzT2JqZWN0LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yMTkzLDcgKzIxOTMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVHlwZU9mSXNPYmplY3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYQogICAgIHJldHVybiBqc1R5cGVvZklzT2JqZWN0KGdsb2JhbE9iamVjdCwgb2JqZWN0KTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklzRnVuY3Rpb24s
IHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc0Z1bmN0aW9uLCBDQ2Fs
bFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBvYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMjA0LDcgKzIy
MDQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mSXNGdW5jdGlv
biwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBqc1R5cGVvZklzRnVu
Y3Rpb24oZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uT2JqZWN0SXNDYWxsYWJsZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk9iamVjdElzQ2FsbGFibGUsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTIyMTUsNyArMjIxNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25PYmplY3RJc0NhbGxhYmxlLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvCiAgICAgcmV0dXJuIG9iamVjdC0+aXNDYWxsYWJsZSh2bSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Jc0NvbnN0cnVjdG9yLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSXNDb25zdHJ1Y3RvciwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlw
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjI0OSw3ICsyMjQ5LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9y
YWdlV2l0aEluaXRpYWxDYXBhY2kKICAgICAgICAgQnV0dGVyZmx5OjpjcmVhdGVVbmluaXRpYWxp
emVkKHZtLCBudWxscHRyLCAwLCBpbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHksIGZhbHNlLCAwKSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVBy
b3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBzaXplX3QgbmV3U2l6ZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0
b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxTaXplIG5ld1NpemUpKQogewogICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMjI3MCw3ICsyMjcwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFs
Q2FwYWMKICAgICAgICAgb2JqZWN0LT5hbGxvY2F0ZU1vcmVPdXRPZkxpbmVTdG9yYWdlKHZtLCAw
LCBpbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSog
dm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlLCBj
aGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsU2l6ZSBuZXdTaXpl
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzMzYsNyArMjMzNiw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnN1cmVBcnJheVN0b3JhZ2UsIGNoYXIqLCAoVk0q
IHZtUG9pbnRlciwgSlNDCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlQ2VsbCwgaW50MzJfdCBzdWJzY3JpcHQp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwg
Q0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogYmFzZUNlbGwsIENDYWxsSW50MzIgc3Vic2NyaXB0KSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMjM0OSw3ICsyMzQ5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3Qq
IGcKICAgICByZXR1cm4gb2JqZWN0LT5oYXNQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihzdWJzY3JpcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkhhc0VudW1lcmFibGVJbmRleGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZUNlbGwsIGludDMyX3Qgc3Vic2NyaXB0
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNFbnVtZXJhYmxlSW5kZXhl
ZFByb3BlcnR5LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBiYXNlQ2VsbCwgQ0NhbGxJbnQzMiBzdWJzY3JpcHQpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMzkyLDE3ICsyMzkyLDE4IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3JDZWxsLCBKU0Nl
bGwqLCAoSlNHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBwcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yKGdsb2JhbE9iamVjdCwgYmFzZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
YmFzZVZhbHVlLCB1aW50MzJfdCBpbmRleCwgaW50MzJfdCBtb2RlTnVtYmVyLCBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlSW5kZXhBbmRNb2RlLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwg
Q0NhbGxVSW50MzIgaW5kZXgsIENDYWxsSW50MzIgbW9kZU51bWJlciwgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKKyAgICB1
aW50MzJfdCBpbmRleFZhbHVlID0gaW5kZXg7CiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
OjpGbGFnIG1vZGUgPSBzdGF0aWNfY2FzdDxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkZsYWc+
KG1vZGVOdW1iZXIpOwogICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUoYmFzZVZhbHVlKS5pc1VuZGVm
aW5lZE9yTnVsbCgpKSB7CiAgICAgICAgIEFTU0VSVChtb2RlID09IEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcjo6SW5pdE1vZGUpOwotICAgICAgICBBU1NFUlQoIWluZGV4KTsKKyAgICAgICAgQVNT
RVJUKCFpbmRleFZhbHVlKTsKICAgICAgICAgQVNTRVJUKCFlbnVtZXJhdG9yLT5zaXplT2ZQcm9w
ZXJ0eU5hbWVzKCkpOwogICAgICAgICBtb2RlID0gSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpH
ZW5lcmljTW9kZTsKICAgICB9IGVsc2UgewpAQCAtMjQxMCwyNyArMjQxMSwyNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1v
ZGUsIEVuY29kZWRKU1ZhbAogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwogCiAgICAgICAgIGNvbnN0ZXhwciBib29sIHNob3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJp
bmcgPSBmYWxzZTsKLSAgICAgICAgZW51bWVyYXRvci0+Y29tcHV0ZU5leHQoZ2xvYmFsT2JqZWN0
LCBiYXNlLCBpbmRleCwgbW9kZSwgc2hvdWxkQWxsb2NhdGVJbmRleGVkTmFtZVN0cmluZyk7Cisg
ICAgICAgIGVudW1lcmF0b3ItPmNvbXB1dGVOZXh0KGdsb2JhbE9iamVjdCwgYmFzZSwgaW5kZXhW
YWx1ZSwgbW9kZSwgc2hvdWxkQWxsb2NhdGVJbmRleGVkTmFtZVN0cmluZyk7CiAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgfQogCiAjaWYgVVNFKEpTVkFMVUU2
NCkKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDxKU1ZhbHVlPihzdGF0aWNfY2Fz
dDx1aW50NjRfdD4obW9kZSkgPDwgMzIgfCBpbmRleCB8IEpTVmFsdWU6OkRvdWJsZUVuY29kZU9m
ZnNldCk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8SlNWYWx1ZT4oc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KG1vZGUpIDw8IDMyIHwgaW5kZXhWYWx1ZSB8IEpTVmFsdWU6OkRvdWJs
ZUVuY29kZU9mZnNldCk7CiAjZWxzZQotICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZShtb2Rl
LCBpbmRleCk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVlKG1vZGUsIGluZGV4VmFsdWUp
OwogI2VuZGlmCiAgICAgQVNTRVJUKHJlc3VsdC5pc0RvdWJsZSgpKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNTdHJpbmcqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdWludDMyX3QgaW5kZXgsIGludDMyX3QgbW9kZU51bWJl
ciwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNT
dHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ0NhbGxVSW50MzIgaW5kZXgs
IENDYWxsSW50MzIgbW9kZU51bWJlciwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJh
dG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKIAogICAgIGlmICht
b2RlTnVtYmVyID09IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SW5kZXhlZE1vZGUpIHsKLSAg
ICAgICAgaWYgKGluZGV4IDwgZW51bWVyYXRvci0+aW5kZXhlZExlbmd0aCgpKQorICAgICAgICBp
ZiAodWludDMyX3QoaW5kZXgpIDwgZW51bWVyYXRvci0+aW5kZXhlZExlbmd0aCgpKQogICAgICAg
ICAgICAgcmV0dXJuIGpzU3RyaW5nKHZtLCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCkuc3Ry
aW5nKCkpOwogICAgICAgICByZXR1cm4gdm0uc21hbGxTdHJpbmdzLnNlbnRpbmVsU3RyaW5nKCk7
CiAgICAgfQpAQCAtMjQ0Miw3ICsyNDQzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlUHJvcGVydHlOYW1lLCBKU1N0cmluZyosICgKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCB1aW50MzJf
dCBpbmRleCwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yUmVjb3Zlck5hbWVBbmRHZXRCeVZh
bCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBiYXNlVmFsdWUsIENDYWxsVUludDMyIGluZGV4LCBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IqIGVudW1lcmF0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
NDYwLDcgKzI0NjEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVy
YXRvclJlY292ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG9iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RW51bWVyYXRvckluQnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0
eU5hbWVWYWx1ZSwgdWludDMyX3QgaW5kZXgsIGludDMyX3QgbW9kZU51bWJlcikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckluQnlWYWwsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eU5hbWVWYWx1ZSwgQ0NhbGxVSW50MzIgaW5kZXgs
IENDYWxsSW50MzIgbW9kZU51bWJlcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTI0NzUsNyArMjQ3Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25F
bnVtZXJhdG9ySW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKENvbW1vblNsb3dQ
YXRoczo6b3BJbkJ5VmFsKGdsb2JhbE9iamVjdCwgYmFzZSwgcHJvcGVydHlOYW1lKSkpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JIYXNPd25Qcm9w
ZXJ0eSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3BlcnR5TmFtZVZhbHVlLCB1
aW50MzJfdCBpbmRleCwgaW50MzJfdCBtb2RlTnVtYmVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25FbnVtZXJhdG9ySGFzT3duUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eU5hbWVWYWx1ZSwgQ0NhbGxVSW50MzIgaW5kZXgsIENDYWxs
SW50MzIgbW9kZU51bWJlcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1
MzMsNyArMjUzNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdW
YWx1ZU9mLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTdWJzdHIs
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIGlu
dDMyX3QgZnJvbSwgaW50MzJfdCBzcGFuKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TdHJpbmdTdWJzdHIsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0NlbGwqIGNlbGwsIENDYWxsSW50MzIgZnJvbSwgQ0NhbGxJbnQzMiBzcGFuKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU0Miw3ICsyNTQzLDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1N1YnN0ciwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4ganNTdWJzdHJpbmcodm0sIGdsb2JhbE9iamVjdCwg
anNDYXN0PEpTU3RyaW5nKj4oY2VsbCksIGZyb20sIHNwYW4pOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgZW5k
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTbGljZSwgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgQ0NhbGxJbnQz
MiBzdGFydCwgQ0NhbGxJbnQzMiBlbmQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0yNTUwLDEwICsyNTUxLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25TdHJpbmdTbGljZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAKICAgICBK
U1N0cmluZyogc3RyaW5nID0gYXNTdHJpbmcoY2VsbCk7CiAgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDx1aW50NjRfdD4oSlNTdHJpbmc6Ok1heExlbmd0aCkgPD0gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSwgIiIpOwotICAgIHJl
dHVybiBzdHJpbmdTbGljZShnbG9iYWxPYmplY3QsIHZtLCBzdHJpbmcsIHN0cmluZy0+bGVuZ3Ro
KCksIHN0YXJ0LCBlbmQpOworICAgIHJldHVybiBzdHJpbmdTbGljZTxpbnQzMl90PihnbG9iYWxP
YmplY3QsIHZtLCBzdHJpbmcsIHN0cmluZy0+bGVuZ3RoKCksIHN0YXJ0LCBlbmQpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dlckNhc2UsIEpTU3RyaW5nKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIHVpbnQzMl90
IGZhaWxpbmdJbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dl
ckNhc2UsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5n
KiBzdHJpbmcsIENDYWxsVUludDMyIGZhaWxpbmdJbmRleCkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI1NzIsNyArMjU3Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Ub0xvd2VyQ2FzZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBqc1N0cmluZyh2bSwgbG93ZXJjYXNlZFN0
cmluZykpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0
cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IHZhbHVl
LCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQz
MlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxsSW50
MzIgdmFsdWUsIENDYWxsSW50MzIgcmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yNTg4LDcgKzI1ODksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSW50MzJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihpbnQzMlRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFk
aXgpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJp
bmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50NjRfdCB2YWx1ZSwg
aW50MzJfdCByYWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50NTJU
b1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2FsbEludDY0
IHZhbHVlLCBDQ2FsbEludDMyIHJhZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjYwNCw3ICsyNjA1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkludDUyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW50NTJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmlu
ZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIGlu
dDMyX3QgcmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRv
U3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1
ZSwgQ0NhbGxJbnQzMiByYWRpeCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTI2MjAsNyArMjYyMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3Vi
bGVUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG51bWJlclRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmdXaXRo
VmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90
IHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ0NhbGxJbnQzMiB2YWx1ZSwgQ0NhbGxJbnQzMiByYWRpeCkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MjksNyArMjYzMCw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIq
LCAoSlNHbG9iYWxPCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGludDMyVG9T
dHJpbmcodm0sIHZhbHVlLCByYWRpeCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSW50NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGludDY0X3QgdmFsdWUsIGludDMyX3QgcmFkaXgpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2FsbEludDY0IHZhbHVlLCBD
Q2FsbEludDMyIHJhZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjYz
OCw3ICsyNjM5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9T
dHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE8KICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4oaW50NTJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZ1dpdGhWYWxp
ZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1
ZSwgaW50MzJfdCByYWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91
YmxlVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBkb3VibGUgdmFsdWUsIENDYWxsSW50MzIgcmFkaXgpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yNjU2LDcgKzI2NTcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRnVuY3Rpb25Ub1N0cmluZywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmpl
Y3QqCiAgICAgcmV0dXJuIGZ1bmN0aW9uLT50b1N0cmluZyhnbG9iYWxPYmplY3QpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBK
U1N0cmluZyosIChWTSogdm1Qb2ludGVyLCBpbnQzMl90IGNoYXJhY3RlcikpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBKU1N0cmluZyos
IChWTSogdm1Qb2ludGVyLCBDQ2FsbEludDMyIGNoYXJhY3RlcikpCiB7CiAgICAgVk0mIHZtID0g
KnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0yODA2LDcgKzI4MDcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU3RyQ2F0MywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJpbmcoZ2xvYmFsT2JqZWN0LCBzdHIxLCBz
dHIyLCBzdHIzKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25GaW5k
U3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QgbWluKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25GaW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91
YmxlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
Q0NhbGxTaXplIHRhYmxlSW5kZXgsIENDYWxsSW50MzIgbWluKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTI4MjIsNyArMjgyMyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25GaW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlLCBjaGFyKiwgKFZNKiB2bVBvCiAgICAg
cmV0dXJuIGxpbmtlZFRhYmxlLm1fY3RpRGVmYXVsdC5leGVjdXRhYmxlQWRkcmVzczxjaGFyKj4o
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZywg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBzaXplX3QgdGFibGVJbmRleCwg
Y29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqIHVubGlua2VkVGFibGUsIEpTU3RyaW5nKiBz
dHJpbmcpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZywg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2FsbFNpemUgdGFibGVJbmRl
eCwgY29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqIHVubGlua2VkVGFibGUsIEpTU3RyaW5n
KiBzdHJpbmcpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODM3LDI3ICsy
ODM4LDI3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmcs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIGxpbmtlZFRhYmxl
LmN0aUZvclZhbHVlKCp1bmxpbmtlZFRhYmxlLCBzdHJJbXBsKS5leGVjdXRhYmxlQWRkcmVzczxj
aGFyKj4oKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVT
dHJpbmdJbXBsTGVzcywgdWludHB0cl90LCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNz
LCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCog
YikpCiB7CiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzRXEsIHVp
bnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzc0VxLCBDQ2FsbFVJbnRwdHI6
OkludGVnZXJUeXBlLCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7CiAgICAgcmV0
dXJuIGNvZGVQb2ludENvbXBhcmUoYSwgYikgPD0gMDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlciwgdWludHB0cl90LCAoU3Ry
aW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBl
LCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7CiAgICAgcmV0dXJuIGNvZGVQb2lu
dENvbXBhcmUoYSwgYikgPiAwOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyRXEsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEs
IFN0cmluZ0ltcGwqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdJbXBsR3JlYXRlckVxLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAoU3RyaW5n
SW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7CiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmUo
YSwgYikgPj0gMDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdMZXNzLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1N0cmluZyogYSwgSlNTdHJpbmcqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVTdHJpbmdMZXNzLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjg2Niw3ICsyODY3LDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzLCB1aW50cHRyX3QsIChK
U0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gY29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKGFzU3Ry
aW5nKGEpLT52YWx1ZShnbG9iYWxPYmplY3QpLCBhc1N0cmluZyhiKS0+dmFsdWUoZ2xvYmFsT2Jq
ZWN0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aW5nTGVzc0VxLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0
cmluZyogYSwgSlNTdHJpbmcqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVTdHJpbmdMZXNzRXEsIENDYWxsVUludHB0cjo6SW50ZWdlclR5cGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYSwgSlNTdHJpbmcqIGIpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODc1LDcgKzI4NzYsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcSwgdWludHB0cl90LCAo
SlNHbG9iYWxPYmplYwogICAgIHJldHVybiAhY29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKGFzU3Ry
aW5nKGIpLT52YWx1ZShnbG9iYWxPYmplY3QpLCBhc1N0cmluZyhhKS0+dmFsdWUoZ2xvYmFsT2Jq
ZWN0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aW5nR3JlYXRlciwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNT
dHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlU3RyaW5nR3JlYXRlciwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI4ODQsNyArMjg4NSw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nR3JlYXRlciwgdWludHB0cl90
LCAoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihhc1N0
cmluZyhiKS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSwgYXNTdHJpbmcoYSktPnZhbHVlKGdsb2JhbE9i
amVjdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0
cmluZ0dyZWF0ZXJFcSwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlU3RyaW5nR3JlYXRlckVxLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjkxMSw3ICsyOTEyLDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0ZvclZhcmFy
Z3MsIHZvaWQsIChKU0dsb2JhbE8KICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNp
emVPZlZhcmFyZ3MsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIHVpbnQzMl90IGZpcnN0VmFyQXJn
T2Zmc2V0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplT2ZWYXJhcmdz
LCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBDQ2FsbFVJbnQzMiBmaXJzdFZhckFyZ09mZnNldCkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5MjEsNyArMjkyMiw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplT2ZWYXJhcmdzLCBVQ1BVU3RyaWN0
SW50MzIsIChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKHNpemVP
ZlZhcmFyZ3MoZ2xvYmFsT2JqZWN0LCBhcmd1bWVudHMsIGZpcnN0VmFyQXJnT2Zmc2V0KSk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNPd25Qcm9wZXJ0eSwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRoaXNPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkhhc093blByb3BlcnR5LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRLZXkpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTQyLDcg
KzI5NDMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzT3duUHJvcGVy
dHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIHNp
emVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVl
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIEND
YWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5
NTAsNyArMjk1MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJ
c0ludGVnZXIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIE51bWJl
ckNvbnN0cnVjdG9yOjppc0ludGVnZXJJbXBsKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mU3RyaW5nLCBV
Q1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCdXR0ZXJmbHkq
IGJ1dHRlcmZseSwgSlNTdHJpbmcqIHNlYXJjaEVsZW1lbnQsIGludDMyX3QgaW5kZXgpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0cmluZywgVUNQVVN0
cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBidXR0
ZXJmbHksIEpTU3RyaW5nKiBzZWFyY2hFbGVtZW50LCBDQ2FsbEludDMyIGluZGV4KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk1OSwyMyArMjk2MCwyMyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mU3RyaW5nLCBVQ1BVU3RyaWN0
SW50MzIsIChKU0dsb2JhbAogCiAgICAgaW50MzJfdCBsZW5ndGggPSBidXR0ZXJmbHktPnB1Ymxp
Y0xlbmd0aCgpOwogICAgIGF1dG8gZGF0YSA9IGJ1dHRlcmZseS0+Y29udGlndW91cygpLmRhdGEo
KTsKLSAgICBmb3IgKDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpIHsKLSAgICAgICAgSlNWYWx1
ZSB2YWx1ZSA9IGRhdGFbaW5kZXhdLmdldCgpOworICAgIGZvciAoaW50MzJfdCBpID0gaW5kZXg7
IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZGF0YVtpXS5nZXQo
KTsKICAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUuaXNTdHJpbmcoKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBhdXRvKiBzdHJpbmcgPSBhc1N0cmluZyh2YWx1ZSk7CiAgICAg
ICAgIGlmIChzdHJpbmcgPT0gc2VhcmNoRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybiB0b1VD
UFVTdHJpY3RJbnQzMihpbmRleCk7CisgICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50
MzIoaSk7CiAgICAgICAgIGlmIChzdHJpbmctPmVxdWFsKGdsb2JhbE9iamVjdCwgc2VhcmNoRWxl
bWVudCkpIHsKICAgICAgICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uRXhjZXB0VGVybWlu
YXRpb24oKTsKLSAgICAgICAgICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihpbmRleCk7Cisg
ICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaSk7CiAgICAgICAgIH0KICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRv
VUNQVVN0cmljdEludDMyKC0xKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFycmF5SW5kZXhPZlZhbHVlSW50MzJPckNvbnRpZ3VvdXMsIFVDUFVTdHJpY3RJbnQzMiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlSW50MzJPckNvbnRpZ3VvdXMsIFVD
UFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZseSog
YnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIENDYWxsSW50MzIgaW5kZXgp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTg2LDE5ICsyOTg3LDE5IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMy
T3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0CiAKICAgICBpbnQzMl90IGxlbmd0aCA9IGJ1dHRlcmZs
eS0+cHVibGljTGVuZ3RoKCk7CiAgICAgYXV0byBkYXRhID0gYnV0dGVyZmx5LT5jb250aWd1b3Vz
KCkuZGF0YSgpOwotICAgIGZvciAoOyBpbmRleCA8IGxlbmd0aDsgKytpbmRleCkgewotICAgICAg
ICBKU1ZhbHVlIHZhbHVlID0gZGF0YVtpbmRleF0uZ2V0KCk7CisgICAgZm9yIChpbnQzMl90IGkg
PSBpbmRleDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBkYXRh
W2ldLmdldCgpOwogICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIGJvb2wgaXNFcXVhbCA9IEpTVmFsdWU6OnN0cmljdEVxdWFsKGdsb2JhbE9iamVjdCwg
c2VhcmNoRWxlbWVudCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogICAgICAgICBpZiAoaXNFcXVhbCkKLSAgICAgICAgICAgIHJldHVybiB0b1VDUFVT
dHJpY3RJbnQzMihpbmRleCk7CisgICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIo
aSk7CiAgICAgfQogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURvdWJsZSwgVUNQ
VVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBi
dXR0ZXJmbHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBpbmRleCkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVEb3VibGUs
IFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZs
eSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIENDYWxsSW50MzIgaW5k
ZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMDEyLDE3ICszMDEzLDE3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURv
dWJsZSwgVUNQVVN0cmljdEludDMyLCAoSlNHCiAKICAgICBpbnQzMl90IGxlbmd0aCA9IGJ1dHRl
cmZseS0+cHVibGljTGVuZ3RoKCk7CiAgICAgY29uc3QgZG91YmxlKiBkYXRhID0gYnV0dGVyZmx5
LT5jb250aWd1b3VzRG91YmxlKCkuZGF0YSgpOwotICAgIGZvciAoOyBpbmRleCA8IGxlbmd0aDsg
KytpbmRleCkgeworICAgIGZvciAoaW50MzJfdCBpID0gaW5kZXg7IGkgPCBsZW5ndGg7ICsraSkg
ewogICAgICAgICAvLyBUaGlzIGNvbXBhcmlzb24gaWdub3JlcyBOYU4uCi0gICAgICAgIGlmIChk
YXRhW2luZGV4XSA9PSBudW1iZXIpCi0gICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50
MzIoaW5kZXgpOworICAgICAgICBpZiAoZGF0YVtpXSA9PSBudW1iZXIpCisgICAgICAgICAgICBy
ZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaSk7CiAgICAgfQogICAgIHJldHVybiB0b1VDUFVTdHJp
Y3RJbnQzMigtMSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb2Fk
VmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDMyX3QgZmly
c3RFbGVtZW50RGVzdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgdWludDMyX3Qg
b2Zmc2V0LCB1aW50MzJfdCBsZW5ndGhJbmNsdWRpbmdUaGlzLCB1aW50MzJfdCBtYW5kYXRvcnlN
aW5pbXVtKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb2FkVmFyYXJncywg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxsSW50MzIgZmlyc3RFbGVt
ZW50RGVzdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgQ0NhbGxVSW50MzIgb2Zm
c2V0LCBDQ2FsbFVJbnQzMiBsZW5ndGhJbmNsdWRpbmdUaGlzLCBDQ2FsbFVJbnQzMiBtYW5kYXRv
cnlNaW5pbXVtKSkKIHsKLSAgICBWaXJ0dWFsUmVnaXN0ZXIgZmlyc3RFbGVtZW50IHsgZmlyc3RF
bGVtZW50RGVzdCB9OworICAgIFZpcnR1YWxSZWdpc3RlciBmaXJzdEVsZW1lbnQgeyBpbnQzMl90
KGZpcnN0RWxlbWVudERlc3QpIH07CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CkBAIC0zMDM0LDkgKzMwMzUsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TG9hZFZhcmFyZ3MsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgICAgICBj
YWxsRnJhbWUtPnIoZmlyc3RFbGVtZW50ICsgaSkgPSBqc1VuZGVmaW5lZCgpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRk1vZE9uSW50cywgZG91YmxlLCAoaW50MzJf
dCBhLCBpbnQzMl90IGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZNb2RP
bkludHMsIGRvdWJsZSwgKENDYWxsSW50MzIgYSwgQ0NhbGxJbnQzMiBiKSkKIHsKLSAgICByZXR1
cm4gZm1vZChhLCBiKTsKKyAgICByZXR1cm4gZm1vZChpbnQzMl90KGEpLCBpbnQzMl90KGIpKTsK
IH0KIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0zMDQ2LDcgKzMwNDcsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmFuZG9tLCBkb3VibGUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogfQogI2VuZGlmCiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBpbnQzMl90IG9wMSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU3RyaW5nRnJvbUNoYXJDb2RlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ0NhbGxJbnQzMiBvcDEpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0zMDY0LDcgKzMwNjUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3Ry
aW5nRnJvbUNoYXJDb2RlVW50eXBlZCwgRW5jb2RlZEpTVmFsdWUsIChKUwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNDOjpzdHJpbmdGcm9tQ2hhckNvZGUoZ2xvYmFsT2JqZWN0LCBjaElu
dCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydEJveGVk
RG91YmxlVG9JbnQ1MiwgaW50NjRfdCwgKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydEJveGVkRG91YmxlVG9JbnQ1
MiwgQ0NhbGxJbnQ2NDo6SW50ZWdlclR5cGUsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
ICAgICBpZiAoIXZhbHVlLmlzRG91YmxlKCkpCkBAIC0zMDcyLDEyICszMDczLDEyIEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0Qm94ZWREb3VibGVUb0ludDUyLCBp
bnQ2NF90LCAoRW5jb2RlZEpTCiAgICAgcmV0dXJuIHRyeUNvbnZlcnRUb0ludDUyKHZhbHVlLmFz
RG91YmxlKCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dERvdWJsZVRvSW50NTIsIGludDY0X3QsIChkb3VibGUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnREb3VibGVUb0ludDUyLCBDQ2FsbEludDY0OjpJbnRl
Z2VyVHlwZSwgKGRvdWJsZSB2YWx1ZSkpCiB7CiAgICAgcmV0dXJuIHRyeUNvbnZlcnRUb0ludDUy
KHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1Jhd09i
amVjdCwgY2hhciosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJf
dCBsZW5ndGgsIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdSYXdPYmplY3QsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIENDYWxsSW50MzIgbGVuZ3RoLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCiB7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMTE2LDcgKzMxMTcsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseSwgSlNDZWxsKiwgKFZN
KiB2bVBvaW50ZQogICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0dGVyZmx5
KHZtLCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVj
dG9yTGVuZ3RoLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IHVuc2lnbmVkIGxlbmd0aCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFk
ZXJBbmRWZWN0b3JMZW5ndGgsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgQ0NhbGxVSW50MzIgbGVuZ3RoLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCiB7CiAg
ICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMTM4LDcgKzMxMzksNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseVdpdGhJbmRleGluZ0hlYWRl
ckFuZFZlYwogICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0dGVyZmx5KHZt
LCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdBcnJheVdpdGhTcHJlYWRTbG93LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgdm9pZCogYnVmZmVyLCB1aW50MzJfdCBudW1JdGVtcykpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU3ByZWFkU2xvdywgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIGJ1ZmZlciwgQ0NhbGxVSW50
MzIgbnVtSXRlbXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMTk3LDcg
KzMxOTgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRo
U3ByZWFkU2xvdywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFibGVCdXR0
ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBs
ZW5ndGgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUltbXV0YWJs
ZUJ1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxs
VUludDMyIGxlbmd0aCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMyODcs
NyArMzI4OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlU2Nv
cGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIHJlc29sdmVk
U2NvcGU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXREeW5hbWlj
VmFyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdldFB1dEluZm9C
aXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXREeW5hbWljVmFyLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBz
Y29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIENDYWxsVUludDMyIGdldFB1dEluZm9CaXRz
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzM0Nyw3ICszMzQ4LDcgQEAg
QUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBwdXREeW5hbWljVmFyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFZNJiB2bSwgSlMKICAgICBzY29wZS0+bWV0aG9kVGFibGUodm0pLT5wdXQo
c2NvcGUsIGdsb2JhbE9iamVjdCwgaWRlbnQsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSksIHNsb3Qp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBzY29w
ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNpZ25l
ZCBnZXRQdXRJbmZvQml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
RHluYW1pY1ZhclN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBp
bXBsLCBDQ2FsbFVJbnQzMiBnZXRQdXRJbmZvQml0cykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTMzNTYsNyArMzM1Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXREeW5hbWljVmFyU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsCiAg
ICAgcmV0dXJuIHB1dER5bmFtaWNWYXIoZ2xvYmFsT2JqZWN0LCB2bSwgc2NvcGUsIHZhbHVlLCBp
bXBsLCBnZXRQdXRJbmZvQml0cywgaXNTdHJpY3RNb2RlKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJOb25TdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlIHZh
bHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJOb25TdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVu
Y29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgQ0NhbGxVSW50MzIg
Z2V0UHV0SW5mb0JpdHMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzkx
LDcgKzMzOTIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwSGFzaEhl
YXBCaWdJbnQsIFVDUFVTdHJpY3RJbnQzMiwgKFZNKiB2bVBvaQogICAgIHJldHVybiB0b1VDUFVT
dHJpY3RJbnQzMihqc01hcEhhc2goaW5wdXQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkpTTWFwRmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIGludDMyX3QgaGFz
aCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0LCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVuY29k
ZWRKU1ZhbHVlIGtleSwgQ0NhbGxJbnQzMiBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMzQwMiw3ICszNDAzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkpTTWFwRmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAg
ICByZXR1cm4gKmJ1Y2tldDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIGludDMyX3QgaGFzaCkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNTZXRGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtl
eSwgQ0NhbGxJbnQzMiBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MzQxMyw3ICszNDE0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTU2V0
RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1cm4gKmJ1
Y2tldDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlND
ZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogc2V0LCBFbmNvZGVk
SlNWYWx1ZSBrZXksIGludDMyX3QgaGFzaCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU2V0QWRkLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBzZXQsIEVuY29kZWRKU1ZhbHVlIGtleSwgQ0NhbGxJbnQzMiBoYXNoKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzQyNCw3ICszNDI1LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QKICAgICByZXR1cm4gYnVja2V0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtleSwgRW5jb2RlZEpTVmFsdWUgdmFs
dWUsIGludDMyX3QgaGFzaCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFw
U2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAs
IEVuY29kZWRKU1ZhbHVlIGtleSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIENDYWxsSW50MzIgaGFz
aCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM0MzUsNyArMzQzNiw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBTZXQsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIGJ1Y2tldDsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldlYWtTZXRBZGQsIHZvaWQsIChWTSogdm1Qb2lu
dGVyLCBKU0NlbGwqIHNldCwgSlNDZWxsKiBrZXksIGludDMyX3QgaGFzaCkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIs
IEpTQ2VsbCogc2V0LCBKU0NlbGwqIGtleSwgQ0NhbGxJbnQzMiBoYXNoKSkKIHsKICAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTM0NDMsNyArMzQ0NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25XZWFrU2V0QWRkLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBzZXQs
CiAgICAganNDYXN0PEpTV2Vha1NldCo+KHNldCktPmFkZCh2bSwgYXNPYmplY3Qoa2V5KSwgSlNW
YWx1ZSgpLCBoYXNoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldl
YWtNYXBTZXQsIHZvaWQsIChWTSogdm1Qb2ludGVyLCBKU0NlbGwqIG1hcCwgSlNDZWxsKiBrZXks
IEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldlYWtNYXBTZXQsIHZvaWQsIChWTSogdm1Qb2ludGVyLCBKU0NlbGwq
IG1hcCwgSlNDZWxsKiBrZXksIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBDQ2FsbEludDMyIGhhc2gp
KQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzY2OSw3ICszNjcwLDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93REZHLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKICAgICBzY29wZS50aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIEpT
VmFsdWU6OmRlY29kZSh2YWx1ZVRvVGhyb3cpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1N0cmluZyogbWVzc2FnZSwgdWludDMyX3QgZXJyb3JUeXBlKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIG1lc3NhZ2UsIENDYWxsVUludDMy
IGVycm9yVHlwZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTQxMTYsNyAr
NDExNyw3IEBAIHN0YXRpYyBjaGFyKiB0aWVyVXBDb21tb24oVk0mIHZtLCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgQnl0ZWNvZGVJbmRleCBvcmlnaW5CeXRlCiAgICAgcmV0dXJuIHRhZ0NvZGVQdHJX
aXRoU3RhY2tQb2ludGVyRm9ySklUQ2FsbCh1bnRhZ0NvZGVQdHI8Y2hhciosIEpTRW50cnlQdHJU
YWc+KGFkZHJlc3MpLCBjYWxsRnJhbWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIHVu
c2lnbmVkIGJ5dGVjb2RlSW5kZXhCaXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25UcmlnZ2VyVGllclVwTm93SW5Mb29wLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxV
SW50MzIgYnl0ZWNvZGVJbmRleEJpdHMpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNDE0
OCw3ICs0MTQ5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJU
aWVyVXBOb3dJbkxvb3AsIHZvaWQsIChWTSogdm1Qb2ludGVyLAogICAgIH0KIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJPU1JFbnRyeU5vdywgY2hhciosIChW
TSogdm1Qb2ludGVyLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlck9TUkVudHJ5Tm93LCBjaGFyKiwgKFZNKiB2bVBv
aW50ZXIsIENDYWxsVUludDMyIGJ5dGVjb2RlSW5kZXhCaXRzKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXggZmJk
NmQwOWU0NjcyNWY5NzNiYmU4N2Q4NjhiZmM5NDAxZGU5YTcyNi4uMDZkNWNhNGJkZGMwN2ZmOWRj
Y2ZhNjQyN2NmNTE3NzQ2NzdjYjNiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisj
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiREZHQXJpdGhNb2RlLmgiCiAjaW5j
bHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlUeXBlLmgiCkBAIC00
Myw3ICs0NCw3IEBAIG5hbWVzcGFjZSBERkcgewogCiBzdHJ1Y3QgT1NSRXhpdEJhc2U7CiAKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlLCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiwgQ0NhbGxJbnQzMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJp
bmdGcm9tQ2hhckNvZGVVbnR5cGVkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUpKTsKIAogLy8gVGhlc2Ugcm91dGluZXMgcHJvdmlkZSBjYWxsYmFja3Mg
b3V0IHRvIEMrKyBpbXBsZW1lbnRhdGlvbnMgb2Ygb3BlcmF0aW9ucyB0b28gY29tcGxleCB0byBK
SVQuCkBAIC01Nyw3ICs1OCw3IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
T2JqZWN0Q3JlYXRlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvCiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdENyZWF0ZU9iamVjdCwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk9iamVjdEFzc2lnbk9iamVjdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmpl
Y3QqLCBKU09iamVjdCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2Jq
ZWN0QXNzaWduVW50eXBlZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVU
aGlzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogY29uc3RydWN0b3IsIHVp
bnQzMl90IGlubGluZUNhcGFjaXR5KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNyZWF0ZVRoaXMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBjb25z
dHJ1Y3RvciwgQ0NhbGxVSW50MzIgaW5saW5lQ2FwYWNpdHkpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUHJvbWlzZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqIGNvbnN0cnVjdG9yKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNyZWF0ZUludGVybmFsUHJvbWlzZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqIGNvbnN0cnVjdG9yKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNyZWF0ZUdlbmVyYXRvciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
IGNvbnN0cnVjdG9yKSk7CkBAIC05MSw4ICs5Miw4IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQXJpdGhSb3VuZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoRmxvb3IsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aENlaWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Bcml0aFRydW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlW
YWxPYmplY3RJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCos
IGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxT
dHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIGlu
dDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmpl
Y3RJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxs
SW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxTdHJp
bmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIENDYWxs
SW50MzIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmpl
Y3RTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0Nl
bGwqIHN0cmluZykpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZh
bE9iamVjdFN5bWJvbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCos
IEpTQ2VsbCogc3ltYm9sKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRv
UHJpbWl0aXZlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUpKTsKQEAgLTEwMyw0MiArMTA0LDQyIEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ2FsbE51bWJlckNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvCiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXMsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdl
dFByb3RvdHlwZU9mLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvdG90eXBl
T2ZPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCopKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5LCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIGludDMyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzRW51bWVyYWJsZUluZGV4ZWRQcm9wZXJ0eSwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwgQ0NhbGxTaXplOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgQ0NhbGxJbnQzMikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNFbnVtZXJhYmxlSW5kZXhlZFByb3BlcnR5
LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBDQ2Fs
bEludDMyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByb3BlcnR5
RW51bWVyYXRvciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9y
Q2VsbCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZUluZGV4QW5kTW9kZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50MzJf
dCwgaW50MzJfdCwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKikpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNT
dHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCB1aW50MzJfdCwgaW50MzJfdCwgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVt
ZXJhdG9ySW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckhhc093blByb3BlcnR5LCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCB1aW50MzJfdCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25FbnVtZXJhdG9yUmVjb3Zlck5hbWVBbmRHZXRCeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50MzJfdCwgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9y
TmV4dFVwZGF0ZUluZGV4QW5kTW9kZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnQzMiwgQ0NhbGxJbnQzMiwgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJh
dG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBD
Q2FsbFVJbnQzMiwgQ0NhbGxJbnQzMiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9ySW5CeVZhbCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRW51bWVyYXRvckhhc093blByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnQzMiwg
Q0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJh
dG9yUmVjb3Zlck5hbWVBbmRHZXRCeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnQzMiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1JlZ2V4cFdpdGhM
YXN0SW5kZXgsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1Zh
bHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5LCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgdm9pZCosIHNpemVfdCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheSwgY2hhciosIChKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIHZvaWQqLCBDQ2FsbFNpemUpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3RW1wdHlBcnJheSwgY2hhciosIChWTSosIFN0cnVjdHVyZSop
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSop
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFu
ZEhpbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBpbnQz
Ml90LCBCdXR0ZXJmbHkqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0ludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
aW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0FycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2Fs
bEludDMyLCBCdXR0ZXJmbHkqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld0FycmF5V2l0aFNpemVBbmRIaW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5KikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoT25lQXJndW1lbnQsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aFNpemUsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnRwdHJfdCwgY2hhciopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MTZBcnJheVdpdGhTaXplLCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoT25l
QXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNW
YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQzMkFycmF5
V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnRwdHJfdCwg
Y2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MzJBcnJh
eVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnRw
dHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDMy
QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
ZXdVaW50OEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBpbnRwdHJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3VWludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
KiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld1VpbnQ4QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aFNpemUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRoT25l
QXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNW
YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MTZBcnJh
eVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3Qs
IGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFy
cmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbElu
dHB0ciwgY2hhciopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWlu
dDE2QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdVaW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld1VpbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoT25lQXJndW1lbnQs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRo
U2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBj
aGFyKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJy
YXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBF
bmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdC
aWdJbnQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBpbnRwdHJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3QmlnSW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld0JpZ0ludDY0QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdCaWdVaW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ1VpbnQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnVWludDY0QXJyYXlXaXRoT25lQXJn
dW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheUl0ZXJhdG9y
LCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld01hcEl0ZXJhdG9yLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqKSk7CkBA
IC0xNTAsMzYgKzE1MSwzNiBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5VmFsQ2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZQogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdOb25TdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxDZWxsU3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBK
U0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbE5vblN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBK
U09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91
bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3Qg
aW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIgaW5kZXgsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIENDYWxsSW50MzIgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxE
aXJlY3RDZWxsU3RyaW5nU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBK
U0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ05vblN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeVZhbERpcmVjdENlbGxTeW1ib2xTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxs
U3ltYm9sTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwq
IHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJs
ZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgZG91
YmxlIHZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJs
ZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlC
b3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJf
dCBpbmRleCwgZG91YmxlIHZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWRXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGly
ZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25k
QXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgQ0Nh
bGxJbnQzMiBpbmRleCwgZG91YmxlIHZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJbnQzMiBpbmRleCwgZG91YmxlIHZh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFs
RGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgQ0NhbGxJbnQzMiBpbmRleCwgZG91YmxlIHZhbHVlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3Vu
ZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJbnQz
MiBpbmRleCwgZG91YmxlIHZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWRXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXNTdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3Ry
aW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEpTU3RyaW5nKiwgRW5jb2Rl
ZEpTVmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTeW1i
b2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3ltYm9sKiwgRW5jb2RlZEpT
VmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVm
aW5lQWNjZXNzb3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgSlNPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZywg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBKU1N0cmluZyosIEpTT2JqZWN0Kiwg
SlNPYmplY3QqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqLCBVbmlxdWVkU3RyaW5nSW1wbCosIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBp
bnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vz
c29yUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3lt
Ym9sKiwgSlNPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQz
MikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVy
dHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgSlNTdHJpbmcqLCBF
bmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3QqLCBVbmlxdWVkU3RyaW5nSW1wbCosIEVuY29kZWRKU1ZhbHVlLCBDQ2Fs
bEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQ
cm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBTeW1ib2wq
LCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBKU09iamVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJ
bnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3Nv
clByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEpTU3Ry
aW5nKiwgSlNPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZ0lkZW50LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgSlNP
YmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqLCBTeW1ib2wqLCBKU09iamVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJ
bnQzMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2gsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEpTQXJyYXkqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5
UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJheSos
IHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50Q291bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBKU0FycmF5Kiwgdm9pZCogYnVmZmVyLCBDQ2FsbEludDMyIGVsZW1lbnRD
b3VudCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hEb3Vi
bGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBkb3VibGUgdmFsdWUsIEpTQXJy
YXkqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJs
ZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJheSosIHZv
aWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50Q291bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBKU0FycmF5Kiwgdm9pZCogYnVmZmVyLCBDQ2FsbEludDMyIGVsZW1l
bnRDb3VudCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVBvcCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQXJyYXkqKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UG9wQW5kUmVjb3Zlckxlbmd0aCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQXJyYXkqKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cEV4ZWNTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopKTsKQEAgLTE4OSwxMCArMTkw
LDEwIEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwRXhlY05vbkds
b2JhbE9yU3RpY2t5LCBFbmNvZGVkSlNWYWx1ZSwKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUmVnRXhwTWF0Y2hGYXN0R2xvYmFsU3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgUmVnRXhwKiwgSlNTdHJpbmcqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblJlZ0V4cE1hdGNoRmFzdFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKikpOwogLy8gVGhlc2UgY29t
cGFyaXNvbnMgcmV0dXJuIGEgYm9vbGVhbiB3aXRoaW4gYSBzaXplX3Qgc3VjaCB0aGF0IHRoZSB2
YWx1ZSBpcyB6ZXJvIGV4dGVuZGVkIHRvIGZpbGwgdGhlIHJlZ2lzdGVyLgotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0U3RyaW5nLCBzaXplX3QsIChKU0dsb2Jh
bE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKikpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIFJl
Z0V4cE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXFDZWxsLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25SZWdFeHBUZXN0U3RyaW5nLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9i
YWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVyaWMsIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0
RXFDZWxsLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
IG9wMSwgSlNDZWxsKiBvcDIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U3ViSGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCog
b3AxLCBKU0NlbGwqIG9wMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25N
dWxIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBv
cDEsIEpTQ2VsbCogb3AyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1v
ZEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9w
MSwgSlNDZWxsKiBvcDIpKTsKQEAgLTIwNSw2MCArMjA2LDYwIEBAIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQml0TFNoaWZ0SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFkZEhlYXBCaWdJbnQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBv
cDIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0UlNoaWZ0SGVhcEJp
Z0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0Nl
bGwqIG9wMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXRYb3JIZWFw
QmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpT
Q2VsbCogb3AyKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNhbWVWYWx1
ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2FtZVZhbHVlLCBDQ2Fs
bFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRl
QWN0aXZhdGlvbkRpcmVjdCwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKiwgSlNTY29wZSosIFN5
bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUq
LCB1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90IG1pbkNhcGFjaXR5KSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpT
Q2VsbCosIChWTSosIElubGluZUNhbGxGcmFtZSosIEpTRnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1
bWVudENvdW50KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNj
b3BlZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVn
aXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVl
LCBKU0xleGljYWxFbnZpcm9ubWVudCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiwgSW5s
aW5lQ2FsbEZyYW1lKiwgSlNGdW5jdGlvbiosIHVpbnQzMl90IGFyZ3VtZW50Q291bnQpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBSZWdpc3RlciogYXJndW1lbnRT
dGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRzQnV0dGVyZmx5LCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgYXJn
dW1lbnRDb3VudCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVS
ZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwg
dW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudHNUb1NraXAsIHVuc2lnbmVkIGFycmF5U2l6ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHMs
IEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIENDYWxsVUludDMyIGxlbmd0aCwgQ0NhbGxVSW50
MzIgbWluQ2FwYWNpdHkpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiwgSW5saW5lQ2FsbEZy
YW1lKiwgSlNGdW5jdGlvbiosIENDYWxsVUludDMyIGFyZ3VtZW50Q291bnQpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwg
Q0NhbGxVSW50MzIgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIEpTTGV4aWNhbEVudmlyb25t
ZW50KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRB
cmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qLCBJbmxpbmVDYWxsRnJhbWUqLCBKU0Z1
bmN0aW9uKiwgQ0NhbGxVSW50MzIgYXJndW1lbnRDb3VudCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQz
MiBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxlZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQzMiBhcmd1bWVudENvdW50
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVJlc3QsIEpTQ2Vs
bCosIChKU0dsb2JhbE9iamVjdCosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQz
MiBudW1iZXJPZkFyZ3VtZW50c1RvU2tpcCwgQ0NhbGxVSW50MzIgYXJyYXlTaXplKSk7CiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5QnVmZmVyLCBKU0NlbGwqLCAo
Vk0qLCBTdHJ1Y3R1cmUqLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2Rl
ZEpTVmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiwgSlNDZWxsKiwgSlNDZWxsKiwgaW50MzJf
dCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrTWFwU2V0LCB2b2lk
LCAoVk0qLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25GTW9kT25JbnRzLCBkb3VibGUsIChpbnQz
Ml90LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVP
ZklzT2JqZWN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mSXNGdW5jdGlvbiwgc2l6ZV90LCAoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk9iamVjdElzQ2FsbGFibGUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc0NvbnN0cnVjdG9yLCBzaXpl
X3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiwgSlNDZWxs
KiwgSlNDZWxsKiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XZWFrTWFwU2V0LCB2b2lkLCAoVk0qLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNW
YWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25G
TW9kT25JbnRzLCBkb3VibGUsIChDQ2FsbEludDMyLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklzT2JqZWN0LCBDQ2FsbFNpemU6OkludGVn
ZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblR5cGVPZklzRnVuY3Rpb24sIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUs
IChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uT2JqZWN0SXNDYWxsYWJsZSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Jc0NvbnN0cnVjdG9yLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
eXBlT2ZPYmplY3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3Jh
Z2VXaXRoSW5pdGlhbENhcGFjaXR5LCBjaGFyKiwgKFZNKikpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZSwgY2hhciosIChW
TSosIHNpemVfdCBuZXdTaXplKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiwgQ0NhbGxTaXplIG5l
d1NpemUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21w
bGV4UHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eSwgY2hhciosIChWTSosIEpTT2Jq
ZWN0KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZUNvbXBs
ZXhQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qLCBKU09iamVjdCosIHNpemVfdCBuZXdTaXpl
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFBy
b3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSosIEpTT2JqZWN0KiwgQ0NhbGxTaXplIG5ld1NpemUp
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlSW50MzIsIGNoYXIq
LCAoVk0qLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVu
c3VyZURvdWJsZSwgY2hhciosIChWTSosIEpTQ2VsbCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRW5zdXJlQ29udGlndW91cywgY2hhciosIChWTSosIEpTQ2VsbCopKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlQXJyYXlTdG9yYWdlLCBj
aGFyKiwgKFZNKiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25SZXNvbHZlUm9wZSwgU3RyaW5nSW1wbCosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKikp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaW5nbGVDaGFyYWN0ZXJTdHJp
bmcsIEpTU3RyaW5nKiwgKFZNKiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25TaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIEpTU3RyaW5nKiwgKFZNKiwgQ0NhbGxJ
bnQzMikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1N1YnN0
ciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCwgaW50MzJfdCkp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTbGljZSwgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCwgaW50MzJfdCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTdWJzdHIsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCosIEpTQ2VsbCosIENDYWxsSW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCosIENDYWxsSW50MzIsIENDYWxsSW50MzIpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nVmFsdWVPZiwgSlNTdHJpbmcqLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Ub0xvd2VyQ2FzZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmlu
ZyosIHVpbnQzMl90KSk7Ci0KLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50
MzJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCosIGludDMyX3QsIGludDMyX3QpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50NTJUb1N0cmluZywgY2hhcios
IChKU0dsb2JhbE9iamVjdCosIGludDY0X3QsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
LCBkb3VibGUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SW50MzJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgaW50
MzJfdCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1
MlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBpbnQ2NF90
LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRv
U3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBkb3VibGUsIGlu
dDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dlckNhc2Us
IEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBDQ2FsbFVJbnQzMikpOwor
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqLCBDQ2FsbEludDMyLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBDQ2FsbEludDY0LCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgZG91
YmxlLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklu
dDMyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIENDYWxs
SW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SW50NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ0Nh
bGxJbnQ2NCwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Eb3VibGVUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
ZG91YmxlLCBDQ2FsbEludDMyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkZ1bmN0aW9uVG9TdHJpbmcsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNGdW5jdGlv
biopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ob3JtYWxpemVNYXBL
ZXlIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgSlNCaWdJbnQqKSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhhc2gsIFVDUFVTdHJpY3RJbnQzMiwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgaW5wdXQpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTWFwSGFzaEhlYXBCaWdJbnQsIFVDUFVTdHJpY3RJbnQzMiwgKFZN
KiwgSlNCaWdJbnQqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTTWFw
RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpT
VmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNT
ZXRGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVk
SlNWYWx1ZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25K
U01hcEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29k
ZWRKU1ZhbHVlLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwg
RW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QYXJzZUludE5vUmFkaXhHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUGFyc2VJbnRTdHJpbmdOb1JhZGl4LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNTdHJpbmcqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blBhcnNlSW50U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNl
SW50R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNl
SW50U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBD
Q2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50
R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBDQ2FsbEludDMyKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
U3ltYm9sLCBTeW1ib2wqLCAoVk0qKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld1N5bWJvbFdpdGhTdHJpbmdEZXNjcmlwdGlvbiwgU3ltYm9sKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNTdHJpbmcqKSk7CkBAIC0yNzIsNDggKzI3Myw0OCBAQCBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk1ha2VSb3BlMiwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU1N0cgogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYWtlUm9wZTMsIEpT
U3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyosIEpTU3RyaW5n
KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJDYXQyLCBKU1N0cmlu
ZyosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJDYXQzLCBKU1N0cmluZyosIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaElt
bVRhcmdldEZvckRvdWJsZSwgY2hhciosIChWTSosIEVuY29kZWRKU1ZhbHVlLCBzaXplX3QgdGFi
bGVJbmRleCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
d2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBzaXplX3QgdGFibGVJbmRleCwg
Y29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqLCBKU1N0cmluZyopKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzLCB1aW50cHRyX3Qs
IChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzRXEsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwq
LCBTdHJpbmdJbXBsKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21w
YXJlU3RyaW5nSW1wbEdyZWF0ZXIsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBs
KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1w
bEdyZWF0ZXJFcSwgdWludHB0cl90LCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzLCB1aW50cHRy
X3QsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzRXEsIHVpbnRwdHJfdCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIsIHVpbnRwdHJfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXJFcSwgdWludHB0cl90LCAoSlNH
bG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25GaW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlLCBjaGFyKiwgKFZN
KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBDQ2FsbEludDMyKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZywgY2hhciosIChK
U0dsb2JhbE9iamVjdCosIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBjb25zdCBVbmxpbmtlZFN0cmlu
Z0p1bXBUYWJsZSosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlU3RyaW5nSW1wbExlc3MsIENDYWxsVUludHB0cjo6SW50ZWdlclR5cGUsIChT
dHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzRXEsIENDYWxsVUludHB0cjo6SW50ZWdlclR5cGUs
IChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJU
eXBlLCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlckVxLCBDQ2FsbFVJbnRwdHI6Oklu
dGVnZXJUeXBlLCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzLCBDQ2FsbFVJbnRwdHI6OkludGVn
ZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzc0VxLCBDQ2FsbFVJ
bnRwdHI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5n
KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nR3Jl
YXRlciwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29t
cGFyZVN0cmluZ0dyZWF0ZXJFcSwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTm90aWZ5V3JpdGUsIHZvaWQsIChWTSosIFdhdGNocG9pbnRTZXQqKSk7CiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0ZvclZh
cmFyZ3MsIHZvaWQsIChKU0dsb2JhbE9iamVjdCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU2l6ZU9mVmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIHVpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBpbnQzMl90IGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1Zh
bHVlIGFyZ3VtZW50cywgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90
IG1hbmRhdG9yeU1pbmltdW0pKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U2l6ZU9mVmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSBhcmd1bWVudHMsIENDYWxsVUludDMyIGZpcnN0VmFyQXJnT2Zmc2V0KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBDQ2FsbEludDMyIGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1ZhbHVlIGFy
Z3VtZW50cywgQ0NhbGxVSW50MzIgb2Zmc2V0LCBDQ2FsbFVJbnQzMiBsZW5ndGgsIENDYWxsVUlu
dDMyIG1hbmRhdG9yeU1pbmltdW0pKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVGhyb3dERkcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgdWludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvciwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNTdHJpbmcqLCBDQ2FsbFVJbnQzMikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkhhc093blByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSGFzT3duUHJvcGVydHksIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZTdHJpbmcsIFVDUFVTdHJpY3RJbnQzMiwgKEpT
R2xvYmFsT2JqZWN0KiwgQnV0dGVyZmx5KiwgSlNTdHJpbmcqLCBpbnQzMl90KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlRG91YmxlLCBVQ1BV
U3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEVuY29kZWRKU1ZhbHVl
LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5k
ZXhPZlZhbHVlSW50MzJPckNvbnRpZ3VvdXMsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgQnV0dGVyZmx5KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mU3RyaW5nLCBVQ1BVU3RyaWN0SW50
MzIsIChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEpTU3RyaW5nKiwgQ0NhbGxJbnQzMikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURv
dWJsZSwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJmbHkqLCBFbmNv
ZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMyT3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0SW50MzIs
IChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMy
KSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3ByZWFkRmFzdEFycmF5
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNwcmVhZEdlbmVyaWMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJy
YXlXaXRoU3ByZWFkU2xvdywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0Kiwgdm9pZCosIHVpbnQz
Ml90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUltbXV0YWJs
ZUJ1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgbGVuZ3RoKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVhZFNs
b3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIHZvaWQqLCBDQ2FsbFVJbnQzMikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFibGVCdXR0ZXJmbHks
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIENDYWxsVUludDMyIGxlbmd0aCkpOwogCiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29sdmVTY29wZSwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNTY29wZSosIFVuaXF1ZWRTdHJpbmdJbXBsKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNs
SW5FdmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTY29wZSosIFVuaXF1
ZWRTdHJpbmdJbXBsKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRE
eW5hbWljVmFyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNj
b3BlLCBVbmlxdWVkU3RyaW5nSW1wbCosIHVuc2lnbmVkKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwg
dW5zaWduZWQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1p
Y1Zhck5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBF
bmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25lZCkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXREeW5hbWljVmFyLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBVbmlxdWVkU3RyaW5nSW1wbCosIEND
YWxsVUludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFt
aWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBzY29wZSwgRW5j
b2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgQ0NhbGxVSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1Zhck5vblN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVl
ZFN0cmluZ0ltcGwqLCBDQ2FsbFVJbnQzMikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRCb3hlZERvdWJsZVRvSW50NTIsIGludDY0X3QsIChFbmNvZGVkSlNW
YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0RG91Ymxl
VG9JbnQ1MiwgaW50NjRfdCwgKGRvdWJsZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db252ZXJ0Qm94ZWREb3VibGVUb0ludDUyLCBDQ2FsbEludDY0OjpJbnRlZ2VyVHlw
ZSwgKEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnZlcnREb3VibGVUb0ludDUyLCBDQ2FsbEludDY0OjpJbnRlZ2VyVHlwZSwgKGRvdWJsZSkp
OwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk51bWJlcklzSW50ZWdlciwg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIENDYWxsU2l6ZTo6SW50ZWdl
clR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiAKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmF3T2JqZWN0LCBjaGFyKiwgKFZNKiwgU3RydWN0
dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdSYXdPYmplY3QsIGNoYXIqLCAoVk0qLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludDMy
LCBCdXR0ZXJmbHkqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09i
amVjdFdpdGhCdXR0ZXJmbHksIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIEJ1dHRlcmZseSop
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRl
cmZseVdpdGhJbmRleGluZ0hlYWRlckFuZFZlY3Rvckxlbmd0aCwgSlNDZWxsKiwgKFZNKiwgU3Ry
dWN0dXJlKiwgdW5zaWduZWQgbGVuZ3RoLCBCdXR0ZXJmbHkqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFk
ZXJBbmRWZWN0b3JMZW5ndGgsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIENDYWxsVUludDMy
IGxlbmd0aCwgQnV0dGVyZmx5KikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkxpbmtEaXJlY3RDYWxsLCB2b2lkLCAoT3B0aW1pemluZ0NhbGxMaW5rSW5mbyosIEpTRnVu
Y3Rpb24qKSk7CiAKQEAgLTM0NCw4ICszNDUsOCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblJhbmRvbSwgZG91YmxlLCAoSlNHbG9iYWxPYmplY3QqKSk7CiAKICNpZiBFTkFC
TEUoRlRMX0pJVCkKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRp
ZXJVcE5vdywgdm9pZCwgKFZNKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25UcmlnZ2VyVGllclVwTm93SW5Mb29wLCB2b2lkLCAoVk0qLCB1bnNpZ25lZCBieXRlY29kZUlu
ZGV4Qml0cykpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyT1NS
RW50cnlOb3csIGNoYXIqLCAoVk0qLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93SW5Mb29wLCB2
b2lkLCAoVk0qLCBDQ2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyT1NSRW50cnlOb3csIGNoYXIqLCAoVk0qLCBD
Q2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpOwogI2VuZGlmIC8vIEVOQUJMRShGVExfSklU
KQogCiBpbmxpbmUgYXV0byBvcGVyYXRpb25OZXdUeXBlZEFycmF5V2l0aFNpemVGb3JUeXBlKFR5
cGVkQXJyYXlUeXBlIHR5cGUpIC0+IGRlY2x0eXBlKCZvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRo
U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApp
bmRleCA5ZTU5OWJmZmVjOGI5MDBmZDcyMzhlZGM2MzljZWI1NjQ5NDNhOWM4Li44YjhiNWJlY2Nm
NWU0YzEwYzFkZGY5MzdlZmZiY2NiOTdmNGU5ODg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMjIsMTIgKzEyMiwxMiBAQCBuYW1lc3Bh
Y2Ugewogc3RkOjphdG9taWM8aW50PiBjb21waWxlQ291bnRlcjsKIAogI2lmIEFTU0VSVF9FTkFC
TEVECi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNo
YWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2Nr
LCBCbG9ja0luZGV4IGJsb2NrSW5kZXgsIHVuc2lnbmVkIG5vZGVJbmRleCkpOwotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJO
X0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4IGJs
b2NrSW5kZXgsIHVuc2lnbmVkIG5vZGVJbmRleCkpCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
X1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwg
dm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4IGJsb2NrSW5kZXgsIENDYWxs
VUludDMyIG5vZGVJbmRleCkpOworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklC
VVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVC
bG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4IGJsb2NrSW5kZXgsIENDYWxsVUludDMyIG5vZGVJ
bmRleCkpCiB7CiAgICAgZGF0YUxvZygiQ3Jhc2hpbmcgaW4gdGhvdWdodC10by1iZS11bnJlYWNo
YWJsZSBGVEwtZ2VuZXJhdGVkIGNvZGUgZm9yICIsIHBvaW50ZXJEdW1wKGNvZGVCbG9jayksICIg
YXQgYmFzaWMgYmxvY2sgIyIsIGJsb2NrSW5kZXgpOwogICAgIGlmIChub2RlSW5kZXggIT0gVUlO
VF9NQVgpCi0gICAgICAgIGRhdGFMb2coIiwgbm9kZSBAIiwgbm9kZUluZGV4KTsKKyAgICAgICAg
ZGF0YUxvZygiLCBub2RlIEAiLCB1aW50MzJfdChub2RlSW5kZXgpKTsKICAgICBkYXRhTG9nKCIu
XG4iKTsKICAgICBDUkFTSCgpOwogfQpAQCAtNDcxNSwxNCArNDcxNSwxNCBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25zLmdldCgpLCBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZlNs
b3dPcGVyYXRpb24oKSksIEludmFsaWRHUFJSZWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGppdC5jb2RlQmxvY2soKS0+Z2xvYmFsT2JqZWN0Rm9yKG5vZGVTZW1hbnRpY09yaWdp
biksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSLCBwYXJhbXNb
MV0uZ3ByKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIo
KSwgaWRlbnRpZmllci5yYXdCaXRzKCkpLmNhbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyYW1zWzBdLmdwcigpLCBDQ2FsbFVJbnRwdHIoaWRlbnRpZmllci5yYXdCaXRz
KCkpKS5jYWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRpb24oCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICpzdGF0ZSwgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0
ZXJzKCksIGppdCwgbm9kZVNlbWFudGljT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBleGNlcHRpb25zLmdldCgpLCBnZW5lcmF0b3ItPnNsb3dQYXRoRnVuY3Rpb24oKSwg
SW52YWxpZEdQUlJlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVC
bG9jaygpLT5nbG9iYWxPYmplY3RGb3Iobm9kZVNlbWFudGljT3JpZ2luKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGdlbmVyYXRv
ci0+c3R1YkluZm8oKSksIHBhcmFtc1sxXS5ncHIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyYW1zWzBdLmdwcigpLCBpZGVudGlmaWVyLnJhd0JpdHMoKSkuY2FsbCgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNbMF0uZ3ByKCksIENDYWxsVUlu
dHB0cihpZGVudGlmaWVyLnJhd0JpdHMoKSkpLmNhbGwoKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5qdW1wKCkubGlua1RvKGRvbmUsICZq
aXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRD
b21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5jcHAKaW5kZXggZmU3OWY3OGQzNzUwZDYzNGRlMjMyM2NhZGRiMDZkNDE3ZTg4M2JlNy4uY2Yy
MzJjMjI3YThhYTFiYzE1ZWIzODZiOTI0YzJkODhhNzRkODkxMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcApAQCAtNDkzLDEwICs0OTMs
MTAgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoVk0mIHZtLCB1bnNpZ25lZCBleGl0SUQsIEpJ
VENvZGUqIGppdENvZGUsIE9TUkV4aXQmIGV4aXQKICAgICAgICAgKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExPU1JFeGl0LCB2b2lkKiwgKENhbGxG
cmFtZSogY2FsbEZyYW1lLCB1bnNpZ25lZCBleGl0SUQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBpbGVGVExPU1JFeGl0LCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBDQ2FsbFVJbnQzMiBleGl0SUQpKQogewogICAgIGlmIChzaG91bGREdW1wRGlzYXNzZW1i
bHkoKSB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCkgfHwgT3B0aW9uczo6dmVyYm9zZUZUTE9TUkV4
aXQoKSkKLSAgICAgICAgZGF0YUxvZygiQ29tcGlsaW5nIE9TUiBleGl0IHdpdGggZXhpdElEID0g
IiwgZXhpdElELCAiXG4iKTsKKyAgICAgICAgZGF0YUxvZygiQ29tcGlsaW5nIE9TUiBleGl0IHdp
dGggZXhpdElEID0gIiwgdWludDMyX3QoZXhpdElEKSwgIlxuIik7CiAKICAgICBWTSYgdm0gPSBj
YWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIC8vIERvbid0IG5lZWQgYW4gQWN0aXZlU2Ny
YXRjaEJ1ZmZlclNjb3BlIGhlcmUgYmVjYXVzZSB3ZSBEZWZlckdDRm9yQVdoaWxlIGJlbG93Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmgKaW5kZXgg
ODQ0NWIwMTcwMmVmODc4NzVlMTlhY2Q5ODhlNGVjNTlmM2Y3YTBlMC4uNjliYjY3NjM4NmFmMDRh
Y2JiMGIwMGJjOWRiMWM3OWQyODdjOWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE9TUkV4aXRDb21waWxlci5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgRlRMIHsKIAogLy8gVGFrZXMgdGhlIGNhbGwgZnJhbWUgYW5kIHRoZSBpbmRl
eCBvZiB0aGUgZXhpdCwgYW5kIHJldHVybnMgdGhlIGFkZHJlc3MgdG8KIC8vIGp1bXAgdG8uCi1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExPU1JFeGl0LCB2b2lk
KiwgKENhbGxGcmFtZSosIHVuc2lnbmVkIGV4aXRJRCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db21waWxlRlRMT1NSRXhpdCwgdm9pZCosIChDYWxsRnJhbWUqLCBDQ2Fs
bFVJbnQzMiBleGl0SUQpKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAppbmRleCAzOTY2YjRkYWZlODYw
ZjlhOTI2ZTg5OTM1ZDFiOWUxY2Y5NzA3NWE0Li41YzE1Mjg4MWViODE1Y2IwNjQyZmYwZjhmYzg4
ZmZjYjc3OWY4YTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9w
ZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9u
cy5jcHAKQEAgLTY5OSw3ICs2OTksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUiwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZQogICAgIH0K
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdl
dEluZGV4LCB1bnNpZ25lZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVu
bGlua2VkU3RyaW5nSnVtcFRhYmxlKiB1bmxpbmtlZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdBbmRHZXRJbmRl
eCwgQ0NhbGxVSW50MzI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqIHVubGlua2VkVGFibGUsIEpTU3RyaW5n
KiBzdHJpbmcpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03MTMsNyArNzEz
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdl
dEluZGV4LCB1bnNpZ25lZCwgKEpTR2xvYmFsT2IKICAgICByZXR1cm4gdW5saW5rZWRUYWJsZS0+
aW5kZXhGb3JWYWx1ZShzdHJJbXBsLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4
KCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0
QXNUeXBlb2ZUeXBlLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBvYmplY3QpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9i
amVjdEFzVHlwZW9mVHlwZSwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTcyOCw3ICs3MjgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVHlwZU9mT2JqZWN0QXNUeXBlb2ZUeXBlLCBpbnQzMl90LCAoSlNHbG9iYWxPYgogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihUeXBlb2ZUeXBlOjpPYmplY3QpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTExhenlTbG93UGF0aCwg
dm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWduZWQgaW5kZXgpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIENDYWxsVUludDMyIGluZGV4KSkKIHsKICAgICBWTSYgdm0g
PSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIC8vIERvbid0IG5lZWQgYW4gQWN0aXZl
U2NyYXRjaEJ1ZmZlclNjb3BlIGhlcmUgYmVjYXVzZSB3ZSBEZWZlckdDRm9yQVdoaWxlLgpAQCAt
NzQ1LDEwICs3NDUsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBp
bGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWwKICAgICByZXR1cm4gbGF6
eVNsb3dQYXRoLnN0dWIoKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhvcGVyYXRpb25SZXBvcnRCb3VuZHND
aGVja0VsaW1pbmF0aW9uRXJyb3JBbmRDcmFzaCwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9p
ZCwgKGludHB0cl90IGNvZGVCbG9ja0FzSW50UHRyLCBpbnQzMl90IG5vZGVJbmRleCwgaW50MzJf
dCBjaGlsZDFJbmRleCwgaW50MzJfdCBjaGlsZDJJbmRleCwgaW50MzJfdCBjaGVja2VkSW5kZXgs
IGludDMyX3QgYm91bmRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVU
RVMob3BlcmF0aW9uUmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVycm9yQW5kQ3Jhc2gsIE5P
X1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChDQ2FsbEludHB0ciBjb2RlQmxvY2tBc0ludFB0
ciwgQ0NhbGxJbnQzMiBub2RlSW5kZXgsIENDYWxsSW50MzIgY2hpbGQxSW5kZXgsIENDYWxsSW50
MzIgY2hpbGQySW5kZXgsIENDYWxsSW50MzIgY2hlY2tlZEluZGV4LCBDQ2FsbEludDMyIGJvdW5k
cykpCiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBiaXR3aXNlX2Nhc3Q8Q29kZUJsb2Nr
Kj4oY29kZUJsb2NrQXNJbnRQdHIpOwotICAgIGRhdGFMb2dMbigiQm91bmRzIENoZWNrIEVpbWlu
YXRpb24gZXJyb3IgZm91bmQgQCBEQCIsIG5vZGVJbmRleCwgIjogQXNzZXJ0SW5Cb3VuZHMoaW5k
ZXggREAiLCBjaGlsZDFJbmRleCwgIjogIiwgY2hlY2tlZEluZGV4LCAiLCBib3VuZHMgREAiLCBj
aGlsZDJJbmRleCwgIiAiLCBib3VuZHMsICIpIGluICIsIGNvZGVCbG9jayk7CisgICAgZGF0YUxv
Z0xuKCJCb3VuZHMgQ2hlY2sgRWltaW5hdGlvbiBlcnJvciBmb3VuZCBAIERAIiwgaW50MzJfdChu
b2RlSW5kZXgpLCAiOiBBc3NlcnRJbkJvdW5kcyhpbmRleCBEQCIsIGludDMyX3QoY2hpbGQxSW5k
ZXgpLCAiOiAiLCBpbnQzMl90KGNoZWNrZWRJbmRleCksICIsIGJvdW5kcyBEQCIsIGludDMyX3Qo
Y2hpbGQySW5kZXgpLCAiICIsIGludDMyX3QoYm91bmRzKSwgIikgaW4gIiwgY29kZUJsb2NrKTsK
ICAgICBDUkFTSCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9u
cy5oCmluZGV4IDViYjhkMzBiN2IxMDFkNDA2MmI2ZjY2ZTkyYzBlM2EwZjhkM2ExZTQuLmMwMDgz
ZGJmMTg1YmJlNDI2NDI1YjA3ZTRjZGYxZDE3YTYyZjg3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5oCkBAIC00MiwxMiArNDIsMTIgQEAgSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6ZU9iamVjdEluT1NSLCBKU0NlbGwqLCAo
SlNHbG9iYWxPYmoKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3B1bGF0
ZU9iamVjdEluT1NSLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFeGl0VGltZU9iamVjdE1hdGVy
aWFsaXphdGlvbiosIEVuY29kZWRKU1ZhbHVlKiwgRW5jb2RlZEpTVmFsdWUqKSk7CiAKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTExhenlTbG93UGF0aCwgdm9p
ZCosIChDYWxsRnJhbWUqLCB1bnNpZ25lZCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21waWxlRlRMTGF6eVNsb3dQYXRoLCB2b2lkKiwgKENhbGxGcmFtZSosIENDYWxs
VUludDMyKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3Ry
aW5nQW5kR2V0SW5kZXgsIHVuc2lnbmVkLCAoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBVbmxpbmtl
ZFN0cmluZ0p1bXBUYWJsZSosIEpTU3RyaW5nKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5cGUsIGludDMyX3QsIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dp
dGNoU3RyaW5nQW5kR2V0SW5kZXgsIENDYWxsVUludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiwgY29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqLCBKU1N0cmluZyopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0QXNUeXBlb2ZUeXBl
LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwog
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlcG9ydEJvdW5kc0NoZWNrRWxp
bWluYXRpb25FcnJvckFuZENyYXNoLCB2b2lkLCAoaW50cHRyX3QgY29kZUJsb2NrQXNJbnRQdHIs
IGludDMyX3QsIGludDMyX3QsIGludDMyX3QsIGludDMyX3QsIGludDMyX3QpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVy
cm9yQW5kQ3Jhc2gsIHZvaWQsIChDQ2FsbEludHB0ciBjb2RlQmxvY2tBc0ludFB0ciwgQ0NhbGxJ
bnQzMiwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMikpOwog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ND
YWxsSGVscGVycy5oCmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2Nm
NjQuLjg1NWVkNDBiNjU5MWY0Mzc0ZDEyZGMxYzM5NmUxNzA3MzE0MjFmNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVO
QUJMRShKSVQpCiAKICNpbmNsdWRlICJBc3NlbWJseUhlbHBlcnMuaCIKKyNpbmNsdWRlICJDQ2Fs
bFR5cGVzLmgiCiAjaW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKICNp
bmNsdWRlICJTdGFja0FsaWdubWVudC5oIgpAQCAtNjA4LDIzICs2MDksMjMgQEAgcHJpdmF0ZToK
ICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBu
dW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1GUFJBcmdzLCB1
bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1NvdXJjZXMsIHVuc2lnbmVk
IGV4dHJhR1BSQXJncywgdW5zaWduZWQgbm9uQXJnR1BScywgdW5zaWduZWQgZXh0cmFQb2tlLCB0
eXBlbmFtZSBBcmcsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgQUxXQVlTX0lOTElORSBzdGQ6OmVu
YWJsZV9pZl90PAotICAgICAgICBzdGQ6OmlzX3NhbWU8Q1VSUkVOVF9BUkdVTUVOVF9UWVBFLCBB
cmc+Ojp2YWx1ZQotICAgICAgICAmJiBzdGQ6OmlzX2ludGVncmFsPENVUlJFTlRfQVJHVU1FTlRf
VFlQRT46OnZhbHVlCi0gICAgICAgICYmIChzaXplb2YoQ1VSUkVOVF9BUkdVTUVOVF9UWVBFKSA8
PSA0KT4KKyAgICBBTFdBWVNfSU5MSU5FIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnRlZ3Jh
bF92PEFyZz4gJiYgc3RkOjppc19zYW1lX3Y8Q1VSUkVOVF9BUkdVTUVOVF9UWVBFLCBDQ2FsbElu
dGVnZXI8QXJnPj4+CiAgICAgc2V0dXBBcmd1bWVudHNJbXBsKEFyZ0NvbGxlY3Rpb248bnVtR1BS
QXJncywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBSU291cmNlcywgbnVtQ3Jvc3NT
b3VyY2VzLCBleHRyYUdQUkFyZ3MsIG5vbkFyZ0dQUnMsIGV4dHJhUG9rZT4gYXJnU291cmNlUmVn
cywgQXJnIGFyZywgQXJncy4uLiBhcmdzKQogICAgIHsKLSAgICAgICAgc2V0dXBBcmd1bWVudHNJ
bXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIFRydXN0ZWRJbW0zMihhcmcpLCBhcmdz
Li4uKTsKKyAgICAgICAgaWYgY29uc3RleHByIChzaXplb2YoQXJnKSA8PSA0KQorICAgICAgICAg
ICAgc2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIFRydXN0
ZWRJbW0zMihhcmcpLCBhcmdzLi4uKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0dXBB
cmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIFRydXN0ZWRJbW02NChh
cmcpLCBhcmdzLi4uKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25U
eXBlLCB1bnNpZ25lZCBudW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25l
ZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1Nv
dXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BSQXJncywgdW5zaWduZWQgbm9uQXJnR1BScywgdW5zaWdu
ZWQgZXh0cmFQb2tlLCB0eXBlbmFtZSBBcmcsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgQUxXQVlT
X0lOTElORSBzdGQ6OmVuYWJsZV9pZl90PAotICAgICAgICBzdGQ6OmlzX3NhbWU8Q1VSUkVOVF9B
UkdVTUVOVF9UWVBFLCBBcmc+Ojp2YWx1ZQotICAgICAgICAmJiBzdGQ6OmlzX2ludGVncmFsPENV
UlJFTlRfQVJHVU1FTlRfVFlQRT46OnZhbHVlCi0gICAgICAgICYmIChzaXplb2YoQ1VSUkVOVF9B
UkdVTUVOVF9UWVBFKSA9PSA4KT4KKyAgICBBTFdBWVNfSU5MSU5FIHN0ZDo6ZW5hYmxlX2lmX3Q8
c3RkOjppc19zYW1lX3Y8QXJnLCBDQ2FsbEludGVnZXI8dHlwZW5hbWUgQXJnOjpJbnRlZ2VyVHlw
ZT4+ICYmIHN0ZDo6aXNfc2FtZV92PENVUlJFTlRfQVJHVU1FTlRfVFlQRSwgQXJnPj4KICAgICBz
ZXR1cEFyZ3VtZW50c0ltcGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBudW1HUFJTb3VyY2Vz
LCBudW1GUFJBcmdzLCBudW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJhR1BSQXJn
cywgbm9uQXJnR1BScywgZXh0cmFQb2tlPiBhcmdTb3VyY2VSZWdzLCBBcmcgYXJnLCBBcmdzLi4u
IGFyZ3MpCiAgICAgewotICAgICAgICBzZXR1cEFyZ3VtZW50c0ltcGw8T3BlcmF0aW9uVHlwZT4o
YXJnU291cmNlUmVncywgVHJ1c3RlZEltbTY0KGFyZyksIGFyZ3MuLi4pOworICAgICAgICBpZiBj
b25zdGV4cHIgKHNpemVvZih0eXBlbmFtZSBBcmc6OkludGVnZXJUeXBlKSA8PSA0KQorICAgICAg
ICAgICAgc2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIFRy
dXN0ZWRJbW0zMih0eXBlbmFtZSBBcmc6OkludGVnZXJUeXBlKGFyZykpLCBhcmdzLi4uKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgc2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+
KGFyZ1NvdXJjZVJlZ3MsIFRydXN0ZWRJbW02NCh0eXBlbmFtZSBBcmc6OkludGVnZXJUeXBlKGFy
ZykpLCBhcmdzLi4uKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25U
eXBlLCB1bnNpZ25lZCBudW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25l
ZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1Nv
dXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BSQXJncywgdW5zaWduZWQgbm9uQXJnR1BScywgdW5zaWdu
ZWQgZXh0cmFQb2tlLCB0eXBlbmFtZSBBcmcsIHR5cGVuYW1lLi4uIEFyZ3M+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsVHlwZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQ0NhbGxUeXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNjc2ZTIxN2ZkZGMxNjQzOGJh
ODA0YWRhYTMwN2MyZWE3OGNlYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsVHlwZXMuaApAQCAtMCwwICsxLDcxIEBACisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlIDx3dGYvU3RkSW50RXh0cmFzLmg+CisKK25hbWVz
cGFjZSBKU0MgeworCisjaWYgQ1BVKFJJU0NWNjQpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3Ry
dWN0IFJJU0NWNjRDQ2FsbEludGVnZXIgeworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFQpIDw9
IHNpemVvZihDUFVSZWdpc3RlcikpOworICAgIHVzaW5nIEludGVnZXJUeXBlID0gVDsKKworICAg
IFJJU0NWNjRDQ2FsbEludGVnZXIoKSA9IGRlbGV0ZTsKKyAgICBSSVNDVjY0Q0NhbGxJbnRlZ2Vy
KFQgdmFsdWUpCisgICAgICAgIDogdmFsdWUodmFsdWUpCisgICAgeyB9CisKKyAgICBvcGVyYXRv
ciBUKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc2l6ZW9mKFQpID09IDQp
IHsKKyAgICAgICAgICAgIGFzbSB2b2xhdGlsZSAoCisgICAgICAgICAgICAgICAgInNleHQudyAl
W291dF92YWx1ZV0sICVbaW5fdmFsdWVdXG5cdCIKKyAgICAgICAgICAgICAgICA6IFtvdXRfdmFs
dWVdICI9ciIgKHZhbHVlKQorICAgICAgICAgICAgICAgIDogW2luX3ZhbHVlXSAiciIgKHZhbHVl
KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVudW1UeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjpp
c19lbnVtX3Y8RW51bVR5cGU+Pj4KKyAgICBvcGVyYXRvciBFbnVtVHlwZSgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gRW51bVR5cGUoVCgqdGhpcykpOworICAgIH0KKworICAgIG11dGFi
bGUgVCB2YWx1ZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit1c2luZyBDQ2FsbEludGVn
ZXIgPSBSSVNDVjY0Q0NhbGxJbnRlZ2VyPFQ+OworI2Vsc2UKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
CitzdHJ1Y3QgQ0NhbGxJbnRlZ2VyIHsKKyAgICB1c2luZyBJbnRlZ2VyVHlwZSA9IFQ7CisKKyAg
ICBDQ2FsbEludGVnZXIoKSA9IGRlbGV0ZTsKKyAgICBDQ2FsbEludGVnZXIoVCB2YWx1ZSkKKyAg
ICAgICAgOiB2YWx1ZSh2YWx1ZSkKKyAgICB7IH0KKworICAgIG9wZXJhdG9yIFQoKSBjb25zdCB7
IHJldHVybiB2YWx1ZTsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW51bVR5cGUsIHR5cGVu
YW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW1fdjxFbnVtVHlwZT4+PgorICAgIG9w
ZXJhdG9yIEVudW1UeXBlKCkgY29uc3QgeyByZXR1cm4gRW51bVR5cGUodmFsdWUpOyB9CisKKyAg
ICBUIHZhbHVlOworfTsKKyNlbmRpZgorCit1c2luZyBDQ2FsbEludDMyID0gQ0NhbGxJbnRlZ2Vy
PGludDMyX3Q+OwordXNpbmcgQ0NhbGxVSW50MzIgPSBDQ2FsbEludGVnZXI8dWludDMyX3Q+Owor
dXNpbmcgQ0NhbGxJbnQ2NCA9IENDYWxsSW50ZWdlcjxpbnQ2NF90PjsKK3VzaW5nIENDYWxsVUlu
dDY0ID0gQ0NhbGxJbnRlZ2VyPHVpbnQ2NF90PjsKK3VzaW5nIENDYWxsSW50cHRyID0gQ0NhbGxJ
bnRlZ2VyPGludHB0cl90PjsKK3VzaW5nIENDYWxsVUludHB0ciA9IENDYWxsSW50ZWdlcjx1aW50
cHRyX3Q+OwordXNpbmcgQ0NhbGxTaXplID0gQ0NhbGxJbnRlZ2VyPHNpemVfdD47CisKK30gLy8g
bmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDI1MGI3NzlkNjE0MGYzOTVkN2M2MDJi
NGE2NGQwZmIwZWE0NTNiMzYuLjU0NzE4NjE1ZjkxNTNmMWIxY2YwNGJlYzZjY2IyYWIzZmI2MjA2
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAt
MjA3LDcgKzIwNyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd0l0
ZXJhdG9yUmVzdWx0SXNOb3RPYmplY3QsIHZvaWQsIChKU0dsb2JhCiAgICAgdGhyb3dUeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkl0ZXJhdG9yIHJlc3VsdCBpbnRlcmZhY2UgaXMgbm90
IGFuIG9iamVjdC4iX3MpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q2FsbEFyaXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsQXJpdHlDaGVjaywgQ0NhbGxJ
bnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjI0LDcgKzIyNCw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsQXJpdHlDaGVjaywgaW50MzJfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2ssIGludDMyX3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yNDEsNyArMjQxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnN0cnVjdEFyaXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1
cm4gbWlzc2luZ0FyZ0NvdW50OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVHJ5R2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVp
bnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UcnlHZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUg
YmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTgsNyArMjU4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGcKIH0KIAogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJ
ZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRHZW5lcmljLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjczLDcgKzI3Myw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG90LmdldFB1cmVSZXN1bHQoKSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkT3B0aW1p
emUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VHJ5R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yOTUsNyArMjk1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNsb3QuZ2V0UHVyZVJlc3VsdCgpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxl
SWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERp
cmVjdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0
ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMzE0LDcgKzMxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRCeUlkRGlyZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZm91bmQgPyBzbG90LmdldFZhbHVl
KGdsb2JhbE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKSkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0
ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMzMyLDcgKzMzMiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRCeUlkRGlyZWN0R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZm91bmQgPyBzbG90LmdldFZhbHVl
KGdsb2JhbE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKSkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXplLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RP
cHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUlu
dHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMzU0LDcgKzM1NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeUlkRGlyZWN0T3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZm91bmQgPyBzbG90LmdldFZh
bHVlKGdsb2JhbE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKSkpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVu
Y29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsK
ICAgICAKQEAgLTM3NSw3ICszNzUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRC
eUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwog
ICAgIApAQCAtMzk0LDcgKzM5NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1Yklu
Zm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlm
aWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7
CiAgICAgCkBAIC00MTcsNyArNDE3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamUKICAgICB9
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRo
aXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpcywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCBD
Q2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVy
U2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC00MzYsNyArNDM2LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpcywgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1
ZS5nZXQoZ2xvYmFsT2JqZWN0LCBpZGVudCwgc2xvdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIENDYWxsVUludHB0ciBy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNh
bXBsZXJTY29wZShmYWxzZSk7CiAKQEAgLTQ1Myw3ICs0NTMsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUs
IChKU0dsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYmFzZVZhbHVlLmdldChnbG9iYWxP
YmplY3QsIGlkZW50LCBzbG90KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRK
U1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCB1aW50cHRyX3QgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJs
ZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3Bl
KGZhbHNlKTsKICAgICAKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bAogICAgIH0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJ
ZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRy
X3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSW5CeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJh
c2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNh
bXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKQEAgLTUwNSw3ICs1MDUsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkR2VuZXJpYywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKGJhc2VPYmplY3QtPmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIGlkZW50LCBz
bG90KSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkT3B0
aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3Qg
cmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSW5CeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1w
bGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC02OTcsNyArNjk3LDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVCcmFuZEdlbmVyaWMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbihhc09iamVjdChiYXNlVmFsdWUpLT5oYXNQcml2YXRlQnJhbmQoZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJyYW5kKSkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikp
CiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAg
IApAQCAtNzE2LDcgKzcxNiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgTE9HX0lD
KChJQ0V2ZW50OjpPcGVyYXRpb25QdXRCeUlkU3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JO
dWxsKHZtKSwgaWRlbnQsIHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWlu
dHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJT
Y29wZShmYWxzZSk7CiAgICAgCkBAIC03MzUsNyArNzM1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmEKICAgICBMT0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QsIGJh
c2VWYWx1ZS5jbGFzc0luZm9Pck51bGwodm0pLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZh
bHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGly
ZWN0U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVy
U2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTc1NCw3ICs3
NTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIExPR19JQygoSUNFdmVudDo6T3Bl
cmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCh2bSks
IGlkZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRw
dHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1w
bGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNzczLDcgKzc3Myw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqCiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9u
U3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKHZtKSwgaWRlbnQsIHNsb3QuYmFzZSgp
ID09IGJhc2VWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlJZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRl
bnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmlj
dE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikp
CiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAg
IApAQCAtODA1LDcgKzgwNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCoKICAgICAgICAgcmVw
YXRjaFB1dEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwg
aWRlbnRpZmllciwgc2xvdCwgKnN0dWJJbmZvLCBQdXRCeUtpbmQ6OkJ5SWQsIFB1dEtpbmQ6Ok5v
dERpcmVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlk
Tm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlm
aWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0
T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkK
IHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAg
CkBAIC04MzcsNyArODM3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWMKICAgICAgICAgcmVw
YXRjaFB1dEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwg
aWRlbnRpZmllciwgc2xvdCwgKnN0dWJJbmZvLCBQdXRCeUtpbmQ6OkJ5SWQsIFB1dEtpbmQ6Ok5v
dERpcmVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlk
RGlyZWN0U3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVu
dGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0
U3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlm
aWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7
CiAgICAgCkBAIC04NjgsNyArODY4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWREaXJlY3RTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2IKICAgICAg
ICAgcmVwYXRjaFB1dEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlT2JqZWN0LCBzdHJ1
Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpCeUlkLCBQdXRL
aW5kOjpEaXJlY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJ
ZERpcmVjdE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2Nv
cGUoZmFsc2UpOwogICAgIApAQCAtOTM5LDcgKzkzOSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGlj
IHZvaWQgZGVmaW5lUHJpdmF0ZUZpZWxkKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjCiAgICAgY2FsbGJhY2sodm0sIGNvZGVCbG9jaywgb2xkU3RydWN0dXJlLCBwdXRTbG90LCBp
ZGVudCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGVm
aW5lUHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVG
aWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC05NTIsNyArOTUyLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZv
aWQsIChKU0dsb2IKICAgICBkZWZpbmVQcml2YXRlRmllbGQodm0sIGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBiYXNlVmFsdWUsIGlkZW50aWZpZXIsIHZhbHVlLCBbXShWTSYsIENvZGVCbG9jayos
IFN0cnVjdHVyZSosIFB1dFByb3BlcnR5U2xvdCYsIGNvbnN0IElkZW50aWZpZXImKSB7IH0pOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZh
dGVGaWVsZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRl
bnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmlu
ZVByaXZhdGVGaWVsZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVy
U2NvcGUoZmFsc2UpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTk3NSw3
ICs5NzUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmlu
ZVByaXZhdGVGaWVsZFN0cmljdE9wdGltaXplLCB2b2lkLAogICAgIH0pOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciBy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtOTg4LDcgKzk4OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPCiAgICAgc2V0UHJpdmF0
ZUZpZWxkKHZtLCBnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBpZGVudGlmaWVy
LCB2YWx1ZSwgW10oVk0mLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBQdXRQcm9wZXJ0eVNsb3Qm
LCBjb25zdCBJZGVudGlmaWVyJikgeyB9KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2Ft
cGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVmlydHVhbENhbGwsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKENhbGxGcmFtZSog
YwogICAgIHJldHVybiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbGVl
RnJhbWUsIGNhbGxMaW5rSW5mbywgY2FsbGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVkKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVMZXNzLCBzaXplX3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlTGVzcywgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTYyLDcg
KzE1NjIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3Ms
IHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBqc0xlc3M8dHJ1
ZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AyKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlTGVzc0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzc0VxLCBDQ2FsbFNpemU6
OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1NzEsNyArMTU3MSw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzc0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsCiAgICAgcmV0dXJuIGpzTGVzc0VxPHRydWU+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIsIHNpemVfdCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbXBhcmVHcmVhdGVyLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1
ODAsNyArMTU4MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
R3JlYXRlciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIGpzTGVz
czxmYWxzZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMiksIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT3AxKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlR3JlYXRlckVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlckVx
LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1ODksNyArMTU4OSw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlckVxLCBzaXplX3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIGpzTGVzc0VxPGZhbHNlPihnbG9iYWxPYmpl
Y3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cDEpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcSwg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29tcGFyZUVxLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTE2MDEsNyArMTYwMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21w
YXJlRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAjaWYgVVNFKEpTVkFM
VUU2NCkKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nRXEs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBs
ZWZ0LCBKU0NlbGwqIHJpZ2h0KSkKICNlbHNlCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIGxlZnQsIEpTQ2VsbCogcmlnaHQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkp
CiAjZW5kaWYKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xNjE2LDcg
KzE2MTYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlu
Z0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogI2VuZGlmCiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEsIHNpemVfdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVTdHJpY3RFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjI5LDcg
KzE2MjksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlj
dEVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogfQogCiAjaWYgVVNFKEJJR0lOVDMy
KQotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcUhlYXBCaWdJbnRU
b0ludDMyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGhl
YXBCaWdJbnQsIGludDMyX3Qgc21hbGxJbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbXBhcmVFcUhlYXBCaWdJbnRUb0ludDMyLCBDQ2FsbFNpemU6OkludGVnZXJUeXBl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBoZWFwQmlnSW50LCBDQ2Fs
bEludDMyIHNtYWxsSW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTY0
MSw3ICsxNjQxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVF
cUhlYXBCaWdJbnRUb0ludDMyLCBzaXplX3QsIChKU0dsb2JhbE8KIH0KICNlbmRpZgogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBBcnJheUFsbG9jYXRpb25Q
cm9maWxlKiBwcm9maWxlLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMsIGludCBzaXplKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhQcm9maWxlLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEFycmF5QWxsb2NhdGlvblBy
b2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgQ0NhbGxJbnQzMiBzaXplKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTgxNCw3ICsxODE0LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhbmRsZVRyYXBzLCBVbnVzZWRQdHIsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgaW50
MzJfdCBkZWJ1Z0hvb2tUeXBlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
ZWJ1Zywgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIENDYWxsSW50MzIgZGVidWdIb29rVHlwZSkpCiB7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xODMwLDcgKzE4MzAsNyBAQCBzdGF0aWMgdm9pZCB1
cGRhdGVBbGxQcmVkaWN0aW9uc0FuZE9wdGltaXplQWZ0ZXJXYXJtVXAoQ29kZUJsb2NrKiBjb2Rl
QmxvY2spCiAgICAgY29kZUJsb2NrLT5vcHRpbWl6ZUFmdGVyV2FybVVwKCk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgU2xvd1BhdGhSZXR1cm5UeXBl
LCAoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYnl0ZWNvZGVJbmRleEJpdHMpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXplLCBTbG93UGF0aFJldHVyblR5cGUsIChW
TSogdm1Qb2ludGVyLCBDQ2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpCiB7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uT3B0aW1pemUsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKFZNKiB2bVBvaW50ZXIs
CiAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRyKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaCwgY2hhciosIChW
TSogdm1Qb2ludGVyLCB1aW50MzJfdCBieXRlY29kZUluZGV4Qml0cykpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoLCBjaGFyKiwgKFZNKiB2bVBv
aW50ZXIsIENDYWxsVUludDMyIGJ5dGVjb2RlSW5kZXhCaXRzKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTIwODIsNyArMjA4Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25UcnlPU1JFbnRlckF0Q2F0Y2gsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgdWluCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
cnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwg
dWludDMyX3QgYnl0ZWNvZGVJbmRleEJpdHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFuZFZhbHVlUHJvZmlsZSwgY2hhciosIChWTSogdm1Q
b2ludGVyLCBDQ2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpCiB7CiAgICAgVk0mIHZtID0g
KnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0yMTM1LDcgKzIxMzUsNyBAQCBzdGF0aWMgdm9pZCBwdXRBY2Nlc3NvckJ5VmFs
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBKU1ZhbAogICAg
ICAgICBiYXNlLT5wdXRTZXR0ZXIoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eUtleSwgYWNjZXNzb3Is
IGF0dHJpYnV0ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRH
ZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBv
YmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKiBn
ZXR0ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5SWQs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5p
cXVlZFN0cmluZ0ltcGwqIHVpZCwgQ0NhbGxJbnQzMiBvcHRpb25zLCBKU0NlbGwqIGdldHRlcikp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxNDgsNyArMjE0OCw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgYmFzZU9iai0+cHV0R2V0dGVyKGdsb2JhbE9iamVj
dCwgdWlkLCBnZXR0ZXIsIG9wdGlvbnMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IG9wdGlv
bnMsIEpTQ2VsbCogc2V0dGVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRTZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIENDYWxsSW50MzIgb3B0aW9ucywgSlND
ZWxsKiBzZXR0ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTYxLDcg
KzIxNjEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlJ
ZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIGJhc2VPYmotPnB1dFNldHRl
cihnbG9iYWxPYmplY3QsIHVpZCwgc2V0dGVyLCBvcHRpb25zKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBDQ2FsbEludDMyIGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTcwLDcgKzIxNzAsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsTwogICAgIHB1dEFjY2Vzc29yQnlWYWwoZ2xvYmFsT2JqZWN0LCBhc09iamVjdChi
YXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1dGUsIGFzT2Jq
ZWN0KGdldHRlciksIEFjY2Vzc29yVHlwZTo6R2V0dGVyKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2Ny
aXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2Ny
aXB0LCBDQ2FsbEludDMyIGF0dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTgwLDcgKzIxODAsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsTwogfQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBh
dHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFNldHRlclZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgQ0NhbGxJbnQzMiBhdHRyaWJ1
dGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFNldHRlclZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE5
Nyw3ICsyMTk3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRl
clNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIH0KIAogI2Vsc2UKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0lt
cGwqIHVpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVyQ2VsbCwgSlNDZWxsKiBz
ZXR0ZXJDZWxsKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJT
ZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVj
dCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGUsIEpTQ2VsbCog
Z2V0dGVyQ2VsbCwgSlNDZWxsKiBzZXR0ZXJDZWxsKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMjIxNCw3ICsyMjE0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIH0K
ICNlbmRpZgogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZkN1
c3RvbSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRIYXNJbnN0YW5jZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5z
dGFuY2VPZkN1c3RvbSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0
cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNDcyLDcgKzI0NzIsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2V0UHJpdmF0ZU5hbWUoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgZmllbGROYW1lVmFsdWUpKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRl
TmFtZUJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJ
bnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUg
c3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC0yNDkzLDcgKzI0OTMsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZE9w
dGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90
IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldFByaXZhdGVOYW1lQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewog
ICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIApAQCAtMjUy
NCw3ICsyNTI0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZh
dGVOYW1lQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEoKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnZXRQcml2YXRlTmFtZShnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBmaWVsZE5hbWUpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRHZW5lcmljLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxs
VUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKQEAgLTI1NTgsNyArMjU1OCw3IEBAIHN0YXRp
YyBib29sIGRlbGV0ZUJ5SWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBE
ZWxldGVQcm9wZXJ0eVNsb3QmCiAgICAgcmV0dXJuIGNvdWxkRGVsZXRlOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJZE9wdGltaXplLCBzaXplX3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRp
ZmllciwgRUNNQU1vZGUgZWNtYU1vZGUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVy
LCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTI1ODYsNyArMjU4Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxl
dGVCeUlkT3B0aW1pemUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRH
ZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllciwgRUNNQU1vZGUgZWNtYU1vZGUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmljLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIs
IEVDTUFNb2RlIGVjbWFNb2RlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MjYyMSw3ICsyNjIxLDcgQEAgc3RhdGljIGJvb2wgZGVsZXRlQnlWYWwoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVk0mIHZtLCBEZWxldGVQcm9wZXJ0eVNsb3QKICAgICByZXR1cm4gY291
bGREZWxldGU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVC
eVZhbE9wdGltaXplLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFQ01BTW9kZSBlY21hTW9kZSkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxPcHRpbWl6ZSwgQ0NhbGxTaXpl
OjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0
dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRTdWJzY3JpcHQsIEVDTUFNb2RlIGVjbWFNb2RlKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMjY1MSw3ICsyNjUxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EZWxldGVCeVZhbEdlbmVyaWMsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVDTUFNb2RlIGVjbWFNb2RlKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbEdlbmVyaWMsIENDYWxs
U2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkU3Vic2NyaXB0LCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI3MTcsNyArMjcxNyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25JbnN0YW5jZU9mT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0KSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJndW1l
bnRzLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUsIGludDMyX3QgbnVtVXNlZFN0YWNrU2xvdHMsIGludDMyX3QpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVudHMsIENDYWxsSW50
MzI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUsIENDYWxsSW50MzIgbnVtVXNlZFN0YWNrU2xvdHMsIENDYWxsSW50MzIpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzI1LDcgKzI3MjUsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cywgaW50
MzJfdCwgKEpTR2xvYgogICAgIHJldHVybiBzaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCB2bSwgbnVtVXNlZFN0YWNrU2xvdHMpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgaW50MzJf
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRB
cmd1bWVudHMsIGludDMyX3QgbnVtVXNlZFN0YWNrU2xvdHMsIGludDMyX3QgZmlyc3RWYXJBcmdP
ZmZzZXQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvclZh
cmFyZ3MsIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgQ0NhbGxJbnQzMiBudW1Vc2Vk
U3RhY2tTbG90cywgQ0NhbGxJbnQzMiBmaXJzdFZhckFyZ09mZnNldCkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3MzQsNyArMjczNCw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCBpbnQzMl90LCAoSlNHbG9iYWxP
YmplY3QqCiAgICAgcmV0dXJuIHNpemVGcmFtZUZvclZhcmFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIHZtLCBhcmd1bWVudHMsIG51bVVzZWRTdGFja1Nsb3RzLCBmaXJzdFZhckFyZ09mZnNl
dCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cEZvcndhcmRB
cmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJf
dCBsZW5ndGgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwRm9yd2Fy
ZEFyZ3VtZW50c0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyLCBD
Q2FsbEludDMyIGxlbmd0aCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3
NDMsNyArMjc0Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cEZv
cndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvCiAgICAgcmV0dXJuIG5ld0Nh
bGxGcmFtZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwVmFy
YXJnc0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBuZXdDYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIGlu
dDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBDQ2FsbEludDMyIGZpcnN0VmFyQXJnT2Zmc2V0LCBD
Q2FsbEludDMyIGxlbmd0aCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3
NTMsNyArMjc1Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZh
cmFyZ3NGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIG5ld0Nh
bGxGcmFtZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaENo
YXJXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3Qg
bWluKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVu
a25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRLZXksIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBDQ2FsbEludDMyIG1p
bikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3ODAsNyArMjc4MCw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25vd25L
ZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0
Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEtleSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QgbWluKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUs
IGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgQ0NhbGxT
aXplIHRhYmxlSW5kZXgsIENDYWxsSW50MzIgbWluKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2lu
dGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTI4MDEsNyArMjgwMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
d2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qIHZtUG9pCiAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwg
c2l6ZV90IHRhYmxlSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3
aXRjaFN0cmluZ1dpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5LCBDQ2FsbFNpemUgdGFibGVJbmRl
eCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMwMDEsNyArMzAwMSw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9I
YXZlUHJvcGVydHlTdG9yYWdlV2l0aEluCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWFs
bG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50
ZXIsIEpTT2JqZWN0KiBvYmplY3QsIHNpemVfdCBuZXdTaXplKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdl
LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsU2l6ZSBuZXdT
aXplKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmgKaW5kZXggZDVlOWY1YzcwNWE1ODkzOTA3MTFiYWY3MzcwYjAwNGIyNjFm
ZGI4NC4uZTNiYWIyOTBhZjJjZjQ4MjhlZDgyZTI1ZmQyNjdjY2E2NjBiNjAwMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAog
I2lmIEVOQUJMRShKSVQpCiAKKyNpbmNsdWRlICJDQ2FsbFR5cGVzLmgiCiAjaW5jbHVkZSAiSklU
TWF0aElDRm9yd2FyZHMuaCIKICNpbmNsdWRlICJKSVRPcGVyYXRpb25WYWxpZGF0aW9uLmgiCiAj
aW5jbHVkZSAiUHJpdmF0ZUZpZWxkUHV0S2luZC5oIgpAQCAtMTI0LDI5ICsxMjUsMjcgQEAgdXNp
bmcgSl9KSVRPcGVyYXRpb25fR1BQID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRS
SUJVVEVTICopKEpTR2xvYmFsT2IKIHVzaW5nIEpfSklUT3BlcmF0aW9uX0dQUFAgPSBFbmNvZGVk
SlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCB2b2lk
Kiwgdm9pZCosIHZvaWQqKTsKIHVzaW5nIEpfSklUT3BlcmF0aW9uX0dKSiA9IEVuY29kZWRKU1Zh
bHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB1c2luZyBKX0pJVE9wZXJhdGlvbl9HSkpNaWMgPSBF
bmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHZvaWQqKTsKLXVzaW5nIFpfSklUT3Bl
cmF0aW9uX0dKWlogPSBpbnQzMl90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKLXVzaW5nIEZfSklU
T3BlcmF0aW9uX0dGSlpaID0gQ2FsbEZyYW1lKihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKiko
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50
MzJfdCk7CiB1c2luZyBTcHJ0X0pJVE9wZXJhdGlvbl9FR0NsaSA9IFNsb3dQYXRoUmV0dXJuVHlw
ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoQ2FsbEZyYW1lKiwgSlNHbG9iYWxPYmplY3Qq
LCBDYWxsTGlua0luZm8qKTsKIHVzaW5nIFZfSklUT3BlcmF0aW9uX0NiID0gdm9pZChKSVRfT1BF
UkFUSU9OX0FUVFJJQlVURVMgKikoQ29kZUJsb2NrKik7Ci11c2luZyBaX0pJVE9wZXJhdGlvbl9H
ID0gaW50MzJfdCAoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0Kik7
Ci11c2luZyBQX0pJVE9wZXJhdGlvbl9WbVN0WkIgPSBjaGFyKihKSVRfT1BFUkFUSU9OX0FUVFJJ
QlVURVMgKikoVk0qLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBCdXR0ZXJmbHkqKTsKLXVzaW5nIFBf
SklUT3BlcmF0aW9uX0dTdFpCID0gY2hhciooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5Kik7Cit1c2luZyBa
X0pJVE9wZXJhdGlvbl9HID0gQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUoSklUX09QRVJBVElPTl9B
VFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0Kik7Cit1c2luZyBQX0pJVE9wZXJhdGlvbl9WbVN0
WkIgPSBjaGFyKihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoVk0qLCBTdHJ1Y3R1cmUqLCBD
Q2FsbEludDMyLCBCdXR0ZXJmbHkqKTsKK3VzaW5nIFBfSklUT3BlcmF0aW9uX0dTdFpCID0gY2hh
ciooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
KiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5Kik7CiB1c2luZyBKX0pJVE9wZXJhdGlvbl9HSiA9IEVu
Y29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlKTsKIHVzaW5nIEpfSklUT3BlcmF0aW9uX0dKSSA9IEVuY29kZWRKU1Zh
bHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR0pJUCA9
IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCosIHZvaWQqKTsKLXVzaW5nIFZf
SklUT3BlcmF0aW9uX0dTc2lKSkMgPSB2b2lkKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCB1aW50cHRyX3QpOwotdXNpbmcgQ19KSVRPcGVyYXRpb25fVFQgPSB1aW50cHRy
X3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKik7
Ci11c2luZyBDX0pJVE9wZXJhdGlvbl9CX0dKc3NKc3MgPSB1aW50cHRyX3QoSklUX09QRVJBVElP
Tl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopOwot
dXNpbmcgU19KSVRPcGVyYXRpb25fR0MgPSBzaXplX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVT
ICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKik7Ci11c2luZyBTX0pJVE9wZXJhdGlvbl9HQ1og
PSBzaXplX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKiwgaW50MzJfdCk7Ci11c2luZyBTX0pJVE9wZXJhdGlvbl9HSkogPSBzaXplX3QoSklUX09Q
RVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlKTsKK3VzaW5nIFZfSklUT3BlcmF0aW9uX0dTc2lKSkMgPSB2b2lkKEpJVF9P
UEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpOwordXNpbmcg
Q19KSVRPcGVyYXRpb25fVFQgPSBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlKEpJVF9PUEVSQVRJ
T05fQVRUUklCVVRFUyAqKShTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopOwordXNpbmcgQ19KSVRP
cGVyYXRpb25fQl9HSnNzSnNzID0gQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZShKSVRfT1BFUkFU
SU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7
Cit1c2luZyBTX0pJVE9wZXJhdGlvbl9HQyA9IENDYWxsU2l6ZTo6SW50ZWdlclR5cGUoSklUX09Q
RVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKik7Cit1c2luZyBT
X0pJVE9wZXJhdGlvbl9HQ1ogPSBDQ2FsbFNpemU6OkludGVnZXJUeXBlKEpJVF9PUEVSQVRJT05f
QVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIENDYWxsSW50MzIpOwordXNp
bmcgU19KSVRPcGVyYXRpb25fR0pKID0gQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZShKSVRfT1BFUkFU
SU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpOwogdXNpbmcgVl9KSVRPcGVyYXRpb25fR0pKSiA9IHZvaWQoSklUX09QRVJBVElP
Tl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB1c2luZyBKX0pJVE9wZXJhdGlvbl9HU3NpSkogPSBF
bmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB1
c2luZyBKX0pJVE9wZXJhdGlvbl9HU3NpSkpJID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElP
Tl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiB1c2luZyBW
X0pJVE9wZXJhdGlvbl9HQ0NKID0gdm9pZChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSk7CiB1c2luZyBK
X0pJVE9wZXJhdGlvbl9HU3NpSkkgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJ
QlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwotdXNpbmcgWl9KSVRPcGVyYXRpb25fR0paWiA9IGlu
dDMyX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QpOwotdXNpbmcgRl9KSVRPcGVyYXRpb25fR0ZKWlog
PSBDYWxsRnJhbWUqKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKK3VzaW5nIFpf
SklUT3BlcmF0aW9uX0dKWlogPSBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZShKSVRfT1BFUkFUSU9O
X0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQz
MiwgQ0NhbGxJbnQzMik7Cit1c2luZyBGX0pJVE9wZXJhdGlvbl9HRkpaWiA9IENhbGxGcmFtZSoo
SklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwg
RW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIsIENDYWxsSW50MzIpOwogCiAvLyBUaGlzIG1ldGhv
ZCBpcyB1c2VkIHRvIGxvb2t1cCBhbiBleGNlcHRpb24gaGFuZGVyLCBrZXllZCBieSBmYXVsdExv
Y2F0aW9uLCB3aGljaCBpcwogLy8gdGhlIHJldHVybiBsb2NhdGlvbiBmcm9tIG9uZSBvZiB0aGUg
Y2FsbHMgb3V0IHRvIG9uZSBvZiB0aGUgaGVscGVyIG9wZXJhdGlvbnMgYWJvdmUuCkBAIC0xNjEs
MjQgKzE2MCwyNCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdyYXBw
ZWRWYWx1ZUZvclRhcmdldCwgRW5jb2RlZEpTVmFsdWUsIChKUwogSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UaHJvd1JlbW90ZUZ1bmN0aW9uRXhjZXB0aW9uLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTUmVtb3RlRnVuY3Rpb24qKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IsIHZvaWQsIChDb2RlQmxvY2sqKSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrLCBpbnQzMl90
LCAoSlNHbG9iYWxPYmplY3QqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnN0cnVjdEFyaXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2ssIENDYWxsSW50MzI6
OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2ssIENDYWxsSW50MzI6OkludGVnZXJUeXBl
LCAoSlNHbG9iYWxPYmplY3QqKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVHJ5R2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwg
dWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6
ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRw
dHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0
R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJ
ZERpcmVjdE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRw
dHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZEdlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0Nh
bGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5
SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRHZW5lcmljLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0
cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEND
YWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlk
V2l0aFRoaXNHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxV
SW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJl
Y3RPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOwogCi1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRy
X3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkT3B0aW1pemUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSW5CeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUs
IENDYWxsVUludHB0cikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5
VmFsR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgQXJyYXlQcm9maWxlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlWYWxPcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgQXJyYXlQ
cm9maWxlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVOYW1lR2VuZXJpYywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKSk7CkBAIC0xODYsMTggKzE4NSwxOCBAQCBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVOYW1lT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQcml2YXRlQnJh
bmRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5kT3B0aW1pemUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5SWRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRE
aXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRE
aXJlY3ROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1Yklu
Zm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVs
ZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdE9wdGltaXpl
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0
cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3Ry
aWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
Q0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdE9w
dGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxs
VUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0
UHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CiAKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0UHJpdmF0ZUJyYW5kT3B0aW1pemUsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNoZWNrUHJp
dmF0ZUJyYW5kT3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CkBAIC0yMjIsMTkgKzIyMSwx
OSBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxpbmtDYWxsLCBTbG93UGF0
aFJldHVyblR5cGUsIChDYWxsRnJhbWUqLCBKUwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25MaW5rUG9seW1vcnBoaWNDYWxsLCBTbG93UGF0aFJldHVyblR5cGUsIChDYWxsRnJh
bWUqLCBKU0dsb2JhbE9iamVjdCosIENhbGxMaW5rSW5mbyopKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVmlydHVhbENhbGwsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKENhbGxG
cmFtZSosIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbExpbmtJbmZvKikpOwogCi1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVMZXNzLCBzaXplX3QsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzc0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZUVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlU3RyaWN0RXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVMZXNzLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3NFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyLCBDQ2FsbFNpemU6Oklu
dGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJF
cSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiAjaWYgVVNFKEpT
VkFMVUU2NCkKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlu
Z0VxLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBsZWZ0LCBKU0Nl
bGwqIHJpZ2h0KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVF
cUhlYXBCaWdJbnRUb0ludDMyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogaGVh
cEJpZ0ludCwgaW50MzJfdCBzbWFsbEludCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlw
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBoZWFwQmlnSW50LCBDQ2FsbEludDMyIHNtYWxs
SW50KSk7CiAjZWxzZQotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
U3RyaW5nRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBsZWZ0LCBKU0NlbGwq
IHJpZ2h0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJp
bmdFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBs
ZWZ0LCBKU0NlbGwqIHJpZ2h0KSk7CiAjZW5kaWYKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMsIGlu
dDMyX3Qgc2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJh
eVdpdGhQcm9maWxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlBbGxv
Y2F0aW9uUHJvZmlsZSosIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgQ0NhbGxJbnQzMiBzaXplKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemVBbmRQ
cm9maWxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlBbGxvY2F0aW9u
UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVlIHNpemUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3RnVuY3Rpb24sIEVuY29kZWRKU1ZhbHVlLCAoVk0qLCBKU1Njb3BlKiwg
SlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGdW5jdGlv
bldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQsIEVuY29kZWRKU1ZhbHVlLCAo
Vk0qLCBKU1Njb3BlKiwgSlNDZWxsKikpOwpAQCAtMjUzLDUzICsyNTIsNTMgQEAgSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBc3luY0dlbmVyYXRvciwgSlNDZWxsKiwgKFZN
KiwgU3RydWN0dXJlKikKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmVn
ZXhwLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhbmRsZVRyYXBzLCBVbnVzZWRQdHIsIChKU0dsb2JhbE9i
amVjdCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3csIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qLCBpbnQzMl90KSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qLCBDQ2FsbEludDMyKSk7
CiAjaWYgRU5BQkxFKERGR19KSVQpCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk9wdGltaXplLCBTbG93UGF0aFJldHVyblR5cGUsIChWTSosIHVpbnQzMl90KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaCwgY2hhciosIChW
TSosIHVpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9T
UkVudGVyQXRDYXRjaEFuZFZhbHVlUHJvZmlsZSwgY2hhciosIChWTSosIHVpbnQzMl90KSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXplLCBTbG93UGF0aFJldHVy
blR5cGUsIChWTSosIENDYWxsVUludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaCwgY2hhciosIChWTSosIENDYWxsVUludDMyKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFuZFZh
bHVlUHJvZmlsZSwgY2hhciosIChWTSosIENDYWxsVUludDMyKSk7CiAjZW5kaWYKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IG9wdGlvbnMsIEpT
Q2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlJ
ZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBp
bnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0R2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikpOwotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwq
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgQ0NhbGxJ
bnQzMiBvcHRpb25zLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dFNldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1
ZWRTdHJpbmdJbXBsKiwgQ0NhbGxJbnQzMiBvcHRpb25zLCBKU0NlbGwqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGUsIEpT
Q2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlW
YWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBDQ2Fs
bEludDMyIGF0dHJpYnV0ZSwgSlNDZWxsKikpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IGF0dHJpYnV0
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBDQ2FsbEludDMyIGF0dHJpYnV0ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiAjZWxzZQotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpT
Q2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0
dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCos
IENDYWxsSW50MzIgYXR0cmlidXRlLCBKU0NlbGwqLCBKU0NlbGwqKSk7CiAjZW5kaWYKIAogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBBcnJheVByb2Zp
bGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbEdl
bmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEFycmF5UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkT3B0aW1pemUsIHNpemVf
dCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCB1aW50cHRyX3QsIEVDTUFNb2RlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90LCBFQ01BTW9kZSkp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbE9wdGltaXpl
LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGFyZ2V0LCBFQ01BTW9kZSkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbEdlbmVyaWMsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0YXJnZXQsIEVDTUFNb2RlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBDQ2FsbFVJbnRwdHIsIEVDTUFNb2RlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmljLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxs
VUludHB0ciwgRUNNQU1vZGUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVsZXRlQnlWYWxPcHRpbWl6ZSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0YXJnZXQsIEVDTUFNb2RlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlbGV0ZUJ5VmFsR2VuZXJpYywgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVk
SlNWYWx1ZSB0YXJnZXQsIEVDTUFNb2RlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1c2hXaXRoU2NvcGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCog
Y3VycmVudFNjb3BlQ2VsbCwgRW5jb2RlZEpTVmFsdWUgb2JqZWN0KSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1c2hXaXRoU2NvcGVPYmplY3QsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEpTT2Jq
ZWN0KiBvYmplY3QpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFu
Y2VPZkdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9mT3B0aW1pemUsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlIHZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzLCBpbnQzMl90
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3QgbnVt
VXNlZFN0YWNrU2xvdHMsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgaW50MzJfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRT
dGFja1Nsb3RzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lLCBDYWxsRnJhbWUq
LCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwg
aW50MzJfdCBsZW5ndGgpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0
dXBWYXJhcmdzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSos
IEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgaW50
MzJfdCBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZy
YW1lRm9yRm9yd2FyZEFyZ3VtZW50cywgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgQ0NhbGxJbnQzMiBudW1Vc2VkU3Rh
Y2tTbG90cywgQ0NhbGxJbnQzMiBmaXJzdFZhckFyZ09mZnNldCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCBDQ2FsbEludDMyOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBDQ2Fs
bEludDMyIG51bVVzZWRTdGFja1Nsb3RzLCBDQ2FsbEludDMyIGZpcnN0VmFyQXJnT2Zmc2V0KSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50
c0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVk
SlNWYWx1ZSwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUsIENhbGxGcmFtZSosIChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgQ0NhbGxJ
bnQzMiBmaXJzdFZhckFyZ09mZnNldCwgQ0NhbGxJbnQzMiBsZW5ndGgpKTsKIAogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRGaWVsZE5hbWUpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVPcHRpbWl6ZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRGaWVsZE5hbWUpKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdl
dFByaXZhdGVOYW1lQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZEdlbmVyaWMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0
cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1l
QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEND
YWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2
YXRlTmFtZUJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblN3aXRjaENoYXJXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBrZXksIHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1p
bikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5r
bm93bktleVR5cGUsIGNoYXIqLCAoVk0qLCBFbmNvZGVkSlNWYWx1ZSBrZXksIHNpemVfdCB0YWJs
ZUluZGV4LCBpbnQzMl90IG1pbikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSBrZXksIHNpemVfdCB0YWJsZUluZGV4KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaENoYXJXaXRoVW5rbm93bktleVR5cGUsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBrZXksIENDYWxsU2l6ZSB0YWJsZUlu
ZGV4LCBDQ2FsbEludDMyIG1pbikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qLCBFbmNvZGVkSlNWYWx1
ZSBrZXksIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBDQ2FsbEludDMyIG1pbikpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBrZXksIENDYWxsU2l6ZSB0
YWJsZUluZGV4KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29sdmVT
Y29wZUZvckJhc2VsaW5lLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgY29uc3Qg
SW5zdHJ1Y3Rpb24qIGJ5dGVjb2RlUEMpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0RnJvbVNjb3BlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgY29u
c3QgSW5zdHJ1Y3Rpb24qIGJ5dGVjb2RlUEMpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0VG9TY29wZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgSW5zdHJ1
Y3Rpb24qIGJ5dGVjb2RlUEMpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25SZWFsbG9jYXRlQnV0dGVyZmx5VG9IYXZlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBh
Y2l0eSwgY2hhciosIChWTSosIEpTT2JqZWN0KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlLCBjaGFy
KiwgKFZNKiwgSlNPYmplY3QqLCBzaXplX3QgbmV3U2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdl
LCBjaGFyKiwgKFZNKiwgSlNPYmplY3QqLCBDQ2FsbFNpemUgbmV3U2l6ZSkpOwogCiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAo
Vk0qLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9TUldy
aXRlQmFycmllciwgdm9pZCwgKFZNKiwgSlNDZWxsKikpOwpAQCAtMzA4LDcgKzMwNyw3IEBAIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRXhjZXB0aW9uRnV6eiwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FeGNl
cHRpb25GdXp6V2l0aENhbGxGcmFtZSwgdm9pZCwgKFZNKikpOwogCiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJldHJpZXZlQW5kQ2xlYXJFeGNlcHRpb25JZkNhdGNoYWJsZSwg
SlNDZWxsKiwgKFZNKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0
YW5jZU9mQ3VzdG9tLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
SGFzSW5zdGFuY2UpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFu
Y2VPZkN1c3RvbSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5jZSkpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblZhbHVlQWRkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQmluYXJ5QXJpdGhQcm9maWxlKikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCmluZGV4IDEwODA0NDlkYTYz
OGY2NzZlMDdlY2EwZjU4MmUzYjlmYzdiNWU2OTEuLjQxNjg1ZTM4ZDhhZTM4NzlhNDA1MTczZTBk
ZjQ4YjhlMDUyNTM4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bl
cmF0aW9ucy5jcHAKQEAgLTQxOCw3ICs0MTgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbVRyaWdnZXJPU1JFbnRyeU5vdywgdm9pZCwgKFByb2JlOjpDb250ZXh0Jgog
ICAgIHJldHVybiByZXR1cm5XaXRob3V0T1NSRW50cnkoKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVwTm93LCB2b2lkLCAoSW5zdGFuY2Uq
IGluc3RhbmNlLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiBpbnN0
YW5jZSwgQ0NhbGxVSW50MzIgZnVuY3Rpb25JbmRleCkpCiB7CiAgICAgV2FzbTo6Q2FsbGVlR3Jv
dXAmIGNhbGxlZUdyb3VwID0gKmluc3RhbmNlLT5jYWxsZWVHcm91cCgpOwogICAgIEFTU0VSVChp
bnN0YW5jZS0+bWVtb3J5KCktPm1vZGUoKSA9PSBjYWxsZWVHcm91cC5tb2RlKCkpOwpAQCAtNDMz
LDcgKzQzMyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dl
clRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJDb25zaWRlciBP
TUdQbGFuIGZvciBbIiwgZnVuY3Rpb25JbmRleCwgIl0gd2l0aCBleGVjdXRlQ291bnRlciA9ICIs
IHRpZXJVcCwgIiAiLCBSYXdQb2ludGVyKGNhbGxlZS5yZXBsYWNlbWVudCgpKSk7CisgICAgZGF0
YUxvZ0xuSWYoT3B0aW9uczo6dmVyYm9zZU9TUigpLCAiQ29uc2lkZXIgT01HUGxhbiBmb3IgWyIs
IHVpbnQzMl90KGZ1bmN0aW9uSW5kZXgpLCAiXSB3aXRoIGV4ZWN1dGVDb3VudGVyID0gIiwgdGll
clVwLCAiICIsIFJhd1BvaW50ZXIoY2FsbGVlLnJlcGxhY2VtZW50KCkpKTsKIAogICAgIGlmIChz
aG91bGRUcmlnZ2VyT01HQ29tcGlsZSh0aWVyVXAsIGNhbGxlZS5yZXBsYWNlbWVudCgpLCBmdW5j
dGlvbkluZGV4KSkKICAgICAgICAgdHJpZ2dlck9NR1JlcGxhY2VtZW50Q29tcGlsZSh0aWVyVXAs
IGNhbGxlZS5yZXBsYWNlbWVudCgpLCBpbnN0YW5jZSwgY2FsbGVlR3JvdXAsIGZ1bmN0aW9uSW5k
ZXgpOwpAQCAtNDQyLDcgKzQ0Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtVHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jCiAgICAgaWYg
KGNhbGxlZS5yZXBsYWNlbWVudCgpKSB7CiAgICAgICAgIC8vIE5vIE9TUiBlbnRyeSBwb2ludHMu
IEp1c3QgZGVmZXIgaW5kZWZpbml0ZWx5LgogICAgICAgICBpZiAodGllclVwLm9zckVudHJ5VHJp
Z2dlcnMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2dMbklmKE9wdGlvbnM6OnZl
cmJvc2VPU1IoKSwgImRlbGF5T01HQ29tcGlsZSByZXBsYWNlbWVudCBpbiBwbGFjZSwgZGVsYXlp
bmcgaW5kZWZpbml0ZWx5IGZvciAiLCBmdW5jdGlvbkluZGV4KTsKKyAgICAgICAgICAgIGRhdGFM
b2dMbklmKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwgImRlbGF5T01HQ29tcGlsZSByZXBsYWNlbWVu
dCBpbiBwbGFjZSwgZGVsYXlpbmcgaW5kZWZpbml0ZWx5IGZvciAiLCB1aW50MzJfdChmdW5jdGlv
bkluZGV4KSk7CiAgICAgICAgICAgICB0aWVyVXAuZG9udE9wdGltaXplQW55dGltZVNvb24oZnVu
Y3Rpb25JbmRleCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTQ1MCw3ICs0
NTAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVy
VXBOb3csIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuYwogICAgICAgICAvLyBGb3VuZCBvbmUgT1NS
IGVudHJ5IHBvaW50LiBTaW5jZSB3ZSBkbyBub3QgaGF2ZSBhIHdheSB0byBqZXR0aXNvbiBXYXNt
OjpDYWxsZWUgcmlnaHQgbm93LCB0aGlzIG1lYW5zIHRoYXQgdGllclVwIGZ1bmN0aW9uIGlzIG5v
dyBtZWFuaW5nbGVzcy4KICAgICAgICAgLy8gTm90IGNhbGwgaXQgYXMgbXVjaCBhcyBwb3NzaWJs
ZS4KICAgICAgICAgaWYgKGNhbGxlZS5vc3JFbnRyeUNhbGxlZSgpKSB7Ci0gICAgICAgICAgICBk
YXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJkZWxheU9NR0NvbXBpbGUgdHJpZ2dl
ciBpbiBwbGFjZSwgZGVsYXlpbmcgaW5kZWZpbml0ZWx5IGZvciAiLCBmdW5jdGlvbkluZGV4KTsK
KyAgICAgICAgICAgIGRhdGFMb2dMbklmKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwgImRlbGF5T01H
Q29tcGlsZSB0cmlnZ2VyIGluIHBsYWNlLCBkZWxheWluZyBpbmRlZmluaXRlbHkgZm9yICIsIHVp
bnQzMl90KGZ1bmN0aW9uSW5kZXgpKTsKICAgICAgICAgICAgIHRpZXJVcC5kb250T3B0aW1pemVB
bnl0aW1lU29vbihmdW5jdGlvbkluZGV4KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQpAQCAtNDY4LDcgKzQ2OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogICAgIEFTU0VSVCghIXZt
LmNhbGxGcmFtZUZvckNhdGNoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVl
IHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgQ0Nh
bGxJbnQ2NDo6SW50ZWdlclR5cGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkK
IHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2Uq
IGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMzIwNgpAQCAtNDg2LDcgKzQ4Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKCiAgICAg
cmV0dXJuIHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMy
X3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNp
ZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKQEAgLTUwNCw3ICs1MDQs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9h
dCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKUwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9h
dD4odi50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgaW50
NjRfdCB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRv
QmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSog
aW5zdGFuY2UsIENDYWxsSW50NjQgdmFsdWUpKQogewogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5j
ZSoganNJbnN0YW5jZSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7
CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9i
amVjdCgpOwpAQCAtNTg4LDcgKzU4OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAvLyBG
SVhNRTogSXQgd291bGQgYmUgbXVjaCBlYXNpZXIgdG8gaW5saW5lIHRoaXMgd2hlbiB3ZSBoYXZl
IGEgZ2xvYmFsIEdDLCB3aGljaCBjb3VsZCBwcm9iYWJseSBtZWFuIHdlIGNvdWxkIGF2b2lkCiAv
LyBzcGlsbGluZyB0aGUgcmVzdWx0cyBvbnRvIHRoZSBzdGFjay4KIC8vIFNhdmVkIHJlc3VsdCBy
ZWdpc3RlcnMgc2hvdWxkIGJlIHBsYWNlZCBvbiB0aGUgc3RhY2sganVzdCBhYm92ZSB0aGUgbGFz
dCBzdGFjayByZXN1bHQuCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2Nh
dGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIFdhc206Oklu
c3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgU2lnbmF0dXJlKiBzaWduYXR1cmUsIEluZGV4aW5nVHlw
ZSBpbmRleGluZ1R5cGUsIEpTVmFsdWUqIHN0YWNrUG9pbnRlckZyb21DYWxsZWUpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5
KiwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBXYXNtOjpJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0
IFNpZ25hdHVyZSogc2lnbmF0dXJlLCBDQ2FsbEludGVnZXI8SW5kZXhpbmdUeXBlPiBpbmRleGlu
Z1R5cGUsIEpTVmFsdWUqIHN0YWNrUG9pbnRlckZyb21DYWxsZWUpKQogewogICAgIEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZSoganNJbnN0YW5jZSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5
SW5zdGFuY2U+KCk7CiAgICAgVk0mIHZtID0ganNJbnN0YW5jZS0+dm0oKTsKQEAgLTYyNywxNyAr
NjI3LDE3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtV3JpdGVCYXJy
aWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqIGNlbGwsCiAgICAgdm0ud3JpdGVCYXJyaWVyU2xv
d1BhdGgoY2VsbCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bj
b3VudDMyLCB1aW50MzJfdCwgKGludDMyX3QgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblBvcGNvdW50MzIsIENDYWxsVUludDMyOjpJbnRlZ2VyVHlwZSwgKENDYWxs
SW50MzIgdmFsdWUpKQogewogICAgIHJldHVybiBfX2J1aWx0aW5fcG9wY291bnQodmFsdWUpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQ2NCwgdWludDY0
X3QsIChpbnQ2NF90IHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
b3Bjb3VudDY0LCBDQ2FsbFVJbnQ2NDo6SW50ZWdlclR5cGUsIChDQ2FsbEludDY0IHZhbHVlKSkK
IHsKICAgICByZXR1cm4gX19idWlsdGluX3BvcGNvdW50bGwodmFsdWUpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR3Jvd01lbW9yeSwgaW50MzJfdCwgKHZvaWQqIGNh
bGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBpbnQzMl90IGRlbHRhKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Hcm93TWVtb3J5LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlw
ZSwgKHZvaWQqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbEludDMyIGRlbHRh
KSkKIHsKICAgICBpbnN0YW5jZS0+c3RvcmVUb3BDYWxsRnJhbWUoY2FsbEZyYW1lKTsKIApAQCAt
NjU5LDE3ICs2NTksMTcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdyb3dN
ZW1vcnksIGludDMyX3QsICh2b2lkKiBjYWxsRnJhbWUsIEluc3RhbmMKICAgICByZXR1cm4gZ3Jv
d24udmFsdWUoKS5wYWdlQ291bnQoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21NZW1vcnlGaWxsLCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQz
Ml90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHRhcmdldFZhbHVlLCB1aW50MzJfdCBjb3VudCkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUZpbGwsIENDYWxsU2l6
ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGRzdEFkZHJl
c3MsIENDYWxsVUludDMyIHRhcmdldFZhbHVlLCBDQ2FsbFVJbnQzMiBjb3VudCkpCiB7CiAgICAg
cmV0dXJuIGluc3RhbmNlLT5tZW1vcnkoKS0+ZmlsbChkc3RBZGRyZXNzLCBzdGF0aWNfY2FzdDx1
aW50OF90Pih0YXJnZXRWYWx1ZSksIGNvdW50KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21NZW1vcnlDb3B5LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2Us
IHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5Q29weSwgQ0Nh
bGxTaXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgZHN0
QWRkcmVzcywgQ0NhbGxVSW50MzIgc3JjQWRkcmVzcywgQ0NhbGxVSW50MzIgY291bnQpKQogewog
ICAgIHJldHVybiBpbnN0YW5jZS0+bWVtb3J5KCktPmNvcHkoZHN0QWRkcmVzcywgc3JjQWRkcmVz
cywgY291bnQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2Fz
bVRhYmxlRWxlbWVudCwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2ln
bmVkIHRhYmxlSW5kZXgsIGludDMyX3Qgc2lnbmVkSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQsIEVuY29kZWRKU1ZhbHVlLCAoSW5z
dGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiB0YWJsZUluZGV4LCBDQ2FsbEludDMyIHNpZ25l
ZEluZGV4KSkKIHsKICAgICBBU1NFUlQodGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5t
b2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAgICAgaWYgKHNpZ25lZEluZGV4IDwg
MCkKQEAgLTcxMiwxMiArNzEyLDEyIEBAIHN0YXRpYyBib29sIHNldFdhc21UYWJsZUVsZW1lbnQo
SW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRXYXNt
VGFibGVFbGVtZW50LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxl
SW5kZXgsIHVpbnQzMl90IHNpZ25lZEluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNWYWx1ZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudCwgQ0Nh
bGxTaXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgdGFi
bGVJbmRleCwgQ0NhbGxVSW50MzIgc2lnbmVkSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVl
KSkKIHsKICAgICByZXR1cm4gc2V0V2FzbVRhYmxlRWxlbWVudChpbnN0YW5jZSwgdGFibGVJbmRl
eCwgc2lnbmVkSW5kZXgsIGVuY1ZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21UYWJsZUluaXQsIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5z
aWduZWQgZWxlbWVudEluZGV4LCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfdCBkc3RPZmZz
ZXQsIHVpbnQzMl90IHNyY09mZnNldCwgdWludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVJbml0LCBDQ2FsbFNpemU6OkludGVnZXJUeXBl
LCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBlbGVtZW50SW5kZXgsIENDYWxsVUlu
dDMyIHRhYmxlSW5kZXgsIENDYWxsVUludDMyIGRzdE9mZnNldCwgQ0NhbGxVSW50MzIgc3JjT2Zm
c2V0LCBDQ2FsbFVJbnQzMiBsZW5ndGgpKQogewogICAgIEFTU0VSVChlbGVtZW50SW5kZXggPCBp
bnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5lbGVtZW50Q291bnQoKSk7CiAg
ICAgQVNTRVJUKHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRp
b24oKS50YWJsZUNvdW50KCkpOwpAQCAtNzQyLDEzICs3NDIsMTMgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUluaXQsIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0
YW5jZSwgdW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21FbGVtRHJvcCwgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWdu
ZWQgZWxlbWVudEluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
RWxlbURyb3AsIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGVsZW1lbnRJ
bmRleCkpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnRJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5t
b2R1bGVJbmZvcm1hdGlvbigpLmVsZW1lbnRDb3VudCgpKTsKICAgICBpbnN0YW5jZS0+ZWxlbURy
b3AoZWxlbWVudEluZGV4KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21UYWJsZUdyb3csIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRh
YmxlSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIHVpbnQzMl90IGRlbHRhKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVHcm93LCBDQ2FsbEludDMyOjpJbnRl
Z2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgdGFibGVJbmRleCwgRW5j
b2RlZEpTVmFsdWUgZmlsbCwgQ0NhbGxVSW50MzIgZGVsdGEpKQogewogICAgIEFTU0VSVCh0YWJs
ZUluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3Vu
dCgpKTsKICAgICBhdXRvIG9sZFNpemUgPSBpbnN0YW5jZS0+dGFibGUodGFibGVJbmRleCktPmxl
bmd0aCgpOwpAQCAtNzYyLDcgKzc2Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1CiAgICAg
cmV0dXJuIG9sZFNpemU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtVGFibGVGaWxsLCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxl
SW5kZXgsIHVpbnQzMl90IG9mZnNldCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgdWludDMyX3QgY291
bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIEND
YWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIHRh
YmxlSW5kZXgsIENDYWxsVUludDMyIG9mZnNldCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgQ0NhbGxV
SW50MzIgY291bnQpKQogewogICAgIEFTU0VSVCh0YWJsZUluZGV4IDwgaW5zdGFuY2UtPm1vZHVs
ZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKIApAQCAtNzc4LDcgKzc3OCw3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVGaWxsLCBzaXpl
X3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVDb3B5LCBzaXplX3QsIChJbnN0
YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGRzdFRhYmxlSW5kZXgsIHVuc2lnbmVkIHNyY1RhYmxl
SW5kZXgsIGludDMyX3QgZHN0T2Zmc2V0LCBpbnQzMl90IHNyY09mZnNldCwgaW50MzJfdCBsZW5n
dGgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIEND
YWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGRz
dFRhYmxlSW5kZXgsIENDYWxsVUludDMyIHNyY1RhYmxlSW5kZXgsIENDYWxsSW50MzIgZHN0T2Zm
c2V0LCBDQ2FsbEludDMyIHNyY09mZnNldCwgQ0NhbGxJbnQzMiBsZW5ndGgpKQogewogICAgIEFT
U0VSVChkc3RUYWJsZUluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9u
KCkudGFibGVDb3VudCgpKTsKICAgICBBU1NFUlQoc3JjVGFibGVJbmRleCA8IGluc3RhbmNlLT5t
b2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CkBAIC04MTEsMTQgKzgx
MSwxNCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlQ29weSwg
c2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bgogICAgIHJldHVybiB0cnVlOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJlZkZ1bmMsIEVuY29kZWRKU1Zh
bHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBpbmRleCkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJlZkZ1bmMsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFu
Y2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBpbmRleCkpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IGluc3RhbmNlLT5nZXRGdW5jdGlvbldyYXBwZXIoaW5kZXgpOwogICAgIEFTU0VSVCh2YWx1ZS5p
c0NhbGxhYmxlKGluc3RhbmNlLT5vd25lcjxKU09iamVjdD4oKS0+dm0oKSkpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZSwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
dW5zaWduZWQgdGFibGVJbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
R2V0V2FzbVRhYmxlU2l6ZSwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5z
dGFuY2UsIENDYWxsVUludDMyIHRhYmxlSW5kZXgpKQogewogICAgIHJldHVybiBpbnN0YW5jZS0+
dGFibGUodGFibGVJbmRleCktPmxlbmd0aCgpOwogfQpAQCAtODQ5LDcgKzg0OSw3IEBAIHN0YXRp
YyBpbnQzMl90IHdhaXQoVk0mIHZtLCBWYWx1ZVR5cGUqIHBvaW50ZXIsIFZhbHVlVHlwZSBleHBl
Y3RlZFZhbHVlLCBpbnQ2NF90CiAgICAgcmV0dXJuIDA7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0MzIsIGludDMyX3QsIChJbnN0YW5jZSog
aW5zdGFuY2UsIHVuc2lnbmVkIGJhc2UsIHVuc2lnbmVkIG9mZnNldCwgdWludDMyX3QgdmFsdWUs
IGludDY0X3QgdGltZW91dEluTmFub3NlY29uZHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQzMiwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJ
bnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGJhc2UsIENDYWxsVUludDMyIG9mZnNldCwg
Q0NhbGxVSW50MzIgdmFsdWUsIENDYWxsSW50NjQgdGltZW91dEluTmFub3NlY29uZHMpKQogewog
ICAgIFZNJiB2bSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCktPnZt
KCk7CiAgICAgdWludDY0X3Qgb2Zmc2V0SW5NZW1vcnkgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
YmFzZSkgKyBvZmZzZXQ7CkBAIC04NjcsNyArODY3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQzMiwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0
YW4KICAgICByZXR1cm4gd2FpdDx1aW50MzJfdD4odm0sIHBvaW50ZXIsIHZhbHVlLCB0aW1lb3V0
SW5OYW5vc2Vjb25kcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25N
ZW1vcnlBdG9taWNXYWl0NjQsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVk
IGJhc2UsIHVuc2lnbmVkIG9mZnNldCwgdWludDY0X3QgdmFsdWUsIGludDY0X3QgdGltZW91dElu
TmFub3NlY29uZHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0
b21pY1dhaXQ2NCwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2Us
IENDYWxsVUludDMyIGJhc2UsIENDYWxsVUludDMyIG9mZnNldCwgQ0NhbGxVSW50NjQgdmFsdWUs
IENDYWxsSW50NjQgdGltZW91dEluTmFub3NlY29uZHMpKQogewogICAgIFZNJiB2bSA9IGluc3Rh
bmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCktPnZtKCk7CiAgICAgdWludDY0X3Qg
b2Zmc2V0SW5NZW1vcnkgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oYmFzZSkgKyBvZmZzZXQ7CkBA
IC04ODUsNyArODg1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9y
eUF0b21pY1dhaXQ2NCwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW4KICAgICByZXR1cm4gd2Fp
dDx1aW50NjRfdD4odm0sIHBvaW50ZXIsIHZhbHVlLCB0aW1lb3V0SW5OYW5vc2Vjb25kcyk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNOb3RpZnks
IGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGJhc2UsIHVuc2lnbmVkIG9m
ZnNldCwgaW50MzJfdCBjb3VudFZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25NZW1vcnlBdG9taWNOb3RpZnksIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSW5zdGFu
Y2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBiYXNlLCBDQ2FsbFVJbnQzMiBvZmZzZXQsIENDYWxs
SW50MzIgY291bnRWYWx1ZSkpCiB7CiAgICAgdWludDY0X3Qgb2Zmc2V0SW5NZW1vcnkgPSBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oYmFzZSkgKyBvZmZzZXQ7CiAgICAgaWYgKG9mZnNldEluTWVtb3J5
ICYgKDB4NCAtIDEpKQpAQCAtOTAzLDE5ICs5MDMsMTkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY05vdGlmeSwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0
YW4KICAgICByZXR1cm4gUGFya2luZ0xvdDo6dW5wYXJrQ291bnQocG9pbnRlciwgY291bnQpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUluaXQsIHNp
emVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCwgdWlu
dDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgbGVuZ3RoKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5SW5pdCwgQ0NhbGxT
aXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgZGF0YVNl
Z21lbnRJbmRleCwgQ0NhbGxVSW50MzIgZHN0QWRkcmVzcywgQ0NhbGxVSW50MzIgc3JjQWRkcmVz
cywgQ0NhbGxVSW50MzIgbGVuZ3RoKSkKIHsKICAgICBBU1NFUlQoZGF0YVNlZ21lbnRJbmRleCA8
IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLmRhdGFTZWdtZW50c0NvdW50
KCkpOwogICAgIHJldHVybiBpbnN0YW5jZS0+bWVtb3J5SW5pdChkc3RBZGRyZXNzLCBzcmNBZGRy
ZXNzLCBsZW5ndGgsIGRhdGFTZWdtZW50SW5kZXgpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbURhdGFEcm9wLCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1
bnNpZ25lZCBkYXRhU2VnbWVudEluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtRGF0YURyb3AsIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMy
IGRhdGFTZWdtZW50SW5kZXgpKQogewogICAgIEFTU0VSVChkYXRhU2VnbWVudEluZGV4IDwgaW5z
dGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkuZGF0YVNlZ21lbnRzQ291bnQoKSk7
CiAgICAgaW5zdGFuY2UtPmRhdGFEcm9wKGRhdGFTZWdtZW50SW5kZXgpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRocm93LCB2b2lkKiwgKEluc3RhbmNlKiBp
bnN0YW5jZSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIHVuc2lnbmVkIGV4Y2VwdGlvbkluZGV4LCB1
aW50NjRfdCogYXJndW1lbnRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgQ0NhbGxVSW50MzIgZXhjZXB0aW9uSW5kZXgsIHVpbnQ2NF90KiBhcmd1bWVudHMpKQogewog
ICAgIGluc3RhbmNlLT5zdG9yZVRvcENhbGxGcmFtZShjYWxsRnJhbWUpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAppbmRleCBjZjdjMGQ1ZmVmNGRmZDM1
YzdjY2EzMzQ3OTNlYjI0NGVjYmFkZDE1Li4yZjIzNDI4MmVkMTI5ODc0MWNiODJiZTcwNjIyNDVj
ZDcyMTZlNDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bl
cmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25z
LmgKQEAgLTUxLDQ0ICs1MSw0NCBAQCB2b2lkIGxvYWRWYWx1ZXNJbnRvQnVmZmVyKFByb2JlOjpD
b250ZXh0JiwgY29uc3QgU3RhY2tNYXAmLCB1aW50NjRfdCogYnVmZmVyKTsKIAogI2lmIEVOQUJM
RShXRUJBU1NFTUJMWV9CM0pJVCkKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
V2FzbVRyaWdnZXJPU1JFbnRyeU5vdywgdm9pZCwgKFByb2JlOjpDb250ZXh0JikpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdywgdm9pZCwg
KEluc3RhbmNlKiwgdWludDMyX3QgZnVuY3Rpb25JbmRleCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiwg
Q0NhbGxVSW50MzIgZnVuY3Rpb25JbmRleCkpOwogI2VuZGlmCiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21VbndpbmQsIHZvaWQsIChDYWxsRnJhbWUqKSk7CiAKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBpbnQ2NF90LCAoQ2Fs
bEZyYW1lKiwgSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b252ZXJ0VG9JNjQsIENDYWxsSW50NjQ6OkludGVnZXJUeXBlLCAoQ2FsbEZyYW1lKiwgSlNWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GNjQsIGRv
dWJsZSwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29udmVydFRvSTMyLCBpbnQzMl90LCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIENDYWxsSW50
MzI6OkludGVnZXJUeXBlLCAoQ2FsbEZyYW1lKiwgSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiwgSlNW
YWx1ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0Jp
Z0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSosIGludDY0X3QpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNv
ZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgQ0NhbGxJbnQ2NCkpOwogCiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2Fs
bEZyYW1lKiwgSW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBKU1ZhbHVlLCB1aW50NjRfdCos
IHVpbnQ2NF90KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0
ZVJlc3VsdHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqLCBXYXNtOjpJbnN0YW5jZSosIGNv
bnN0IFNpZ25hdHVyZSosIEluZGV4aW5nVHlwZSwgSlNWYWx1ZSopKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2Fs
bEZyYW1lKiwgV2FzbTo6SW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBDQ2FsbEludGVnZXI8
SW5kZXhpbmdUeXBlPiwgSlNWYWx1ZSopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqLCBWTSopKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQzMiwgdWludDMyX3Qs
IChpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcGNvdW50
NjQsIHVpbnQ2NF90LCAoaW50NjRfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Hcm93TWVtb3J5LCBpbnQzMl90LCAodm9pZCosIEluc3RhbmNlKiwgaW50MzJfdCkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwgc2l6ZV90
LCAoSW5zdGFuY2UqLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCB0YXJnZXRWYWx1ZSwg
dWludDMyX3QgY291bnQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bU1lbW9yeUNvcHksIHNpemVfdCwgKEluc3RhbmNlKiwgdWludDMyX3QgZHN0QWRkcmVzcywgdWlu
dDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgY291bnQpKTsKLQotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1ZSwgKElu
c3RhbmNlKiwgdW5zaWduZWQsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudCwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1bnNpZ25l
ZCwgdWludDMyX3QsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNl
KiwgdWludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRh
YmxlSW5pdCwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBlbGVtZW50SW5kZXgsIHVuc2ln
bmVkIHRhYmxlSW5kZXgsIHVpbnQzMl90IGRzdE9mZnNldCwgdWludDMyX3Qgc3JjT2Zmc2V0LCB1
aW50MzJfdCBsZW5ndGgpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bUVsZW1Ecm9wLCB2b2lkLCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBlbGVtZW50SW5kZXgpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlR3JvdywgaW50MzJfdCwg
KEluc3RhbmNlKiwgdW5zaWduZWQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIHVpbnQzMl90IGRlbHRh
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIHNp
emVfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQsIHVpbnQzMl90IG9mZnNldCwgRW5jb2RlZEpTVmFs
dWUgZmlsbCwgdWludDMyX3QgY291bnQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRhYmxlQ29weSwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBkc3RUYWJs
ZUluZGV4LCB1bnNpZ25lZCBzcmNUYWJsZUluZGV4LCBpbnQzMl90IGRzdE9mZnNldCwgaW50MzJf
dCBzcmNPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUsIGludDMyX3QsIChJbnN0YW5jZSosIHVuc2lnbmVk
KSk7Ci0KLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2Fp
dDMyLCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVpbnQzMl90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXQpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDY0LCBpbnQzMl90LCAoSW5z
dGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIHVpbnQ2NF90
IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTWVtb3J5QXRvbWljTm90aWZ5LCBpbnQzMl90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwg
dW5zaWduZWQsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
V2FzbU1lbW9yeUluaXQsIHNpemVfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQgZGF0YVNlZ21lbnRJ
bmRleCwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3Qg
bGVuZ3RoKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRhRHJv
cCwgdm9pZCwgKEluc3RhbmNlKiwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCkpOwotCi1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5j
ZSosIENhbGxGcmFtZSosIHVuc2lnbmVkIGV4Y2VwdGlvbkluZGV4LCB1aW50NjRfdCopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQzMiwgQ0NhbGxVSW50MzI6
OkludGVnZXJUeXBlLCAoQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Qb3Bjb3VudDY0LCBDQ2FsbFVJbnQ2NDo6SW50ZWdlclR5cGUsIChDQ2FsbEludDY0
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdyb3dNZW1vcnksIENDYWxs
SW50MzI6OkludGVnZXJUeXBlLCAodm9pZCosIEluc3RhbmNlKiwgQ0NhbGxJbnQzMikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwgQ0NhbGxTaXpl
OjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIgZHN0QWRkcmVzcywgQ0NhbGxV
SW50MzIgdGFyZ2V0VmFsdWUsIENDYWxsVUludDMyIGNvdW50KSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlDb3B5LCBDQ2FsbFNpemU6OkludGVnZXJUeXBl
LCAoSW5zdGFuY2UqLCBDQ2FsbFVJbnQzMiBkc3RBZGRyZXNzLCBDQ2FsbFVJbnQzMiBzcmNBZGRy
ZXNzLCBDQ2FsbFVJbnQzMiBjb3VudCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqLCBD
Q2FsbFVJbnQzMiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TZXRXYXNtVGFibGVFbGVtZW50LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSW5zdGFu
Y2UqLCBDQ2FsbFVJbnQzMiwgQ0NhbGxVSW50MzIsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVk
SlNWYWx1ZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlSW5pdCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKElu
c3RhbmNlKiwgQ0NhbGxVSW50MzIgZWxlbWVudEluZGV4LCBDQ2FsbFVJbnQzMiB0YWJsZUluZGV4
LCBDQ2FsbFVJbnQzMiBkc3RPZmZzZXQsIENDYWxsVUludDMyIHNyY09mZnNldCwgQ0NhbGxVSW50
MzIgbGVuZ3RoKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21FbGVt
RHJvcCwgdm9pZCwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIgZWxlbWVudEluZGV4KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUdyb3csIENDYWxsSW50MzI6
OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqLCBDQ2FsbFVJbnQzMiwgRW5jb2RlZEpTVmFsdWUgZmls
bCwgQ0NhbGxVSW50MzIgZGVsdGEpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbVRhYmxlRmlsbCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0Nh
bGxVSW50MzIsIENDYWxsVUludDMyIG9mZnNldCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgQ0NhbGxV
SW50MzIgY291bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRh
YmxlQ29weSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIg
ZHN0VGFibGVJbmRleCwgQ0NhbGxVSW50MzIgc3JjVGFibGVJbmRleCwgQ0NhbGxJbnQzMiBkc3RP
ZmZzZXQsIENDYWxsSW50MzIgc3JjT2Zmc2V0LCBDQ2FsbEludDMyIGxlbmd0aCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVTaXplLCBDQ2FsbEludDMy
OjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIpKTsKKworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0MzIsIENDYWxsSW50MzI6Oklu
dGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBiYXNlLCBDQ2FsbFVJ
bnQzMiBvZmZzZXQsIENDYWxsVUludDMyIHZhbHVlLCBDQ2FsbEludDY0IHRpbWVvdXQpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDY0LCBDQ2Fs
bEludDMyOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgYmFz
ZSwgQ0NhbGxVSW50MzIgb2Zmc2V0LCBDQ2FsbFVJbnQ2NCB2YWx1ZSwgQ0NhbGxJbnQ2NCB0aW1l
b3V0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY05v
dGlmeSwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyLCBD
Q2FsbFVJbnQzMiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtTWVtb3J5SW5pdCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwg
Q0NhbGxVSW50MzIgZGF0YVNlZ21lbnRJbmRleCwgQ0NhbGxVSW50MzIgZHN0QWRkcmVzcywgQ0Nh
bGxVSW50MzIgc3JjQWRkcmVzcywgQ0NhbGxVSW50MzIgbGVuZ3RoKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRhRHJvcCwgdm9pZCwgKEluc3RhbmNlKiwgQ0Nh
bGxVSW50MzIgZGF0YVNlZ21lbnRJbmRleCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5jZSosIENhbGxGcmFtZSosIENDYWxs
VUludDMyIGV4Y2VwdGlvbkluZGV4LCB1aW50NjRfdCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVJldGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqLCBDYWxsRnJhbWUq
LCBFbmNvZGVkSlNWYWx1ZSB0aHJvd25WYWx1ZSkpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21Ub0pTRXhjZXB0aW9uLCB2b2lkKiwgKENhbGxGcmFtZSosIFdhc206
OkV4Y2VwdGlvblR5cGUsIEluc3RhbmNlKikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451906</attachid>
            <date>2022-02-14 08:38:50 -0800</date>
            <delta_ts>2022-04-19 00:31:23 -0700</delta_ts>
            <desc>RFC patch</desc>
            <filename>bug-236367-20220214173848.patch</filename>
            <type>text/plain</type>
            <size>274164</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YjhiNGQyZGJkYzZiOWZlOWJhZTE1NjY0ODUwMGRkNDYyZjg4NDMyLi41ZjkxZGNkNDU0NjM5ZDA4
MDQyMzEyOGZiZjQwZDFiYzc1ODE4MjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDggQEAKKzIwMjItMDItMTQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtKU0NdIEFjY29tbW9kYXRlIHRoZSBSSVNDVjY0IEMgY2FsbGluZyBj
b252ZW50aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzYzNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6Cisg
ICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAoSlNDOjp0ZXN0U2ltcGxlKToK
KyAgICAgICAgKEpTQzo6dGVzdEdldEVmZmVjdGl2ZUFkZHJlc3MpOgorICAgICAgICAoSlNDOjp0
ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5j
aFRlc3Q4KToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaFRlc3QxNik6CisgICAgICAgIChKU0M6
OnRlc3RCcmFuY2hUZXN0Qml0MzJSZWdSZWcpOgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoVGVz
dEJpdDMyUmVnSW1tKToKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5jaFRlc3RCaXQzMkFkZHJJbW0p
OgorICAgICAgICAoSlNDOjp0ZXN0QnJhbmNoVGVzdEJpdDY0UmVnUmVnKToKKyAgICAgICAgKEpT
Qzo6dGVzdEJyYW5jaFRlc3RCaXQ2NFJlZ0ltbSk6CisgICAgICAgIChKU0M6OnRlc3RCcmFuY2hU
ZXN0Qml0NjRBZGRySW1tKToKKyAgICAgICAgKEpTQzo6dGVzdENsZWFyQml0NjQpOgorICAgICAg
ICAoSlNDOjp0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFzayk6CisgICAgICAgIChKU0M6OnRlc3RDbGVh
ckJpdHM2NFdpdGhNYXNrVGVybmFyeSk6CisgICAgICAgIChKU0M6OnRlc3RDb3VudFRyYWlsaW5n
WmVyb3M2NEltcGwpOgorICAgICAgICAoSlNDOjp0ZXN0U2hpZnRBbmRBZGQpOgorICAgICAgICAo
SlNDOjp0ZXN0U3RvcmU2NEltbTY0QWRkcmVzc1BvaW50ZXIpOgorICAgICAgICAoSlNDOjp0ZXN0
Q29tcGFyZURvdWJsZSk6CisgICAgICAgIChKU0M6OnRlc3RDb21wYXJlRG91YmxlU2FtZUFyZyk6
CisgICAgICAgIChKU0M6OnRlc3RNdWwzMldpdGhJbW1lZGlhdGVzKToKKyAgICAgICAgKEpTQzo6
dGVzdE11bHRpcGx5U2lnbkV4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5WmVy
b0V4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5QWRkU2lnbkV4dGVuZDMyKToK
KyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5QWRkWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpT
Qzo6dGVzdFN1YjMyQXJncyk6CisgICAgICAgIChKU0M6OnRlc3RTdWIzMkltbSk6CisgICAgICAg
IChKU0M6OnRlc3RTdWI2NEltbTMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YjY0QXJnSW1tMzIp
OgorICAgICAgICAoSlNDOjp0ZXN0U3ViNjRJbW02NCk6CisgICAgICAgIChKU0M6OnRlc3RTdWI2
NEFyZ0ltbTY0KToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5U3ViU2lnbkV4dGVuZDMyKToK
KyAgICAgICAgKEpTQzo6dGVzdE11bHRpcGx5U3ViWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpT
Qzo6dGVzdE11bHRpcGx5TmVnU2lnbkV4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdE11bHRp
cGx5TmVnWmVyb0V4dGVuZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEV4dHJhY3RVbnNpZ25lZEJp
dGZpZWxkMzIpOgorICAgICAgICAoSlNDOjp0ZXN0RXh0cmFjdFVuc2lnbmVkQml0ZmllbGQ2NCk6
CisgICAgICAgIChKU0M6OnRlc3RJbnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5aZXJvMzIpOgorICAg
ICAgICAoSlNDOjp0ZXN0SW5zZXJ0VW5zaWduZWRCaXRmaWVsZEluWmVybzY0KToKKyAgICAgICAg
KEpTQzo6dGVzdEluc2VydEJpdEZpZWxkMzIpOgorICAgICAgICAoSlNDOjp0ZXN0SW5zZXJ0Qml0
RmllbGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0SW5zZXJ0Qml0ZmllbGRBdExvd0Vu
ZDMyKToKKyAgICAgICAgKEpTQzo6dGVzdEV4dHJhY3RJbnNlcnRCaXRmaWVsZEF0TG93RW5kNjQp
OgorICAgICAgICAoSlNDOjp0ZXN0Q2xlYXJCaXRGaWVsZDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dENsZWFyQml0RmllbGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RDbGVhckJpdHNXaXRoTWFzazMy
KToKKyAgICAgICAgKEpTQzo6dGVzdENsZWFyQml0c1dpdGhNYXNrNjQpOgorICAgICAgICAoSlND
Ojp0ZXN0T3JOb3QzMik6CisgICAgICAgIChKU0M6OnRlc3RPck5vdDY0KToKKyAgICAgICAgKEpT
Qzo6dGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIpOgorICAgICAgICAoSlNDOjp0ZXN0
SW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm82NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0
U2lnbmVkQml0ZmllbGQzMik6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0U2lnbmVkQml0Zmll
bGQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RFeHRyYWN0UmVnaXN0ZXIzMik6CisgICAgICAgIChK
U0M6OnRlc3RFeHRyYWN0UmVnaXN0ZXI2NCk6CisgICAgICAgIChKU0M6OnRlc3RBZGRXaXRoTGVm
dFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0QWRkV2l0aFJpZ2h0U2hpZnQzMik6CisgICAg
ICAgIChKU0M6OnRlc3RBZGRXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlND
Ojp0ZXN0QWRkV2l0aExlZnRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdEFkZFdpdGhSaWdo
dFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0QWRkV2l0aFVuc2lnbmVkUmlnaHRTaGlmdDY0
KToKKyAgICAgICAgKEpTQzo6dGVzdFN1YldpdGhMZWZ0U2hpZnQzMik6CisgICAgICAgIChKU0M6
OnRlc3RTdWJXaXRoUmlnaHRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN1YldpdGhVbnNp
Z25lZFJpZ2h0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RTdWJXaXRoTGVmdFNoaWZ0NjQp
OgorICAgICAgICAoSlNDOjp0ZXN0U3ViV2l0aFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6
OnRlc3RTdWJXaXRoVW5zaWduZWRSaWdodFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0WG9y
Tm90MzIpOgorICAgICAgICAoSlNDOjp0ZXN0WG9yTm90NjQpOgorICAgICAgICAoSlNDOjp0ZXN0
WG9yTm90V2l0aExlZnRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvck5vdFdpdGhSaWdo
dFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0WG9yTm90V2l0aFVuc2lnbmVkUmlnaHRTaGlm
dDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvck5vdFdpdGhMZWZ0U2hpZnQ2NCk6CisgICAgICAg
IChKU0M6OnRlc3RYb3JOb3RXaXRoUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdFhv
ck5vdFdpdGhVbnNpZ25lZFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RTdG9yZVBy
ZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFN0b3JlUHJlUG9zdEluZGV4NjQpOgor
ICAgICAgICAoSlNDOjp0ZXN0TG9hZFByZVBvc3RJbmRleDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dExvYWRQcmVQb3N0SW5kZXg2NCk6CisgICAgICAgIChKU0M6OnRlc3RBbmRMZWZ0U2hpZnQzMik6
CisgICAgICAgIChKU0M6OnRlc3RBbmRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0
QW5kVW5zaWduZWRSaWdodFNoaWZ0MzIpOgorICAgICAgICAoSlNDOjp0ZXN0QW5kTGVmdFNoaWZ0
NjQpOgorICAgICAgICAoSlNDOjp0ZXN0QW5kUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6
dGVzdEFuZFVuc2lnbmVkUmlnaHRTaGlmdDY0KToKKyAgICAgICAgKEpTQzo6dGVzdFhvckxlZnRT
aGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVzdFhvclJpZ2h0U2hpZnQzMik6CisgICAgICAgIChK
U0M6OnRlc3RYb3JVbnNpZ25lZFJpZ2h0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RYb3JM
ZWZ0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRlc3RYb3JSaWdodFNoaWZ0NjQpOgorICAgICAg
ICAoSlNDOjp0ZXN0WG9yVW5zaWduZWRSaWdodFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0
T3JMZWZ0U2hpZnQzMik6CisgICAgICAgIChKU0M6OnRlc3RPclJpZ2h0U2hpZnQzMik6CisgICAg
ICAgIChKU0M6OnRlc3RPclVuc2lnbmVkUmlnaHRTaGlmdDMyKToKKyAgICAgICAgKEpTQzo6dGVz
dE9yTGVmdFNoaWZ0NjQpOgorICAgICAgICAoSlNDOjp0ZXN0T3JSaWdodFNoaWZ0NjQpOgorICAg
ICAgICAoSlNDOjp0ZXN0T3JVbnNpZ25lZFJpZ2h0U2hpZnQ2NCk6CisgICAgICAgIChKU0M6OnRl
c3RDb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjp0ZXN0TW92ZUNvbmRpdGlvbmFsbHlGbG9h
dGluZ1BvaW50KToKKyAgICAgICAgKEpTQzo6dGVzdE1vdmVDb25kaXRpb25hbGx5RmxvYXRpbmdQ
b2ludFNhbWVBcmcpOgorICAgICAgICAoSlNDOjp0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDgpOgor
ICAgICAgICAoSlNDOjp0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDE2KToKKyAgICAgICAgKEpTQzo6
dGVzdFN1YjMyQXJnSW1tKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlUHJlc2VydmVzR1BSUyk6
CisgICAgICAgIChKU0M6OnRlc3RCeXRlU3dhcCk6CisgICAgICAgIChKU0M6OnRlc3RMb2FkQmFz
ZUluZGV4KToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNhY2hlZFB1dEJ5SWQpOgorICAg
ICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpT
Q19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5oOgorICAgICAgICAqIGZ0bC9GVExPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAoSlNDOjpGVEw6OkpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMpOgorICAgICAgICAqIGZ0bC9GVExPcGVy
YXRpb25zLmg6CisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpD
Q2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzSW1wbCk6CisgICAgICAgIChKU0M6OkNDYWxsSGVs
cGVyczo6c3RkOjppc19pbnRlZ3JhbDxDVVJSRU5UX0FSR1VNRU5UX1RZUEU+Ojp2YWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgICogaml0L0NDYWxsVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6
OlJJU0NWNjRDQ2FsbEludGVnZXI6OlJJU0NWNjRDQ2FsbEludGVnZXIpOgorICAgICAgICAoSlND
OjpSSVNDVjY0Q0NhbGxJbnRlZ2VyOjpvcGVyYXRvciBUIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
UklTQ1Y2NENDYWxsSW50ZWdlcjo6b3BlcmF0b3IgRW51bVR5cGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpDQ2FsbEludGVnZXI6OkNDYWxsSW50ZWdlcik6CisgICAgICAgIChKU0M6OkNDYWxsSW50
ZWdlcjo6b3BlcmF0b3IgVCBjb25zdCk6CisgICAgICAgIChKU0M6OkNDYWxsSW50ZWdlcjo6b3Bl
cmF0b3IgRW51bVR5cGUgY29uc3QpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBqaXQv
SklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIHdhc20vV2FzbU9wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04pOgorICAgICAgICAqIHdh
c20vV2FzbU9wZXJhdGlvbnMuaDoKKwogMjAyMi0wMi0xMyAgTGF1cm8gTW91cmEgIDxsbW91cmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBub24tdW5pZmllZCBidWlsZCBmaXhl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDI3NzdiZTk5YWQxYjdjMDlk
MmI2Yzk1MDIyN2RhYzNlMTczYmNiZGMuLmNhMDExYjE4ODUwZDlhYzVmNDFlOGU2ZGQ0MGJmZDRk
Y2NiNGEyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTg0OCw2ICs4
NDgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IGppdC9CYXNlbGluZUpJVENvZGUuaAogICAgIGppdC9DYWxsRnJhbWVTaHVmZmxlRGF0YS5oCiAg
ICAgaml0L0NDYWxsSGVscGVycy5oCisgICAgaml0L0NDYWxsVHlwZXMuaAogICAgIGppdC9FeGVj
dXRhYmxlQWxsb2NhdG9yLmgKICAgICBqaXQvRXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oCiAgICAg
aml0L0ZQUkluZm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMDQ4MDkxOGNi
MDQ3ZDQ0OTgzZWRkNWU2ZDdhMDFiZTUzZWVlZjhjLi5kYWQ4MGY2OGZlN2FlNGQ0OTEyN2E5YTdm
Mjk1ZGRmZWY5MTQwMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc5OSw2
ICsxNzk5LDcgQEAKIAkJQ0QxRjlCM0MyNzBDMEMxQTAwNjE3RUI2IC8qIFR5cGVkQXJyYXlBZGFw
dGVyc0ZvcndhcmREZWNsYXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMUY5QjNCMjcwQzBDMUEwMDYxN0VCNiAvKiBUeXBlZEFycmF5QWRh
cHRlcnNGb3J3YXJkRGVjbGFyYXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxRjlCNDkyNzBDRkRDQzAwNjE3RUI2IC8qIEhhbmRsZUZv
cndhcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MUY5QjQ4MjcwQ0ZEQ0MwMDYxN0VCNiAvKiBIYW5kbGVGb3J3YXJkLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxRjlCNEIyNzBDRkUwRjAwNjE3
RUI2IC8qIFN0cm9uZ0ZvcndhcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMUY5QjRBMjcwQ0ZFMEYwMDYxN0VCNiAvKiBTdHJvbmdGb3J3YXJkLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QzNTAx
RTQyN0JBOUM0RjAwQzlBOUM1IC8qIENDYWxsVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzUwMUUzMjdCQTlDNEUwMEM5QTlDNSAvKiBDQ2Fs
bFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0UyMEJEMDUyMzdEM0UyMzAwNDZFNTIwIC8qIEZpbGVCYXNlZEZ1enplckFnZW50QmFzZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UyMEJEMDMy
MzdEM0FENDAwNDZFNTIwIC8qIEZpbGVCYXNlZEZ1enplckFnZW50QmFzZS5oICovOyB9OwogCQlD
RTIwQkQwNzIzN0QzRTQ4MDA0NkU1MjAgLyogUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFn
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTIw
QkQwMTIzN0QzQUQ0MDA0NkU1MjAgLyogUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enplckFnZW50
LmggKi87IH07CiAJCUNFQUU3RDdCODg5QjQ3N0JBOTNBQkE2QyAvKiBTY3JpcHRGZXRjaGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4ODUyMTUxQTlD
Mzg0MjM4OUIzMjE1QjcgLyogU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01MTY1LDYgKzUxNjYsNyBAQAogCQlDRDFGOUIz
QjI3MEMwQzFBMDA2MTdFQjYgLyogVHlwZWRBcnJheUFkYXB0ZXJzRm9yd2FyZERlY2xhcmF0aW9u
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlZEFycmF5QWRhcHRlcnNGb3J3YXJkRGVjbGFyYXRpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMUY5QjQ4MjcwQ0ZEQ0MwMDYxN0VC
NiAvKiBIYW5kbGVGb3J3YXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhhbmRsZUZvcndhcmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxRjlCNEEyNzBDRkUwRjAwNjE3RUI2IC8qIFN0
cm9uZ0ZvcndhcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Ryb25nRm9yd2FyZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDM1MDFFMzI3QkE5QzRFMDBDOUE5QzUgLyogQ0NhbGxUeXBl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDQ2FsbFR5cGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMjBCRDAxMjM3RDNBRDQwMDQ2RTUyMCAvKiBQcmVk
aWN0aW9uRmlsZUNyZWF0aW5nRnV6emVyQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJlZGljdGlv
bkZpbGVDcmVhdGluZ0Z1enplckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFMjBCRDAyMjM3RDNBRDQwMDQ2RTUyMCAvKiBQcmVkaWN0aW9uRmlsZUNyZWF0aW5nRnV6emVy
QWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJlZGljdGlvbkZpbGVDcmVhdGluZ0Z1enpl
ckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UyMEJEMDMyMzdEM0FE
NDAwNDZFNTIwIC8qIEZpbGVCYXNlZEZ1enplckFnZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
aWxlQmFzZWRGdXp6ZXJBZ2VudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU5MzIsNyArNTkzNCw2IEBACiAJCQkJODYwM0NFRjAxNEM3NTNFRjAwQUU1OUUzIC8qIHRvb2xz
ICovLAogCQkJCTdCOThEMTMzMUI2MENEMUUwMDIzQjFBNCAvKiB3YXNtICovLAogCQkJCTg2RUFD
NDhDMEY5M0U4QjkwMDhFQzk0OCAvKiB5YXJyICovLAotCQkJCTUzMzY5OUFGMjdBMzA2RjYwMEM5
NTYxRCAvKiBSZWNvdmVyZWQgUmVmZXJlbmNlcyAqLywKIAkJCSk7CiAJCQluYW1lID0gSmF2YVNj
cmlwdENvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjUwMSw2ICs2NTAyLDcg
QEAKIAkJCQk2MkQ3NTVEMzFCODRGQjM5MDAxODAxRkEgLyogQ2FsbEZyYW1lU2h1ZmZsZXI2NC5j
cHAgKi8sCiAJCQkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAg
Ki8sCiAJCQkJMEYyNEU1M0QxN0VBOUY1OTAwQUJCMjE3IC8qIENDYWxsSGVscGVycy5oICovLAor
CQkJCUNEMzUwMUUzMjdCQTlDNEUwMEM5QTlDNSAvKiBDQ2FsbFR5cGVzLmggKi8sCiAJCQkJMEZG
MDU0RjcxQUMzNUI0NDAwRTVCRTU3IC8qIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ei5jcHAgKi8s
CiAJCQkJMEZGMDU0RjgxQUMzNUI0NDAwRTVCRTU3IC8qIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6
ei5oICovLAogCQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2Nh
dG9yLmNwcCAqLywKQEAgLTczMjcsOSArNzMyOSw2IEBACiAJCTdCOThEMTMzMUI2MENEMUUwMDIz
QjFBNCAvKiB3YXNtICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
LQkJCQkzN0FBQzA5MTI3OUYxMjQyMDBENjQ4NDIgLyogV2FzbUJyYW5jaEhpbnRzLmggKi8sCi0J
CQkJMzdBQUMwOTAyNzlGMTI0MTAwRDY0ODQyIC8qIFdhc21CcmFuY2hIaW50c1NlY3Rpb25QYXJz
ZXIuY3BwICovLAotCQkJCTM3QUFDMDkyMjc5RjEyNDIwMEQ2NDg0MiAvKiBXYXNtQnJhbmNoSGlu
dHNTZWN0aW9uUGFyc2VyLmggKi8sCiAJCQkJQUQyRkNCOEExREI1ODQwMDAwQjNFNzM2IC8qIGpz
ICovLAogCQkJCTUyODQ3QUQ5MjFGRkI4NjMwMDYxQTlEQiAvKiBXYXNtQWlySVJHZW5lcmF0b3Iu
Y3BwICovLAogCQkJCTUyODQ3QURBMjFGRkI4NjMwMDYxQTlEQiAvKiBXYXNtQWlySVJHZW5lcmF0
b3IuaCAqLywKQEAgLTczMzksNiArNzMzOCw5IEBACiAJCQkJNTNDQTczMDgxRUE1MzNEODAwNzYw
NDlEIC8qIFdhc21CQlFQbGFuLmggKi8sCiAJCQkJQUQ0QjFERjcxREYyNDRENzAwNzFBRTMyIC8q
IFdhc21CaW5kaW5nLmNwcCAqLywKIAkJCQlBRDRCMURGODFERjI0NEQ3MDA3MUFFMzIgLyogV2Fz
bUJpbmRpbmcuaCAqLywKKwkJCQkzN0FBQzA5MTI3OUYxMjQyMDBENjQ4NDIgLyogV2FzbUJyYW5j
aEhpbnRzLmggKi8sCisJCQkJMzdBQUMwOTAyNzlGMTI0MTAwRDY0ODQyIC8qIFdhc21CcmFuY2hI
aW50c1NlY3Rpb25QYXJzZXIuY3BwICovLAorCQkJCTM3QUFDMDkyMjc5RjEyNDIwMEQ2NDg0MiAv
KiBXYXNtQnJhbmNoSGludHNTZWN0aW9uUGFyc2VyLmggKi8sCiAJCQkJNTI1QzBERDcxRTkzNTg0
NzAwMjE4NENEIC8qIFdhc21DYWxsZWUuY3BwICovLAogCQkJCTUyNUMwREQ4MUU5MzU4NDcwMDIx
ODRDRCAvKiBXYXNtQ2FsbGVlLmggKi8sCiAJCQkJNTI2QUM0QjQxRTk3N0M1RDAwMzUwMEUxIC8q
IFdhc21DYWxsZWVHcm91cC5jcHAgKi8sCkBAIC05OTA0LDYgKzk5MDYsNyBAQAogCQkJCTBGM0I3
RTJCMTlBMTFCODAwMEQ5QkM1NiAvKiBDYWxsVmFyaWFudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkU4MEMxOTcxRDc3NUNERDAwODUxMEMwIC8qIENhdGNoU2NvcGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMjRFNTQyMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2FsbEhlbHBlcnMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUNEMzUwMUU0MjdCQTlDNEYwMEM5QTlDNSAvKiBDQ2FsbFR5cGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjk2MzAzQTFENDE5MkM4MDA1NjA5RDkgLyogQ2VsbEF0dHJpYnV0ZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMDcwQTQ3MUQ1NDNBOEIwMDZFNzIzMiAvKiBDZWxsQ29u
dGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjA3MEE0ODFENTQzQTkwMDA2RTcyMzIgLyog
Q2VsbENvbnRhaW5lcklubGluZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTA5NzksNyArMTA5ODIs
NiBAQAogCQkJCTBGRTA1MDI5MUFBOTA5NTYwMEQzM0IzMyAvKiBTY29wZWRBcmd1bWVudHNUYWJs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFMDUwMkIxQUE5MDk1NjAwRDMzQjMzIC8qIFNjb3Bl
T2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU1MjE3RUUyNzQ5MDBBQkIyMTcgLyog
U2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkzN0FBQzA5NDI3
OUYxQzA1MDBENjQ4NDIgLyogV2FzbUJyYW5jaEhpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MzExMUI4QjIzOTcyNTY1MDBBQTM0Q0UgLyogU2NyaWJibGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1RkQwMDY4MTg5QUZFOUMwMDYzMzIzMSAvKiBTY3JpcHRBcmd1bWVudHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1RkQwMDZFMTg5QjAwQUEwMDYzMzIzMSAvKiBTY3JpcHRDYWxsRnJhbWUuaCBp
biBIZWFkZXJzICovLApAQCAtMTExMDksNyArMTExMTEsNiBAQAogCQkJCUZFMzQyMjEyMUQ2Qjgx
QzMwMDMyQkU4OCAvKiBUaHJvd1Njb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU3MkQ0RjE2
ODc5RkREMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
Mzg2NTU2MTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTM3QUFDMDkzMjc5RjFCRkMwMEQ2NDg0MiAvKiBXYXNtQnJhbmNoSGludHNTZWN0aW9u
UGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE0NDhDRDEzQTE3ODM3MDBGNUJBMUEgLyog
VGlueUJsb29tRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU1OTg5ODE3Qzg2QzU4MDBB
MUU1NDMgLyogVG9OYXRpdmVGcm9tVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkQ0REU5
MTk4MzJEQUMwMDdENEIxOSAvKiBUb1RoaXNTdGF0dXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTEx
NjYsNiArMTExNjcsOCBAQAogCQkJCTUzRjQwRTkzMUQ1QTRBQjMwMDk5QTFCNiAvKiBXYXNtQjNJ
UkdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNDQTczMEExRUE1MzNEODAwNzYwNDlE
IC8qIFdhc21CQlFQbGFuLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDRCMURGQTFERjI0NEUyMDA3
MUFFMzIgLyogV2FzbUJpbmRpbmcuaCBpbiBIZWFkZXJzICovLAorCQkJCTM3QUFDMDk0Mjc5RjFD
MDUwMEQ2NDg0MiAvKiBXYXNtQnJhbmNoSGludHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTM3QUFD
MDkzMjc5RjFCRkMwMEQ2NDg0MiAvKiBXYXNtQnJhbmNoSGludHNTZWN0aW9uUGFyc2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MjVDMEREQTFFOTM1ODQ3MDAyMTg0Q0QgLyogV2FzbUNhbGxlZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTI2QUM0QjcxRTk3N0M1RDAwMzUwMEUxIC8qIFdhc21DYWxs
ZWVHcm91cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNGQjg1M0EyMkYzNjY3QjAwOEY5MEVEIC8q
IFdhc21DYWxsZWVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCmluZGV4IDIwNGZmNDMwNDE1MTkyM2JiMmQ4Zjdm
YTM3MDFkNjUzZWY1OGIyYzQuLjIyOGViMjc0NzczZGNiMGQ5MDMxMWEwM2ViN2Y5M2NiY2FjY2Ix
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCkBA
IC0xMzcsNiArMTM3LDEyIEBAIHN0YXRpYyB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0m
IG91dCwgdm9pZCogdmFsdWUpCiAgICAgb3V0LnByaW50ZigiJXAiLCB2YWx1ZSk7CiB9CiAKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwg
Y29uc3QgSlNDOjpDQ2FsbEludGVnZXI8VD4mIHZhbHVlKQoreworICAgIHByaW50SW50ZXJuYWwo
b3V0LCBzdGF0aWNfY2FzdDxUPih2YWx1ZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAog
bmFtZXNwYWNlIEpTQyB7CkBAIC0yNjgsNyArMjc0LDcgQEAgdm9pZCBlbWl0RnVuY3Rpb25FcGls
b2d1ZShDQ2FsbEhlbHBlcnMmIGppdCkKIAogdm9pZCB0ZXN0U2ltcGxlKCkKIHsKLSAgICBDSEVD
S19FUShjb21waWxlQW5kUnVuPGludD4oW10gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgQ0hF
Q0tfRVEoY29tcGlsZUFuZFJ1bjxDQ2FsbEludDMyPihbXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsK
ICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKICAgICAgICAgaml0Lm1vdmUoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoNDIpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAg
ICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CkBAIC0yNzgsNyArMjg0LDcgQEAgdm9p
ZCB0ZXN0U2ltcGxlKCkKIAogdm9pZCB0ZXN0R2V0RWZmZWN0aXZlQWRkcmVzcyhzaXplX3QgcG9p
bnRlciwgcHRyZGlmZl90IGxlbmd0aCwgaW50MzJfdCBvZmZzZXQsIENDYWxsSGVscGVyczo6U2Nh
bGUgc2NhbGUpCiB7Ci0gICAgQ0hFQ0tfRVEoY29tcGlsZUFuZFJ1bjxzaXplX3Q+KFs9XSAoQ0Nh
bGxIZWxwZXJzJiBqaXQpIHsKKyAgICBDSEVDS19FUShjb21waWxlQW5kUnVuPENDYWxsU2l6ZT4o
Wz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShq
aXQpOwogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYml0d2lz
ZV9jYXN0PHZvaWQqPihwb2ludGVyKSksIEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAgaml0Lm1v
dmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4obGVuZ3Ro
KSksIEdQUkluZm86OnJlZ1QxKTsKQEAgLTI5OCw3ICszMDQsNyBAQCB2b2lkIHRlc3RCcmFuY2hU
cnVuY2F0ZURvdWJsZVRvSW50MzIoZG91YmxlIHZhbCwgaW50MzJfdCBleHBlY3RlZCkKICNlbHNl
CiAgICAgY29uc3QgYm9vbCBpc0JpZ0VuZGlhbiA9IGZhbHNlOwogI2VuZGlmCi0gICAgQ0hFQ0tf
RVEoY29tcGlsZUFuZFJ1bjxpbnQ+KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICBDSEVD
S19FUShjb21waWxlQW5kUnVuPENDYWxsSW50MzI+KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsK
ICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKICAgICAgICAgaml0LnN1YlB0cihD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihzdGFja0FsaWdubWVudEJ5dGVzKCkpLCBNYWNyb0Fz
c2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBpZiAoaXNCaWdFbmRpYW4p
IHsKQEAgLTM2Niw4ICszNzIsOCBAQCB2b2lkIHRlc3RCcmFuY2hUZXN0OCgpCiAgICAgICAgICAg
ICAgICAgMCwKICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90Pih2YWx1ZSkKICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50Pih0ZXN0MSwgYXJy
YXkpLCByZXN1bHQpOwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4odGVzdDIsIGFy
cmF5LCAxKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMy
Pih0ZXN0MSwgYXJyYXkpLCByZXN1bHQpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50MzI+KHRlc3QyLCBhcnJheSwgMSksIHJlc3VsdCk7CiAgICAgICAgIH0KICAgICB9CiB9
CkBAIC00MTIsOCArNDE4LDggQEAgdm9pZCB0ZXN0QnJhbmNoVGVzdDE2KCkKICAgICAgICAgICAg
ICAgICAwLAogICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQxNl90Pih2YWx1ZSkKICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50Pih0ZXN0MSwgYXJy
YXkpLCByZXN1bHQpOwotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4odGVzdDIsIGFy
cmF5LCAxKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMy
Pih0ZXN0MSwgYXJyYXkpLCByZXN1bHQpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50MzI+KHRlc3QyLCBhcnJheSwgMSksIHJlc3VsdCk7CiAgICAgICAgIH0KICAgICB9CiB9
CkBAIC00MzcsNyArNDQzLDcgQEAgdm9pZCB0ZXN0QnJhbmNoVGVzdEJpdDMyUmVnUmVnKCkKICAg
ICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6IGludDMyT3BlcmFuZHMoKSkK
LSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KHRlc3QsIHZhbHVlLCB2YWx1ZTIpLCAo
dmFsdWU+Pih2YWx1ZTIlMzIpKSYxKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2Fs
bEludDMyPih0ZXN0LCB2YWx1ZSwgdmFsdWUyKSwgKHZhbHVlPj4odmFsdWUyJTMyKSkmMSk7CiAg
ICAgfQogfQogCkBAIC00NTksNyArNDY1LDcgQEAgdm9pZCB0ZXN0QnJhbmNoVGVzdEJpdDMyUmVn
SW1tKCkKICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6IGludDMyT3Bl
cmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KHRlc3QsIHZhbHVlMiks
ICh2YWx1ZTI+Pih2YWx1ZSUzMikpJjEpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50MzI+KHRlc3QsIHZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSUzMikpJjEpOwogICAgIH0K
IH0KIApAQCAtNDgxLDcgKzQ4Nyw3IEBAIHZvaWQgdGVzdEJyYW5jaFRlc3RCaXQzMkFkZHJJbW0o
KQogICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDogaW50MzJPcGVyYW5k
cygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4odGVzdCwgJnZhbHVlMiksICh2
YWx1ZTI+Pih2YWx1ZSUzMikpJjEpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxs
SW50MzI+KHRlc3QsICZ2YWx1ZTIpLCAodmFsdWUyPj4odmFsdWUlMzIpKSYxKTsKICAgICB9CiB9
CiAKQEAgLTUwMyw3ICs1MDksNyBAQCB2b2lkIHRlc3RCcmFuY2hUZXN0Qml0NjRSZWdSZWcoKQog
ICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDogaW50NjRPcGVyYW5kcygp
KQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGxvbmcgaW50Pih0ZXN0LCB2YWx1ZSwgdmFs
dWUyKSwgKHZhbHVlPj4odmFsdWUyJTY0KSkmMSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZv
a2U8Q0NhbGxJbnQ2ND4odGVzdCwgdmFsdWUsIHZhbHVlMiksICh2YWx1ZT4+KHZhbHVlMiU2NCkp
JjEpOwogICAgIH0KIH0KIApAQCAtNTI1LDcgKzUzMSw3IEBAIHZvaWQgdGVzdEJyYW5jaFRlc3RC
aXQ2NFJlZ0ltbSgpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2YWx1ZTIgOiBp
bnQ2NE9wZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8bG9uZyBpbnQ+KHRl
c3QsIHZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSU2NCkpJjEpOworICAgICAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIHZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSU2NCkp
JjEpOwogICAgIH0KIH0KIApAQCAtNTQ3LDcgKzU1Myw3IEBAIHZvaWQgdGVzdEJyYW5jaFRlc3RC
aXQ2NEFkZHJJbW0oKQogICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDog
aW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGxvbmcgaW50Pih0
ZXN0LCAmdmFsdWUyKSwgKHZhbHVlMj4+KHZhbHVlJTY0KSkmMSk7CisgICAgICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxJbnQ2ND4odGVzdCwgJnZhbHVlMiksICh2YWx1ZTI+Pih2YWx1ZSU2
NCkpJjEpOwogICAgIH0KIH0KIApAQCAtNTcyLDEyICs1NzgsMTIgQEAgdm9pZCB0ZXN0Q2xlYXJC
aXQ2NCgpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJpdHNJbldvcmQ7ICsraSkgewog
ICAgICAgICB1aW50NjRfdCB3b3JkID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1h
eCgpOwogICAgICAgICBjb25zdGV4cHIgdWludDY0X3Qgb25lID0gMTsKLSAgICAgICAgQ0hFQ0tf
RVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCBpKSwgKHdvcmQgJiB+KG9uZSA8PCBpKSkp
OworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIHdvcmQsIGkpLCAo
d29yZCAmIH4ob25lIDw8IGkpKSk7CiAgICAgfQogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGJpdHNJbldvcmQ7ICsraSkgewogICAgICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCBpKSwgMCk7CisgICAgICAg
IENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgd29yZCwgaSksIDApOwogICAgIH0K
IH0KIApAQCAtNTk1LDEyICs2MDEsMTIgQEAgdm9pZCB0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFzaygp
CiAKICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgdWlu
dDY0X3Qgd29yZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsKLSAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCB2YWx1ZSksICh3b3JkICYg
fnZhbHVlKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgd29y
ZCwgdmFsdWUpLCAod29yZCAmIH52YWx1ZSkpOwogICAgIH0KIAogICAgIGZvciAoYXV0byB2YWx1
ZSA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCB3b3JkLCB2YWx1ZSksIDApOworICAg
ICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIHdvcmQsIHZhbHVlKSwgMCk7
CiAgICAgfQogCiAgICAgdWludDY0X3Qgc2F2ZWRNYXNrID0gMDsKQEAgLTYyNCwxMiArNjMwLDEy
IEBAIHZvaWQgdGVzdENsZWFyQml0czY0V2l0aE1hc2soKQogCiAgICAgZm9yIChhdXRvIHZhbHVl
IDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90IHdvcmQgPSBzdGQ6Om51bWVy
aWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50
NjRfdD4odGVzdDIsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFsdWUpKTsKKyAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAod29yZCAmIH52
YWx1ZSkpOwogICAgIH0KIAogICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkg
ewogICAgICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVp
bnQ2NF90Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKICAgICB9CiB9CiAKQEAgLTY0
OCwxMiArNjU0LDEyIEBAIHZvaWQgdGVzdENsZWFyQml0czY0V2l0aE1hc2tUZXJuYXJ5KCkKIAog
ICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICB1aW50NjRf
dCB3b3JkID0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpOwotICAgICAgICBD
SEVDS19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFs
dWUpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0LCB3b3JkLCB2
YWx1ZSksICh3b3JkICYgfnZhbHVlKSk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvIHZhbHVlIDog
aW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90IHdvcmQgPSAwOwotICAgICAgICBD
SEVDS19FUShpbnZva2U8dWludDY0X3Q+KHRlc3QsIHdvcmQsIHZhbHVlKSwgMCk7CisgICAgICAg
IENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odGVzdCwgd29yZCwgdmFsdWUpLCAwKTsKICAg
ICB9CiAKICAgICB1aW50NjRfdCBzYXZlZE1hc2sgPSAwOwpAQCAtNjc5LDEyICs2ODUsMTIgQEAg
dm9pZCB0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFza1Rlcm5hcnkoKQogCiAgICAgZm9yIChhdXRvIHZh
bHVlIDogaW50NjRPcGVyYW5kcygpKSB7CiAgICAgICAgIHVpbnQ2NF90IHdvcmQgPSBzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1
aW50NjRfdD4odGVzdDIsIHdvcmQsIHZhbHVlKSwgKHdvcmQgJiB+dmFsdWUpKTsKKyAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAod29yZCAm
IH52YWx1ZSkpOwogICAgIH0KIAogICAgIGZvciAoYXV0byB2YWx1ZSA6IGludDY0T3BlcmFuZHMo
KSkgewogICAgICAgICB1aW50NjRfdCB3b3JkID0gMDsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHVpbnQ2NF90Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPENDYWxsVUludDY0Pih0ZXN0Miwgd29yZCwgdmFsdWUpLCAwKTsKICAgICB9CiB9CiAKQEAg
LTcxOCwxMyArNzI0LDEzIEBAIHN0YXRpYyB2b2lkIHRlc3RDb3VudFRyYWlsaW5nWmVyb3M2NElt
cGwoYm9vbCB3b3JkQ2FuQmVaZXJvKQogICAgIGZvciAoYXV0byB3b3JkIDogaW50NjRPcGVyYW5k
cygpKSB7CiAgICAgICAgIGlmICghd29yZENhbkJlWmVybyAmJiAhd29yZCkKICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICBDSEVDS19FUShpbnZva2U8c2l6ZV90Pih0ZXN0LCB3b3JkKSwg
ZXhwZWN0ZWROdW1iZXJPZlRyYWlsaW5nWmVyb3Mod29yZCkpOworICAgICAgICBDSEVDS19FUShp
bnZva2U8Q0NhbGxTaXplPih0ZXN0LCB3b3JkKSwgZXhwZWN0ZWROdW1iZXJPZlRyYWlsaW5nWmVy
b3Mod29yZCkpOwogICAgIH0KIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZC
aXRzOyArK2kpIHsKICAgICAgICAgdWludDY0X3Qgb25lID0gMTsKICAgICAgICAgdWludDY0X3Qg
d29yZCA9IG9uZSA8PCBpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8c2l6ZV90Pih0ZXN0LCB3
b3JkKSwgaSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFNpemU+KHRlc3QsIHdvcmQp
LCBpKTsKICAgICB9CiB9CiAKQEAgLTc5MSw3ICs3OTcsNyBAQCB2b2lkIHRlc3RTaGlmdEFuZEFk
ZCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIENIRUNL
X0VRKGludm9rZTxpbnRwdHJfdD4odGVzdCksIGJhc2VQb2ludGVyICsgKGluZGV4IDw8IHNoaWZ0
KSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludHB0cj4odGVzdCksIGJhc2VQb2lu
dGVyICsgKGluZGV4IDw8IHNoaWZ0KSk7CiAgICAgfTsKIAogICAgIGZvciAoYXV0byBpbmRleCA6
IGludDMyT3BlcmFuZHMoKSkgewpAQCAtODIxLDcgKzgyNyw3IEBAIHZvaWQgdGVzdFN0b3JlNjRJ
bW02NEFkZHJlc3NQb2ludGVyKCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
CiAKLSAgICAgICAgaW52b2tlPHNpemVfdD4odGVzdCk7CisgICAgICAgIGludm9rZTxDQ2FsbFNp
emU+KHRlc3QpOwogICAgICAgICBDSEVDS19FUShkZXN0LCB2YWx1ZSk7CiAgICAgfTsKICAgICAK
QEAgLTkwMyw4ICs5MDksOCBAQCB2b2lkIHRlc3RDb21wYXJlRG91YmxlKE1hY3JvQXNzZW1ibGVy
OjpEb3VibGVDb25kaXRpb24gY29uZGl0aW9uKQogICAgICAgICBmb3IgKGF1dG8gYiA6IG9wZXJh
bmRzKSB7CiAgICAgICAgICAgICBhcmcxID0gYTsKICAgICAgICAgICAgIGFyZzIgPSBiOwotICAg
ICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oY29tcGFyZURvdWJsZSksIGV4cGVjdGVkUmVz
dWx0KGEsIGIpKTsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KGNvbXBhcmVEb3Vi
bGVHZW5lcmljKSwgZXhwZWN0ZWRSZXN1bHQoYSwgYikpOworICAgICAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPENDYWxsSW50MzI+KGNvbXBhcmVEb3VibGUpLCBleHBlY3RlZFJlc3VsdChhLCBiKSk7
CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4oY29tcGFyZURvdWJsZUdl
bmVyaWMpLCBleHBlY3RlZFJlc3VsdChhLCBiKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC05
NzMsOCArOTc5LDggQEAgdm9pZCB0ZXN0Q29tcGFyZURvdWJsZVNhbWVBcmcoTWFjcm9Bc3NlbWJs
ZXI6OkRvdWJsZUNvbmRpdGlvbiBjb25kaXRpb24pCiAgICAgYXV0byBvcGVyYW5kcyA9IGRvdWJs
ZU9wZXJhbmRzKCk7CiAgICAgZm9yIChhdXRvIGEgOiBvcGVyYW5kcykgewogICAgICAgICBhcmcx
ID0gYTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oY29tcGFyZURvdWJsZSksIGV4cGVj
dGVkUmVzdWx0KGEpKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oY29tcGFyZURvdWJs
ZUdlbmVyaWMpLCBleHBlY3RlZFJlc3VsdChhKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxD
Q2FsbEludDMyPihjb21wYXJlRG91YmxlKSwgZXhwZWN0ZWRSZXN1bHQoYSkpOworICAgICAgICBD
SEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4oY29tcGFyZURvdWJsZUdlbmVyaWMpLCBleHBlY3Rl
ZFJlc3VsdChhKSk7CiAgICAgfQogfQogCkBAIC05OTEsNyArOTk3LDcgQEAgdm9pZCB0ZXN0TXVs
MzJXaXRoSW1tZWRpYXRlcygpCiAgICAgICAgIH0pOwogCiAgICAgICAgIGZvciAoYXV0byB2YWx1
ZSA6IGludDMyT3BlcmFuZHMoKSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KG11
bCwgdmFsdWUpLCBpbW1lZGlhdGUgKiB2YWx1ZSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZv
a2U8Q0NhbGxJbnQzMj4obXVsLCB2YWx1ZSksIGltbWVkaWF0ZSAqIHZhbHVlKTsKICAgICB9CiB9
CiAKQEAgLTEwMDksNyArMTAxNSw3IEBAIHZvaWQgdGVzdE11bHRpcGx5U2lnbkV4dGVuZDMyKCkK
ICAgICAgICAgfSk7CiAKICAgICAgICAgZm9yIChhdXRvIHZhbHVlMiA6IGludDMyT3BlcmFuZHMo
KSkKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxsb25nIGludD4obXVsLCB2YWx1ZSwgdmFs
dWUyKSwgKChsb25nIGludCkgdmFsdWUpICogKChsb25nIGludCkgdmFsdWUyKSk7CisgICAgICAg
ICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4obXVsLCB2YWx1ZSwgdmFsdWUyKSwgaW50
NjRfdCh2YWx1ZSkgKiBpbnQ2NF90KHZhbHVlMikpOwogICAgIH0KIH0KIApAQCAtMTAyOCw3ICsx
MDM0LDcgQEAgdm9pZCB0ZXN0TXVsdGlwbHlaZXJvRXh0ZW5kMzIoKQogICAgICAgICBmb3IgKGF1
dG8gbU9wZXJhbmQgOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAgICAgICAgICAgIHVpbnQzMl90IG4g
PSBuT3BlcmFuZDsKICAgICAgICAgICAgIHVpbnQzMl90IG0gPSBtT3BlcmFuZDsKLSAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4obXVsLCBuLCBtKSwgc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KG4pICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pKTsKKyAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4obXVsLCBuLCBtKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KG4pICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAg
LTEwNTEsNyArMTA1Nyw3IEBAIHZvaWQgdGVzdE11bHRpcGx5QWRkU2lnbkV4dGVuZDMyKCkKICAg
ICBmb3IgKGF1dG8gbiA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICBmb3IgKGF1dG8gbSA6
IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvIGEgOiBpbnQ2NE9wZXJh
bmRzKCkpCi0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KGFkZCwgbiwg
bSwgYSksIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pICogc3RhdGljX2Nhc3Q8aW50NjRfdD4obSkg
KyBhKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4oYWRkLCBu
LCBtLCBhKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4obikgKiBzdGF0aWNfY2FzdDxpbnQ2NF90Piht
KSArIGEpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTA3Niw3ICsxMDgyLDcgQEAgdm9pZCB0
ZXN0TXVsdGlwbHlBZGRaZXJvRXh0ZW5kMzIoKQogICAgICAgICAgICAgZm9yIChhdXRvIGEgOiBp
bnQ2NE9wZXJhbmRzKCkpIHsKICAgICAgICAgICAgICAgICB1aW50MzJfdCB1biA9IG47CiAgICAg
ICAgICAgICAgICAgdWludDMyX3QgdW0gPSBtOwotICAgICAgICAgICAgICAgIENIRUNLX0VRKGlu
dm9rZTxpbnQ2NF90PihhZGQsIG4sIG0sIGEpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih1bikgKiBz
dGF0aWNfY2FzdDxpbnQ2NF90Pih1bSkgKyBhKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUShp
bnZva2U8Q0NhbGxJbnQ2ND4oYWRkLCBuLCBtLCBhKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4odW4p
ICogc3RhdGljX2Nhc3Q8aW50NjRfdD4odW0pICsgYSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CkBAIC0xMDk1LDcgKzExMDEsNyBAQCB2b2lkIHRlc3RTdWIzMkFyZ3MoKQogICAg
ICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUyIDogaW50MzJPcGVyYW5kcygpKQot
ICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIsIHZhbHVlLCB2YWx1ZTIp
LCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUgLSB2YWx1ZTIpKTsKKyAgICAgICAgICAgIENI
RUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4oc3ViLCB2YWx1ZSwgdmFsdWUyKSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KHZhbHVlIC0gdmFsdWUyKSk7CiAgICAgfQogfQogCkBAIC0xMTEyLDcgKzEx
MTgsNyBAQCB2b2lkIHRlc3RTdWIzMkltbSgpCiAgICAgICAgICAgICAgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4oc3ViKSwgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsKKyAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbFVJbnQzMj4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGltbWVk
aWF0ZSAtIGltbWVkaWF0ZTIpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTExMzAsNyArMTEz
Niw3IEBAIHZvaWQgdGVzdFN1YjY0SW1tMzIoKQogICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKGppdCk7CiAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHN1YiksIHN0YXRpY19j
YXN0PHVpbnQ2NF90PihpbW1lZGlhdGUgLSBpbW1lZGlhdGUyKSk7CisgICAgICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHN1YiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PihpbW1l
ZGlhdGUgLSBpbW1lZGlhdGUyKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMTQ4LDcgKzEx
NTQsNyBAQCB2b2lkIHRlc3RTdWI2NEFyZ0ltbTMyKCkKICAgICAgICAgfSk7CiAKICAgICAgICAg
Zm9yIChhdXRvIHZhbHVlIDogaW50NjRPcGVyYW5kcygpKQotICAgICAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPGludDY0X3Q+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAt
IGltbWVkaWF0ZSkpOworICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHN1
YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSAtIGltbWVkaWF0ZSkpOwogICAg
IH0KIH0KIApAQCAtMTE2NSw3ICsxMTcxLDcgQEAgdm9pZCB0ZXN0U3ViNjRJbW02NCgpCiAgICAg
ICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTx1
aW50NjRfdD4oc3ViKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0
ZTIpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4oc3ViKSwgc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KGltbWVkaWF0ZSAtIGltbWVkaWF0ZTIpKTsKICAgICAgICAgfQog
ICAgIH0KIH0KQEAgLTExODMsNyArMTE4OSw3IEBAIHZvaWQgdGVzdFN1YjY0QXJnSW1tNjQoKQog
ICAgICAgICB9KTsKIAogICAgICAgICBmb3IgKGF1dG8gdmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkp
Ci0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oc3ViLCB2YWx1ZSksIHN0YXRp
Y19jYXN0PGludDY0X3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgICAgICAgICBDSEVDS19F
UShpbnZva2U8Q0NhbGxJbnQ2ND4oc3ViLCB2YWx1ZSksIHN0YXRpY19jYXN0PGludDY0X3Q+KHZh
bHVlIC0gaW1tZWRpYXRlKSk7CiAgICAgfQogfQogCkBAIC0xMjA1LDcgKzEyMTEsNyBAQCB2b2lk
IHRlc3RNdWx0aXBseVN1YlNpZ25FeHRlbmQzMigpCiAgICAgZm9yIChhdXRvIGEgOiBpbnQ2NE9w
ZXJhbmRzKCkpIHsKICAgICAgICAgZm9yIChhdXRvIG4gOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAg
ICAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVyYW5kcygpKQotICAgICAgICAgICAgICAg
IENIRUNLX0VRKGludm9rZTxpbnQ2NF90PihzdWIsIGEsIG4sIG0pLCBhIC0gc3RhdGljX2Nhc3Q8
aW50NjRfdD4obikgKiBzdGF0aWNfY2FzdDxpbnQ2NF90PihtKSk7CisgICAgICAgICAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHN1YiwgYSwgbiwgbSksIGEgLSBzdGF0aWNfY2Fz
dDxpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+KG0pKTsKICAgICAgICAgfQogICAg
IH0KIH0KQEAgLTEyMzAsNyArMTIzNiw3IEBAIHZvaWQgdGVzdE11bHRpcGx5U3ViWmVyb0V4dGVu
ZDMyKCkKICAgICAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVyYW5kcygpKSB7CiAgICAg
ICAgICAgICAgICAgdWludDMyX3QgdW4gPSBuOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHVt
ID0gbTsKLSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4oc3ViLCBhLCBu
LCBtKSwgYSAtIHN0YXRpY19jYXN0PGludDY0X3Q+KHVuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+
KHVtKSk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHN1Yiwg
YSwgbiwgbSksIGEgLSBzdGF0aWNfY2FzdDxpbnQ2NF90Pih1bikgKiBzdGF0aWNfY2FzdDxpbnQ2
NF90Pih1bSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTI1MCw3ICsx
MjU2LDcgQEAgdm9pZCB0ZXN0TXVsdGlwbHlOZWdTaWduRXh0ZW5kMzIoKQogCiAgICAgZm9yIChh
dXRvIG4gOiBpbnQzMk9wZXJhbmRzKCkpIHsKICAgICAgICAgZm9yIChhdXRvIG0gOiBpbnQzMk9w
ZXJhbmRzKCkpCi0gICAgICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4obmVnLCBuLCBt
KSwgLShzdGF0aWNfY2FzdDxpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+KG0pKSk7
CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4obmVnLCBuLCBtKSwgLShz
dGF0aWNfY2FzdDxpbnQ2NF90PihuKSAqIHN0YXRpY19jYXN0PGludDY0X3Q+KG0pKSk7CiAgICAg
fQogfQogCkBAIC0xMjcwLDcgKzEyNzYsNyBAQCB2b2lkIHRlc3RNdWx0aXBseU5lZ1plcm9FeHRl
bmQzMigpCiAgICAgICAgIGZvciAoYXV0byBtIDogaW50MzJPcGVyYW5kcygpKSB7CiAgICAgICAg
ICAgICB1aW50MzJfdCB1biA9IG47CiAgICAgICAgICAgICB1aW50MzJfdCB1bSA9IG07Ci0gICAg
ICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KG5lZywgbiwgbSksIC0oc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KHVuKSAqIHN0YXRpY19jYXN0PHVpbnQ2NF90Pih1bSkpKTsKKyAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4obmVnLCBuLCBtKSwgLShzdGF0aWNfY2Fz
dDx1aW50NjRfdD4odW4pICogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVtKSkpOwogICAgICAgICB9
CiAgICAgfQogfQpAQCAtMTI5Myw3ICsxMjk5LDcgQEAgdm9pZCB0ZXN0RXh0cmFjdFVuc2lnbmVk
Qml0ZmllbGQzMigpCiAgICAgICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGpp
dCk7CiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHViZngzMiwgc3JjKSwg
KChzcmMgPj4gbHNiKSAmICgoMVUgPDwgd2lkdGgpIC0gMVUpKSk7CisgICAgICAgICAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPih1YmZ4MzIsIHNyYyksICgoc3JjID4+IGxzYikg
JiAoKDFVIDw8IHdpZHRoKSAtIDFVKSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQpAQCAtMTMxNyw3ICsxMzIzLDcgQEAgdm9pZCB0ZXN0RXh0cmFjdFVuc2lnbmVkQml0ZmllbGQ2
NCgpCiAgICAgICAgICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAg
ICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KHViZng2NCwgc3JjKSwgKChzcmMgPj4g
bHNiKSAmICgoMVVMTCA8PCB3aWR0aCkgLSAxVUxMKSkpOworICAgICAgICAgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4odWJmeDY0LCBzcmMpLCAoKHNyYyA+PiBsc2IpICYgKCgx
VUxMIDw8IHdpZHRoKSAtIDFVTEwpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CkBAIC0xMzQyLDcgKzEzNDgsNyBAQCB2b2lkIHRlc3RJbnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5a
ZXJvMzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzayA9ICgxVSA8PCB3aWR0aCkgLSAxVTsK
LSAgICAgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHViZml6MzIsIHNyYyks
IChzcmMgJiBtYXNrKSA8PCBsc2IpOworICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxD
Q2FsbFVJbnQzMj4odWJmaXozMiwgc3JjKSwgKHNyYyAmIG1hc2spIDw8IGxzYik7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzY3LDcgKzEzNzMsNyBAQCB2b2lkIHRlc3RJ
bnNlcnRVbnNpZ25lZEJpdGZpZWxkSW5aZXJvNjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbWFz
ayA9ICgxVUxMIDw8IHdpZHRoKSAtIDFVTEw7Ci0gICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPHVpbnQ2NF90Pih1YmZpejY0LCBzcmMpLCAoc3JjICYgbWFzaykgPDwgbHNiKTsKKyAgICAg
ICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KHViZml6NjQsIHNyYyksIChz
cmMgJiBtYXNrKSA8PCBsc2IpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAt
MTM5NSw3ICsxNDAxLDcgQEAgdm9pZCB0ZXN0SW5zZXJ0Qml0RmllbGQzMigpCiAgICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzazEgPSAoMVUgPDwgd2lkdGgp
IC0gMVU7CiAgICAgICAgICAgICAgICAgdWludDMyX3QgbWFzazIgPSB+KG1hc2sxIDw8IGxzYik7
Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gaW52b2tlPHVpbnQzMl90PihiZmkzMiwg
c3JjLCBkc3QpOworICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9IGludm9rZTxDQ2FsbFVJ
bnQzMj4oYmZpMzIsIHNyYywgZHN0KTsKICAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSAo
KHNyYyAmIG1hc2sxKSA8PCBsc2IpIHwgKGRzdCAmIG1hc2syKTsKICAgICAgICAgICAgICAgICBD
SEVDS19FUShyaHMsIGxocyk7CiAgICAgICAgICAgICB9CkBAIC0xNDI1LDcgKzE0MzEsNyBAQCB2
b2lkIHRlc3RJbnNlcnRCaXRGaWVsZDY0KCkKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgICAgICB1aW50NjRfdCBtYXNrMSA9ICgxVUxMIDw8IHdpZHRoKSAtIDFVTEw7CiAgICAgICAg
ICAgICAgICAgdWludDY0X3QgbWFzazIgPSB+KG1hc2sxIDw8IGxzYik7Ci0gICAgICAgICAgICAg
ICAgdWludDY0X3QgcmhzID0gaW52b2tlPHVpbnQ2NF90PihiZmk2NCwgc3JjLCBkc3QpOworICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oYmZpNjQsIHNy
YywgZHN0KTsKICAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSAoKHNyYyAmIG1hc2sxKSA8
PCBsc2IpIHwgKGRzdCAmIG1hc2syKTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShyaHMsIGxo
cyk7CiAgICAgICAgICAgICB9CkBAIC0xNDU1LDcgKzE0NjEsNyBAQCB2b2lkIHRlc3RFeHRyYWN0
SW5zZXJ0Qml0ZmllbGRBdExvd0VuZDMyKCkKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgICAgICB1aW50MzJfdCBtYXNrMSA9ICgxVSA8PCB3aWR0aCkgLSAxVTsKICAgICAgICAgICAg
ICAgICB1aW50MzJfdCBtYXNrMiA9IH5tYXNrMTsKLSAgICAgICAgICAgICAgICB1aW50MzJfdCBy
aHMgPSBpbnZva2U8dWludDMyX3Q+KGJmeGlsMzIsIHNyYywgZHN0KTsKKyAgICAgICAgICAgICAg
ICB1aW50MzJfdCByaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KGJmeGlsMzIsIHNyYywgZHN0KTsK
ICAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSAoKHNyYyA+PiBsc2IpICYgbWFzazEpIHwg
KGRzdCAmIG1hc2syKTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShyaHMsIGxocyk7CiAgICAg
ICAgICAgICB9CkBAIC0xNDg1LDcgKzE0OTEsNyBAQCB2b2lkIHRlc3RFeHRyYWN0SW5zZXJ0Qml0
ZmllbGRBdExvd0VuZDY0KCkKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB1
aW50NjRfdCBtYXNrMSA9ICgxVUxMIDw8IHdpZHRoKSAtIDFVTEw7CiAgICAgICAgICAgICAgICAg
dWludDY0X3QgbWFzazIgPSB+bWFzazE7Ci0gICAgICAgICAgICAgICAgdWludDY0X3QgcmhzID0g
aW52b2tlPHVpbnQ2NF90PihiZnhpbDY0LCBzcmMsIGRzdCk7CisgICAgICAgICAgICAgICAgdWlu
dDY0X3QgcmhzID0gaW52b2tlPENDYWxsVUludDY0PihiZnhpbDY0LCBzcmMsIGRzdCk7CiAgICAg
ICAgICAgICAgICAgdWludDY0X3QgbGhzID0gKChzcmMgPj4gbHNiKSAmIG1hc2sxKSB8IChkc3Qg
JiBtYXNrMik7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEocmhzLCBsaHMpOwogICAgICAgICAg
ICAgfQpAQCAtMTUxMCw3ICsxNTE2LDcgQEAgdm9pZCB0ZXN0Q2xlYXJCaXRGaWVsZDMyKCkKICAg
ICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgICAgIHVpbnQzMl90IG1hc2sgPSAoKDFVIDw8IHdpZHRoKSAtIDFVKSA8PCBsc2I7Ci0g
ICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gaW52b2tlPHVpbnQzMl90PihiZmMzMiwgc3Jj
KTsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCByaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KGJm
YzMyLCBzcmMpOwogICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IHNyYyAmIH5tYXNrOwog
ICAgICAgICAgICAgICAgIENIRUNLX0VRKHJocywgbGhzKTsKICAgICAgICAgICAgIH0KQEAgLTE1
MzUsNyArMTU0MSw3IEBAIHZvaWQgdGVzdENsZWFyQml0RmllbGQ2NCgpCiAgICAgICAgICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB1
aW50NjRfdCBtYXNrID0gKCgxVUxMIDw8IHdpZHRoKSAtIDFVTEwpIDw8IGxzYjsKLSAgICAgICAg
ICAgICAgICB1aW50NjRfdCByaHMgPSBpbnZva2U8dWludDY0X3Q+KGJmYzY0LCBzcmMpOworICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oYmZjNjQsIHNy
Yyk7CiAgICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gc3JjICYgfm1hc2s7CiAgICAgICAg
ICAgICAgICAgQ0hFQ0tfRVEocmhzLCBsaHMpOwogICAgICAgICAgICAgfQpAQCAtMTU1Niw4ICsx
NTYyLDggQEAgdm9pZCB0ZXN0Q2xlYXJCaXRzV2l0aE1hc2szMigpCiAKICAgICBmb3IgKGF1dG8g
bWFzayA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICB1aW50MzJfdCBzcmMgPSBzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1
aW50MzJfdD4odGVzdCwgc3JjLCBtYXNrKSwgKHNyYyAmIH5tYXNrKSk7Ci0gICAgICAgIENIRUNL
X0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgMFUsIG1hc2spLCAwVSk7CisgICAgICAgIENIRUNL
X0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgc3JjLCBtYXNrKSwgKHNyYyAmIH5tYXNrKSk7
CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgMFUsIG1hc2spLCAw
VSk7CiAgICAgfQogfQogCkBAIC0xNTc0LDggKzE1ODAsOCBAQCB2b2lkIHRlc3RDbGVhckJpdHNX
aXRoTWFzazY0KCkKIAogICAgIGZvciAoYXV0byBtYXNrIDogaW50NjRPcGVyYW5kcygpKSB7CiAg
ICAgICAgIHVpbnQ2NF90IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgo
KTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCBzcmMsIG1hc2spLCAo
c3JjICYgfm1hc2spKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCAw
VUxMLCBtYXNrKSwgMFVMTCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4o
dGVzdCwgc3JjLCBtYXNrKSwgKHNyYyAmIH5tYXNrKSk7CisgICAgICAgIENIRUNLX0VRKGludm9r
ZTxDQ2FsbFVJbnQ2ND4odGVzdCwgMFVMTCwgbWFzayksIDBVTEwpOwogICAgIH0KIH0KIApAQCAt
MTU5Miw4ICsxNTk4LDggQEAgdm9pZCB0ZXN0T3JOb3QzMigpCiAKICAgICBmb3IgKGF1dG8gbWFz
ayA6IGludDMyT3BlcmFuZHMoKSkgewogICAgICAgICBpbnQzMl90IHNyYyA9IHN0ZDo6bnVtZXJp
Y19saW1pdHM8dWludDMyX3Q+OjptYXgoKTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDMy
X3Q+KHRlc3QsIHNyYywgbWFzayksIChzcmMgfCB+bWFzaykpOwotICAgICAgICBDSEVDS19FUShp
bnZva2U8aW50MzJfdD4odGVzdCwgMFUsIG1hc2spLCB+bWFzayk7CisgICAgICAgIENIRUNLX0VR
KGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCBzcmMsIG1hc2spLCAoc3JjIHwgfm1hc2spKTsKKyAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QsIDBVLCBtYXNrKSwgfm1hc2sp
OwogICAgIH0KIH0KIApAQCAtMTYxMCw4ICsxNjE2LDggQEAgdm9pZCB0ZXN0T3JOb3Q2NCgpCiAK
ICAgICBmb3IgKGF1dG8gbWFzayA6IGludDY0T3BlcmFuZHMoKSkgewogICAgICAgICBpbnQ2NF90
IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsKLSAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPGludDY0X3Q+KHRlc3QsIHNyYywgbWFzayksIChzcmMgfCB+bWFzaykpOwot
ICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4odGVzdCwgMFVMTCwgbWFzayksIH5tYXNr
KTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3QsIHNyYywgbWFzayks
IChzcmMgfCB+bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQ2ND4odGVz
dCwgMFVMTCwgbWFzayksIH5tYXNrKTsKICAgICB9CiB9CiAKQEAgLTE2MzksNyArMTY0NSw3IEBA
IHZvaWQgdGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIoKQogICAgICAgICAgICAgICAg
IGludDMyX3QgbWFzazIgPSAxIDw8ICh3aWR0aCAtIDEpOwogICAgICAgICAgICAgICAgIGludDMy
X3QgYmZzeCA9ICgoYmYgJiBtYXNrMSkgXiBtYXNrMikgLSBtYXNrMjsKIAotICAgICAgICAgICAg
ICAgIENIRUNLX0VRKGludm9rZTxpbnQzMl90PihpbnNlcnRTaWduZWRCaXRmaWVsZEluWmVybzMy
LCBzcmMpLCBiZnN4IDw8IGxzYik7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPEND
YWxsSW50MzI+KGluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvMzIsIHNyYyksIGJmc3ggPDwgbHNi
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTE2NjgsNyArMTY3NCw3IEBA
IHZvaWQgdGVzdEluc2VydFNpZ25lZEJpdGZpZWxkSW5aZXJvNjQoKQogICAgICAgICAgICAgICAg
IGludDY0X3QgYW1vdW50ID0gQ0hBUl9CSVQgKiBzaXplb2YoYmYpIC0gd2lkdGg7CiAgICAgICAg
ICAgICAgICAgaW50NjRfdCBiZnN4ID0gKGJmIDw8IGFtb3VudCkgPj4gYW1vdW50OwogCi0gICAg
ICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KGluc2VydFNpZ25lZEJpdGZpZWxk
SW5aZXJvNjQsIHNyYyksIGJmc3ggPDwgbHNiKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUShp
bnZva2U8Q0NhbGxJbnQ2ND4oaW5zZXJ0U2lnbmVkQml0ZmllbGRJblplcm82NCwgc3JjKSwgYmZz
eCA8PCBsc2IpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTY5OCw3ICsx
NzA0LDcgQEAgdm9pZCB0ZXN0RXh0cmFjdFNpZ25lZEJpdGZpZWxkMzIoKQogICAgICAgICAgICAg
ICAgIGludDMyX3QgbWFzazIgPSAxIDw8ICh3aWR0aCAtIDEpOwogICAgICAgICAgICAgICAgIGlu
dDMyX3QgYmZzeCA9ICgoYmYgJiBtYXNrMSkgXiBtYXNrMikgLSBtYXNrMjsKIAotICAgICAgICAg
ICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQzMl90PihleHRyYWN0U2lnbmVkQml0ZmllbGQzMiwg
c3JjKSwgYmZzeCk7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+
KGV4dHJhY3RTaWduZWRCaXRmaWVsZDMyLCBzcmMpLCBiZnN4KTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0KQEAgLTE3MjcsNyArMTczMyw3IEBAIHZvaWQgdGVzdEV4dHJhY3RTaWdu
ZWRCaXRmaWVsZDY0KCkKICAgICAgICAgICAgICAgICBpbnQ2NF90IGFtb3VudCA9IENIQVJfQklU
ICogc2l6ZW9mKGJmKSAtIHdpZHRoOwogICAgICAgICAgICAgICAgIGludDY0X3QgYmZzeCA9IChi
ZiA8PCBhbW91bnQpID4+IGFtb3VudDsKIAotICAgICAgICAgICAgICAgIENIRUNLX0VRKGludm9r
ZTxpbnQ2NF90PihleHRyYWN0U2lnbmVkQml0ZmllbGQ2NCwgc3JjKSwgYmZzeCk7CisgICAgICAg
ICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KGV4dHJhY3RTaWduZWRCaXRmaWVs
ZDY0LCBzcmMpLCBiZnN4KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTE3
NjIsNyArMTc2OCw3IEBAIHZvaWQgdGVzdEV4dHJhY3RSZWdpc3RlcjMyKCkKICAgICAgICAgICAg
ICAgICAgICAgdWludDMyX3QgbGVmdCA9IGhpZ2hXaWR0aCA9PSBkYXRhc2l6ZSA/IDBVIDogKG4g
JiBtYXNrKSA8PCBoaWdoV2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHJpZ2h0
ID0gKHN0YXRpY19jYXN0PHVpbnQzMl90PihtKSA+PiBsc2IpOwogICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCByaHMgPSBsZWZ0IHwgcmlnaHQ7Ci0gICAgICAgICAgICAgICAgICAgIHVpbnQz
Ml90IGxocyA9IGludm9rZTx1aW50MzJfdD4oZXh0cmFjdFJlZ2lzdGVyMzIsIG4sIG0pOworICAg
ICAgICAgICAgICAgICAgICB1aW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KGV4dHJh
Y3RSZWdpc3RlcjMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCBy
aHMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTE3OTYsNyArMTgwMiw3
IEBAIHZvaWQgdGVzdEV4dHJhY3RSZWdpc3RlcjY0KCkKICAgICAgICAgICAgICAgICAgICAgdWlu
dDY0X3QgbGVmdCA9IGhpZ2hXaWR0aCA9PSBkYXRhc2l6ZSA/IDBVTEwgOiAobiAmIG1hc2spIDw8
IGhpZ2hXaWR0aDsKICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgcmlnaHQgPSAoc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KG0pID4+IGxzYik7CiAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90
IHJocyA9IGxlZnQgfCByaWdodDsKLSAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0g
aW52b2tlPHVpbnQ2NF90PihleHRyYWN0UmVnaXN0ZXI2NCwgbiwgbSk7CisgICAgICAgICAgICAg
ICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oZXh0cmFjdFJlZ2lzdGVy
NjQsIG4sIG0pOwogICAgICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTgyMiw3ICsxODI4LDcgQEAgdm9pZCB0
ZXN0QWRkV2l0aExlZnRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwog
ICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZv
a2U8aW50MzJfdD4oYWRkMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0g
aW52b2tlPENDYWxsSW50MzI+KGFkZDMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90
IHJocyA9IG4gKyAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywg
cmhzKTsKICAgICAgICAgICAgIH0KQEAgLTE4NDgsNyArMTg1NCw3IEBAIHZvaWQgdGVzdEFkZFdp
dGhSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
ICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQz
Ml90PihhZGQzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8
Q0NhbGxJbnQzMj4oYWRkMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0g
biArIChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwog
ICAgICAgICAgICAgfQpAQCAtMTg3NCw3ICsxODgwLDcgQEAgdm9pZCB0ZXN0QWRkV2l0aFVuc2ln
bmVkUmlnaHRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52b2tlPHVp
bnQzMl90PihhZGQzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWludDMyX3QgbGhzID0gaW52
b2tlPENDYWxsVUludDMyPihhZGQzMiwgbiwgbSk7CiAgICAgICAgICAgICAgICAgdWludDMyX3Qg
cmhzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG4pICsgKHN0YXRpY19jYXN0PHVpbnQzMl90Piht
KSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAg
ICAgICAgIH0KQEAgLTE5MDAsNyArMTkwNiw3IEBAIHZvaWQgdGVzdEFkZFdpdGhMZWZ0U2hpZnQ2
NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsK
IAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KGFkZDY0LCBu
LCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0Pihh
ZGQ2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuICsgKG0gPDwgYW1v
dW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9
CkBAIC0xOTI2LDcgKzE5MzIsNyBAQCB2b2lkIHRlc3RBZGRXaXRoUmlnaHRTaGlmdDY0KCkKICAg
ICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAg
ICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8aW50NjRfdD4oYWRkNjQsIG4sIG0pOwor
ICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KGFkZDY0LCBu
LCBtKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IHJocyA9IG4gKyAobSA+PiBhbW91bnQpOwog
ICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTE5
NTIsNyArMTk1OCw3IEBAIHZvaWQgdGVzdEFkZFdpdGhVbnNpZ25lZFJpZ2h0U2hpZnQ2NCgpCiAg
ICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTx1aW50NjRfdD4oYWRkNjQsIG4sIG0p
OworICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4oYWRk
NjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IHN0YXRpY19jYXN0PHVp
bnQ2NF90PihuKSArIChzdGF0aWNfY2FzdDx1aW50NjRfdD4obSkgPj4gYW1vdW50KTsKICAgICAg
ICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0xOTc4LDcg
KzE5ODQsNyBAQCB2b2lkIHRlc3RTdWJXaXRoTGVmdFNoaWZ0MzIoKQogICAgICAgICAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBp
bnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90PihzdWIzMiwgbiwgbSk7CisgICAgICAgICAgICAg
ICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4oc3ViMzIsIG4sIG0pOwogICAgICAg
ICAgICAgICAgIGludDMyX3QgcmhzID0gbiAtIChtIDw8IGFtb3VudCk7CiAgICAgICAgICAgICAg
ICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjAwNCw3ICsyMDEwLDcg
QEAgdm9pZCB0ZXN0U3ViV2l0aFJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGpp
dC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDMyX3Qg
bGhzID0gaW52b2tlPGludDMyX3Q+KHN1YjMyLCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQz
Ml90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPihzdWIzMiwgbiwgbSk7CiAgICAgICAgICAgICAg
ICAgaW50MzJfdCByaHMgPSBuIC0gKG0gPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVD
S19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMDMwLDcgKzIwMzYsNyBAQCB2b2lk
IHRlc3RTdWJXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1aW50MzJf
dCBsaHMgPSBpbnZva2U8dWludDMyX3Q+KHN1YjMyLCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1
aW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50MzI+KHN1YjMyLCBuLCBtKTsKICAgICAgICAg
ICAgICAgICB1aW50MzJfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obikgLSAoc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEo
bGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjA1Niw3ICsyMDYyLDcgQEAgdm9pZCB0ZXN0
U3ViV2l0aExlZnRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8
aW50NjRfdD4oc3ViNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52
b2tlPENDYWxsSW50NjQ+KHN1YjY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IHJo
cyA9IG4gLSAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhz
KTsKICAgICAgICAgICAgIH0KQEAgLTIwODIsNyArMjA4OCw3IEBAIHZvaWQgdGVzdFN1YldpdGhS
aWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAg
ICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2NF90
PihzdWI2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8Q0Nh
bGxJbnQ2ND4oc3ViNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0X3QgcmhzID0gbiAt
IChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAg
ICAgICAgICAgfQpAQCAtMjEwOCw3ICsyMTE0LDcgQEAgdm9pZCB0ZXN0U3ViV2l0aFVuc2lnbmVk
UmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAg
ICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gaW52b2tlPHVpbnQ2
NF90PihzdWI2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWludDY0X3QgbGhzID0gaW52b2tl
PENDYWxsVUludDY0PihzdWI2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgdWludDY0X3Qgcmhz
ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG4pIC0gKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtKSA+
PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAg
ICAgIH0KQEAgLTIxMjksOCArMjEzNSw4IEBAIHZvaWQgdGVzdFhvck5vdDMyKCkKIAogICAgIGZv
ciAoYXV0byBtYXNrIDogaW50MzJPcGVyYW5kcygpKSB7CiAgICAgICAgIGludDMyX3Qgc3JjID0g
c3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpOwotICAgICAgICBDSEVDS19FUShp
bnZva2U8aW50MzJfdD4odGVzdCwgc3JjLCBtYXNrKSwgKHNyYyBeIH5tYXNrKSk7Ci0gICAgICAg
IENIRUNLX0VRKGludm9rZTxpbnQzMl90Pih0ZXN0LCAwVSwgbWFzayksIH5tYXNrKTsKKyAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50MzI+KHRlc3QsIHNyYywgbWFzayksIChzcmMgXiB+
bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxJbnQzMj4odGVzdCwgMFUsIG1h
c2spLCB+bWFzayk7CiAgICAgfQogfQogCkBAIC0yMTQ3LDggKzIxNTMsOCBAQCB2b2lkIHRlc3RY
b3JOb3Q2NCgpCiAKICAgICBmb3IgKGF1dG8gbWFzayA6IGludDY0T3BlcmFuZHMoKSkgewogICAg
ICAgICBpbnQ2NF90IHNyYyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsK
LSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludDY0X3Q+KHRlc3QsIHNyYywgbWFzayksIChzcmMg
XiB+bWFzaykpOwotICAgICAgICBDSEVDS19FUShpbnZva2U8aW50NjRfdD4odGVzdCwgMFVMTCwg
bWFzayksIH5tYXNrKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsSW50NjQ+KHRlc3Qs
IHNyYywgbWFzayksIChzcmMgXiB+bWFzaykpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0Nh
bGxJbnQ2ND4odGVzdCwgMFVMTCwgbWFzayksIH5tYXNrKTsKICAgICB9CiB9CiAKQEAgLTIxNzAs
NyArMjE3Niw3IEBAIHZvaWQgdGVzdFhvck5vdFdpdGhMZWZ0U2hpZnQzMigpCiAgICAgICAgICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAg
ICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KHRlc3QsIG4sIG0pOworICAgICAgICAg
ICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KHRlc3QsIG4sIG0pOwogICAg
ICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiBeIH4obSA8PCBhbW91bnQpOwogICAgICAgICAg
ICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTIxOTYsNyArMjIw
Miw3IEBAIHZvaWQgdGVzdFhvck5vdFdpdGhSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBp
bnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90Pih0ZXN0LCBuLCBtKTsKKyAgICAgICAgICAgICAg
ICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPih0ZXN0LCBuLCBtKTsKICAgICAgICAg
ICAgICAgICBpbnQzMl90IHJocyA9IG4gXiB+KG0gPj4gYW1vdW50KTsKICAgICAgICAgICAgICAg
ICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMjIyLDcgKzIyMjgsNyBA
QCB2b2lkIHRlc3RYb3JOb3RXaXRoVW5zaWduZWRSaWdodFNoaWZ0MzIoKQogICAgICAgICAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAg
ICB1aW50MzJfdCBsaHMgPSBpbnZva2U8dWludDMyX3Q+KHRlc3QsIG4sIG0pOworICAgICAgICAg
ICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgbiwgbSk7CiAg
ICAgICAgICAgICAgICAgdWludDMyX3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG4pIF4g
fihzdGF0aWNfY2FzdDx1aW50MzJfdD4obSkgPj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBD
SEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMjQ4LDcgKzIyNTQsNyBAQCB2
b2lkIHRlc3RYb3JOb3RXaXRoTGVmdFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxo
cyA9IGludm9rZTxpbnQ2NF90Pih0ZXN0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90
IGxocyA9IGludm9rZTxDQ2FsbEludDY0Pih0ZXN0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBp
bnQ2NF90IHJocyA9IG4gXiB+KG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19F
UShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yMjc0LDcgKzIyODAsNyBAQCB2b2lkIHRl
c3RYb3JOb3RXaXRoUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBp
bnZva2U8aW50NjRfdD4odGVzdCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMg
PSBpbnZva2U8Q0NhbGxJbnQ2ND4odGVzdCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRf
dCByaHMgPSBuIF4gfihtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhz
LCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjMwMCw3ICsyMzA2LDcgQEAgdm9pZCB0ZXN0WG9y
Tm90V2l0aFVuc2lnbmVkUmlnaHRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWludDY0X3QgbGhz
ID0gaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50NjRf
dCBsaHMgPSBpbnZva2U8Q0NhbGxVSW50NjQ+KHRlc3QsIG4sIG0pOwogICAgICAgICAgICAgICAg
IHVpbnQ2NF90IHJocyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihuKSBeIH4oc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCBy
aHMpOwogICAgICAgICAgICAgfQpAQCAtMjMyNSw3ICsyMzMxLDcgQEAgdm9pZCB0ZXN0U3RvcmVQ
cmVQb3N0SW5kZXgzMigpCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwog
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9r
ZTxpbnRwdHJfdD4oc3RvcmUsIHNyYywgYWRkcik7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0Nh
bGxJbnRwdHI+KHN0b3JlLCBzcmMsIGFkZHIpOwogICAgIH07CiAKICAgICBpbnQzMl90KiBwMSA9
IGJpdHdpc2VfY2FzdDxpbnQzMl90Kj4odGVzdDEoNCkpOwpAQCAtMjM0Myw3ICsyMzQ5LDcgQEAg
dm9pZCB0ZXN0U3RvcmVQcmVQb3N0SW5kZXgzMigpCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICAg
ICAgcmV0dXJuIGludm9rZTxpbnRwdHJfdD4oc3RvcmUsIHNyYywgYWRkcik7CisgICAgICAgIHJl
dHVybiBpbnZva2U8Q0NhbGxJbnRwdHI+KHN0b3JlLCBzcmMsIGFkZHIpOwogICAgIH07CiAKICAg
ICBpbnQzMl90KiBwMiA9IGJpdHdpc2VfY2FzdDxpbnQzMl90Kj4odGVzdDIoNSkpOwpAQCAtMjM2
OCw3ICsyMzc0LDcgQEAgdm9pZCB0ZXN0U3RvcmVQcmVQb3N0SW5kZXg2NCgpCiAgICAgICAgICAg
ICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnRwdHJfdD4oc3RvcmUsIHNyYywgYWRk
cik7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnRwdHI+KHN0b3JlLCBzcmMsIGFkZHIp
OwogICAgIH07CiAKICAgICBpbnQ2NF90KiBwMSA9IGJpdHdpc2VfY2FzdDxpbnQ2NF90Kj4odGVz
dDEoNCkpOwpAQCAtMjM4Niw3ICsyMzkyLDcgQEAgdm9pZCB0ZXN0U3RvcmVQcmVQb3N0SW5kZXg2
NCgpCiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnRwdHJfdD4o
c3RvcmUsIHNyYywgYWRkcik7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnRwdHI+KHN0
b3JlLCBzcmMsIGFkZHIpOwogICAgIH07CiAKICAgICBpbnQ2NF90KiBwMiA9IGJpdHdpc2VfY2Fz
dDxpbnQ2NF90Kj4odGVzdDIoNSkpOwpAQCAtMjQxMSw3ICsyNDE3LDcgQEAgdm9pZCB0ZXN0TG9h
ZFByZVBvc3RJbmRleDMyKCkKICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgICAgICByZXR1cm4gaW52
b2tlPGludDMyX3Q+KGxvYWQsICZudW1zWzFdKTsKKyAgICAgICAgcmV0dXJuIGludm9rZTxDQ2Fs
bEludDMyPihsb2FkLCAmbnVtc1sxXSk7CiAgICAgfTsKIAogICAgIENIRUNLX0VRKHRlc3QxKDQp
LCAzKTsKQEAgLTI0MjksNyArMjQzNSw3IEBAIHZvaWQgdGVzdExvYWRQcmVQb3N0SW5kZXgzMigp
CiAgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwogICAgICAgICAgICAgaml0
LnJldCgpOwogICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIGludm9rZTxpbnQzMl90Pihsb2Fk
LCAmbnVtc1sxXSk7CisgICAgICAgIHJldHVybiBpbnZva2U8Q0NhbGxJbnQzMj4obG9hZCwgJm51
bXNbMV0pOwogICAgIH07CiAKICAgICBDSEVDS19FUSh0ZXN0Mig1KSwgMik7CkBAIC0yNDUzLDcg
KzI0NTksNyBAQCB2b2lkIHRlc3RMb2FkUHJlUG9zdEluZGV4NjQoKQogICAgICAgICAgICAgZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgICAgIHJldHVybiBpbnZva2U8aW50NjRfdD4obG9hZCwgJm51bXNbMV0pOworICAg
ICAgICByZXR1cm4gaW52b2tlPENDYWxsSW50NjQ+KGxvYWQsICZudW1zWzFdKTsKICAgICB9Owog
CiAgICAgQ0hFQ0tfRVEodGVzdDEoNCksIDMpOwpAQCAtMjQ3MSw3ICsyNDc3LDcgQEAgdm9pZCB0
ZXN0TG9hZFByZVBvc3RJbmRleDY0KCkKICAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KGppdCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgICAgICByZXR1
cm4gaW52b2tlPGludDY0X3Q+KGxvYWQsICZudW1zWzFdKTsKKyAgICAgICAgcmV0dXJuIGludm9r
ZTxDQ2FsbEludDY0Pihsb2FkLCAmbnVtc1sxXSk7CiAgICAgfTsKIAogICAgIENIRUNLX0VRKHRl
c3QyKDUpLCAyKTsKQEAgLTI0OTYsNyArMjUwMiw3IEBAIHZvaWQgdGVzdEFuZExlZnRTaGlmdDMy
KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwog
Ci0gICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4oYW5kMzIsIG4s
IG0pOworICAgICAgICAgICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KGFu
ZDMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gJiAobSA8PCBhbW91
bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0K
QEAgLTI1MjIsNyArMjUyOCw3IEBAIHZvaWQgdGVzdEFuZFJpZ2h0U2hpZnQzMigpCiAgICAgICAg
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAg
ICAgICAgIGludDMyX3QgbGhzID0gaW52b2tlPGludDMyX3Q+KGFuZDMyLCBuLCBtKTsKKyAgICAg
ICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbEludDMyPihhbmQzMiwgbiwgbSk7
CiAgICAgICAgICAgICAgICAgaW50MzJfdCByaHMgPSBuICYgKG0gPj4gYW1vdW50KTsKICAgICAg
ICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNTQ4LDcg
KzI1NTQsNyBAQCB2b2lkIHRlc3RBbmRVbnNpZ25lZFJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAg
ICAgIHVpbnQzMl90IGxocyA9IGludm9rZTx1aW50MzJfdD4oYW5kMzIsIG4sIG0pOworICAgICAg
ICAgICAgICAgIHVpbnQzMl90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQzMj4oYW5kMzIsIG4sIG0p
OwogICAgICAgICAgICAgICAgIHVpbnQzMl90IHJocyA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pihu
KSAmIChzdGF0aWNfY2FzdDx1aW50MzJfdD4obSkgPj4gYW1vdW50KTsKICAgICAgICAgICAgICAg
ICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNTc0LDcgKzI1ODAsNyBA
QCB2b2lkIHRlc3RBbmRMZWZ0U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0g
aW52b2tlPGludDY0X3Q+KGFuZDY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxo
cyA9IGludm9rZTxDQ2FsbEludDY0PihhbmQ2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50
NjRfdCByaHMgPSBuICYgKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShs
aHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yNjAwLDcgKzI2MDYsNyBAQCB2b2lkIHRlc3RB
bmRSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
ICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2
NF90PihhbmQ2NCwgbiwgbSk7CisgICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8
Q0NhbGxJbnQ2ND4oYW5kNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0X3QgcmhzID0g
biAmIChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwog
ICAgICAgICAgICAgfQpAQCAtMjYyNiw3ICsyNjMyLDcgQEAgdm9pZCB0ZXN0QW5kVW5zaWduZWRS
aWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAg
ICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8dWludDY0
X3Q+KGFuZDY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBsaHMgPSBpbnZva2U8
Q0NhbGxVSW50NjQ+KGFuZDY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICB1aW50NjRfdCByaHMg
PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4obikgJiAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG0pID4+
IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAg
ICAgfQpAQCAtMjY1Miw3ICsyNjU4LDcgQEAgdm9pZCB0ZXN0WG9yTGVmdFNoaWZ0MzIoKQogICAg
ICAgICAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAg
ICAgICAgICAgICBpbnQzMl90IGxocyA9IGludm9rZTxpbnQzMl90Pih4b3IzMiwgbiwgbSk7Cisg
ICAgICAgICAgICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4oeG9yMzIsIG4s
IG0pOwogICAgICAgICAgICAgICAgIGludDMyX3QgcmhzID0gbiBeIChtIDw8IGFtb3VudCk7CiAg
ICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjY3
OCw3ICsyNjg0LDcgQEAgdm9pZCB0ZXN0WG9yUmlnaHRTaGlmdDMyKCkKICAgICAgICAgICAgICAg
ICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAg
aW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4oeG9yMzIsIG4sIG0pOworICAgICAgICAgICAg
ICAgIGludDMyX3QgbGhzID0gaW52b2tlPENDYWxsSW50MzI+KHhvcjMyLCBuLCBtKTsKICAgICAg
ICAgICAgICAgICBpbnQzMl90IHJocyA9IG4gXiAobSA+PiBhbW91bnQpOwogICAgICAgICAgICAg
ICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI3MDQsNyArMjcxMCw3
IEBAIHZvaWQgdGVzdFhvclVuc2lnbmVkUmlnaHRTaGlmdDMyKCkKICAgICAgICAgICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgdWlu
dDMyX3QgbGhzID0gaW52b2tlPHVpbnQzMl90Pih4b3IzMiwgbiwgbSk7CisgICAgICAgICAgICAg
ICAgdWludDMyX3QgbGhzID0gaW52b2tlPENDYWxsVUludDMyPih4b3IzMiwgbiwgbSk7CiAgICAg
ICAgICAgICAgICAgdWludDMyX3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG4pIF4gKHN0
YXRpY19jYXN0PHVpbnQzMl90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNL
X0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI3MzAsNyArMjczNiw3IEBAIHZvaWQg
dGVzdFhvckxlZnRTaGlmdDY0KCkKICAgICAgICAgICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgaW50NjRfdCBsaHMgPSBpbnZva2U8
aW50NjRfdD4oeG9yNjQsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52
b2tlPENDYWxsSW50NjQ+KHhvcjY0LCBuLCBtKTsKICAgICAgICAgICAgICAgICBpbnQ2NF90IHJo
cyA9IG4gXiAobSA8PCBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNLX0VRKGxocywgcmhz
KTsKICAgICAgICAgICAgIH0KQEAgLTI3NTYsNyArMjc2Miw3IEBAIHZvaWQgdGVzdFhvclJpZ2h0
U2hpZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAg
ICB9KTsKIAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KHhv
cjY0LCBuLCBtKTsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbElu
dDY0Pih4b3I2NCwgbiwgbSk7CiAgICAgICAgICAgICAgICAgaW50NjRfdCByaHMgPSBuIF4gKG0g
Pj4gYW1vdW50KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAg
ICAgICB9CkBAIC0yNzgyLDcgKzI3ODgsNyBAQCB2b2lkIHRlc3RYb3JVbnNpZ25lZFJpZ2h0U2hp
ZnQ2NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9
KTsKIAotICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTx1aW50NjRfdD4oeG9y
NjQsIG4sIG0pOworICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJ
bnQ2ND4oeG9yNjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJocyA9IHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihuKSBeIChzdGF0aWNfY2FzdDx1aW50NjRfdD4obSkgPj4gYW1vdW50
KTsKICAgICAgICAgICAgICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBA
IC0yODA4LDcgKzI4MTQsNyBAQCB2b2lkIHRlc3RPckxlZnRTaGlmdDMyKCkKICAgICAgICAgICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAg
ICAgaW50MzJfdCBsaHMgPSBpbnZva2U8aW50MzJfdD4ob3IzMiwgbiwgbSk7CisgICAgICAgICAg
ICAgICAgaW50MzJfdCBsaHMgPSBpbnZva2U8Q0NhbGxJbnQzMj4ob3IzMiwgbiwgbSk7CiAgICAg
ICAgICAgICAgICAgaW50MzJfdCByaHMgPSBuIHwgKG0gPDwgYW1vdW50KTsKICAgICAgICAgICAg
ICAgICBDSEVDS19FUShsaHMsIHJocyk7CiAgICAgICAgICAgICB9CkBAIC0yODM0LDcgKzI4NDAs
NyBAQCB2b2lkIHRlc3RPclJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGludDMyX3QgbGhz
ID0gaW52b2tlPGludDMyX3Q+KG9yMzIsIG4sIG0pOworICAgICAgICAgICAgICAgIGludDMyX3Qg
bGhzID0gaW52b2tlPENDYWxsSW50MzI+KG9yMzIsIG4sIG0pOwogICAgICAgICAgICAgICAgIGlu
dDMyX3QgcmhzID0gbiB8IChtID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEo
bGhzLCByaHMpOwogICAgICAgICAgICAgfQpAQCAtMjg2MCw3ICsyODY2LDcgQEAgdm9pZCB0ZXN0
T3JVbnNpZ25lZFJpZ2h0U2hpZnQzMigpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIHVpbnQzMl90IGxocyA9IGlu
dm9rZTx1aW50MzJfdD4ob3IzMiwgbiwgbSk7CisgICAgICAgICAgICAgICAgdWludDMyX3QgbGhz
ID0gaW52b2tlPENDYWxsVUludDMyPihvcjMyLCBuLCBtKTsKICAgICAgICAgICAgICAgICB1aW50
MzJfdCByaHMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obikgfCAoc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KG0pID4+IGFtb3VudCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwog
ICAgICAgICAgICAgfQpAQCAtMjg4Niw3ICsyODkyLDcgQEAgdm9pZCB0ZXN0T3JMZWZ0U2hpZnQ2
NCgpCiAgICAgICAgICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgICAgICAgICB9KTsK
IAotICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPGludDY0X3Q+KG9yNjQsIG4s
IG0pOworICAgICAgICAgICAgICAgIGludDY0X3QgbGhzID0gaW52b2tlPENDYWxsSW50NjQ+KG9y
NjQsIG4sIG0pOwogICAgICAgICAgICAgICAgIGludDY0X3QgcmhzID0gbiB8IChtIDw8IGFtb3Vu
dCk7CiAgICAgICAgICAgICAgICAgQ0hFQ0tfRVEobGhzLCByaHMpOwogICAgICAgICAgICAgfQpA
QCAtMjkxMiw3ICsyOTE4LDcgQEAgdm9pZCB0ZXN0T3JSaWdodFNoaWZ0NjQoKQogICAgICAgICAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAg
ICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxpbnQ2NF90PihvcjY0LCBuLCBtKTsKKyAgICAgICAg
ICAgICAgICBpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbEludDY0PihvcjY0LCBuLCBtKTsKICAg
ICAgICAgICAgICAgICBpbnQ2NF90IHJocyA9IG4gfCAobSA+PiBhbW91bnQpOwogICAgICAgICAg
ICAgICAgIENIRUNLX0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI5MzgsNyArMjk0
NCw3IEBAIHZvaWQgdGVzdE9yVW5zaWduZWRSaWdodFNoaWZ0NjQoKQogICAgICAgICAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICB1
aW50NjRfdCBsaHMgPSBpbnZva2U8dWludDY0X3Q+KG9yNjQsIG4sIG0pOworICAgICAgICAgICAg
ICAgIHVpbnQ2NF90IGxocyA9IGludm9rZTxDQ2FsbFVJbnQ2ND4ob3I2NCwgbiwgbSk7CiAgICAg
ICAgICAgICAgICAgdWludDY0X3QgcmhzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG4pIHwgKHN0
YXRpY19jYXN0PHVpbnQ2NF90PihtKSA+PiBhbW91bnQpOwogICAgICAgICAgICAgICAgIENIRUNL
X0VRKGxocywgcmhzKTsKICAgICAgICAgICAgIH0KQEAgLTI5ODQsNyArMjk5MCw3IEBAIHZvaWQg
dGVzdENvbXBhcmVGbG9hdChNYWNyb0Fzc2VtYmxlcjo6RG91YmxlQ29uZGl0aW9uIGNvbmRpdGlv
bikKICAgICAgICAgZm9yIChhdXRvIGIgOiBvcGVyYW5kcykgewogICAgICAgICAgICAgYXJnMSA9
IGE7CiAgICAgICAgICAgICBhcmcyID0gYjsKLSAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxp
bnQ+KGNvbXBhcmVGbG9hdCksIGludm9rZTxpbnQ+KGNvbXBhcmVGbG9hdEdlbmVyaWMpKTsKKyAg
ICAgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbEludDMyPihjb21wYXJlRmxvYXQpLCBpbnZv
a2U8Q0NhbGxJbnQzMj4oY29tcGFyZUZsb2F0R2VuZXJpYykpOwogICAgICAgICB9CiAgICAgfQog
fQpAQCAtMzAyOCwxMSArMzAzNCwxMyBAQCB2b2lkIHRlc3RNb3ZlQ29uZGl0aW9uYWxseUZsb2F0
aW5nUG9pbnQoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlvbiBjb25kaXRpbwogICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH07CiAKKyAgICB1c2luZyBSZXN1
bHRUeXBlID0gc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfaW50ZWdyYWxfdjxTZWxlY3Rpb25U
eXBlPiwgQ0NhbGxJbnRlZ2VyPFNlbGVjdGlvblR5cGU+LCBTZWxlY3Rpb25UeXBlPjsKKwogICAg
IGZvciAoYXV0byBhIDogb3BlcmFuZHMpIHsKICAgICAgICAgZm9yIChhdXRvIGIgOiBvcGVyYW5k
cykgewogICAgICAgICAgICAgYXJnMSA9IGE7CiAgICAgICAgICAgICBhcmcyID0gYjsKLSAgICAg
ICAgICAgIENIRUNLX0VRKGludm9rZTxTZWxlY3Rpb25UeXBlPih0ZXN0Q29kZSksIGV4cGVjdGVk
UmVzdWx0KGEsIGIpKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGludm9rZTxSZXN1bHRUeXBlPih0
ZXN0Q29kZSksIGV4cGVjdGVkUmVzdWx0KGEsIGIpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAg
LTM2MDEsOSArMzYwOSwxMSBAQCB2b2lkIHRlc3RNb3ZlQ29uZGl0aW9uYWxseUZsb2F0aW5nUG9p
bnRTYW1lQXJnKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVDb25kaXRpb24gYwogICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH07CiAKKyAgICB1c2luZyBSZXN1bHRUeXBl
ID0gc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfaW50ZWdyYWxfdjxTZWxlY3Rpb25UeXBlPiwg
Q0NhbGxJbnRlZ2VyPFNlbGVjdGlvblR5cGU+LCBTZWxlY3Rpb25UeXBlPjsKKwogICAgIGZvciAo
YXV0byBhIDogb3BlcmFuZHMpIHsKICAgICAgICAgYXJnMSA9IGE7Ci0gICAgICAgIENIRUNLX0VR
KGludm9rZTxTZWxlY3Rpb25UeXBlPih0ZXN0Q29kZSksIGV4cGVjdGVkUmVzdWx0KGEpKTsKKyAg
ICAgICAgQ0hFQ0tfRVEoaW52b2tlPFJlc3VsdFR5cGU+KHRlc3RDb2RlKSwgZXhwZWN0ZWRSZXN1
bHQoYSkpOwogICAgIH0KIH0KIApAQCAtMzc3MCw3ICszNzgwLDcgQEAgdm9pZCB0ZXN0QXRvbWlj
U3Ryb25nQ0FTRmlsbDgoKQogICAgIHVpbnQ4X3QgZGF0YVtdID0gewogICAgICAgICAweGZmLCAw
eGZmLAogICAgIH07Ci0gICAgdWludDMyX3QgcmVzdWx0ID0gaW52b2tlPHVpbnQzMl90Pih0ZXN0
LCAweGZmZmZmZmZmZmZmZmZmZmZVTEwsIDAsIGRhdGEpOworICAgIHVpbnQzMl90IHJlc3VsdCA9
IGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgMHhmZmZmZmZmZmZmZmZmZmZmVUxMLCAwLCBkYXRh
KTsKICAgICBDSEVDS19FUShyZXN1bHQsIDB4ZmYpOwogICAgIENIRUNLX0VRKGRhdGFbMF0sIDAp
OwogICAgIENIRUNLX0VRKGRhdGFbMV0sIDB4ZmYpOwpAQCAtMzc5MSw3ICszODAxLDcgQEAgdm9p
ZCB0ZXN0QXRvbWljU3Ryb25nQ0FTRmlsbDE2KCkKICAgICB1aW50MTZfdCBkYXRhW10gPSB7CiAg
ICAgICAgIDB4ZmZmZiwgMHhmZmZmLAogICAgIH07Ci0gICAgdWludDMyX3QgcmVzdWx0ID0gaW52
b2tlPHVpbnQzMl90Pih0ZXN0LCAweGZmZmZmZmZmZmZmZmZmZmZVTEwsIDAsIGRhdGEpOworICAg
IHVpbnQzMl90IHJlc3VsdCA9IGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgMHhmZmZmZmZmZmZm
ZmZmZmZmVUxMLCAwLCBkYXRhKTsKICAgICBDSEVDS19FUShyZXN1bHQsIDB4ZmZmZik7CiAgICAg
Q0hFQ0tfRVEoZGF0YVswXSwgMCk7CiAgICAgQ0hFQ0tfRVEoZGF0YVsxXSwgMHhmZmZmKTsKQEAg
LTQwNTEsNyArNDA2MSw3IEBAIHZvaWQgdGVzdFN1YjMyQXJnSW1tKCkKICAgICAgICAgfSk7CiAK
ICAgICAgICAgZm9yIChhdXRvIHZhbHVlIDogaW50MzJPcGVyYW5kcygpKQotICAgICAgICAgICAg
Q0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90PihzdWIsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KHZhbHVlIC0gaW1tZWRpYXRlKSk7CisgICAgICAgICAgICBDSEVDS19FUShpbnZva2U8Q0Nh
bGxVSW50MzI+KHN1YiwgdmFsdWUpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsdWUgLSBpbW1l
ZGlhdGUpKTsKICAgICB9CiB9CiAKQEAgLTQ2ODQsMTEgKzQ2OTQsMTIgQEAgdm9pZCB0ZXN0UHJv
YmVQcmVzZXJ2ZXNHUFJTKCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgQ0hFQ0tfRVEoY3B1LmdwcihpZCksIHRlc3RXb3JkKGlkKSk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0RlBSZWdp
c3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7IGlkID0gbmV4dElE
KGlkKSkKKyAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RGUFJl
Z2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0
SUQoaWQpKSB7CiAjaWYgQ1BVKE1JUFMpCiAgICAgICAgICAgICAgICAgaWYgKCEoaWQgJiAxKSkK
ICNlbmRpZgogICAgICAgICAgICAgICAgIENIRUNLX0VRKGNwdS5mcHI8dWludDY0X3Q+KGlkKSwg
dGVzdFdvcmQ2NChpZCkpOworICAgICAgICAgICAgfQogICAgICAgICB9KTsKIAogICAgICAgICAv
LyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBzdGF0ZS4KQEAgLTUxMzEsOCArNTE0Miw4IEBAIHZvaWQg
dGVzdEJ5dGVTd2FwKCkKICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoaml0KTsKICAgICAg
ICAgaml0LnJldCgpOwogICAgIH0pOwotICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4oYnl0
ZVN3YXAxNiwgMHhhYWJiY2NkZGVlMDAxMTIyKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4MjIx
MSkpOwotICAgIENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4oYnl0ZVN3YXAxNiwgMHhhYWJiY2Nk
ZGVlMDBmZmFhKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4YWFmZikpOworICAgIENIRUNLX0VR
KGludm9rZTxDQ2FsbFVJbnQ2ND4oYnl0ZVN3YXAxNiwgMHhhYWJiY2NkZGVlMDAxMTIyKSwgc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KDB4MjIxMSkpOworICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJ
bnQ2ND4oYnl0ZVN3YXAxNiwgMHhhYWJiY2NkZGVlMDBmZmFhKSwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KDB4YWFmZikpOwogCiAgICAgYXV0byBieXRlU3dhcDMyID0gY29tcGlsZShbXSAoQ0NhbGxI
ZWxwZXJzJiBqaXQpIHsKICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKQEAgLTUx
NDEsOCArNTE1Miw4IEBAIHZvaWQgdGVzdEJ5dGVTd2FwKCkKICAgICAgICAgZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoaml0KTsKICAgICAgICAgaml0LnJldCgpOwogICAgIH0pOwotICAgIENIRUNLX0VR
KGludm9rZTx1aW50NjRfdD4oYnl0ZVN3YXAzMiwgMHhhYWJiY2NkZGVlMDAxMTIyKSwgc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KDB4MjIxMTAwZWUpKTsKLSAgICBDSEVDS19FUShpbnZva2U8dWludDY0
X3Q+KGJ5dGVTd2FwMzIsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2NF90
PigweGFhZmYwMGVlKSk7CisgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDY0PihieXRlU3dh
cDMyLCAweGFhYmJjY2RkZWUwMDExMjIpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oMHgyMjExMDBl
ZSkpOworICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQ2ND4oYnl0ZVN3YXAzMiwgMHhhYWJi
Y2NkZGVlMDBmZmFhKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4YWFmZjAwZWUpKTsKIAogICAg
IGF1dG8gYnl0ZVN3YXA2NCA9IGNvbXBpbGUoW10gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAg
ICAgIGVtaXRGdW5jdGlvblByb2xvZ3VlKGppdCk7CkBAIC01MTUxLDggKzUxNjIsOCBAQCB2b2lk
IHRlc3RCeXRlU3dhcCgpCiAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKGppdCk7CiAgICAg
ICAgIGppdC5yZXQoKTsKICAgICB9KTsKLSAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KGJ5
dGVTd2FwNjQsIDB4YWFiYmNjZGRlZTAwMTEyMiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweDIy
MTEwMGVlZGRjY2JiYWEpKTsKLSAgICBDSEVDS19FUShpbnZva2U8dWludDY0X3Q+KGJ5dGVTd2Fw
NjQsIDB4YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweGFhZmYwMGVl
ZGRjY2JiYWEpKTsKKyAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KGJ5dGVTd2FwNjQs
IDB4YWFiYmNjZGRlZTAwMTEyMiksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweDIyMTEwMGVlZGRj
Y2JiYWEpKTsKKyAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50NjQ+KGJ5dGVTd2FwNjQsIDB4
YWFiYmNjZGRlZTAwZmZhYSksIHN0YXRpY19jYXN0PHVpbnQ2NF90PigweGFhZmYwMGVlZGRjY2Ji
YWEpKTsKICNlbmRpZgogfQogCkBAIC01MjM2LDcgKzUyNDcsNyBAQCB2b2lkIHRlc3RMb2FkQmFz
ZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVp
bnQ2NF90IGFycmF5W10gPSB7IFVJTlQ2NF9NQVggLSAxLCBVSU5UNjRfTUFYIC0gMiwgVUlOVDY0
X01BWCAtIDMsIFVJTlQ2NF9NQVggLSA0LCBVSU5UNjRfTUFYIC0gNSwgfTsKLSAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPHVpbnQ2NF90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lz
dGVyPigzKSksIFVJTlQ2NF9NQVggLSAzKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxs
VUludDY0Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQ2
NF9NQVggLSAzKTsKICAgICB9CiAgICAgewogICAgICAgICBhdXRvIHRlc3QgPSBjb21waWxlKFs9
XShDQ2FsbEhlbHBlcnMmIGppdCkgewpAQCAtNTI0Niw3ICs1MjU3LDcgQEAgdm9pZCB0ZXN0TG9h
ZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAg
ICB1aW50NjRfdCBhcnJheVtdID0geyBVSU5UNjRfTUFYIC0gMSwgVUlOVDY0X01BWCAtIDIsIFVJ
TlQ2NF9NQVggLSAzLCBVSU5UNjRfTUFYIC0gNCwgVUlOVDY0X01BWCAtIDUsIH07Ci0gICAgICAg
IENIRUNLX0VRKGludm9rZTx1aW50NjRfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVS
ZWdpc3Rlcj4oMykpLCBVSU5UNjRfTUFYIC0gNSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxD
Q2FsbFVJbnQ2ND4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBV
SU5UNjRfTUFYIC0gNSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTUyNTksNyArNTI3MCw3IEBAIHZv
aWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9
KTsKICAgICAgICAgdWludDMyX3QgYXJyYXlbXSA9IHsgVUlOVDMyX01BWCAtIDEsIFVJTlQzMl9N
QVggLSAyLCBVSU5UMzJfTUFYIC0gMywgVUlOVDMyX01BWCAtIDQsIFVJTlQzMl9NQVggLSA1LCB9
OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNf
Y2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDMyX01BWCAtIDMpOworICAgICAgICBDSEVDS19F
UShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0
ZXI+KDMpKSwgVUlOVDMyX01BWCAtIDMpOwogICAgIH0KICAgICB7CiAgICAgICAgIGF1dG8gdGVz
dCA9IGNvbXBpbGUoWz1dKENDYWxsSGVscGVycyYgaml0KSB7CkBAIC01MjY5LDcgKzUyODAsNyBA
QCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgfSk7CiAgICAgICAgIHVpbnQzMl90IGFycmF5W10gPSB7IFVJTlQzMl9NQVggLSAxLCBVSU5U
MzJfTUFYIC0gMiwgVUlOVDMyX01BWCAtIDMsIFVJTlQzMl9NQVggLSA0LCBVSU5UMzJfTUFYIC0g
NSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3Rh
dGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIFVJTlQzMl9NQVggLSA1KTsKKyAgICAgICAgQ0hF
Q0tfRVEoaW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJl
Z2lzdGVyPigzKSksIFVJTlQzMl9NQVggLSA1KTsKICAgICB9CiAKICAgICAvLyBsb2FkMTYKQEAg
LTUyODEsNyArNTI5Miw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDE2X3QgYXJyYXlbXSA9IHsgVUlO
VDE2X01BWCAtIDEsIFVJTlQxNl9NQVggLSAyLCBVSU5UMTZfTUFYIC0gMywgVUlOVDE2X01BWCAt
IDQsIFVJTlQxNl9NQVggLSA1LCB9OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMyX3Q+
KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDE2X01BWCAt
IDMpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBz
dGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDE2X01BWCAtIDMpOwogICAgIH0KICAg
ICB7CiAgICAgICAgIGF1dG8gdGVzdCA9IGNvbXBpbGUoWz1dKENDYWxsSGVscGVycyYgaml0KSB7
CkBAIC01MjkxLDcgKzUzMDIsNyBAQCB2b2lkIHRlc3RMb2FkQmFzZUluZGV4KCkKICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVpbnQxNl90IGFycmF5W10gPSB7
IFVJTlQxNl9NQVggLSAxLCBVSU5UMTZfTUFYIC0gMiwgVUlOVDE2X01BWCAtIDMsIFVJTlQxNl9N
QVggLSA0LCBzdGF0aWNfY2FzdDx1aW50MTZfdD4oLTEpLCB9OwotICAgICAgICBDSEVDS19FUShp
bnZva2U8dWludDMyX3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMp
KSwgMHhmZmZmKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMyPih0ZXN0LCBh
cnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIDB4ZmZmZik7CiAgICAgfQogCiAg
ICAgLy8gbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMgpAQCAtNTMwMyw3ICs1MzE0LDcgQEAgdm9pZCB0
ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwog
ICAgICAgICB1aW50MTZfdCBhcnJheVtdID0geyAxLCAyLCAweDdmZjMsIDQsIDUsIH07Ci0gICAg
ICAgIENIRUNLX0VRKGludm9rZTx1aW50MzJfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVD
UFVSZWdpc3Rlcj4oMykpLCAweDdmZjMpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxV
SW50MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgMHg3ZmYz
KTsKICAgICB9CiAgICAgewogICAgICAgICBhdXRvIHRlc3QgPSBjb21waWxlKFs9XShDQ2FsbEhl
bHBlcnMmIGppdCkgewpAQCAtNTMxMyw3ICs1MzI0LDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJbmRl
eCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAgICB1aW50MTZf
dCBhcnJheVtdID0geyBVSU5UMTZfTUFYIC0gMSwgVUlOVDE2X01BWCAtIDIsIFVJTlQxNl9NQVgg
LSAzLCBVSU5UMTZfTUFYIC0gNCwgc3RhdGljX2Nhc3Q8dWludDE2X3Q+KC0xKSwgfTsKLSAgICAg
ICAgQ0hFQ0tfRVEoaW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQ
VVJlZ2lzdGVyPigzKSksIHN0YXRpY19jYXN0PHVpbnQzMl90PigtMSkpOworICAgICAgICBDSEVD
S19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVn
aXN0ZXI+KDMpKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KC0xKSk7CiAgICAgfQogCiAgICAgLy8g
bG9hZDgKQEAgLTUzMjUsNyArNTMzNiw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDhfdCBhcnJheVtd
ID0geyBVSU5UOF9NQVggLSAxLCBVSU5UOF9NQVggLSAyLCBVSU5UOF9NQVggLSAzLCBVSU5UOF9N
QVggLSA0LCBVSU5UOF9NQVggLSA1LCB9OwotICAgICAgICBDSEVDS19FUShpbnZva2U8dWludDMy
X3Q+KHRlc3QsIGFycmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgVUlOVDhfTUFY
IC0gMyk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxDQ2FsbFVJbnQzMj4odGVzdCwgYXJyYXks
IHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBVSU5UOF9NQVggLSAzKTsKICAgICB9CiAg
ICAgewogICAgICAgICBhdXRvIHRlc3QgPSBjb21waWxlKFs9XShDQ2FsbEhlbHBlcnMmIGppdCkg
ewpAQCAtNTMzNSw3ICs1MzQ2LDcgQEAgdm9pZCB0ZXN0TG9hZEJhc2VJbmRleCgpCiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgICAgICB1aW50OF90IGFycmF5W10gPSB7
IFVJTlQ4X01BWCAtIDEsIFVJTlQ4X01BWCAtIDIsIFVJTlQ4X01BWCAtIDMsIFVJTlQ4X01BWCAt
IDQsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KC0xKSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tl
PHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIDB4
ZmYpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFycmF5LCBz
dGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgMHhmZik7CiAgICAgfQogCiAgICAgLy8gbG9h
ZDhTaWduZWRFeHRlbmRUbzMyCkBAIC01MzQ3LDcgKzUzNTgsNyBAQCB2b2lkIHRlc3RMb2FkQmFz
ZUluZGV4KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHVp
bnQ4X3QgYXJyYXlbXSA9IHsgMSwgMiwgMHg3MywgNCwgNSwgfTsKLSAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPHVpbnQzMl90Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigz
KSksIDB4NzMpOworICAgICAgICBDSEVDS19FUShpbnZva2U8Q0NhbGxVSW50MzI+KHRlc3QsIGFy
cmF5LCBzdGF0aWNfY2FzdDxVQ1BVUmVnaXN0ZXI+KDMpKSwgMHg3Myk7CiAgICAgfQogICAgIHsK
ICAgICAgICAgYXV0byB0ZXN0ID0gY29tcGlsZShbPV0oQ0NhbGxIZWxwZXJzJiBqaXQpIHsKQEAg
LTUzNTcsNyArNTM2OCw3IEBAIHZvaWQgdGVzdExvYWRCYXNlSW5kZXgoKQogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAgICAgdWludDhfdCBhcnJheVtdID0geyBVSU5U
OF9NQVggLSAxLCBVSU5UOF9NQVggLSAyLCBVSU5UOF9NQVggLSAzLCBVSU5UOF9NQVggLSA0LCBz
dGF0aWNfY2FzdDx1aW50OF90PigtMSksIH07Ci0gICAgICAgIENIRUNLX0VRKGludm9rZTx1aW50
MzJfdD4odGVzdCwgYXJyYXksIHN0YXRpY19jYXN0PFVDUFVSZWdpc3Rlcj4oMykpLCBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oLTEpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPENDYWxsVUludDMy
Pih0ZXN0LCBhcnJheSwgc3RhdGljX2Nhc3Q8VUNQVVJlZ2lzdGVyPigzKSksIHN0YXRpY19jYXN0
PHVpbnQzMl90PigtMSkpOwogICAgIH0KIAogICAgIC8vIGxvYWREb3VibGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDQxZjRiZDMxZjgxMzQ1MjRl
ZmNhNjZiYWNmNGQwODVmNTJjYWIyMDMuLmJkNjIwYTZmYjg5MWZiYjEzNTIyYzIzOThjODc5MGI5
M2U5NWIyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cApAQCAtNDAwLDcgKzQwMCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25P
YmplY3RBc3NpZ25VbnR5cGVkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgb2JqZWN0
QXNzaWduR2VuZXJpYyhnbG9iYWxPYmplY3QsIHZtLCB0YXJnZXQsIHNvdXJjZSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVUaGlzLCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCB1aW50MzJf
dCBpbmxpbmVDYXBhY2l0eSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlVGhpcywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBjb25zdHJ1Y3RvciwgQ0NhbGxVSW50MzIgaW5saW5lQ2FwYWNpdHkpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03NjAsNyArNzYwLDcgQEAgQUxXQVlTX0lOTElORSBFbmNv
ZGVkSlNWYWx1ZSBnZXRCeVZhbENlbGxJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Vk0mIHYKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoYmFzZSkuZ2V0KGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluZGV4KSkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RJbnQsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIGludDMyX3Qg
aW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0
SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBiYXNlLCBDQ2FsbEludDMyIGluZGV4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtNzY5LDcgKzc2OSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeVZhbE9iamVjdEludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgcmV0
dXJuIGdldEJ5VmFsQ2VsbEludChnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBpbmRleCk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbFN0cmluZ0ludCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYmFz
ZSwgaW50MzJfdCBpbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlWYWxTdHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNTdHJpbmcqIGJhc2UsIENDYWxsSW50MzIgaW5kZXgpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC04NTgsNyArODU4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2IKICAgICBwdXRCeVZhbENlbGxJbnRlcm5hbDxmYWxzZSwgZmFsc2U+KGdsb2JhbE9iamVjdCwg
dm0sIGNlbGwsIHByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJh
eUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJv
dW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBvYmplY3QsIENDYWxsSW50MzIgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTg3NCw3ICs4NzQsNyBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0
cmljdCwgdm9pZCwgKEpTR2xvYgogICAgICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRp
Zmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xv
dCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9u
ZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9u
ZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtODkwLDcgKzg5
MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFy
cmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHCiAgICAgICAgIG9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBkb3VibGUg
dmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbEludDMyIGluZGV4LCBkb3VibGUgdmFsdWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC05MDgsNyArOTA4LDcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3Vu
ZHNTdHJpY3QsIHZvaWQsICgKICAgICAgICAgb2JqZWN0LCBnbG9iYWxPYmplY3QsIElkZW50aWZp
ZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVj
dCwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgQ0NhbGxJ
bnQzMiBpbmRleCwgZG91YmxlIHZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtOTI2LDcgKzkyNiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkCiAgICAgICAgIG9i
amVjdCwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIGpzVmFsdWUs
IHNsb3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91Ymxl
QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2
YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxE
aXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsSW50MzIgaW5kZXgsIGRvdWJsZSB2YWx1
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTk0Myw3ICs5NDMsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlv
bmRBcnJheUJvdW5kc1N0cmljdCwgdgogICAgIENvbW1vblNsb3dQYXRoczo6cHV0RGlyZWN0V2l0
aFJlaWZ5KHZtLCBnbG9iYWxPYmplY3QsIG9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5k
ZXgpLCBqc1ZhbHVlLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90
IGluZGV4LCBkb3VibGUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBDQ2FsbEludDMy
IGluZGV4LCBkb3VibGUgdmFsdWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0xMDE2LDcgKzEwMTYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RDZWxsU3ltYm9sTm9uU3RyaWN0LCB2b2lkLCAoSlNHbAogICAgIHB1dEJ5VmFs
Q2VsbEludGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBjZWxsLCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0
LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNT
dHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2Jq
ZWN0LCBDQ2FsbEludDMyIGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xMDMwLDcgKzEwMzAsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5k
c1N0cmljdCwgdm9pZCwgKAogICAgIENvbW1vblNsb3dQYXRoczo6cHV0RGlyZWN0V2l0aFJlaWZ5
KHZtLCBnbG9iYWxPYmplY3QsIG9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVj
dCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRz
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IG9iamVjdCwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTA2NSw3ICsxMDY1LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KGFycmF5LT5sZW5ndGgoKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXJyYXlQdXNoTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNBcnJheSogYXJyYXksIHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50
Q291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRp
cGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJy
YXkqIGFycmF5LCB2b2lkKiBidWZmZXIsIENDYWxsSW50MzIgZWxlbWVudENvdW50KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGFycmF5
LT5sZW5ndGgoKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJy
YXlQdXNoRG91YmxlTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNBcnJheSogYXJyYXksIHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50
Q291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJs
ZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIsIENDYWxsSW50MzIgZWxlbWVudENvdW50KSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTI4MCw3ICsxMjgwLDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3RyaW5nTm9SYWRpeCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2IKICAgICByZXR1cm4gcGFyc2VJbnRSZXN1bHQocGFyc2VJbnQo
dmlld1dpdGhTdHJpbmcudmlldywgMCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZywgaW50MzJfdCByYWRpeCkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZywgQ0NhbGxJ
bnQzMiByYWRpeCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTEyOTMsNyAr
MTI5Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0cmlu
ZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHBhcnNlSW50UmVz
dWx0KHBhcnNlSW50KHZpZXdXaXRoU3RyaW5nLnZpZXcsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIGlu
dDMyX3QgcmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50
R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB2YWx1ZSwgQ0NhbGxJbnQzMiByYWRpeCkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTEzMDQsNyArMTMwNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
YmplCiAgICAgfSk7CiB9CiAgICAgICAgIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblJlZ0V4cFRlc3RTdHJpbmcsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0LCBKU1N0cmluZyogaW5wdXQpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RTdHJpbmcsIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWdFeHBPYmplY3Qq
IHJlZ0V4cE9iamVjdCwgSlNTdHJpbmcqIGlucHV0KSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCkBAIC0xMzE1LDcgKzEzMTUsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdFN0cmluZywgc2l6ZV90
LCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiByZWdFeHBPYmplY3QtPnRlc3RJbmxp
bmUoZ2xvYmFsT2JqZWN0LCBpbnB1dCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25SZWdFeHBUZXN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBSZWdFeHBPYmplY3QqIHJlZ0V4cE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3Vt
ZW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0LCBDQ2Fs
bFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnRXhw
T2JqZWN0KiByZWdFeHBPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCiB7
CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApA
QCAtMTMzMSw3ICsxMzMxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJl
Z0V4cFRlc3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4g
cmVnRXhwT2JqZWN0LT50ZXN0SW5saW5lKGdsb2JhbE9iamVjdCwgaW5wdXQpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVyaWMsIHNpemVfdCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudCkpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2Nv
cGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtMTQ5OSw3ICsxNDk5LDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkJpdFhvckhlYXBCaWdJbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmln
SW50OjpiaXR3aXNlWG9yKGdsb2JhbE9iamVjdCwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCkp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVx
Q2VsbCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvcDEs
IEpTQ2VsbCogb3AyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
U3RyaWN0RXFDZWxsLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDZWxsKiBvcDEsIEpTQ2VsbCogb3AyKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTUwOCw3ICsxNTA4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0
KgogICAgIHJldHVybiBKU1ZhbHVlOjpzdHJpY3RFcXVhbEZvckNlbGxzKGdsb2JhbE9iamVjdCwg
b3AxLCBvcDIpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2FtZVZh
bHVlLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBhcmcxLCBFbmNvZGVkSlNWYWx1ZSBhcmcyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TYW1lVmFsdWUsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBhcmcxLCBFbmNvZGVkSlNWYWx1ZSBhcmcy
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTYwOSw3ICsxNjA5LDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHksIHNsb3Qp
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRo
aXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2MjEsNyArMTYyMSw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCoKICAgICBwdXRXaXRoVGhpczx0cnVlPihnbG9iYWxPYmplY3QsIGVuY29kZWRCYXNlLCBl
bmNvZGVkVGhpcywgZW5jb2RlZFZhbHVlLCBpZGVudCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWRXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2NjksNyArMTY2OSw3IEBA
IEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgZGVmaW5lRGF0YVByb3BlcnR5KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2CiAgICAgICAgIGJhc2UtPm1ldGhvZFRhYmxlKHZtKS0+
ZGVmaW5lT3duUHJvcGVydHkoYmFzZSwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3IsIHRydWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVm
aW5lRGF0YVByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNP
YmplY3QqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJv
cGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGVz
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTY4Miw3ICsxNjgyLDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICBkZWZpbmVEYXRhUHJvcGVydHkoZ2xvYmFsT2Jq
ZWN0LCB2bSwgYmFzZSwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KSwgYXR0cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
ZWZpbmVEYXRhUHJvcGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogYmFzZSwgSlNTdHJpbmcqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIGludDMyX3QgYXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEpTU3RyaW5nKiBwcm9wZXJ0eSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBDQ2FsbEludDMyIGF0dHJpYnV0ZXMpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjk1LDcgKzE2OTUsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nLCB2b2lkLCAo
SlNHbG9iYWxPYmplYwogICAgIGRlZmluZURhdGFQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBi
YXNlLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBhdHRyaWJ1
dGVzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQ
cm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJ
bXBsKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBDQ2FsbEludDMyIGF0
dHJpYnV0ZXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNzAzLDcgKzE3
MDMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3Bl
cnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbAogICAgIGRlZmluZURhdGFQcm9wZXJ0eShn
bG9iYWxPYmplY3QsIHZtLCBiYXNlLCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBwcm9wZXJ0eSks
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBhdHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN5bWJvbCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBTeW1ib2wq
IHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgYXR0cmlidXRl
cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5
U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJh
c2UsIFN5bWJvbCogcHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQ0NhbGxJ
bnQzMiBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTcy
MSw3ICsxNzIxLDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBkZWZpbmVBY2Nlc3NvclBy
b3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFYKICAgICAgICAgYmFzZS0+bWV0
aG9kVGFibGUodm0pLT5kZWZpbmVPd25Qcm9wZXJ0eShiYXNlLCBnbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvciwgdHJ1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9w
ZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1
dGVzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclBy
b3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNP
YmplY3QqIHNldHRlciwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTczMyw3ICsxNzMzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHksIHZvaWQsIChKU0dsb2JhbE9iamVj
dCoKICAgICBkZWZpbmVBY2Nlc3NvclByb3BlcnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIHBy
b3BlcnR5TmFtZSwgZ2V0dGVyLCBzZXR0ZXIsIGF0dHJpYnV0ZXMpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBKU1N0cmlu
ZyogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIGludDMyX3Qg
YXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNj
ZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiBiYXNlLCBKU1N0cmluZyogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpT
T2JqZWN0KiBzZXR0ZXIsIENDYWxsSW50MzIgYXR0cmlidXRlcykpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTE3NDUsNyArMTc0NSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9i
YWxPCiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBw
cm9wZXJ0eU5hbWUsIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVu
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBV
bmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBz
ZXR0ZXIsIGludDMyX3QgYXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBw
cm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgQ0NhbGxJbnQzMiBh
dHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTc1Myw3ICsx
NzUzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29y
UHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2wKICAgICBkZWZpbmVBY2Nlc3NvclByb3Bl
cnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIElkZW50aWZpZXI6OmZyb21VaWQodm0sIHByb3Bl
cnR5KSwgZ2V0dGVyLCBzZXR0ZXIsIGF0dHJpYnV0ZXMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBTeW1ib2wqIHByb3Bl
cnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0
ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJv
cGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogYmFzZSwgU3ltYm9sKiBwcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNl
dHRlciwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGVzKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMTc2MSw3ICsxNzYxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE8KICAgICBk
ZWZpbmVBY2Nlc3NvclByb3BlcnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIElkZW50aWZpZXI6
OmZyb21VaWQocHJvcGVydHktPnByaXZhdGVOYW1lKCkpLCBnZXR0ZXIsIHNldHRlciwgYXR0cmli
dXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3Ry
dWN0dXJlLCB2b2lkKiBidWZmZXIsIHNpemVfdCBzaXplKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBcnJheSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCB2b2lkKiBidWZmZXIsIENDYWxsU2l6ZSBz
aXplKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTc4MCw3ICsxNzgwLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0VtcHR5QXJyYXksIGNoYXIq
LCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXIKICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGNoYXIq
PihKU0FycmF5OjpjcmVhdGUodm0sIGFycmF5U3RydWN0dXJlKSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIGludDMyX3Qg
c2l6ZSwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld0FycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgQ0NhbGxJbnQzMiBzaXplLCBCdXR0ZXJm
bHkqIGJ1dHRlcmZseSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE4MDUs
NyArMTgwNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdp
dGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxjaGFyKj4ocmVzdWx0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld0FycmF5V2l0aFNpemVBbmRIaW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIGludDMyX3Qgc2l6ZSwgaW50MzJf
dCB2ZWN0b3JMZW5ndGhIaW50LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFuZEhpbnQsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgQ0Nh
bGxJbnQzMiBzaXplLCBDQ2FsbEludDMyIHZlY3Rvckxlbmd0aEhpbnQsIEJ1dHRlcmZseSogYnV0
dGVyZmx5KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg0NCw3ICsxODQ0
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5QnVmZmVyLCBK
U0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aFNpemUsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGludHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBj
aGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xODYwLDcg
KzE4NjAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5
V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsTwogICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRz
PEpTSW50OEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBz
dGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0ludDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0xODc2LDcgKzE4NzYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3SW50MTZBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2Jh
bAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlw
ZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTSW50MTZBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90
IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdJbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0aCwgY2hhciogdmVj
dG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTg5Miw3ICsxODkyLDcg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoT25l
QXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWwKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0ludDMy
QXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVs
bG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhB
cnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhTaXplLCBjaGFyKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2Fs
bEludHB0ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTE5MDgsNyArMTkwOCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdVaW50OEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsCiAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5
Vmlld1dpdGhBcmd1bWVudHM8SlNVaW50OEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwg
ZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90
IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBsZW5ndGgsIGNo
YXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE5MjQsNyAr
MTkyNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OENsYW1w
ZWRBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8
SlNVaW50OENsYW1wZWRBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1
ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdVaW50MTZBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZl
Y3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2QXJyYXlX
aXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgQ0NhbGxJbnRwdHIgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xOTQwLDcgKzE5NDAsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIq
LCAoSlNHbG9iYQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RH
ZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWludDE2QXJyYXk+KGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk5ld1VpbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0
aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTk1
Niw3ICsxOTU2LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQz
MkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmEKICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3Vt
ZW50czxKU1VpbnQzMkFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVl
LCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZl
Y3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQzMkFycmF5
V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIENDYWxsSW50cHRyIGxlbmd0aCwgY2hhciogdmVjdG9yKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTk3Miw3ICsxOTcyLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hh
ciosIChKU0dsb2IKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0
R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0Zsb2F0MzJBcnJheT4oZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBs
ZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTE5ODgsNyArMTk4OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdG
bG9hdDY0QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iCiAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhB
cmd1bWVudHM8SlNGbG9hdDY0QXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVk
VmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3QmlnSW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNo
YXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnSW50
NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBDQ2FsbEludHB0ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIwMDQsNyArMjAwNCw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdJbnQ2NEFycmF5V2l0aE9uZUFyZ3Vt
ZW50LCBjaGFyKiwgKEpTR2xvCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNv
bnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNCaWdJbnQ2NEFycmF5
PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQp
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ1VpbnQ2NEFy
cmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdVaW50NjRBcnJheVdpdGhTaXplLCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBD
Q2FsbEludHB0ciBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTIwNTcsMTMgKzIwNTcsMTMgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJlY3QsIEpTQ2VsbCosIChWTSogdm1Qb2ludGUK
ICAgICByZXR1cm4gSlNMZXhpY2FsRW52aXJvbm1lbnQ6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCBz
Y29wZSwgdGFibGUsIGluaXRpYWxWYWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHMsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVy
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBtaW5DYXBh
Y2l0eSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJn
dW1lbnRzLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEND
YWxsVUludDMyIGxlbmd0aCwgQ0NhbGxVSW50MzIgbWluQ2FwYWNpdHkpKQogewogICAgIFZNJiB2
bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKICAgICBEaXJlY3RBcmd1bWVudHMqIHJlc3VsdCA9IERpcmVjdEFy
Z3VtZW50czo6Y3JlYXRlKAotICAgICAgICB2bSwgc3RydWN0dXJlLCBsZW5ndGgsIHN0ZDo6bWF4
KGxlbmd0aCwgbWluQ2FwYWNpdHkpKTsKKyAgICAgICAgdm0sIHN0cnVjdHVyZSwgbGVuZ3RoLCBz
dGQ6Om1heDx1aW50MzJfdD4obGVuZ3RoLCBtaW5DYXBhY2l0eSkpOwogICAgIC8vIFRoZSBjYWxs
ZXIgd2lsbCBzdG9yZSB0byB0aGlzIG9iamVjdCB3aXRob3V0IGJhcnJpZXJzLiBNb3N0IGxpa2Vs
eSwgYXQgdGhpcyBwb2ludCwgdGhpcyBpcwogICAgIC8vIHN0aWxsIGEgeW91bmcgb2JqZWN0IGFu
ZCBzbyBubyBiYXJyaWVycyBhcmUgbmVlZGVkLiBCdXQgaXQncyBnb29kIHRvIGJlIGNhcmVmdWwg
YW55d2F5LAogICAgIC8vIHNpbmNlIHRoZSBHQyBzaG91bGQgYmUgYWxsb3dlZCB0byBkbyBjcmF6
eSAobGlrZSBwcmV0ZW51cmluZywgZm9yIGV4YW1wbGUpLgpAQCAtMjA3MSw3ICsyMDcxLDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50cywg
SlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJl
Z2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxl
ZSwgSlNMZXhpY2FsRW52aXJvbm1lbnQqIHNjb3BlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DcmVhdGVTY29wZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3VtZW50
U3RhcnQsIENDYWxsVUludDMyIGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlLCBKU0xleGljYWxF
bnZpcm9ubWVudCogc2NvcGUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
MDg1LDcgKzIwODUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRl
U2NvcGVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplYwogICAgICAgICB2bSwgc3Ry
dWN0dXJlLCBhcmd1bWVudFN0YXJ0LCBsZW5ndGgsIGNhbGxlZSwgdGFibGUsIHNjb3BlKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50
cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0
aW9uKiBjYWxsZWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNs
b25lZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgQ0NhbGxVSW50MzIg
bGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yMDk0LDcgKzIwOTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplYwogICAgICAg
ICBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgYXJndW1lbnRTdGFydCwgbGVuZ3RoLCBjYWxsZWUp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRz
QnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0
ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBD
Q2FsbFVJbnQzMiBhcmd1bWVudENvdW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjExMSw3ICsyMTExLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2IKICAgICByZXR1
cm4gYnV0dGVyZmx5OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIElu
bGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIHVpbnQz
Ml90IGFyZ3VtZW50Q291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNy
ZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBJ
bmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSwgSlNGdW5jdGlvbiogY2FsbGVlLCBDQ2Fs
bFVJbnQzMiBhcmd1bWVudENvdW50KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxNDEs
NyArMjE0MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJl
Y3RBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3Vt
ZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBJbmxpbmVDYWxsRnJhbWUq
IGlubGluZUNhbGxGcmFtZSwgSlNGdW5jdGlvbiogY2FsbGVlLCB1aW50MzJfdCBhcmd1bWVudENv
dW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1
bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgSW5saW5lQ2FsbEZyYW1l
KiBpbmxpbmVDYWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNhbGxlZSwgQ0NhbGxVSW50MzIgYXJndW1l
bnRDb3VudCkpCiB7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTcwLDcgKzIxNzAsNyBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVy
aW5nRXhpdCwgSlNDZWxsKiwgKFZNKgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVuc2lnbmVkIG51
bWJlck9mUGFyYW1zVG9Ta2lwLCB1bnNpZ25lZCBhcnJheVNpemUpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVJlc3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgQ0NhbGxVSW50MzIgbnVtYmVy
T2ZQYXJhbXNUb1NraXAsIENDYWxsVUludDMyIGFycmF5U2l6ZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTIxODIsNyArMjE4Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iCiAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBh
cmd1bWVudHNUb0NvcHlSZWdpb24sIGFycmF5U2l6ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc09iamVjdCwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblR5cGVPZklzT2JqZWN0LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yMTkzLDcgKzIxOTMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVHlwZU9mSXNPYmplY3QsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYQogICAgIHJldHVybiBqc1R5cGVvZklzT2JqZWN0KGdsb2JhbE9iamVjdCwgb2JqZWN0KTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklzRnVuY3Rpb24s
IHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UeXBlT2ZJc0Z1bmN0aW9uLCBDQ2Fs
bFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBvYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMjA0LDcgKzIy
MDQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mSXNGdW5jdGlv
biwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBqc1R5cGVvZklzRnVu
Y3Rpb24oZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uT2JqZWN0SXNDYWxsYWJsZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk9iamVjdElzQ2FsbGFibGUsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKQEAgLTIyMTUsNyArMjIxNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25PYmplY3RJc0NhbGxhYmxlLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvCiAgICAgcmV0dXJuIG9iamVjdC0+aXNDYWxsYWJsZSh2bSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Jc0NvbnN0cnVjdG9yLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSXNDb25zdHJ1Y3RvciwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlw
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjI0OSw3ICsyMjQ5LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9y
YWdlV2l0aEluaXRpYWxDYXBhY2kKICAgICAgICAgQnV0dGVyZmx5OjpjcmVhdGVVbmluaXRpYWxp
emVkKHZtLCBudWxscHRyLCAwLCBpbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHksIGZhbHNlLCAwKSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVBy
b3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBzaXplX3QgbmV3U2l6ZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0
b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxTaXplIG5ld1NpemUpKQogewogICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMjI3MCw3ICsyMjcwLDcgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZVdpdGhJbml0aWFs
Q2FwYWMKICAgICAgICAgb2JqZWN0LT5hbGxvY2F0ZU1vcmVPdXRPZkxpbmVTdG9yYWdlKHZtLCAw
LCBpbml0aWFsT3V0T2ZMaW5lQ2FwYWNpdHkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSog
dm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9yYWdlLCBj
aGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsU2l6ZSBuZXdTaXpl
KSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIzMzYsNyArMjMzNiw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnN1cmVBcnJheVN0b3JhZ2UsIGNoYXIqLCAoVk0q
IHZtUG9pbnRlciwgSlNDCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlQ2VsbCwgaW50MzJfdCBzdWJzY3JpcHQp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwg
Q0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogYmFzZUNlbGwsIENDYWxsSW50MzIgc3Vic2NyaXB0KSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMjM0OSw3ICsyMzQ5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3Qq
IGcKICAgICByZXR1cm4gb2JqZWN0LT5oYXNQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihzdWJzY3JpcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkhhc0VudW1lcmFibGVJbmRleGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZUNlbGwsIGludDMyX3Qgc3Vic2NyaXB0
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNFbnVtZXJhYmxlSW5kZXhl
ZFByb3BlcnR5LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBiYXNlQ2VsbCwgQ0NhbGxJbnQzMiBzdWJzY3JpcHQpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMzkyLDE3ICsyMzkyLDE4IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcm9wZXJ0eUVudW1lcmF0b3JDZWxsLCBKU0Nl
bGwqLCAoSlNHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBwcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yKGdsb2JhbE9iamVjdCwgYmFzZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1vZGUsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
YmFzZVZhbHVlLCB1aW50MzJfdCBpbmRleCwgaW50MzJfdCBtb2RlTnVtYmVyLCBKU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlSW5kZXhBbmRNb2RlLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwg
Q0NhbGxVSW50MzIgaW5kZXgsIENDYWxsSW50MzIgbW9kZU51bWJlciwgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKKyAgICB1
aW50MzJfdCBpbmRleFZhbHVlID0gaW5kZXg7CiAgICAgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
OjpGbGFnIG1vZGUgPSBzdGF0aWNfY2FzdDxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OkZsYWc+
KG1vZGVOdW1iZXIpOwogICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUoYmFzZVZhbHVlKS5pc1VuZGVm
aW5lZE9yTnVsbCgpKSB7CiAgICAgICAgIEFTU0VSVChtb2RlID09IEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvcjo6SW5pdE1vZGUpOwotICAgICAgICBBU1NFUlQoIWluZGV4KTsKKyAgICAgICAgQVNT
RVJUKCFpbmRleFZhbHVlKTsKICAgICAgICAgQVNTRVJUKCFlbnVtZXJhdG9yLT5zaXplT2ZQcm9w
ZXJ0eU5hbWVzKCkpOwogICAgICAgICBtb2RlID0gSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpH
ZW5lcmljTW9kZTsKICAgICB9IGVsc2UgewpAQCAtMjQxMCwyNyArMjQxMSwyNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5leHRVcGRhdGVJbmRleEFuZE1v
ZGUsIEVuY29kZWRKU1ZhbAogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwogCiAgICAgICAgIGNvbnN0ZXhwciBib29sIHNob3VsZEFsbG9jYXRlSW5kZXhlZE5hbWVTdHJp
bmcgPSBmYWxzZTsKLSAgICAgICAgZW51bWVyYXRvci0+Y29tcHV0ZU5leHQoZ2xvYmFsT2JqZWN0
LCBiYXNlLCBpbmRleCwgbW9kZSwgc2hvdWxkQWxsb2NhdGVJbmRleGVkTmFtZVN0cmluZyk7Cisg
ICAgICAgIGVudW1lcmF0b3ItPmNvbXB1dGVOZXh0KGdsb2JhbE9iamVjdCwgYmFzZSwgaW5kZXhW
YWx1ZSwgbW9kZSwgc2hvdWxkQWxsb2NhdGVJbmRleGVkTmFtZVN0cmluZyk7CiAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgfQogCiAjaWYgVVNFKEpTVkFMVUU2
NCkKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGJpdHdpc2VfY2FzdDxKU1ZhbHVlPihzdGF0aWNfY2Fz
dDx1aW50NjRfdD4obW9kZSkgPDwgMzIgfCBpbmRleCB8IEpTVmFsdWU6OkRvdWJsZUVuY29kZU9m
ZnNldCk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8SlNWYWx1ZT4oc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KG1vZGUpIDw8IDMyIHwgaW5kZXhWYWx1ZSB8IEpTVmFsdWU6OkRvdWJs
ZUVuY29kZU9mZnNldCk7CiAjZWxzZQotICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZShtb2Rl
LCBpbmRleCk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVlKG1vZGUsIGluZGV4VmFsdWUp
OwogI2VuZGlmCiAgICAgQVNTRVJUKHJlc3VsdC5pc0RvdWJsZSgpKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNTdHJpbmcqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdWludDMyX3QgaW5kZXgsIGludDMyX3QgbW9kZU51bWJl
ciwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNT
dHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ0NhbGxVSW50MzIgaW5kZXgs
IENDYWxsSW50MzIgbW9kZU51bWJlciwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJh
dG9yKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKIAogICAgIGlmICht
b2RlTnVtYmVyID09IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6SW5kZXhlZE1vZGUpIHsKLSAg
ICAgICAgaWYgKGluZGV4IDwgZW51bWVyYXRvci0+aW5kZXhlZExlbmd0aCgpKQorICAgICAgICBp
ZiAodWludDMyX3QoaW5kZXgpIDwgZW51bWVyYXRvci0+aW5kZXhlZExlbmd0aCgpKQogICAgICAg
ICAgICAgcmV0dXJuIGpzU3RyaW5nKHZtLCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCkuc3Ry
aW5nKCkpOwogICAgICAgICByZXR1cm4gdm0uc21hbGxTdHJpbmdzLnNlbnRpbmVsU3RyaW5nKCk7
CiAgICAgfQpAQCAtMjQ0Miw3ICsyNDQzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlUHJvcGVydHlOYW1lLCBKU1N0cmluZyosICgKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RW51bWVyYXRvclJlY292ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCB1aW50MzJf
dCBpbmRleCwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yUmVjb3Zlck5hbWVBbmRHZXRCeVZh
bCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBiYXNlVmFsdWUsIENDYWxsVUludDMyIGluZGV4LCBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IqIGVudW1lcmF0b3IpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0y
NDYwLDcgKzI0NjEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVy
YXRvclJlY292ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG9iamVjdC0+Z2V0KGdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RW51bWVyYXRvckluQnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0
eU5hbWVWYWx1ZSwgdWludDMyX3QgaW5kZXgsIGludDMyX3QgbW9kZU51bWJlcikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckluQnlWYWwsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eU5hbWVWYWx1ZSwgQ0NhbGxVSW50MzIgaW5kZXgs
IENDYWxsSW50MzIgbW9kZU51bWJlcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTI0NzUsNyArMjQ3Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25F
bnVtZXJhdG9ySW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKENvbW1vblNsb3dQ
YXRoczo6b3BJbkJ5VmFsKGdsb2JhbE9iamVjdCwgYmFzZSwgcHJvcGVydHlOYW1lKSkpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JIYXNPd25Qcm9w
ZXJ0eSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3BlcnR5TmFtZVZhbHVlLCB1
aW50MzJfdCBpbmRleCwgaW50MzJfdCBtb2RlTnVtYmVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25FbnVtZXJhdG9ySGFzT3duUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eU5hbWVWYWx1ZSwgQ0NhbGxVSW50MzIgaW5kZXgsIENDYWxs
SW50MzIgbW9kZU51bWJlcikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI1
MzMsNyArMjUzNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdW
YWx1ZU9mLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTdWJzdHIs
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIGlu
dDMyX3QgZnJvbSwgaW50MzJfdCBzcGFuKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25TdHJpbmdTdWJzdHIsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0NlbGwqIGNlbGwsIENDYWxsSW50MzIgZnJvbSwgQ0NhbGxJbnQzMiBzcGFuKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjU0Miw3ICsyNTQzLDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1N1YnN0ciwgSlNDZWxsKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4ganNTdWJzdHJpbmcodm0sIGdsb2JhbE9iamVjdCwg
anNDYXN0PEpTU3RyaW5nKj4oY2VsbCksIGZyb20sIHNwYW4pOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIGludDMyX3Qgc3RhcnQsIGludDMyX3QgZW5k
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTbGljZSwgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgQ0NhbGxJbnQz
MiBzdGFydCwgQ0NhbGxJbnQzMiBlbmQpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CkBAIC0yNTUwLDEwICsyNTUxLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25TdHJpbmdTbGljZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAKICAgICBK
U1N0cmluZyogc3RyaW5nID0gYXNTdHJpbmcoY2VsbCk7CiAgICAgc3RhdGljX2Fzc2VydChzdGF0
aWNfY2FzdDx1aW50NjRfdD4oSlNTdHJpbmc6Ok1heExlbmd0aCkgPD0gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSwgIiIpOwotICAgIHJl
dHVybiBzdHJpbmdTbGljZShnbG9iYWxPYmplY3QsIHZtLCBzdHJpbmcsIHN0cmluZy0+bGVuZ3Ro
KCksIHN0YXJ0LCBlbmQpOworICAgIHJldHVybiBzdHJpbmdTbGljZTxpbnQzMl90PihnbG9iYWxP
YmplY3QsIHZtLCBzdHJpbmcsIHN0cmluZy0+bGVuZ3RoKCksIHN0YXJ0LCBlbmQpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dlckNhc2UsIEpTU3RyaW5nKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIHVpbnQzMl90
IGZhaWxpbmdJbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dl
ckNhc2UsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5n
KiBzdHJpbmcsIENDYWxsVUludDMyIGZhaWxpbmdJbmRleCkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI1NzIsNyArMjU3Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Ub0xvd2VyQ2FzZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBqc1N0cmluZyh2bSwgbG93ZXJjYXNlZFN0
cmluZykpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0
cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IHZhbHVl
LCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQz
MlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxsSW50
MzIgdmFsdWUsIENDYWxsSW50MzIgcmFkaXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yNTg4LDcgKzI1ODksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSW50MzJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihpbnQzMlRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFk
aXgpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJp
bmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50NjRfdCB2YWx1ZSwg
aW50MzJfdCByYWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50NTJU
b1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2FsbEludDY0
IHZhbHVlLCBDQ2FsbEludDMyIHJhZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMjYwNCw3ICsyNjA1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkludDUyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW50NTJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmlu
ZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIGlu
dDMyX3QgcmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRv
U3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1
ZSwgQ0NhbGxJbnQzMiByYWRpeCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTI2MjAsNyArMjYyMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3Vi
bGVUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG51bWJlclRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmdXaXRo
VmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90
IHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ0NhbGxJbnQzMiB2YWx1ZSwgQ0NhbGxJbnQzMiByYWRpeCkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI2MjksNyArMjYzMCw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIq
LCAoSlNHbG9iYWxPCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGludDMyVG9T
dHJpbmcodm0sIHZhbHVlLCByYWRpeCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSW50NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGludDY0X3QgdmFsdWUsIGludDMyX3QgcmFkaXgpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2FsbEludDY0IHZhbHVlLCBD
Q2FsbEludDMyIHJhZGl4KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjYz
OCw3ICsyNjM5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9T
dHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE8KICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4oaW50NTJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZ1dpdGhWYWxp
ZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1
ZSwgaW50MzJfdCByYWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91
YmxlVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBkb3VibGUgdmFsdWUsIENDYWxsSW50MzIgcmFkaXgpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yNjU2LDcgKzI2NTcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRnVuY3Rpb25Ub1N0cmluZywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmpl
Y3QqCiAgICAgcmV0dXJuIGZ1bmN0aW9uLT50b1N0cmluZyhnbG9iYWxPYmplY3QpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBK
U1N0cmluZyosIChWTSogdm1Qb2ludGVyLCBpbnQzMl90IGNoYXJhY3RlcikpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBKU1N0cmluZyos
IChWTSogdm1Qb2ludGVyLCBDQ2FsbEludDMyIGNoYXJhY3RlcikpCiB7CiAgICAgVk0mIHZtID0g
KnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0yODA2LDcgKzI4MDcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU3RyQ2F0MywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJpbmcoZ2xvYmFsT2JqZWN0LCBzdHIxLCBz
dHIyLCBzdHIzKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25GaW5k
U3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QgbWluKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25GaW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91
YmxlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
Q0NhbGxTaXplIHRhYmxlSW5kZXgsIENDYWxsSW50MzIgbWluKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTI4MjIsNyArMjgyMyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25GaW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlLCBjaGFyKiwgKFZNKiB2bVBvCiAgICAg
cmV0dXJuIGxpbmtlZFRhYmxlLm1fY3RpRGVmYXVsdC5leGVjdXRhYmxlQWRkcmVzczxjaGFyKj4o
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZywg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBzaXplX3QgdGFibGVJbmRleCwg
Y29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqIHVubGlua2VkVGFibGUsIEpTU3RyaW5nKiBz
dHJpbmcpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZywg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDQ2FsbFNpemUgdGFibGVJbmRl
eCwgY29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqIHVubGlua2VkVGFibGUsIEpTU3RyaW5n
KiBzdHJpbmcpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODM3LDI3ICsy
ODM4LDI3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmcs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIGxpbmtlZFRhYmxl
LmN0aUZvclZhbHVlKCp1bmxpbmtlZFRhYmxlLCBzdHJJbXBsKS5leGVjdXRhYmxlQWRkcmVzczxj
aGFyKj4oKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVT
dHJpbmdJbXBsTGVzcywgdWludHB0cl90LCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNz
LCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCog
YikpCiB7CiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmUoYSwgYikgPCAwOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzRXEsIHVp
bnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsTGVzc0VxLCBDQ2FsbFVJbnRwdHI6
OkludGVnZXJUeXBlLCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7CiAgICAgcmV0
dXJuIGNvZGVQb2ludENvbXBhcmUoYSwgYikgPD0gMDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlciwgdWludHB0cl90LCAoU3Ry
aW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBl
LCAoU3RyaW5nSW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7CiAgICAgcmV0dXJuIGNvZGVQb2lu
dENvbXBhcmUoYSwgYikgPiAwOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyRXEsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqIGEs
IFN0cmluZ0ltcGwqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdJbXBsR3JlYXRlckVxLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAoU3RyaW5n
SW1wbCogYSwgU3RyaW5nSW1wbCogYikpCiB7CiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmUo
YSwgYikgPj0gMDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBh
cmVTdHJpbmdMZXNzLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1N0cmluZyogYSwgSlNTdHJpbmcqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVTdHJpbmdMZXNzLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjg2Niw3ICsyODY3LDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzLCB1aW50cHRyX3QsIChK
U0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gY29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKGFzU3Ry
aW5nKGEpLT52YWx1ZShnbG9iYWxPYmplY3QpLCBhc1N0cmluZyhiKS0+dmFsdWUoZ2xvYmFsT2Jq
ZWN0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aW5nTGVzc0VxLCB1aW50cHRyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0
cmluZyogYSwgSlNTdHJpbmcqIGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVTdHJpbmdMZXNzRXEsIENDYWxsVUludHB0cjo6SW50ZWdlclR5cGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogYSwgSlNTdHJpbmcqIGIpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yODc1LDcgKzI4NzYsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0xlc3NFcSwgdWludHB0cl90LCAo
SlNHbG9iYWxPYmplYwogICAgIHJldHVybiAhY29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKGFzU3Ry
aW5nKGIpLT52YWx1ZShnbG9iYWxPYmplY3QpLCBhc1N0cmluZyhhKS0+dmFsdWUoZ2xvYmFsT2Jq
ZWN0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3Ry
aW5nR3JlYXRlciwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNT
dHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlU3RyaW5nR3JlYXRlciwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBhLCBKU1N0cmluZyogYikpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI4ODQsNyArMjg4NSw3IEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nR3JlYXRlciwgdWludHB0cl90
LCAoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIGNvZGVQb2ludENvbXBhcmVMZXNzVGhhbihhc1N0
cmluZyhiKS0+dmFsdWUoZ2xvYmFsT2JqZWN0KSwgYXNTdHJpbmcoYSktPnZhbHVlKGdsb2JhbE9i
amVjdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0
cmluZ0dyZWF0ZXJFcSwgdWludHB0cl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlU3RyaW5nR3JlYXRlckVxLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGEsIEpTU3RyaW5nKiBiKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjkxMSw3ICsyOTEyLDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0ZvclZhcmFy
Z3MsIHZvaWQsIChKU0dsb2JhbE8KICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNp
emVPZlZhcmFyZ3MsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIHVpbnQzMl90IGZpcnN0VmFyQXJn
T2Zmc2V0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplT2ZWYXJhcmdz
LCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBDQ2FsbFVJbnQzMiBmaXJzdFZhckFyZ09mZnNldCkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5MjEsNyArMjkyMiw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplT2ZWYXJhcmdzLCBVQ1BVU3RyaWN0
SW50MzIsIChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKHNpemVP
ZlZhcmFyZ3MoZ2xvYmFsT2JqZWN0LCBhcmd1bWVudHMsIGZpcnN0VmFyQXJnT2Zmc2V0KSk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNPd25Qcm9wZXJ0eSwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRoaXNPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkhhc093blByb3BlcnR5LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRLZXkpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTQyLDcg
KzI5NDMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzT3duUHJvcGVy
dHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIHNp
emVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVl
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIEND
YWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB2YWx1ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI5
NTAsNyArMjk1MSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJ
c0ludGVnZXIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIE51bWJl
ckNvbnN0cnVjdG9yOjppc0ludGVnZXJJbXBsKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mU3RyaW5nLCBV
Q1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCdXR0ZXJmbHkq
IGJ1dHRlcmZseSwgSlNTdHJpbmcqIHNlYXJjaEVsZW1lbnQsIGludDMyX3QgaW5kZXgpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0cmluZywgVUNQVVN0
cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBidXR0
ZXJmbHksIEpTU3RyaW5nKiBzZWFyY2hFbGVtZW50LCBDQ2FsbEludDMyIGluZGV4KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjk1OSwyMyArMjk2MCwyMyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mU3RyaW5nLCBVQ1BVU3RyaWN0
SW50MzIsIChKU0dsb2JhbAogCiAgICAgaW50MzJfdCBsZW5ndGggPSBidXR0ZXJmbHktPnB1Ymxp
Y0xlbmd0aCgpOwogICAgIGF1dG8gZGF0YSA9IGJ1dHRlcmZseS0+Y29udGlndW91cygpLmRhdGEo
KTsKLSAgICBmb3IgKDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpIHsKLSAgICAgICAgSlNWYWx1
ZSB2YWx1ZSA9IGRhdGFbaW5kZXhdLmdldCgpOworICAgIGZvciAoaW50MzJfdCBpID0gaW5kZXg7
IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBKU1ZhbHVlIHZhbHVlID0gZGF0YVtpXS5nZXQo
KTsKICAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUuaXNTdHJpbmcoKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBhdXRvKiBzdHJpbmcgPSBhc1N0cmluZyh2YWx1ZSk7CiAgICAg
ICAgIGlmIChzdHJpbmcgPT0gc2VhcmNoRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybiB0b1VD
UFVTdHJpY3RJbnQzMihpbmRleCk7CisgICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50
MzIoaSk7CiAgICAgICAgIGlmIChzdHJpbmctPmVxdWFsKGdsb2JhbE9iamVjdCwgc2VhcmNoRWxl
bWVudCkpIHsKICAgICAgICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uRXhjZXB0VGVybWlu
YXRpb24oKTsKLSAgICAgICAgICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihpbmRleCk7Cisg
ICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaSk7CiAgICAgICAgIH0KICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRv
VUNQVVN0cmljdEludDMyKC0xKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFycmF5SW5kZXhPZlZhbHVlSW50MzJPckNvbnRpZ3VvdXMsIFVDUFVTdHJpY3RJbnQzMiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlSW50MzJPckNvbnRpZ3VvdXMsIFVD
UFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZseSog
YnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIENDYWxsSW50MzIgaW5kZXgp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yOTg2LDE5ICsyOTg3LDE5IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMy
T3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0CiAKICAgICBpbnQzMl90IGxlbmd0aCA9IGJ1dHRlcmZs
eS0+cHVibGljTGVuZ3RoKCk7CiAgICAgYXV0byBkYXRhID0gYnV0dGVyZmx5LT5jb250aWd1b3Vz
KCkuZGF0YSgpOwotICAgIGZvciAoOyBpbmRleCA8IGxlbmd0aDsgKytpbmRleCkgewotICAgICAg
ICBKU1ZhbHVlIHZhbHVlID0gZGF0YVtpbmRleF0uZ2V0KCk7CisgICAgZm9yIChpbnQzMl90IGkg
PSBpbmRleDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBkYXRh
W2ldLmdldCgpOwogICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIGJvb2wgaXNFcXVhbCA9IEpTVmFsdWU6OnN0cmljdEVxdWFsKGdsb2JhbE9iamVjdCwg
c2VhcmNoRWxlbWVudCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogICAgICAgICBpZiAoaXNFcXVhbCkKLSAgICAgICAgICAgIHJldHVybiB0b1VDUFVT
dHJpY3RJbnQzMihpbmRleCk7CisgICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIo
aSk7CiAgICAgfQogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURvdWJsZSwgVUNQ
VVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBi
dXR0ZXJmbHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBpbmRleCkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVEb3VibGUs
IFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZs
eSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIENDYWxsSW50MzIgaW5k
ZXgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMDEyLDE3ICszMDEzLDE3
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURv
dWJsZSwgVUNQVVN0cmljdEludDMyLCAoSlNHCiAKICAgICBpbnQzMl90IGxlbmd0aCA9IGJ1dHRl
cmZseS0+cHVibGljTGVuZ3RoKCk7CiAgICAgY29uc3QgZG91YmxlKiBkYXRhID0gYnV0dGVyZmx5
LT5jb250aWd1b3VzRG91YmxlKCkuZGF0YSgpOwotICAgIGZvciAoOyBpbmRleCA8IGxlbmd0aDsg
KytpbmRleCkgeworICAgIGZvciAoaW50MzJfdCBpID0gaW5kZXg7IGkgPCBsZW5ndGg7ICsraSkg
ewogICAgICAgICAvLyBUaGlzIGNvbXBhcmlzb24gaWdub3JlcyBOYU4uCi0gICAgICAgIGlmIChk
YXRhW2luZGV4XSA9PSBudW1iZXIpCi0gICAgICAgICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50
MzIoaW5kZXgpOworICAgICAgICBpZiAoZGF0YVtpXSA9PSBudW1iZXIpCisgICAgICAgICAgICBy
ZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoaSk7CiAgICAgfQogICAgIHJldHVybiB0b1VDUFVTdHJp
Y3RJbnQzMigtMSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb2Fk
VmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDMyX3QgZmly
c3RFbGVtZW50RGVzdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgdWludDMyX3Qg
b2Zmc2V0LCB1aW50MzJfdCBsZW5ndGhJbmNsdWRpbmdUaGlzLCB1aW50MzJfdCBtYW5kYXRvcnlN
aW5pbXVtKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Mb2FkVmFyYXJncywg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxsSW50MzIgZmlyc3RFbGVt
ZW50RGVzdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgQ0NhbGxVSW50MzIgb2Zm
c2V0LCBDQ2FsbFVJbnQzMiBsZW5ndGhJbmNsdWRpbmdUaGlzLCBDQ2FsbFVJbnQzMiBtYW5kYXRv
cnlNaW5pbXVtKSkKIHsKLSAgICBWaXJ0dWFsUmVnaXN0ZXIgZmlyc3RFbGVtZW50IHsgZmlyc3RF
bGVtZW50RGVzdCB9OworICAgIFZpcnR1YWxSZWdpc3RlciBmaXJzdEVsZW1lbnQgeyBpbnQzMl90
KGZpcnN0RWxlbWVudERlc3QpIH07CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CkBAIC0zMDM0LDkgKzMwMzUsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TG9hZFZhcmFyZ3MsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgICAgICBj
YWxsRnJhbWUtPnIoZmlyc3RFbGVtZW50ICsgaSkgPSBqc1VuZGVmaW5lZCgpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRk1vZE9uSW50cywgZG91YmxlLCAoaW50MzJf
dCBhLCBpbnQzMl90IGIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZNb2RP
bkludHMsIGRvdWJsZSwgKENDYWxsSW50MzIgYSwgQ0NhbGxJbnQzMiBiKSkKIHsKLSAgICByZXR1
cm4gZm1vZChhLCBiKTsKKyAgICByZXR1cm4gZm1vZChpbnQzMl90KGEpLCBpbnQzMl90KGIpKTsK
IH0KIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0zMDQ2LDcgKzMwNDcsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmFuZG9tLCBkb3VibGUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogfQogI2VuZGlmCiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25TdHJpbmdGcm9tQ2hhckNvZGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBpbnQzMl90IG9wMSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU3RyaW5nRnJvbUNoYXJDb2RlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ0NhbGxJbnQzMiBvcDEpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBA
IC0zMDY0LDcgKzMwNjUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3Ry
aW5nRnJvbUNoYXJDb2RlVW50eXBlZCwgRW5jb2RlZEpTVmFsdWUsIChKUwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNDOjpzdHJpbmdGcm9tQ2hhckNvZGUoZ2xvYmFsT2JqZWN0LCBjaElu
dCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydEJveGVk
RG91YmxlVG9JbnQ1MiwgaW50NjRfdCwgKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydEJveGVkRG91YmxlVG9JbnQ1
MiwgQ0NhbGxJbnQ2NDo6SW50ZWdlclR5cGUsIChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
ICAgICBpZiAoIXZhbHVlLmlzRG91YmxlKCkpCkBAIC0zMDcyLDEyICszMDczLDEyIEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0Qm94ZWREb3VibGVUb0ludDUyLCBp
bnQ2NF90LCAoRW5jb2RlZEpTCiAgICAgcmV0dXJuIHRyeUNvbnZlcnRUb0ludDUyKHZhbHVlLmFz
RG91YmxlKCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVy
dERvdWJsZVRvSW50NTIsIGludDY0X3QsIChkb3VibGUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnREb3VibGVUb0ludDUyLCBDQ2FsbEludDY0OjpJbnRl
Z2VyVHlwZSwgKGRvdWJsZSB2YWx1ZSkpCiB7CiAgICAgcmV0dXJuIHRyeUNvbnZlcnRUb0ludDUy
KHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1Jhd09i
amVjdCwgY2hhciosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJf
dCBsZW5ndGgsIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdSYXdPYmplY3QsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIENDYWxsSW50MzIgbGVuZ3RoLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCiB7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMTE2LDcgKzMxMTcsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseSwgSlNDZWxsKiwgKFZN
KiB2bVBvaW50ZQogICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0dGVyZmx5
KHZtLCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVj
dG9yTGVuZ3RoLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IHVuc2lnbmVkIGxlbmd0aCwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFk
ZXJBbmRWZWN0b3JMZW5ndGgsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgQ0NhbGxVSW50MzIgbGVuZ3RoLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCiB7CiAg
ICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMTM4LDcgKzMxMzksNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseVdpdGhJbmRleGluZ0hlYWRl
ckFuZFZlYwogICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0dGVyZmx5KHZt
LCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdBcnJheVdpdGhTcHJlYWRTbG93LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgdm9pZCogYnVmZmVyLCB1aW50MzJfdCBudW1JdGVtcykpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU3ByZWFkU2xvdywgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIGJ1ZmZlciwgQ0NhbGxVSW50
MzIgbnVtSXRlbXMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMTk3LDcg
KzMxOTgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRo
U3ByZWFkU2xvdywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFibGVCdXR0
ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBs
ZW5ndGgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUltbXV0YWJs
ZUJ1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENDYWxs
VUludDMyIGxlbmd0aCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMyODcs
NyArMzI4OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlU2Nv
cGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIHJlc29sdmVk
U2NvcGU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXREeW5hbWlj
VmFyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdldFB1dEluZm9C
aXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXREeW5hbWljVmFyLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBz
Y29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIENDYWxsVUludDMyIGdldFB1dEluZm9CaXRz
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzM0Nyw3ICszMzQ4LDcgQEAg
QUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBwdXREeW5hbWljVmFyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFZNJiB2bSwgSlMKICAgICBzY29wZS0+bWV0aG9kVGFibGUodm0pLT5wdXQo
c2NvcGUsIGdsb2JhbE9iamVjdCwgaWRlbnQsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSksIHNsb3Qp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBzY29w
ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNpZ25l
ZCBnZXRQdXRJbmZvQml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
RHluYW1pY1ZhclN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBp
bXBsLCBDQ2FsbFVJbnQzMiBnZXRQdXRJbmZvQml0cykpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTMzNTYsNyArMzM1Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXREeW5hbWljVmFyU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsCiAg
ICAgcmV0dXJuIHB1dER5bmFtaWNWYXIoZ2xvYmFsT2JqZWN0LCB2bSwgc2NvcGUsIHZhbHVlLCBp
bXBsLCBnZXRQdXRJbmZvQml0cywgaXNTdHJpY3RNb2RlKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJOb25TdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlIHZh
bHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJOb25TdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVu
Y29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgQ0NhbGxVSW50MzIg
Z2V0UHV0SW5mb0JpdHMpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0zMzkx
LDcgKzMzOTIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwSGFzaEhl
YXBCaWdJbnQsIFVDUFVTdHJpY3RJbnQzMiwgKFZNKiB2bVBvaQogICAgIHJldHVybiB0b1VDUFVT
dHJpY3RJbnQzMihqc01hcEhhc2goaW5wdXQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkpTTWFwRmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIGludDMyX3QgaGFz
aCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0LCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVuY29k
ZWRKU1ZhbHVlIGtleSwgQ0NhbGxJbnQzMiBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMzQwMiw3ICszNDAzLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkpTTWFwRmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAg
ICByZXR1cm4gKmJ1Y2tldDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIGludDMyX3QgaGFzaCkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNTZXRGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtl
eSwgQ0NhbGxJbnQzMiBoYXNoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MzQxMyw3ICszNDE0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTU2V0
RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1cm4gKmJ1
Y2tldDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlND
ZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogc2V0LCBFbmNvZGVk
SlNWYWx1ZSBrZXksIGludDMyX3QgaGFzaCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uU2V0QWRkLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBzZXQsIEVuY29kZWRKU1ZhbHVlIGtleSwgQ0NhbGxJbnQzMiBoYXNoKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzQyNCw3ICszNDI1LDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QKICAgICByZXR1cm4gYnVja2V0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtleSwgRW5jb2RlZEpTVmFsdWUgdmFs
dWUsIGludDMyX3QgaGFzaCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFw
U2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAs
IEVuY29kZWRKU1ZhbHVlIGtleSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIENDYWxsSW50MzIgaGFz
aCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTM0MzUsNyArMzQzNiw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBTZXQsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIGJ1Y2tldDsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldlYWtTZXRBZGQsIHZvaWQsIChWTSogdm1Qb2lu
dGVyLCBKU0NlbGwqIHNldCwgSlNDZWxsKiBrZXksIGludDMyX3QgaGFzaCkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIs
IEpTQ2VsbCogc2V0LCBKU0NlbGwqIGtleSwgQ0NhbGxJbnQzMiBoYXNoKSkKIHsKICAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTM0NDMsNyArMzQ0NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25XZWFrU2V0QWRkLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBzZXQs
CiAgICAganNDYXN0PEpTV2Vha1NldCo+KHNldCktPmFkZCh2bSwgYXNPYmplY3Qoa2V5KSwgSlNW
YWx1ZSgpLCBoYXNoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldl
YWtNYXBTZXQsIHZvaWQsIChWTSogdm1Qb2ludGVyLCBKU0NlbGwqIG1hcCwgSlNDZWxsKiBrZXks
IEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldlYWtNYXBTZXQsIHZvaWQsIChWTSogdm1Qb2ludGVyLCBKU0NlbGwq
IG1hcCwgSlNDZWxsKiBrZXksIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBDQ2FsbEludDMyIGhhc2gp
KQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzY2OSw3ICszNjcwLDcgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93REZHLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKICAgICBzY29wZS50aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIEpT
VmFsdWU6OmRlY29kZSh2YWx1ZVRvVGhyb3cpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1N0cmluZyogbWVzc2FnZSwgdWludDMyX3QgZXJyb3JUeXBlKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIG1lc3NhZ2UsIENDYWxsVUludDMy
IGVycm9yVHlwZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTQxMTYsNyAr
NDExNyw3IEBAIHN0YXRpYyBjaGFyKiB0aWVyVXBDb21tb24oVk0mIHZtLCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgQnl0ZWNvZGVJbmRleCBvcmlnaW5CeXRlCiAgICAgcmV0dXJuIHRhZ0NvZGVQdHJX
aXRoU3RhY2tQb2ludGVyRm9ySklUQ2FsbCh1bnRhZ0NvZGVQdHI8Y2hhciosIEpTRW50cnlQdHJU
YWc+KGFkZHJlc3MpLCBjYWxsRnJhbWUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIHVu
c2lnbmVkIGJ5dGVjb2RlSW5kZXhCaXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25UcmlnZ2VyVGllclVwTm93SW5Mb29wLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgQ0NhbGxV
SW50MzIgYnl0ZWNvZGVJbmRleEJpdHMpKQogewogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtNDE0
OCw3ICs0MTQ5LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJU
aWVyVXBOb3dJbkxvb3AsIHZvaWQsIChWTSogdm1Qb2ludGVyLAogICAgIH0KIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJPU1JFbnRyeU5vdywgY2hhciosIChW
TSogdm1Qb2ludGVyLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlck9TUkVudHJ5Tm93LCBjaGFyKiwgKFZNKiB2bVBv
aW50ZXIsIENDYWxsVUludDMyIGJ5dGVjb2RlSW5kZXhCaXRzKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXggZmJk
NmQwOWU0NjcyNWY5NzNiYmU4N2Q4NjhiZmM5NDAxZGU5YTcyNi4uMDZkNWNhNGJkZGMwN2ZmOWRj
Y2ZhNjQyN2NmNTE3NzQ2NzdjYjNiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisj
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiREZHQXJpdGhNb2RlLmgiCiAjaW5j
bHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlUeXBlLmgiCkBAIC00
Myw3ICs0NCw3IEBAIG5hbWVzcGFjZSBERkcgewogCiBzdHJ1Y3QgT1NSRXhpdEJhc2U7CiAKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlLCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiwgQ0NhbGxJbnQzMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJp
bmdGcm9tQ2hhckNvZGVVbnR5cGVkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUpKTsKIAogLy8gVGhlc2Ugcm91dGluZXMgcHJvdmlkZSBjYWxsYmFja3Mg
b3V0IHRvIEMrKyBpbXBsZW1lbnRhdGlvbnMgb2Ygb3BlcmF0aW9ucyB0b28gY29tcGxleCB0byBK
SVQuCkBAIC01Nyw3ICs1OCw3IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
T2JqZWN0Q3JlYXRlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvCiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdENyZWF0ZU9iamVjdCwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk9iamVjdEFzc2lnbk9iamVjdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmpl
Y3QqLCBKU09iamVjdCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT2Jq
ZWN0QXNzaWduVW50eXBlZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVU
aGlzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogY29uc3RydWN0b3IsIHVp
bnQzMl90IGlubGluZUNhcGFjaXR5KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNyZWF0ZVRoaXMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBjb25z
dHJ1Y3RvciwgQ0NhbGxVSW50MzIgaW5saW5lQ2FwYWNpdHkpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUHJvbWlzZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqIGNvbnN0cnVjdG9yKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNyZWF0ZUludGVybmFsUHJvbWlzZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNPYmplY3QqIGNvbnN0cnVjdG9yKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNyZWF0ZUdlbmVyYXRvciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
IGNvbnN0cnVjdG9yKSk7CkBAIC05MSw4ICs5Miw4IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQXJpdGhSb3VuZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFyaXRoRmxvb3IsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Bcml0aENlaWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Bcml0aFRydW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlW
YWxPYmplY3RJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCos
IGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxT
dHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIGlu
dDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmpl
Y3RJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxs
SW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxTdHJp
bmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIENDYWxs
SW50MzIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxPYmpl
Y3RTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0Nl
bGwqIHN0cmluZykpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZh
bE9iamVjdFN5bWJvbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCos
IEpTQ2VsbCogc3ltYm9sKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRv
UHJpbWl0aXZlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUpKTsKQEAgLTEwMyw0MiArMTA0LDQyIEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ2FsbE51bWJlckNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvCiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXMsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdl
dFByb3RvdHlwZU9mLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvdG90eXBl
T2ZPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCopKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5LCBz
aXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIGludDMyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzRW51bWVyYWJsZUluZGV4ZWRQcm9wZXJ0eSwgc2l6
ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eSwgQ0NhbGxTaXplOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgQ0NhbGxJbnQzMikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNFbnVtZXJhYmxlSW5kZXhlZFByb3BlcnR5
LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBDQ2Fs
bEludDMyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByb3BlcnR5
RW51bWVyYXRvciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9y
Q2VsbCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZUluZGV4QW5kTW9kZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50MzJf
dCwgaW50MzJfdCwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKikpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNT
dHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCB1aW50MzJfdCwgaW50MzJfdCwgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVt
ZXJhdG9ySW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludDMyX3QsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckhhc093blByb3BlcnR5LCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCB1aW50MzJfdCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25FbnVtZXJhdG9yUmVjb3Zlck5hbWVBbmRHZXRCeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50MzJfdCwgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9y
TmV4dFVwZGF0ZUluZGV4QW5kTW9kZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnQzMiwgQ0NhbGxJbnQzMiwgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJh
dG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBD
Q2FsbFVJbnQzMiwgQ0NhbGxJbnQzMiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9ySW5CeVZhbCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRW51bWVyYXRvckhhc093blByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnQzMiwg
Q0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJh
dG9yUmVjb3Zlck5hbWVBbmRHZXRCeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnQzMiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
KikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1JlZ2V4cFdpdGhM
YXN0SW5kZXgsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1Zh
bHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5LCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgdm9pZCosIHNpemVfdCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheSwgY2hhciosIChKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIHZvaWQqLCBDQ2FsbFNpemUpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3RW1wdHlBcnJheSwgY2hhciosIChWTSosIFN0cnVjdHVyZSop
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZseSop
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFu
ZEhpbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBpbnQz
Ml90LCBCdXR0ZXJmbHkqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0ludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
aW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0FycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2Fs
bEludDMyLCBCdXR0ZXJmbHkqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld0FycmF5V2l0aFNpemVBbmRIaW50LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5KikpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRoT25lQXJndW1lbnQsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aFNpemUsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnRwdHJfdCwgY2hhciopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MTZBcnJheVdpdGhTaXplLCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoT25l
QXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNW
YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQzMkFycmF5
V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnRwdHJfdCwg
Y2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MzJBcnJh
eVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQ0NhbGxJbnRw
dHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDMy
QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
ZXdVaW50OEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBpbnRwdHJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3VWludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
KiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld1VpbnQ4QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aFNpemUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRoT25l
QXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNW
YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MTZBcnJh
eVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3Qs
IGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFy
cmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbElu
dHB0ciwgY2hhciopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWlu
dDE2QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdVaW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld1VpbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBjaGFyKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoT25lQXJndW1lbnQs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoU2l6
ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludHB0cl90LCBjaGFyKikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRo
U2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIENDYWxsSW50cHRyLCBj
aGFyKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDY0QXJy
YXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBF
bmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdC
aWdJbnQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBpbnRwdHJfdCwgY2hhciopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3QmlnSW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgQ0NhbGxJbnRwdHIsIGNoYXIqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk5ld0JpZ0ludDY0QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25OZXdCaWdVaW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50cHRyX3QsIGNoYXIqKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0JpZ1VpbnQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludHB0ciwgY2hhciopKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QmlnVWludDY0QXJyYXlXaXRoT25lQXJn
dW1lbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBFbmNvZGVkSlNWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheUl0ZXJhdG9y
LCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld01hcEl0ZXJhdG9yLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqKSk7CkBA
IC0xNTAsMzYgKzE1MSwzNiBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5VmFsQ2VsbFN0cmluZ1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZQogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJpbmdOb25TdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEpTQ2VsbCogc3RyaW5nLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlWYWxDZWxsU3ltYm9sU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBK
U0NlbGwqIHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbE5vblN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzeW1ib2wsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBK
U09iamVjdCosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91
bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIGludDMyX3Qg
aW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIgaW5kZXgsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIENDYWxsSW50MzIgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdFN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxE
aXJlY3RDZWxsU3RyaW5nU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBK
U0NlbGwqIHN0cmluZywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmluZ05vblN0cmlj
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgSlNDZWxsKiBzdHJpbmcsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeVZhbERpcmVjdENlbGxTeW1ib2xTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCosIEpTQ2VsbCogc3ltYm9sLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxs
U3ltYm9sTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwq
IHN5bWJvbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3Qs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJs
ZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgZG91
YmxlIHZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJs
ZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlC
b3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgaW50MzJf
dCBpbmRleCwgZG91YmxlIHZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWRXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGly
ZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgQ0NhbGxJbnQzMiBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25k
QXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgQ0Nh
bGxJbnQzMiBpbmRleCwgZG91YmxlIHZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJbnQzMiBpbmRleCwgZG91YmxlIHZh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFs
RGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgQ0NhbGxJbnQzMiBpbmRleCwgZG91YmxlIHZhbHVlKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3Vu
ZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJbnQz
MiBpbmRleCwgZG91YmxlIHZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWRXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXMsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXNTdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3Ry
aW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEpTU3RyaW5nKiwgRW5jb2Rl
ZEpTVmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nSWRlbnQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTeW1i
b2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3ltYm9sKiwgRW5jb2RlZEpT
VmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVm
aW5lQWNjZXNzb3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgSlNPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZywg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBKU1N0cmluZyosIEpTT2JqZWN0Kiwg
SlNPYmplY3QqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqLCBVbmlxdWVkU3RyaW5nSW1wbCosIEpTT2JqZWN0KiwgSlNPYmplY3QqLCBp
bnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vz
c29yUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgU3lt
Ym9sKiwgSlNPYmplY3QqLCBKU09iamVjdCosIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQz
MikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVy
dHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgSlNTdHJpbmcqLCBF
bmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3QqLCBVbmlxdWVkU3RyaW5nSW1wbCosIEVuY29kZWRKU1ZhbHVlLCBDQ2Fs
bEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQ
cm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBTeW1ib2wq
LCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBKU09iamVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJ
bnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3Nv
clByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIEpTU3Ry
aW5nKiwgSlNPYmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZ0lkZW50LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgSlNP
YmplY3QqLCBKU09iamVjdCosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqLCBTeW1ib2wqLCBKU09iamVjdCosIEpTT2JqZWN0KiwgQ0NhbGxJ
bnQzMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2gsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEpTQXJyYXkqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5
UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJheSos
IHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50Q291bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBKU0FycmF5Kiwgdm9pZCogYnVmZmVyLCBDQ2FsbEludDMyIGVsZW1lbnRD
b3VudCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hEb3Vi
bGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBkb3VibGUgdmFsdWUsIEpTQXJy
YXkqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJs
ZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJheSosIHZv
aWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50Q291bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBKU0FycmF5Kiwgdm9pZCogYnVmZmVyLCBDQ2FsbEludDMyIGVsZW1l
bnRDb3VudCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVBvcCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQXJyYXkqKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UG9wQW5kUmVjb3Zlckxlbmd0aCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQXJyYXkqKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJlZ0V4cEV4ZWNTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopKTsKQEAgLTE4OSwxMCArMTkw
LDEwIEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwRXhlY05vbkds
b2JhbE9yU3RpY2t5LCBFbmNvZGVkSlNWYWx1ZSwKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUmVnRXhwTWF0Y2hGYXN0R2xvYmFsU3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiwgUmVnRXhwKiwgSlNTdHJpbmcqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblJlZ0V4cE1hdGNoRmFzdFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKikpOwogLy8gVGhlc2UgY29t
cGFyaXNvbnMgcmV0dXJuIGEgYm9vbGVhbiB3aXRoaW4gYSBzaXplX3Qgc3VjaCB0aGF0IHRoZSB2
YWx1ZSBpcyB6ZXJvIGV4dGVuZGVkIHRvIGZpbGwgdGhlIHJlZ2lzdGVyLgotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0U3RyaW5nLCBzaXplX3QsIChKU0dsb2Jh
bE9iamVjdCosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKikpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25SZWdFeHBUZXN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIFJl
Z0V4cE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXFDZWxsLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCos
IEpTQ2VsbCogb3AxLCBKU0NlbGwqIG9wMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25SZWdFeHBUZXN0U3RyaW5nLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9i
YWxPYmplY3QqLCBSZWdFeHBPYmplY3QqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiwgUmVnRXhwT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVyaWMsIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0
RXFDZWxsLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
IG9wMSwgSlNDZWxsKiBvcDIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U3ViSGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCog
b3AxLCBKU0NlbGwqIG9wMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25N
dWxIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBv
cDEsIEpTQ2VsbCogb3AyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1v
ZEhlYXBCaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9w
MSwgSlNDZWxsKiBvcDIpKTsKQEAgLTIwNSw2MCArMjA2LDYwIEBAIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQml0TFNoaWZ0SGVhcEJpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFkZEhlYXBCaWdJbnQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqIG9wMSwgSlNDZWxsKiBv
cDIpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQml0UlNoaWZ0SGVhcEJp
Z0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogb3AxLCBKU0Nl
bGwqIG9wMikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25CaXRYb3JIZWFw
QmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBvcDEsIEpT
Q2VsbCogb3AyKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNhbWVWYWx1
ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2FtZVZhbHVlLCBDQ2Fs
bFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRl
QWN0aXZhdGlvbkRpcmVjdCwgSlNDZWxsKiwgKFZNKiwgU3RydWN0dXJlKiwgSlNTY29wZSosIFN5
bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUq
LCB1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90IG1pbkNhcGFjaXR5KSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpT
Q2VsbCosIChWTSosIElubGluZUNhbGxGcmFtZSosIEpTRnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1
bWVudENvdW50KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNj
b3BlZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVn
aXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVl
LCBKU0xleGljYWxFbnZpcm9ubWVudCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiwgSW5s
aW5lQ2FsbEZyYW1lKiwgSlNGdW5jdGlvbiosIHVpbnQzMl90IGFyZ3VtZW50Q291bnQpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBSZWdpc3RlciogYXJndW1lbnRT
dGFydCwgdWludDMyX3QgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRzQnV0dGVyZmx5LCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgYXJn
dW1lbnRDb3VudCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVS
ZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwg
dW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudHNUb1NraXAsIHVuc2lnbmVkIGFycmF5U2l6ZSkpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHMs
IEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIENDYWxsVUludDMyIGxlbmd0aCwgQ0NhbGxVSW50
MzIgbWluQ2FwYWNpdHkpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiwgSW5saW5lQ2FsbEZy
YW1lKiwgSlNGdW5jdGlvbiosIENDYWxsVUludDMyIGFyZ3VtZW50Q291bnQpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwg
Q0NhbGxVSW50MzIgbGVuZ3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIEpTTGV4aWNhbEVudmlyb25t
ZW50KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRB
cmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qLCBJbmxpbmVDYWxsRnJhbWUqLCBKU0Z1
bmN0aW9uKiwgQ0NhbGxVSW50MzIgYXJndW1lbnRDb3VudCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZSosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQz
MiBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxlZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQzMiBhcmd1bWVudENvdW50
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVJlc3QsIEpTQ2Vs
bCosIChKU0dsb2JhbE9iamVjdCosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBDQ2FsbFVJbnQz
MiBudW1iZXJPZkFyZ3VtZW50c1RvU2tpcCwgQ0NhbGxVSW50MzIgYXJyYXlTaXplKSk7CiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5QnVmZmVyLCBKU0NlbGwqLCAo
Vk0qLCBTdHJ1Y3R1cmUqLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2Rl
ZEpTVmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiwgSlNDZWxsKiwgSlNDZWxsKiwgaW50MzJf
dCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrTWFwU2V0LCB2b2lk
LCAoVk0qLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25GTW9kT25JbnRzLCBkb3VibGUsIChpbnQz
Ml90LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVP
ZklzT2JqZWN0LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mSXNGdW5jdGlvbiwgc2l6ZV90LCAoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk9iamVjdElzQ2FsbGFibGUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Jc0NvbnN0cnVjdG9yLCBzaXpl
X3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiwgSlNDZWxs
KiwgSlNDZWxsKiwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XZWFrTWFwU2V0LCB2b2lkLCAoVk0qLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNW
YWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25G
TW9kT25JbnRzLCBkb3VibGUsIChDQ2FsbEludDMyLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZklzT2JqZWN0LCBDQ2FsbFNpemU6OkludGVn
ZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblR5cGVPZklzRnVuY3Rpb24sIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUs
IChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uT2JqZWN0SXNDYWxsYWJsZSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Jc0NvbnN0cnVjdG9yLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
eXBlT2ZPYmplY3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3Jh
Z2VXaXRoSW5pdGlhbENhcGFjaXR5LCBjaGFyKiwgKFZNKikpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZSwgY2hhciosIChW
TSosIHNpemVfdCBuZXdTaXplKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiwgQ0NhbGxTaXplIG5l
d1NpemUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21w
bGV4UHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBhY2l0eSwgY2hhciosIChWTSosIEpTT2Jq
ZWN0KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZUNvbXBs
ZXhQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qLCBKU09iamVjdCosIHNpemVfdCBuZXdTaXpl
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFBy
b3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSosIEpTT2JqZWN0KiwgQ0NhbGxTaXplIG5ld1NpemUp
KTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlSW50MzIsIGNoYXIq
LCAoVk0qLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVu
c3VyZURvdWJsZSwgY2hhciosIChWTSosIEpTQ2VsbCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRW5zdXJlQ29udGlndW91cywgY2hhciosIChWTSosIEpTQ2VsbCopKTsK
IEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW5zdXJlQXJyYXlTdG9yYWdlLCBj
aGFyKiwgKFZNKiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25SZXNvbHZlUm9wZSwgU3RyaW5nSW1wbCosIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKikp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaW5nbGVDaGFyYWN0ZXJTdHJp
bmcsIEpTU3RyaW5nKiwgKFZNKiwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25TaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIEpTU3RyaW5nKiwgKFZNKiwgQ0NhbGxJ
bnQzMikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1N1YnN0
ciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCwgaW50MzJfdCkp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTbGljZSwgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgaW50MzJfdCwgaW50MzJfdCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTdWJzdHIsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCosIEpTQ2VsbCosIENDYWxsSW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2Jh
bE9iamVjdCosIEpTQ2VsbCosIENDYWxsSW50MzIsIENDYWxsSW50MzIpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nVmFsdWVPZiwgSlNTdHJpbmcqLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Ub0xvd2VyQ2FzZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmlu
ZyosIHVpbnQzMl90KSk7Ci0KLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50
MzJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCosIGludDMyX3QsIGludDMyX3QpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50NTJUb1N0cmluZywgY2hhcios
IChKU0dsb2JhbE9iamVjdCosIGludDY0X3QsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
LCBkb3VibGUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SW50MzJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgaW50
MzJfdCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQ1
MlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBpbnQ2NF90
LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRv
U3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBkb3VibGUsIGlu
dDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVG9Mb3dlckNhc2Us
IEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBDQ2FsbFVJbnQzMikpOwor
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqLCBDQ2FsbEludDMyLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBDQ2FsbEludDY0LCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgZG91
YmxlLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbklu
dDMyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCosIENDYWxs
SW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SW50NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiwgQ0Nh
bGxJbnQ2NCwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Eb3VibGVUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0Kiwg
ZG91YmxlLCBDQ2FsbEludDMyKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkZ1bmN0aW9uVG9TdHJpbmcsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNGdW5jdGlv
biopKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ob3JtYWxpemVNYXBL
ZXlIZWFwQmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKFZNKiwgSlNCaWdJbnQqKSk7CiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1hcEhhc2gsIFVDUFVTdHJpY3RJbnQzMiwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgaW5wdXQpKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTWFwSGFzaEhlYXBCaWdJbnQsIFVDUFVTdHJpY3RJbnQzMiwgKFZN
KiwgSlNCaWdJbnQqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTTWFw
RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpT
VmFsdWUsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNT
ZXRGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVk
SlNWYWx1ZSwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25K
U01hcEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29k
ZWRKU1ZhbHVlLCBDQ2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwg
RW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QYXJzZUludE5vUmFkaXhHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUGFyc2VJbnRTdHJpbmdOb1JhZGl4LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNTdHJpbmcqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blBhcnNlSW50U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNl
SW50R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNl
SW50U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBD
Q2FsbEludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50
R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBDQ2FsbEludDMyKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
U3ltYm9sLCBTeW1ib2wqLCAoVk0qKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld1N5bWJvbFdpdGhTdHJpbmdEZXNjcmlwdGlvbiwgU3ltYm9sKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNTdHJpbmcqKSk7CkBAIC0yNzIsNDggKzI3Myw0OCBAQCBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk1ha2VSb3BlMiwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU1N0cgogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYWtlUm9wZTMsIEpT
U3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyosIEpTU3RyaW5n
KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJDYXQyLCBKU1N0cmlu
ZyosIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJDYXQzLCBKU1N0cmluZyosIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaElt
bVRhcmdldEZvckRvdWJsZSwgY2hhciosIChWTSosIEVuY29kZWRKU1ZhbHVlLCBzaXplX3QgdGFi
bGVJbmRleCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
d2l0Y2hTdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBzaXplX3QgdGFibGVJbmRleCwg
Y29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqLCBKU1N0cmluZyopKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzLCB1aW50cHRyX3Qs
IChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzRXEsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwq
LCBTdHJpbmdJbXBsKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21w
YXJlU3RyaW5nSW1wbEdyZWF0ZXIsIHVpbnRwdHJfdCwgKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBs
KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nSW1w
bEdyZWF0ZXJFcSwgdWludHB0cl90LCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzLCB1aW50cHRy
X3QsIChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKSk7Ci1KU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzRXEsIHVpbnRwdHJfdCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXIsIHVpbnRwdHJfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKLUpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXJFcSwgdWludHB0cl90LCAoSlNH
bG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25GaW5kU3dpdGNoSW1tVGFyZ2V0Rm9yRG91YmxlLCBjaGFyKiwgKFZN
KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBDQ2FsbEludDMyKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZywgY2hhciosIChK
U0dsb2JhbE9iamVjdCosIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBjb25zdCBVbmxpbmtlZFN0cmlu
Z0p1bXBUYWJsZSosIEpTU3RyaW5nKikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlU3RyaW5nSW1wbExlc3MsIENDYWxsVUludHB0cjo6SW50ZWdlclR5cGUsIChT
dHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxMZXNzRXEsIENDYWxsVUludHB0cjo6SW50ZWdlclR5cGUs
IChTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29tcGFyZVN0cmluZ0ltcGxHcmVhdGVyLCBDQ2FsbFVJbnRwdHI6OkludGVnZXJU
eXBlLCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdJbXBsR3JlYXRlckVxLCBDQ2FsbFVJbnRwdHI6Oklu
dGVnZXJUeXBlLCAoU3RyaW5nSW1wbCosIFN0cmluZ0ltcGwqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdMZXNzLCBDQ2FsbFVJbnRwdHI6OkludGVn
ZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nTGVzc0VxLCBDQ2FsbFVJ
bnRwdHI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5n
KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nR3Jl
YXRlciwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqLCBKU1N0cmluZyopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29t
cGFyZVN0cmluZ0dyZWF0ZXJFcSwgQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTm90aWZ5V3JpdGUsIHZvaWQsIChWTSosIFdhdGNocG9pbnRTZXQqKSk7CiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0ZvclZh
cmFyZ3MsIHZvaWQsIChKU0dsb2JhbE9iamVjdCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU2l6ZU9mVmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIHVpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqLCBpbnQzMl90IGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1Zh
bHVlIGFyZ3VtZW50cywgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90
IG1hbmRhdG9yeU1pbmltdW0pKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
U2l6ZU9mVmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSBhcmd1bWVudHMsIENDYWxsVUludDMyIGZpcnN0VmFyQXJnT2Zmc2V0KSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqLCBDQ2FsbEludDMyIGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1ZhbHVlIGFy
Z3VtZW50cywgQ0NhbGxVSW50MzIgb2Zmc2V0LCBDQ2FsbFVJbnQzMiBsZW5ndGgsIENDYWxsVUlu
dDMyIG1hbmRhdG9yeU1pbmltdW0pKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVGhyb3dERkcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiwgdWludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvciwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNTdHJpbmcqLCBDQ2FsbFVJbnQzMikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkhhc093blByb3BlcnR5LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpT
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSGFzT3duUHJvcGVydHksIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZTdHJpbmcsIFVDUFVTdHJpY3RJbnQzMiwgKEpT
R2xvYmFsT2JqZWN0KiwgQnV0dGVyZmx5KiwgSlNTdHJpbmcqLCBpbnQzMl90KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlRG91YmxlLCBVQ1BV
U3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEVuY29kZWRKU1ZhbHVl
LCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5k
ZXhPZlZhbHVlSW50MzJPckNvbnRpZ3VvdXMsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgQnV0dGVyZmx5KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mU3RyaW5nLCBVQ1BVU3RyaWN0SW50
MzIsIChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEpTU3RyaW5nKiwgQ0NhbGxJbnQzMikp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURv
dWJsZSwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBCdXR0ZXJmbHkqLCBFbmNv
ZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMyT3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0SW50MzIs
IChKU0dsb2JhbE9iamVjdCosIEJ1dHRlcmZseSosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMy
KSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3ByZWFkRmFzdEFycmF5
LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNwcmVhZEdlbmVyaWMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCosIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJy
YXlXaXRoU3ByZWFkU2xvdywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0Kiwgdm9pZCosIHVpbnQz
Ml90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUltbXV0YWJs
ZUJ1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgbGVuZ3RoKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVhZFNs
b3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIHZvaWQqLCBDQ2FsbFVJbnQzMikpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFibGVCdXR0ZXJmbHks
IEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIENDYWxsVUludDMyIGxlbmd0aCkpOwogCiBKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29sdmVTY29wZSwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNTY29wZSosIFVuaXF1ZWRTdHJpbmdJbXBsKikpOwogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNs
SW5FdmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTY29wZSosIFVuaXF1
ZWRTdHJpbmdJbXBsKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRE
eW5hbWljVmFyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNj
b3BlLCBVbmlxdWVkU3RyaW5nSW1wbCosIHVuc2lnbmVkKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIEpTT2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwg
dW5zaWduZWQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1p
Y1Zhck5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBF
bmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25lZCkpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXREeW5hbWljVmFyLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBVbmlxdWVkU3RyaW5nSW1wbCosIEND
YWxsVUludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFt
aWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBzY29wZSwgRW5j
b2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgQ0NhbGxVSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1Zhck5vblN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVl
ZFN0cmluZ0ltcGwqLCBDQ2FsbFVJbnQzMikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRCb3hlZERvdWJsZVRvSW50NTIsIGludDY0X3QsIChFbmNvZGVkSlNW
YWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0RG91Ymxl
VG9JbnQ1MiwgaW50NjRfdCwgKGRvdWJsZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db252ZXJ0Qm94ZWREb3VibGVUb0ludDUyLCBDQ2FsbEludDY0OjpJbnRlZ2VyVHlw
ZSwgKEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnZlcnREb3VibGVUb0ludDUyLCBDQ2FsbEludDY0OjpJbnRlZ2VyVHlwZSwgKGRvdWJsZSkp
OwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk51bWJlcklzSW50ZWdlciwg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIENDYWxsU2l6ZTo6SW50ZWdl
clR5cGUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7CiAKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmF3T2JqZWN0LCBjaGFyKiwgKFZNKiwgU3RydWN0
dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdSYXdPYmplY3QsIGNoYXIqLCAoVk0qLCBTdHJ1Y3R1cmUqLCBDQ2FsbEludDMy
LCBCdXR0ZXJmbHkqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09i
amVjdFdpdGhCdXR0ZXJmbHksIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIEJ1dHRlcmZseSop
KTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRl
cmZseVdpdGhJbmRleGluZ0hlYWRlckFuZFZlY3Rvckxlbmd0aCwgSlNDZWxsKiwgKFZNKiwgU3Ry
dWN0dXJlKiwgdW5zaWduZWQgbGVuZ3RoLCBCdXR0ZXJmbHkqKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFk
ZXJBbmRWZWN0b3JMZW5ndGgsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIENDYWxsVUludDMy
IGxlbmd0aCwgQnV0dGVyZmx5KikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkxpbmtEaXJlY3RDYWxsLCB2b2lkLCAoT3B0aW1pemluZ0NhbGxMaW5rSW5mbyosIEpTRnVu
Y3Rpb24qKSk7CiAKQEAgLTM0NCw4ICszNDUsOCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblJhbmRvbSwgZG91YmxlLCAoSlNHbG9iYWxPYmplY3QqKSk7CiAKICNpZiBFTkFC
TEUoRlRMX0pJVCkKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRp
ZXJVcE5vdywgdm9pZCwgKFZNKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25UcmlnZ2VyVGllclVwTm93SW5Mb29wLCB2b2lkLCAoVk0qLCB1bnNpZ25lZCBieXRlY29kZUlu
ZGV4Qml0cykpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyT1NS
RW50cnlOb3csIGNoYXIqLCAoVk0qLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93SW5Mb29wLCB2
b2lkLCAoVk0qLCBDQ2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpOworSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyT1NSRW50cnlOb3csIGNoYXIqLCAoVk0qLCBD
Q2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpOwogI2VuZGlmIC8vIEVOQUJMRShGVExfSklU
KQogCiBpbmxpbmUgYXV0byBvcGVyYXRpb25OZXdUeXBlZEFycmF5V2l0aFNpemVGb3JUeXBlKFR5
cGVkQXJyYXlUeXBlIHR5cGUpIC0+IGRlY2x0eXBlKCZvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRo
U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApp
bmRleCA5ZTU5OWJmZmVjOGI5MDBmZDcyMzhlZGM2MzljZWI1NjQ5NDNhOWM4Li44YjhiNWJlY2Nm
NWU0YzEwYzFkZGY5MzdlZmZiY2NiOTdmNGU5ODg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMjIsMTIgKzEyMiwxMiBAQCBuYW1lc3Bh
Y2Ugewogc3RkOjphdG9taWM8aW50PiBjb21waWxlQ291bnRlcjsKIAogI2lmIEFTU0VSVF9FTkFC
TEVECi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNo
YWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2Nr
LCBCbG9ja0luZGV4IGJsb2NrSW5kZXgsIHVuc2lnbmVkIG5vZGVJbmRleCkpOwotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJO
X0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4IGJs
b2NrSW5kZXgsIHVuc2lnbmVkIG5vZGVJbmRleCkpCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
X1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwg
dm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4IGJsb2NrSW5kZXgsIENDYWxs
VUludDMyIG5vZGVJbmRleCkpOworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklC
VVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVC
bG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4IGJsb2NrSW5kZXgsIENDYWxsVUludDMyIG5vZGVJ
bmRleCkpCiB7CiAgICAgZGF0YUxvZygiQ3Jhc2hpbmcgaW4gdGhvdWdodC10by1iZS11bnJlYWNo
YWJsZSBGVEwtZ2VuZXJhdGVkIGNvZGUgZm9yICIsIHBvaW50ZXJEdW1wKGNvZGVCbG9jayksICIg
YXQgYmFzaWMgYmxvY2sgIyIsIGJsb2NrSW5kZXgpOwogICAgIGlmIChub2RlSW5kZXggIT0gVUlO
VF9NQVgpCi0gICAgICAgIGRhdGFMb2coIiwgbm9kZSBAIiwgbm9kZUluZGV4KTsKKyAgICAgICAg
ZGF0YUxvZygiLCBub2RlIEAiLCB1aW50MzJfdChub2RlSW5kZXgpKTsKICAgICBkYXRhTG9nKCIu
XG4iKTsKICAgICBDUkFTSCgpOwogfQpAQCAtNDcxNSwxNCArNDcxNSwxNCBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25zLmdldCgpLCBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZlNs
b3dPcGVyYXRpb24oKSksIEludmFsaWRHUFJSZWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGppdC5jb2RlQmxvY2soKS0+Z2xvYmFsT2JqZWN0Rm9yKG5vZGVTZW1hbnRpY09yaWdp
biksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSLCBwYXJhbXNb
MV0uZ3ByKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIo
KSwgaWRlbnRpZmllci5yYXdCaXRzKCkpLmNhbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyYW1zWzBdLmdwcigpLCBDQ2FsbFVJbnRwdHIoaWRlbnRpZmllci5yYXdCaXRz
KCkpKS5jYWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCA9IGNhbGxPcGVyYXRpb24oCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICpzdGF0ZSwgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0
ZXJzKCksIGppdCwgbm9kZVNlbWFudGljT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBleGNlcHRpb25zLmdldCgpLCBnZW5lcmF0b3ItPnNsb3dQYXRoRnVuY3Rpb24oKSwg
SW52YWxpZEdQUlJlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVC
bG9jaygpLT5nbG9iYWxPYmplY3RGb3Iobm9kZVNlbWFudGljT3JpZ2luKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGdlbmVyYXRv
ci0+c3R1YkluZm8oKSksIHBhcmFtc1sxXS5ncHIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyYW1zWzBdLmdwcigpLCBpZGVudGlmaWVyLnJhd0JpdHMoKSkuY2FsbCgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNbMF0uZ3ByKCksIENDYWxsVUlu
dHB0cihpZGVudGlmaWVyLnJhd0JpdHMoKSkpLmNhbGwoKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5qdW1wKCkubGlua1RvKGRvbmUsICZq
aXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRD
b21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxl
ci5jcHAKaW5kZXggZmU3OWY3OGQzNzUwZDYzNGRlMjMyM2NhZGRiMDZkNDE3ZTg4M2JlNy4uY2Yy
MzJjMjI3YThhYTFiYzE1ZWIzODZiOTI0YzJkODhhNzRkODkxMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcApAQCAtNDkzLDEwICs0OTMs
MTAgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoVk0mIHZtLCB1bnNpZ25lZCBleGl0SUQsIEpJ
VENvZGUqIGppdENvZGUsIE9TUkV4aXQmIGV4aXQKICAgICAgICAgKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExPU1JFeGl0LCB2b2lkKiwgKENhbGxG
cmFtZSogY2FsbEZyYW1lLCB1bnNpZ25lZCBleGl0SUQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBpbGVGVExPU1JFeGl0LCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBDQ2FsbFVJbnQzMiBleGl0SUQpKQogewogICAgIGlmIChzaG91bGREdW1wRGlzYXNzZW1i
bHkoKSB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCkgfHwgT3B0aW9uczo6dmVyYm9zZUZUTE9TUkV4
aXQoKSkKLSAgICAgICAgZGF0YUxvZygiQ29tcGlsaW5nIE9TUiBleGl0IHdpdGggZXhpdElEID0g
IiwgZXhpdElELCAiXG4iKTsKKyAgICAgICAgZGF0YUxvZygiQ29tcGlsaW5nIE9TUiBleGl0IHdp
dGggZXhpdElEID0gIiwgdWludDMyX3QoZXhpdElEKSwgIlxuIik7CiAKICAgICBWTSYgdm0gPSBj
YWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIC8vIERvbid0IG5lZWQgYW4gQWN0aXZlU2Ny
YXRjaEJ1ZmZlclNjb3BlIGhlcmUgYmVjYXVzZSB3ZSBEZWZlckdDRm9yQVdoaWxlIGJlbG93Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmgKaW5kZXgg
ODQ0NWIwMTcwMmVmODc4NzVlMTlhY2Q5ODhlNGVjNTlmM2Y3YTBlMC4uNjliYjY3NjM4NmFmMDRh
Y2JiMGIwMGJjOWRiMWM3OWQyODdjOWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE9TUkV4aXRDb21waWxlci5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgRlRMIHsKIAogLy8gVGFrZXMgdGhlIGNhbGwgZnJhbWUgYW5kIHRoZSBpbmRl
eCBvZiB0aGUgZXhpdCwgYW5kIHJldHVybnMgdGhlIGFkZHJlc3MgdG8KIC8vIGp1bXAgdG8uCi1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExPU1JFeGl0LCB2b2lk
KiwgKENhbGxGcmFtZSosIHVuc2lnbmVkIGV4aXRJRCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db21waWxlRlRMT1NSRXhpdCwgdm9pZCosIChDYWxsRnJhbWUqLCBDQ2Fs
bFVJbnQzMiBleGl0SUQpKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAppbmRleCAzOTY2YjRkYWZlODYw
ZjlhOTI2ZTg5OTM1ZDFiOWUxY2Y5NzA3NWE0Li41YzE1Mjg4MWViODE1Y2IwNjQyZmYwZjhmYzg4
ZmZjYjc3OWY4YTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9w
ZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9u
cy5jcHAKQEAgLTY5OSw3ICs2OTksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUiwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZQogICAgIH0K
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdl
dEluZGV4LCB1bnNpZ25lZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVu
bGlua2VkU3RyaW5nSnVtcFRhYmxlKiB1bmxpbmtlZFRhYmxlLCBKU1N0cmluZyogc3RyaW5nKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdBbmRHZXRJbmRl
eCwgQ0NhbGxVSW50MzI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqIHVubGlua2VkVGFibGUsIEpTU3RyaW5n
KiBzdHJpbmcpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC03MTMsNyArNzEz
LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaFN0cmluZ0FuZEdl
dEluZGV4LCB1bnNpZ25lZCwgKEpTR2xvYmFsT2IKICAgICByZXR1cm4gdW5saW5rZWRUYWJsZS0+
aW5kZXhGb3JWYWx1ZShzdHJJbXBsLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4
KCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0
QXNUeXBlb2ZUeXBlLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBvYmplY3QpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9i
amVjdEFzVHlwZW9mVHlwZSwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKQEAgLTcyOCw3ICs3MjgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uVHlwZU9mT2JqZWN0QXNUeXBlb2ZUeXBlLCBpbnQzMl90LCAoSlNHbG9iYWxPYgogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihUeXBlb2ZUeXBlOjpPYmplY3QpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTExhenlTbG93UGF0aCwg
dm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWduZWQgaW5kZXgpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIENDYWxsVUludDMyIGluZGV4KSkKIHsKICAgICBWTSYgdm0g
PSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIC8vIERvbid0IG5lZWQgYW4gQWN0aXZl
U2NyYXRjaEJ1ZmZlclNjb3BlIGhlcmUgYmVjYXVzZSB3ZSBEZWZlckdDRm9yQVdoaWxlLgpAQCAt
NzQ1LDEwICs3NDUsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBp
bGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWwKICAgICByZXR1cm4gbGF6
eVNsb3dQYXRoLnN0dWIoKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhvcGVyYXRpb25SZXBvcnRCb3VuZHND
aGVja0VsaW1pbmF0aW9uRXJyb3JBbmRDcmFzaCwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9p
ZCwgKGludHB0cl90IGNvZGVCbG9ja0FzSW50UHRyLCBpbnQzMl90IG5vZGVJbmRleCwgaW50MzJf
dCBjaGlsZDFJbmRleCwgaW50MzJfdCBjaGlsZDJJbmRleCwgaW50MzJfdCBjaGVja2VkSW5kZXgs
IGludDMyX3QgYm91bmRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVU
RVMob3BlcmF0aW9uUmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVycm9yQW5kQ3Jhc2gsIE5P
X1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChDQ2FsbEludHB0ciBjb2RlQmxvY2tBc0ludFB0
ciwgQ0NhbGxJbnQzMiBub2RlSW5kZXgsIENDYWxsSW50MzIgY2hpbGQxSW5kZXgsIENDYWxsSW50
MzIgY2hpbGQySW5kZXgsIENDYWxsSW50MzIgY2hlY2tlZEluZGV4LCBDQ2FsbEludDMyIGJvdW5k
cykpCiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBiaXR3aXNlX2Nhc3Q8Q29kZUJsb2Nr
Kj4oY29kZUJsb2NrQXNJbnRQdHIpOwotICAgIGRhdGFMb2dMbigiQm91bmRzIENoZWNrIEVpbWlu
YXRpb24gZXJyb3IgZm91bmQgQCBEQCIsIG5vZGVJbmRleCwgIjogQXNzZXJ0SW5Cb3VuZHMoaW5k
ZXggREAiLCBjaGlsZDFJbmRleCwgIjogIiwgY2hlY2tlZEluZGV4LCAiLCBib3VuZHMgREAiLCBj
aGlsZDJJbmRleCwgIiAiLCBib3VuZHMsICIpIGluICIsIGNvZGVCbG9jayk7CisgICAgZGF0YUxv
Z0xuKCJCb3VuZHMgQ2hlY2sgRWltaW5hdGlvbiBlcnJvciBmb3VuZCBAIERAIiwgaW50MzJfdChu
b2RlSW5kZXgpLCAiOiBBc3NlcnRJbkJvdW5kcyhpbmRleCBEQCIsIGludDMyX3QoY2hpbGQxSW5k
ZXgpLCAiOiAiLCBpbnQzMl90KGNoZWNrZWRJbmRleCksICIsIGJvdW5kcyBEQCIsIGludDMyX3Qo
Y2hpbGQySW5kZXgpLCAiICIsIGludDMyX3QoYm91bmRzKSwgIikgaW4gIiwgY29kZUJsb2NrKTsK
ICAgICBDUkFTSCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9u
cy5oCmluZGV4IDViYjhkMzBiN2IxMDFkNDA2MmI2ZjY2ZTkyYzBlM2EwZjhkM2ExZTQuLmMwMDgz
ZGJmMTg1YmJlNDI2NDI1YjA3ZTRjZGYxZDE3YTYyZjg3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5oCkBAIC00MiwxMiArNDIsMTIgQEAgSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6ZU9iamVjdEluT1NSLCBKU0NlbGwqLCAo
SlNHbG9iYWxPYmoKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3B1bGF0
ZU9iamVjdEluT1NSLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBFeGl0VGltZU9iamVjdE1hdGVy
aWFsaXphdGlvbiosIEVuY29kZWRKU1ZhbHVlKiwgRW5jb2RlZEpTVmFsdWUqKSk7CiAKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTExhenlTbG93UGF0aCwgdm9p
ZCosIChDYWxsRnJhbWUqLCB1bnNpZ25lZCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21waWxlRlRMTGF6eVNsb3dQYXRoLCB2b2lkKiwgKENhbGxGcmFtZSosIENDYWxs
VUludDMyKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3Ry
aW5nQW5kR2V0SW5kZXgsIHVuc2lnbmVkLCAoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBVbmxpbmtl
ZFN0cmluZ0p1bXBUYWJsZSosIEpTU3RyaW5nKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UeXBlT2ZPYmplY3RBc1R5cGVvZlR5cGUsIGludDMyX3QsIChKU0dsb2JhbE9i
amVjdCosIEpTQ2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dp
dGNoU3RyaW5nQW5kR2V0SW5kZXgsIENDYWxsVUludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiwgY29uc3QgVW5saW5rZWRTdHJpbmdKdW1wVGFibGUqLCBKU1N0cmluZyopKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0QXNUeXBlb2ZUeXBl
LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwog
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlcG9ydEJvdW5kc0NoZWNrRWxp
bWluYXRpb25FcnJvckFuZENyYXNoLCB2b2lkLCAoaW50cHRyX3QgY29kZUJsb2NrQXNJbnRQdHIs
IGludDMyX3QsIGludDMyX3QsIGludDMyX3QsIGludDMyX3QsIGludDMyX3QpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVy
cm9yQW5kQ3Jhc2gsIHZvaWQsIChDQ2FsbEludHB0ciBjb2RlQmxvY2tBc0ludFB0ciwgQ0NhbGxJ
bnQzMiwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMikpOwog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ND
YWxsSGVscGVycy5oCmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2Nm
NjQuLjg1NWVkNDBiNjU5MWY0Mzc0ZDEyZGMxYzM5NmUxNzA3MzE0MjFmNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVO
QUJMRShKSVQpCiAKICNpbmNsdWRlICJBc3NlbWJseUhlbHBlcnMuaCIKKyNpbmNsdWRlICJDQ2Fs
bFR5cGVzLmgiCiAjaW5jbHVkZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKICNp
bmNsdWRlICJTdGFja0FsaWdubWVudC5oIgpAQCAtNjA4LDIzICs2MDksMjMgQEAgcHJpdmF0ZToK
ICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBu
dW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1GUFJBcmdzLCB1
bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1NvdXJjZXMsIHVuc2lnbmVk
IGV4dHJhR1BSQXJncywgdW5zaWduZWQgbm9uQXJnR1BScywgdW5zaWduZWQgZXh0cmFQb2tlLCB0
eXBlbmFtZSBBcmcsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgQUxXQVlTX0lOTElORSBzdGQ6OmVu
YWJsZV9pZl90PAotICAgICAgICBzdGQ6OmlzX3NhbWU8Q1VSUkVOVF9BUkdVTUVOVF9UWVBFLCBB
cmc+Ojp2YWx1ZQotICAgICAgICAmJiBzdGQ6OmlzX2ludGVncmFsPENVUlJFTlRfQVJHVU1FTlRf
VFlQRT46OnZhbHVlCi0gICAgICAgICYmIChzaXplb2YoQ1VSUkVOVF9BUkdVTUVOVF9UWVBFKSA8
PSA0KT4KKyAgICBBTFdBWVNfSU5MSU5FIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19pbnRlZ3Jh
bF92PEFyZz4gJiYgc3RkOjppc19zYW1lX3Y8Q1VSUkVOVF9BUkdVTUVOVF9UWVBFLCBDQ2FsbElu
dGVnZXI8QXJnPj4+CiAgICAgc2V0dXBBcmd1bWVudHNJbXBsKEFyZ0NvbGxlY3Rpb248bnVtR1BS
QXJncywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBSU291cmNlcywgbnVtQ3Jvc3NT
b3VyY2VzLCBleHRyYUdQUkFyZ3MsIG5vbkFyZ0dQUnMsIGV4dHJhUG9rZT4gYXJnU291cmNlUmVn
cywgQXJnIGFyZywgQXJncy4uLiBhcmdzKQogICAgIHsKLSAgICAgICAgc2V0dXBBcmd1bWVudHNJ
bXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIFRydXN0ZWRJbW0zMihhcmcpLCBhcmdz
Li4uKTsKKyAgICAgICAgaWYgY29uc3RleHByIChzaXplb2YoQXJnKSA8PSA0KQorICAgICAgICAg
ICAgc2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIFRydXN0
ZWRJbW0zMihhcmcpLCBhcmdzLi4uKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0dXBB
cmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIFRydXN0ZWRJbW02NChh
cmcpLCBhcmdzLi4uKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25U
eXBlLCB1bnNpZ25lZCBudW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25l
ZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1Nv
dXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BSQXJncywgdW5zaWduZWQgbm9uQXJnR1BScywgdW5zaWdu
ZWQgZXh0cmFQb2tlLCB0eXBlbmFtZSBBcmcsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgQUxXQVlT
X0lOTElORSBzdGQ6OmVuYWJsZV9pZl90PAotICAgICAgICBzdGQ6OmlzX3NhbWU8Q1VSUkVOVF9B
UkdVTUVOVF9UWVBFLCBBcmc+Ojp2YWx1ZQotICAgICAgICAmJiBzdGQ6OmlzX2ludGVncmFsPENV
UlJFTlRfQVJHVU1FTlRfVFlQRT46OnZhbHVlCi0gICAgICAgICYmIChzaXplb2YoQ1VSUkVOVF9B
UkdVTUVOVF9UWVBFKSA9PSA4KT4KKyAgICBBTFdBWVNfSU5MSU5FIHN0ZDo6ZW5hYmxlX2lmX3Q8
c3RkOjppc19zYW1lX3Y8QXJnLCBDQ2FsbEludGVnZXI8dHlwZW5hbWUgQXJnOjpJbnRlZ2VyVHlw
ZT4+ICYmIHN0ZDo6aXNfc2FtZV92PENVUlJFTlRfQVJHVU1FTlRfVFlQRSwgQXJnPj4KICAgICBz
ZXR1cEFyZ3VtZW50c0ltcGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBudW1HUFJTb3VyY2Vz
LCBudW1GUFJBcmdzLCBudW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJhR1BSQXJn
cywgbm9uQXJnR1BScywgZXh0cmFQb2tlPiBhcmdTb3VyY2VSZWdzLCBBcmcgYXJnLCBBcmdzLi4u
IGFyZ3MpCiAgICAgewotICAgICAgICBzZXR1cEFyZ3VtZW50c0ltcGw8T3BlcmF0aW9uVHlwZT4o
YXJnU291cmNlUmVncywgVHJ1c3RlZEltbTY0KGFyZyksIGFyZ3MuLi4pOworICAgICAgICBpZiBj
b25zdGV4cHIgKHNpemVvZih0eXBlbmFtZSBBcmc6OkludGVnZXJUeXBlKSA8PSA0KQorICAgICAg
ICAgICAgc2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIFRy
dXN0ZWRJbW0zMih0eXBlbmFtZSBBcmc6OkludGVnZXJUeXBlKGFyZykpLCBhcmdzLi4uKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgc2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+
KGFyZ1NvdXJjZVJlZ3MsIFRydXN0ZWRJbW02NCh0eXBlbmFtZSBBcmc6OkludGVnZXJUeXBlKGFy
ZykpLCBhcmdzLi4uKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25U
eXBlLCB1bnNpZ25lZCBudW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25l
ZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1Nv
dXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BSQXJncywgdW5zaWduZWQgbm9uQXJnR1BScywgdW5zaWdu
ZWQgZXh0cmFQb2tlLCB0eXBlbmFtZSBBcmcsIHR5cGVuYW1lLi4uIEFyZ3M+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsVHlwZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQ0NhbGxUeXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNjc2ZTIxN2ZkZGMxNjQzOGJh
ODA0YWRhYTMwN2MyZWE3OGNlYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsVHlwZXMuaApAQCAtMCwwICsxLDcxIEBACisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlIDx3dGYvU3RkSW50RXh0cmFzLmg+CisKK25hbWVz
cGFjZSBKU0MgeworCisjaWYgQ1BVKFJJU0NWNjQpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3Ry
dWN0IFJJU0NWNjRDQ2FsbEludGVnZXIgeworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFQpIDw9
IHNpemVvZihDUFVSZWdpc3RlcikpOworICAgIHVzaW5nIEludGVnZXJUeXBlID0gVDsKKworICAg
IFJJU0NWNjRDQ2FsbEludGVnZXIoKSA9IGRlbGV0ZTsKKyAgICBSSVNDVjY0Q0NhbGxJbnRlZ2Vy
KFQgdmFsdWUpCisgICAgICAgIDogdmFsdWUodmFsdWUpCisgICAgeyB9CisKKyAgICBvcGVyYXRv
ciBUKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc2l6ZW9mKFQpID09IDQp
IHsKKyAgICAgICAgICAgIGFzbSB2b2xhdGlsZSAoCisgICAgICAgICAgICAgICAgInNleHQudyAl
W291dF92YWx1ZV0sICVbaW5fdmFsdWVdXG5cdCIKKyAgICAgICAgICAgICAgICA6IFtvdXRfdmFs
dWVdICI9ciIgKHZhbHVlKQorICAgICAgICAgICAgICAgIDogW2luX3ZhbHVlXSAiciIgKHZhbHVl
KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEVudW1UeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjpp
c19lbnVtX3Y8RW51bVR5cGU+Pj4KKyAgICBvcGVyYXRvciBFbnVtVHlwZSgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gRW51bVR5cGUoVCgqdGhpcykpOworICAgIH0KKworICAgIG11dGFi
bGUgVCB2YWx1ZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit1c2luZyBDQ2FsbEludGVn
ZXIgPSBSSVNDVjY0Q0NhbGxJbnRlZ2VyPFQ+OworI2Vsc2UKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
CitzdHJ1Y3QgQ0NhbGxJbnRlZ2VyIHsKKyAgICB1c2luZyBJbnRlZ2VyVHlwZSA9IFQ7CisKKyAg
ICBDQ2FsbEludGVnZXIoKSA9IGRlbGV0ZTsKKyAgICBDQ2FsbEludGVnZXIoVCB2YWx1ZSkKKyAg
ICAgICAgOiB2YWx1ZSh2YWx1ZSkKKyAgICB7IH0KKworICAgIG9wZXJhdG9yIFQoKSBjb25zdCB7
IHJldHVybiB2YWx1ZTsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW51bVR5cGUsIHR5cGVu
YW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX2VudW1fdjxFbnVtVHlwZT4+PgorICAgIG9w
ZXJhdG9yIEVudW1UeXBlKCkgY29uc3QgeyByZXR1cm4gRW51bVR5cGUodmFsdWUpOyB9CisKKyAg
ICBUIHZhbHVlOworfTsKKyNlbmRpZgorCit1c2luZyBDQ2FsbEludDMyID0gQ0NhbGxJbnRlZ2Vy
PGludDMyX3Q+OwordXNpbmcgQ0NhbGxVSW50MzIgPSBDQ2FsbEludGVnZXI8dWludDMyX3Q+Owor
dXNpbmcgQ0NhbGxJbnQ2NCA9IENDYWxsSW50ZWdlcjxpbnQ2NF90PjsKK3VzaW5nIENDYWxsVUlu
dDY0ID0gQ0NhbGxJbnRlZ2VyPHVpbnQ2NF90PjsKK3VzaW5nIENDYWxsSW50cHRyID0gQ0NhbGxJ
bnRlZ2VyPGludHB0cl90PjsKK3VzaW5nIENDYWxsVUludHB0ciA9IENDYWxsSW50ZWdlcjx1aW50
cHRyX3Q+OwordXNpbmcgQ0NhbGxTaXplID0gQ0NhbGxJbnRlZ2VyPHNpemVfdD47CisKK30gLy8g
bmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDI1MGI3NzlkNjE0MGYzOTVkN2M2MDJi
NGE2NGQwZmIwZWE0NTNiMzYuLjU0NzE4NjE1ZjkxNTNmMWIxY2YwNGJlYzZjY2IyYWIzZmI2MjA2
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAt
MjA3LDcgKzIwNyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJvd0l0
ZXJhdG9yUmVzdWx0SXNOb3RPYmplY3QsIHZvaWQsIChKU0dsb2JhCiAgICAgdGhyb3dUeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkl0ZXJhdG9yIHJlc3VsdCBpbnRlcmZhY2UgaXMgbm90
IGFuIG9iamVjdC4iX3MpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q2FsbEFyaXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsQXJpdHlDaGVjaywgQ0NhbGxJ
bnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjI0LDcgKzIyNCw3IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25DYWxsQXJpdHlDaGVjaywgaW50MzJfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2ssIGludDMyX3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CkBAIC0yNDEsNyArMjQxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnN0cnVjdEFyaXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1
cm4gbWlzc2luZ0FyZ0NvdW50OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVHJ5R2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVp
bnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25UcnlHZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUg
YmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNTgsNyArMjU4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGcKIH0KIAogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJ
ZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRHZW5lcmljLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjczLDcgKzI3Myw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG90LmdldFB1cmVSZXN1bHQoKSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkT3B0aW1p
emUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
VHJ5R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CkBAIC0yOTUsNyArMjk1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblRyeUdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNsb3QuZ2V0UHVyZVJlc3VsdCgpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxl
SWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERp
cmVjdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0
ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMzE0LDcgKzMxNCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRCeUlkRGlyZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZm91bmQgPyBzbG90LmdldFZhbHVl
KGdsb2JhbE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKSkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0
ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwpAQCAtMzMyLDcgKzMzMiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRCeUlkRGlyZWN0R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZm91bmQgPyBzbG90LmdldFZhbHVl
KGdsb2JhbE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKSkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXplLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RP
cHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUlu
dHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtMzU0LDcgKzM1NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeUlkRGlyZWN0T3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZm91bmQgPyBzbG90LmdldFZh
bHVlKGdsb2JhbE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKSkpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVu
Y29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsK
ICAgICAKQEAgLTM3NSw3ICszNzUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRC
eUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwog
ICAgIApAQCAtMzk0LDcgKzM5NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1Yklu
Zm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlm
aWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7
CiAgICAgCkBAIC00MTcsNyArNDE3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamUKICAgICB9
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRo
aXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpcywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCBD
Q2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVy
U2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC00MzYsNyArNDM2LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpcywgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1
ZS5nZXQoZ2xvYmFsT2JqZWN0LCBpZGVudCwgc2xvdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIENDYWxsVUludHB0ciBy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNh
bXBsZXJTY29wZShmYWxzZSk7CiAKQEAgLTQ1Myw3ICs0NTMsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUs
IChKU0dsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYmFzZVZhbHVlLmdldChnbG9iYWxP
YmplY3QsIGlkZW50LCBzbG90KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRK
U1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCB1aW50cHRyX3QgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJs
ZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3Bl
KGZhbHNlKTsKICAgICAKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bAogICAgIH0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJ
ZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRy
X3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSW5CeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJh
c2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNh
bXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKQEAgLTUwNSw3ICs1MDUsNyBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkR2VuZXJpYywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKGJhc2VPYmplY3QtPmdldFByb3BlcnR5U2xvdChnbG9iYWxPYmplY3QsIGlkZW50LCBz
bG90KSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkT3B0
aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3Qg
cmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSW5CeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1w
bGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC02OTcsNyArNjk3LDcgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVCcmFuZEdlbmVyaWMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbihhc09iamVjdChiYXNlVmFsdWUpLT5oYXNQcml2YXRlQnJhbmQoZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJyYW5kKSkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikp
CiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAg
IApAQCAtNzE2LDcgKzcxNiw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgTE9HX0lD
KChJQ0V2ZW50OjpPcGVyYXRpb25QdXRCeUlkU3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JO
dWxsKHZtKSwgaWRlbnQsIHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWlu
dHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJT
Y29wZShmYWxzZSk7CiAgICAgCkBAIC03MzUsNyArNzM1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmEKICAgICBMT0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QsIGJh
c2VWYWx1ZS5jbGFzc0luZm9Pck51bGwodm0pLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZh
bHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGly
ZWN0U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVy
U2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKQEAgLTc1NCw3ICs3
NTQsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIExPR19JQygoSUNFdmVudDo6T3Bl
cmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCh2bSks
IGlkZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRw
dHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3
Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1w
bGVyU2NvcGUoZmFsc2UpOwogICAgIApAQCAtNzczLDcgKzc3Myw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqCiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9u
U3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKHZtKSwgaWRlbnQsIHNsb3QuYmFzZSgp
ID09IGJhc2VWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlJZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRl
bnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmlj
dE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikp
CiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAg
IApAQCAtODA1LDcgKzgwNSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCoKICAgICAgICAgcmVw
YXRjaFB1dEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwg
aWRlbnRpZmllciwgc2xvdCwgKnN0dWJJbmZvLCBQdXRCeUtpbmQ6OkJ5SWQsIFB1dEtpbmQ6Ok5v
dERpcmVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlk
Tm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlm
aWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0
T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkK
IHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAg
CkBAIC04MzcsNyArODM3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWMKICAgICAgICAgcmVw
YXRjaFB1dEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwg
aWRlbnRpZmllciwgc2xvdCwgKnN0dWJJbmZvLCBQdXRCeUtpbmQ6OkJ5SWQsIFB1dEtpbmQ6Ok5v
dERpcmVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlk
RGlyZWN0U3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVu
dGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0
U3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlm
aWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7
CiAgICAgCkBAIC04NjgsNyArODY4LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWREaXJlY3RTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2IKICAgICAg
ICAgcmVwYXRjaFB1dEJ5KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlT2JqZWN0LCBzdHJ1
Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpCeUlkLCBQdXRL
aW5kOjpEaXJlY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJ
ZERpcmVjdE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2Nv
cGUoZmFsc2UpOwogICAgIApAQCAtOTM5LDcgKzkzOSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGlj
IHZvaWQgZGVmaW5lUHJpdmF0ZUZpZWxkKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjCiAgICAgY2FsbGJhY2sodm0sIGNvZGVCbG9jaywgb2xkU3RydWN0dXJlLCBwdXRTbG90LCBp
ZGVudCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGVm
aW5lUHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVG
aWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC05NTIsNyArOTUyLDcgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZv
aWQsIChKU0dsb2IKICAgICBkZWZpbmVQcml2YXRlRmllbGQodm0sIGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBiYXNlVmFsdWUsIGlkZW50aWZpZXIsIHZhbHVlLCBbXShWTSYsIENvZGVCbG9jayos
IFN0cnVjdHVyZSosIFB1dFByb3BlcnR5U2xvdCYsIGNvbnN0IElkZW50aWZpZXImKSB7IH0pOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZh
dGVGaWVsZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRl
bnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmlu
ZVByaXZhdGVGaWVsZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVy
U2NvcGUoZmFsc2UpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTk3NSw3
ICs5NzUsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmlu
ZVByaXZhdGVGaWVsZFN0cmljdE9wdGltaXplLCB2b2lkLAogICAgIH0pOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciBy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpA
QCAtOTg4LDcgKzk4OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPCiAgICAgc2V0UHJpdmF0
ZUZpZWxkKHZtLCBnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBpZGVudGlmaWVy
LCB2YWx1ZSwgW10oVk0mLCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBQdXRQcm9wZXJ0eVNsb3Qm
LCBjb25zdCBJZGVudGlmaWVyJikgeyB9KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2Ft
cGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uVmlydHVhbENhbGwsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKENhbGxGcmFtZSog
YwogICAgIHJldHVybiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbGVl
RnJhbWUsIGNhbGxMaW5rSW5mbywgY2FsbGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVkKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVMZXNzLCBzaXplX3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlTGVzcywgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNTYyLDcg
KzE1NjIsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3Ms
IHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBqc0xlc3M8dHJ1
ZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AyKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Db21wYXJlTGVzc0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzc0VxLCBDQ2FsbFNpemU6
OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1NzEsNyArMTU3MSw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzc0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsCiAgICAgcmV0dXJuIGpzTGVzc0VxPHRydWU+KGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIsIHNpemVfdCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbXBhcmVHcmVhdGVyLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1
ODAsNyArMTU4MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
R3JlYXRlciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIGpzTGVz
czxmYWxzZT4oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMiksIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT3AxKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlR3JlYXRlckVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlckVx
LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE1ODksNyArMTU4OSw3IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlckVxLCBzaXplX3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIGpzTGVzc0VxPGZhbHNlPihnbG9iYWxPYmpl
Y3QsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRP
cDEpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcSwg
c2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29tcGFyZUVxLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTE2MDEsNyArMTYwMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21w
YXJlRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAjaWYgVVNFKEpTVkFM
VUU2NCkKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaW5nRXEs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBs
ZWZ0LCBKU0NlbGwqIHJpZ2h0KSkKICNlbHNlCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29tcGFyZVN0cmluZ0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0NlbGwqIGxlZnQsIEpTQ2VsbCogcmlnaHQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbGVmdCwgSlNDZWxsKiByaWdodCkp
CiAjZW5kaWYKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xNjE2LDcg
KzE2MTYsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlu
Z0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogI2VuZGlmCiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEsIHNpemVfdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVTdHJpY3RFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xNjI5LDcg
KzE2MjksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlj
dEVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogfQogCiAjaWYgVVNFKEJJR0lOVDMy
KQotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcUhlYXBCaWdJbnRU
b0ludDMyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGhl
YXBCaWdJbnQsIGludDMyX3Qgc21hbGxJbnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNvbXBhcmVFcUhlYXBCaWdJbnRUb0ludDMyLCBDQ2FsbFNpemU6OkludGVnZXJUeXBl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBoZWFwQmlnSW50LCBDQ2Fs
bEludDMyIHNtYWxsSW50KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTY0
MSw3ICsxNjQxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVF
cUhlYXBCaWdJbnRUb0ludDMyLCBzaXplX3QsIChKU0dsb2JhbE8KIH0KICNlbmRpZgogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBBcnJheUFsbG9jYXRpb25Q
cm9maWxlKiBwcm9maWxlLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMsIGludCBzaXplKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhQcm9maWxlLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEFycmF5QWxsb2NhdGlvblBy
b2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgQ0NhbGxJbnQzMiBzaXplKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMTgxNCw3ICsxODE0LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhbmRsZVRyYXBzLCBVbnVzZWRQdHIsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgaW50
MzJfdCBkZWJ1Z0hvb2tUeXBlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
ZWJ1Zywgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIENDYWxsSW50MzIgZGVidWdIb29rVHlwZSkpCiB7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0xODMwLDcgKzE4MzAsNyBAQCBzdGF0aWMgdm9pZCB1
cGRhdGVBbGxQcmVkaWN0aW9uc0FuZE9wdGltaXplQWZ0ZXJXYXJtVXAoQ29kZUJsb2NrKiBjb2Rl
QmxvY2spCiAgICAgY29kZUJsb2NrLT5vcHRpbWl6ZUFmdGVyV2FybVVwKCk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwgU2xvd1BhdGhSZXR1cm5UeXBl
LCAoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYnl0ZWNvZGVJbmRleEJpdHMpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXplLCBTbG93UGF0aFJldHVyblR5cGUsIChW
TSogdm1Qb2ludGVyLCBDQ2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpCiB7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CkBAIC0yMDU4LDcgKzIwNTgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uT3B0aW1pemUsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKFZNKiB2bVBvaW50ZXIs
CiAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChudWxscHRyLCBudWxscHRyKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaCwgY2hhciosIChW
TSogdm1Qb2ludGVyLCB1aW50MzJfdCBieXRlY29kZUluZGV4Qml0cykpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoLCBjaGFyKiwgKFZNKiB2bVBv
aW50ZXIsIENDYWxsVUludDMyIGJ5dGVjb2RlSW5kZXhCaXRzKSkKIHsKICAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKQEAgLTIwODIsNyArMjA4Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25UcnlPU1JFbnRlckF0Q2F0Y2gsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgdWluCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
cnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwg
dWludDMyX3QgYnl0ZWNvZGVJbmRleEJpdHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFuZFZhbHVlUHJvZmlsZSwgY2hhciosIChWTSogdm1Q
b2ludGVyLCBDQ2FsbFVJbnQzMiBieXRlY29kZUluZGV4Qml0cykpCiB7CiAgICAgVk0mIHZtID0g
KnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CkBAIC0yMTM1LDcgKzIxMzUsNyBAQCBzdGF0aWMgdm9pZCBwdXRBY2Nlc3NvckJ5VmFs
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBKU1ZhbAogICAg
ICAgICBiYXNlLT5wdXRTZXR0ZXIoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eUtleSwgYWNjZXNzb3Is
IGF0dHJpYnV0ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRH
ZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBv
YmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKiBn
ZXR0ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5SWQs
IHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5p
cXVlZFN0cmluZ0ltcGwqIHVpZCwgQ0NhbGxJbnQzMiBvcHRpb25zLCBKU0NlbGwqIGdldHRlcikp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTIxNDgsNyArMjE0OCw3IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgYmFzZU9iai0+cHV0R2V0dGVyKGdsb2JhbE9iamVj
dCwgdWlkLCBnZXR0ZXIsIG9wdGlvbnMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IG9wdGlv
bnMsIEpTQ2VsbCogc2V0dGVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRTZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIENDYWxsSW50MzIgb3B0aW9ucywgSlND
ZWxsKiBzZXR0ZXIpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTYxLDcg
KzIxNjEsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlJ
ZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIGJhc2VPYmotPnB1dFNldHRl
cihnbG9iYWxPYmplY3QsIHVpZCwgc2V0dGVyLCBvcHRpb25zKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBDQ2FsbEludDMyIGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTcwLDcgKzIxNzAsNyBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsTwogICAgIHB1dEFjY2Vzc29yQnlWYWwoZ2xvYmFsT2JqZWN0LCBhc09iamVjdChi
YXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1dGUsIGFzT2Jq
ZWN0KGdldHRlciksIEFjY2Vzc29yVHlwZTo6R2V0dGVyKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2Ny
aXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2Ny
aXB0LCBDQ2FsbEludDMyIGF0dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yMTgwLDcgKzIxODAsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsTwogfQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBh
dHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFNldHRlclZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgQ0NhbGxJbnQzMiBhdHRyaWJ1
dGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFNldHRlclZhbHVlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMjE5
Nyw3ICsyMTk3LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRl
clNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIH0KIAogI2Vsc2UKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0lt
cGwqIHVpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVyQ2VsbCwgSlNDZWxsKiBz
ZXR0ZXJDZWxsKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJT
ZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVj
dCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGUsIEpTQ2VsbCog
Z2V0dGVyQ2VsbCwgSlNDZWxsKiBzZXR0ZXJDZWxsKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpAQCAtMjIxNCw3ICsyMjE0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIH0K
ICNlbmRpZgogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFuY2VPZkN1
c3RvbSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRIYXNJbnN0YW5jZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5z
dGFuY2VPZkN1c3RvbSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0
cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNDcyLDcgKzI0NzIsNyBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2V0UHJpdmF0ZU5hbWUoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIGJhc2VWYWx1ZSwgZmllbGROYW1lVmFsdWUpKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRl
TmFtZUJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBDQ2FsbFVJ
bnRwdHIgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUg
c3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCkBAIC0yNDkzLDcgKzI0OTMsNyBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZE9w
dGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90
IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldFByaXZhdGVOYW1lQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewog
ICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIApAQCAtMjUy
NCw3ICsyNTI0LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZh
dGVOYW1lQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEoKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShnZXRQcml2YXRlTmFtZShnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBmaWVsZE5hbWUpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRHZW5lcmljLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxs
VUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKIHsKICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKQEAgLTI1NTgsNyArMjU1OCw3IEBAIHN0YXRp
YyBib29sIGRlbGV0ZUJ5SWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBE
ZWxldGVQcm9wZXJ0eVNsb3QmCiAgICAgcmV0dXJuIGNvdWxkRGVsZXRlOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJZE9wdGltaXplLCBzaXplX3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRp
ZmllciwgRUNNQU1vZGUgZWNtYU1vZGUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0ciByYXdDYWNoZWFibGVJZGVudGlmaWVy
LCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAg
LTI1ODYsNyArMjU4Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxl
dGVCeUlkT3B0aW1pemUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRH
ZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllciwgRUNNQU1vZGUgZWNtYU1vZGUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmljLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyIHJhd0NhY2hlYWJsZUlkZW50aWZpZXIs
IEVDTUFNb2RlIGVjbWFNb2RlKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAt
MjYyMSw3ICsyNjIxLDcgQEAgc3RhdGljIGJvb2wgZGVsZXRlQnlWYWwoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVk0mIHZtLCBEZWxldGVQcm9wZXJ0eVNsb3QKICAgICByZXR1cm4gY291
bGREZWxldGU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVC
eVZhbE9wdGltaXplLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFQ01BTW9kZSBlY21hTW9kZSkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlWYWxPcHRpbWl6ZSwgQ0NhbGxTaXpl
OjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0
dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRTdWJzY3JpcHQsIEVDTUFNb2RlIGVjbWFNb2RlKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwpAQCAtMjY1MSw3ICsyNjUxLDcgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5VmFsT3B0aW1pemUsIHNpemVfdCwgKEpTR2xvYmFsT2Jq
ZWN0KgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EZWxldGVCeVZhbEdlbmVyaWMsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVDTUFNb2RlIGVjbWFNb2RlKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbEdlbmVyaWMsIENDYWxs
U2l6ZTo6SW50ZWdlclR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkU3Vic2NyaXB0LCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKQEAgLTI3MTcsNyArMjcxNyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25JbnN0YW5jZU9mT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxP
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0KSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJndW1l
bnRzLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUsIGludDMyX3QgbnVtVXNlZFN0YWNrU2xvdHMsIGludDMyX3QpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvckZvcndhcmRBcmd1bWVudHMsIENDYWxsSW50
MzI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUsIENDYWxsSW50MzIgbnVtVXNlZFN0YWNrU2xvdHMsIENDYWxsSW50MzIpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0yNzI1LDcgKzI3MjUsNyBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cywgaW50
MzJfdCwgKEpTR2xvYgogICAgIHJldHVybiBzaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCB2bSwgbnVtVXNlZFN0YWNrU2xvdHMpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgaW50MzJf
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRB
cmd1bWVudHMsIGludDMyX3QgbnVtVXNlZFN0YWNrU2xvdHMsIGludDMyX3QgZmlyc3RWYXJBcmdP
ZmZzZXQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvclZh
cmFyZ3MsIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgQ0NhbGxJbnQzMiBudW1Vc2Vk
U3RhY2tTbG90cywgQ0NhbGxJbnQzMiBmaXJzdFZhckFyZ09mZnNldCkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3MzQsNyArMjczNCw3IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCBpbnQzMl90LCAoSlNHbG9iYWxP
YmplY3QqCiAgICAgcmV0dXJuIHNpemVGcmFtZUZvclZhcmFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIHZtLCBhcmd1bWVudHMsIG51bVVzZWRTdGFja1Nsb3RzLCBmaXJzdFZhckFyZ09mZnNl
dCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cEZvcndhcmRB
cmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJf
dCBsZW5ndGgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwRm9yd2Fy
ZEFyZ3VtZW50c0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbEludDMyLCBD
Q2FsbEludDMyIGxlbmd0aCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3
NDMsNyArMjc0Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cEZv
cndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvCiAgICAgcmV0dXJuIG5ld0Nh
bGxGcmFtZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwVmFy
YXJnc0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBuZXdDYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIGlu
dDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBDQ2FsbEludDMyIGZpcnN0VmFyQXJnT2Zmc2V0LCBD
Q2FsbEludDMyIGxlbmd0aCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3
NTMsNyArMjc1Myw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZh
cmFyZ3NGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIG5ld0Nh
bGxGcmFtZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaENo
YXJXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3Qg
bWluKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVu
a25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRLZXksIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBDQ2FsbEludDMyIG1p
bikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTI3ODAsNyArMjc4MCw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25vd25L
ZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0
Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEtleSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QgbWluKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUs
IGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgQ0NhbGxT
aXplIHRhYmxlSW5kZXgsIENDYWxsSW50MzIgbWluKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2lu
dGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
QEAgLTI4MDEsNyArMjgwMSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
d2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qIHZtUG9pCiAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwg
c2l6ZV90IHRhYmxlSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3
aXRjaFN0cmluZ1dpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5LCBDQ2FsbFNpemUgdGFibGVJbmRl
eCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTMwMDEsNyArMzAwMSw3IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9I
YXZlUHJvcGVydHlTdG9yYWdlV2l0aEluCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWFs
bG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50
ZXIsIEpTT2JqZWN0KiBvYmplY3QsIHNpemVfdCBuZXdTaXplKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdl
LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QsIENDYWxsU2l6ZSBuZXdT
aXplKSkKIHsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmgKaW5kZXggZDVlOWY1YzcwNWE1ODkzOTA3MTFiYWY3MzcwYjAwNGIyNjFm
ZGI4NC4uZTNiYWIyOTBhZjJjZjQ4MjhlZDgyZTI1ZmQyNjdjY2E2NjBiNjAwMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAog
I2lmIEVOQUJMRShKSVQpCiAKKyNpbmNsdWRlICJDQ2FsbFR5cGVzLmgiCiAjaW5jbHVkZSAiSklU
TWF0aElDRm9yd2FyZHMuaCIKICNpbmNsdWRlICJKSVRPcGVyYXRpb25WYWxpZGF0aW9uLmgiCiAj
aW5jbHVkZSAiUHJpdmF0ZUZpZWxkUHV0S2luZC5oIgpAQCAtMTI0LDI5ICsxMjUsMjcgQEAgdXNp
bmcgSl9KSVRPcGVyYXRpb25fR1BQID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElPTl9BVFRS
SUJVVEVTICopKEpTR2xvYmFsT2IKIHVzaW5nIEpfSklUT3BlcmF0aW9uX0dQUFAgPSBFbmNvZGVk
SlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCB2b2lk
Kiwgdm9pZCosIHZvaWQqKTsKIHVzaW5nIEpfSklUT3BlcmF0aW9uX0dKSiA9IEVuY29kZWRKU1Zh
bHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB1c2luZyBKX0pJVE9wZXJhdGlvbl9HSkpNaWMgPSBF
bmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHZvaWQqKTsKLXVzaW5nIFpfSklUT3Bl
cmF0aW9uX0dKWlogPSBpbnQzMl90KEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKLXVzaW5nIEZfSklU
T3BlcmF0aW9uX0dGSlpaID0gQ2FsbEZyYW1lKihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKiko
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50
MzJfdCk7CiB1c2luZyBTcHJ0X0pJVE9wZXJhdGlvbl9FR0NsaSA9IFNsb3dQYXRoUmV0dXJuVHlw
ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoQ2FsbEZyYW1lKiwgSlNHbG9iYWxPYmplY3Qq
LCBDYWxsTGlua0luZm8qKTsKIHVzaW5nIFZfSklUT3BlcmF0aW9uX0NiID0gdm9pZChKSVRfT1BF
UkFUSU9OX0FUVFJJQlVURVMgKikoQ29kZUJsb2NrKik7Ci11c2luZyBaX0pJVE9wZXJhdGlvbl9H
ID0gaW50MzJfdCAoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0Kik7
Ci11c2luZyBQX0pJVE9wZXJhdGlvbl9WbVN0WkIgPSBjaGFyKihKSVRfT1BFUkFUSU9OX0FUVFJJ
QlVURVMgKikoVk0qLCBTdHJ1Y3R1cmUqLCBpbnQzMl90LCBCdXR0ZXJmbHkqKTsKLXVzaW5nIFBf
SklUT3BlcmF0aW9uX0dTdFpCID0gY2hhciooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5Kik7Cit1c2luZyBa
X0pJVE9wZXJhdGlvbl9HID0gQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUoSklUX09QRVJBVElPTl9B
VFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0Kik7Cit1c2luZyBQX0pJVE9wZXJhdGlvbl9WbVN0
WkIgPSBjaGFyKihKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoVk0qLCBTdHJ1Y3R1cmUqLCBD
Q2FsbEludDMyLCBCdXR0ZXJmbHkqKTsKK3VzaW5nIFBfSklUT3BlcmF0aW9uX0dTdFpCID0gY2hh
ciooSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
KiwgQ0NhbGxJbnQzMiwgQnV0dGVyZmx5Kik7CiB1c2luZyBKX0pJVE9wZXJhdGlvbl9HSiA9IEVu
Y29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlKTsKIHVzaW5nIEpfSklUT3BlcmF0aW9uX0dKSSA9IEVuY29kZWRKU1Zh
bHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogdXNpbmcgSl9KSVRPcGVyYXRpb25fR0pJUCA9
IEVuY29kZWRKU1ZhbHVlKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCosIHZvaWQqKTsKLXVzaW5nIFZf
SklUT3BlcmF0aW9uX0dTc2lKSkMgPSB2b2lkKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCB1aW50cHRyX3QpOwotdXNpbmcgQ19KSVRPcGVyYXRpb25fVFQgPSB1aW50cHRy
X3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKik7
Ci11c2luZyBDX0pJVE9wZXJhdGlvbl9CX0dKc3NKc3MgPSB1aW50cHRyX3QoSklUX09QRVJBVElP
Tl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqLCBKU1N0cmluZyopOwot
dXNpbmcgU19KSVRPcGVyYXRpb25fR0MgPSBzaXplX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVT
ICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKik7Ci11c2luZyBTX0pJVE9wZXJhdGlvbl9HQ1og
PSBzaXplX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlND
ZWxsKiwgaW50MzJfdCk7Ci11c2luZyBTX0pJVE9wZXJhdGlvbl9HSkogPSBzaXplX3QoSklUX09Q
RVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlKTsKK3VzaW5nIFZfSklUT3BlcmF0aW9uX0dTc2lKSkMgPSB2b2lkKEpJVF9P
UEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpOwordXNpbmcg
Q19KSVRPcGVyYXRpb25fVFQgPSBDQ2FsbFVJbnRwdHI6OkludGVnZXJUeXBlKEpJVF9PUEVSQVRJ
T05fQVRUUklCVVRFUyAqKShTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopOwordXNpbmcgQ19KSVRP
cGVyYXRpb25fQl9HSnNzSnNzID0gQ0NhbGxVSW50cHRyOjpJbnRlZ2VyVHlwZShKSVRfT1BFUkFU
SU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7
Cit1c2luZyBTX0pJVE9wZXJhdGlvbl9HQyA9IENDYWxsU2l6ZTo6SW50ZWdlclR5cGUoSklUX09Q
RVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKik7Cit1c2luZyBT
X0pJVE9wZXJhdGlvbl9HQ1ogPSBDQ2FsbFNpemU6OkludGVnZXJUeXBlKEpJVF9PUEVSQVRJT05f
QVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIENDYWxsSW50MzIpOwordXNp
bmcgU19KSVRPcGVyYXRpb25fR0pKID0gQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZShKSVRfT1BFUkFU
SU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpOwogdXNpbmcgVl9KSVRPcGVyYXRpb25fR0pKSiA9IHZvaWQoSklUX09QRVJBVElP
Tl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB1c2luZyBKX0pJVE9wZXJhdGlvbl9HU3NpSkogPSBF
bmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB1
c2luZyBKX0pJVE9wZXJhdGlvbl9HU3NpSkpJID0gRW5jb2RlZEpTVmFsdWUoSklUX09QRVJBVElP
Tl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiB1c2luZyBW
X0pJVE9wZXJhdGlvbl9HQ0NKID0gdm9pZChKSVRfT1BFUkFUSU9OX0FUVFJJQlVURVMgKikoSlNH
bG9iYWxPYmplY3QqLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSk7CiB1c2luZyBK
X0pJVE9wZXJhdGlvbl9HU3NpSkkgPSBFbmNvZGVkSlNWYWx1ZShKSVRfT1BFUkFUSU9OX0FUVFJJ
QlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwotdXNpbmcgWl9KSVRPcGVyYXRpb25fR0paWiA9IGlu
dDMyX3QoSklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIGludDMyX3QsIGludDMyX3QpOwotdXNpbmcgRl9KSVRPcGVyYXRpb25fR0ZKWlog
PSBDYWxsRnJhbWUqKEpJVF9PUEVSQVRJT05fQVRUUklCVVRFUyAqKShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKK3VzaW5nIFpf
SklUT3BlcmF0aW9uX0dKWlogPSBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZShKSVRfT1BFUkFUSU9O
X0FUVFJJQlVURVMgKikoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQz
MiwgQ0NhbGxJbnQzMik7Cit1c2luZyBGX0pJVE9wZXJhdGlvbl9HRkpaWiA9IENhbGxGcmFtZSoo
SklUX09QRVJBVElPTl9BVFRSSUJVVEVTICopKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwg
RW5jb2RlZEpTVmFsdWUsIENDYWxsSW50MzIsIENDYWxsSW50MzIpOwogCiAvLyBUaGlzIG1ldGhv
ZCBpcyB1c2VkIHRvIGxvb2t1cCBhbiBleGNlcHRpb24gaGFuZGVyLCBrZXllZCBieSBmYXVsdExv
Y2F0aW9uLCB3aGljaCBpcwogLy8gdGhlIHJldHVybiBsb2NhdGlvbiBmcm9tIG9uZSBvZiB0aGUg
Y2FsbHMgb3V0IHRvIG9uZSBvZiB0aGUgaGVscGVyIG9wZXJhdGlvbnMgYWJvdmUuCkBAIC0xNjEs
MjQgKzE2MCwyNCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdyYXBw
ZWRWYWx1ZUZvclRhcmdldCwgRW5jb2RlZEpTVmFsdWUsIChKUwogSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UaHJvd1JlbW90ZUZ1bmN0aW9uRXhjZXB0aW9uLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTUmVtb3RlRnVuY3Rpb24qKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IsIHZvaWQsIChDb2RlQmxvY2sqKSk7Ci1K
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNhbGxBcml0eUNoZWNrLCBpbnQzMl90
LCAoSlNHbG9iYWxPYmplY3QqKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnN0cnVjdEFyaXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCopKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2ssIENDYWxsSW50MzI6
OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2ssIENDYWxsSW50MzI6OkludGVnZXJUeXBl
LCAoSlNHbG9iYWxPYmplY3QqKSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVHJ5R2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwg
dWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWQs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwotSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXMsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6
ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdCwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRw
dHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0
R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJ
ZERpcmVjdE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRw
dHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZEdlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0Nh
bGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5
SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRHZW5lcmljLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0
cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEND
YWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlk
V2l0aFRoaXNHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBDQ2FsbFVJbnRwdHIpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVyaWMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxV
SW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJl
Y3RPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOwogCi1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCB1aW50cHRy
X3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkT3B0aW1pemUs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlLCB1aW50cHRyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSW5CeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUs
IENDYWxsVUludHB0cikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5
VmFsR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0
dWJJbmZvKiwgQXJyYXlQcm9maWxlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlWYWxPcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgQXJyYXlQ
cm9maWxlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVOYW1lR2VuZXJpYywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKSk7CkBAIC0xODYsMTggKzE4NSwxOCBAQCBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVOYW1lT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQcml2YXRlQnJh
bmRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5kT3B0aW1pemUsIEVuY29kZWRKU1Zh
bHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSkpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5SWRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRE
aXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
dWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRE
aXJlY3ROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1Yklu
Zm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVs
ZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdE9wdGltaXpl
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxsVUludHB0
cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3Ry
aWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
Q0NhbGxVSW50cHRyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBDQ2FsbFVJbnRwdHIpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdE9w
dGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIENDYWxs
VUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0
UHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkU2V0UHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgQ0NhbGxVSW50cHRyKSk7CiAKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0UHJpdmF0ZUJyYW5kT3B0aW1pemUsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNoZWNrUHJp
dmF0ZUJyYW5kT3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CkBAIC0yMjIsMTkgKzIyMSwx
OSBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxpbmtDYWxsLCBTbG93UGF0
aFJldHVyblR5cGUsIChDYWxsRnJhbWUqLCBKUwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25MaW5rUG9seW1vcnBoaWNDYWxsLCBTbG93UGF0aFJldHVyblR5cGUsIChDYWxsRnJh
bWUqLCBKU0dsb2JhbE9iamVjdCosIENhbGxMaW5rSW5mbyopKTsKIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVmlydHVhbENhbGwsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKENhbGxG
cmFtZSosIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbExpbmtJbmZvKikpOwogCi1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVMZXNzLCBzaXplX3QsIChKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db21wYXJlTGVzc0VxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db21wYXJlR3JlYXRlciwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGFyZUVxLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlU3RyaWN0RXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbXBhcmVMZXNzLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ29tcGFyZUxlc3NFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyLCBDQ2FsbFNpemU6Oklu
dGVnZXJUeXBlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJF
cSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbXBhcmVFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiAjaWYgVVNFKEpT
VkFMVUU2NCkKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZVN0cmlu
Z0VxLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBsZWZ0LCBKU0Nl
bGwqIHJpZ2h0KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVF
cUhlYXBCaWdJbnRUb0ludDMyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCogaGVh
cEJpZ0ludCwgaW50MzJfdCBzbWFsbEludCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlw
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBoZWFwQmlnSW50LCBDQ2FsbEludDMyIHNtYWxs
SW50KSk7CiAjZWxzZQotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJl
U3RyaW5nRXEsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBsZWZ0LCBKU0NlbGwq
IHJpZ2h0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJp
bmdFcSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiBs
ZWZ0LCBKU0NlbGwqIHJpZ2h0KSk7CiAjZW5kaWYKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCosIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMsIGlu
dDMyX3Qgc2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJh
eVdpdGhQcm9maWxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlBbGxv
Y2F0aW9uUHJvZmlsZSosIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgQ0NhbGxJbnQzMiBzaXplKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemVBbmRQ
cm9maWxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlBbGxvY2F0aW9u
UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVlIHNpemUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3RnVuY3Rpb24sIEVuY29kZWRKU1ZhbHVlLCAoVk0qLCBKU1Njb3BlKiwg
SlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGdW5jdGlv
bldpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQsIEVuY29kZWRKU1ZhbHVlLCAo
Vk0qLCBKU1Njb3BlKiwgSlNDZWxsKikpOwpAQCAtMjUzLDUzICsyNTIsNTMgQEAgSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBc3luY0dlbmVyYXRvciwgSlNDZWxsKiwgKFZN
KiwgU3RydWN0dXJlKikKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmVn
ZXhwLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhbmRsZVRyYXBzLCBVbnVzZWRQdHIsIChKU0dsb2JhbE9i
amVjdCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3csIHZvaWQs
IChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qLCBpbnQzMl90KSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qLCBDQ2FsbEludDMyKSk7
CiAjaWYgRU5BQkxFKERGR19KSVQpCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk9wdGltaXplLCBTbG93UGF0aFJldHVyblR5cGUsIChWTSosIHVpbnQzMl90KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaCwgY2hhciosIChW
TSosIHVpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9T
UkVudGVyQXRDYXRjaEFuZFZhbHVlUHJvZmlsZSwgY2hhciosIChWTSosIHVpbnQzMl90KSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXplLCBTbG93UGF0aFJldHVy
blR5cGUsIChWTSosIENDYWxsVUludDMyKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaCwgY2hhciosIChWTSosIENDYWxsVUludDMyKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFuZFZh
bHVlUHJvZmlsZSwgY2hhciosIChWTSosIENDYWxsVUludDMyKSk7CiAjZW5kaWYKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IG9wdGlvbnMsIEpT
Q2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlJ
ZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBp
bnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0R2V0dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikpOwotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwq
KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgQ0NhbGxJ
bnQzMiBvcHRpb25zLCBKU0NlbGwqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dFNldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIFVuaXF1
ZWRTdHJpbmdJbXBsKiwgQ0NhbGxJbnQzMiBvcHRpb25zLCBKU0NlbGwqKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgQ0NhbGxJbnQzMiBhdHRyaWJ1dGUsIEpT
Q2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlW
YWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBDQ2Fs
bEludDMyIGF0dHJpYnV0ZSwgSlNDZWxsKikpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IGF0dHJpYnV0
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0Kiwg
SlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBDQ2FsbEludDMyIGF0dHJpYnV0ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSk7CiAjZWxzZQotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpT
Q2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpT
Q2VsbCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0
dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCos
IENDYWxsSW50MzIgYXR0cmlidXRlLCBKU0NlbGwqLCBKU0NlbGwqKSk7CiAjZW5kaWYKIAogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBBcnJheVByb2Zp
bGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbEdl
bmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEFycmF5UHJvZmlsZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkT3B0aW1pemUsIHNpemVf
dCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBi
YXNlLCB1aW50cHRyX3QsIEVDTUFNb2RlKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90LCBFQ01BTW9kZSkp
OwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbE9wdGltaXpl
LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGFyZ2V0LCBFQ01BTW9kZSkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeVZhbEdlbmVyaWMsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0YXJnZXQsIEVDTUFNb2RlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwg
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBDQ2FsbFVJbnRwdHIsIEVDTUFNb2RlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmljLCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIENDYWxs
VUludHB0ciwgRUNNQU1vZGUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVsZXRlQnlWYWxPcHRpbWl6ZSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0YXJnZXQsIEVDTUFNb2RlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlbGV0ZUJ5VmFsR2VuZXJpYywgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVk
SlNWYWx1ZSB0YXJnZXQsIEVDTUFNb2RlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1c2hXaXRoU2NvcGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCog
Y3VycmVudFNjb3BlQ2VsbCwgRW5jb2RlZEpTVmFsdWUgb2JqZWN0KSk7CiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1c2hXaXRoU2NvcGVPYmplY3QsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGN1cnJlbnRTY29wZUNlbGwsIEpTT2Jq
ZWN0KiBvYmplY3QpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFu
Y2VPZkdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0YW5jZU9mT3B0aW1pemUsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29k
ZWRKU1ZhbHVlIHZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykpOwotSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzLCBpbnQzMl90
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3QgbnVt
VXNlZFN0YWNrU2xvdHMsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgaW50MzJfdCwgKEpT
R2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRT
dGFja1Nsb3RzLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0KSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lLCBDYWxsRnJhbWUq
LCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwg
aW50MzJfdCBsZW5ndGgpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0
dXBWYXJhcmdzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSos
IEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgaW50
MzJfdCBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZy
YW1lRm9yRm9yd2FyZEFyZ3VtZW50cywgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChKU0dsb2Jh
bE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgQ0NhbGxJbnQzMiBudW1Vc2VkU3Rh
Y2tTbG90cywgQ0NhbGxJbnQzMiBmaXJzdFZhckFyZ09mZnNldCkpOworSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzLCBDQ2FsbEludDMyOjpJbnRl
Z2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBDQ2Fs
bEludDMyIG51bVVzZWRTdGFja1Nsb3RzLCBDQ2FsbEludDMyIGZpcnN0VmFyQXJnT2Zmc2V0KSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50
c0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBFbmNvZGVk
SlNWYWx1ZSwgQ0NhbGxJbnQzMiwgQ0NhbGxJbnQzMiBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUsIENhbGxGcmFtZSosIChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50cywgQ0NhbGxJ
bnQzMiBmaXJzdFZhckFyZ09mZnNldCwgQ0NhbGxJbnQzMiBsZW5ndGgpKTsKIAogSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRGaWVsZE5hbWUpKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVPcHRpbWl6ZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRGaWVsZE5hbWUpKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSwgdWludHB0cl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdl
dFByaXZhdGVOYW1lQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZEdlbmVyaWMs
IEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgdWludHB0
cl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1l
QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZv
KiwgRW5jb2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIEND
YWxsVUludHB0cikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2
YXRlTmFtZUJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIENDYWxsVUludHB0cikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblN3aXRjaENoYXJXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBrZXksIHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1p
bikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5r
bm93bktleVR5cGUsIGNoYXIqLCAoVk0qLCBFbmNvZGVkSlNWYWx1ZSBrZXksIHNpemVfdCB0YWJs
ZUluZGV4LCBpbnQzMl90IG1pbikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSBrZXksIHNpemVfdCB0YWJsZUluZGV4KSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaENoYXJXaXRoVW5rbm93bktleVR5cGUsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBrZXksIENDYWxsU2l6ZSB0YWJsZUlu
ZGV4LCBDQ2FsbEludDMyIG1pbikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qLCBFbmNvZGVkSlNWYWx1
ZSBrZXksIENDYWxsU2l6ZSB0YWJsZUluZGV4LCBDQ2FsbEludDMyIG1pbikpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUs
IGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSBrZXksIENDYWxsU2l6ZSB0
YWJsZUluZGV4KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29sdmVT
Y29wZUZvckJhc2VsaW5lLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgY29uc3Qg
SW5zdHJ1Y3Rpb24qIGJ5dGVjb2RlUEMpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0RnJvbVNjb3BlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgY29u
c3QgSW5zdHJ1Y3Rpb24qIGJ5dGVjb2RlUEMpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0VG9TY29wZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgSW5zdHJ1
Y3Rpb24qIGJ5dGVjb2RlUEMpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25SZWFsbG9jYXRlQnV0dGVyZmx5VG9IYXZlUHJvcGVydHlTdG9yYWdlV2l0aEluaXRpYWxDYXBh
Y2l0eSwgY2hhciosIChWTSosIEpTT2JqZWN0KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlLCBjaGFy
KiwgKFZNKiwgSlNPYmplY3QqLCBzaXplX3QgbmV3U2l6ZSkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdl
LCBjaGFyKiwgKFZNKiwgSlNPYmplY3QqLCBDQ2FsbFNpemUgbmV3U2l6ZSkpOwogCiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAo
Vk0qLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9TUldy
aXRlQmFycmllciwgdm9pZCwgKFZNKiwgSlNDZWxsKikpOwpAQCAtMzA4LDcgKzMwNyw3IEBAIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRXhjZXB0aW9uRnV6eiwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KikpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FeGNl
cHRpb25GdXp6V2l0aENhbGxGcmFtZSwgdm9pZCwgKFZNKikpOwogCiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblJldHJpZXZlQW5kQ2xlYXJFeGNlcHRpb25JZkNhdGNoYWJsZSwg
SlNDZWxsKiwgKFZNKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnN0
YW5jZU9mQ3VzdG9tLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
SGFzSW5zdGFuY2UpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5zdGFu
Y2VPZkN1c3RvbSwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5jZSkpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblZhbHVlQWRkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25WYWx1ZUFkZFByb2ZpbGVkLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMiwgQmluYXJ5QXJpdGhQcm9maWxlKikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCmluZGV4IDEwODA0NDlkYTYz
OGY2NzZlMDdlY2EwZjU4MmUzYjlmYzdiNWU2OTEuLmM4MjI5NmU0MGUwZjNiODc2ZmExOWQ0Njcz
MzAwMDE0MGE0MTE2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3Bl
cmF0aW9ucy5jcHAKQEAgLTQxOCw3ICs0MTgsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbVRyaWdnZXJPU1JFbnRyeU5vdywgdm9pZCwgKFByb2JlOjpDb250ZXh0Jgog
ICAgIHJldHVybiByZXR1cm5XaXRob3V0T1NSRW50cnkoKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVwTm93LCB2b2lkLCAoSW5zdGFuY2Uq
IGluc3RhbmNlLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtVHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiBpbnN0
YW5jZSwgQ0NhbGxVSW50MzIgZnVuY3Rpb25JbmRleCkpCiB7CiAgICAgV2FzbTo6Q2FsbGVlR3Jv
dXAmIGNhbGxlZUdyb3VwID0gKmluc3RhbmNlLT5jYWxsZWVHcm91cCgpOwogICAgIEFTU0VSVChp
bnN0YW5jZS0+bWVtb3J5KCktPm1vZGUoKSA9PSBjYWxsZWVHcm91cC5tb2RlKCkpOwpAQCAtNDMz
LDcgKzQzMyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dl
clRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJDb25zaWRlciBP
TUdQbGFuIGZvciBbIiwgZnVuY3Rpb25JbmRleCwgIl0gd2l0aCBleGVjdXRlQ291bnRlciA9ICIs
IHRpZXJVcCwgIiAiLCBSYXdQb2ludGVyKGNhbGxlZS5yZXBsYWNlbWVudCgpKSk7CisgICAgZGF0
YUxvZ0xuSWYoT3B0aW9uczo6dmVyYm9zZU9TUigpLCAiQ29uc2lkZXIgT01HUGxhbiBmb3IgWyIs
IHVpbnQzMl90KGZ1bmN0aW9uSW5kZXgpLCAiXSB3aXRoIGV4ZWN1dGVDb3VudGVyID0gIiwgdGll
clVwLCAiICIsIFJhd1BvaW50ZXIoY2FsbGVlLnJlcGxhY2VtZW50KCkpKTsKIAogICAgIGlmIChz
aG91bGRUcmlnZ2VyT01HQ29tcGlsZSh0aWVyVXAsIGNhbGxlZS5yZXBsYWNlbWVudCgpLCBmdW5j
dGlvbkluZGV4KSkKICAgICAgICAgdHJpZ2dlck9NR1JlcGxhY2VtZW50Q29tcGlsZSh0aWVyVXAs
IGNhbGxlZS5yZXBsYWNlbWVudCgpLCBpbnN0YW5jZSwgY2FsbGVlR3JvdXAsIGZ1bmN0aW9uSW5k
ZXgpOwpAQCAtNDQyLDcgKzQ0Miw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtVHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jCiAgICAgaWYg
KGNhbGxlZS5yZXBsYWNlbWVudCgpKSB7CiAgICAgICAgIC8vIE5vIE9TUiBlbnRyeSBwb2ludHMu
IEp1c3QgZGVmZXIgaW5kZWZpbml0ZWx5LgogICAgICAgICBpZiAodGllclVwLm9zckVudHJ5VHJp
Z2dlcnMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2dMbklmKE9wdGlvbnM6OnZl
cmJvc2VPU1IoKSwgImRlbGF5T01HQ29tcGlsZSByZXBsYWNlbWVudCBpbiBwbGFjZSwgZGVsYXlp
bmcgaW5kZWZpbml0ZWx5IGZvciAiLCBmdW5jdGlvbkluZGV4KTsKKyAgICAgICAgICAgIGRhdGFM
b2dMbklmKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwgImRlbGF5T01HQ29tcGlsZSByZXBsYWNlbWVu
dCBpbiBwbGFjZSwgZGVsYXlpbmcgaW5kZWZpbml0ZWx5IGZvciAiLCB1aW50MzJfdChmdW5jdGlv
bkluZGV4KSk7CiAgICAgICAgICAgICB0aWVyVXAuZG9udE9wdGltaXplQW55dGltZVNvb24oZnVu
Y3Rpb25JbmRleCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTQ1MCw3ICs0
NTAsNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVy
VXBOb3csIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuYwogICAgICAgICAvLyBGb3VuZCBvbmUgT1NS
IGVudHJ5IHBvaW50LiBTaW5jZSB3ZSBkbyBub3QgaGF2ZSBhIHdheSB0byBqZXR0aXNvbiBXYXNt
OjpDYWxsZWUgcmlnaHQgbm93LCB0aGlzIG1lYW5zIHRoYXQgdGllclVwIGZ1bmN0aW9uIGlzIG5v
dyBtZWFuaW5nbGVzcy4KICAgICAgICAgLy8gTm90IGNhbGwgaXQgYXMgbXVjaCBhcyBwb3NzaWJs
ZS4KICAgICAgICAgaWYgKGNhbGxlZS5vc3JFbnRyeUNhbGxlZSgpKSB7Ci0gICAgICAgICAgICBk
YXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlT1NSKCksICJkZWxheU9NR0NvbXBpbGUgdHJpZ2dl
ciBpbiBwbGFjZSwgZGVsYXlpbmcgaW5kZWZpbml0ZWx5IGZvciAiLCBmdW5jdGlvbkluZGV4KTsK
KyAgICAgICAgICAgIGRhdGFMb2dMbklmKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwgImRlbGF5T01H
Q29tcGlsZSB0cmlnZ2VyIGluIHBsYWNlLCBkZWxheWluZyBpbmRlZmluaXRlbHkgZm9yICIsIHVp
bnQzMl90KGZ1bmN0aW9uSW5kZXgpKTsKICAgICAgICAgICAgIHRpZXJVcC5kb250T3B0aW1pemVB
bnl0aW1lU29vbihmdW5jdGlvbkluZGV4KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQpAQCAtNDY4LDcgKzQ2OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtVW53aW5kLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogICAgIEFTU0VSVCghIXZt
LmNhbGxGcmFtZUZvckNhdGNoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVl
IHYpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0k2NCwgQ0Nh
bGxJbnQ2NDo6SW50ZWdlclR5cGUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkK
IHsKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcGFzc2luZyBKU1dlYkFzc2VtYmx5SW5zdGFuY2Uq
IGluc3RlYWQuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMzIwNgpAQCAtNDg2LDcgKzQ4Niw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db252ZXJ0VG9GNjQsIGRvdWJsZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKCiAgICAg
cmV0dXJuIHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIGludDMy
X3QsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSB2KSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9JMzIsIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgdikpCiB7CiAgICAgLy8gRklYTUU6IENvbnNp
ZGVyIHBhc3NpbmcgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0ZWFkLgogICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyMDYKQEAgLTUwNCw3ICs1MDQs
NyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9h
dCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKUwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9h
dD4odi50b051bWJlcihjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qodm0pKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgaW50
NjRfdCB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRv
QmlnSW50LCBFbmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSog
aW5zdGFuY2UsIENDYWxsSW50NjQgdmFsdWUpKQogewogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5j
ZSoganNJbnN0YW5jZSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7
CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9i
amVjdCgpOwpAQCAtNTg4LDcgKzU4OCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAvLyBG
SVhNRTogSXQgd291bGQgYmUgbXVjaCBlYXNpZXIgdG8gaW5saW5lIHRoaXMgd2hlbiB3ZSBoYXZl
IGEgZ2xvYmFsIEdDLCB3aGljaCBjb3VsZCBwcm9iYWJseSBtZWFuIHdlIGNvdWxkIGF2b2lkCiAv
LyBzcGlsbGluZyB0aGUgcmVzdWx0cyBvbnRvIHRoZSBzdGFjay4KIC8vIFNhdmVkIHJlc3VsdCBy
ZWdpc3RlcnMgc2hvdWxkIGJlIHBsYWNlZCBvbiB0aGUgc3RhY2sganVzdCBhYm92ZSB0aGUgbGFz
dCBzdGFjayByZXN1bHQuCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2Nh
dGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIFdhc206Oklu
c3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgU2lnbmF0dXJlKiBzaWduYXR1cmUsIEluZGV4aW5nVHlw
ZSBpbmRleGluZ1R5cGUsIEpTVmFsdWUqIHN0YWNrUG9pbnRlckZyb21DYWxsZWUpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5
KiwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBXYXNtOjpJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0
IFNpZ25hdHVyZSogc2lnbmF0dXJlLCBDQ2FsbEludGVnZXI8SW5kZXhpbmdUeXBlPiBpbmRleGlu
Z1R5cGUsIEpTVmFsdWUqIHN0YWNrUG9pbnRlckZyb21DYWxsZWUpKQogewogICAgIEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZSoganNJbnN0YW5jZSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5
SW5zdGFuY2U+KCk7CiAgICAgVk0mIHZtID0ganNJbnN0YW5jZS0+dm0oKTsKQEAgLTYyNywxNyAr
NjI3LDE3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtV3JpdGVCYXJy
aWVyU2xvd1BhdGgsIHZvaWQsIChKU0NlbGwqIGNlbGwsCiAgICAgdm0ud3JpdGVCYXJyaWVyU2xv
d1BhdGgoY2VsbCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bj
b3VudDMyLCB1aW50MzJfdCwgKGludDMyX3QgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblBvcGNvdW50MzIsIENDYWxsVUludDMyOjpJbnRlZ2VyVHlwZSwgKENDYWxs
SW50MzIgdmFsdWUpKQogewogICAgIHJldHVybiBfX2J1aWx0aW5fcG9wY291bnQodmFsdWUpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQ2NCwgdWludDY0
X3QsIChpbnQ2NF90IHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
b3Bjb3VudDY0LCBDQ2FsbFVJbnQ2NDo6SW50ZWdlclR5cGUsIChDQ2FsbEludDY0IHZhbHVlKSkK
IHsKICAgICByZXR1cm4gX19idWlsdGluX3BvcGNvdW50bGwodmFsdWUpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR3Jvd01lbW9yeSwgaW50MzJfdCwgKHZvaWQqIGNh
bGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBpbnQzMl90IGRlbHRhKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Hcm93TWVtb3J5LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlw
ZSwgKHZvaWQqIGNhbGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbEludDMyIGRlbHRh
KSkKIHsKICAgICBpbnN0YW5jZS0+c3RvcmVUb3BDYWxsRnJhbWUoY2FsbEZyYW1lKTsKIApAQCAt
NjU5LDE5ICs2NTksMTkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdyb3dN
ZW1vcnksIGludDMyX3QsICh2b2lkKiBjYWxsRnJhbWUsIEluc3RhbmMKICAgICByZXR1cm4gZ3Jv
d24udmFsdWUoKS5wYWdlQ291bnQoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21NZW1vcnlGaWxsLCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQz
Ml90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHRhcmdldFZhbHVlLCB1aW50MzJfdCBjb3VudCkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUZpbGwsIENDYWxsU2l6
ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGRzdEFkZHJl
c3MsIENDYWxsVUludDMyIHRhcmdldFZhbHVlLCBDQ2FsbFVJbnQzMiBjb3VudCkpCiB7CiAgICAg
cmV0dXJuIGluc3RhbmNlLT5tZW1vcnkoKS0+ZmlsbChkc3RBZGRyZXNzLCBzdGF0aWNfY2FzdDx1
aW50OF90Pih0YXJnZXRWYWx1ZSksIGNvdW50KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21NZW1vcnlDb3B5LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2Us
IHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5Q29weSwgQ0Nh
bGxTaXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgZHN0
QWRkcmVzcywgQ0NhbGxVSW50MzIgc3JjQWRkcmVzcywgQ0NhbGxVSW50MzIgY291bnQpKQogewog
ICAgIHJldHVybiBpbnN0YW5jZS0+bWVtb3J5KCktPmNvcHkoZHN0QWRkcmVzcywgc3JjQWRkcmVz
cywgY291bnQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2Fz
bVRhYmxlRWxlbWVudCwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2ln
bmVkIHRhYmxlSW5kZXgsIGludDMyX3Qgc2lnbmVkSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQsIEVuY29kZWRKU1ZhbHVlLCAoSW5z
dGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiB0YWJsZUluZGV4LCBDQ2FsbEludDMyIHNpZ25l
ZEluZGV4KSkKIHsKLSAgICBBU1NFUlQodGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5t
b2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CisgICAgQVNTRVJUKHVpbnQzMl90KHRh
YmxlSW5kZXgpIDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVD
b3VudCgpKTsKICAgICBpZiAoc2lnbmVkSW5kZXggPCAwKQogICAgICAgICByZXR1cm4gMDsKIApA
QCAtNjg0LDcgKzY4NCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRX
YXNtVGFibGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlCiAKIHN0YXRpYyBib29s
IHNldFdhc21UYWJsZUVsZW1lbnQoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUlu
ZGV4LCB1aW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFsdWUpCiB7Ci0gICAgQVNT
RVJUKHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS50
YWJsZUNvdW50KCkpOworICAgIEFTU0VSVCh1aW50MzJfdCh0YWJsZUluZGV4KSA8IGluc3RhbmNl
LT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAKICAgICBpZiAo
aW5kZXggPj0gaW5zdGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgpLT5sZW5ndGgoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNzEyLDE1ICs3MTIsMTUgQEAgc3RhdGljIGJvb2wgc2V0V2FzbVRh
YmxlRWxlbWVudChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIHVpbnQz
Ml8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblNldFdhc21UYWJsZUVsZW1lbnQsIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5z
aWduZWQgdGFibGVJbmRleCwgdWludDMyX3Qgc2lnbmVkSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVu
Y1ZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRXYXNtVGFibGVF
bGVtZW50LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2Fs
bFVJbnQzMiB0YWJsZUluZGV4LCBDQ2FsbFVJbnQzMiBzaWduZWRJbmRleCwgRW5jb2RlZEpTVmFs
dWUgZW5jVmFsdWUpKQogewogICAgIHJldHVybiBzZXRXYXNtVGFibGVFbGVtZW50KGluc3RhbmNl
LCB0YWJsZUluZGV4LCBzaWduZWRJbmRleCwgZW5jVmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlSW5pdCwgc2l6ZV90LCAoSW5zdGFuY2UqIGlu
c3RhbmNlLCB1bnNpZ25lZCBlbGVtZW50SW5kZXgsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIHVpbnQz
Ml90IGRzdE9mZnNldCwgdWludDMyX3Qgc3JjT2Zmc2V0LCB1aW50MzJfdCBsZW5ndGgpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUluaXQsIENDYWxsU2l6ZTo6
SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGVsZW1lbnRJbmRl
eCwgQ0NhbGxVSW50MzIgdGFibGVJbmRleCwgQ0NhbGxVSW50MzIgZHN0T2Zmc2V0LCBDQ2FsbFVJ
bnQzMiBzcmNPZmZzZXQsIENDYWxsVUludDMyIGxlbmd0aCkpCiB7Ci0gICAgQVNTRVJUKGVsZW1l
bnRJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLmVsZW1lbnRD
b3VudCgpKTsKLSAgICBBU1NFUlQodGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1
bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CisgICAgQVNTRVJUKHVpbnQzMl90KGVsZW1l
bnRJbmRleCkgPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5lbGVtZW50
Q291bnQoKSk7CisgICAgQVNTRVJUKHVpbnQzMl90KHRhYmxlSW5kZXgpIDwgaW5zdGFuY2UtPm1v
ZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKIAogICAgIGlmIChXVEY6
OnN1bU92ZXJmbG93czx1aW50MzJfdD4oc3JjT2Zmc2V0LCBsZW5ndGgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC03NDIsMTUgKzc0MiwxNSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbVRhYmxlSW5pdCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bgog
ICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
V2FzbUVsZW1Ecm9wLCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBlbGVtZW50
SW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21FbGVtRHJvcCwg
dm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgZWxlbWVudEluZGV4KSkKIHsK
LSAgICBBU1NFUlQoZWxlbWVudEluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9y
bWF0aW9uKCkuZWxlbWVudENvdW50KCkpOworICAgIEFTU0VSVCh1aW50MzJfdChlbGVtZW50SW5k
ZXgpIDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkuZWxlbWVudENvdW50
KCkpOwogICAgIGluc3RhbmNlLT5lbGVtRHJvcChlbGVtZW50SW5kZXgpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlR3JvdywgaW50MzJfdCwgKEluc3Rh
bmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwg
dWludDMyX3QgZGVsdGEpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21U
YWJsZUdyb3csIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBD
Q2FsbFVJbnQzMiB0YWJsZUluZGV4LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCBDQ2FsbFVJbnQzMiBk
ZWx0YSkpCiB7Ci0gICAgQVNTRVJUKHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9k
dWxlSW5mb3JtYXRpb24oKS50YWJsZUNvdW50KCkpOworICAgIEFTU0VSVCh1aW50MzJfdCh0YWJs
ZUluZGV4KSA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291
bnQoKSk7CiAgICAgYXV0byBvbGRTaXplID0gaW5zdGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgpLT5s
ZW5ndGgoKTsKICAgICBhdXRvIG5ld1NpemUgPSBpbnN0YW5jZS0+dGFibGUodGFibGVJbmRleCkt
Pmdyb3coZGVsdGEsIGpzTnVsbCgpKTsKICAgICBpZiAoIW5ld1NpemUpCkBAIC03NjIsOSArNzYy
LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUdyb3csIGlu
dDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHUKICAgICByZXR1cm4gb2xkU2l6ZTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIHNpemVfdCwg
KEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgdWludDMyX3Qgb2Zmc2V0
LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCB1aW50MzJfdCBjb3VudCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlRmlsbCwgQ0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwg
KEluc3RhbmNlKiBpbnN0YW5jZSwgQ0NhbGxVSW50MzIgdGFibGVJbmRleCwgQ0NhbGxVSW50MzIg
b2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCBDQ2FsbFVJbnQzMiBjb3VudCkpCiB7Ci0gICAg
QVNTRVJUKHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24o
KS50YWJsZUNvdW50KCkpOworICAgIEFTU0VSVCh1aW50MzJfdCh0YWJsZUluZGV4KSA8IGluc3Rh
bmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAKICAgICBp
ZiAoV1RGOjpzdW1PdmVyZmxvd3M8dWludDMyX3Q+KG9mZnNldCwgY291bnQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC03NzgsMTAgKzc3OCwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbVRhYmxlRmlsbCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1
bgogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbVRhYmxlQ29weSwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBk
c3RUYWJsZUluZGV4LCB1bnNpZ25lZCBzcmNUYWJsZUluZGV4LCBpbnQzMl90IGRzdE9mZnNldCwg
aW50MzJfdCBzcmNPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtVGFibGVDb3B5LCBDQ2FsbFNpemU6OkludGVnZXJUeXBlLCAoSW5z
dGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBkc3RUYWJsZUluZGV4LCBDQ2FsbFVJbnQzMiBz
cmNUYWJsZUluZGV4LCBDQ2FsbEludDMyIGRzdE9mZnNldCwgQ0NhbGxJbnQzMiBzcmNPZmZzZXQs
IENDYWxsSW50MzIgbGVuZ3RoKSkKIHsKLSAgICBBU1NFUlQoZHN0VGFibGVJbmRleCA8IGluc3Rh
bmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7Ci0gICAgQVNT
RVJUKHNyY1RhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24o
KS50YWJsZUNvdW50KCkpOworICAgIEFTU0VSVCh1aW50MzJfdChkc3RUYWJsZUluZGV4KSA8IGlu
c3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CisgICAg
QVNTRVJUKHVpbnQzMl90KHNyY1RhYmxlSW5kZXgpIDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVs
ZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKICAgICBjb25zdCBUYWJsZSogZHN0VGFibGUg
PSBpbnN0YW5jZS0+dGFibGUoZHN0VGFibGVJbmRleCk7CiAgICAgY29uc3QgVGFibGUqIHNyY1Rh
YmxlID0gaW5zdGFuY2UtPnRhYmxlKHNyY1RhYmxlSW5kZXgpOwogICAgIEFTU0VSVChkc3RUYWJs
ZS0+dHlwZSgpID09IHNyY1RhYmxlLT50eXBlKCkpOwpAQCAtODExLDE0ICs4MTEsMTQgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIHNpemVfdCwgKElu
c3RhbmNlKiBpbnN0YW5jZSwgdW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3Rh
bmNlKiBpbnN0YW5jZSwgdWludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5j
ZSwgQ0NhbGxVSW50MzIgaW5kZXgpKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBpbnN0YW5jZS0+
Z2V0RnVuY3Rpb25XcmFwcGVyKGluZGV4KTsKICAgICBBU1NFUlQodmFsdWUuaXNDYWxsYWJsZShp
bnN0YW5jZS0+b3duZXI8SlNPYmplY3Q+KCktPnZtKCkpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdl
dFdhc21UYWJsZVNpemUsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRh
YmxlSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJs
ZVNpemUsIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2Fs
bFVJbnQzMiB0YWJsZUluZGV4KSkKIHsKICAgICByZXR1cm4gaW5zdGFuY2UtPnRhYmxlKHRhYmxl
SW5kZXgpLT5sZW5ndGgoKTsKIH0KQEAgLTg0OSw3ICs4NDksNyBAQCBzdGF0aWMgaW50MzJfdCB3
YWl0KFZNJiB2bSwgVmFsdWVUeXBlKiBwb2ludGVyLCBWYWx1ZVR5cGUgZXhwZWN0ZWRWYWx1ZSwg
aW50NjRfdAogICAgIHJldHVybiAwOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTWVtb3J5QXRvbWljV2FpdDMyLCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1
bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIHVpbnQzMl90IHZhbHVlLCBpbnQ2NF90IHRp
bWVvdXRJbk5hbm9zZWNvbmRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25N
ZW1vcnlBdG9taWNXYWl0MzIsIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGlu
c3RhbmNlLCBDQ2FsbFVJbnQzMiBiYXNlLCBDQ2FsbFVJbnQzMiBvZmZzZXQsIENDYWxsVUludDMy
IHZhbHVlLCBDQ2FsbEludDY0IHRpbWVvdXRJbk5hbm9zZWNvbmRzKSkKIHsKICAgICBWTSYgdm0g
PSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpLT52bSgpOwogICAgIHVp
bnQ2NF90IG9mZnNldEluTWVtb3J5ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJhc2UpICsgb2Zm
c2V0OwpAQCAtODY3LDcgKzg2Nyw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25NZW1vcnlBdG9taWNXYWl0MzIsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuCiAgICAgcmV0
dXJuIHdhaXQ8dWludDMyX3Q+KHZtLCBwb2ludGVyLCB2YWx1ZSwgdGltZW91dEluTmFub3NlY29u
ZHMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWlj
V2FpdDY0LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNp
Z25lZCBvZmZzZXQsIHVpbnQ2NF90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXRJbk5hbm9zZWNvbmRz
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0NjQs
IENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQz
MiBiYXNlLCBDQ2FsbFVJbnQzMiBvZmZzZXQsIENDYWxsVUludDY0IHZhbHVlLCBDQ2FsbEludDY0
IHRpbWVvdXRJbk5hbm9zZWNvbmRzKSkKIHsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+b3duZXI8
SlNXZWJBc3NlbWJseUluc3RhbmNlPigpLT52bSgpOwogICAgIHVpbnQ2NF90IG9mZnNldEluTWVt
b3J5ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJhc2UpICsgb2Zmc2V0OwpAQCAtODg1LDcgKzg4
NSw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0
NjQsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuCiAgICAgcmV0dXJuIHdhaXQ8dWludDY0X3Q+
KHZtLCBwb2ludGVyLCB2YWx1ZSwgdGltZW91dEluTmFub3NlY29uZHMpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljTm90aWZ5LCBpbnQzMl90LCAo
SW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIGludDMy
X3QgY291bnRWYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5
QXRvbWljTm90aWZ5LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5j
ZSwgQ0NhbGxVSW50MzIgYmFzZSwgQ0NhbGxVSW50MzIgb2Zmc2V0LCBDQ2FsbEludDMyIGNvdW50
VmFsdWUpKQogewogICAgIHVpbnQ2NF90IG9mZnNldEluTWVtb3J5ID0gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KGJhc2UpICsgb2Zmc2V0OwogICAgIGlmIChvZmZzZXRJbk1lbW9yeSAmICgweDQgLSAx
KSkKQEAgLTkwMywxOSArOTAzLDE5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25NZW1vcnlBdG9taWNOb3RpZnksIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuCiAgICAgcmV0
dXJuIFBhcmtpbmdMb3Q6OnVucGFya0NvdW50KHBvaW50ZXIsIGNvdW50KTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlJbml0LCBzaXplX3QsIChJbnN0
YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGRhdGFTZWdtZW50SW5kZXgsIHVpbnQzMl90IGRzdEFk
ZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGxlbmd0aCkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUluaXQsIENDYWxsU2l6ZTo6SW50ZWdl
clR5cGUsIChJbnN0YW5jZSogaW5zdGFuY2UsIENDYWxsVUludDMyIGRhdGFTZWdtZW50SW5kZXgs
IENDYWxsVUludDMyIGRzdEFkZHJlc3MsIENDYWxsVUludDMyIHNyY0FkZHJlc3MsIENDYWxsVUlu
dDMyIGxlbmd0aCkpCiB7Ci0gICAgQVNTRVJUKGRhdGFTZWdtZW50SW5kZXggPCBpbnN0YW5jZS0+
bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5kYXRhU2VnbWVudHNDb3VudCgpKTsKKyAgICBB
U1NFUlQodWludDMyX3QoZGF0YVNlZ21lbnRJbmRleCkgPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9k
dWxlSW5mb3JtYXRpb24oKS5kYXRhU2VnbWVudHNDb3VudCgpKTsKICAgICByZXR1cm4gaW5zdGFu
Y2UtPm1lbW9yeUluaXQoZHN0QWRkcmVzcywgc3JjQWRkcmVzcywgbGVuZ3RoLCBkYXRhU2VnbWVu
dEluZGV4KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRh
RHJvcCwgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRl
eCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbURhdGFEcm9wLCB2b2lk
LCAoSW5zdGFuY2UqIGluc3RhbmNlLCBDQ2FsbFVJbnQzMiBkYXRhU2VnbWVudEluZGV4KSkKIHsK
LSAgICBBU1NFUlQoZGF0YVNlZ21lbnRJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJ
bmZvcm1hdGlvbigpLmRhdGFTZWdtZW50c0NvdW50KCkpOworICAgIEFTU0VSVCh1aW50MzJfdChk
YXRhU2VnbWVudEluZGV4KSA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigp
LmRhdGFTZWdtZW50c0NvdW50KCkpOwogICAgIGluc3RhbmNlLT5kYXRhRHJvcChkYXRhU2VnbWVu
dEluZGV4KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJv
dywgdm9pZCosIChJbnN0YW5jZSogaW5zdGFuY2UsIENhbGxGcmFtZSogY2FsbEZyYW1lLCB1bnNp
Z25lZCBleGNlcHRpb25JbmRleCwgdWludDY0X3QqIGFyZ3VtZW50cykpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRocm93LCB2b2lkKiwgKEluc3RhbmNlKiBpbnN0YW5j
ZSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENDYWxsVUludDMyIGV4Y2VwdGlvbkluZGV4LCB1aW50
NjRfdCogYXJndW1lbnRzKSkKIHsKICAgICBpbnN0YW5jZS0+c3RvcmVUb3BDYWxsRnJhbWUoY2Fs
bEZyYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9w
ZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgK
aW5kZXggY2Y3YzBkNWZlZjRkZmQzNWM3Y2NhMzM0NzkzZWIyNDRlY2JhZGQxNS4uMmYyMzQyODJl
ZDEyOTg3NDFjYjgyYmU3MDYyMjQ1Y2Q3MjE2ZTQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oCkBAIC01MSw0NCArNTEsNDQgQEAgdm9pZCBsb2FkVmFs
dWVzSW50b0J1ZmZlcihQcm9iZTo6Q29udGV4dCYsIGNvbnN0IFN0YWNrTWFwJiwgdWludDY0X3Qq
IGJ1ZmZlcik7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFlfQjNKSVQpCiBKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyT1NSRW50cnlOb3csIHZvaWQsIChQcm9i
ZTo6Q29udGV4dCYpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRy
aWdnZXJUaWVyVXBOb3csIHZvaWQsIChJbnN0YW5jZSosIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBO
b3csIHZvaWQsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGZ1bmN0aW9uSW5kZXgpKTsKICNlbmRp
ZgogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVW53aW5kLCB2b2lkLCAo
Q2FsbEZyYW1lKikpOwogCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZl
cnRUb0k2NCwgaW50NjRfdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvSTY0LCBDQ2FsbEludDY0OjpJbnRlZ2VyVHlw
ZSwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ29udmVydFRvRjY0LCBkb3VibGUsIChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0kzMiwgaW50MzJfdCwgKENh
bGxGcmFtZSosIEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29udmVydFRvSTMyLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKENhbGxGcmFtZSosIEpTVmFs
dWUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvRjMyLCBm
bG9hdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoQ2FsbEZyYW1lKiwg
SW5zdGFuY2UqLCBpbnQ2NF90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJbnN0YW5jZSos
IENDYWxsSW50NjQpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVy
YXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJl
KiwgSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1l
KiwgV2FzbTo6SW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBJbmRleGluZ1R5cGUsIEpTVmFs
dWUqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0
c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSosIFdhc206Okluc3RhbmNlKiwgY29uc3QgU2ln
bmF0dXJlKiwgQ0NhbGxJbnRlZ2VyPEluZGV4aW5nVHlwZT4sIEpTVmFsdWUqKSk7CiAKIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoLCB2
b2lkLCAoSlNDZWxsKiwgVk0qKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blBvcGNvdW50MzIsIHVpbnQzMl90LCAoaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Qb3Bjb3VudDY0LCB1aW50NjRfdCwgKGludDY0X3QpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR3Jvd01lbW9yeSwgaW50MzJfdCwgKHZvaWQqLCBJ
bnN0YW5jZSosIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
V2FzbU1lbW9yeUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiwgdWludDMyX3QgZHN0QWRkcmVzcywg
dWludDMyX3QgdGFyZ2V0VmFsdWUsIHVpbnQzMl90IGNvdW50KSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlDb3B5LCBzaXplX3QsIChJbnN0YW5jZSosIHVp
bnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50KSk7
Ci0KLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlRWxlbWVu
dCwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIHVuc2lnbmVkLCBpbnQzMl90KSk7Ci1KU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFdhc21UYWJsZUVsZW1lbnQsIHNpemVf
dCwgKEluc3RhbmNlKiwgdW5zaWduZWQsIHVpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSBlbmNWYWx1
ZSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtUmVmRnVuYywgRW5j
b2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIHVpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUluaXQsIHNpemVfdCwgKEluc3RhbmNlKiwgdW5zaWdu
ZWQgZWxlbWVudEluZGV4LCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfdCBkc3RPZmZzZXQs
IHVpbnQzMl90IHNyY09mZnNldCwgdWludDMyX3QgbGVuZ3RoKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21FbGVtRHJvcCwgdm9pZCwgKEluc3RhbmNlKiwgdW5zaWdu
ZWQgZWxlbWVudEluZGV4KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldh
c21UYWJsZUdyb3csIGludDMyX3QsIChJbnN0YW5jZSosIHVuc2lnbmVkLCBFbmNvZGVkSlNWYWx1
ZSBmaWxsLCB1aW50MzJfdCBkZWx0YSkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25XYXNtVGFibGVGaWxsLCBzaXplX3QsIChJbnN0YW5jZSosIHVuc2lnbmVkLCB1aW50MzJf
dCBvZmZzZXQsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIHVpbnQzMl90IGNvdW50KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIHNpemVfdCwgKEluc3Rh
bmNlKiwgdW5zaWduZWQgZHN0VGFibGVJbmRleCwgdW5zaWduZWQgc3JjVGFibGVJbmRleCwgaW50
MzJfdCBkc3RPZmZzZXQsIGludDMyX3Qgc3JjT2Zmc2V0LCBpbnQzMl90IGxlbmd0aCkpOwotSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVTaXplLCBpbnQzMl90
LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCkpOwotCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQzMiwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
dW5zaWduZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCB1aW50MzJfdCB2YWx1ZSwgaW50NjRfdCB0
aW1lb3V0KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21p
Y1dhaXQ2NCwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgYmFzZSwgdW5z
aWduZWQgb2Zmc2V0LCB1aW50NjRfdCB2YWx1ZSwgaW50NjRfdCB0aW1lb3V0KSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY05vdGlmeSwgaW50MzJfdCwg
KEluc3RhbmNlKiwgdW5zaWduZWQsIHVuc2lnbmVkLCBpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlJbml0LCBzaXplX3QsIChJbnN0YW5jZSos
IHVuc2lnbmVkIGRhdGFTZWdtZW50SW5kZXgsIHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90
IHNyY0FkZHJlc3MsIHVpbnQzMl90IGxlbmd0aCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25XYXNtRGF0YURyb3AsIHZvaWQsIChJbnN0YW5jZSosIHVuc2lnbmVkIGRhdGFT
ZWdtZW50SW5kZXgpKTsKLQotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqLCBDYWxsRnJhbWUqLCB1bnNpZ25lZCBleGNlcHRpb25J
bmRleCwgdWludDY0X3QqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBv
cGNvdW50MzIsIENDYWxsVUludDMyOjpJbnRlZ2VyVHlwZSwgKENDYWxsSW50MzIpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQ2NCwgQ0NhbGxVSW50NjQ6Oklu
dGVnZXJUeXBlLCAoQ0NhbGxJbnQ2NCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Hcm93TWVtb3J5LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKHZvaWQqLCBJbnN0YW5j
ZSosIENDYWxsSW50MzIpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bU1lbW9yeUZpbGwsIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUlu
dDMyIGRzdEFkZHJlc3MsIENDYWxsVUludDMyIHRhcmdldFZhbHVlLCBDQ2FsbFVJbnQzMiBjb3Vu
dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5Q29weSwg
Q0NhbGxTaXplOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIgZHN0QWRkcmVz
cywgQ0NhbGxVSW50MzIgc3JjQWRkcmVzcywgQ0NhbGxVSW50MzIgY291bnQpKTsKKworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50LCBFbmNvZGVk
SlNWYWx1ZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudCwgQ0NhbGxTaXpl
OjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50MzIsIENDYWxsVUludDMyLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtUmVmRnVuYywgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIENDYWxsVUludDMyKSk7
CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUluaXQsIENDYWxs
U2l6ZTo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGVsZW1lbnRJbmRleCwg
Q0NhbGxVSW50MzIgdGFibGVJbmRleCwgQ0NhbGxVSW50MzIgZHN0T2Zmc2V0LCBDQ2FsbFVJbnQz
MiBzcmNPZmZzZXQsIENDYWxsVUludDMyIGxlbmd0aCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtRWxlbURyb3AsIHZvaWQsIChJbnN0YW5jZSosIENDYWxsVUludDMy
IGVsZW1lbnRJbmRleCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VGFibGVHcm93LCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiwgQ0NhbGxVSW50
MzIsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIENDYWxsVUludDMyIGRlbHRhKSk7CitKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIENDYWxsU2l6ZTo6SW50ZWdl
clR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyLCBDQ2FsbFVJbnQzMiBvZmZzZXQsIEVuY29k
ZWRKU1ZhbHVlIGZpbGwsIENDYWxsVUludDMyIGNvdW50KSk7CitKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIENDYWxsU2l6ZTo6SW50ZWdlclR5cGUsIChJ
bnN0YW5jZSosIENDYWxsVUludDMyIGRzdFRhYmxlSW5kZXgsIENDYWxsVUludDMyIHNyY1RhYmxl
SW5kZXgsIENDYWxsSW50MzIgZHN0T2Zmc2V0LCBDQ2FsbEludDMyIHNyY09mZnNldCwgQ0NhbGxJ
bnQzMiBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2Fz
bVRhYmxlU2l6ZSwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUlu
dDMyKSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWlj
V2FpdDMyLCBDQ2FsbEludDMyOjpJbnRlZ2VyVHlwZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ0Nh
bGxVSW50MzIgYmFzZSwgQ0NhbGxVSW50MzIgb2Zmc2V0LCBDQ2FsbFVJbnQzMiB2YWx1ZSwgQ0Nh
bGxJbnQ2NCB0aW1lb3V0KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1l
bW9yeUF0b21pY1dhaXQ2NCwgQ0NhbGxJbnQzMjo6SW50ZWdlclR5cGUsIChJbnN0YW5jZSogaW5z
dGFuY2UsIENDYWxsVUludDMyIGJhc2UsIENDYWxsVUludDMyIG9mZnNldCwgQ0NhbGxVSW50NjQg
dmFsdWUsIENDYWxsSW50NjQgdGltZW91dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25NZW1vcnlBdG9taWNOb3RpZnksIENDYWxsSW50MzI6OkludGVnZXJUeXBlLCAoSW5z
dGFuY2UqLCBDQ2FsbFVJbnQzMiwgQ0NhbGxVSW50MzIsIENDYWxsSW50MzIpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUluaXQsIENDYWxsU2l6ZTo6SW50
ZWdlclR5cGUsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGRhdGFTZWdtZW50SW5kZXgsIENDYWxs
VUludDMyIGRzdEFkZHJlc3MsIENDYWxsVUludDMyIHNyY0FkZHJlc3MsIENDYWxsVUludDMyIGxl
bmd0aCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtRGF0YURyb3As
IHZvaWQsIChJbnN0YW5jZSosIENDYWxsVUludDMyIGRhdGFTZWdtZW50SW5kZXgpKTsKKworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFu
Y2UqLCBDYWxsRnJhbWUqLCBDQ2FsbFVJbnQzMiBleGNlcHRpb25JbmRleCwgdWludDY0X3QqKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZXRocm93LCB2b2lkKiwg
KEluc3RhbmNlKiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUgdGhyb3duVmFsdWUpKTsKIAog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVG9KU0V4Y2VwdGlvbiwgdm9p
ZCosIChDYWxsRnJhbWUqLCBXYXNtOjpFeGNlcHRpb25UeXBlLCBJbnN0YW5jZSopKTsK
</data>
<flag name="commit-queue"
          id="478854"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453981</attachid>
            <date>2022-03-07 07:32:07 -0800</date>
            <delta_ts>2022-03-08 00:20:21 -0800</delta_ts>
            <desc>RFC patch - alternative</desc>
            <filename>jsc-riscv-calling-v2.patch</filename>
            <type>text/plain</type>
            <size>131245</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3NGUyM2RmNTRkZTYuLjE2ZTZl
NzliYmU5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODQ2LDYgKzg0
Niw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
aml0L0Jhc2VsaW5lSklUUmVnaXN0ZXJzLmgKICAgICBqaXQvQ2FsbEZyYW1lU2h1ZmZsZURhdGEu
aAogICAgIGppdC9DQ2FsbEhlbHBlcnMuaAorICAgIGppdC9DQ2FsbFR5cGVzLmgKICAgICBqaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCiAgICAgaml0L0V4ZWN1dGFibGVNZW1vcnlIYW5kbGUuaAog
ICAgIGppdC9GUFJJbmZvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0
bWFzbS5jcHAKaW5kZXggMjA0ZmY0MzA0MTUxLi4yMmEwZGUyMzIwYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCkBAIC0yMzcsNiArMjM3LDEzIEBA
IFQgaW52b2tlKGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiYgY29k
ZSwgQXJndW1lbnRzLi4uIGFyZ3VtZW50CiB7CiAgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3Mg
PSB1bnRhZ0NGdW5jdGlvblB0cjxKU0VudHJ5UHRyVGFnPihjb2RlLmNvZGUoKS5leGVjdXRhYmxl
QWRkcmVzcygpKTsKICAgICBUICgqZnVuY3Rpb24pKEFyZ3VtZW50cy4uLikgPSBiaXR3aXNlX2Nh
c3Q8VCgqKShBcmd1bWVudHMuLi4pPihleGVjdXRhYmxlQWRkcmVzcyk7CisKKyAgICBpZiBjb25z
dGV4cHIgKHN0ZDo6aXNfaW50ZWdyYWxfdjxUPikgeworICAgICAgICBKSVRfSU5URUdFUl9WQUxV
RShULCByZXN1bHQpID0gZnVuY3Rpb24oYXJndW1lbnRzLi4uKTsKKyAgICAgICAgSklUX0RFRklO
RV9JTlRFR0VSKHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAgICAg
cmV0dXJuIGZ1bmN0aW9uKGFyZ3VtZW50cy4uLik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGRjNTAzMTY0NzVhZi4uZTkzN2IyNjM3ZTZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCiAKICNpbmNsdWRlICJCdXR0
ZXJmbHlJbmxpbmVzLmgiCisjaW5jbHVkZSAiQ0NhbGxUeXBlcy5oIgogI2luY2x1ZGUgIkNhY2hl
YWJsZUlkZW50aWZpZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ2xvbmVkQXJndW1lbnRzLmgiCiAj
aW5jbHVkZSAiQ29kZUJsb2NrLmgiCkBAIC00MDEsOCArNDAyLDkgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk9iamVjdEFzc2lnblVudHlwZWQsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2wKICAgICBvYmplY3RBc3NpZ25HZW5lcmljKGdsb2JhbE9iamVjdCwgdm0sIHRhcmdl
dCwgc291cmNlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0
ZVRoaXMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
Y29uc3RydWN0b3IsIHVpbnQzMl90IGlubGluZUNhcGFjaXR5KSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25DcmVhdGVUaGlzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBKSVRfVUlOVDMyKGlubGluZUNhcGFj
aXR5KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGlubGluZUNhcGFjaXR5KTsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTc2MSw4ICs3NjMsOSBAQCBBTFdBWVNf
SU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdldEJ5VmFsQ2VsbEludChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBWTSYgdgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShiYXNl
KS5nZXQoZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5kZXgpKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9iamVjdEludCwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFz
ZSwgaW50MzJfdCBpbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlWYWxPYmplY3RJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNPYmplY3QqIGJhc2UsIEpJVF9JTlQzMihpbmRleCkpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihpbmRleCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBA
IC03NzAsOCArNzczLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5
VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2IKICAgICByZXR1cm4gZ2V0
QnlWYWxDZWxsSW50KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIGluZGV4KTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nSW50LCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBiYXNlLCBpbnQz
Ml90IGluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbFN0
cmluZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1N0cmluZyogYmFzZSwgSklUX0lOVDMyKGluZGV4KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRF
R0VSKGluZGV4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTg1OSw4
ICs4NjMsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxDZWxs
U3ltYm9sTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYgogICAgIHB1dEJ5VmFsQ2VsbEludGVy
bmFsPGZhbHNlLCBmYWxzZT4oZ2xvYmFsT2JqZWN0LCB2bSwgY2VsbCwgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJfdCBpbmRl
eCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgSklUX0lOVDMyKGluZGV4
KSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIoaW5kZXgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtODc1LDgg
Kzg4MCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9u
ZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNHbG9iCiAgICAgICAgIG9iamVjdCwgZ2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBKSVRfSU5UMzIoaW5kZXgpLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRl
eCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC04OTEsOCArODk3LDkg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlC
b3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0cKICAgICAgICAgb2JqZWN0LCBnbG9iYWxPYmplY3Qs
IElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSksIHNsb3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91
YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1
ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlv
bmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiBvYmplY3QsIEpJVF9JTlQzMihpbmRleCksIGRvdWJsZSB2YWx1ZSkpCiB7Cisg
ICAgSklUX0RFRklORV9JTlRFR0VSKGluZGV4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKQEAgLTkwOSw4ICs5MTYsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKAogICAg
ICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBq
c1ZhbHVlLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBkb3Vi
bGUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5
VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBKSVRfSU5UMzIoaW5kZXgpLCBkb3VibGUgdmFs
dWUpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7CkBAIC05MjcsOCArOTM1LDkgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3Qs
IHZvaWQKICAgICAgICAgb2JqZWN0LCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0s
IGluZGV4KSwganNWYWx1ZSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJf
dCBpbmRleCwgZG91YmxlIHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXREb3VibGVCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgSklUX0lOVDMyKGlu
ZGV4KSwgZG91YmxlIHZhbHVlKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoaW5kZXgpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtOTQ0LDggKzk1Myw5IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbERpcmVjdEJleW9u
ZEFycmF5Qm91bmRzU3RyaWN0LCB2CiAgICAgQ29tbW9uU2xvd1BhdGhzOjpwdXREaXJlY3RXaXRo
UmVpZnkodm0sIGdsb2JhbE9iamVjdCwgb2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRl
eCksIGpzVmFsdWUsIHNsb3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3Qg
aW5kZXgsIGRvdWJsZSB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIEpJVF9JTlQzMihp
bmRleCksIGRvdWJsZSB2YWx1ZSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGluZGV4KTsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTEwMTcsOCArMTAyNyw5IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdENlbGxTeW1i
b2xOb25TdHJpY3QsIHZvaWQsIChKU0dsCiAgICAgcHV0QnlWYWxDZWxsSW50ZXJuYWw8ZmFsc2Us
IHRydWU+KGdsb2JhbE9iamVjdCwgdm0sIGNlbGwsIHByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsIEpJVF9JTlQzMihpbmRl
eCksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7CisgICAgSklUX0RFRklORV9JTlRF
R0VSKGluZGV4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTEwMzEs
OCArMTA0Miw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERp
cmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0LCB2b2lkLCAoCiAgICAgQ29tbW9uU2xvd1BhdGhz
OjpwdXREaXJlY3RXaXRoUmVpZnkodm0sIGdsb2JhbE9iamVjdCwgb2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tKHZtLCBpbmRleCksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5
b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGly
ZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBKSVRfSU5UMzIoaW5kZXgpLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xMDY2LDggKzEwNzgsOSBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoYXJyYXktPmxlbmd0aCgpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BcnJheVB1c2hNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSwgdm9pZCogYnVmZmVyLCBpbnQzMl90IGVsZW1l
bnRDb3VudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoTXVs
dGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNB
cnJheSogYXJyYXksIHZvaWQqIGJ1ZmZlciwgSklUX0lOVDMyKGVsZW1lbnRDb3VudCkpKQogewor
ICAgIEpJVF9ERUZJTkVfSU5URUdFUihlbGVtZW50Q291bnQpOwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBjYWxsRnJhbWUpOwpAQCAtMTA5Myw4ICsxMTA2LDkgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGFycmF5LT5sZW5ndGgo
KSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoRG91
YmxlTXVsdGlwbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNBcnJheSogYXJyYXksIHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50Q291bnQpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZU11bHRpcGxl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkq
IGFycmF5LCB2b2lkKiBidWZmZXIsIEpJVF9JTlQzMihlbGVtZW50Q291bnQpKSkKIHsKKyAgICBK
SVRfREVGSU5FX0lOVEVHRVIoZWxlbWVudENvdW50KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKQEAgLTEyODEsOCArMTI5NSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QYXJzZUludFN0cmluZ05vUmFkaXgsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
CiAgICAgcmV0dXJuIHBhcnNlSW50UmVzdWx0KHBhcnNlSW50KHZpZXdXaXRoU3RyaW5nLnZpZXcs
IDApKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3Ry
aW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3Ry
aW5nKiBzdHJpbmcsIGludDMyX3QgcmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblBhcnNlSW50U3RyaW5nLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIEpJVF9JTlQzMihyYWRpeCkpKQogeworICAg
IEpJVF9ERUZJTkVfSU5URUdFUihyYWRpeCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CkBAIC0xMjk0LDggKzEzMDksOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUGFyc2VJbnRTdHJpbmcsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplYwogICAg
IHJldHVybiBwYXJzZUludFJlc3VsdChwYXJzZUludCh2aWV3V2l0aFN0cmluZy52aWV3LCByYWRp
eCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRHZW5l
cmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QYXJzZUludEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIEpJVF9JTlQzMihyYWRpeCkp
KQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYWRpeCk7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7CkBAIC0xNjEwLDggKzE2MjYsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpcywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGJhc2VW
YWx1ZS5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eSwgc2xvdCkpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCB1
aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlJZFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpJVF9VSU5UUFRSKHJh
d0NhY2hlYWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcik7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBA
IC0xNjIyLDggKzE2MzksOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZFdpdGhUaGlzU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgcHV0V2l0aFRo
aXM8dHJ1ZT4oZ2xvYmFsT2JqZWN0LCBlbmNvZGVkQmFzZSwgZW5jb2RlZFRoaXMsIGVuY29kZWRW
YWx1ZSwgaWRlbnQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZFdpdGhUaGlzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkV2l0aFRoaXMsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTE2NzAsOCArMTY4OCw5IEBAIEFMV0FZU19JTkxJTkUgc3RhdGlj
IHZvaWQgZGVmaW5lRGF0YVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZN
JiB2CiAgICAgICAgIGJhc2UtPm1ldGhvZFRhYmxlKHZtKS0+ZGVmaW5lT3duUHJvcGVydHkoYmFz
ZSwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHRydWUpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQz
Ml90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmlu
ZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgSklUX0lOVDMyKGF0dHJpYnV0ZXMpKSkKIHsKKyAgICBKSVRfREVGSU5F
X0lOVEVHRVIoYXR0cmlidXRlcyk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CkBAIC0xNjgzLDggKzE3MDIsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVmaW5lRGF0YVByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIGRlZmlu
ZURhdGFQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBhdHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBKU1N0cmluZyogcHJv
cGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJp
bmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwg
SlNTdHJpbmcqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpJVF9JTlQz
MihhdHRyaWJ1dGVzKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGF0dHJpYnV0ZXMpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTY5NiwxNiArMTcxNiwxOCBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3Ry
aW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplYwogICAgIGRlZmluZURhdGFQcm9wZXJ0eShnbG9iYWxP
YmplY3QsIHZtLCBiYXNlLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpLCBhdHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBwcm9wZXJ0eSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZ0lkZW50
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFVu
aXF1ZWRTdHJpbmdJbXBsKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBK
SVRfSU5UMzIoYXR0cmlidXRlcykpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihhdHRyaWJ1
dGVzKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xv
Z3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBkZWZpbmVEYXRh
UHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwg
cHJvcGVydHkpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgYXR0cmlidXRlcyk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlT
eW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFz
ZSwgU3ltYm9sKiBwcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90
IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURh
dGFQcm9wZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiBiYXNlLCBTeW1ib2wqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEpJVF9JTlQzMihhdHRyaWJ1dGVzKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGF0
dHJpYnV0ZXMpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTcyMiw4
ICsxNzQ0LDkgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBkZWZpbmVBY2Nlc3NvclByb3Bl
cnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFYKICAgICAgICAgYmFzZS0+bWV0aG9k
VGFibGUodm0pLT5kZWZpbmVPd25Qcm9wZXJ0eShiYXNlLCBnbG9iYWxPYmplY3QsIHByb3BlcnR5
TmFtZSwgZGVzY3JpcHRvciwgdHJ1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0
eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1dGVz
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3Bl
cnR5LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmpl
Y3QqIHNldHRlciwgSklUX0lOVDMyKGF0dHJpYnV0ZXMpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lO
VEVHRVIoYXR0cmlidXRlcyk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBA
IC0xNzM0LDggKzE3NTcsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVm
aW5lQWNjZXNzb3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KgogICAgIGRlZmluZUFj
Y2Vzc29yUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgcHJvcGVydHlOYW1lLCBnZXR0
ZXIsIHNldHRlciwgYXR0cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEpTU3RyaW5nKiBwcm9wZXJ0eSwgSlNP
YmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3Ry
aW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2Us
IEpTU3RyaW5nKiBwcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmplY3QqIHNldHRlciwg
SklUX0lOVDMyKGF0dHJpYnV0ZXMpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoYXR0cmli
dXRlcyk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xNzQ2LDI0ICsx
NzcwLDI3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3Nv
clByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPCiAgICAgZGVmaW5lQWNjZXNzb3JQcm9w
ZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBwcm9wZXJ0eU5hbWUsIGdldHRlciwgc2V0dGVy
LCBhdHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRl
ZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHks
IEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIGludDMyX3QgYXR0cmlidXRlcykp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0
eVN0cmluZ0lkZW50LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmpl
Y3QqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBwcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwg
SlNPYmplY3QqIHNldHRlciwgSklUX0lOVDMyKGF0dHJpYnV0ZXMpKSkKIHsKKyAgICBKSVRfREVG
SU5FX0lOVEVHRVIoYXR0cmlidXRlcyk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7CiAgICAgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShnbG9iYWxPYmplY3QsIHZtLCBiYXNlLCBJ
ZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBwcm9wZXJ0eSksIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1
dGVzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vz
c29yUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U09iamVjdCogYmFzZSwgU3ltYm9sKiBwcm9wZXJ0eSwgSlNPYmplY3QqIGdldHRlciwgSlNPYmpl
Y3QqIHNldHRlciwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFN5bWJvbCogcHJvcGVydHksIEpT
T2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIEpJVF9JTlQzMihhdHRyaWJ1dGVzKSkp
CiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGF0dHJpYnV0ZXMpOwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIGRlZmluZUFjY2Vzc29yUHJvcGVydHkoZ2xvYmFsT2Jq
ZWN0LCB2bSwgYmFzZSwgSWRlbnRpZmllcjo6ZnJvbVVpZChwcm9wZXJ0eS0+cHJpdmF0ZU5hbWUo
KSksIGdldHRlciwgc2V0dGVyLCBhdHRyaWJ1dGVzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIHZvaWQqIGJ1ZmZlciwgc2l6ZV90IHNp
emUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5LCBjaGFyKiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUs
IHZvaWQqIGJ1ZmZlciwgSklUX1NJWkVUKHNpemUpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIoc2l6ZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xNzgxLDgg
KzE4MDgsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RW1wdHlBcnJh
eSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cgogICAgIHJldHVybiBiaXR3aXNlX2Nh
c3Q8Y2hhcio+KEpTQXJyYXk6OmNyZWF0ZSh2bSwgYXJyYXlTdHJ1Y3R1cmUpKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZSwg
aW50MzJfdCBzaXplLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCBKSVRfSU5UMzIoc2l6ZSks
IEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoc2l6ZSk7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xODA2LDggKzE4MzQsMTAg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemUsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGNoYXIq
PihyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJy
YXlXaXRoU2l6ZUFuZEhpbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZSwgaW50MzJfdCBzaXplLCBpbnQzMl90IHZlY3Rvckxl
bmd0aEhpbnQsIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdBcnJheVdpdGhTaXplQW5kSGludCwgY2hhciosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCBKSVRfSU5UMzIoc2l6
ZSksIEpJVF9JTlQzMih2ZWN0b3JMZW5ndGhIaW50KSwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQog
eworICAgIEpJVF9ERUZJTkVfSU5URUdFUihzaXplKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
dmVjdG9yTGVuZ3RoSGludCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBA
IC0xODQ1LDggKzE4NzUsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3
QXJyYXlCdWZmZXIsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBTdHJ1YwogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQ4QXJy
YXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKSVRfSU5U
UFRSKGxlbmd0aCksIGNoYXIqIHZlY3RvcikpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGxl
bmd0aCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xODYxLDggKzE4
OTIsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5V2l0
aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsTwogICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpT
SW50OEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6
Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0lu
dDE2QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2QXJyYXlXaXRoU2l6ZSwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
SklUX0lOVFBUUihsZW5ndGgpLCBjaGFyKiB2ZWN0b3IpKQogeworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihsZW5ndGgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0
aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTg3
Nyw4ICsxOTA5LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDE2
QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iYWwKICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3Vt
ZW50czxKU0ludDE2QXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUs
IDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uTmV3SW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3Rv
cikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3SW50MzJBcnJheVdpdGhT
aXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKSVRfSU5UUFRSKGxlbmd0aCksIGNoYXIqIHZlY3RvcikpCiB7CisgICAgSklUX0RF
RklORV9JTlRFR0VSKGxlbmd0aCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CkBAIC0xODkzLDggKzE5MjYsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TmV3SW50MzJBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhbAogICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdX
aXRoQXJndW1lbnRzPEpTSW50MzJBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29k
ZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdVaW50OEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hh
ciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OEFy
cmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpJVF9JTlRQVFIobGVuZ3RoKSwgY2hhciogdmVjdG9yKSkKIHsKKyAg
ICBKSVRfREVGSU5FX0lOVEVHRVIobGVuZ3RoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKQEAgLTE5MDksOCArMTk0Myw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdVaW50OEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmFsCiAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFy
cmF5Vmlld1dpdGhBcmd1bWVudHM8SlNVaW50OEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVy
ZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aFNpemUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0
cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25OZXdVaW50OENsYW1wZWRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKSVRfSU5UUFRSKGxlbmd0aCks
IGNoYXIqIHZlY3RvcikpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGxlbmd0aCk7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xOTI1LDggKzE5NjAsOSBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRoT25l
QXJndW1lbnQsIGNoYXIqLCAoSgogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihj
b25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWludDhDbGFtcGVk
QXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVs
bG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2
QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aFNpemUsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpJ
VF9JTlRQVFIobGVuZ3RoKSwgY2hhciogdmVjdG9yKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIobGVuZ3RoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTE5NDEs
OCArMTk3Nyw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MTZB
cnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2JhCiAgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVu
dHM8SlNVaW50MTZBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwg
MCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdVaW50MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3Rv
cikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRo
U2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSklUX0lOVFBUUihsZW5ndGgpLCBjaGFyKiB2ZWN0b3IpKQogeworICAgIEpJVF9E
RUZJTkVfSU5URUdFUihsZW5ndGgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwpAQCAtMTk1Nyw4ICsxOTk0LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld1VpbnQzMkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYmEKICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3
V2l0aEFyZ3VtZW50czxKU1VpbnQzMkFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5j
b2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgs
IGNoYXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3Rmxv
YXQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpJVF9JTlRQVFIobGVuZ3RoKSwgY2hhciogdmVjdG9yKSkK
IHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobGVuZ3RoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTE5NzMsOCArMjAxMSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNH
bG9iCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNU
eXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNGbG9hdDMyQXJyYXk+KGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aFNpemUsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGlu
dHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdGbG9hdDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSklUX0lOVFBUUihsZW5ndGgpLCBj
aGFyKiB2ZWN0b3IpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihsZW5ndGgpOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTk4OSw4ICsyMDI4LDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0NjRBcnJheVdpdGhPbmVBcmd1bWVu
dCwgY2hhciosIChKU0dsb2IKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29u
c3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0Zsb2F0NjRBcnJheT4o
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdJbnQ2NEFycmF5
V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdJbnQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpJVF9J
TlRQVFIobGVuZ3RoKSwgY2hhciogdmVjdG9yKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
bGVuZ3RoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTIwMDUsOCAr
MjA0NSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdJbnQ2NEFy
cmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8
SlNCaWdJbnQ2NEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAw
LCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld0JpZ1VpbnQ2NEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0aCwgY2hhciogdmVj
dG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdVaW50NjRBcnJh
eVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKSVRfSU5UUFRSKGxlbmd0aCksIGNoYXIqIHZlY3RvcikpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKGxlbmd0aCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CkBAIC0yMDU4LDggKzIwOTksMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJlY3QsIEpTQ2VsbCosIChWTSogdm1Qb2ludGUKICAg
ICByZXR1cm4gSlNMZXhpY2FsRW52aXJvbm1lbnQ6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCBzY29w
ZSwgdGFibGUsIGluaXRpYWxWYWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHMsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdWludDMyX3QgbGVuZ3RoLCB1aW50MzJfdCBtaW5DYXBhY2l0
eSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1l
bnRzLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpJVF9V
SU5UMzIobGVuZ3RoKSwgSklUX1VJTlQzMihtaW5DYXBhY2l0eSkpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihsZW5ndGgpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihtaW5DYXBhY2l0eSk7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjA3Miw4ICsyMTE1LDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50cywgSlNDZWxs
KiwgKFZNKiB2bVBvaW50ZXIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ2lzdGVy
KiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxlZSwgSlNM
ZXhpY2FsRW52aXJvbm1lbnQqIHNjb3BlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVTY29wZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQs
IEpJVF9VSU5UMzIobGVuZ3RoKSwgSlNGdW5jdGlvbiogY2FsbGVlLCBKU0xleGljYWxFbnZpcm9u
bWVudCogc2NvcGUpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihsZW5ndGgpOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjA4Niw4ICsyMTMwLDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50cywgSlNDZWxs
KiwgKEpTR2xvYmFsT2JqZWMKICAgICAgICAgdm0sIHN0cnVjdHVyZSwgYXJndW1lbnRTdGFydCwg
bGVuZ3RoLCBjYWxsZWUsIHRhYmxlLCBzY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnaXN0ZXIqIGFyZ3Vt
ZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwgSlNGdW5jdGlvbiogY2FsbGVlKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMsIEpTQ2VsbCos
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVn
aXN0ZXIqIGFyZ3VtZW50U3RhcnQsIEpJVF9VSU5UMzIobGVuZ3RoKSwgSlNGdW5jdGlvbiogY2Fs
bGVlKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobGVuZ3RoKTsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTIwOTUsOCArMjE0MCw5IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0ds
b2JhbE9iamVjCiAgICAgICAgIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBhcmd1bWVudFN0YXJ0
LCBsZW5ndGgsIGNhbGxlZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25DcmVhdGVBcmd1bWVudHNCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgYXJndW1lbnRDb3Vu
dCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRzQnV0
dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIq
IGFyZ3VtZW50U3RhcnQsIEpJVF9VSU5UMzIoYXJndW1lbnRDb3VudCkpKQogeworICAgIEpJVF9E
RUZJTkVfSU5URUdFUihhcmd1bWVudENvdW50KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKQEAgLTIxMTIsOCArMjE1OCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iCiAg
ICAgcmV0dXJuIGJ1dHRlcmZseTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSogdm1Qb2lu
dGVyLCBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSwgSlNGdW5jdGlvbiogY2FsbGVl
LCB1aW50MzJfdCBhcmd1bWVudENvdW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZtUG9p
bnRlciwgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNhbGxl
ZSwgSklUX1VJTlQzMihhcmd1bWVudENvdW50KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VS
KGFyZ3VtZW50Q291bnQpOwogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTIxNDIsOCAr
MjE4OSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RB
cmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50
c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyLCBJbmxpbmVDYWxsRnJhbWUqIGlu
bGluZUNhbGxGcmFtZSwgSlNGdW5jdGlvbiogY2FsbGVlLCB1aW50MzJfdCBhcmd1bWVudENvdW50
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVu
dHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgSW5saW5lQ2FsbEZyYW1lKiBp
bmxpbmVDYWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNhbGxlZSwgSklUX1VJTlQzMihhcmd1bWVudENv
dW50KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGFyZ3VtZW50Q291bnQpOwogICAgIFZN
JiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTIxNzEsOCArMjIxOSwxMCBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlND
ZWxsKiwgKFZNKgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVuc2lnbmVkIG51bWJlck9mUGFyYW1z
VG9Ta2lwLCB1bnNpZ25lZCBhcnJheVNpemUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNyZWF0ZVJlc3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgSklUX1VJTlQzMihudW1iZXJPZlBhcmFtc1RvU2tp
cCksIEpJVF9VSU5UMzIoYXJyYXlTaXplKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKG51
bWJlck9mUGFyYW1zVG9Ta2lwKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoYXJyYXlTaXplKTsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTIyNTAsOCArMjMwMCw5IEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5
U3RvcmFnZVdpdGhJbml0aWFsQ2FwYWNpCiAgICAgICAgIEJ1dHRlcmZseTo6Y3JlYXRlVW5pbml0
aWFsaXplZCh2bSwgbnVsbHB0ciwgMCwgaW5pdGlhbE91dE9mTGluZUNhcGFjaXR5LCBmYWxzZSwg
MCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVTaW1w
bGVQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgc2l6ZV90IG5ld1NpemUp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVy
dHlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpJVF9TSVpFVChuZXdTaXplKSkpCiB7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKG5ld1NpemUpOwogICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKQEAgLTIyNzEsOCArMjMyMiw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjCiAgICAg
ICAgIG9iamVjdC0+YWxsb2NhdGVNb3JlT3V0T2ZMaW5lU3RvcmFnZSh2bSwgMCwgaW5pdGlhbE91
dE9mTGluZUNhcGFjaXR5KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25BbGxvY2F0ZUNvbXBsZXhQcm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwg
SlNPYmplY3QqIG9iamVjdCwgc2l6ZV90IG5ld1NpemUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkFsbG9jYXRlQ29tcGxleFByb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSog
dm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBKSVRfU0laRVQobmV3U2l6ZSkpKQogeworICAg
IEpJVF9ERUZJTkVfSU5URUdFUihuZXdTaXplKTsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CkBAIC0yMzM3LDggKzIzODksOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RW5zdXJlQXJyYXlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTQwogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNJbmRl
eGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2Vs
bCogYmFzZUNlbGwsIGludDMyX3Qgc3Vic2NyaXB0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZUNlbGwsIEpJVF9JTlQzMihzdWJzY3JpcHQpKSkKIHsK
KyAgICBKSVRfREVGSU5FX0lOVEVHRVIoc3Vic2NyaXB0KTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTIzNTAsOCArMjQwMyw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0
KiBnCiAgICAgcmV0dXJuIG9iamVjdC0+aGFzUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oc3Vic2NyaXB0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25IYXNFbnVtZXJhYmxlSW5kZXhlZFByb3BlcnR5LCBzaXplX3QsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2VDZWxsLCBpbnQzMl90IHN1YnNjcmlw
dCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzRW51bWVyYWJsZUluZGV4
ZWRQcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBiYXNlQ2VsbCwgSklUX0lOVDMyKHN1YnNjcmlwdCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihzdWJzY3JpcHQpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAt
MjM5Myw4ICsyNDQ3LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQ
cm9wZXJ0eUVudW1lcmF0b3JDZWxsLCBKU0NlbGwqLCAoSlNHbG9iYWxPCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBwcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKGdsb2JhbE9iamVjdCwgYmFz
ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5l
eHRVcGRhdGVJbmRleEFuZE1vZGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCB1aW50MzJfdCBpbmRleCwgaW50
MzJfdCBtb2RlTnVtYmVyLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlSW5k
ZXhBbmRNb2RlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgSklUX1VJTlQzMihpbmRleCksIEpJVF9JTlQzMiht
b2RlTnVtYmVyKSwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKIHsKKyAg
ICBKSVRfREVGSU5FX0lOVEVHRVIoaW5kZXgpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihtb2Rl
TnVtYmVyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTI0MjQsOCAr
MjQ4MCwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvck5l
eHRVcGRhdGVJbmRleEFuZE1vZGUsIEVuY29kZWRKU1ZhbAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVu
dW1lcmF0b3JOZXh0VXBkYXRlUHJvcGVydHlOYW1lLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCB1aW50MzJfdCBpbmRleCwgaW50MzJfdCBtb2RlTnVtYmVyLCBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlUHJvcGVydHlOYW1lLCBKU1N0cmluZyos
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKSVRfVUlOVDMyKGluZGV4KSwgSklUX0lO
VDMyKG1vZGVOdW1iZXIpLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IpKQog
eworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CisgICAgSklUX0RFRklORV9JTlRFR0VS
KG1vZGVOdW1iZXIpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0
aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjQ0
Myw4ICsyNTAxLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0
b3JOZXh0VXBkYXRlUHJvcGVydHlOYW1lLCBKU1N0cmluZyosICgKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvclJlY292
ZXJOYW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCB1aW50MzJfdCBpbmRleCwgSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25FbnVtZXJhdG9yUmVjb3Zlck5hbWVBbmRHZXRCeVZhbCwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlVmFs
dWUsIEpJVF9VSU5UMzIoaW5kZXgpLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0
b3IpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yNDYxLDggKzI1MjAsMTAgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFtZUFuZEdldEJ5VmFsLCBFbmNv
ZGVkSlNWYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShv
YmplY3QtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSkpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JJbkJ5VmFsLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgcHJvcGVydHlOYW1lVmFsdWUsIHVpbnQzMl90IGluZGV4LCBpbnQz
Ml90IG1vZGVOdW1iZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1l
cmF0b3JJbkJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvcGVydHlOYW1l
VmFsdWUsIEpJVF9VSU5UMzIoaW5kZXgpLCBKSVRfSU5UMzIobW9kZU51bWJlcikpKQogeworICAg
IEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKG1vZGVO
dW1iZXIpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjQ3Niw4ICsy
NTM3LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9ySW5C
eVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKENvbW1vblNsb3dQYXRoczo6b3BJbkJ5
VmFsKGdsb2JhbE9iamVjdCwgYmFzZSwgcHJvcGVydHlOYW1lKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBi
YXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3BlcnR5TmFtZVZhbHVlLCB1aW50MzJfdCBpbmRl
eCwgaW50MzJfdCBtb2RlTnVtYmVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25FbnVtZXJhdG9ySGFzT3duUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBwcm9wZXJ0eU5hbWVWYWx1ZSwgSklUX1VJTlQzMihpbmRleCksIEpJVF9JTlQzMihtb2RlTnVt
YmVyKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGluZGV4KTsKKyAgICBKSVRfREVGSU5F
X0lOVEVHRVIobW9kZU51bWJlcik7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CkBAIC0yNTM0LDggKzI1OTcsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blN0cmluZ1ZhbHVlT2YsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmlu
Z1N1YnN0ciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCog
Y2VsbCwgaW50MzJfdCBmcm9tLCBpbnQzMl90IHNwYW4pKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvblN0cmluZ1N1YnN0ciwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgSklUX0lOVDMyKGZyb20pLCBKSVRfSU5UMzIoc3Bhbikp
KQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihmcm9tKTsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIoc3Bhbik7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yNTQzLDE5
ICsyNjA4LDIyIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTdWJz
dHIsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIGpzU3Vic3Ry
aW5nKHZtLCBnbG9iYWxPYmplY3QsIGpzQ2FzdDxKU1N0cmluZyo+KGNlbGwpLCBmcm9tLCBzcGFu
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1NsaWNlLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBpbnQz
Ml90IHN0YXJ0LCBpbnQzMl90IGVuZCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU3RyaW5nU2xpY2UsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIGNlbGwsIEpJVF9JTlQzMihzdGFydCksIEpJVF9JTlQzMihlbmQpKSkKIHsKKyAgICBK
SVRfREVGSU5FX0lOVEVHRVIoc3RhcnQpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihlbmQpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogCiAgICAgSlNTdHJpbmcqIHN0cmlu
ZyA9IGFzU3RyaW5nKGNlbGwpOwogICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KEpTU3RyaW5nOjpNYXhMZW5ndGgpIDw9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSksICIiKTsKLSAgICByZXR1cm4gc3RyaW5nU2xp
Y2UoZ2xvYmFsT2JqZWN0LCB2bSwgc3RyaW5nLCBzdHJpbmctPmxlbmd0aCgpLCBzdGFydCwgZW5k
KTsKKyAgICByZXR1cm4gc3RyaW5nU2xpY2U8aW50MzJfdD4oZ2xvYmFsT2JqZWN0LCB2bSwgc3Ry
aW5nLCBzdHJpbmctPmxlbmd0aCgpLCBzdGFydCwgZW5kKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCB1aW50MzJfdCBmYWlsaW5nSW5kZXgp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRvTG93ZXJDYXNlLCBKU1N0cmlu
ZyosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCBKSVRf
VUlOVDMyKGZhaWxpbmdJbmRleCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihmYWlsaW5n
SW5kZXgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjU3Myw4ICsy
NjQxLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0xvd2VyQ2FzZSwg
SlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBqc1N0cmluZyh2bSwgbG93ZXJjYXNlZFN0cmluZykpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpJVF9JTlQzMih2YWx1ZSksIEpJVF9JTlQzMihyYWRp
eCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUih2YWx1ZSk7CisgICAgSklUX0RFRklORV9J
TlRFR0VSKHJhZGl4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJh
dGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTI1
ODksOCArMjY1OSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50MzJU
b1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihpbnQzMlRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmcsIGNoYXIq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50NjRfdCB2YWx1ZSwgaW50MzJfdCBy
YWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50NTJUb1N0cmluZywg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKSVRfSU5UNjQodmFsdWUpLCBK
SVRfSU5UMzIocmFkaXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIodmFsdWUpOworICAg
IEpJVF9ERUZJTkVfSU5URUdFUihyYWRpeCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CkBAIC0yNjA1LDggKzI2NzcsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSW50NTJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihpbnQ1MlRvU3RyaW5nKHZtLCB2YWx1ZSwg
cmFkaXgpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRv
U3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1
ZSwgaW50MzJfdCByYWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91
YmxlVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgZG91Ymxl
IHZhbHVlLCBKSVRfSU5UMzIocmFkaXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmFk
aXgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjYyMSw4ICsyNjk0
LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZywg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KG51bWJlclRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeCwg
Y2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IHZhbHVlLCBpbnQz
Ml90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3Ry
aW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SklUX0lOVDMyKHZhbHVlKSwgSklUX0lOVDMyKHJhZGl4KSkpCiB7CisgICAgSklUX0RFRklORV9J
TlRFR0VSKHZhbHVlKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmFkaXgpOwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjYzMCw4ICsyNzA1LDEwIEBAIEpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNo
YXIqLCAoSlNHbG9iYWxPCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGludDMy
VG9TdHJpbmcodm0sIHZhbHVlLCByYWRpeCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSW50NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDY0X3QgdmFsdWUsIGludDMyX3QgcmFkaXgpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFsaWRSYWRp
eCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKSVRfSU5UNjQodmFsdWUp
LCBKSVRfSU5UMzIocmFkaXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIodmFsdWUpOwor
ICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYWRpeCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7CkBAIC0yNjM5LDggKzI3MTYsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSW50NTJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsTwog
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihpbnQ1MlRvU3RyaW5nKHZtLCB2YWx1
ZSwgcmFkaXgpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJs
ZVRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgZG91YmxlIHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSwgSklUX0lOVDMyKHJhZGl4KSkp
CiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhZGl4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTI2NTcsOCArMjczNSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25GdW5jdGlvblRvU3RyaW5nLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVj
dCoKICAgICByZXR1cm4gZnVuY3Rpb24tPnRvU3RyaW5nKGdsb2JhbE9iamVjdCk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIEpT
U3RyaW5nKiwgKFZNKiB2bVBvaW50ZXIsIGludDMyX3QgY2hhcmFjdGVyKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIEpTU3RyaW5nKiwg
KFZNKiB2bVBvaW50ZXIsIEpJVF9JTlQzMihjaGFyYWN0ZXIpKSkKIHsKKyAgICBKSVRfREVGSU5F
X0lOVEVHRVIoY2hhcmFjdGVyKTsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yODA3
LDggKzI4ODYsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0ckNhdDMs
IEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIGpzU3RyaW5nKGdsb2JhbE9iamVjdCwgc3RyMSwgc3RyMiwgc3RyMykpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdl
dEZvckRvdWJsZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1pbikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRvdWJsZSwgY2hhciosIChW
TSogdm1Qb2ludGVyLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpJVF9TSVpFVCh0YWJs
ZUluZGV4KSwgSklUX0lOVDMyKG1pbikpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUih0YWJs
ZUluZGV4KTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobWluKTsKICAgICBWTSYgdm0gPSAqdm1Q
b2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7CkBAIC0yODIzLDggKzI5MDQsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRmluZFN3aXRjaEltbVRhcmdldEZvckRvdWJsZSwgY2hhciosIChWTSogdm1Qbwog
ICAgIHJldHVybiBsaW5rZWRUYWJsZS5tX2N0aURlZmF1bHQuZXhlY3V0YWJsZUFkZHJlc3M8Y2hh
cio+KCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJp
bmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgc2l6ZV90IHRhYmxlSW5k
ZXgsIGNvbnN0IFVubGlua2VkU3RyaW5nSnVtcFRhYmxlKiB1bmxpbmtlZFRhYmxlLCBKU1N0cmlu
Zyogc3RyaW5nKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJp
bmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSklUX1NJWkVUKHRhYmxl
SW5kZXgpLCBjb25zdCBVbmxpbmtlZFN0cmluZ0p1bXBUYWJsZSogdW5saW5rZWRUYWJsZSwgSlNT
dHJpbmcqIHN0cmluZykpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHRhYmxlSW5kZXgpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjkxMiw4ICsyOTk0LDkgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0ZvclZh
cmFyZ3MsIHZvaWQsIChKU0dsb2JhbE8KICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blNpemVPZlZhcmFyZ3MsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIHVpbnQzMl90IGZpcnN0VmFy
QXJnT2Zmc2V0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplT2ZWYXJh
cmdzLCBVQ1BVU3RyaWN0SW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBKSVRfVUlOVDMyKGZpcnN0VmFyQXJnT2Zmc2V0
KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGZpcnN0VmFyQXJnT2Zmc2V0KTsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTI5NTEsOCArMzAzNCw5IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJc0ludGVnZXIsIHNpemVfdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIE51bWJlckNvbnN0cnVjdG9yOjppc0ludGVn
ZXJJbXBsKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mU3RyaW5nLCBVQ1BVU3RyaWN0SW50MzIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgSlNTdHJpbmcq
IHNlYXJjaEVsZW1lbnQsIGludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBidXR0ZXJmbHksIEpTU3RyaW5nKiBzZWFy
Y2hFbGVtZW50LCBKSVRfSU5UMzIoaW5kZXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
aW5kZXgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjk3Niw4ICsz
MDYwLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0
cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWwKICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0
SW50MzIoLTEpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJ
bmRleE9mVmFsdWVJbnQzMk9yQ29udGlndW91cywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBidXR0ZXJmbHksIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgaW50MzJfdCBpbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVJbnQzMk9yQ29udGlndW91cywgVUNQVVN0cmljdElu
dDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBidXR0ZXJmbHks
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSklUX0lOVDMyKGluZGV4KSkpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKGluZGV4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKQEAgLTI5OTksOCArMzA4NCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BcnJheUluZGV4T2ZWYWx1ZUludDMyT3JDb250aWd1b3VzLCBVQ1BVU3RyaWN0CiAgICAg
cmV0dXJuIHRvVUNQVVN0cmljdEludDMyKC0xKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlRG91YmxlLCBVQ1BVU3RyaWN0SW50MzIsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBpbnQzMl90IGluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1ZURvdWJsZSwgVUNQVVN0cmljdEludDMy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQnV0dGVyZmx5KiBidXR0ZXJmbHksIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSklUX0lOVDMyKGluZGV4KSkpCiB7CisgICAgSklU
X0RFRklORV9JTlRFR0VSKGluZGV4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKQEAgLTMwMjEsOCArMzEwNywxMiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQXJyYXlJbmRleE9mVmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTRwogICAgIHJl
dHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Mb2FkVmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGludDMyX3QgZmlyc3RFbGVtZW50RGVzdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3Vt
ZW50cywgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBsZW5ndGhJbmNsdWRpbmdUaGlzLCB1aW50
MzJfdCBtYW5kYXRvcnlNaW5pbXVtKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25Mb2FkVmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpJVF9J
TlQzMihmaXJzdEVsZW1lbnREZXN0KSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywg
SklUX1VJTlQzMihvZmZzZXQpLCBKSVRfVUlOVDMyKGxlbmd0aEluY2x1ZGluZ1RoaXMpLCBKSVRf
VUlOVDMyKG1hbmRhdG9yeU1pbmltdW0pKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoZmly
c3RFbGVtZW50RGVzdCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKG9mZnNldCk7CisgICAgSklU
X0RFRklORV9JTlRFR0VSKGxlbmd0aEluY2x1ZGluZ1RoaXMpOworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihtYW5kYXRvcnlNaW5pbXVtKTsKICAgICBWaXJ0dWFsUmVnaXN0ZXIgZmlyc3RFbGVtZW50
IHsgZmlyc3RFbGVtZW50RGVzdCB9OwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CkBAIC0z
MDM1LDkgKzMxMjUsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkxvYWRW
YXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICAgICAgY2FsbEZy
YW1lLT5yKGZpcnN0RWxlbWVudCArIGkpID0ganNVbmRlZmluZWQoKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZNb2RPbkludHMsIGRvdWJsZSwgKGludDMyX3QgYSwg
aW50MzJfdCBiKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25GTW9kT25JbnRz
LCBkb3VibGUsIChKSVRfSU5UMzIoYSksIEpJVF9JTlQzMihiKSkpCiB7Ci0gICAgcmV0dXJuIGZt
b2QoYSwgYik7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGEpOworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihiKTsKKyAgICByZXR1cm4gZm1vZChpbnQzMl90KGEpLCBpbnQzMl90KGIpKTsKIH0KIAog
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0zMDQ3LDggKzMxMzksOSBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUmFuZG9tLCBkb3VibGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogfQogI2VuZGlmCiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25TdHJpbmdGcm9tQ2hhckNvZGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBpbnQzMl90IG9wMSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3Ry
aW5nRnJvbUNoYXJDb2RlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SklUX0lOVDMyKG9wMSkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihvcDEpOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzA3OCw4ICszMTcxLDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnREb3VibGVUb0ludDUyLCBpbnQ2NF90
LCAoZG91YmxlIHZhbHVlKSkKICAgICByZXR1cm4gdHJ5Q29udmVydFRvSW50NTIodmFsdWUpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmF3T2JqZWN0LCBjaGFy
KiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQzMl90IGxlbmd0aCwg
QnV0dGVyZmx5KiBidXR0ZXJmbHkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld1Jhd09iamVjdCwgY2hhciosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSklUX0lOVDMyKGxlbmd0aCksIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKIHsKKyAgICBKSVRf
REVGSU5FX0lOVEVHRVIobGVuZ3RoKTsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0z
MTE3LDggKzMyMTEsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2Jq
ZWN0V2l0aEJ1dHRlcmZseSwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZQogICAgIHJldHVybiBKU0Zp
bmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0dGVyZmx5KHZtLCBzdHJ1Y3R1cmUsIGJ1dHRlcmZseSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0
dGVyZmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVjdG9yTGVuZ3RoLCBKU0NlbGwqLCAoVk0qIHZt
UG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGxlbmd0aCwgQnV0dGVyZmx5
KiBidXR0ZXJmbHkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVj
dFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFkZXJBbmRWZWN0b3JMZW5ndGgsIEpTQ2VsbCos
IChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSklUX1VJTlQzMihsZW5ndGgp
LCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGxlbmd0
aCk7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzEzOSw4ICszMjM0LDkgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRo
SW5kZXhpbmdIZWFkZXJBbmRWZWMKICAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRlV2l0
aEJ1dHRlcmZseSh2bSwgc3RydWN0dXJlLCBidXR0ZXJmbHkpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU3ByZWFkU2xvdywgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHZvaWQqIGJ1ZmZlciwgdWludDMyX3QgbnVtSXRl
bXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNwcmVh
ZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2b2lkKiBidWZm
ZXIsIEpJVF9VSU5UMzIobnVtSXRlbXMpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobnVt
SXRlbXMpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzE5OCw4ICsz
Mjk0LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNw
cmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlSW1tdXRhYmxlQnV0dGVy
Zmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWduZWQgbGVu
Z3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFibGVC
dXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKSVRfVUlO
VDMyKGxlbmd0aCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihsZW5ndGgpOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzI4OCw4ICszMzg1LDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29sdmVTY29wZSwgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gcmVzb2x2ZWRTY29wZTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldER5bmFtaWNWYXIsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNjb3BlLCBVbmlxdWVk
U3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldER5bmFtaWNWYXIsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNjb3BlLCBVbmlxdWVkU3RyaW5n
SW1wbCogaW1wbCwgSklUX1VJTlQzMihnZXRQdXRJbmZvQml0cykpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihnZXRQdXRJbmZvQml0cyk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CkBAIC0zMzQ4LDggKzM0NDYsOSBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIHB1
dER5bmFtaWNWYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBKUwogICAg
IHNjb3BlLT5tZXRob2RUYWJsZSh2bSktPnB1dChzY29wZSwgZ2xvYmFsT2JqZWN0LCBpZGVudCwg
SlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgVW5p
cXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdldFB1dEluZm9CaXRzKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1
ZSB2YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIEpJVF9VSU5UMzIoZ2V0UHV0SW5mb0Jp
dHMpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoZ2V0UHV0SW5mb0JpdHMpOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzM1Nyw4ICszNDU2LDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2wKICAgICByZXR1cm4gcHV0RHluYW1pY1ZhcihnbG9iYWxPYmplY3Qs
IHZtLCBzY29wZSwgdmFsdWUsIGltcGwsIGdldFB1dEluZm9CaXRzLCBpc1N0cmljdE1vZGUpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1Zhck5vblN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBzY29w
ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNpZ25l
ZCBnZXRQdXRJbmZvQml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
RHluYW1pY1Zhck5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBs
KiBpbXBsLCBKSVRfVUlOVDMyKGdldFB1dEluZm9CaXRzKSkpCiB7CisgICAgSklUX0RFRklORV9J
TlRFR0VSKGdldFB1dEluZm9CaXRzKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKQEAgLTMzOTIsOCArMzQ5Miw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25NYXBIYXNoSGVhcEJpZ0ludCwgVUNQVVN0cmljdEludDMyLCAoVk0qIHZtUG9pCiAgICAgcmV0
dXJuIHRvVUNQVVN0cmljdEludDMyKGpzTWFwSGFzaChpbnB1dCkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtleSwg
aW50MzJfdCBoYXNoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU01hcEZp
bmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IG1hcCwgRW5jb2RlZEpTVmFsdWUga2V5LCBKSVRfSU5UMzIoaGFzaCkpKQogeworICAgIEpJVF9E
RUZJTkVfSU5URUdFUihoYXNoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
QEAgLTM0MDMsOCArMzUwNCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25K
U01hcEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJu
ICpidWNrZXQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU1NldEZp
bmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IG1hcCwgRW5jb2RlZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIEpJVF9J
TlQzMihoYXNoKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGhhc2gpOwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzQxNCw4ICszNTE2LDkgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTU2V0RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG8KICAgICByZXR1cm4gKmJ1Y2tldDsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogc2V0LCBFbmNvZGVkSlNWYWx1ZSBrZXksIGludDMyX3QgaGFzaCkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0QWRkLCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBzZXQsIEVuY29kZWRKU1ZhbHVlIGtl
eSwgSklUX0lOVDMyKGhhc2gpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoaGFzaCk7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0zNDI1LDggKzM1MjgsOSBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0QWRkLCBKU0NlbGwqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVybiBidWNrZXQ7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBTZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1hcCwgRW5jb2RlZEpTVmFsdWUga2V5LCBFbmNvZGVk
SlNWYWx1ZSB2YWx1ZSwgaW50MzJfdCBoYXNoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25NYXBTZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NlbGwqIG1hcCwgRW5jb2RlZEpTVmFsdWUga2V5LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgSklU
X0lOVDMyKGhhc2gpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoaGFzaCk7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0zNDM2LDE2ICszNTQwLDE4IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NYXBTZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIGJ1Y2tldDsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldlYWtTZXRBZGQsIHZvaWQsIChWTSogdm1Qb2ludGVyLCBK
U0NlbGwqIHNldCwgSlNDZWxsKiBrZXksIGludDMyX3QgaGFzaCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2Vha1NldEFkZCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIEpTQ2Vs
bCogc2V0LCBKU0NlbGwqIGtleSwgSklUX0lOVDMyKGhhc2gpKSkKIHsKKyAgICBKSVRfREVGSU5F
X0lOVEVHRVIoaGFzaCk7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIGpzQ2FzdDxK
U1dlYWtTZXQqPihzZXQpLT5hZGQodm0sIGFzT2JqZWN0KGtleSksIEpTVmFsdWUoKSwgaGFzaCk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrTWFwU2V0LCB2b2lk
LCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBtYXAsIEpTQ2VsbCoga2V5LCBFbmNvZGVkSlNWYWx1
ZSB2YWx1ZSwgaW50MzJfdCBoYXNoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XZWFrTWFwU2V0LCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBtYXAsIEpTQ2VsbCog
a2V5LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgSklUX0lOVDMyKGhhc2gpKSkKIHsKKyAgICBKSVRf
REVGSU5FX0lOVEVHRVIoaGFzaCk7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0
aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzY3
MCw4ICszNzc2LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93REZH
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBzY29wZS50aHJvd0V4
Y2VwdGlvbihnbG9iYWxPYmplY3QsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZVRvVGhyb3cpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogbWVzc2FnZSwgdWlu
dDMyX3QgZXJyb3JUeXBlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UaHJv
d1N0YXRpY0Vycm9yLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJp
bmcqIG1lc3NhZ2UsIEpJVF9VSU5UMzIoZXJyb3JUeXBlKSkpCiB7CisgICAgSklUX0RFRklORV9J
TlRFR0VSKGVycm9yVHlwZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBA
IC00MTE5LDggKzQyMjYsOSBAQCBzdGF0aWMgY2hhciogdGllclVwQ29tbW9uKFZNJiB2bSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIEJ5dGVjb2RlSW5kZXggb3JpZ2luQnl0ZQogICAgIHJldHVybiB0
YWdDb2RlUHRyV2l0aFN0YWNrUG9pbnRlckZvckpJVENhbGwodW50YWdDb2RlUHRyPGNoYXIqLCBK
U0VudHJ5UHRyVGFnPihhZGRyZXNzKSwgY2FsbEZyYW1lKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3dJbkxvb3AsIHZvaWQsIChWTSogdm1Q
b2ludGVyLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiB2bVBvaW50
ZXIsIEpJVF9VSU5UMzIoYnl0ZWNvZGVJbmRleEJpdHMpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lO
VEVHRVIoYnl0ZWNvZGVJbmRleEJpdHMpOwogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAg
LTQxNTEsOCArNDI1OSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ucmln
Z2VyVGllclVwTm93SW5Mb29wLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwKICAgICB9CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyT1NSRW50cnlOb3csIGNoYXIq
LCAoVk0qIHZtUG9pbnRlciwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJPU1JFbnRyeU5vdywgY2hhciosIChWTSog
dm1Qb2ludGVyLCBKSVRfVUlOVDMyKGJ5dGVjb2RlSW5kZXhCaXRzKSkpCiB7CisgICAgSklUX0RF
RklORV9JTlRFR0VSKGJ5dGVjb2RlSW5kZXhCaXRzKTsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVy
OwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IGZiZDZk
MDllNDY3Mi4uM2I1YWFkOWYwZGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuaApAQCAtMjEzLDcgKzIxMyw3IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplCiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50c0R1
cmluZ0V4aXQsIEpTQ2VsbCosIChWTSosIElubGluZUNhbGxGcmFtZSosIEpTRnVuY3Rpb24qLCB1
aW50MzJfdCBhcmd1bWVudENvdW50KSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNyZWF0ZUNsb25lZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGxlbmd0aCwgSlNGdW5j
dGlvbiogY2FsbGVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0
ZUFyZ3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnaXN0ZXIq
IGFyZ3VtZW50U3RhcnQsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQpKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRzVG9T
a2lwLCB1bnNpZ25lZCBhcnJheVNpemUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQ3JlYXRlUmVzdCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgUmVnaXN0ZXIqIGFy
Z3VtZW50U3RhcnQsIHVpbnQzMl90IG51bWJlck9mQXJndW1lbnRzVG9Ta2lwLCB1aW50MzJfdCBh
cnJheVNpemUpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlC
dWZmZXIsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIEpTQ2VsbCopKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0QWRkLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwogSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25NYXBTZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2Vs
bCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkpOwpAQCAtMjk4LDEz
ICsyOTgsMTMgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4
T2ZWYWx1ZUludDMyT3JDb250aWd1b3VzLCBVQ1BVU3RyaWMKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uU3ByZWFkRmFzdEFycmF5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
LCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNwcmVhZEdl
bmVyaWMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopKTsKIEpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU3ByZWFkU2xvdywgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0Kiwgdm9pZCosIHVpbnQzMl90KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUltbXV0YWJsZUJ1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xv
YmFsT2JqZWN0KiwgdW5zaWduZWQgbGVuZ3RoKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUltbXV0YWJsZUJ1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgdWludDMyX3QgbGVuZ3RoKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUmVzb2x2ZVNjb3BlLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU1Njb3BlKiwg
VW5pcXVlZFN0cmluZ0ltcGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blJlc29sdmVTY29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2YWwsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqLCBKU1Njb3BlKiwgVW5pcXVlZFN0cmluZ0ltcGwqKSk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldER5bmFtaWNWYXIsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwg
dW5zaWduZWQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1p
Y1ZhclN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBFbmNv
ZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25lZCkpOwotSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25QdXREeW5hbWljVmFyTm9uU3RyaWN0LCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3Ry
aW5nSW1wbCosIHVuc2lnbmVkKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkdldER5bmFtaWNWYXIsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVj
dCogc2NvcGUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgdWludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0lt
cGwqLCB1aW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRE
eW5hbWljVmFyTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogc2Nv
cGUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCosIHVpbnQzMl90KSk7CiAKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydEJveGVkRG91YmxlVG9JbnQ1
MiwgaW50NjRfdCwgKEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnREb3VibGVUb0ludDUyLCBpbnQ2NF90LCAoZG91YmxlKSk7CkBAIC0z
MTMsNyArMzEzLDcgQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OdW1iZXJJ
c0ludGVnZXIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiwgRW4KIAogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdSYXdPYmplY3QsIGNoYXIqLCAoVk0qLCBTdHJ1Y3R1cmUq
LCBpbnQzMl90LCBCdXR0ZXJmbHkqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHksIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIEJ1
dHRlcmZseSopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3T2JqZWN0
V2l0aEJ1dHRlcmZseVdpdGhJbmRleGluZ0hlYWRlckFuZFZlY3Rvckxlbmd0aCwgSlNDZWxsKiwg
KFZNKiwgU3RydWN0dXJlKiwgdW5zaWduZWQgbGVuZ3RoLCBCdXR0ZXJmbHkqKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5k
ZXhpbmdIZWFkZXJBbmRWZWN0b3JMZW5ndGgsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIHVp
bnQzMl90IGxlbmd0aCwgQnV0dGVyZmx5KikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkxpbmtEaXJlY3RDYWxsLCB2b2lkLCAoT3B0aW1pemluZ0NhbGxMaW5rSW5mbyos
IEpTRnVuY3Rpb24qKSk7CiAKQEAgLTM0NCw4ICszNDQsOCBAQCBKU0NfREVDTEFSRV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblJhbmRvbSwgZG91YmxlLCAoSlNHbG9iYWxPYmplY3QqKSk7CiAKICNp
ZiBFTkFCTEUoRlRMX0pJVCkKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJp
Z2dlclRpZXJVcE5vdywgdm9pZCwgKFZNKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25UcmlnZ2VyVGllclVwTm93SW5Mb29wLCB2b2lkLCAoVk0qLCB1bnNpZ25lZCBieXRl
Y29kZUluZGV4Qml0cykpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ucmln
Z2VyT1NSRW50cnlOb3csIGNoYXIqLCAoVk0qLCB1bnNpZ25lZCBieXRlY29kZUluZGV4Qml0cykp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyVGllclVwTm93SW5M
b29wLCB2b2lkLCAoVk0qLCB1aW50MzJfdCBieXRlY29kZUluZGV4Qml0cykpOworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyT1NSRW50cnlOb3csIGNoYXIqLCAoVk0q
LCB1aW50MzJfdCBieXRlY29kZUluZGV4Qml0cykpOwogI2VuZGlmIC8vIEVOQUJMRShGVExfSklU
KQogCiBpbmxpbmUgYXV0byBvcGVyYXRpb25OZXdUeXBlZEFycmF5V2l0aFNpemVGb3JUeXBlKFR5
cGVkQXJyYXlUeXBlIHR5cGUpIC0+IGRlY2x0eXBlKCZvcGVyYXRpb25OZXdJbnQ4QXJyYXlXaXRo
U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApp
bmRleCBjNDA3YjAwYzRkYWIuLjE2M2FkNjE4NWUwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTIyLDkgKzEyMiwxMSBAQCBuYW1lc3Bh
Y2Ugewogc3RkOjphdG9taWM8aW50PiBjb21waWxlQ291bnRlcjsKIAogI2lmIEFTU0VSVF9FTkFC
TEVECi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNo
YWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2Nr
LCBCbG9ja0luZGV4IGJsb2NrSW5kZXgsIHVuc2lnbmVkIG5vZGVJbmRleCkpOwotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJO
X0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4IGJs
b2NrSW5kZXgsIHVuc2lnbmVkIG5vZGVJbmRleCkpCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
X1dJVEhfQVRUUklCVVRFUyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwg
dm9pZCwgKENvZGVCbG9jayogY29kZUJsb2NrLCBCbG9ja0luZGV4IGJsb2NrSW5kZXgsIHVpbnQz
Ml90IG5vZGVJbmRleCkpOworSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OX1dJVEhfQVRUUklCVVRF
UyhmdGxVbnJlYWNoYWJsZSwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKENvZGVCbG9j
ayogY29kZUJsb2NrLCBKSVRfSU5URUdFUl9WQUxVRShCbG9ja0luZGV4LCBibG9ja0luZGV4KSwg
SklUX1VJTlQzMihub2RlSW5kZXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoYmxvY2tJ
bmRleCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKG5vZGVJbmRleCk7CiAgICAgZGF0YUxvZygi
Q3Jhc2hpbmcgaW4gdGhvdWdodC10by1iZS11bnJlYWNoYWJsZSBGVEwtZ2VuZXJhdGVkIGNvZGUg
Zm9yICIsIHBvaW50ZXJEdW1wKGNvZGVCbG9jayksICIgYXQgYmFzaWMgYmxvY2sgIyIsIGJsb2Nr
SW5kZXgpOwogICAgIGlmIChub2RlSW5kZXggIT0gVUlOVF9NQVgpCiAgICAgICAgIGRhdGFMb2co
Iiwgbm9kZSBAIiwgbm9kZUluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMT1NSRXhpdENvbXBpbGVyLmNwcAppbmRleCBhODI0ZjdhNTE5Y2UuLjhiZjI5YTllOTEwYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNw
cApAQCAtNDkzLDggKzQ5Myw5IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKFZNJiB2bSwgdW5z
aWduZWQgZXhpdElELCBKSVRDb2RlKiBqaXRDb2RlLCBPU1JFeGl0JiBleGl0CiAgICAgICAgICk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRMT1NSRXhp
dCwgdm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWduZWQgZXhpdElEKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21waWxlRlRMT1NSRXhpdCwgdm9pZCosIChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSklUX1VJTlQzMihleGl0SUQpKSkKIHsKKyAgICBKSVRfREVG
SU5FX0lOVEVHRVIoZXhpdElEKTsKICAgICBpZiAoc2hvdWxkRHVtcERpc2Fzc2VtYmx5KCkgfHwg
T3B0aW9uczo6dmVyYm9zZU9TUigpIHx8IE9wdGlvbnM6OnZlcmJvc2VGVExPU1JFeGl0KCkpCiAg
ICAgICAgIGRhdGFMb2coIkNvbXBpbGluZyBPU1IgZXhpdCB3aXRoIGV4aXRJRCA9ICIsIGV4aXRJ
RCwgIlxuIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NS
RXhpdENvbXBpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21w
aWxlci5oCmluZGV4IDg0NDViMDE3MDJlZi4uNDVkNjljNTg5ZDEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiAvLyBUYWtlcyB0aGUgY2FsbCBmcmFt
ZSBhbmQgdGhlIGluZGV4IG9mIHRoZSBleGl0LCBhbmQgcmV0dXJucyB0aGUgYWRkcmVzcyB0bwog
Ly8ganVtcCB0by4KLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZU
TE9TUkV4aXQsIHZvaWQqLCAoQ2FsbEZyYW1lKiwgdW5zaWduZWQgZXhpdElEKSk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExPU1JFeGl0LCB2b2lkKiwgKENh
bGxGcmFtZSosIEpJVF9VSU5UMzIoZXhpdElEKSkpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
RlRMCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCmluZGV4
IGI5NWU3NDNhMjY1ZC4uMGJiODlkNmQ0MzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT3BlcmF0aW9ucy5jcHAKQEAgLTczMyw4ICs3MzMsOSBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVHlwZU9mT2JqZWN0QXNUeXBlb2ZUeXBlLCBpbnQzMl90LCAoSlNH
bG9iYWxPYgogICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihUeXBlb2ZUeXBlOjpPYmpl
Y3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGlsZUZUTExh
enlTbG93UGF0aCwgdm9pZCosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWduZWQgaW5kZXgp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1Bh
dGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpJVF9VSU5UMzIoaW5kZXgpKSkKIHsK
KyAgICBKSVRfREVGSU5FX0lOVEVHRVIoaW5kZXgpOwogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+
ZGVwcmVjYXRlZFZNKCk7CiAgICAgLy8gRG9uJ3QgbmVlZCBhbiBBY3RpdmVTY3JhdGNoQnVmZmVy
U2NvcGUgaGVyZSBiZWNhdXNlIHdlIERlZmVyR0NGb3JBV2hpbGUuCiAKQEAgLTc1MCw4ICs3NTEs
MTQgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xv
d1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWwKICAgICByZXR1cm4gbGF6eVNsb3dQYXRoLnN0
dWIoKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OX1dJVEhfQVRUUklCVVRFUyhvcGVyYXRpb25SZXBvcnRCb3VuZHNDaGVja0VsaW1pbmF0
aW9uRXJyb3JBbmRDcmFzaCwgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCwgdm9pZCwgKGludHB0cl90
IGNvZGVCbG9ja0FzSW50UHRyLCBpbnQzMl90IG5vZGVJbmRleCwgaW50MzJfdCBjaGlsZDFJbmRl
eCwgaW50MzJfdCBjaGlsZDJJbmRleCwgaW50MzJfdCBjaGVja2VkSW5kZXgsIGludDMyX3QgYm91
bmRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMob3BlcmF0aW9u
UmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVycm9yQW5kQ3Jhc2gsIE5PX1JFVFVSTl9EVUVf
VE9fQ1JBU0gsIHZvaWQsIChKSVRfSU5UUFRSKGNvZGVCbG9ja0FzSW50UHRyKSwgSklUX0lOVDMy
KG5vZGVJbmRleCksIEpJVF9JTlQzMihjaGlsZDFJbmRleCksIEpJVF9JTlQzMihjaGlsZDJJbmRl
eCksIEpJVF9JTlQzMihjaGVja2VkSW5kZXgpLCBKSVRfSU5UMzIoYm91bmRzKSkpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKGNvZGVCbG9ja0FzSW50UHRyKTsKKyAgICBKSVRfREVGSU5FX0lO
VEVHRVIobm9kZUluZGV4KTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoY2hpbGQxSW5kZXgpOwor
ICAgIEpJVF9ERUZJTkVfSU5URUdFUihjaGlsZDJJbmRleCk7CisgICAgSklUX0RFRklORV9JTlRF
R0VSKGNoZWNrZWRJbmRleCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGJvdW5kcyk7CiAgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBiaXR3aXNlX2Nhc3Q8Q29kZUJsb2NrKj4oY29kZUJsb2Nr
QXNJbnRQdHIpOwogICAgIGRhdGFMb2dMbigiQm91bmRzIENoZWNrIEVpbWluYXRpb24gZXJyb3Ig
Zm91bmQgQCBEQCIsIG5vZGVJbmRleCwgIjogQXNzZXJ0SW5Cb3VuZHMoaW5kZXggREAiLCBjaGls
ZDFJbmRleCwgIjogIiwgY2hlY2tlZEluZGV4LCAiLCBib3VuZHMgREAiLCBjaGlsZDJJbmRleCwg
IiAiLCBib3VuZHMsICIpIGluICIsIGNvZGVCbG9jayk7CiAgICAgQ1JBU0goKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCmluZGV4IDY4N2VmZGIwMGVhYy4uMjFlYTM3
MWU3YWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTI4
LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAiQXNzZW1ibHlIZWxwZXJz
LmgiCisjaW5jbHVkZSAiQ0NhbGxUeXBlcy5oIgogI2luY2x1ZGUgIkZQUkluZm8uaCIKICNpbmNs
dWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxUeXBlcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9DQ2FsbFR5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi5kMTYzZDhlNjhmYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsVHlwZXMuaApAQCAtMCwwICsxLDUzIEBACisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDUFUuaCIKKyNpbmNsdWRlIDx3dGYvU3RkSW50
RXh0cmFzLmg+CisKK25hbWVzcGFjZSBKU0MgeworCituYW1lc3BhY2UgQ0NhbGxUeXBlcyB7CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgYXV0byBkZWZpbmVKSVRJbnRlZ2VyKFQgdmFs
dWUpIC0+IHN0ZDo6ZW5hYmxlX2lmX3Q8IWlzUklTQ1Y2NCgpLCBUPgoreworICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19pbnRlZ3JhbF92PFQ+KTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgYXV0byBkZWZpbmVKSVRJbnRlZ2VyKFQgdmFsdWUp
IC0+IHN0ZDo6ZW5hYmxlX2lmX3Q8aXNSSVNDVjY0KCksIFQ+Cit7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX2ludGVncmFsX3Y8VD4pOworCisgICAgaWYgY29uc3RleHByIChzaXplb2YoVCkg
PT0gNCkgeworICAgICAgICBhc20gdm9sYXRpbGUgKAorICAgICAgICAgICAgInNleHQudyAlW291
dF92YWx1ZV0sICVbaW5fdmFsdWVdXG5cdCIKKyAgICAgICAgICAgIDogW291dF92YWx1ZV0gIj1y
IiAodmFsdWUpCisgICAgICAgICAgICA6IFtpbl92YWx1ZV0gInIiICh2YWx1ZSkpOworICAgIH0K
KworICAgIHJldHVybiB2YWx1ZTsKK30KKworfQorCisjZGVmaW5lIEpJVF9JTlRFR0VSX1ZBTFVF
KHR5cGUsIC4uLikgdHlwZSBfX1ZBX09QVF9fKF9fVkFfQVJHU19fICMjIEludGVnZXJCaXRzKQor
CisjZGVmaW5lIEpJVF9JTlQzMihuYW1lKSBKSVRfSU5URUdFUl9WQUxVRShpbnQzMl90LCBuYW1l
KQorI2RlZmluZSBKSVRfVUlOVDMyKG5hbWUpIEpJVF9JTlRFR0VSX1ZBTFVFKHVpbnQzMl90LCBu
YW1lKQorCisjZGVmaW5lIEpJVF9JTlQ2NChuYW1lKSBKSVRfSU5URUdFUl9WQUxVRShpbnQ2NF90
LCBuYW1lKQorI2RlZmluZSBKSVRfVUlOVDY0KG5hbWUpIEpJVF9JTlRFR0VSX1ZBTFVFKHVpbnQ2
NF90LCBuYW1lKQorCisjZGVmaW5lIEpJVF9JTlRQVFIobmFtZSkgSklUX0lOVEVHRVJfVkFMVUUo
aW50cHRyX3QsIG5hbWUpCisjZGVmaW5lIEpJVF9VSU5UUFRSKG5hbWUpIEpJVF9JTlRFR0VSX1ZB
TFVFKHVpbnRwdHJfdCwgbmFtZSkKKworI2RlZmluZSBKSVRfU0laRVQobmFtZSkgSklUX0lOVEVH
RVJfVkFMVUUoc2l6ZV90LCBuYW1lKQorCisjZGVmaW5lIEpJVF9ERUZJTkVfSU5URUdFUihuYW1l
KSBkZWNsdHlwZShuYW1lICMjIEludGVnZXJCaXRzKSBuYW1lID0gQ0NhbGxUeXBlczo6ZGVmaW5l
SklUSW50ZWdlcihuYW1lICMjIEludGVnZXJCaXRzKQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKwor
I2VuZGlmIC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAppbmRleCBlZmM5YTBlOGJiMDIuLjEzZDc2MDQ5MDczYSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAK
ICNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmgi
CisjaW5jbHVkZSAiQ0NhbGxUeXBlcy5oIgogI2luY2x1ZGUgIkNhY2hlYWJsZUlkZW50aWZpZXJJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvbW1v
blNsb3dQYXRoc0lubGluZXMuaCIKQEAgLTIzOSw4ICsyNDAsOSBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjaywgaW50MzJfdCwgKEpTR2xvYmFs
T2JqZWN0KgogICAgIHJldHVybiBtaXNzaW5nQXJnQ291bnQ7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjU2LDggKzI1OCw5IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnCiB9CiAKIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRyeUdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFi
bGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRC
eUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjcxLDggKzI3NCw5IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkR2VuZXJpYywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG90Lmdl
dFB1cmVSZXN1bHQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
cnlHZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgYmFzZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQog
eworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTI5Myw4ICsyOTcsOSBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2xvdC5nZXRQdXJl
UmVzdWx0KCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJ
ZERpcmVjdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJf
dCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRCeUlkRGlyZWN0LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTMxMiw4ICszMTcsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8g
c2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RHZW5lcmlj
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0R2VuZXJpYywgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7CisgICAgSklUX0RFRklO
RV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwpAQCAtMzMwLDggKzMzNiw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRCeUlkRGlyZWN0R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZm91bmQgPyBz
bG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgaWRlbnQpIDoganNVbmRlZmluZWQoKSkpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdE9wdGltaXpl
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdl
dEJ5SWREaXJlY3RPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJh
c2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVG
SU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcik7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7CkBAIC0zNTIsOCArMzU5LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShmb3VuZCA/
IHNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBpZGVudCkgOiBqc1VuZGVmaW5lZCgpKSk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWQsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFi
bGVJZGVudGlmaWVyKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpOwogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNl
KTsKICAgICAKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0zNzMsOCArMzgx
LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWQsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlk
R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwpAQCAtMzkyLDggKzQwMSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRp
Zmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwog
ICAgIAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTQxNSw4ICs0MjUsOSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZQogICAgIH0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpcywgRW5jb2RlZEpTVmFsdWUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVu
Y29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCB1aW50cHRyX3Qg
cmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlJZFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRp
Zmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwog
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtNDM0LDggKzQ0NSw5IEBAIEpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXMsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFs
dWUuZ2V0KGdsb2JhbE9iamVjdCwgaWRlbnQsIHNsb3QpKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVy
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNHZW5l
cmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCBKSVRfVUlOVFBUUihy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNj
b3BlKGZhbHNlKTsKIAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTQ1MSw4
ICs0NjMsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhU
aGlzR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsbwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoYmFzZVZhbHVlLmdldChnbG9iYWxPYmplY3QsIGlkZW50LCBzbG90KSk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRo
aXNFbmNvZGVkLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8q
IHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzRW5jb2Rl
ZCwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwpAQCAtNDc1LDggKzQ4OCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsCiAg
ICAgfSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkR2Vu
ZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCBy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25JbkJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwg
SklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJTkVf
SU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBsZXJTY29wZSBz
dXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC01MDMsOCArNTE3LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bkluQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihiYXNlT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3Qo
Z2xvYmFsT2JqZWN0LCBpZGVudCwgc2xvdCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsK
ICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC02OTUsOCArNzEwLDkgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVCcmFuZEdlbmVyaWMsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc09i
amVjdChiYXNlVmFsdWUpLT5oYXNQcml2YXRlQnJhbmQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZEJyYW5kKSkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5SWRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVu
dGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8q
IHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFN1cGVyU2Ft
cGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CkBAIC03MTQsOCArNzMwLDkgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2IKICAgICBMT0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvblB1dEJ5SWRTdHJpY3QsIGJhc2VW
YWx1ZS5jbGFzc0luZm9Pck51bGwodm0pLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZhbHVl
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3Ry
aWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSklU
X1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBl
clNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwpAQCAtNzMzLDggKzc1MCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkTm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgTE9H
X0lDKChJQ0V2ZW50OjpPcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJ
bmZvT3JOdWxsKHZtKSwgaWRlbnQsIHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEpJVF9VSU5U
UFRSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
cmF3Q2FjaGVhYmxlSWRlbnRpZmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1w
bGVyU2NvcGUoZmFsc2UpOwogICAgIAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
QEAgLTc1Miw4ICs3NzAsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZERpcmVjdFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIExPR19JQygo
SUNFdmVudDo6T3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdCwgYmFzZVZhbHVlLmNsYXNzSW5m
b09yTnVsbCh2bSksIGlkZW50LCBzbG90LmJhc2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3QsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBKSVRf
VUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRF
R0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVy
U2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC03NzEsOCArNzkwLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blB1dEJ5SWREaXJlY3ROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCoKICAgICBMT0df
SUMoKElDRXZlbnQ6Ok9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3QsIGJhc2VWYWx1ZS5j
bGFzc0luZm9Pck51bGwodm0pLCBpZGVudCwgc2xvdC5iYXNlKCkgPT0gYmFzZVZhbHVlKSk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1p
emUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemUsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5F
X0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUg
c3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKQEAgLTgwMyw4ICs4MjMsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlJZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqCiAgICAg
ICAgIHJlcGF0Y2hQdXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBzdHJ1
Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpCeUlkLCBQdXRL
aW5kOjpOb3REaXJlY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0QnlJZE5vblN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxl
SWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5v
blN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlm
aWVyKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIp
OwogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC04MzUsOCArODU2LDkgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSwg
dm9pZCwgKEpTR2xvYmFsT2JqZWMKICAgICAgICAgcmVwYXRjaFB1dEJ5KGdsb2JhbE9iamVjdCwg
Y29kZUJsb2NrLCBiYXNlVmFsdWUsIHN0cnVjdHVyZSwgaWRlbnRpZmllciwgc2xvdCwgKnN0dWJJ
bmZvLCBQdXRCeUtpbmQ6OkJ5SWQsIFB1dEtpbmQ6Ok5vdERpcmVjdCk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUsIHZv
aWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemUsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5F
X0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUg
c3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKQEAgLTg2Niw4ICs4ODgsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYgogICAg
ICAgICByZXBhdGNoUHV0QnkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VPYmplY3QsIHN0
cnVjdHVyZSwgaWRlbnRpZmllciwgc2xvdCwgKnN0dWJJbmZvLCBQdXRCeUtpbmQ6OkJ5SWQsIFB1
dEtpbmQ6OkRpcmVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hl
YWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxl
SWRlbnRpZmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFs
c2UpOwogICAgIAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTkzNyw4ICs5
NjAsOSBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGRlZmluZVByaXZhdGVGaWVsZChWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGNhbGxiYWNrKHZtLCBjb2RlQmxv
Y2ssIG9sZFN0cnVjdHVyZSwgcHV0U2xvdCwgaWRlbnQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0
cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEpJVF9VSU5UUFRSKHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVh
YmxlSWRlbnRpZmllcik7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC05
NTAsOCArOTc0LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRE
ZWZpbmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2IKICAgICBkZWZpbmVQcml2YXRl
RmllbGQodm0sIGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBiYXNlVmFsdWUsIGlkZW50aWZpZXIs
IHZhbHVlLCBbXShWTSYsIENvZGVCbG9jayosIFN0cnVjdHVyZSosIFB1dFByb3BlcnR5U2xvdCYs
IGNvbnN0IElkZW50aWZpZXImKSB7IH0pOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdE9wdGltaXplLCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0cmljdE9wdGltaXplLCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7CisgICAgSklU
X0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFN1cGVyU2FtcGxl
clNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwpAQCAtOTczLDggKzk5OCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkRGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0T3B0aW1pemUsIHZvaWQsCiAgICAgfSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0
ZUZpZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
SklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJTkVf
SU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKQEAgLTk4Niw4ICsxMDEyLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE8K
ICAgICBzZXRQcml2YXRlRmllbGQodm0sIGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBiYXNlVmFs
dWUsIGlkZW50aWZpZXIsIHZhbHVlLCBbXShWTSYsIENvZGVCbG9jayosIFN0cnVjdHVyZSosIFB1
dFByb3BlcnR5U2xvdCYsIGNvbnN0IElkZW50aWZpZXImKSB7IH0pOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdE9wdGlt
aXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdE9w
dGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFN1
cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwpAQCAtMTYyNyw4ICsxNjU0LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGds
b2IKIH0KIAogI2lmIFVTRShCSUdJTlQzMikKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBoZWFwQmlnSW50LCBpbnQzMl90IHNtYWxsSW50KSkKK0pT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQz
Miwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBoZWFwQmln
SW50LCBKSVRfSU5UMzIoc21hbGxJbnQpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoc21h
bGxJbnQpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTYzOSw4ICsx
NjY3LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBhcmVFcUhlYXBC
aWdJbnRUb0ludDMyLCBzaXplX3QsIChKU0dsb2JhbE8KIH0KICNlbmRpZgogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZSwgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBBcnJheUFsbG9jYXRpb25Qcm9maWxl
KiBwcm9maWxlLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMsIGludCBzaXplKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhQcm9maWxlLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
IHByb2ZpbGUsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgSklUX0lOVDMyKHNpemUpKSkKIHsKKyAg
ICBKSVRfREVGSU5FX0lOVEVHRVIoc2l6ZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CkBAIC0xODEyLDggKzE4NDEsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSGFuZGxlVHJhcHMsIFVudXNlZFB0ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAg
IHJldHVybiBudWxscHRyOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
RGVidWcsIHZvaWQsIChWTSogdm1Qb2ludGVyLCBpbnQzMl90IGRlYnVnSG9va1R5cGUpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qIHZtUG9pbnRl
ciwgSklUX0lOVDMyKGRlYnVnSG9va1R5cGUpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
ZGVidWdIb29rVHlwZSk7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTgyOCw4ICsx
ODU4LDkgQEAgc3RhdGljIHZvaWQgdXBkYXRlQWxsUHJlZGljdGlvbnNBbmRPcHRpbWl6ZUFmdGVy
V2FybVVwKENvZGVCbG9jayogY29kZUJsb2NrKQogICAgIGNvZGVCbG9jay0+b3B0aW1pemVBZnRl
cldhcm1VcCgpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uT3B0aW1p
emUsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKFZNKiB2bVBvaW50ZXIsIHVpbnQzMl90IGJ5dGVjb2Rl
SW5kZXhCaXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PcHRpbWl6ZSwg
U2xvd1BhdGhSZXR1cm5UeXBlLCAoVk0qIHZtUG9pbnRlciwgSklUX1VJTlQzMihieXRlY29kZUlu
ZGV4Qml0cykpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihieXRlY29kZUluZGV4Qml0cyk7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjA1Niw4ICsyMDg3LDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXplLCBTbG93UGF0aFJldHVyblR5cGUs
IChWTSogdm1Qb2ludGVyLAogICAgIHJldHVybiBlbmNvZGVSZXN1bHQobnVsbHB0ciwgbnVsbHB0
cik7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0
Q2F0Y2gsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgdWludDMyX3QgYnl0ZWNvZGVJbmRleEJpdHMp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaCwg
Y2hhciosIChWTSogdm1Qb2ludGVyLCBKSVRfVUlOVDMyKGJ5dGVjb2RlSW5kZXhCaXRzKSkpCiB7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKGJ5dGVjb2RlSW5kZXhCaXRzKTsKICAgICBWTSYgdm0g
PSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7CkBAIC0yMDgwLDggKzIxMTIsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIs
IHVpbgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoQW5kVmFsdWVQcm9maWxlLCBjaGFyKiwgKFZNKiB2
bVBvaW50ZXIsIHVpbnQzMl90IGJ5dGVjb2RlSW5kZXhCaXRzKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2hBbmRWYWx1ZVByb2ZpbGUsIGNoYXIq
LCAoVk0qIHZtUG9pbnRlciwgSklUX1VJTlQzMihieXRlY29kZUluZGV4Qml0cykpKQogeworICAg
IEpJVF9ERUZJTkVfSU5URUdFUihieXRlY29kZUluZGV4Qml0cyk7CiAgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOwpAQCAtMjEzMyw4ICsyMTY2LDkgQEAgc3RhdGljIHZvaWQgcHV0QWNjZXNzb3JC
eVZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgSlNWYWwK
ICAgICAgICAgYmFzZS0+cHV0U2V0dGVyKGdsb2JhbE9iamVjdCwgcHJvcGVydHlLZXksIGFjY2Vz
c29yLCBhdHRyaWJ1dGUpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
UHV0R2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2Vs
bCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2Vs
bCogZ2V0dGVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJC
eUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3Qs
IFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIEpJVF9JTlQzMihvcHRpb25zKSwgSlNDZWxsKiBnZXR0
ZXIpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihvcHRpb25zKTsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTIxNDYsOCArMjE4MCw5IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iCiAgICAgYmFzZU9iai0+cHV0R2V0dGVyKGdsb2JhbE9iamVjdCwgdWlkLCBnZXR0
ZXIsIG9wdGlvbnMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
U2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCog
b2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCog
c2V0dGVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeUlk
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVu
aXF1ZWRTdHJpbmdJbXBsKiB1aWQsIEpJVF9JTlQzMihvcHRpb25zKSwgSlNDZWxsKiBzZXR0ZXIp
KQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihvcHRpb25zKTsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKQEAgLTIxNTksOCArMjE5NCw5IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iCiAgICAgYmFzZU9iai0+cHV0U2V0dGVyKGdsb2JhbE9iamVjdCwgdWlkLCBzZXR0ZXIs
IG9wdGlvbnMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0
dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBK
U0NlbGwqIGdldHRlcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0
dGVyQnlWYWwsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEpJVF9JTlQzMihhdHRyaWJ1dGUp
LCBKU0NlbGwqIGdldHRlcikpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGF0dHJpYnV0ZSk7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yMTY4LDggKzIyMDQsOSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHB1dEFjY2Vzc29yQnlWYWwoZ2xvYmFsT2Jq
ZWN0LCBhc09iamVjdChiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBh
dHRyaWJ1dGUsIGFzT2JqZWN0KGdldHRlciksIEFjY2Vzc29yVHlwZTo6R2V0dGVyKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBKSVRfSU5UMzIoYXR0cmlidXRlKSwgSlNDZWxsKiBzZXR0ZXIp
KQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihhdHRyaWJ1dGUpOwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjE3OCw4ICsyMjE1LDkgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE8KIH0KIAogI2lmIFVTRShKU1ZBTFVFNjQpCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3Qg
YXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVyVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIEpJVF9JTlQzMihhdHRyaWJ1
dGUpLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVyVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTZXR0ZXJWYWx1ZSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGF0dHJpYnV0ZSk7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yMTk1LDggKzIyMzMsOSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogfQogCiAjZWxzZQotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQz
Ml90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXJDZWxsLCBKU0NlbGwqIHNldHRlckNlbGwpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3Ry
aW5nSW1wbCogdWlkLCBKSVRfSU5UMzIoYXR0cmlidXRlKSwgSlNDZWxsKiBnZXR0ZXJDZWxsLCBK
U0NlbGwqIHNldHRlckNlbGwpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihhdHRyaWJ1dGUp
OwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjQ3MCw4ICsyNTA5LDkg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdl
dFByaXZhdGVOYW1lKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBiYXNlVmFsdWUsIGZpZWxkTmFt
ZVZhbHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2
YXRlTmFtZUJ5SWQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50
cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpT
VmFsdWUgYmFzZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAg
IEpJVF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNh
bXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CkBAIC0yNDkxLDggKzI1MzEsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZE9wdGltaXplLCBFbmNv
ZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJs
ZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZh
dGVOYW1lQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CkBAIC0yNTIyLDggKzI1NjMsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGdldFByaXZhdGVOYW1l
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBiYXNlVmFsdWUsIGZpZWxkTmFtZSkpKTsKIH0KIAot
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZEdlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZEdlbmVyaWMsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJ
VF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBs
ZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0yNTU2LDggKzI1OTgsOSBAQCBzdGF0aWMgYm9vbCBkZWxldGVCeUlk
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgRGVsZXRlUHJvcGVydHlTbG90
JgogICAgIHJldHVybiBjb3VsZERlbGV0ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIsIEVDTUFNb2RlIGVj
bWFNb2RlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkT3B0
aW1pemUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0
dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEpJVF9VSU5UUFRS
KHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpLCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CisgICAgSklU
X0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjU4NCw4ICsyNjI3LDkgQEAgSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRPcHRpbWl6ZSwgc2l6ZV90LCAoSlNHbG9iYWxP
YmplY3QqIGcKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRGVsZXRlQnlJZEdlbmVyaWMsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyLCBFQ01BTW9kZSBlY21hTW9kZSkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJZEdlbmVyaWMsIHNp
emVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpLCBFQ01BTW9kZSBlY21hTW9kZSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJh
d0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwpAQCAtMjcxNSwxNiArMjc1OSwxOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSW5zdGFuY2VPZk9wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsTwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlc3VsdCkpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2FyZEFyZ3VtZW50cywgaW50
MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBpbnQz
Ml90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQzMl90KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25TaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzLCBpbnQzMl90LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIEpJVF9JTlQzMihudW1Vc2Vk
U3RhY2tTbG90cyksIEpJVF9JTlQzMigpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobnVt
VXNlZFN0YWNrU2xvdHMpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAg
IHJldHVybiBzaXplRnJhbWVGb3JGb3J3YXJkQXJndW1lbnRzKGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLCB2bSwgbnVtVXNlZFN0YWNrU2xvdHMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIGludDMyX3Qg
bnVtVXNlZFN0YWNrU2xvdHMsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFyZ3MsIGludDMyX3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1l
bnRzLCBKSVRfSU5UMzIobnVtVXNlZFN0YWNrU2xvdHMpLCBKSVRfSU5UMzIoZmlyc3RWYXJBcmdP
ZmZzZXQpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobnVtVXNlZFN0YWNrU2xvdHMpOwor
ICAgIEpJVF9ERUZJTkVfSU5URUdFUihmaXJzdFZhckFyZ09mZnNldCk7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yNzMyLDggKzI3NzksOSBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgaW50MzJfdCwgKEpTR2xv
YmFsT2JqZWN0KgogICAgIHJldHVybiBzaXplRnJhbWVGb3JWYXJhcmdzKGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLCB2bSwgYXJndW1lbnRzLCBudW1Vc2VkU3RhY2tTbG90cywgZmlyc3RWYXJBcmdP
ZmZzZXQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBGb3J3
YXJkQXJndW1lbnRzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGlu
dDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cEZv
cndhcmRBcmd1bWVudHNGcmFtZSwgQ2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSwgSklUX0lOVDMy
KCksIEpJVF9JTlQzMihsZW5ndGgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobGVuZ3Ro
KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTI3NDEsOCArMjc4OSwx
MCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1l
bnRzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsbwogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFtZSwg
Q2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogbmV3
Q2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IGZpcnN0
VmFyQXJnT2Zmc2V0LCBpbnQzMl90IGxlbmd0aCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEFyZ3VtZW50cywgSklUX0lOVDMyKGZpcnN0VmFyQXJnT2Zmc2V0KSwgSklUX0lOVDMyKGxl
bmd0aCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihmaXJzdFZhckFyZ09mZnNldCk7Cisg
ICAgSklUX0RFRklORV9JTlRFR0VSKGxlbmd0aCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7CkBAIC0yNzUxLDggKzI4MDEsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNldHVwVmFyYXJnc0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QK
ICAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5LCBzaXplX3QgdGFi
bGVJbmRleCwgaW50MzJfdCBtaW4pKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
blN3aXRjaENoYXJXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgSklUX1NJWkVUKHRhYmxlSW5k
ZXgpLCBKSVRfSU5UMzIobWluKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHRhYmxlSW5k
ZXgpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihtaW4pOwogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwpAQCAtMjc3OCw4ICsyODMwLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xv
YmFsCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5
cGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgc2l6
ZV90IHRhYmxlSW5kZXgsIGludDMyX3QgbWluKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Td2l0Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRl
ciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgSklUX1NJWkVUKHRhYmxlSW5kZXgpLCBKSVRf
SU5UMzIobWluKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHRhYmxlSW5kZXgpOworICAg
IEpJVF9ERUZJTkVfSU5URUdFUihtaW4pOwogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAg
LTI3OTksOCArMjg1Myw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0
Y2hJbW1XaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoVk0qIHZtUG9pCiAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEtleSwgc2l6
ZV90IHRhYmxlSW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRj
aFN0cmluZ1dpdGhVbmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkS2V5LCBKSVRfU0laRVQodGFibGVJbmRleCkp
KQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUih0YWJsZUluZGV4KTsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTI5OTksOCArMzA1NCw5IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5VG9IYXZlUHJvcGVydHlTdG9y
YWdlV2l0aEluCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlc3VsdCk7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZWFsbG9jYXRlQnV0dGVyZmx5
VG9Hcm93UHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBv
YmplY3QsIHNpemVfdCBuZXdTaXplKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25SZWFsbG9jYXRlQnV0dGVyZmx5VG9Hcm93UHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZNKiB2
bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QsIEpJVF9TSVpFVChuZXdTaXplKSkpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKG5ld1NpemUpOwogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAppbmRleCAx
MDgwNDQ5ZGE2MzguLjhlMDIxMzI1NWRlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21PcGVyYXRpb25zLmNwcApAQCAtNDE4LDggKzQxOCw5IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVHJpZ2dlck9TUkVudHJ5Tm93LCB2b2lkLCAoUHJvYmU6
OkNvbnRleHQmCiAgICAgcmV0dXJuIHJldHVybldpdGhvdXRPU1JFbnRyeSgpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdnZXJUaWVyVXBOb3csIHZvaWQs
IChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UcmlnZ2VyVGllclVwTm93LCB2b2lkLCAoSW5z
dGFuY2UqIGluc3RhbmNlLCBKSVRfVUlOVDMyKGZ1bmN0aW9uSW5kZXgpKSkKIHsKKyAgICBKSVRf
REVGSU5FX0lOVEVHRVIoZnVuY3Rpb25JbmRleCk7CiAgICAgV2FzbTo6Q2FsbGVlR3JvdXAmIGNh
bGxlZUdyb3VwID0gKmluc3RhbmNlLT5jYWxsZWVHcm91cCgpOwogICAgIEFTU0VSVChpbnN0YW5j
ZS0+bWVtb3J5KCktPm1vZGUoKSA9PSBjYWxsZWVHcm91cC5tb2RlKCkpOwogCkBAIC01MDQsOCAr
NTA1LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwg
ZmxvYXQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlMKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHYudG9OdW1iZXIoY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KHZtKSkpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBF
bmNvZGVkSlNWYWx1ZSwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2Us
IGludDY0X3QgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZl
cnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSW5zdGFu
Y2UqIGluc3RhbmNlLCBKSVRfSU5UNjQodmFsdWUpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIodmFsdWUpOwogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSoganNJbnN0YW5jZSA9IGluc3Rh
bmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7CiAgICAgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IGpzSW5zdGFuY2UtPmdsb2JhbE9iamVjdCgpOwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTU4OCw4ICs1OTAsOSBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSQogLy8gRklYTUU6IEl0IHdvdWxkIGJlIG11Y2ggZWFzaWVyIHRvIGlubGluZSB0aGlz
IHdoZW4gd2UgaGF2ZSBhIGdsb2JhbCBHQywgd2hpY2ggY291bGQgcHJvYmFibHkgbWVhbiB3ZSBj
b3VsZCBhdm9pZAogLy8gc3BpbGxpbmcgdGhlIHJlc3VsdHMgb250byB0aGUgc3RhY2suCiAvLyBT
YXZlZCByZXN1bHQgcmVnaXN0ZXJzIHNob3VsZCBiZSBwbGFjZWQgb24gdGhlIHN0YWNrIGp1c3Qg
YWJvdmUgdGhlIGxhc3Qgc3RhY2sgcmVzdWx0LgotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkFsbG9jYXRlUmVzdWx0c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBXYXNtOjpJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IFNpZ25hdHVyZSogc2lnbmF0dXJl
LCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlLCBKU1ZhbHVlKiBzdGFja1BvaW50ZXJGcm9tQ2Fs
bGVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNB
cnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgV2FzbTo6SW5zdGFuY2UqIGlu
c3RhbmNlLCBjb25zdCBTaWduYXR1cmUqIHNpZ25hdHVyZSwgSklUX0lOVEVHRVJfVkFMVUUoSW5k
ZXhpbmdUeXBlLCBpbmRleGluZ1R5cGUpLCBKU1ZhbHVlKiBzdGFja1BvaW50ZXJGcm9tQ2FsbGVl
KSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoaW5kZXhpbmdUeXBlKTsKICAgICBKU1dlYkFz
c2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJs
eUluc3RhbmNlPigpOwogICAgIFZNJiB2bSA9IGpzSW5zdGFuY2UtPnZtKCk7CiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTYyNywxOCArNjMwLDIx
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xv
d1BhdGgsIHZvaWQsIChKU0NlbGwqIGNlbGwsCiAgICAgdm0ud3JpdGVCYXJyaWVyU2xvd1BhdGgo
Y2VsbCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDMy
LCB1aW50MzJfdCwgKGludDMyX3QgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblBvcGNvdW50MzIsIHVpbnQzMl90LCAoSklUX0lOVDMyKHZhbHVlKSkpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKHZhbHVlKTsKICAgICByZXR1cm4gX19idWlsdGluX3BvcGNvdW50
KHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcGNvdW50
NjQsIHVpbnQ2NF90LCAoaW50NjRfdCB2YWx1ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUG9wY291bnQ2NCwgdWludDY0X3QsIChKSVRfSU5UNjQodmFsdWUpKSkKIHsKKyAg
ICBKSVRfREVGSU5FX0lOVEVHRVIodmFsdWUpOwogICAgIHJldHVybiBfX2J1aWx0aW5fcG9wY291
bnRsbCh2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Hcm93
TWVtb3J5LCBpbnQzMl90LCAodm9pZCogY2FsbEZyYW1lLCBJbnN0YW5jZSogaW5zdGFuY2UsIGlu
dDMyX3QgZGVsdGEpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdyb3dNZW1v
cnksIGludDMyX3QsICh2b2lkKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgSklUX0lO
VDMyKGRlbHRhKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGRlbHRhKTsKICAgICBpbnN0
YW5jZS0+c3RvcmVUb3BDYWxsRnJhbWUoY2FsbEZyYW1lKTsKIAogICAgIGlmIChkZWx0YSA8IDAp
CkBAIC02NTksMTggKzY2NSwyNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
R3Jvd01lbW9yeSwgaW50MzJfdCwgKHZvaWQqIGNhbGxGcmFtZSwgSW5zdGFuYwogICAgIHJldHVy
biBncm93bi52YWx1ZSgpLnBhZ2VDb3VudCgpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbU1lbW9yeUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
dWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3QgdGFyZ2V0VmFsdWUsIHVpbnQzMl90IGNvdW50
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwgc2l6
ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCBKSVRfVUlOVDMyKGRzdEFkZHJlc3MpLCBKSVRfVUlO
VDMyKHRhcmdldFZhbHVlKSwgSklUX1VJTlQzMihjb3VudCkpKQogeworICAgIEpJVF9ERUZJTkVf
SU5URUdFUihkc3RBZGRyZXNzKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIodGFyZ2V0VmFsdWUp
OworICAgIEpJVF9ERUZJTkVfSU5URUdFUihjb3VudCk7CiAgICAgcmV0dXJuIGluc3RhbmNlLT5t
ZW1vcnkoKS0+ZmlsbChkc3RBZGRyZXNzLCBzdGF0aWNfY2FzdDx1aW50OF90Pih0YXJnZXRWYWx1
ZSksIGNvdW50KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21N
ZW1vcnlDb3B5LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IGRzdEFkZHJl
c3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNvdW50KSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5Q29weSwgc2l6ZV90LCAoSW5zdGFuY2UqIGlu
c3RhbmNlLCBKSVRfVUlOVDMyKGRzdEFkZHJlc3MpLCBKSVRfVUlOVDMyKHNyY0FkZHJlc3MpLCBK
SVRfVUlOVDMyKGNvdW50KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGRzdEFkZHJlc3Mp
OworICAgIEpJVF9ERUZJTkVfSU5URUdFUihzcmNBZGRyZXNzKTsKKyAgICBKSVRfREVGSU5FX0lO
VEVHRVIoY291bnQpOwogICAgIHJldHVybiBpbnN0YW5jZS0+bWVtb3J5KCktPmNvcHkoZHN0QWRk
cmVzcywgc3JjQWRkcmVzcywgY291bnQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0V2FzbVRhYmxlRWxlbWVudCwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSog
aW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIGludDMyX3Qgc2lnbmVkSW5kZXgpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQsIEVuY29k
ZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBKSVRfVUlOVDMyKHRhYmxlSW5kZXgpLCBK
SVRfSU5UMzIoc2lnbmVkSW5kZXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIodGFibGVJ
bmRleCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHNpZ25lZEluZGV4KTsKICAgICBBU1NFUlQo
dGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxl
Q291bnQoKSk7CiAgICAgaWYgKHNpZ25lZEluZGV4IDwgMCkKICAgICAgICAgcmV0dXJuIDA7CkBA
IC03MTIsMTMgKzcyNiwyMCBAQCBzdGF0aWMgYm9vbCBzZXRXYXNtVGFibGVFbGVtZW50KEluc3Rh
bmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgdWludDMyXwogICAgIHJldHVybiB0
cnVlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0V2FzbVRhYmxl
RWxlbWVudCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4
LCB1aW50MzJfdCBzaWduZWRJbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFsdWUpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFdhc21UYWJsZUVsZW1lbnQsIHNpemVfdCwg
KEluc3RhbmNlKiBpbnN0YW5jZSwgSklUX1VJTlQzMih0YWJsZUluZGV4KSwgSklUX1VJTlQzMihz
aWduZWRJbmRleCksIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlKSkKIHsKKyAgICBKSVRfREVGSU5F
X0lOVEVHRVIodGFibGVJbmRleCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHNpZ25lZEluZGV4
KTsKICAgICByZXR1cm4gc2V0V2FzbVRhYmxlRWxlbWVudChpbnN0YW5jZSwgdGFibGVJbmRleCwg
c2lnbmVkSW5kZXgsIGVuY1ZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21UYWJsZUluaXQsIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWdu
ZWQgZWxlbWVudEluZGV4LCB1bnNpZ25lZCB0YWJsZUluZGV4LCB1aW50MzJfdCBkc3RPZmZzZXQs
IHVpbnQzMl90IHNyY09mZnNldCwgdWludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVJbml0LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFu
Y2UsIEpJVF9VSU5UMzIoZWxlbWVudEluZGV4KSwgSklUX1VJTlQzMih0YWJsZUluZGV4KSwgSklU
X1VJTlQzMihkc3RPZmZzZXQpLCBKSVRfVUlOVDMyKHNyY09mZnNldCksIEpJVF9VSU5UMzIobGVu
Z3RoKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGVsZW1lbnRJbmRleCk7CisgICAgSklU
X0RFRklORV9JTlRFR0VSKHRhYmxlSW5kZXgpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihkc3RP
ZmZzZXQpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihzcmNPZmZzZXQpOworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihsZW5ndGgpOwogICAgIEFTU0VSVChlbGVtZW50SW5kZXggPCBpbnN0YW5jZS0+
bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5lbGVtZW50Q291bnQoKSk7CiAgICAgQVNTRVJU
KHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS50YWJs
ZUNvdW50KCkpOwogCkBAIC03NDIsMTQgKzc2MywxNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbVRhYmxlSW5pdCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1
bgogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbUVsZW1Ecm9wLCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBlbGVt
ZW50SW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21FbGVtRHJv
cCwgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgSklUX1VJTlQzMihlbGVtZW50SW5kZXgpKSkK
IHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoZWxlbWVudEluZGV4KTsKICAgICBBU1NFUlQoZWxl
bWVudEluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkuZWxlbWVu
dENvdW50KCkpOwogICAgIGluc3RhbmNlLT5lbGVtRHJvcChlbGVtZW50SW5kZXgpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlR3JvdywgaW50MzJfdCwg
KEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgRW5jb2RlZEpTVmFsdWUg
ZmlsbCwgdWludDMyX3QgZGVsdGEpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21UYWJsZUdyb3csIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIEpJVF9VSU5UMzIo
dGFibGVJbmRleCksIEVuY29kZWRKU1ZhbHVlIGZpbGwsIEpJVF9VSU5UMzIoZGVsdGEpKSkKIHsK
KyAgICBKSVRfREVGSU5FX0lOVEVHRVIodGFibGVJbmRleCk7CisgICAgSklUX0RFRklORV9JTlRF
R0VSKGRlbHRhKTsKICAgICBBU1NFUlQodGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5t
b2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAgICAgYXV0byBvbGRTaXplID0gaW5z
dGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgpLT5sZW5ndGgoKTsKICAgICBhdXRvIG5ld1NpemUgPSBp
bnN0YW5jZS0+dGFibGUodGFibGVJbmRleCktPmdyb3coZGVsdGEsIGpzTnVsbCgpKTsKQEAgLTc2
Miw4ICs3ODYsMTEgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJs
ZUdyb3csIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHUKICAgICByZXR1cm4gb2xkU2l6
ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGws
IHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgdWludDMy
X3Qgb2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCB1aW50MzJfdCBjb3VudCkpCitKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlRmlsbCwgc2l6ZV90LCAoSW5zdGFu
Y2UqIGluc3RhbmNlLCBKSVRfVUlOVDMyKHRhYmxlSW5kZXgpLCBKSVRfVUlOVDMyKG9mZnNldCks
IEVuY29kZWRKU1ZhbHVlIGZpbGwsIEpJVF9VSU5UMzIoY291bnQpKSkKIHsKKyAgICBKSVRfREVG
SU5FX0lOVEVHRVIodGFibGVJbmRleCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKG9mZnNldCk7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKGNvdW50KTsKICAgICBBU1NFUlQodGFibGVJbmRleCA8
IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZvcm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAK
ICAgICBpZiAoV1RGOjpzdW1PdmVyZmxvd3M8dWludDMyX3Q+KG9mZnNldCwgY291bnQpKQpAQCAt
Nzc4LDggKzgwNSwxMyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRh
YmxlRmlsbCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bgogICAgIHJldHVybiB0cnVl
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlQ29weSwg
c2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBkc3RUYWJsZUluZGV4LCB1bnNp
Z25lZCBzcmNUYWJsZUluZGV4LCBpbnQzMl90IGRzdE9mZnNldCwgaW50MzJfdCBzcmNPZmZzZXQs
IGludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VGFibGVDb3B5LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIEpJVF9VSU5UMzIoZHN0VGFi
bGVJbmRleCksIEpJVF9VSU5UMzIoc3JjVGFibGVJbmRleCksIEpJVF9JTlQzMihkc3RPZmZzZXQp
LCBKSVRfSU5UMzIoc3JjT2Zmc2V0KSwgSklUX0lOVDMyKGxlbmd0aCkpKQogeworICAgIEpJVF9E
RUZJTkVfSU5URUdFUihkc3RUYWJsZUluZGV4KTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoc3Jj
VGFibGVJbmRleCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGRzdE9mZnNldCk7CisgICAgSklU
X0RFRklORV9JTlRFR0VSKHNyY09mZnNldCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGxlbmd0
aCk7CiAgICAgQVNTRVJUKGRzdFRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxl
SW5mb3JtYXRpb24oKS50YWJsZUNvdW50KCkpOwogICAgIEFTU0VSVChzcmNUYWJsZUluZGV4IDwg
aW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKICAg
ICBjb25zdCBUYWJsZSogZHN0VGFibGUgPSBpbnN0YW5jZS0+dGFibGUoZHN0VGFibGVJbmRleCk7
CkBAIC04MTEsMTUgKzg0MywxNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
V2FzbVRhYmxlQ29weSwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bgogICAgIHJldHVy
biB0cnVlOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJlZkZ1
bmMsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBpbmRleCkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJlZkZ1bmMsIEVuY29kZWRK
U1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCBKSVRfVUlOVDMyKGluZGV4KSkpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKGluZGV4KTsKICAgICBKU1ZhbHVlIHZhbHVlID0gaW5zdGFuY2Ut
PmdldEZ1bmN0aW9uV3JhcHBlcihpbmRleCk7CiAgICAgQVNTRVJUKHZhbHVlLmlzQ2FsbGFibGUo
aW5zdGFuY2UtPm93bmVyPEpTT2JqZWN0PigpLT52bSgpKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZSh2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRXYXNtVGFibGVTaXplLCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0
YWJsZUluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFi
bGVTaXplLCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCBKSVRfVUlOVDMyKHRhYmxlSW5k
ZXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIodGFibGVJbmRleCk7CiAgICAgcmV0dXJu
IGluc3RhbmNlLT50YWJsZSh0YWJsZUluZGV4KS0+bGVuZ3RoKCk7CiB9CiAKQEAgLTg0OSw4ICs4
ODMsMTIgQEAgc3RhdGljIGludDMyX3Qgd2FpdChWTSYgdm0sIFZhbHVlVHlwZSogcG9pbnRlciwg
VmFsdWVUeXBlIGV4cGVjdGVkVmFsdWUsIGludDY0X3QKICAgICByZXR1cm4gMDsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQzMiwgaW50MzJf
dCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCB1
aW50MzJfdCB2YWx1ZSwgaW50NjRfdCB0aW1lb3V0SW5OYW5vc2Vjb25kcykpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDMyLCBpbnQzMl90LCAoSW5z
dGFuY2UqIGluc3RhbmNlLCBKSVRfVUlOVDMyKGJhc2UpLCBKSVRfVUlOVDMyKG9mZnNldCksIEpJ
VF9VSU5UMzIodmFsdWUpLCBKSVRfSU5UNjQodGltZW91dEluTmFub3NlY29uZHMpKSkKIHsKKyAg
ICBKSVRfREVGSU5FX0lOVEVHRVIoYmFzZSk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKG9mZnNl
dCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHZhbHVlKTsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIodGltZW91dEluTmFub3NlY29uZHMpOwogICAgIFZNJiB2bSA9IGluc3RhbmNlLT5vd25lcjxK
U1dlYkFzc2VtYmx5SW5zdGFuY2U+KCktPnZtKCk7CiAgICAgdWludDY0X3Qgb2Zmc2V0SW5NZW1v
cnkgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oYmFzZSkgKyBvZmZzZXQ7CiAgICAgaWYgKG9mZnNl
dEluTWVtb3J5ICYgKDB4NCAtIDEpKQpAQCAtODY3LDggKzkwNSwxMiBAQCBKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDMyLCBpbnQzMl90LCAoSW5zdGFu
Y2UqIGluc3RhbgogICAgIHJldHVybiB3YWl0PHVpbnQzMl90Pih2bSwgcG9pbnRlciwgdmFsdWUs
IHRpbWVvdXRJbk5hbm9zZWNvbmRzKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQ2NCwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
dW5zaWduZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCB1aW50NjRfdCB2YWx1ZSwgaW50NjRfdCB0
aW1lb3V0SW5OYW5vc2Vjb25kcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWVtb3J5QXRvbWljV2FpdDY0LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCBKSVRfVUlO
VDMyKGJhc2UpLCBKSVRfVUlOVDMyKG9mZnNldCksIEpJVF9VSU5UNjQodmFsdWUpLCBKSVRfSU5U
NjQodGltZW91dEluTmFub3NlY29uZHMpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoYmFz
ZSk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKG9mZnNldCk7CisgICAgSklUX0RFRklORV9JTlRF
R0VSKHZhbHVlKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIodGltZW91dEluTmFub3NlY29uZHMp
OwogICAgIFZNJiB2bSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCkt
PnZtKCk7CiAgICAgdWludDY0X3Qgb2Zmc2V0SW5NZW1vcnkgPSBzdGF0aWNfY2FzdDx1aW50NjRf
dD4oYmFzZSkgKyBvZmZzZXQ7CiAgICAgaWYgKG9mZnNldEluTWVtb3J5ICYgKDB4OCAtIDEpKQpA
QCAtODg1LDggKzkyNywxMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVt
b3J5QXRvbWljV2FpdDY0LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbgogICAgIHJldHVybiB3
YWl0PHVpbnQ2NF90Pih2bSwgcG9pbnRlciwgdmFsdWUsIHRpbWVvdXRJbk5hbm9zZWNvbmRzKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY05vdGlm
eSwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgYmFzZSwgdW5zaWduZWQg
b2Zmc2V0LCBpbnQzMl90IGNvdW50VmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbk1lbW9yeUF0b21pY05vdGlmeSwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
SklUX1VJTlQzMihiYXNlKSwgSklUX1VJTlQzMihvZmZzZXQpLCBKSVRfSU5UMzIoY291bnRWYWx1
ZSkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihiYXNlKTsKKyAgICBKSVRfREVGSU5FX0lO
VEVHRVIob2Zmc2V0KTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoY291bnRWYWx1ZSk7CiAgICAg
dWludDY0X3Qgb2Zmc2V0SW5NZW1vcnkgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oYmFzZSkgKyBv
ZmZzZXQ7CiAgICAgaWYgKG9mZnNldEluTWVtb3J5ICYgKDB4NCAtIDEpKQogICAgICAgICByZXR1
cm4gLTE7CkBAIC05MDMsMjAgKzk0OCwyNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uTWVtb3J5QXRvbWljTm90aWZ5LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbgogICAg
IHJldHVybiBQYXJraW5nTG90Ojp1bnBhcmtDb3VudChwb2ludGVyLCBjb3VudCk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5SW5pdCwgc2l6ZV90LCAo
SW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBkYXRhU2VnbWVudEluZGV4LCB1aW50MzJfdCBk
c3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRyZXNzLCB1aW50MzJfdCBsZW5ndGgpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlJbml0LCBzaXplX3QsIChJbnN0
YW5jZSogaW5zdGFuY2UsIEpJVF9VSU5UMzIoZGF0YVNlZ21lbnRJbmRleCksIEpJVF9VSU5UMzIo
ZHN0QWRkcmVzcyksIEpJVF9VSU5UMzIoc3JjQWRkcmVzcyksIEpJVF9VSU5UMzIobGVuZ3RoKSkp
CiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGRhdGFTZWdtZW50SW5kZXgpOworICAgIEpJVF9E
RUZJTkVfSU5URUdFUihkc3RBZGRyZXNzKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoc3JjQWRk
cmVzcyk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGxlbmd0aCk7CiAgICAgQVNTRVJUKGRhdGFT
ZWdtZW50SW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5kYXRh
U2VnbWVudHNDb3VudCgpKTsKICAgICByZXR1cm4gaW5zdGFuY2UtPm1lbW9yeUluaXQoZHN0QWRk
cmVzcywgc3JjQWRkcmVzcywgbGVuZ3RoLCBkYXRhU2VnbWVudEluZGV4KTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRhRHJvcCwgdm9pZCwgKEluc3RhbmNl
KiBpbnN0YW5jZSwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbURhdGFEcm9wLCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNl
LCBKSVRfVUlOVDMyKGRhdGFTZWdtZW50SW5kZXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIoZGF0YVNlZ21lbnRJbmRleCk7CiAgICAgQVNTRVJUKGRhdGFTZWdtZW50SW5kZXggPCBpbnN0
YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5kYXRhU2VnbWVudHNDb3VudCgpKTsK
ICAgICBpbnN0YW5jZS0+ZGF0YURyb3AoZGF0YVNlZ21lbnRJbmRleCk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGlu
c3RhbmNlLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdW5zaWduZWQgZXhjZXB0aW9uSW5kZXgsIHVp
bnQ2NF90KiBhcmd1bWVudHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldh
c21UaHJvdywgdm9pZCosIChJbnN0YW5jZSogaW5zdGFuY2UsIENhbGxGcmFtZSogY2FsbEZyYW1l
LCBKSVRfVUlOVDMyKGV4Y2VwdGlvbkluZGV4KSwgdWludDY0X3QqIGFyZ3VtZW50cykpCiB7Cisg
ICAgSklUX0RFRklORV9JTlRFR0VSKGV4Y2VwdGlvbkluZGV4KTsKICAgICBpbnN0YW5jZS0+c3Rv
cmVUb3BDYWxsRnJhbWUoY2FsbEZyYW1lKTsKIAogICAgIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSog
anNJbnN0YW5jZSA9IGluc3RhbmNlLT5vd25lcjxKU1dlYkFzc2VtYmx5SW5zdGFuY2U+KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaAppbmRleCBjZjdjMGQ1
ZmVmNGQuLmI3NTJkNWI3NTM4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3BlcmF0aW9ucy5oCkBAIC02Myw3ICs2Myw3IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ29udmVydFRvRjMyLCBmbG9hdCwgKENhbGxGcmFtZSosIEpTVmFsdWUpKTsKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29udmVydFRvQmlnSW50LCBFbmNvZGVk
SlNWYWx1ZSwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgaW50NjRfdCkpOwogCiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1l
KiwgSW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBKU1ZhbHVlLCB1aW50NjRfdCosIHVpbnQ2
NF90KikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3Vs
dHNBcnJheSwgSlNBcnJheSosIChDYWxsRnJhbWUqLCBXYXNtOjpJbnN0YW5jZSosIGNvbnN0IFNp
Z25hdHVyZSosIEluZGV4aW5nVHlwZSwgSlNWYWx1ZSopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1l
KiwgV2FzbTo6SW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBKSVRfSU5URUdFUl9WQUxVRShJ
bmRleGluZ1R5cGUpLCBKU1ZhbHVlKikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21Xcml0ZUJhcnJpZXJTbG93UGF0aCwgdm9pZCwgKEpTQ2VsbCosIFZNKikpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDMyLCB1aW50MzJfdCwg
KGludDMyX3QpKTsKQEAgLTcyLDIzICs3MiwyMyBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkdyb3dNZW1vcnksIGludDMyX3QsICh2b2lkKiwgSW5zdGFuY2UqLCBpbnQzMgog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwgc2l6ZV90
LCAoSW5zdGFuY2UqLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCB0YXJnZXRWYWx1ZSwg
dWludDMyX3QgY291bnQpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bU1lbW9yeUNvcHksIHNpemVfdCwgKEluc3RhbmNlKiwgdWludDMyX3QgZHN0QWRkcmVzcywgdWlu
dDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgY291bnQpKTsKIAotSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1ZSwgKElu
c3RhbmNlKiwgdW5zaWduZWQsIGludDMyX3QpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudCwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1bnNpZ25l
ZCwgdWludDMyX3QsIEVuY29kZWRKU1ZhbHVlIGVuY1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQsIEVuY29kZWRKU1ZhbHVlLCAo
SW5zdGFuY2UqLCB1aW50MzJfdCwgaW50MzJfdCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25TZXRXYXNtVGFibGVFbGVtZW50LCBzaXplX3QsIChJbnN0YW5jZSosIHVpbnQz
Ml90LCB1aW50MzJfdCwgRW5jb2RlZEpTVmFsdWUgZW5jVmFsdWUpKTsKIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJlZkZ1bmMsIEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFu
Y2UqLCB1aW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VGFibGVJbml0LCBzaXplX3QsIChJbnN0YW5jZSosIHVuc2lnbmVkIGVsZW1lbnRJbmRleCwgdW5z
aWduZWQgdGFibGVJbmRleCwgdWludDMyX3QgZHN0T2Zmc2V0LCB1aW50MzJfdCBzcmNPZmZzZXQs
IHVpbnQzMl90IGxlbmd0aCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtRWxlbURyb3AsIHZvaWQsIChJbnN0YW5jZSosIHVuc2lnbmVkIGVsZW1lbnRJbmRleCkpOwot
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90
LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgdWludDMyX3QgZGVs
dGEpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlRmlsbCwg
c2l6ZV90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgdWludDMyX3Qgb2Zmc2V0LCBFbmNvZGVkSlNW
YWx1ZSBmaWxsLCB1aW50MzJfdCBjb3VudCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25XYXNtVGFibGVDb3B5LCBzaXplX3QsIChJbnN0YW5jZSosIHVuc2lnbmVkIGRzdFRh
YmxlSW5kZXgsIHVuc2lnbmVkIHNyY1RhYmxlSW5kZXgsIGludDMyX3QgZHN0T2Zmc2V0LCBpbnQz
Ml90IHNyY09mZnNldCwgaW50MzJfdCBsZW5ndGgpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZSwgaW50MzJfdCwgKEluc3RhbmNlKiwgdW5zaWdu
ZWQpKTsKLQotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNX
YWl0MzIsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGJhc2UsIHVuc2ln
bmVkIG9mZnNldCwgdWludDMyX3QgdmFsdWUsIGludDY0X3QgdGltZW91dCkpOwotSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0NjQsIGludDMyX3QsIChJ
bnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGJhc2UsIHVuc2lnbmVkIG9mZnNldCwgdWludDY0
X3QgdmFsdWUsIGludDY0X3QgdGltZW91dCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25NZW1vcnlBdG9taWNOb3RpZnksIGludDMyX3QsIChJbnN0YW5jZSosIHVuc2lnbmVk
LCB1bnNpZ25lZCwgaW50MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25XYXNtTWVtb3J5SW5pdCwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBkYXRhU2VnbWVu
dEluZGV4LCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRyZXNzLCB1aW50MzJf
dCBsZW5ndGgpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbURhdGFE
cm9wLCB2b2lkLCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBkYXRhU2VnbWVudEluZGV4KSk7Ci0KLUpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRocm93LCB2b2lkKiwgKEluc3Rh
bmNlKiwgQ2FsbEZyYW1lKiwgdW5zaWduZWQgZXhjZXB0aW9uSW5kZXgsIHVpbnQ2NF90KikpOwor
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVJbml0LCBzaXplX3Qs
IChJbnN0YW5jZSosIHVpbnQzMl90IGVsZW1lbnRJbmRleCwgdWludDMyX3QgdGFibGVJbmRleCwg
dWludDMyX3QgZHN0T2Zmc2V0LCB1aW50MzJfdCBzcmNPZmZzZXQsIHVpbnQzMl90IGxlbmd0aCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtRWxlbURyb3AsIHZvaWQs
IChJbnN0YW5jZSosIHVpbnQzMl90IGVsZW1lbnRJbmRleCkpOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90LCAoSW5zdGFuY2UqLCB1aW50
MzJfdCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgdWludDMyX3QgZGVsdGEpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlRmlsbCwgc2l6ZV90LCAoSW5zdGFuY2Uq
LCB1aW50MzJfdCwgdWludDMyX3Qgb2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCB1aW50MzJf
dCBjb3VudCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVD
b3B5LCBzaXplX3QsIChJbnN0YW5jZSosIHVpbnQzMl90IGRzdFRhYmxlSW5kZXgsIHVpbnQzMl90
IHNyY1RhYmxlSW5kZXgsIGludDMyX3QgZHN0T2Zmc2V0LCBpbnQzMl90IHNyY09mZnNldCwgaW50
MzJfdCBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2Fz
bVRhYmxlU2l6ZSwgaW50MzJfdCwgKEluc3RhbmNlKiwgdWludDMyX3QpKTsKKworSlNDX0RFQ0xB
UkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0MzIsIGludDMyX3QsIChJ
bnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IGJhc2UsIHVpbnQzMl90IG9mZnNldCwgdWludDMy
X3QgdmFsdWUsIGludDY0X3QgdGltZW91dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25NZW1vcnlBdG9taWNXYWl0NjQsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2Us
IHVpbnQzMl90IGJhc2UsIHVpbnQzMl90IG9mZnNldCwgdWludDY0X3QgdmFsdWUsIGludDY0X3Qg
dGltZW91dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9t
aWNOb3RpZnksIGludDMyX3QsIChJbnN0YW5jZSosIHVpbnQzMl90LCB1aW50MzJfdCwgaW50MzJf
dCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5SW5pdCwg
c2l6ZV90LCAoSW5zdGFuY2UqLCB1aW50MzJfdCBkYXRhU2VnbWVudEluZGV4LCB1aW50MzJfdCBk
c3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRyZXNzLCB1aW50MzJfdCBsZW5ndGgpKTsKK0pTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbURhdGFEcm9wLCB2b2lkLCAoSW5zdGFu
Y2UqLCB1aW50MzJfdCBkYXRhU2VnbWVudEluZGV4KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVRocm93LCB2b2lkKiwgKEluc3RhbmNlKiwgQ2FsbEZyYW1lKiwg
dWludDMyX3QgZXhjZXB0aW9uSW5kZXgsIHVpbnQ2NF90KikpOwogSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtUmV0aHJvdywgdm9pZCosIChJbnN0YW5jZSosIENhbGxGcmFt
ZSosIEVuY29kZWRKU1ZhbHVlIHRocm93blZhbHVlKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uV2FzbVRvSlNFeGNlcHRpb24sIHZvaWQqLCAoQ2FsbEZyYW1lKiwgV2Fz
bTo6RXhjZXB0aW9uVHlwZSwgSW5zdGFuY2UqKSk7Cg==
</data>
<flag name="commit-queue"
          id="481523"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454079</attachid>
            <date>2022-03-08 00:20:21 -0800</date>
            <delta_ts>2022-04-19 00:31:42 -0700</delta_ts>
            <desc>RFC patch - alternative</desc>
            <filename>riscv.patch</filename>
            <type>text/plain</type>
            <size>135150</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3NGUyM2RmNTRkZTYuLjE2ZTZl
NzliYmU5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODQ2LDYgKzg0
Niw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
aml0L0Jhc2VsaW5lSklUUmVnaXN0ZXJzLmgKICAgICBqaXQvQ2FsbEZyYW1lU2h1ZmZsZURhdGEu
aAogICAgIGppdC9DQ2FsbEhlbHBlcnMuaAorICAgIGppdC9DQ2FsbFR5cGVzLmgKICAgICBqaXQv
RXhlY3V0YWJsZUFsbG9jYXRvci5oCiAgICAgaml0L0V4ZWN1dGFibGVNZW1vcnlIYW5kbGUuaAog
ICAgIGppdC9GUFJJbmZvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGFiOTZj
NmFiYzhkLi4zODkzNDIwODYyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
ODAxLDYgKzE4MDEsNyBAQAogCQlDRDFGOUIzQzI3MEMwQzFBMDA2MTdFQjYgLyogVHlwZWRBcnJh
eUFkYXB0ZXJzRm9yd2FyZERlY2xhcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlCM0IyNzBDMEMxQTAwNjE3RUI2IC8qIFR5cGVkQXJy
YXlBZGFwdGVyc0ZvcndhcmREZWNsYXJhdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDFGOUI0OTI3MENGRENDMDA2MTdFQjYgLyogSGFu
ZGxlRm9yd2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0QxRjlCNDgyNzBDRkRDQzAwNjE3RUI2IC8qIEhhbmRsZUZvcndhcmQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDFGOUI0QjI3MENGRTBG
MDA2MTdFQjYgLyogU3Ryb25nRm9yd2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlCNEEyNzBDRkUwRjAwNjE3RUI2IC8qIFN0cm9uZ0Zvcndh
cmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlD
RDM1MDFFNDI3QkE5QzRGMDBDOUE5QzUgLyogQ0NhbGxUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNTAxRTMyN0JBOUM0RTAwQzlBOUM1IC8q
IENDYWxsVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlDRTIwQkQwNTIzN0QzRTIzMDA0NkU1MjAgLyogRmlsZUJhc2VkRnV6emVyQWdlbnRC
YXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTIw
QkQwMzIzN0QzQUQ0MDA0NkU1MjAgLyogRmlsZUJhc2VkRnV6emVyQWdlbnRCYXNlLmggKi87IH07
CiAJCUNFMjBCRDA3MjM3RDNFNDgwMDQ2RTUyMCAvKiBQcmVkaWN0aW9uRmlsZUNyZWF0aW5nRnV6
emVyQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENFMjBCRDAxMjM3RDNBRDQwMDQ2RTUyMCAvKiBQcmVkaWN0aW9uRmlsZUNyZWF0aW5nRnV6emVy
QWdlbnQuaCAqLzsgfTsKIAkJQ0VBRTdEN0I4ODlCNDc3QkE5M0FCQTZDIC8qIFNjcmlwdEZldGNo
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg4NTIx
NTFBOUMzODQyMzg5QjMyMTVCNyAvKiBTY3JpcHRGZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUyMjYsNiArNTIyNyw3IEBACiAJCUNE
MUY5QjNCMjcwQzBDMUEwMDYxN0VCNiAvKiBUeXBlZEFycmF5QWRhcHRlcnNGb3J3YXJkRGVjbGFy
YXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVkQXJyYXlBZGFwdGVyc0ZvcndhcmREZWNsYXJh
dGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxRjlCNDgyNzBDRkRDQzAw
NjE3RUI2IC8qIEhhbmRsZUZvcndhcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFuZGxlRm9yd2FyZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDFGOUI0QTI3MENGRTBGMDA2MTdFQjYg
LyogU3Ryb25nRm9yd2FyZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJvbmdGb3J3YXJkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzUwMUUzMjdCQTlDNEUwMEM5QTlDNSAvKiBDQ2Fs
bFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENDYWxsVHlwZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UyMEJEMDEyMzdEM0FENDAwNDZFNTIwIC8q
IFByZWRpY3Rpb25GaWxlQ3JlYXRpbmdGdXp6ZXJBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmVk
aWN0aW9uRmlsZUNyZWF0aW5nRnV6emVyQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0UyMEJEMDIyMzdEM0FENDAwNDZFNTIwIC8qIFByZWRpY3Rpb25GaWxlQ3JlYXRpbmdG
dXp6ZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmVkaWN0aW9uRmlsZUNyZWF0aW5n
RnV6emVyQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTIwQkQwMzIz
N0QzQUQ0MDA0NkU1MjAgLyogRmlsZUJhc2VkRnV6emVyQWdlbnRCYXNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZpbGVCYXNlZEZ1enplckFnZW50QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNjU2MSw2ICs2NTYzLDcgQEAKIAkJCQk2MkQ3NTVEMzFCODRGQjM5MDAxODAxRkEgLyog
Q2FsbEZyYW1lU2h1ZmZsZXI2NC5jcHAgKi8sCiAJCQkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIz
IC8qIENDYWxsSGVscGVycy5jcHAgKi8sCiAJCQkJMEYyNEU1M0QxN0VBOUY1OTAwQUJCMjE3IC8q
IENDYWxsSGVscGVycy5oICovLAorCQkJCUNEMzUwMUUzMjdCQTlDNEUwMEM5QTlDNSAvKiBDQ2Fs
bFR5cGVzLmggKi8sCiAJCQkJMEZGMDU0RjcxQUMzNUI0NDAwRTVCRTU3IC8qIEV4ZWN1dGFibGVB
bGxvY2F0aW9uRnV6ei5jcHAgKi8sCiAJCQkJMEZGMDU0RjgxQUMzNUI0NDAwRTVCRTU3IC8qIEV4
ZWN1dGFibGVBbGxvY2F0aW9uRnV6ei5oICovLAogCQkJCUE3QjQ4REI2MEVFNzRDRkMwMERDQkRC
NiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCAqLywKQEAgLTk5NzAsNiArOTk3Myw3IEBACiAJ
CQkJMEYzQjdFMkIxOUExMUI4MDAwRDlCQzU2IC8qIENhbGxWYXJpYW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRTgwQzE5NzFENzc1Q0REMDA4NTEwQzAgLyogQ2F0Y2hTY29wZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NDIxN0VBOUY1OTAwQUJCMjE3IC8qIENDYWxsSGVscGVycy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQ0QzNTAxRTQyN0JBOUM0RjAwQzlBOUM1IC8qIENDYWxsVHlwZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTYzMDNBMUQ0MTkyQzgwMDU2MDlEOSAvKiBDZWxsQXR0
cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwNzBBNDcxRDU0M0E4QjAwNkU3MjMyIC8q
IENlbGxDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMDcwQTQ4MUQ1NDNBOTAwMDZF
NzIzMiAvKiBDZWxsQ29udGFpbmVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCmluZGV4IDIwNGZmNDMwNDE1MS4u
MjJhMGRlMjMyMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3Rt
YXNtLmNwcApAQCAtMjM3LDYgKzIzNywxMyBAQCBUIGludm9rZShjb25zdCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8SlNFbnRyeVB0clRhZz4mIGNvZGUsIEFyZ3VtZW50cy4uLiBhcmd1bWVudAogewog
ICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzID0gdW50YWdDRnVuY3Rpb25QdHI8SlNFbnRyeVB0
clRhZz4oY29kZS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiAgICAgVCAoKmZ1bmN0aW9u
KShBcmd1bWVudHMuLi4pID0gYml0d2lzZV9jYXN0PFQoKikoQXJndW1lbnRzLi4uKT4oZXhlY3V0
YWJsZUFkZHJlc3MpOworCisgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX2ludGVncmFsX3Y8VD4p
IHsKKyAgICAgICAgSklUX0lOVEVHRVJfVkFMVUUoVCwgcmVzdWx0KSA9IGZ1bmN0aW9uKGFyZ3Vt
ZW50cy4uLik7CisgICAgICAgIEpJVF9ERUZJTkVfSU5URUdFUihyZXN1bHQpOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAgIHJldHVybiBmdW5jdGlvbihhcmd1bWVudHMuLi4p
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRl
eCBkYzUwMzE2NDc1YWYuLmU5MzdiMjYzN2U2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiREZHT3Bl
cmF0aW9ucy5oIgogCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgorI2luY2x1ZGUgIkND
YWxsVHlwZXMuaCIKICNpbmNsdWRlICJDYWNoZWFibGVJZGVudGlmaWVySW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkNsb25lZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgpAQCAtNDAx
LDggKzQwMiw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25PYmplY3RBc3Np
Z25VbnR5cGVkLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgb2JqZWN0QXNzaWduR2Vu
ZXJpYyhnbG9iYWxPYmplY3QsIHZtLCB0YXJnZXQsIHNvdXJjZSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVUaGlzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCB1aW50MzJfdCBpbmxpbmVD
YXBhY2l0eSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlVGhpcywg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBjb25zdHJ1
Y3RvciwgSklUX1VJTlQzMihpbmxpbmVDYXBhY2l0eSkpKQogeworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihpbmxpbmVDYXBhY2l0eSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CkBAIC03NjEsOCArNzYzLDkgQEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZXRCeVZh
bENlbGxJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHYKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoYmFzZSkuZ2V0KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGluZGV4KSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR2V0QnlWYWxPYmplY3RJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIGludDMyX3QgaW5kZXgpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50LCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBKSVRfSU5U
MzIoaW5kZXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoaW5kZXgpOwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtNzcwLDggKzc3Myw5IEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeVZhbE9iamVjdEludCwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iCiAgICAgcmV0dXJuIGdldEJ5VmFsQ2VsbEludChnbG9iYWxPYmplY3QsIHZt
LCBiYXNlLCBpbmRleCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRCeVZhbFN0cmluZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1N0cmluZyogYmFzZSwgaW50MzJfdCBpbmRleCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0QnlWYWxTdHJpbmdJbnQsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIGJhc2UsIEpJVF9JTlQzMihpbmRl
eCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7CkBAIC04NTksOCArODYzLDkgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN5bWJvbE5vblN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2IKICAgICBwdXRCeVZhbENlbGxJbnRlcm5hbDxmYWxzZSwgZmFsc2U+KGdsb2JhbE9iamVj
dCwgdm0sIGNlbGwsIHByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRB
cnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJh
eUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBvYmplY3QsIEpJVF9JTlQzMihpbmRleCksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGluZGV4KTsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKQEAgLTg3NSw4ICs4ODAsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpT
R2xvYgogICAgICAgICBvYmplY3QsIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwg
aW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9u
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9i
amVjdCwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9u
U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9i
amVjdCwgSklUX0lOVDMyKGluZGV4KSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
KyAgICBKSVRfREVGSU5FX0lOVEVHRVIoaW5kZXgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOwpAQCAtODkxLDggKzg5Nyw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkLCAoSlNHCiAg
ICAgICAgIG9iamVjdCwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCks
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJp
Y3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0
LCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LCBKSVRfSU5UMzIo
aW5kZXgpLCBkb3VibGUgdmFsdWUpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC05MDksOCArOTE2LDkgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJy
YXlCb3VuZHNTdHJpY3QsIHZvaWQsICgKICAgICAgICAgb2JqZWN0LCBnbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwganNWYWx1ZSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRz
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IG9iamVjdCwgaW50MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwg
SklUX0lOVDMyKGluZGV4KSwgZG91YmxlIHZhbHVlKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIoaW5kZXgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtOTI3LDgg
KzkzNSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXREb3VibGVCeVZh
bEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lkCiAgICAgICAgIG9iamVjdCwgZ2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIGpzVmFsdWUsIHNsb3QpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RC
ZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBvYmplY3QsIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRB
cnJheUJvdW5kc1N0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiBvYmplY3QsIEpJVF9JTlQzMihpbmRleCksIGRvdWJsZSB2YWx1ZSkpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKGluZGV4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKQEAgLTk0NCw4ICs5NTMsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uUHV0RG91YmxlQnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwgdgogICAgIENv
bW1vblNsb3dQYXRoczo6cHV0RGlyZWN0V2l0aFJlaWZ5KHZtLCBnbG9iYWxPYmplY3QsIG9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBqc1ZhbHVlLCBzbG90KTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25k
QXJyYXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU09iamVjdCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBkb3VibGUgdmFsdWUpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsRGlyZWN0QmV5b25kQXJy
YXlCb3VuZHNOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U09iamVjdCogb2JqZWN0LCBKSVRfSU5UMzIoaW5kZXgpLCBkb3VibGUgdmFsdWUpKQogeworICAg
IEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CkBAIC0xMDE3LDggKzEwMjcsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3ltYm9sTm9uU3RyaWN0LCB2b2lkLCAoSlNHbAogICAg
IHB1dEJ5VmFsQ2VsbEludGVybmFsPGZhbHNlLCB0cnVlPihnbG9iYWxPYmplY3QsIHZtLCBjZWxs
LCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlC
b3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogb2JqZWN0LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQor
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJy
YXlCb3VuZHNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogb2JqZWN0LCBKSVRfSU5UMzIoaW5kZXgpLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xMDMxLDggKzEwNDIsOSBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCwg
dm9pZCwgKAogICAgIENvbW1vblNsb3dQYXRoczo6cHV0RGlyZWN0V2l0aFJlaWZ5KHZtLCBnbG9i
YWxPYmplY3QsIG9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgaW5kZXgpLCBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwgaW50MzJf
dCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QdXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVjdCwg
SklUX0lOVDMyKGluZGV4KSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKKyAgICBK
SVRfREVGSU5FX0lOVEVHRVIoaW5kZXgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwpAQCAtMTA2Niw4ICsxMDc4LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkFycmF5UHVzaERvdWJsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamUKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGFycmF5LT5sZW5ndGgoKSkpOwogfQogCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlQdXNoTXVsdGlwbGUsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNBcnJheSogYXJyYXks
IHZvaWQqIGJ1ZmZlciwgaW50MzJfdCBlbGVtZW50Q291bnQpKQorSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaE11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZmZXIsIEpJ
VF9JTlQzMihlbGVtZW50Q291bnQpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoZWxlbWVu
dENvdW50KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTEwOTMsOCAr
MTEwNiw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheVB1c2hNdWx0
aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihhcnJheS0+bGVuZ3RoKCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFycmF5UHVzaERvdWJsZU11bHRpcGxlLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXkqIGFycmF5LCB2b2lkKiBidWZm
ZXIsIGludDMyX3QgZWxlbWVudENvdW50KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25BcnJheVB1c2hEb3VibGVNdWx0aXBsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5KiBhcnJheSwgdm9pZCogYnVmZmVyLCBKSVRfSU5U
MzIoZWxlbWVudENvdW50KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGVsZW1lbnRDb3Vu
dCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xMjgxLDggKzEyOTUs
OSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRTdHJpbmdOb1Jh
ZGl4LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYgogICAgIHJldHVybiBwYXJzZUludFJlc3VsdChw
YXJzZUludCh2aWV3V2l0aFN0cmluZy52aWV3LCAwKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0cmluZywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCBpbnQzMl90IHJhZGl4KSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QYXJzZUludFN0cmluZywgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5n
LCBKSVRfSU5UMzIocmFkaXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmFkaXgpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTI5NCw4ICsxMzA5LDkgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBhcnNlSW50U3RyaW5nLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gcGFyc2VJbnRSZXN1bHQocGFyc2VJ
bnQodmlld1dpdGhTdHJpbmcudmlldywgcmFkaXgpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblBhcnNlSW50R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSwgaW50MzJfdCByYWRp
eCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUGFyc2VJbnRHZW5lcmljLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHZhbHVlLCBKSVRfSU5UMzIocmFkaXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
cmFkaXgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTYxMCw4ICsx
NjI2LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRo
aXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgcHJvcGVy
dHksIHNsb3QpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRC
eUlkV2l0aFRoaXNTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7Cisg
ICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTYyMiw4ICsxNjM5LDkgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpc1N0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KgogICAgIHB1dFdpdGhUaGlzPHRydWU+KGdsb2JhbE9iamVjdCwgZW5jb2Rl
ZEJhc2UsIGVuY29kZWRUaGlzLCBlbmNvZGVkVmFsdWUsIGlkZW50KTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRXaXRoVGhpcywgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCB1aW50cHRy
X3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUHV0QnlJZFdpdGhUaGlzLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlz
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRp
Zmllcik7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xNjcwLDggKzE2
ODgsOSBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGRlZmluZURhdGFQcm9wZXJ0eShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdgogICAgICAgICBiYXNlLT5tZXRob2RUYWJs
ZSh2bSktPmRlZmluZU93blByb3BlcnR5KGJhc2UsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yLCB0cnVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHksIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpJVF9JTlQzMihhdHRy
aWJ1dGVzKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGF0dHJpYnV0ZXMpOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTY4Myw4ICsxNzAyLDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eSwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG8KICAgICBkZWZpbmVEYXRhUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2
bSwgYmFzZSwgcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgYXR0
cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVE
YXRhUHJvcGVydHlTdHJpbmcsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U09iamVjdCogYmFzZSwgSlNTdHJpbmcqIHByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIGludDMyX3QgYXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3RyaW5nLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIEpTU3RyaW5nKiBwcm9wZXJ0eSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBKSVRfSU5UMzIoYXR0cmlidXRlcykpKQogeworICAgIEpJVF9E
RUZJTkVfSU5URUdFUihhdHRyaWJ1dGVzKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKQEAgLTE2OTYsMTYgKzE3MTYsMTggQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRlZmluZURhdGFQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWMKICAg
ICBkZWZpbmVEYXRhUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgYXR0cmlidXRlcyk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJZGVu
dCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBV
bmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
aW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25E
ZWZpbmVEYXRhUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHksIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSklUX0lOVDMyKGF0dHJpYnV0ZXMpKSkKIHsKKyAg
ICBKSVRfREVGSU5FX0lOVEVHRVIoYXR0cmlidXRlcyk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7CiAgICAgZGVmaW5lRGF0YVByb3BlcnR5KGdsb2JhbE9iamVjdCwgdm0sIGJh
c2UsIElkZW50aWZpZXI6OmZyb21VaWQodm0sIHByb3BlcnR5KSwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSksIGF0dHJpYnV0ZXMpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRGVmaW5lRGF0YVByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFN5bWJvbCogcHJvcGVydHksIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGVzKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVEYXRhUHJvcGVydHlTeW1ib2wsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwgU3ltYm9sKiBwcm9wZXJ0
eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKSVRfSU5UMzIoYXR0cmlidXRlcykpKQog
eworICAgIEpJVF9ERUZJTkVfSU5URUdFUihhdHRyaWJ1dGVzKTsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExf
RlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgY2FsbEZyYW1lKTsKQEAgLTE3MjIsOCArMTc0NCw5IEBAIEFMV0FZU19JTkxJTkUgc3Rh
dGljIHZvaWQgZGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBWCiAgICAgICAgIGJhc2UtPm1ldGhvZFRhYmxlKHZtKS0+ZGVmaW5lT3duUHJvcGVydHko
YmFzZSwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHRydWUpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0
eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0
KiBzZXR0ZXIsIGludDMyX3QgYXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVy
dHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIEpJVF9JTlQzMihhdHRyaWJ1
dGVzKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGF0dHJpYnV0ZXMpOwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTczNCw4ICsxNzU3LDkgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHksIHZvaWQsIChK
U0dsb2JhbE9iamVjdCoKICAgICBkZWZpbmVBY2Nlc3NvclByb3BlcnR5KGdsb2JhbE9iamVjdCwg
dm0sIGJhc2UsIHByb3BlcnR5TmFtZSwgZ2V0dGVyLCBzZXR0ZXIsIGF0dHJpYnV0ZXMpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0
eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBi
YXNlLCBKU1N0cmluZyogcHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0
ZXIsIGludDMyX3QgYXR0cmlidXRlcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBKU1N0cmluZyogcHJvcGVydHksIEpTT2JqZWN0
KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIEpJVF9JTlQzMihhdHRyaWJ1dGVzKSkpCiB7Cisg
ICAgSklUX0RFRklORV9JTlRFR0VSKGF0dHJpYnV0ZXMpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwpAQCAtMTc0NiwyNCArMTc3MCwyNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eVN0cmluZywgdm9pZCwgKEpTR2xv
YmFsTwogICAgIGRlZmluZUFjY2Vzc29yUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwg
cHJvcGVydHlOYW1lLCBnZXR0ZXIsIHNldHRlciwgYXR0cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3RyaW5nSWRl
bnQsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogYmFzZSwg
VW5pcXVlZFN0cmluZ0ltcGwqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCog
c2V0dGVyLCBpbnQzMl90IGF0dHJpYnV0ZXMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRlZmluZUFjY2Vzc29yUHJvcGVydHlTdHJpbmdJZGVudCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCog
cHJvcGVydHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIEpJVF9JTlQzMihh
dHRyaWJ1dGVzKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGF0dHJpYnV0ZXMpOwogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogICAgIGRlZmluZUFjY2Vzc29yUHJvcGVy
dHkoZ2xvYmFsT2JqZWN0LCB2bSwgYmFzZSwgSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgcHJvcGVy
dHkpLCBnZXR0ZXIsIHNldHRlciwgYXR0cmlidXRlcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25EZWZpbmVBY2Nlc3NvclByb3BlcnR5U3ltYm9sLCB2b2lkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGJhc2UsIFN5bWJvbCogcHJvcGVy
dHksIEpTT2JqZWN0KiBnZXR0ZXIsIEpTT2JqZWN0KiBzZXR0ZXIsIGludDMyX3QgYXR0cmlidXRl
cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRGVmaW5lQWNjZXNzb3JQcm9w
ZXJ0eVN5bWJvbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBiYXNlLCBTeW1ib2wqIHByb3BlcnR5LCBKU09iamVjdCogZ2V0dGVyLCBKU09iamVjdCogc2V0
dGVyLCBKSVRfSU5UMzIoYXR0cmlidXRlcykpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihh
dHRyaWJ1dGVzKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICBkZWZp
bmVBY2Nlc3NvclByb3BlcnR5KGdsb2JhbE9iamVjdCwgdm0sIGJhc2UsIElkZW50aWZpZXI6OmZy
b21VaWQocHJvcGVydHktPnByaXZhdGVOYW1lKCkpLCBnZXR0ZXIsIHNldHRlciwgYXR0cmlidXRl
cyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdBcnJheSwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0
dXJlLCB2b2lkKiBidWZmZXIsIHNpemVfdCBzaXplKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdBcnJheSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlLCB2b2lkKiBidWZmZXIsIEpJVF9TSVpFVChzaXpl
KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHNpemUpOwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBjYWxsRnJhbWUpOwpAQCAtMTc4MSw4ICsxODA4LDkgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbk5ld0VtcHR5QXJyYXksIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgU3Ry
dWN0dXIKICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGNoYXIqPihKU0FycmF5OjpjcmVhdGUodm0s
IGFycmF5U3RydWN0dXJlKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIGludDMyX3Qgc2l6ZSwgQnV0dGVyZmx5KiBidXR0
ZXJmbHkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNp
emUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBhcnJh
eVN0cnVjdHVyZSwgSklUX0lOVDMyKHNpemUpLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkpCiB7Cisg
ICAgSklUX0RFRklORV9JTlRFR0VSKHNpemUpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwpAQCAtMTgwNiw4ICsxODM0LDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25OZXdBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxjaGFyKj4ocmVzdWx0KTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5V2l0aFNpemVBbmRIaW50LCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmUsIGlu
dDMyX3Qgc2l6ZSwgaW50MzJfdCB2ZWN0b3JMZW5ndGhIaW50LCBCdXR0ZXJmbHkqIGJ1dHRlcmZs
eSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZUFu
ZEhpbnQsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBh
cnJheVN0cnVjdHVyZSwgSklUX0lOVDMyKHNpemUpLCBKSVRfSU5UMzIodmVjdG9yTGVuZ3RoSGlu
dCksIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoc2l6
ZSk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHZlY3Rvckxlbmd0aEhpbnQpOwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTg0NSw4ICsxODc1LDkgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5QnVmZmVyLCBKU0NlbGwqLCAoVk0qIHZt
UG9pbnRlciwgU3RydWMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxlbmd0
aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJ
bnQ4QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSklUX0lOVFBUUihsZW5ndGgpLCBjaGFyKiB2ZWN0b3IpKQog
eworICAgIEpJVF9ERUZJTkVfSU5URUdFUihsZW5ndGgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOwpAQCAtMTg2MSw4ICsxODkyLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbk5ld0ludDhBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChKU0dsb2Jh
bE8KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5
cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0ludDhBcnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90
IGxlbmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdJbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpJVF9JTlRQVFIobGVuZ3RoKSwgY2hhciogdmVj
dG9yKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobGVuZ3RoKTsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTE4NzcsOCArMTkwOSw5IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdJbnQxNkFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwg
KEpTR2xvYmFsCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdl
bmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNJbnQxNkFycmF5PihnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoU2l6ZSwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
aW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSklUX0lOVFBUUihsZW5ndGgpLCBj
aGFyKiB2ZWN0b3IpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihsZW5ndGgpOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTg5Myw4ICsxOTI2LDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0ludDMyQXJyYXlXaXRoT25lQXJndW1lbnQs
IGNoYXIqLCAoSlNHbG9iYWwKICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29u
c3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50czxKU0ludDMyQXJyYXk+KGds
b2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhT
aXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKSVRfSU5UUFRSKGxl
bmd0aCksIGNoYXIqIHZlY3RvcikpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGxlbmd0aCk7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xOTA5LDggKzE5NDMsOSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhBcnJheVdpdGhPbmVB
cmd1bWVudCwgY2hhciosIChKU0dsb2JhbAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNo
YXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWludDhB
cnJheT4oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxs
b3B0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50OENs
YW1wZWRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDhDbGFtcGVkQXJyYXlXaXRo
U2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSklUX0lOVFBUUihsZW5ndGgpLCBjaGFyKiB2ZWN0b3IpKQogeworICAgIEpJVF9E
RUZJTkVfSU5URUdFUihsZW5ndGgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OwpAQCAtMTkyNSw4ICsxOTYwLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bk5ld1VpbnQ4Q2xhbXBlZEFycmF5V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEoKICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3
V2l0aEFyZ3VtZW50czxKU1VpbnQ4Q2xhbXBlZEFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVy
ZSwgZW5jb2RlZFZhbHVlLCAwLCBzdGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld1VpbnQxNkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludHB0cl90IGxl
bmd0aCwgY2hhciogdmVjdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
ZXdVaW50MTZBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKSVRfSU5UUFRSKGxlbmd0aCksIGNoYXIqIHZlY3Rv
cikpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGxlbmd0aCk7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xOTQxLDggKzE5NzcsOSBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDE2QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAo
SlNHbG9iYQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5l
cmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTVWludDE2QXJyYXk+KGdsb2JhbE9iamVj
dCwgc3RydWN0dXJlLCBlbmNvZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3VWludDMyQXJyYXlXaXRoU2l6ZSwgY2hh
ciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
aW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld1VpbnQzMkFycmF5V2l0aFNpemUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpJVF9JTlRQVFIobGVuZ3RoKSwg
Y2hhciogdmVjdG9yKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobGVuZ3RoKTsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTE5NTcsOCArMTk5NCw5IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdVaW50MzJBcnJheVdpdGhPbmVBcmd1bWVu
dCwgY2hhciosIChKU0dsb2JhCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNv
bnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8SlNVaW50MzJBcnJheT4o
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdGbG9hdDMyQXJyYXlX
aXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgaW50cHRyX3QgbGVuZ3RoLCBjaGFyKiB2ZWN0b3IpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Zsb2F0MzJBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKSVRfSU5U
UFRSKGxlbmd0aCksIGNoYXIqIHZlY3RvcikpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGxl
bmd0aCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0xOTczLDggKzIw
MTEsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQzMkFycmF5
V2l0aE9uZUFyZ3VtZW50LCBjaGFyKiwgKEpTR2xvYgogICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpT
RmxvYXQzMkFycmF5PihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZW5jb2RlZFZhbHVlLCAwLCBz
dGQ6Om51bGxvcHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5l
d0Zsb2F0NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3Rvcikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3RmxvYXQ2NEFycmF5V2l0aFNp
emUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpJVF9JTlRQVFIobGVuZ3RoKSwgY2hhciogdmVjdG9yKSkKIHsKKyAgICBKSVRfREVG
SU5FX0lOVEVHRVIobGVuZ3RoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
QEAgLTE5ODksOCArMjAyOCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
ZXdGbG9hdDY0QXJyYXlXaXRoT25lQXJndW1lbnQsIGNoYXIqLCAoSlNHbG9iCiAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dp
dGhBcmd1bWVudHM8SlNGbG9hdDY0QXJyYXk+KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlbmNv
ZGVkVmFsdWUsIDAsIHN0ZDo6bnVsbG9wdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3QmlnSW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnRwdHJfdCBsZW5ndGgs
IGNoYXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3Qmln
SW50NjRBcnJheVdpdGhTaXplLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBKSVRfSU5UUFRSKGxlbmd0aCksIGNoYXIqIHZlY3Rvcikp
CiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGxlbmd0aCk7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7CkBAIC0yMDA1LDggKzIwNDUsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTmV3QmlnSW50NjRBcnJheVdpdGhPbmVBcmd1bWVudCwgY2hhciosIChK
U0dsbwogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihjb25zdHJ1Y3RHZW5lcmlj
VHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzPEpTQmlnSW50NjRBcnJheT4oZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUsIGVuY29kZWRWYWx1ZSwgMCwgc3RkOjpudWxsb3B0KSk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdCaWdVaW50NjRBcnJheVdpdGhTaXplLCBj
aGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBpbnRwdHJfdCBsZW5ndGgsIGNoYXIqIHZlY3RvcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3QmlnVWludDY0QXJyYXlXaXRoU2l6ZSwgY2hhciosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSklUX0lOVFBUUihsZW5n
dGgpLCBjaGFyKiB2ZWN0b3IpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihsZW5ndGgpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjA1OCw4ICsyMDk5LDEwIEBA
IEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVBY3RpdmF0aW9uRGlyZWN0
LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlCiAgICAgcmV0dXJuIEpTTGV4aWNhbEVudmlyb25tZW50
OjpjcmVhdGUodm0sIHN0cnVjdHVyZSwgc2NvcGUsIHRhYmxlLCBpbml0aWFsVmFsdWUpOwogfQog
Ci1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRz
LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVpbnQzMl90
IGxlbmd0aCwgdWludDMyX3QgbWluQ2FwYWNpdHkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50cywgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBKSVRfVUlOVDMyKGxlbmd0aCksIEpJVF9VSU5UMzIobWlu
Q2FwYWNpdHkpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobGVuZ3RoKTsKKyAgICBKSVRf
REVGSU5FX0lOVEVHRVIobWluQ2FwYWNpdHkpOwogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
QEAgLTIwNzIsOCArMjExNSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
cmVhdGVEaXJlY3RBcmd1bWVudHMsIEpTQ2VsbCosIChWTSogdm1Qb2ludGVyCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNj
b3BlZEFyZ3VtZW50cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBSZWdpc3RlciogYXJndW1lbnRTdGFydCwgdWludDMyX3QgbGVu
Z3RoLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIEpTTGV4aWNhbEVudmlyb25tZW50KiBzY29wZSkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlU2NvcGVkQXJndW1lbnRzLCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBKSVRfVUlOVDMyKGxlbmd0aCksIEpTRnVuY3Rp
b24qIGNhbGxlZSwgSlNMZXhpY2FsRW52aXJvbm1lbnQqIHNjb3BlKSkKIHsKKyAgICBKSVRfREVG
SU5FX0lOVEVHRVIobGVuZ3RoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
QEAgLTIwODYsOCArMjEzMCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
cmVhdGVTY29wZWRBcmd1bWVudHMsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjCiAgICAgICAgIHZt
LCBzdHJ1Y3R1cmUsIGFyZ3VtZW50U3RhcnQsIGxlbmd0aCwgY2FsbGVlLCB0YWJsZSwgc2NvcGUp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJn
dW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBsZW5ndGgsIEpT
RnVuY3Rpb24qIGNhbGxlZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3Jl
YXRlQ2xvbmVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBKSVRfVUlO
VDMyKGxlbmd0aCksIEpTRnVuY3Rpb24qIGNhbGxlZSkpCiB7CisgICAgSklUX0RFRklORV9JTlRF
R0VSKGxlbmd0aCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yMDk1
LDggKzIxNDAsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQ2xv
bmVkQXJndW1lbnRzLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplYwogICAgICAgICBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgYXJndW1lbnRTdGFydCwgbGVuZ3RoLCBjYWxsZWUpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRzQnV0dGVyZmx5LCBK
U0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIqIGFyZ3VtZW50
U3RhcnQsIHVpbnQzMl90IGFyZ3VtZW50Q291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNyZWF0ZUFyZ3VtZW50c0J1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCBKSVRfVUlOVDMyKGFy
Z3VtZW50Q291bnQpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoYXJndW1lbnRDb3VudCk7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yMTEyLDggKzIxNTgsOSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlQXJndW1lbnRzQnV0dGVy
Zmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxPYgogICAgIHJldHVybiBidXR0ZXJmbHk7CiB9CiAKLUpT
Q19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNEdXJp
bmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVD
YWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNhbGxlZSwgdWludDMyX3QgYXJndW1lbnRDb3VudCkpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzRHVy
aW5nRXhpdCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIElubGluZUNhbGxGcmFtZSogaW5saW5l
Q2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIEpJVF9VSU5UMzIoYXJndW1lbnRDb3VudCkp
KQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihhcmd1bWVudENvdW50KTsKICAgICBWTSYgdm0g
PSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7CkBAIC0yMTQyLDggKzIxODksOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQ3JlYXRlRGlyZWN0QXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwg
KFZNKgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qIHZt
UG9pbnRlciwgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUsIEpTRnVuY3Rpb24qIGNh
bGxlZSwgdWludDMyX3QgYXJndW1lbnRDb3VudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uQ3JlYXRlQ2xvbmVkQXJndW1lbnRzRHVyaW5nRXhpdCwgSlNDZWxsKiwgKFZNKiB2
bVBvaW50ZXIsIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lLCBKU0Z1bmN0aW9uKiBj
YWxsZWUsIEpJVF9VSU5UMzIoYXJndW1lbnRDb3VudCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihhcmd1bWVudENvdW50KTsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yMTcx
LDggKzIyMTksMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZUNs
b25lZEFyZ3VtZW50c0R1cmluZ0V4aXQsIEpTQ2VsbCosIChWTSoKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ3JlYXRlUmVzdCwgSlND
ZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ2lzdGVyKiBhcmd1bWVudFN0
YXJ0LCB1bnNpZ25lZCBudW1iZXJPZlBhcmFtc1RvU2tpcCwgdW5zaWduZWQgYXJyYXlTaXplKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVSZXN0LCBKU0NlbGwqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIqIGFyZ3VtZW50U3RhcnQsIEpJ
VF9VSU5UMzIobnVtYmVyT2ZQYXJhbXNUb1NraXApLCBKSVRfVUlOVDMyKGFycmF5U2l6ZSkpKQog
eworICAgIEpJVF9ERUZJTkVfSU5URUdFUihudW1iZXJPZlBhcmFtc1RvU2tpcCk7CisgICAgSklU
X0RFRklORV9JTlRFR0VSKGFycmF5U2l6ZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
ICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CkBAIC0yMjUwLDggKzIzMDAsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uQWxsb2NhdGVTaW1wbGVQcm9wZXJ0eVN0b3JhZ2VXaXRoSW5pdGlhbENhcGFjaQogICAg
ICAgICBCdXR0ZXJmbHk6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQodm0sIG51bGxwdHIsIDAsIGluaXRp
YWxPdXRPZkxpbmVDYXBhY2l0eSwgZmFsc2UsIDApKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlU2ltcGxlUHJvcGVydHlTdG9yYWdlLCBjaGFyKiwgKFZN
KiB2bVBvaW50ZXIsIHNpemVfdCBuZXdTaXplKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25BbGxvY2F0ZVNpbXBsZVByb3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2lu
dGVyLCBKSVRfU0laRVQobmV3U2l6ZSkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihuZXdT
aXplKTsKICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yMjcxLDggKzIzMjIsOSBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlT
dG9yYWdlV2l0aEluaXRpYWxDYXBhYwogICAgICAgICBvYmplY3QtPmFsbG9jYXRlTW9yZU91dE9m
TGluZVN0b3JhZ2Uodm0sIDAsIGluaXRpYWxPdXRPZkxpbmVDYXBhY2l0eSkpOwogfQogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQWxsb2NhdGVDb21wbGV4UHJvcGVydHlTdG9y
YWdlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpTT2JqZWN0KiBvYmplY3QsIHNpemVfdCBuZXdT
aXplKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZUNvbXBsZXhQ
cm9wZXJ0eVN0b3JhZ2UsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgSlNPYmplY3QqIG9iamVjdCwg
SklUX1NJWkVUKG5ld1NpemUpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobmV3U2l6ZSk7
CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjMzNyw4ICsyMzg5LDkgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkVuc3VyZUFycmF5U3RvcmFnZSwgY2hhciosIChW
TSogdm1Qb2ludGVyLCBKU0MKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5LCBzaXplX3QsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2VDZWxsLCBpbnQzMl90IHN1YnNjcmlw
dCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5
LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGJhc2VDZWxs
LCBKSVRfSU5UMzIoc3Vic2NyaXB0KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHN1YnNj
cmlwdCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yMzUwLDggKzI0
MDMsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3Bl
cnR5LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVybiBvYmplY3QtPmhhc1By
b3BlcnR5KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN1YnNjcmlwdCkpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzRW51bWVyYWJsZUluZGV4
ZWRQcm9wZXJ0eSwgc2l6ZV90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxs
KiBiYXNlQ2VsbCwgaW50MzJfdCBzdWJzY3JpcHQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkhhc0VudW1lcmFibGVJbmRleGVkUHJvcGVydHksIHNpemVfdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZUNlbGwsIEpJVF9JTlQzMihzdWJzY3Jp
cHQpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoc3Vic2NyaXB0KTsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTIzOTMsOCArMjQ0NywxMCBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJvcGVydHlFbnVtZXJhdG9yQ2VsbCwgSlNDZWxs
KiwgKEpTR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgcHJvcGVydHlOYW1l
RW51bWVyYXRvcihnbG9iYWxPYmplY3QsIGJhc2UpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlSW5kZXhBbmRNb2RlLCBFbmNvZGVk
SlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJh
c2VWYWx1ZSwgdWludDMyX3QgaW5kZXgsIGludDMyX3QgbW9kZU51bWJlciwgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZUluZGV4QW5kTW9kZSwgRW5jb2RlZEpTVmFsdWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlVmFsdWUsIEpJ
VF9VSU5UMzIoaW5kZXgpLCBKSVRfSU5UMzIobW9kZU51bWJlciksIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciogZW51bWVyYXRvcikpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGluZGV4KTsK
KyAgICBKSVRfREVGSU5FX0lOVEVHRVIobW9kZU51bWJlcik7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7CkBAIC0yNDI0LDggKzI0ODAsMTAgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkVudW1lcmF0b3JOZXh0VXBkYXRlSW5kZXhBbmRNb2RlLCBFbmNvZGVk
SlNWYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFt
ZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdWludDMyX3QgaW5k
ZXgsIGludDMyX3QgbW9kZU51bWJlciwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJh
dG9yKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVw
ZGF0ZVByb3BlcnR5TmFtZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSklUX1VJTlQzMihpbmRleCksIEpJVF9JTlQzMihtb2RlTnVtYmVyKSwgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoaW5k
ZXgpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihtb2RlTnVtYmVyKTsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTI0NDMsOCArMjUwMSw5IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9yTmV4dFVwZGF0ZVByb3BlcnR5TmFtZSwgSlNT
dHJpbmcqLCAoCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkVudW1lcmF0b3JSZWNvdmVyTmFtZUFuZEdldEJ5VmFsLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2VW
YWx1ZSwgdWludDMyX3QgaW5kZXgsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogZW51bWVyYXRv
cikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvclJlY292ZXJO
YW1lQW5kR2V0QnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBKSVRfVUlOVDMyKGluZGV4KSwgSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIoaW5kZXgpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjQ2MSw4
ICsyNTIwLDEwIEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9y
UmVjb3Zlck5hbWVBbmRHZXRCeVZhbCwgRW5jb2RlZEpTVmFsCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUob2JqZWN0LT5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVt
ZXJhdG9ySW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3BlcnR5TmFt
ZVZhbHVlLCB1aW50MzJfdCBpbmRleCwgaW50MzJfdCBtb2RlTnVtYmVyKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25FbnVtZXJhdG9ySW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIHByb3BlcnR5TmFtZVZhbHVlLCBKSVRfVUlOVDMyKGluZGV4KSwgSklU
X0lOVDMyKG1vZGVOdW1iZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoaW5kZXgpOwor
ICAgIEpJVF9ERUZJTkVfSU5URUdFUihtb2RlTnVtYmVyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTI0NzYsOCArMjUzNywxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckluQnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbihDb21tb25TbG93UGF0aHM6Om9wSW5CeVZhbChnbG9iYWxPYmplY3QsIGJhc2UsIHByb3Bl
cnR5TmFtZSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25FbnVt
ZXJhdG9ySGFzT3duUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm9w
ZXJ0eU5hbWVWYWx1ZSwgdWludDMyX3QgaW5kZXgsIGludDMyX3QgbW9kZU51bWJlcikpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRW51bWVyYXRvckhhc093blByb3BlcnR5LCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgcHJvcGVydHlOYW1lVmFsdWUsIEpJVF9VSU5U
MzIoaW5kZXgpLCBKSVRfSU5UMzIobW9kZU51bWJlcikpKQogeworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihpbmRleCk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKG1vZGVOdW1iZXIpOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjUzNCw4ICsyNTk3LDEwIEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdWYWx1ZU9mLCBKU1N0cmluZyosIChK
U0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTdWJzdHIsIEpTQ2VsbCosIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIGludDMyX3QgZnJvbSwgaW50MzJfdCBz
cGFuKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTdWJzdHIsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIGNlbGwsIEpJVF9J
TlQzMihmcm9tKSwgSklUX0lOVDMyKHNwYW4pKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
ZnJvbSk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHNwYW4pOwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBjYWxsRnJhbWUpOwpAQCAtMjU0MywxOSArMjYwOCwyMiBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nU3Vic3RyLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbAogICAgIHJldHVybiBqc1N1YnN0cmluZyh2bSwgZ2xvYmFsT2JqZWN0LCBqc0Nhc3Q8
SlNTdHJpbmcqPihjZWxsKSwgZnJvbSwgc3Bhbik7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25TdHJpbmdTbGljZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogY2VsbCwgaW50MzJfdCBzdGFydCwgaW50MzJfdCBlbmQpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ1NsaWNlLCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBjZWxsLCBKSVRfSU5UMzIoc3RhcnQp
LCBKSVRfSU5UMzIoZW5kKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHN0YXJ0KTsKKyAg
ICBKSVRfREVGSU5FX0lOVEVHRVIoZW5kKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKIAogICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBhc1N0cmluZyhjZWxsKTsKICAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ2NF90PihKU1N0cmluZzo6TWF4TGVuZ3RoKSA8PSBz
dGF0aWNfY2FzdDx1aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkp
LCAiIik7Ci0gICAgcmV0dXJuIHN0cmluZ1NsaWNlKGdsb2JhbE9iamVjdCwgdm0sIHN0cmluZywg
c3RyaW5nLT5sZW5ndGgoKSwgc3RhcnQsIGVuZCk7CisgICAgcmV0dXJuIHN0cmluZ1NsaWNlPGlu
dDMyX3Q+KGdsb2JhbE9iamVjdCwgdm0sIHN0cmluZywgc3RyaW5nLT5sZW5ndGgoKSwgc3RhcnQs
IGVuZCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ub0xvd2VyQ2Fz
ZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0
cmluZywgdWludDMyX3QgZmFpbGluZ0luZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Ub0xvd2VyQ2FzZSwgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNTdHJpbmcqIHN0cmluZywgSklUX1VJTlQzMihmYWlsaW5nSW5kZXgpKSkKIHsKKyAg
ICBKSVRfREVGSU5FX0lOVEVHRVIoZmFpbGluZ0luZGV4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTI1NzMsOCArMjY0MSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVG9Mb3dlckNhc2UsIEpTU3RyaW5nKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJpbmcodm0sIGxvd2VyY2Fz
ZWRTdHJpbmcpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMy
VG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCB2
YWx1ZSwgaW50MzJfdCByYWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SW50MzJUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKSVRf
SU5UMzIodmFsdWUpLCBKSVRfSU5UMzIocmFkaXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIodmFsdWUpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYWRpeCk7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yNTg5LDggKzI2NTksMTAgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDMyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE8KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW50MzJUb1N0
cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25JbnQ1MlRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGludDY0X3QgdmFsdWUsIGludDMyX3QgcmFkaXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSklUX0lOVDY0KHZhbHVlKSwgSklUX0lOVDMyKHJhZGl4KSkpCiB7CisgICAgSklU
X0RFRklORV9JTlRFR0VSKHZhbHVlKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmFkaXgpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjYwNSw4ICsyNjc3LDkgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmcsIGNoYXIqLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4oaW50NTJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZywgY2hhciosIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUsIGludDMyX3QgcmFkaXgpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRvdWJsZVRvU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSwgSklUX0lOVDMyKHJhZGl4KSkpCiB7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhZGl4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUo
dm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbEZyYW1lKTsKQEAgLTI2MjEsOCArMjY5NCwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmcsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bAogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihudW1iZXJUb1N0cmluZyh2bSwg
dmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25J
bnQzMlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgaW50MzJfdCB2YWx1ZSwgaW50MzJfdCByYWRpeCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSW50MzJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpJVF9JTlQzMih2YWx1ZSksIEpJVF9JTlQzMihy
YWRpeCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUih2YWx1ZSk7CisgICAgSklUX0RFRklO
RV9JTlRFR0VSKHJhZGl4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAg
LTI2MzAsOCArMjcwNSwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW50
MzJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFyKiwgKEpTR2xvYmFsTwogICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PGNoYXIqPihpbnQzMlRvU3RyaW5nKHZtLCB2YWx1ZSwgcmFkaXgpKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRo
VmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQ2NF90
IHZhbHVlLCBpbnQzMl90IHJhZGl4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25JbnQ1MlRvU3RyaW5nV2l0aFZhbGlkUmFkaXgsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSklUX0lOVDY0KHZhbHVlKSwgSklUX0lOVDMyKHJhZGl4KSkpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKHZhbHVlKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmFkaXgp
OwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjYzOSw4ICsyNzE2LDkg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkludDUyVG9TdHJpbmdXaXRoVmFs
aWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE8KICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oaW50NTJUb1N0cmluZyh2bSwgdmFsdWUsIHJhZGl4KSk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Eb3VibGVUb1N0cmluZ1dpdGhWYWxpZFJhZGl4LCBjaGFy
KiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSwgaW50MzJfdCBy
YWRpeCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRG91YmxlVG9TdHJpbmdX
aXRoVmFsaWRSYWRpeCwgY2hhciosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3Vi
bGUgdmFsdWUsIEpJVF9JTlQzMihyYWRpeCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihy
YWRpeCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yNjU3LDggKzI3
MzUsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uRnVuY3Rpb25Ub1N0cmlu
ZywgSlNTdHJpbmcqLCAoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIGZ1bmN0aW9uLT50b1N0
cmluZyhnbG9iYWxPYmplY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBKU1N0cmluZyosIChWTSogdm1Qb2ludGVyLCBpbnQz
Ml90IGNoYXJhY3RlcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2luZ2xl
Q2hhcmFjdGVyU3RyaW5nLCBKU1N0cmluZyosIChWTSogdm1Qb2ludGVyLCBKSVRfSU5UMzIoY2hh
cmFjdGVyKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGNoYXJhY3Rlcik7CiAgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjgwNyw4ICsyODg2LDEwIEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TdHJDYXQzLCBKU1N0cmluZyosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBqc1N0cmluZyhnbG9iYWxP
YmplY3QsIHN0cjEsIHN0cjIsIHN0cjMpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkZpbmRTd2l0Y2hJbW1UYXJnZXRGb3JEb3VibGUsIGNoYXIqLCAoVk0qIHZtUG9p
bnRlciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBzaXplX3QgdGFibGVJbmRleCwgaW50
MzJfdCBtaW4pKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZpbmRTd2l0Y2hJ
bW1UYXJnZXRGb3JEb3VibGUsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBKSVRfU0laRVQodGFibGVJbmRleCksIEpJVF9JTlQzMihtaW4pKSkKIHsK
KyAgICBKSVRfREVGSU5FX0lOVEVHRVIodGFibGVJbmRleCk7CisgICAgSklUX0RFRklORV9JTlRF
R0VSKG1pbik7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjgyMyw4ICsyOTA0LDkg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkZpbmRTd2l0Y2hJbW1UYXJnZXRG
b3JEb3VibGUsIGNoYXIqLCAoVk0qIHZtUG8KICAgICByZXR1cm4gbGlua2VkVGFibGUubV9jdGlE
ZWZhdWx0LmV4ZWN1dGFibGVBZGRyZXNzPGNoYXIqPigpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIHNpemVfdCB0YWJsZUluZGV4LCBjb25zdCBVbmxpbmtlZFN0cmluZ0p1bXBU
YWJsZSogdW5saW5rZWRUYWJsZSwgSlNTdHJpbmcqIHN0cmluZykpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpJVF9TSVpFVCh0YWJsZUluZGV4KSwgY29uc3QgVW5saW5rZWRTdHJpbmdK
dW1wVGFibGUqIHVubGlua2VkVGFibGUsIEpTU3RyaW5nKiBzdHJpbmcpKQogeworICAgIEpJVF9E
RUZJTkVfSU5URUdFUih0YWJsZUluZGV4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKQEAgLTI5MTIsOCArMjk5NCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dGb3JWYXJhcmdzLCB2b2lkLCAoSlNHbG9iYWxPCiAgICAg
dGhyb3dTdGFja092ZXJmbG93RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiB9CiAKLUpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXplT2ZWYXJhcmdzLCBVQ1BVU3RyaWN0SW50
MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QXJndW1lbnRzLCB1aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uU2l6ZU9mVmFyYXJncywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywg
SklUX1VJTlQzMihmaXJzdFZhckFyZ09mZnNldCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdF
UihmaXJzdFZhckFyZ09mZnNldCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CkBAIC0yOTUxLDggKzMwMzQsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TnVtYmVySXNJbnRlZ2VyLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVy
biBOdW1iZXJDb25zdHJ1Y3Rvcjo6aXNJbnRlZ2VySW1wbChKU1ZhbHVlOjpkZWNvZGUodmFsdWUp
KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlN0
cmluZywgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQnV0
dGVyZmx5KiBidXR0ZXJmbHksIEpTU3RyaW5nKiBzZWFyY2hFbGVtZW50LCBpbnQzMl90IGluZGV4
KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZTdHJpbmcs
IFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZs
eSogYnV0dGVyZmx5LCBKU1N0cmluZyogc2VhcmNoRWxlbWVudCwgSklUX0lOVDMyKGluZGV4KSkp
CiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGluZGV4KTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTI5NzYsOCArMzA2MCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZTdHJpbmcsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xv
YmFsCiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKC0xKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlSW50MzJPckNvbnRpZ3VvdXMs
IFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJ1dHRlcmZs
eSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIGludDMyX3QgaW5kZXgp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlSW50
MzJPckNvbnRpZ3VvdXMsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEpJVF9JTlQzMihpbmRleCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yOTk5LDggKzMwODQsOSBAQCBK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVJbnQzMk9y
Q29udGlndW91cywgVUNQVVN0cmljdAogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMigtMSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BcnJheUluZGV4T2ZWYWx1
ZURvdWJsZSwgVUNQVVN0cmljdEludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
QnV0dGVyZmx5KiBidXR0ZXJmbHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgaW50MzJf
dCBpbmRleCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9m
VmFsdWVEb3VibGUsIFVDUFVTdHJpY3RJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEJ1dHRlcmZseSogYnV0dGVyZmx5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpJ
VF9JTlQzMihpbmRleCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0zMDIxLDggKzMxMDcsMTIgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFycmF5SW5kZXhPZlZhbHVlRG91YmxlLCBV
Q1BVU3RyaWN0SW50MzIsIChKU0cKICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIoLTEpOwog
fQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHZvaWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IGZpcnN0RWxlbWVudERlc3Qs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIHVpbnQzMl90IG9mZnNldCwgdWludDMy
X3QgbGVuZ3RoSW5jbHVkaW5nVGhpcywgdWludDMyX3QgbWFuZGF0b3J5TWluaW11bSkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTG9hZFZhcmFyZ3MsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKSVRfSU5UMzIoZmlyc3RFbGVtZW50RGVzdCksIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIEpJVF9VSU5UMzIob2Zmc2V0KSwgSklUX1VJTlQz
MihsZW5ndGhJbmNsdWRpbmdUaGlzKSwgSklUX1VJTlQzMihtYW5kYXRvcnlNaW5pbXVtKSkpCiB7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKGZpcnN0RWxlbWVudERlc3QpOworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihvZmZzZXQpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihsZW5ndGhJbmNsdWRp
bmdUaGlzKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobWFuZGF0b3J5TWluaW11bSk7CiAgICAg
VmlydHVhbFJlZ2lzdGVyIGZpcnN0RWxlbWVudCB7IGZpcnN0RWxlbWVudERlc3QgfTsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpAQCAtMzAzNSw5ICszMTI1LDExIEBAIEpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Mb2FkVmFyYXJncywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplCiAgICAgICAgIGNhbGxGcmFtZS0+cihmaXJzdEVsZW1lbnQgKyBpKSA9IGpz
VW5kZWZpbmVkKCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25GTW9k
T25JbnRzLCBkb3VibGUsIChpbnQzMl90IGEsIGludDMyX3QgYikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uRk1vZE9uSW50cywgZG91YmxlLCAoSklUX0lOVDMyKGEpLCBKSVRf
SU5UMzIoYikpKQogewotICAgIHJldHVybiBmbW9kKGEsIGIpOworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihhKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoYik7CisgICAgcmV0dXJuIGZtb2QoaW50
MzJfdChhKSwgaW50MzJfdChiKSk7CiB9CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtMzA0
Nyw4ICszMTM5LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJhbmRvbSwg
ZG91YmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIH0KICNlbmRpZgogCi1KU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3RyaW5nRnJvbUNoYXJDb2RlLCBKU0NlbGwq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCBvcDEpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN0cmluZ0Zyb21DaGFyQ29kZSwgSlNDZWxsKiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpJVF9JTlQzMihvcDEpKSkKIHsKKyAgICBKSVRf
REVGSU5FX0lOVEVHRVIob3AxKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
QEAgLTMwNzgsOCArMzE3MSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b252ZXJ0RG91YmxlVG9JbnQ1MiwgaW50NjRfdCwgKGRvdWJsZSB2YWx1ZSkpCiAgICAgcmV0dXJu
IHRyeUNvbnZlcnRUb0ludDUyKHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbk5ld1Jhd09iamVjdCwgY2hhciosIChWTSogdm1Qb2ludGVyLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgsIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdSYXdPYmplY3QsIGNoYXIqLCAoVk0qIHZt
UG9pbnRlciwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpJVF9JTlQzMihsZW5ndGgpLCBCdXR0ZXJm
bHkqIGJ1dHRlcmZseSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGxlbmd0aCk7CiAgICAg
Vk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzExNyw4ICszMjExLDkgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHksIEpTQ2VsbCosIChW
TSogdm1Qb2ludGUKICAgICByZXR1cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRlV2l0aEJ1dHRlcmZs
eSh2bSwgc3RydWN0dXJlLCBidXR0ZXJmbHkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uTmV3T2JqZWN0V2l0aEJ1dHRlcmZseVdpdGhJbmRleGluZ0hlYWRlckFuZFZl
Y3Rvckxlbmd0aCwgSlNDZWxsKiwgKFZNKiB2bVBvaW50ZXIsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCB1bnNpZ25lZCBsZW5ndGgsIEJ1dHRlcmZseSogYnV0dGVyZmx5KSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVh
ZGVyQW5kVmVjdG9yTGVuZ3RoLCBKU0NlbGwqLCAoVk0qIHZtUG9pbnRlciwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpJVF9VSU5UMzIobGVuZ3RoKSwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpKQogewor
ICAgIEpJVF9ERUZJTkVfSU5URUdFUihsZW5ndGgpOwogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7
CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKQEAgLTMxMzksOCArMzIzNCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVjCiAgICAgcmV0
dXJuIEpTRmluYWxPYmplY3Q6OmNyZWF0ZVdpdGhCdXR0ZXJmbHkodm0sIHN0cnVjdHVyZSwgYnV0
dGVyZmx5KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5
V2l0aFNwcmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB2
b2lkKiBidWZmZXIsIHVpbnQzMl90IG51bUl0ZW1zKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25OZXdBcnJheVdpdGhTcHJlYWRTbG93LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgdm9pZCogYnVmZmVyLCBKSVRfVUlOVDMyKG51bUl0ZW1zKSkpCiB7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKG51bUl0ZW1zKTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTMxOTgsOCArMzI5NCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25OZXdBcnJheVdpdGhTcHJlYWRTbG93LCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkNyZWF0ZUltbXV0YWJsZUJ1dHRlcmZseSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGxlbmd0aCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ3JlYXRlSW1tdXRhYmxlQnV0dGVyZmx5LCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSklUX1VJTlQzMihsZW5ndGgpKSkKIHsKKyAgICBKSVRfREVG
SU5FX0lOVEVHRVIobGVuZ3RoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
QEAgLTMyODgsOCArMzM4NSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25S
ZXNvbHZlU2NvcGUsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJu
IHJlc29sdmVkU2NvcGU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXREeW5hbWljVmFyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdl
dFB1dEluZm9CaXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXREeW5h
bWljVmFyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiBzY29wZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIEpJVF9VSU5UMzIoZ2V0UHV0
SW5mb0JpdHMpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoZ2V0UHV0SW5mb0JpdHMpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzM0OCw4ICszNDQ2LDkgQEAg
QUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBwdXREeW5hbWljVmFyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFZNJiB2bSwgSlMKICAgICBzY29wZS0+bWV0aG9kVGFibGUodm0pLT5wdXQo
c2NvcGUsIGdsb2JhbE9iamVjdCwgaWRlbnQsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSksIHNsb3Qp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1ZhclN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBzY29w
ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNpZ25l
ZCBnZXRQdXRJbmZvQml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
RHluYW1pY1ZhclN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
T2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBp
bXBsLCBKSVRfVUlOVDMyKGdldFB1dEluZm9CaXRzKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRF
R0VSKGdldFB1dEluZm9CaXRzKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
QEAgLTMzNTcsOCArMzQ1Niw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXREeW5hbWljVmFyU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgcmV0dXJu
IHB1dER5bmFtaWNWYXIoZ2xvYmFsT2JqZWN0LCB2bSwgc2NvcGUsIHZhbHVlLCBpbXBsLCBnZXRQ
dXRJbmZvQml0cywgaXNTdHJpY3RNb2RlKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblB1dER5bmFtaWNWYXJOb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBVbmlx
dWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMpKQorSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJOb25TdHJpY3QsIHZvaWQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1Zh
bHVlIHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgSklUX1VJTlQzMihnZXRQdXRJbmZv
Qml0cykpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihnZXRQdXRJbmZvQml0cyk7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0zMzkyLDggKzM0OTIsOSBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwSGFzaEhlYXBCaWdJbnQsIFVDUFVTdHJp
Y3RJbnQzMiwgKFZNKiB2bVBvaQogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihqc01hcEhh
c2goaW5wdXQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkpTTWFw
RmluZEJ1Y2tldCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2Vs
bCogbWFwLCBFbmNvZGVkSlNWYWx1ZSBrZXksIGludDMyX3QgaGFzaCkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtleSwgSklU
X0lOVDMyKGhhc2gpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoaGFzaCk7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0zNDAzLDggKzM1MDQsOSBAQCBKU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSlNNYXBGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiAqYnVja2V0OwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSlNTZXRGaW5kQnVja2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtleSwgaW50
MzJfdCBoYXNoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU1NldEZpbmRC
dWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG1h
cCwgRW5jb2RlZEpTVmFsdWUga2V5LCBKSVRfSU5UMzIoaGFzaCkpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihoYXNoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAg
LTM0MTQsOCArMzUxNiw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25KU1Nl
dEZpbmRCdWNrZXQsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuICpi
dWNrZXQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXRBZGQsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIHNldCwgRW5jb2Rl
ZEpTVmFsdWUga2V5LCBpbnQzMl90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Q2VsbCogc2V0LCBFbmNvZGVkSlNWYWx1ZSBrZXksIEpJVF9JTlQzMihoYXNoKSkpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKGhhc2gpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwpAQCAtMzQyNSw4ICszNTI4LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblNldEFkZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICBy
ZXR1cm4gYnVja2V0OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFw
U2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAs
IEVuY29kZWRKU1ZhbHVlIGtleSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIGludDMyX3QgaGFzaCkp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwU2V0LCBKU0NlbGwqLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBtYXAsIEVuY29kZWRKU1ZhbHVlIGtl
eSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIEpJVF9JTlQzMihoYXNoKSkpCiB7CisgICAgSklUX0RF
RklORV9JTlRFR0VSKGhhc2gpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklU
T3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpA
QCAtMzQzNiwxNiArMzU0MCwxOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWFwU2V0LCBKU0NlbGwqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVy
biBidWNrZXQ7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XZWFrU2V0
QWRkLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgSlNDZWxsKiBzZXQsIEpTQ2VsbCoga2V5LCBpbnQz
Ml90IGhhc2gpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldlYWtTZXRBZGQs
IHZvaWQsIChWTSogdm1Qb2ludGVyLCBKU0NlbGwqIHNldCwgSlNDZWxsKiBrZXksIEpJVF9JTlQz
MihoYXNoKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGhhc2gpOwogICAgIFZNJiB2bSA9
ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKICAgICBqc0Nhc3Q8SlNXZWFrU2V0Kj4oc2V0KS0+YWRkKHZtLCBhc09i
amVjdChrZXkpLCBKU1ZhbHVlKCksIGhhc2gpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2Vha01hcFNldCwgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIEpTQ2VsbCogbWFw
LCBKU0NlbGwqIGtleSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIGludDMyX3QgaGFzaCkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Vha01hcFNldCwgdm9pZCwgKFZNKiB2bVBv
aW50ZXIsIEpTQ2VsbCogbWFwLCBKU0NlbGwqIGtleSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUsIEpJ
VF9JTlQzMihoYXNoKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGhhc2gpOwogICAgIFZN
JiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTM2NzAsOCArMzc3Niw5IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25UaHJvd0RGRywgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsCiAgICAgc2NvcGUudGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
OjpkZWNvZGUodmFsdWVUb1Rocm93KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25UaHJvd1N0YXRpY0Vycm9yLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNTdHJpbmcqIG1lc3NhZ2UsIHVpbnQzMl90IGVycm9yVHlwZSkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvciwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBtZXNzYWdlLCBKSVRfVUlOVDMyKGVycm9y
VHlwZSkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihlcnJvclR5cGUpOwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xB
UkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtNDExOSw4ICs0MjI2LDkgQEAgc3RhdGljIGNo
YXIqIHRpZXJVcENvbW1vbihWTSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBCeXRlY29kZUlu
ZGV4IG9yaWdpbkJ5dGUKICAgICByZXR1cm4gdGFnQ29kZVB0cldpdGhTdGFja1BvaW50ZXJGb3JK
SVRDYWxsKHVudGFnQ29kZVB0cjxjaGFyKiwgSlNFbnRyeVB0clRhZz4oYWRkcmVzcyksIGNhbGxG
cmFtZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcmlnZ2VyVGll
clVwTm93SW5Mb29wLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwgdW5zaWduZWQgYnl0ZWNvZGVJbmRl
eEJpdHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVyVXBO
b3dJbkxvb3AsIHZvaWQsIChWTSogdm1Qb2ludGVyLCBKSVRfVUlOVDMyKGJ5dGVjb2RlSW5kZXhC
aXRzKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGJ5dGVjb2RlSW5kZXhCaXRzKTsKICAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC00MTUxLDggKzQyNTksOSBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZN
KiB2bVBvaW50ZXIsCiAgICAgfQogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVHJpZ2dlck9TUkVudHJ5Tm93LCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIHVuc2lnbmVkIGJ5
dGVjb2RlSW5kZXhCaXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Ucmln
Z2VyT1NSRW50cnlOb3csIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgSklUX1VJTlQzMihieXRlY29k
ZUluZGV4Qml0cykpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihieXRlY29kZUluZGV4Qml0
cyk7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuaAppbmRleCBmYmQ2ZDA5ZTQ2NzIuLjNiNWFhZDlmMGRlOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTIxMyw3ICsyMTMsNyBA
QCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVNjb3BlZEFyZ3VtZW50
cywgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZQogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHNEdXJpbmdFeGl0LCBKU0NlbGwqLCAoVk0qLCBJbmxp
bmVDYWxsRnJhbWUqLCBKU0Z1bmN0aW9uKiwgdWludDMyX3QgYXJndW1lbnRDb3VudCkpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVDbG9uZWRBcmd1bWVudHMsIEpT
Q2VsbCosIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFJlZ2lzdGVyKiBhcmd1bWVudFN0
YXJ0LCB1aW50MzJfdCBsZW5ndGgsIEpTRnVuY3Rpb24qIGNhbGxlZSkpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVBcmd1bWVudHNCdXR0ZXJmbHksIEpTQ2VsbCos
IChKU0dsb2JhbE9iamVjdCosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBhcmd1
bWVudENvdW50KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVJl
c3QsIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1
bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50c1RvU2tpcCwgdW5zaWduZWQgYXJyYXlTaXplKSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNyZWF0ZVJlc3QsIEpTQ2VsbCosIChK
U0dsb2JhbE9iamVjdCosIFJlZ2lzdGVyKiBhcmd1bWVudFN0YXJ0LCB1aW50MzJfdCBudW1iZXJP
ZkFyZ3VtZW50c1RvU2tpcCwgdWludDMyX3QgYXJyYXlTaXplKSk7CiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld0FycmF5QnVmZmVyLCBKU0NlbGwqLCAoVk0qLCBTdHJ1Y3R1
cmUqLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldEFk
ZCwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGlu
dDMyX3QpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWFwU2V0LCBKU0Nl
bGwqLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIGludDMyX3QpKTsKQEAgLTI5OCwxMyArMjk4LDEzIEBAIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uQXJyYXlJbmRleE9mVmFsdWVJbnQzMk9yQ29udGlndW91cywgVUNQ
VVN0cmljCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNwcmVhZEZhc3RBcnJh
eSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikpOwogSlNDX0RFQ0xBUkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TcHJlYWRHZW5lcmljLCBKU0NlbGwqLCAoSlNHbG9iYWxPYmpl
Y3QqLCBKU0NlbGwqKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Fy
cmF5V2l0aFNwcmVhZFNsb3csIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIHZvaWQqLCB1aW50
MzJfdCkpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFi
bGVCdXR0ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIGxlbmd0aCkp
OworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25DcmVhdGVJbW11dGFibGVCdXR0
ZXJmbHksIEpTQ2VsbCosIChKU0dsb2JhbE9iamVjdCosIHVpbnQzMl90IGxlbmd0aCkpOwogCiBK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblJlc29sdmVTY29wZSwgSlNDZWxsKiwg
KEpTR2xvYmFsT2JqZWN0KiwgSlNTY29wZSosIFVuaXF1ZWRTdHJpbmdJbXBsKikpOwogSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNE
ZWNsSW5FdmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNTY29wZSosIFVu
aXF1ZWRTdHJpbmdJbXBsKikpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXREeW5hbWljVmFyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3Qq
IHNjb3BlLCBVbmlxdWVkU3RyaW5nSW1wbCosIHVuc2lnbmVkKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFtaWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCosIEpTT2JqZWN0KiBzY29wZSwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBs
KiwgdW5zaWduZWQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHlu
YW1pY1Zhck5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3Bl
LCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25lZCkpOworSlNDX0RF
Q0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXREeW5hbWljVmFyLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBVbmlxdWVkU3RyaW5nSW1wbCos
IHVpbnQzMl90KSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dER5bmFt
aWNWYXJTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBzY29wZSwgRW5j
b2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgdWludDMyX3QpKTsKK0pTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0RHluYW1pY1Zhck5vblN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0
cmluZ0ltcGwqLCB1aW50MzJfdCkpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRCb3hlZERvdWJsZVRvSW50NTIsIGludDY0X3QsIChFbmNvZGVkSlNWYWx1ZSkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0RG91YmxlVG9JbnQ1
MiwgaW50NjRfdCwgKGRvdWJsZSkpOwpAQCAtMzEzLDcgKzMxMyw3IEBAIEpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTnVtYmVySXNJbnRlZ2VyLCBzaXplX3QsIChKU0dsb2JhbE9i
amVjdCosIEVuCiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3UmF3T2Jq
ZWN0LCBjaGFyKiwgKFZNKiwgU3RydWN0dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5KikpOwogSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5LCBK
U0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqLCBCdXR0ZXJmbHkqKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFk
ZXJBbmRWZWN0b3JMZW5ndGgsIEpTQ2VsbCosIChWTSosIFN0cnVjdHVyZSosIHVuc2lnbmVkIGxl
bmd0aCwgQnV0dGVyZmx5KikpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25O
ZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4aW5nSGVhZGVyQW5kVmVjdG9yTGVuZ3RoLCBK
U0NlbGwqLCAoVk0qLCBTdHJ1Y3R1cmUqLCB1aW50MzJfdCBsZW5ndGgsIEJ1dHRlcmZseSopKTsK
IAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25MaW5rRGlyZWN0Q2FsbCwgdm9p
ZCwgKE9wdGltaXppbmdDYWxsTGlua0luZm8qLCBKU0Z1bmN0aW9uKikpOwogCkBAIC0zNDQsOCAr
MzQ0LDggQEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25SYW5kb20sIGRvdWJs
ZSwgKEpTR2xvYmFsT2JqZWN0KikpOwogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyaWdnZXJUaWVyVXBOb3csIHZvaWQsIChWTSopKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9v
cCwgdm9pZCwgKFZNKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJpZ2dlck9TUkVudHJ5Tm93LCBjaGFyKiwgKFZNKiwg
dW5zaWduZWQgYnl0ZWNvZGVJbmRleEJpdHMpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uVHJpZ2dlclRpZXJVcE5vd0luTG9vcCwgdm9pZCwgKFZNKiwgdWludDMyX3QgYnl0
ZWNvZGVJbmRleEJpdHMpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJp
Z2dlck9TUkVudHJ5Tm93LCBjaGFyKiwgKFZNKiwgdWludDMyX3QgYnl0ZWNvZGVJbmRleEJpdHMp
KTsKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKIAogaW5saW5lIGF1dG8gb3BlcmF0aW9uTmV3
VHlwZWRBcnJheVdpdGhTaXplRm9yVHlwZShUeXBlZEFycmF5VHlwZSB0eXBlKSAtPiBkZWNsdHlw
ZSgmb3BlcmF0aW9uTmV3SW50OEFycmF5V2l0aFNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggYzQwN2IwMGM0ZGFiLi4xNjNhZDYxODVl
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
QEAgLTEyMiw5ICsxMjIsMTEgQEAgbmFtZXNwYWNlIHsKIHN0ZDo6YXRvbWljPGludD4gY29tcGls
ZUNvdW50ZXI7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElP
Tl9XSVRIX0FUVFJJQlVURVMoZnRsVW5yZWFjaGFibGUsIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gs
IHZvaWQsIChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQmxvY2tJbmRleCBibG9ja0luZGV4LCB1bnNp
Z25lZCBub2RlSW5kZXgpKTsKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVU
RVMoZnRsVW5yZWFjaGFibGUsIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgQmxvY2tJbmRleCBibG9ja0luZGV4LCB1bnNpZ25lZCBub2RlSW5kZXgp
KQorSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMoZnRsVW5yZWFjaGFi
bGUsIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gsIHZvaWQsIChDb2RlQmxvY2sqIGNvZGVCbG9jaywg
QmxvY2tJbmRleCBibG9ja0luZGV4LCB1aW50MzJfdCBub2RlSW5kZXgpKTsKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMoZnRsVW5yZWFjaGFibGUsIE5PX1JFVFVSTl9E
VUVfVE9fQ1JBU0gsIHZvaWQsIChDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklUX0lOVEVHRVJfVkFM
VUUoQmxvY2tJbmRleCwgYmxvY2tJbmRleCksIEpJVF9VSU5UMzIobm9kZUluZGV4KSkpCiB7Cisg
ICAgSklUX0RFRklORV9JTlRFR0VSKGJsb2NrSW5kZXgpOworICAgIEpJVF9ERUZJTkVfSU5URUdF
Uihub2RlSW5kZXgpOwogICAgIGRhdGFMb2coIkNyYXNoaW5nIGluIHRob3VnaHQtdG8tYmUtdW5y
ZWFjaGFibGUgRlRMLWdlbmVyYXRlZCBjb2RlIGZvciAiLCBwb2ludGVyRHVtcChjb2RlQmxvY2sp
LCAiIGF0IGJhc2ljIGJsb2NrICMiLCBibG9ja0luZGV4KTsKICAgICBpZiAobm9kZUluZGV4ICE9
IFVJTlRfTUFYKQogICAgICAgICBkYXRhTG9nKCIsIG5vZGUgQCIsIG5vZGVJbmRleCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKaW5kZXgg
YTgyNGY3YTUxOWNlLi44YmYyOWE5ZTkxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKQEAgLTQ5Myw4ICs0OTMsOSBAQCBzdGF0aWMg
dm9pZCBjb21waWxlU3R1YihWTSYgdm0sIHVuc2lnbmVkIGV4aXRJRCwgSklUQ29kZSogaml0Q29k
ZSwgT1NSRXhpdCYgZXhpdAogICAgICAgICApOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQ29tcGlsZUZUTE9TUkV4aXQsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHVuc2lnbmVkIGV4aXRJRCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
Q29tcGlsZUZUTE9TUkV4aXQsIHZvaWQqLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpJVF9VSU5U
MzIoZXhpdElEKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGV4aXRJRCk7CiAgICAgaWYg
KHNob3VsZER1bXBEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKSB8fCBPcHRp
b25zOjp2ZXJib3NlRlRMT1NSRXhpdCgpKQogICAgICAgICBkYXRhTG9nKCJDb21waWxpbmcgT1NS
IGV4aXQgd2l0aCBleGl0SUQgPSAiLCBleGl0SUQsICJcbiIpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuaAppbmRleCA4NDQ1YjAxNzAyZWYuLjQ1
ZDY5YzU4OWQxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JF
eGl0Q29tcGlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRD
b21waWxlci5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRM
IHsKIAogLy8gVGFrZXMgdGhlIGNhbGwgZnJhbWUgYW5kIHRoZSBpbmRleCBvZiB0aGUgZXhpdCwg
YW5kIHJldHVybnMgdGhlIGFkZHJlc3MgdG8KIC8vIGp1bXAgdG8uCi1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExPU1JFeGl0LCB2b2lkKiwgKENhbGxGcmFtZSos
IHVuc2lnbmVkIGV4aXRJRCkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25D
b21waWxlRlRMT1NSRXhpdCwgdm9pZCosIChDYWxsRnJhbWUqLCBKSVRfVUlOVDMyKGV4aXRJRCkp
KTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPcGVyYXRpb25zLmNwcAppbmRleCBiOTVlNzQzYTI2NWQuLjBiYjg5ZDZkNDM2NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCkBAIC03MzMs
OCArNzMzLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblR5cGVPZk9iamVj
dEFzVHlwZW9mVHlwZSwgaW50MzJfdCwgKEpTR2xvYmFsT2IKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8aW50MzJfdD4oVHlwZW9mVHlwZTo6T2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkNvbXBpbGVGVExMYXp5U2xvd1BhdGgsIHZvaWQqLCAoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHVuc2lnbmVkIGluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25Db21waWxlRlRMTGF6eVNsb3dQYXRoLCB2b2lkKiwgKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBKSVRfVUlOVDMyKGluZGV4KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGluZGV4
KTsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPmRlcHJlY2F0ZWRWTSgpOwogICAgIC8vIERvbid0
IG5lZWQgYW4gQWN0aXZlU2NyYXRjaEJ1ZmZlclNjb3BlIGhlcmUgYmVjYXVzZSB3ZSBEZWZlckdD
Rm9yQVdoaWxlLgogCkBAIC03NTAsOCArNzUxLDE0IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25Db21waWxlRlRMTGF6eVNsb3dQYXRoLCB2b2lkKiwgKENhbGxGcmFtZSogY2Fs
CiAgICAgcmV0dXJuIGxhenlTbG93UGF0aC5zdHViKCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNz
KCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTl9XSVRIX0FUVFJJQlVURVMob3BlcmF0
aW9uUmVwb3J0Qm91bmRzQ2hlY2tFbGltaW5hdGlvbkVycm9yQW5kQ3Jhc2gsIE5PX1JFVFVSTl9E
VUVfVE9fQ1JBU0gsIHZvaWQsIChpbnRwdHJfdCBjb2RlQmxvY2tBc0ludFB0ciwgaW50MzJfdCBu
b2RlSW5kZXgsIGludDMyX3QgY2hpbGQxSW5kZXgsIGludDMyX3QgY2hpbGQySW5kZXgsIGludDMy
X3QgY2hlY2tlZEluZGV4LCBpbnQzMl90IGJvdW5kcykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T05fV0lUSF9BVFRSSUJVVEVTKG9wZXJhdGlvblJlcG9ydEJvdW5kc0NoZWNrRWxpbWluYXRpb25F
cnJvckFuZENyYXNoLCBOT19SRVRVUk5fRFVFX1RPX0NSQVNILCB2b2lkLCAoSklUX0lOVFBUUihj
b2RlQmxvY2tBc0ludFB0ciksIEpJVF9JTlQzMihub2RlSW5kZXgpLCBKSVRfSU5UMzIoY2hpbGQx
SW5kZXgpLCBKSVRfSU5UMzIoY2hpbGQySW5kZXgpLCBKSVRfSU5UMzIoY2hlY2tlZEluZGV4KSwg
SklUX0lOVDMyKGJvdW5kcykpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihjb2RlQmxvY2tB
c0ludFB0cik7CisgICAgSklUX0RFRklORV9JTlRFR0VSKG5vZGVJbmRleCk7CisgICAgSklUX0RF
RklORV9JTlRFR0VSKGNoaWxkMUluZGV4KTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoY2hpbGQy
SW5kZXgpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihjaGVja2VkSW5kZXgpOworICAgIEpJVF9E
RUZJTkVfSU5URUdFUihib3VuZHMpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gYml0d2lz
ZV9jYXN0PENvZGVCbG9jayo+KGNvZGVCbG9ja0FzSW50UHRyKTsKICAgICBkYXRhTG9nTG4oIkJv
dW5kcyBDaGVjayBFaW1pbmF0aW9uIGVycm9yIGZvdW5kIEAgREAiLCBub2RlSW5kZXgsICI6IEFz
c2VydEluQm91bmRzKGluZGV4IERAIiwgY2hpbGQxSW5kZXgsICI6ICIsIGNoZWNrZWRJbmRleCwg
IiwgYm91bmRzIERAIiwgY2hpbGQySW5kZXgsICIgIiwgYm91bmRzLCAiKSBpbiAiLCBjb2RlQmxv
Y2spOwogICAgIENSQVNIKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMu
aAppbmRleCA2ODdlZmRiMDBlYWMuLjIxZWEzNzFlN2FlNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0NDYWxsSGVscGVycy5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEpJVCkK
IAogI2luY2x1ZGUgIkFzc2VtYmx5SGVscGVycy5oIgorI2luY2x1ZGUgIkNDYWxsVHlwZXMuaCIK
ICNpbmNsdWRlICJGUFJJbmZvLmgiCiAjaW5jbHVkZSAiR1BSSW5mby5oIgogI2luY2x1ZGUgIlN0
YWNrQWxpZ25tZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ND
YWxsVHlwZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxUeXBlcy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDE2M2Q4ZTY4ZmE5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbFR5cGVzLmgKQEAgLTAs
MCArMSw1MyBAQAorI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAi
Q1BVLmgiCisjaW5jbHVkZSA8d3RmL1N0ZEludEV4dHJhcy5oPgorCituYW1lc3BhY2UgSlNDIHsK
KworbmFtZXNwYWNlIENDYWxsVHlwZXMgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5l
IGF1dG8gZGVmaW5lSklUSW50ZWdlcihUIHZhbHVlKSAtPiBzdGQ6OmVuYWJsZV9pZl90PCFpc1JJ
U0NWNjQoKSwgVD4KK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWxfdjxUPik7
CisgICAgcmV0dXJuIHZhbHVlOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIGF1
dG8gZGVmaW5lSklUSW50ZWdlcihUIHZhbHVlKSAtPiBzdGQ6OmVuYWJsZV9pZl90PGlzUklTQ1Y2
NCgpLCBUPgoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3JhbF92PFQ+KTsKKwor
ICAgIGlmIGNvbnN0ZXhwciAoc2l6ZW9mKFQpID09IDQpIHsKKyAgICAgICAgYXNtIHZvbGF0aWxl
ICgKKyAgICAgICAgICAgICJzZXh0LncgJVtvdXRfdmFsdWVdLCAlW2luX3ZhbHVlXVxuXHQiCisg
ICAgICAgICAgICA6IFtvdXRfdmFsdWVdICI9ciIgKHZhbHVlKQorICAgICAgICAgICAgOiBbaW5f
dmFsdWVdICJyIiAodmFsdWUpKTsKKyAgICB9CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK30K
KworI2RlZmluZSBKSVRfSU5URUdFUl9WQUxVRSh0eXBlLCAuLi4pIHR5cGUgX19WQV9PUFRfXyhf
X1ZBX0FSR1NfXyAjIyBJbnRlZ2VyQml0cykKKworI2RlZmluZSBKSVRfSU5UMzIobmFtZSkgSklU
X0lOVEVHRVJfVkFMVUUoaW50MzJfdCwgbmFtZSkKKyNkZWZpbmUgSklUX1VJTlQzMihuYW1lKSBK
SVRfSU5URUdFUl9WQUxVRSh1aW50MzJfdCwgbmFtZSkKKworI2RlZmluZSBKSVRfSU5UNjQobmFt
ZSkgSklUX0lOVEVHRVJfVkFMVUUoaW50NjRfdCwgbmFtZSkKKyNkZWZpbmUgSklUX1VJTlQ2NChu
YW1lKSBKSVRfSU5URUdFUl9WQUxVRSh1aW50NjRfdCwgbmFtZSkKKworI2RlZmluZSBKSVRfSU5U
UFRSKG5hbWUpIEpJVF9JTlRFR0VSX1ZBTFVFKGludHB0cl90LCBuYW1lKQorI2RlZmluZSBKSVRf
VUlOVFBUUihuYW1lKSBKSVRfSU5URUdFUl9WQUxVRSh1aW50cHRyX3QsIG5hbWUpCisKKyNkZWZp
bmUgSklUX1NJWkVUKG5hbWUpIEpJVF9JTlRFR0VSX1ZBTFVFKHNpemVfdCwgbmFtZSkKKworI2Rl
ZmluZSBKSVRfREVGSU5FX0lOVEVHRVIobmFtZSkgZGVjbHR5cGUobmFtZSAjIyBJbnRlZ2VyQml0
cykgbmFtZSA9IENDYWxsVHlwZXM6OmRlZmluZUpJVEludGVnZXIobmFtZSAjIyBJbnRlZ2VyQml0
cykKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggZWZjOWEwZThiYjAy
Li4xM2Q3NjA0OTA3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAj
aW5jbHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkNDYWxsVHlwZXMuaCIKICNp
bmNsdWRlICJDYWNoZWFibGVJZGVudGlmaWVySW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9j
a0lubGluZXMuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHNJbmxpbmVzLmgiCkBAIC0yMzks
OCArMjQwLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnN0cnVjdEFy
aXR5Q2hlY2ssIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gbWlzc2luZ0Fy
Z0NvdW50OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJ
ZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdD
YWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25U
cnlHZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgSklUX1VJ
TlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdF
UihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKQEAgLTI1Niw4ICsyNTgsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVHJ5R2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZwogfQogCiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25UcnlHZXRCeUlkR2VuZXJpYywgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgSklUX1VJ
TlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdF
UihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwog
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKQEAgLTI3MSw4ICsyNzQsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVHJ5R2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5R2V0QnlJZE9wdGltaXplLCBFbmNvZGVkSlNW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeUdldEJ5SWRPcHRp
bWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEpJVF9VSU5UUFRS
KHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3
Q2FjaGVhYmxlSWRlbnRpZmllcik7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CkBAIC0yOTMsOCArMjk3LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRy
eUdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE8KICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHNsb3QuZ2V0UHVyZVJlc3VsdCgpKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBF
bmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitK
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRp
Zmllcik7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0zMTIsOCArMzE3
LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWREaXJlY3QsIEVu
Y29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShmb3VuZCA/IHNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBp
ZGVudCkgOiBqc1VuZGVmaW5lZCgpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRCeUlkRGlyZWN0R2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0
QnlJZERpcmVjdEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRl
bnRpZmllcikpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlm
aWVyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xv
Z3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTMzMCw4ICszMzYs
OSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZERpcmVjdEdlbmVy
aWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKGZvdW5kID8gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIGlk
ZW50KSA6IGpzVW5kZWZpbmVkKCkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRK
U1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0T3B0aW1pemUsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8q
IHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMzUyLDggKzM1
OSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkRGlyZWN0T3B0
aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoZm91bmQgPyBzbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwg
aWRlbnQpIDoganNVbmRlZmluZWQoKSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25HZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUg
YmFzZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9E
RUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBsZXJT
Y29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpAQCAtMzczLDggKzM4MSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25HZXRCeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90
IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkdldEJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRp
Zmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwog
ICAgIAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTM5Miw4ICs0MDEsOSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZEdlbmVyaWMsIEVuY29k
ZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRPcHRp
bWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCBy
YXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRCeUlkT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNl
LCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7CisgICAgSklUX0RFRklO
RV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFN1cGVyU2FtcGxlclNjb3Bl
IHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC00MTUsOCArNDI1LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamUKICAg
ICB9KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0
aFRoaXMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpcywgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVk
LCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7CisgICAgSklUX0RFRklO
RV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFN1cGVyU2FtcGxlclNjb3Bl
IHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKIAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKQEAgLTQzNCw4ICs0NDUsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlJZFdpdGhUaGlzLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoYmFzZVZhbHVlLmdldChnbG9iYWxPYmplY3QsIGlkZW50LCBz
bG90KSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRCeUlkV2l0
aFRoaXNHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNFbmNvZGVkLCB1aW50
cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzR2VuZXJpYywgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzRW5jb2RlZCwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogewor
ICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBl
clNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CkBAIC00NTEsOCArNDYzLDkgQEAgSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc0dlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAo
SlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1ZS5nZXQoZ2xvYmFsT2Jq
ZWN0LCBpZGVudCwgc2xvdCkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNW
YWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzRW5jb2RlZCwgdWludHB0cl90IHJhd0NhY2hl
YWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldEJ5
SWRXaXRoVGhpc09wdGltaXplLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgYmFz
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc0VuY29kZWQsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRp
Zmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwog
ICAgIAogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTQ3NSw4ICs0ODgsOSBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1p
emUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbAogICAgIH0pKTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZEdlbmVyaWMsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNv
ZGVkSlNWYWx1ZSBiYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeUlkR2VuZXJpYywgRW5jb2RlZEpTVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRpZmll
cik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtNTAzLDggKzUxNyw5IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4o
YmFzZU9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwgaWRlbnQsIHNsb3QpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5SWRPcHRpbWl6ZSwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5
SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEpJVF9V
SU5UUFRSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJT
YW1wbGVyU2NvcGUoZmFsc2UpOwogCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpA
QCAtNjk1LDggKzcxMCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQ
cml2YXRlQnJhbmRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZVZhbHVlKS0+aGFzUHJpdmF0ZUJy
YW5kKGdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCcmFuZCkpKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0LCB2b2lkLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSklUX1VJTlRQVFIocmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFi
bGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShm
YWxzZSk7CiAgICAgCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtNzE0LDgg
KzczMCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgTE9HX0lDKChJQ0V2ZW50OjpP
cGVyYXRpb25QdXRCeUlkU3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKHZtKSwgaWRl
bnQsIHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWROb25TdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcik7
CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIAog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTczMyw4ICs3NTAsOSBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uUHV0QnlJ
ZE5vblN0cmljdCwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCh2bSksIGlkZW50LCBzbG90LmJh
c2UoKSA9PSBiYXNlVmFsdWUpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvblB1dEJ5SWREaXJlY3RTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGly
ZWN0U3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkp
CiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC03NTIsOCArNzcwLDkgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QsIHZvaWQsIChKU0ds
b2JhbE9iamVjdCogZ2wKICAgICBMT0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvblB1dEJ5SWREaXJl
Y3RTdHJpY3QsIGJhc2VWYWx1ZS5jbGFzc0luZm9Pck51bGwodm0pLCBpZGVudCwgc2xvdC5iYXNl
KCkgPT0gYmFzZVZhbHVlKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxl
SWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERp
cmVjdE5vblN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsK
ICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtNzcxLDggKzc5MCw5IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0LCB2b2lk
LCAoSlNHbG9iYWxPYmplY3QqCiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25QdXRCeUlk
RGlyZWN0Tm9uU3RyaWN0LCBiYXNlVmFsdWUuY2xhc3NJbmZvT3JOdWxsKHZtKSwgaWRlbnQsIHNs
b3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUHV0QnlJZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2Fj
aGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVu
dGlmaWVyKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpOwogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAg
ICAKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC04MDMsOCArODIzLDkgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZSwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KgogICAgICAgICByZXBhdGNoUHV0QnkoZ2xvYmFsT2JqZWN0
LCBjb2RlQmxvY2ssIGJhc2VWYWx1ZSwgc3RydWN0dXJlLCBpZGVudGlmaWVyLCBzbG90LCAqc3R1
YkluZm8sIFB1dEJ5S2luZDo6QnlJZCwgUHV0S2luZDo6Tm90RGlyZWN0KTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSwgdm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSklU
X1VJTlRQVFIocmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBl
clNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwpAQCAtODM1LDggKzg1Niw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkTm9uU3RyaWN0T3B0aW1pemUsIHZvaWQsIChKU0dsb2JhbE9iamVjCiAgICAgICAg
IHJlcGF0Y2hQdXRCeShnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZVZhbHVlLCBzdHJ1Y3R1
cmUsIGlkZW50aWZpZXIsIHNsb3QsICpzdHViSW5mbywgUHV0QnlLaW5kOjpCeUlkLCBQdXRLaW5k
OjpOb3REaXJlY3QpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZERpcmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxl
SWRlbnRpZmllcikpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERp
cmVjdFN0cmljdE9wdGltaXplLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVu
dGlmaWVyKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZp
ZXIpOwogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAg
ICAKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC04NjYsOCArODg4LDkgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3RPcHRp
bWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2IKICAgICAgICAgcmVwYXRjaFB1dEJ5KGdsb2JhbE9iamVj
dCwgY29kZUJsb2NrLCBiYXNlT2JqZWN0LCBzdHJ1Y3R1cmUsIGlkZW50aWZpZXIsIHNsb3QsICpz
dHViSW5mbywgUHV0QnlLaW5kOjpCeUlkLCBQdXRLaW5kOjpEaXJlY3QpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXpl
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8q
IHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXplLCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0
dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7CisgICAgSklU
X0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFN1cGVyU2FtcGxl
clNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICAKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CkBAIC05MzcsOCArOTYwLDkgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMg
dm9pZCBkZWZpbmVQcml2YXRlRmllbGQoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWMKICAgICBjYWxsYmFjayh2bSwgY29kZUJsb2NrLCBvbGRTdHJ1Y3R1cmUsIHB1dFNsb3QsIGlk
ZW50KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZp
bmVQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGVmaW5lUHJpdmF0ZUZp
ZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSkpCiB7CisgICAg
SklUX0RFRklORV9JTlRFR0VSKHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpOwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtOTUwLDggKzk3NCw5IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkRGVmaW5lUHJpdmF0ZUZpZWxkU3RyaWN0LCB2b2lk
LCAoSlNHbG9iCiAgICAgZGVmaW5lUHJpdmF0ZUZpZWxkKHZtLCBnbG9iYWxPYmplY3QsIGNhbGxG
cmFtZSwgYmFzZVZhbHVlLCBpZGVudGlmaWVyLCB2YWx1ZSwgW10oVk0mLCBDb2RlQmxvY2sqLCBT
dHJ1Y3R1cmUqLCBQdXRQcm9wZXJ0eVNsb3QmLCBjb25zdCBJZGVudGlmaWVyJikgeyB9KTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQcml2YXRl
RmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5SWREZWZpbmVQ
cml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSklUX1VJTlRQVFIocmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxz
ZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTk3Myw4ICs5OTgsOSBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZERlZmluZVByaXZhdGVGaWVsZFN0
cmljdE9wdGltaXplLCB2b2lkLAogICAgIH0pOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlJZFNldFByaXZhdGVGaWVsZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3QsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlkZW50
aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRpZmll
cik7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC05ODYsOCArMTAxMiw5
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU2V0UHJpdmF0ZUZp
ZWxkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPCiAgICAgc2V0UHJpdmF0ZUZpZWxkKHZtLCBnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgYmFzZVZhbHVlLCBpZGVudGlmaWVyLCB2YWx1ZSwgW10oVk0m
LCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqLCBQdXRQcm9wZXJ0eVNsb3QmLCBjb25zdCBJZGVudGlm
aWVyJikgeyB9KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEJ5
SWRTZXRQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1
dEJ5SWRTZXRQcml2YXRlRmllbGRTdHJpY3RPcHRpbWl6ZSwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSklUX1VJTlRQVFIo
cmF3Q2FjaGVhYmxlSWRlbnRpZmllcikpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYXdD
YWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJT
Y29wZShmYWxzZSk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKQEAgLTE2MjcsOCArMTY1
NCw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEs
IHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiB9CiAKICNpZiBVU0UoQklHSU5UMzIpCi1K
U0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uQ29tcGFyZUVxSGVhcEJpZ0ludFRvSW50
MzIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogaGVhcEJp
Z0ludCwgaW50MzJfdCBzbWFsbEludCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uQ29tcGFyZUVxSGVhcEJpZ0ludFRvSW50MzIsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogaGVhcEJpZ0ludCwgSklUX0lOVDMyKHNtYWxsSW50KSkpCiB7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKHNtYWxsSW50KTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTE2MzksOCArMTY2Nyw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db21wYXJlRXFIZWFwQmlnSW50VG9JbnQzMiwgc2l6ZV90LCAoSlNHbG9i
YWxPCiB9CiAjZW5kaWYKIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk5ld0Fy
cmF5V2l0aFByb2ZpbGUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgY29uc3QgSlNWYWx1ZSogdmFs
dWVzLCBpbnQgc2l6ZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTmV3QXJy
YXlXaXRoUHJvZmlsZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBjb25zdCBKU1ZhbHVlKiB2YWx1
ZXMsIEpJVF9JTlQzMihzaXplKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHNpemUpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMTgxMiw4ICsxODQxLDkgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhbmRsZVRyYXBzLCBVbnVzZWRQdHIs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlYnVnLCB2b2lkLCAoVk0qIHZtUG9pbnRlciwg
aW50MzJfdCBkZWJ1Z0hvb2tUeXBlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25EZWJ1Zywgdm9pZCwgKFZNKiB2bVBvaW50ZXIsIEpJVF9JTlQzMihkZWJ1Z0hvb2tUeXBlKSkp
CiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGRlYnVnSG9va1R5cGUpOwogICAgIFZNJiB2bSA9
ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKQEAgLTE4MjgsOCArMTg1OCw5IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUFs
bFByZWRpY3Rpb25zQW5kT3B0aW1pemVBZnRlcldhcm1VcChDb2RlQmxvY2sqIGNvZGVCbG9jaykK
ICAgICBjb2RlQmxvY2stPm9wdGltaXplQWZ0ZXJXYXJtVXAoKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbk9wdGltaXplLCBTbG93UGF0aFJldHVyblR5cGUsIChWTSog
dm1Qb2ludGVyLCB1aW50MzJfdCBieXRlY29kZUluZGV4Qml0cykpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uT3B0aW1pemUsIFNsb3dQYXRoUmV0dXJuVHlwZSwgKFZNKiB2bVBv
aW50ZXIsIEpJVF9VSU5UMzIoYnl0ZWNvZGVJbmRleEJpdHMpKSkKIHsKKyAgICBKSVRfREVGSU5F
X0lOVEVHRVIoYnl0ZWNvZGVJbmRleEJpdHMpOwogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
QEAgLTIwNTYsOCArMjA4Nyw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25P
cHRpbWl6ZSwgU2xvd1BhdGhSZXR1cm5UeXBlLCAoVk0qIHZtUG9pbnRlciwKICAgICByZXR1cm4g
ZW5jb2RlUmVzdWx0KG51bGxwdHIsIG51bGxwdHIpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJBdENhdGNoLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIs
IHVpbnQzMl90IGJ5dGVjb2RlSW5kZXhCaXRzKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25UcnlPU1JFbnRlckF0Q2F0Y2gsIGNoYXIqLCAoVk0qIHZtUG9pbnRlciwgSklUX1VJ
TlQzMihieXRlY29kZUluZGV4Qml0cykpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihieXRl
Y29kZUluZGV4Qml0cyk7CiAgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKICAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjA4MCw4ICsy
MTEyLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRD
YXRjaCwgY2hhciosIChWTSogdm1Qb2ludGVyLCB1aW4KICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRyeU9TUkVudGVyQXRDYXRjaEFu
ZFZhbHVlUHJvZmlsZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCB1aW50MzJfdCBieXRlY29kZUlu
ZGV4Qml0cykpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVHJ5T1NSRW50ZXJB
dENhdGNoQW5kVmFsdWVQcm9maWxlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEpJVF9VSU5UMzIo
Ynl0ZWNvZGVJbmRleEJpdHMpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoYnl0ZWNvZGVJ
bmRleEJpdHMpOwogICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CiAgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTIxMzMsOCArMjE2Niw5
IEBAIHN0YXRpYyB2b2lkIHB1dEFjY2Vzc29yQnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNPYmplY3QqIGJhc2UsIEpTVmFsCiAgICAgICAgIGJhc2UtPnB1dFNldHRlcihnbG9i
YWxPYmplY3QsIHByb3BlcnR5S2V5LCBhY2Nlc3NvciwgYXR0cmlidXRlKTsKIH0KIAotSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHZvaWQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwq
IHVpZCwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIGdldHRlcikpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBKSVRf
SU5UMzIob3B0aW9ucyksIEpTQ2VsbCogZ2V0dGVyKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIob3B0aW9ucyk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yMTQ2
LDggKzIxODAsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0R2V0dGVy
QnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIGJhc2VPYmotPnB1dEdl
dHRlcihnbG9iYWxPYmplY3QsIHVpZCwgZ2V0dGVyLCBvcHRpb25zKTsKIH0KIAotSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dFNldHRlckJ5SWQsIHZvaWQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVp
ZCwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBKSVRfSU5U
MzIob3B0aW9ucyksIEpTQ2VsbCogc2V0dGVyKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
b3B0aW9ucyk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yMTU5LDgg
KzIxOTQsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0U2V0dGVyQnlJ
ZCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIGJhc2VPYmotPnB1dFNldHRl
cihnbG9iYWxPYmplY3QsIHVpZCwgc2V0dGVyLCBvcHRpb25zKTsKIH0KIAotSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIpKQorSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBKSVRfSU5UMzIoYXR0cmlidXRlKSwgSlNDZWxsKiBnZXR0ZXIpKQogeworICAgIEpJ
VF9ERUZJTkVfSU5URUdFUihhdHRyaWJ1dGUpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwpAQCAtMjE2OCw4ICsyMjA0LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEdldHRlckJ5VmFsLCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAg
ICBwdXRBY2Nlc3NvckJ5VmFsKGdsb2JhbE9iamVjdCwgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIpLCBB
Y2Nlc3NvclR5cGU6OkdldHRlcik7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRTZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBh
dHRyaWJ1dGUsIEpTQ2VsbCogc2V0dGVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRTZXR0ZXJCeVZhbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgSklUX0lOVDMy
KGF0dHJpYnV0ZSksIEpTQ2VsbCogc2V0dGVyKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
YXR0cmlidXRlKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTIxNzgs
OCArMjIxNSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRTZXR0ZXJC
eVZhbCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiB9CiAKICNpZiBVU0UoSlNWQUxV
RTY0KQotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwg
dm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEdldHRlclZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyVmFsdWUpKQorSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkLCBKSVRfSU5UMzIoYXR0cmlidXRlKSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdl
dHRlclZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyVmFsdWUpKQogeworICAgIEpJ
VF9ERUZJTkVfSU5URUdFUihhdHRyaWJ1dGUpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOwpAQCAtMjE5NSw4ICsyMjMzLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblB1dEdldHRlclNldHRlciwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIH0K
IAogI2Vsc2UKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0
ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCwg
VW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVy
Q2VsbCwgSlNDZWxsKiBzZXR0ZXJDZWxsKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHZvaWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgSklUX0lOVDMyKGF0dHJp
YnV0ZSksIEpTQ2VsbCogZ2V0dGVyQ2VsbCwgSlNDZWxsKiBzZXR0ZXJDZWxsKSkKIHsKKyAgICBK
SVRfREVGSU5FX0lOVEVHRVIoYXR0cmlidXRlKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0p
OwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2Fs
bEZyYW1lKTsKQEAgLTI0NzAsOCArMjUwOSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihv
cGVyYXRpb25HZXRQcml2YXRlTmFtZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnZXRQcml2YXRlTmFtZShnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgYmFzZVZhbHVlLCBmaWVsZE5hbWVWYWx1ZSkpOwogfQogCi1KU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0UHJpdmF0ZU5hbWVCeUlkLCBFbmNvZGVkSlNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywgRW5jb2RlZEpTVmFsdWUgYmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEpJVF9VSU5UUFRSKHJhd0Nh
Y2hlYWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVh
YmxlSWRlbnRpZmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUo
ZmFsc2UpOwogCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjQ5MSw4ICsy
NTMxLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1l
QnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRQ
cml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1ZhbHVl
IGJhc2UsIHVpbnRwdHJfdCByYXdDYWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRQcml2YXRlTmFtZUJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8sIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hlYWJsZUlk
ZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxlSWRlbnRp
Zmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwog
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjUyMiw4ICsyNTYzLDkgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFByaXZhdGVOYW1lQnlJZE9wdGlt
aXplLCBFbmNvZGVkSlNWYWx1ZSwgKEoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZShnZXRQcml2YXRlTmFtZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYmFz
ZVZhbHVlLCBmaWVsZE5hbWUpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25HZXRQcml2YXRlTmFtZUJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIHVpbnRwdHJfdCByYXdD
YWNoZWFibGVJZGVudGlmaWVyKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25H
ZXRQcml2YXRlTmFtZUJ5SWRHZW5lcmljLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGJhc2UsIEpJVF9VSU5UUFRSKHJhd0NhY2hl
YWJsZUlkZW50aWZpZXIpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIocmF3Q2FjaGVhYmxl
SWRlbnRpZmllcik7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFs
c2UpOwogCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjU1Niw4ICsyNTk4
LDkgQEAgc3RhdGljIGJvb2wgZGVsZXRlQnlJZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBWTSYgdm0sIERlbGV0ZVByb3BlcnR5U2xvdCYKICAgICByZXR1cm4gY291bGREZWxldGU7CiB9
CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlkT3B0aW1pemUs
IHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCByYXdDYWNo
ZWFibGVJZGVudGlmaWVyLCBFQ01BTW9kZSBlY21hTW9kZSkpCitKU0NfREVGSU5FX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uRGVsZXRlQnlJZE9wdGltaXplLCBzaXplX3QsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBKSVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSwgRUNN
QU1vZGUgZWNtYU1vZGUpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJ
ZGVudGlmaWVyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlv
blByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTI1ODQs
OCArMjYyNyw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25EZWxldGVCeUlk
T3B0aW1pemUsIHNpemVfdCwgKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmlj
LCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRl
bnRpZmllciwgRUNNQU1vZGUgZWNtYU1vZGUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbkRlbGV0ZUJ5SWRHZW5lcmljLCBzaXplX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBK
SVRfVUlOVFBUUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKSwgRUNNQU1vZGUgZWNtYU1vZGUpKQog
eworICAgIEpJVF9ERUZJTkVfSU5URUdFUihyYXdDYWNoZWFibGVJZGVudGlmaWVyKTsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTI3MTUsMTYgKzI3NTksMTkgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluc3RhbmNlT2ZPcHRpbWl6ZSwgRW5jb2Rl
ZEpTVmFsdWUsIChKU0dsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVh
bihyZXN1bHQpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVG
cmFtZUZvckZvcndhcmRBcmd1bWVudHMsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBudW1Vc2VkU3RhY2tTbG90cywgaW50MzJf
dCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yRm9yd2Fy
ZEFyZ3VtZW50cywgaW50MzJfdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlLCBKSVRfSU5UMzIobnVtVXNlZFN0YWNrU2xvdHMpLCBKSVRfSU5UMzIoKSkpCiB7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKG51bVVzZWRTdGFja1Nsb3RzKTsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKICAgICByZXR1cm4gc2l6ZUZyYW1lRm9yRm9yd2FyZEFy
Z3VtZW50cyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgdm0sIG51bVVzZWRTdGFja1Nsb3RzKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFtZUZvclZhcmFy
Z3MsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQXJndW1lbnRzLCBpbnQzMl90IG51bVVzZWRTdGFja1Nsb3RzLCBpbnQzMl90IGZp
cnN0VmFyQXJnT2Zmc2V0KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TaXpl
RnJhbWVGb3JWYXJhcmdzLCBpbnQzMl90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEFyZ3VtZW50cywgSklUX0lOVDMyKG51bVVzZWRTdGFja1Ns
b3RzKSwgSklUX0lOVDMyKGZpcnN0VmFyQXJnT2Zmc2V0KSkpCiB7CisgICAgSklUX0RFRklORV9J
TlRFR0VSKG51bVVzZWRTdGFja1Nsb3RzKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoZmlyc3RW
YXJBcmdPZmZzZXQpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0
aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjcz
Miw4ICsyNzc5LDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNpemVGcmFt
ZUZvclZhcmFyZ3MsIGludDMyX3QsIChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gc2l6ZUZy
YW1lRm9yVmFyYXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgdm0sIGFyZ3VtZW50cywgbnVt
VXNlZFN0YWNrU2xvdHMsIGZpcnN0VmFyQXJnT2Zmc2V0KTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lLCBDYWxsRnJhbWUq
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUs
IEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90IGxlbmd0aCkpCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0dXBGb3J3YXJkQXJndW1lbnRzRnJhbWUsIENhbGxGcmFt
ZSosIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFt
ZSwgRW5jb2RlZEpTVmFsdWUsIEpJVF9JTlQzMigpLCBKSVRfSU5UMzIobGVuZ3RoKSkpCiB7Cisg
ICAgSklUX0RFRklORV9JTlRFR0VSKGxlbmd0aCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7CkBAIC0yNzQxLDggKzI3ODksMTAgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvblNldHVwRm9yd2FyZEFyZ3VtZW50c0ZyYW1lLCBDYWxsRnJhbWUqLCAoSlNHbG8K
ICAgICByZXR1cm4gbmV3Q2FsbEZyYW1lOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uU2V0dXBWYXJhcmdzRnJhbWUsIENhbGxGcmFtZSosIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEFyZ3VtZW50cywgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgaW50MzJfdCBsZW5ndGgp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldHVwVmFyYXJnc0ZyYW1lLCBD
YWxsRnJhbWUqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBuZXdD
YWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVudHMsIEpJVF9JTlQzMihmaXJz
dFZhckFyZ09mZnNldCksIEpJVF9JTlQzMihsZW5ndGgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lO
VEVHRVIoZmlyc3RWYXJBcmdPZmZzZXQpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihsZW5ndGgp
OwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxG
cmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwpAQCAtMjc1MSw4ICsyODAxLDEw
IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TZXR1cFZhcmFyZ3NGcmFtZSwg
Q2FsbEZyYW1lKiwgKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblN3aXRjaENoYXJXaXRoVW5rbm93
bktleVR5cGUsIGNoYXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEtleSwgc2l6ZV90IHRhYmxlSW5kZXgsIGludDMyX3QgbWluKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hDaGFyV2l0aFVua25vd25LZXlUeXBl
LCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRLZXksIEpJVF9TSVpFVCh0YWJsZUluZGV4KSwgSklUX0lOVDMyKG1pbikpKQogeworICAg
IEpJVF9ERUZJTkVfSU5URUdFUih0YWJsZUluZGV4KTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
bWluKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xv
Z3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKQEAgLTI3NzgsOCArMjgz
MCwxMCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoQ2hhcldpdGhV
bmtub3duS2V5VHlwZSwgY2hhciosIChKU0dsb2JhbAogICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIHNpemVfdCB0YWJsZUluZGV4LCBpbnQzMl90IG1pbikp
CitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25L
ZXlUeXBlLCBjaGFyKiwgKFZNKiB2bVBvaW50ZXIsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRLZXks
IEpJVF9TSVpFVCh0YWJsZUluZGV4KSwgSklUX0lOVDMyKG1pbikpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUih0YWJsZUluZGV4KTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobWluKTsKICAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yNzk5LDggKzI4NTMsOSBAQCBKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoSW1tV2l0aFVua25vd25LZXlUeXBlLCBjaGFy
KiwgKFZNKiB2bVBvaQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPihyZXN1bHQp
OwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU3dpdGNoU3RyaW5nV2l0
aFVua25vd25LZXlUeXBlLCBjaGFyKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRLZXksIHNpemVfdCB0YWJsZUluZGV4KSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Td2l0Y2hTdHJpbmdXaXRoVW5rbm93bktleVR5cGUsIGNo
YXIqLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEtleSwgSklUX1NJWkVUKHRhYmxlSW5kZXgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIo
dGFibGVJbmRleCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CkBAIC0yOTk5
LDggKzMwNTQsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0
ZUJ1dHRlcmZseVRvSGF2ZVByb3BlcnR5U3RvcmFnZVdpdGhJbgogICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNoYXIqPihyZXN1bHQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jvd1Byb3BlcnR5U3RvcmFnZSwgY2hhcios
IChWTSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkpCitKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUmVhbGxvY2F0ZUJ1dHRlcmZseVRvR3Jvd1By
b3BlcnR5U3RvcmFnZSwgY2hhciosIChWTSogdm1Qb2ludGVyLCBKU09iamVjdCogb2JqZWN0LCBK
SVRfU0laRVQobmV3U2l6ZSkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihuZXdTaXplKTsK
ICAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHAKaW5kZXggMTA4MDQ0OWRhNjM4Li44ZTAyMTMyNTVkZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKQEAgLTQx
OCw4ICs0MTgsOSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRyaWdn
ZXJPU1JFbnRyeU5vdywgdm9pZCwgKFByb2JlOjpDb250ZXh0JgogICAgIHJldHVybiByZXR1cm5X
aXRob3V0T1NSRW50cnkoKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21UcmlnZ2VyVGllclVwTm93LCB2b2lkLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJf
dCBmdW5jdGlvbkluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
VHJpZ2dlclRpZXJVcE5vdywgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgSklUX1VJTlQzMihm
dW5jdGlvbkluZGV4KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGZ1bmN0aW9uSW5kZXgp
OwogICAgIFdhc206OkNhbGxlZUdyb3VwJiBjYWxsZWVHcm91cCA9ICppbnN0YW5jZS0+Y2FsbGVl
R3JvdXAoKTsKICAgICBBU1NFUlQoaW5zdGFuY2UtPm1lbW9yeSgpLT5tb2RlKCkgPT0gY2FsbGVl
R3JvdXAubW9kZSgpKTsKIApAQCAtNTA0LDggKzUwNSw5IEBAIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25Db252ZXJ0VG9GMzIsIGZsb2F0LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IEpTCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2LnRvTnVtYmVyKGNhbGxGcmFtZS0+
bGV4aWNhbEdsb2JhbE9iamVjdCh2bSkpKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KG9wZXJhdGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBpbnQ2NF90IHZhbHVlKSkKK0pTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25Db252ZXJ0VG9CaWdJbnQsIEVuY29kZWRKU1ZhbHVlLCAo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEluc3RhbmNlKiBpbnN0YW5jZSwgSklUX0lOVDY0KHZhbHVl
KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHZhbHVlKTsKICAgICBKU1dlYkFzc2VtYmx5
SW5zdGFuY2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3Rh
bmNlPigpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0luc3RhbmNlLT5n
bG9iYWxPYmplY3QoKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC01ODgs
OCArNTkwLDkgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1
bHRzLCB2b2lkLCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEkKIC8vIEZJWE1FOiBJdCB3b3VsZCBi
ZSBtdWNoIGVhc2llciB0byBpbmxpbmUgdGhpcyB3aGVuIHdlIGhhdmUgYSBnbG9iYWwgR0MsIHdo
aWNoIGNvdWxkIHByb2JhYmx5IG1lYW4gd2UgY291bGQgYXZvaWQKIC8vIHNwaWxsaW5nIHRoZSBy
ZXN1bHRzIG9udG8gdGhlIHN0YWNrLgogLy8gU2F2ZWQgcmVzdWx0IHJlZ2lzdGVycyBzaG91bGQg
YmUgcGxhY2VkIG9uIHRoZSBzdGFjayBqdXN0IGFib3ZlIHRoZSBsYXN0IHN0YWNrIHJlc3VsdC4K
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25BbGxvY2F0ZVJlc3VsdHNBcnJheSwg
SlNBcnJheSosIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgV2FzbTo6SW5zdGFuY2UqIGluc3RhbmNl
LCBjb25zdCBTaWduYXR1cmUqIHNpZ25hdHVyZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSwg
SlNWYWx1ZSogc3RhY2tQb2ludGVyRnJvbUNhbGxlZSkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIFdhc206Okluc3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgU2lnbmF0dXJlKiBzaWdu
YXR1cmUsIEpJVF9JTlRFR0VSX1ZBTFVFKEluZGV4aW5nVHlwZSwgaW5kZXhpbmdUeXBlKSwgSlNW
YWx1ZSogc3RhY2tQb2ludGVyRnJvbUNhbGxlZSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VS
KGluZGV4aW5nVHlwZSk7CiAgICAgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBqc0luc3RhbmNlID0g
aW5zdGFuY2UtPm93bmVyPEpTV2ViQXNzZW1ibHlJbnN0YW5jZT4oKTsKICAgICBWTSYgdm0gPSBq
c0luc3RhbmNlLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7CkBAIC02MjcsMTggKzYzMCwyMSBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbVdyaXRlQmFycmllclNsb3dQYXRoLCB2b2lkLCAoSlNDZWxsKiBjZWxsLAog
ICAgIHZtLndyaXRlQmFycmllclNsb3dQYXRoKGNlbGwpOwogfQogCi1KU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uUG9wY291bnQzMiwgdWludDMyX3QsIChpbnQzMl90IHZhbHVlKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDMyLCB1aW50MzJfdCwg
KEpJVF9JTlQzMih2YWx1ZSkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUih2YWx1ZSk7CiAg
ICAgcmV0dXJuIF9fYnVpbHRpbl9wb3Bjb3VudCh2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDY0LCB1aW50NjRfdCwgKGludDY0X3QgdmFsdWUp
KQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblBvcGNvdW50NjQsIHVpbnQ2NF90
LCAoSklUX0lOVDY0KHZhbHVlKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHZhbHVlKTsK
ICAgICByZXR1cm4gX19idWlsdGluX3BvcGNvdW50bGwodmFsdWUpOwogfQogCi1KU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR3Jvd01lbW9yeSwgaW50MzJfdCwgKHZvaWQqIGNhbGxG
cmFtZSwgSW5zdGFuY2UqIGluc3RhbmNlLCBpbnQzMl90IGRlbHRhKSkKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25Hcm93TWVtb3J5LCBpbnQzMl90LCAodm9pZCogY2FsbEZyYW1l
LCBJbnN0YW5jZSogaW5zdGFuY2UsIEpJVF9JTlQzMihkZWx0YSkpKQogeworICAgIEpJVF9ERUZJ
TkVfSU5URUdFUihkZWx0YSk7CiAgICAgaW5zdGFuY2UtPnN0b3JlVG9wQ2FsbEZyYW1lKGNhbGxG
cmFtZSk7CiAKICAgICBpZiAoZGVsdGEgPCAwKQpAQCAtNjU5LDE4ICs2NjUsMjYgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdyb3dNZW1vcnksIGludDMyX3QsICh2b2lkKiBj
YWxsRnJhbWUsIEluc3RhbmMKICAgICByZXR1cm4gZ3Jvd24udmFsdWUoKS5wYWdlQ291bnQoKTsK
IH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlGaWxsLCBz
aXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90
IHRhcmdldFZhbHVlLCB1aW50MzJfdCBjb3VudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbU1lbW9yeUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgSklU
X1VJTlQzMihkc3RBZGRyZXNzKSwgSklUX1VJTlQzMih0YXJnZXRWYWx1ZSksIEpJVF9VSU5UMzIo
Y291bnQpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoZHN0QWRkcmVzcyk7CisgICAgSklU
X0RFRklORV9JTlRFR0VSKHRhcmdldFZhbHVlKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoY291
bnQpOwogICAgIHJldHVybiBpbnN0YW5jZS0+bWVtb3J5KCktPmZpbGwoZHN0QWRkcmVzcywgc3Rh
dGljX2Nhc3Q8dWludDhfdD4odGFyZ2V0VmFsdWUpLCBjb3VudCk7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5Q29weSwgc2l6ZV90LCAoSW5zdGFuY2Uq
IGluc3RhbmNlLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50MzJfdCBzcmNBZGRyZXNzLCB1aW50
MzJfdCBjb3VudCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9y
eUNvcHksIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgSklUX1VJTlQzMihkc3RBZGRyZXNz
KSwgSklUX1VJTlQzMihzcmNBZGRyZXNzKSwgSklUX1VJTlQzMihjb3VudCkpKQogeworICAgIEpJ
VF9ERUZJTkVfSU5URUdFUihkc3RBZGRyZXNzKTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoc3Jj
QWRkcmVzcyk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGNvdW50KTsKICAgICByZXR1cm4gaW5z
dGFuY2UtPm1lbW9yeSgpLT5jb3B5KGRzdEFkZHJlc3MsIHNyY0FkZHJlc3MsIGNvdW50KTsKIH0K
IAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQs
IEVuY29kZWRKU1ZhbHVlLCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCB0YWJsZUluZGV4
LCBpbnQzMl90IHNpZ25lZEluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25HZXRXYXNtVGFibGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5j
ZSwgSklUX1VJTlQzMih0YWJsZUluZGV4KSwgSklUX0lOVDMyKHNpZ25lZEluZGV4KSkpCiB7Cisg
ICAgSklUX0RFRklORV9JTlRFR0VSKHRhYmxlSW5kZXgpOworICAgIEpJVF9ERUZJTkVfSU5URUdF
UihzaWduZWRJbmRleCk7CiAgICAgQVNTRVJUKHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxl
KCkubW9kdWxlSW5mb3JtYXRpb24oKS50YWJsZUNvdW50KCkpOwogICAgIGlmIChzaWduZWRJbmRl
eCA8IDApCiAgICAgICAgIHJldHVybiAwOwpAQCAtNzEyLDEzICs3MjYsMjAgQEAgc3RhdGljIGJv
b2wgc2V0V2FzbVRhYmxlRWxlbWVudChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIHRhYmxl
SW5kZXgsIHVpbnQzMl8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblNldFdhc21UYWJsZUVsZW1lbnQsIHNpemVfdCwgKEluc3RhbmNlKiBp
bnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCwgdWludDMyX3Qgc2lnbmVkSW5kZXgsIEVuY29k
ZWRKU1ZhbHVlIGVuY1ZhbHVlKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25T
ZXRXYXNtVGFibGVFbGVtZW50LCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIEpJVF9VSU5U
MzIodGFibGVJbmRleCksIEpJVF9VSU5UMzIoc2lnbmVkSW5kZXgpLCBFbmNvZGVkSlNWYWx1ZSBl
bmNWYWx1ZSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHRhYmxlSW5kZXgpOworICAgIEpJ
VF9ERUZJTkVfSU5URUdFUihzaWduZWRJbmRleCk7CiAgICAgcmV0dXJuIHNldFdhc21UYWJsZUVs
ZW1lbnQoaW5zdGFuY2UsIHRhYmxlSW5kZXgsIHNpZ25lZEluZGV4LCBlbmNWYWx1ZSk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVJbml0LCBzaXplX3Qs
IChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGVsZW1lbnRJbmRleCwgdW5zaWduZWQgdGFi
bGVJbmRleCwgdWludDMyX3QgZHN0T2Zmc2V0LCB1aW50MzJfdCBzcmNPZmZzZXQsIHVpbnQzMl90
IGxlbmd0aCkpCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlSW5p
dCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCBKSVRfVUlOVDMyKGVsZW1lbnRJbmRleCks
IEpJVF9VSU5UMzIodGFibGVJbmRleCksIEpJVF9VSU5UMzIoZHN0T2Zmc2V0KSwgSklUX1VJTlQz
MihzcmNPZmZzZXQpLCBKSVRfVUlOVDMyKGxlbmd0aCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5U
RUdFUihlbGVtZW50SW5kZXgpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUih0YWJsZUluZGV4KTsK
KyAgICBKSVRfREVGSU5FX0lOVEVHRVIoZHN0T2Zmc2V0KTsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIoc3JjT2Zmc2V0KTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIobGVuZ3RoKTsKICAgICBBU1NF
UlQoZWxlbWVudEluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCku
ZWxlbWVudENvdW50KCkpOwogICAgIEFTU0VSVCh0YWJsZUluZGV4IDwgaW5zdGFuY2UtPm1vZHVs
ZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsKIApAQCAtNzQyLDE0ICs3NjMs
MTcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUluaXQsIHNp
emVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21FbGVtRHJvcCwgdm9pZCwgKEluc3Rh
bmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgZWxlbWVudEluZGV4KSkKK0pTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25XYXNtRWxlbURyb3AsIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2Us
IEpJVF9VSU5UMzIoZWxlbWVudEluZGV4KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGVs
ZW1lbnRJbmRleCk7CiAgICAgQVNTRVJUKGVsZW1lbnRJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUo
KS5tb2R1bGVJbmZvcm1hdGlvbigpLmVsZW1lbnRDb3VudCgpKTsKICAgICBpbnN0YW5jZS0+ZWxl
bURyb3AoZWxlbWVudEluZGV4KTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldhc21UYWJsZUdyb3csIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVk
IHRhYmxlSW5kZXgsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIHVpbnQzMl90IGRlbHRhKSkKK0pTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90LCAoSW5z
dGFuY2UqIGluc3RhbmNlLCBKSVRfVUlOVDMyKHRhYmxlSW5kZXgpLCBFbmNvZGVkSlNWYWx1ZSBm
aWxsLCBKSVRfVUlOVDMyKGRlbHRhKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHRhYmxl
SW5kZXgpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihkZWx0YSk7CiAgICAgQVNTRVJUKHRhYmxl
SW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS50YWJsZUNvdW50
KCkpOwogICAgIGF1dG8gb2xkU2l6ZSA9IGluc3RhbmNlLT50YWJsZSh0YWJsZUluZGV4KS0+bGVu
Z3RoKCk7CiAgICAgYXV0byBuZXdTaXplID0gaW5zdGFuY2UtPnRhYmxlKHRhYmxlSW5kZXgpLT5n
cm93KGRlbHRhLCBqc051bGwoKSk7CkBAIC03NjIsOCArNzg2LDExIEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVHcm93LCBpbnQzMl90LCAoSW5zdGFuY2UqIGlu
c3RhbmNlLCB1CiAgICAgcmV0dXJuIG9sZFNpemU7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25XYXNtVGFibGVGaWxsLCBzaXplX3QsIChJbnN0YW5jZSogaW5zdGFuY2Us
IHVuc2lnbmVkIHRhYmxlSW5kZXgsIHVpbnQzMl90IG9mZnNldCwgRW5jb2RlZEpTVmFsdWUgZmls
bCwgdWludDMyX3QgY291bnQpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldh
c21UYWJsZUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgSklUX1VJTlQzMih0YWJs
ZUluZGV4KSwgSklUX1VJTlQzMihvZmZzZXQpLCBFbmNvZGVkSlNWYWx1ZSBmaWxsLCBKSVRfVUlO
VDMyKGNvdW50KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHRhYmxlSW5kZXgpOworICAg
IEpJVF9ERUZJTkVfSU5URUdFUihvZmZzZXQpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihjb3Vu
dCk7CiAgICAgQVNTRVJUKHRhYmxlSW5kZXggPCBpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5m
b3JtYXRpb24oKS50YWJsZUNvdW50KCkpOwogCiAgICAgaWYgKFdURjo6c3VtT3ZlcmZsb3dzPHVp
bnQzMl90PihvZmZzZXQsIGNvdW50KSkKQEAgLTc3OCw4ICs4MDUsMTMgQEAgSlNDX0RFRklORV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiBp
bnN0YW5jZSwgdW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
dW5zaWduZWQgZHN0VGFibGVJbmRleCwgdW5zaWduZWQgc3JjVGFibGVJbmRleCwgaW50MzJfdCBk
c3RPZmZzZXQsIGludDMyX3Qgc3JjT2Zmc2V0LCBpbnQzMl90IGxlbmd0aCkpCitKU0NfREVGSU5F
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlQ29weSwgc2l6ZV90LCAoSW5zdGFuY2Uq
IGluc3RhbmNlLCBKSVRfVUlOVDMyKGRzdFRhYmxlSW5kZXgpLCBKSVRfVUlOVDMyKHNyY1RhYmxl
SW5kZXgpLCBKSVRfSU5UMzIoZHN0T2Zmc2V0KSwgSklUX0lOVDMyKHNyY09mZnNldCksIEpJVF9J
TlQzMihsZW5ndGgpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoZHN0VGFibGVJbmRleCk7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKHNyY1RhYmxlSW5kZXgpOworICAgIEpJVF9ERUZJTkVf
SU5URUdFUihkc3RPZmZzZXQpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihzcmNPZmZzZXQpOwor
ICAgIEpJVF9ERUZJTkVfSU5URUdFUihsZW5ndGgpOwogICAgIEFTU0VSVChkc3RUYWJsZUluZGV4
IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkudGFibGVDb3VudCgpKTsK
ICAgICBBU1NFUlQoc3JjVGFibGVJbmRleCA8IGluc3RhbmNlLT5tb2R1bGUoKS5tb2R1bGVJbmZv
cm1hdGlvbigpLnRhYmxlQ291bnQoKSk7CiAgICAgY29uc3QgVGFibGUqIGRzdFRhYmxlID0gaW5z
dGFuY2UtPnRhYmxlKGRzdFRhYmxlSW5kZXgpOwpAQCAtODExLDE1ICs4NDMsMTcgQEAgSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UYWJsZUNvcHksIHNpemVfdCwgKEluc3Rh
bmNlKiBpbnN0YW5jZSwgdW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNl
KiBpbnN0YW5jZSwgdWludDMyX3QgaW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvbldhc21SZWZGdW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiBpbnN0YW5jZSwg
SklUX1VJTlQzMihpbmRleCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihpbmRleCk7CiAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IGluc3RhbmNlLT5nZXRGdW5jdGlvbldyYXBwZXIoaW5kZXgpOwog
ICAgIEFTU0VSVCh2YWx1ZS5pc0NhbGxhYmxlKGluc3RhbmNlLT5vd25lcjxKU09iamVjdD4oKS0+
dm0oKSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodmFsdWUpOwogfQogCi1KU0NfREVG
SU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZSwgaW50MzJfdCwgKElu
c3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgdGFibGVJbmRleCkpCitKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxlU2l6ZSwgaW50MzJfdCwgKEluc3RhbmNlKiBp
bnN0YW5jZSwgSklUX1VJTlQzMih0YWJsZUluZGV4KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRF
R0VSKHRhYmxlSW5kZXgpOwogICAgIHJldHVybiBpbnN0YW5jZS0+dGFibGUodGFibGVJbmRleCkt
Pmxlbmd0aCgpOwogfQogCkBAIC04NDksOCArODgzLDEyIEBAIHN0YXRpYyBpbnQzMl90IHdhaXQo
Vk0mIHZtLCBWYWx1ZVR5cGUqIHBvaW50ZXIsIFZhbHVlVHlwZSBleHBlY3RlZFZhbHVlLCBpbnQ2
NF90CiAgICAgcmV0dXJuIDA7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25NZW1vcnlBdG9taWNXYWl0MzIsIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2ln
bmVkIGJhc2UsIHVuc2lnbmVkIG9mZnNldCwgdWludDMyX3QgdmFsdWUsIGludDY0X3QgdGltZW91
dEluTmFub3NlY29uZHMpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9y
eUF0b21pY1dhaXQzMiwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgSklUX1VJTlQzMihi
YXNlKSwgSklUX1VJTlQzMihvZmZzZXQpLCBKSVRfVUlOVDMyKHZhbHVlKSwgSklUX0lOVDY0KHRp
bWVvdXRJbk5hbm9zZWNvbmRzKSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGJhc2UpOwor
ICAgIEpJVF9ERUZJTkVfSU5URUdFUihvZmZzZXQpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUih2
YWx1ZSk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKHRpbWVvdXRJbk5hbm9zZWNvbmRzKTsKICAg
ICBWTSYgdm0gPSBpbnN0YW5jZS0+b3duZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpLT52bSgp
OwogICAgIHVpbnQ2NF90IG9mZnNldEluTWVtb3J5ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJh
c2UpICsgb2Zmc2V0OwogICAgIGlmIChvZmZzZXRJbk1lbW9yeSAmICgweDQgLSAxKSkKQEAgLTg2
Nyw4ICs5MDUsMTIgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0
b21pY1dhaXQzMiwgaW50MzJfdCwgKEluc3RhbmNlKiBpbnN0YW4KICAgICByZXR1cm4gd2FpdDx1
aW50MzJfdD4odm0sIHBvaW50ZXIsIHZhbHVlLCB0aW1lb3V0SW5OYW5vc2Vjb25kcyk7CiB9CiAK
LUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0NjQsIGlu
dDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGJhc2UsIHVuc2lnbmVkIG9mZnNl
dCwgdWludDY0X3QgdmFsdWUsIGludDY0X3QgdGltZW91dEluTmFub3NlY29uZHMpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQ2NCwgaW50MzJfdCwg
KEluc3RhbmNlKiBpbnN0YW5jZSwgSklUX1VJTlQzMihiYXNlKSwgSklUX1VJTlQzMihvZmZzZXQp
LCBKSVRfVUlOVDY0KHZhbHVlKSwgSklUX0lOVDY0KHRpbWVvdXRJbk5hbm9zZWNvbmRzKSkpCiB7
CisgICAgSklUX0RFRklORV9JTlRFR0VSKGJhc2UpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUihv
ZmZzZXQpOworICAgIEpJVF9ERUZJTkVfSU5URUdFUih2YWx1ZSk7CisgICAgSklUX0RFRklORV9J
TlRFR0VSKHRpbWVvdXRJbk5hbm9zZWNvbmRzKTsKICAgICBWTSYgdm0gPSBpbnN0YW5jZS0+b3du
ZXI8SlNXZWJBc3NlbWJseUluc3RhbmNlPigpLT52bSgpOwogICAgIHVpbnQ2NF90IG9mZnNldElu
TWVtb3J5ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJhc2UpICsgb2Zmc2V0OwogICAgIGlmIChv
ZmZzZXRJbk1lbW9yeSAmICgweDggLSAxKSkKQEAgLTg4NSw4ICs5MjcsMTEgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQ2NCwgaW50MzJfdCwgKElu
c3RhbmNlKiBpbnN0YW4KICAgICByZXR1cm4gd2FpdDx1aW50NjRfdD4odm0sIHBvaW50ZXIsIHZh
bHVlLCB0aW1lb3V0SW5OYW5vc2Vjb25kcyk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25NZW1vcnlBdG9taWNOb3RpZnksIGludDMyX3QsIChJbnN0YW5jZSogaW5zdGFu
Y2UsIHVuc2lnbmVkIGJhc2UsIHVuc2lnbmVkIG9mZnNldCwgaW50MzJfdCBjb3VudFZhbHVlKSkK
K0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNOb3RpZnksIGlu
dDMyX3QsIChJbnN0YW5jZSogaW5zdGFuY2UsIEpJVF9VSU5UMzIoYmFzZSksIEpJVF9VSU5UMzIo
b2Zmc2V0KSwgSklUX0lOVDMyKGNvdW50VmFsdWUpKSkKIHsKKyAgICBKSVRfREVGSU5FX0lOVEVH
RVIoYmFzZSk7CisgICAgSklUX0RFRklORV9JTlRFR0VSKG9mZnNldCk7CisgICAgSklUX0RFRklO
RV9JTlRFR0VSKGNvdW50VmFsdWUpOwogICAgIHVpbnQ2NF90IG9mZnNldEluTWVtb3J5ID0gc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KGJhc2UpICsgb2Zmc2V0OwogICAgIGlmIChvZmZzZXRJbk1lbW9y
eSAmICgweDQgLSAxKSkKICAgICAgICAgcmV0dXJuIC0xOwpAQCAtOTAzLDIwICs5NDgsMjYgQEAg
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY05vdGlmeSwgaW50
MzJfdCwgKEluc3RhbmNlKiBpbnN0YW4KICAgICByZXR1cm4gUGFya2luZ0xvdDo6dW5wYXJrQ291
bnQocG9pbnRlciwgY291bnQpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbU1lbW9yeUluaXQsIHNpemVfdCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQg
ZGF0YVNlZ21lbnRJbmRleCwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVz
cywgdWludDMyX3QgbGVuZ3RoKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtTWVtb3J5SW5pdCwgc2l6ZV90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCBKSVRfVUlOVDMyKGRh
dGFTZWdtZW50SW5kZXgpLCBKSVRfVUlOVDMyKGRzdEFkZHJlc3MpLCBKSVRfVUlOVDMyKHNyY0Fk
ZHJlc3MpLCBKSVRfVUlOVDMyKGxlbmd0aCkpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihk
YXRhU2VnbWVudEluZGV4KTsKKyAgICBKSVRfREVGSU5FX0lOVEVHRVIoZHN0QWRkcmVzcyk7Cisg
ICAgSklUX0RFRklORV9JTlRFR0VSKHNyY0FkZHJlc3MpOworICAgIEpJVF9ERUZJTkVfSU5URUdF
UihsZW5ndGgpOwogICAgIEFTU0VSVChkYXRhU2VnbWVudEluZGV4IDwgaW5zdGFuY2UtPm1vZHVs
ZSgpLm1vZHVsZUluZm9ybWF0aW9uKCkuZGF0YVNlZ21lbnRzQ291bnQoKSk7CiAgICAgcmV0dXJu
IGluc3RhbmNlLT5tZW1vcnlJbml0KGRzdEFkZHJlc3MsIHNyY0FkZHJlc3MsIGxlbmd0aCwgZGF0
YVNlZ21lbnRJbmRleCk7CiB9CiAKLUpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25X
YXNtRGF0YURyb3AsIHZvaWQsIChJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGRhdGFTZWdt
ZW50SW5kZXgpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRhRHJv
cCwgdm9pZCwgKEluc3RhbmNlKiBpbnN0YW5jZSwgSklUX1VJTlQzMihkYXRhU2VnbWVudEluZGV4
KSkpCiB7CisgICAgSklUX0RFRklORV9JTlRFR0VSKGRhdGFTZWdtZW50SW5kZXgpOwogICAgIEFT
U0VSVChkYXRhU2VnbWVudEluZGV4IDwgaW5zdGFuY2UtPm1vZHVsZSgpLm1vZHVsZUluZm9ybWF0
aW9uKCkuZGF0YVNlZ21lbnRzQ291bnQoKSk7CiAgICAgaW5zdGFuY2UtPmRhdGFEcm9wKGRhdGFT
ZWdtZW50SW5kZXgpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2Fz
bVRocm93LCB2b2lkKiwgKEluc3RhbmNlKiBpbnN0YW5jZSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHVuc2lnbmVkIGV4Y2VwdGlvbkluZGV4LCB1aW50NjRfdCogYXJndW1lbnRzKSkKK0pTQ19ERUZJ
TkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGhyb3csIHZvaWQqLCAoSW5zdGFuY2UqIGlu
c3RhbmNlLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSklUX1VJTlQzMihleGNlcHRpb25JbmRleCks
IHVpbnQ2NF90KiBhcmd1bWVudHMpKQogeworICAgIEpJVF9ERUZJTkVfSU5URUdFUihleGNlcHRp
b25JbmRleCk7CiAgICAgaW5zdGFuY2UtPnN0b3JlVG9wQ2FsbEZyYW1lKGNhbGxGcmFtZSk7CiAK
ICAgICBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGpzSW5zdGFuY2UgPSBpbnN0YW5jZS0+b3duZXI8
SlNXZWJBc3NlbWJseUluc3RhbmNlPigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21PcGVyYXRpb25zLmgKaW5kZXggY2Y3YzBkNWZlZjRkLi5iNzUyZDViNzUzODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaApAQCAtNjMsNyArNjMsNyBA
QCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkNvbnZlcnRUb0YzMiwgZmxvYXQs
IChDYWxsRnJhbWUqLCBKU1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkNvbnZlcnRUb0JpZ0ludCwgRW5jb2RlZEpTVmFsdWUsIChDYWxsRnJhbWUqLCBJbnN0YW5j
ZSosIGludDY0X3QpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JdGVy
YXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSosIEluc3RhbmNlKiwgY29uc3QgU2lnbmF0dXJl
KiwgSlNWYWx1ZSwgdWludDY0X3QqLCB1aW50NjRfdCopKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uQWxsb2NhdGVSZXN1bHRzQXJyYXksIEpTQXJyYXkqLCAoQ2FsbEZyYW1l
KiwgV2FzbTo6SW5zdGFuY2UqLCBjb25zdCBTaWduYXR1cmUqLCBJbmRleGluZ1R5cGUsIEpTVmFs
dWUqKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkFsbG9jYXRlUmVzdWx0
c0FycmF5LCBKU0FycmF5KiwgKENhbGxGcmFtZSosIFdhc206Okluc3RhbmNlKiwgY29uc3QgU2ln
bmF0dXJlKiwgSklUX0lOVEVHRVJfVkFMVUUoSW5kZXhpbmdUeXBlKSwgSlNWYWx1ZSopKTsKIAog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtV3JpdGVCYXJyaWVyU2xvd1Bh
dGgsIHZvaWQsIChKU0NlbGwqLCBWTSopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uUG9wY291bnQzMiwgdWludDMyX3QsIChpbnQzMl90KSk7CkBAIC03MiwyMyArNzIsMjMg
QEAgSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Hcm93TWVtb3J5LCBpbnQzMl90
LCAodm9pZCosIEluc3RhbmNlKiwgaW50MzIKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbU1lbW9yeUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiwgdWludDMyX3QgZHN0QWRk
cmVzcywgdWludDMyX3QgdGFyZ2V0VmFsdWUsIHVpbnQzMl90IGNvdW50KSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlDb3B5LCBzaXplX3QsIChJbnN0YW5j
ZSosIHVpbnQzMl90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHNyY0FkZHJlc3MsIHVpbnQzMl90IGNv
dW50KSk7CiAKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V2FzbVRhYmxl
RWxlbWVudCwgRW5jb2RlZEpTVmFsdWUsIChJbnN0YW5jZSosIHVuc2lnbmVkLCBpbnQzMl90KSk7
Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblNldFdhc21UYWJsZUVsZW1lbnQs
IHNpemVfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQsIHVpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSBl
bmNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFi
bGVFbGVtZW50LCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiwgdWludDMyX3QsIGludDMyX3Qp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVu
dCwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1aW50MzJfdCwgdWludDMyX3QsIEVuY29kZWRKU1ZhbHVl
IGVuY1ZhbHVlKSk7CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21SZWZG
dW5jLCBFbmNvZGVkSlNWYWx1ZSwgKEluc3RhbmNlKiwgdWludDMyX3QpKTsKLUpTQ19ERUNMQVJF
X0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlSW5pdCwgc2l6ZV90LCAoSW5zdGFuY2Uq
LCB1bnNpZ25lZCBlbGVtZW50SW5kZXgsIHVuc2lnbmVkIHRhYmxlSW5kZXgsIHVpbnQzMl90IGRz
dE9mZnNldCwgdWludDMyX3Qgc3JjT2Zmc2V0LCB1aW50MzJfdCBsZW5ndGgpKTsKLUpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbUVsZW1Ecm9wLCB2b2lkLCAoSW5zdGFuY2Uq
LCB1bnNpZ25lZCBlbGVtZW50SW5kZXgpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRhYmxlR3JvdywgaW50MzJfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQsIEVuY29k
ZWRKU1ZhbHVlIGZpbGwsIHVpbnQzMl90IGRlbHRhKSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbldhc21UYWJsZUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiwgdW5zaWduZWQs
IHVpbnQzMl90IG9mZnNldCwgRW5jb2RlZEpTVmFsdWUgZmlsbCwgdWludDMyX3QgY291bnQpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlQ29weSwgc2l6ZV90
LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCBkc3RUYWJsZUluZGV4LCB1bnNpZ25lZCBzcmNUYWJsZUlu
ZGV4LCBpbnQzMl90IGRzdE9mZnNldCwgaW50MzJfdCBzcmNPZmZzZXQsIGludDMyX3QgbGVuZ3Ro
KSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUs
IGludDMyX3QsIChJbnN0YW5jZSosIHVuc2lnbmVkKSk7Ci0KLUpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDMyLCBpbnQzMl90LCAoSW5zdGFuY2UqIGlu
c3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIHVpbnQzMl90IHZhbHVlLCBp
bnQ2NF90IHRpbWVvdXQpKTsKLUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVt
b3J5QXRvbWljV2FpdDY0LCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBi
YXNlLCB1bnNpZ25lZCBvZmZzZXQsIHVpbnQ2NF90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXQpKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljTm90aWZ5LCBp
bnQzMl90LCAoSW5zdGFuY2UqLCB1bnNpZ25lZCwgdW5zaWduZWQsIGludDMyX3QpKTsKLUpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbU1lbW9yeUluaXQsIHNpemVfdCwgKElu
c3RhbmNlKiwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCwgdWludDMyX3QgZHN0QWRkcmVzcywg
dWludDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgbGVuZ3RoKSk7Ci1KU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbldhc21EYXRhRHJvcCwgdm9pZCwgKEluc3RhbmNlKiwgdW5zaWdu
ZWQgZGF0YVNlZ21lbnRJbmRleCkpOwotCi1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldhc21UaHJvdywgdm9pZCosIChJbnN0YW5jZSosIENhbGxGcmFtZSosIHVuc2lnbmVkIGV4
Y2VwdGlvbkluZGV4LCB1aW50NjRfdCopKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRhYmxlSW5pdCwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1aW50MzJfdCBlbGVtZW50
SW5kZXgsIHVpbnQzMl90IHRhYmxlSW5kZXgsIHVpbnQzMl90IGRzdE9mZnNldCwgdWludDMyX3Qg
c3JjT2Zmc2V0LCB1aW50MzJfdCBsZW5ndGgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uV2FzbUVsZW1Ecm9wLCB2b2lkLCAoSW5zdGFuY2UqLCB1aW50MzJfdCBlbGVtZW50
SW5kZXgpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlR3Jv
dywgaW50MzJfdCwgKEluc3RhbmNlKiwgdWludDMyX3QsIEVuY29kZWRKU1ZhbHVlIGZpbGwsIHVp
bnQzMl90IGRlbHRhKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21U
YWJsZUZpbGwsIHNpemVfdCwgKEluc3RhbmNlKiwgdWludDMyX3QsIHVpbnQzMl90IG9mZnNldCwg
RW5jb2RlZEpTVmFsdWUgZmlsbCwgdWludDMyX3QgY291bnQpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uV2FzbVRhYmxlQ29weSwgc2l6ZV90LCAoSW5zdGFuY2UqLCB1aW50
MzJfdCBkc3RUYWJsZUluZGV4LCB1aW50MzJfdCBzcmNUYWJsZUluZGV4LCBpbnQzMl90IGRzdE9m
ZnNldCwgaW50MzJfdCBzcmNPZmZzZXQsIGludDMyX3QgbGVuZ3RoKSk7CitKU0NfREVDTEFSRV9K
SVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZVNpemUsIGludDMyX3QsIChJbnN0YW5j
ZSosIHVpbnQzMl90KSk7CisKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVt
b3J5QXRvbWljV2FpdDMyLCBpbnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBi
YXNlLCB1aW50MzJfdCBvZmZzZXQsIHVpbnQzMl90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXQpKTsK
K0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDY0LCBp
bnQzMl90LCAoSW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBiYXNlLCB1aW50MzJfdCBvZmZz
ZXQsIHVpbnQ2NF90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXQpKTsKK0pTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljTm90aWZ5LCBpbnQzMl90LCAoSW5zdGFuY2Uq
LCB1aW50MzJfdCwgdWludDMyX3QsIGludDMyX3QpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uV2FzbU1lbW9yeUluaXQsIHNpemVfdCwgKEluc3RhbmNlKiwgdWludDMyX3Qg
ZGF0YVNlZ21lbnRJbmRleCwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVz
cywgdWludDMyX3QgbGVuZ3RoKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlv
bldhc21EYXRhRHJvcCwgdm9pZCwgKEluc3RhbmNlKiwgdWludDMyX3QgZGF0YVNlZ21lbnRJbmRl
eCkpOworCitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21UaHJvdywgdm9p
ZCosIChJbnN0YW5jZSosIENhbGxGcmFtZSosIHVpbnQzMl90IGV4Y2VwdGlvbkluZGV4LCB1aW50
NjRfdCopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uV2FzbVJldGhyb3cs
IHZvaWQqLCAoSW5zdGFuY2UqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSB0aHJvd25WYWx1
ZSkpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21Ub0pTRXhjZXB0
aW9uLCB2b2lkKiwgKENhbGxGcmFtZSosIFdhc206OkV4Y2VwdGlvblR5cGUsIEluc3RhbmNlKikp
OwoK
</data>
<flag name="commit-queue"
          id="481645"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457865</attachid>
            <date>2022-04-19 00:38:38 -0700</date>
            <delta_ts>2022-04-19 11:13:34 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>riscv.patch</filename>
            <type>text/plain</type>
            <size>2123</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCmluZGV4IDBmZmNhNDM3ZGZi
Ni4uZWVjMmFkYmMxYTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ND
YWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJz
LmgKQEAgLTY0OSw2ICs2NDksMjcgQEAgcHJpdmF0ZToKICN1bmRlZiBDVVJSRU5UX0FSR1VNRU5U
X1RZUEUKICN1bmRlZiBSRVNVTFRfVFlQRQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0
aW9uVHlwZSwgdW5zaWduZWQgZ3BySW5kZXg+CisgICAgQUxXQVlTX0lOTElORSBjb25zdGV4cHIg
dm9pZCBhZGFwdEFyZ3VtZW50c0ltcGwoc3RkOjppbmRleF9zZXF1ZW5jZTw+KQorICAgIHsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBncHJJ
bmRleCwgc2l6ZV90IGFyaXR5SW5kZXgsIHNpemVfdC4uLiByZW1haW5pbmdBcml0eUluZGljZXM+
CisgICAgQUxXQVlTX0lOTElORSBjb25zdGV4cHIgdm9pZCBhZGFwdEFyZ3VtZW50c0ltcGwoc3Rk
OjppbmRleF9zZXF1ZW5jZTxhcml0eUluZGV4LCByZW1haW5pbmdBcml0eUluZGljZXMuLi4+KQor
ICAgIHsKKyAgICAgICAgdXNpbmcgTmV4dEluZGV4U2VxdWVuY2VUeXBlID0gc3RkOjppbmRleF9z
ZXF1ZW5jZTxyZW1haW5pbmdBcml0eUluZGljZXMuLi4+OworICAgICAgICB1c2luZyBBcmd1bWVu
dFR5cGUgPSB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6dGVtcGxhdGUg
QXJndW1lbnRUeXBlPGFyaXR5SW5kZXg+OworCisgICAgICAgIGlmICghc3RkOjppc19zYW1lPEFy
Z3VtZW50VHlwZSwgZG91YmxlPjo6dmFsdWUpIHsKKyAgICAgICAgICAgIGlmIChzdGQ6OmlzX2lu
dGVncmFsPEFyZ3VtZW50VHlwZT46OnZhbHVlICYmIHNpemVvZihBcmd1bWVudFR5cGUpID09IDQg
JiYgZ3BySW5kZXggPCBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzKSB7CisgICAg
ICAgICAgICAgICAgR1BSUmVnIGFyZ1JlZyA9IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3Rlcihn
cHJJbmRleCk7CisgICAgICAgICAgICAgICAgc2lnbkV4dGVuZDMyVG9QdHIoYXJnUmVnLCBhcmdS
ZWcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWRhcHRBcmd1bWVudHNJbXBsPE9wZXJh
dGlvblR5cGUsIGdwckluZGV4ICsgMT4oTmV4dEluZGV4U2VxdWVuY2VUeXBlKCkpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIGFkYXB0QXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlLCBn
cHJJbmRleD4oTmV4dEluZGV4U2VxdWVuY2VUeXBlKCkpOworICAgIH0KKwogICAgIC8vIEJhc2Ug
Y2FzZTsgc2V0IHVwIHRoZSBhcmd1bWVudCByZWdpc3RlcnMuCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQgbnVtR1BSU291
cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNlcywgdW5zaWdu
ZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2lnbmVkIG5vbkFy
Z0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBB
cmd1bWVudHNJbXBsKEFyZ0NvbGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNlcywgbnVt
RlBSQXJncywgbnVtRlBSU291cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIG5v
bkFyZ0dQUnMsIGV4dHJhUG9rZT4gYXJnU291cmNlUmVncykKQEAgLTY4Myw2ICs3MDQsOCBAQCBw
cml2YXRlOgogI2VuZGlmCiAgICAgICAgICAgICBzZXR1cEFyZ3VtZW50c0ltcGw8T3BlcmF0aW9u
VHlwZT4oYXJnU291cmNlUmVncywgYXJncy4uLik7CiAgICAgICAgIH0KKworICAgICAgICBhZGFw
dEFyZ3VtZW50c0ltcGw8T3BlcmF0aW9uVHlwZSwgMD4oc3RkOjptYWtlX2ludGVnZXJfc2VxdWVu
Y2U8c2l6ZV90LCBGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6YXJpdHk+KCkpOwogICAg
IH0KIAogcHVibGljOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457918</attachid>
            <date>2022-04-19 11:13:38 -0700</date>
            <delta_ts>2022-04-20 01:19:51 -0700</delta_ts>
            <desc>EWS run.</desc>
            <filename>bug-236367-20220419201337.patch</filename>
            <type>text/plain</type>
            <size>5207</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MjE1NTI5NTAwZjIxODkxODdjZWRiMzhjNjQ3YjI4Yzk5MDA4Yjg4Li4wNGQ5OTc5MzZkZDVhZmI5
MDhhNzdjOTYxMjI5YTk2YTVjNWE4OTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMi0wNC0xOSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0pTQ10gQWNjb21tb2RhdGUgdGhlIFJJU0NWNjQgQyBjYWxsaW5nIGNv
bnZlbnRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjM2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OmZpbmFs
aXplQXJndW1lbnRzSW1wbCk6CisgICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6Z3ByQXJnc0Nv
dW50KToKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpmcHJBcmdzQ291bnQpOgorICAgICAg
ICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzSW1wbCk6CisgICAgICAgIChKU0M6
OkNDYWxsSGVscGVyczo6c2V0dXBBcmd1bWVudHNFbnRyeUltcGwpOgorCiAyMDIyLTA0LTE5ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
ZGlzYWJsZSBVbmxpbmtlZERGRyBjb2RlIGluIHg2NApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmgKaW5kZXggYmRlNjI0MDIzNTE0ZGNlYjRlNWM3MTY1OTkyODgwZTc1Mjcy
NDBlNS4uODBlNTNmZGU5ZTRkMTY5ZjA1MTAyNTE4OTY1NDQ5YzYzYTE2NmE1YyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCkBAIC02NzcsMTQgKzY3Nyw1NyBAQCBw
cml2YXRlOgogI3VuZGVmIENVUlJFTlRfQVJHVU1FTlRfVFlQRQogI3VuZGVmIFJFU1VMVF9UWVBF
CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBncHJJbmRl
eD4KKyAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciB2b2lkIGZpbmFsaXplQXJndW1lbnRzSW1w
bChzdGQ6OmluZGV4X3NlcXVlbmNlPD4pCisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIE9wZXJhdGlvblR5cGUsIHVuc2lnbmVkIGdwckluZGV4LCBzaXplX3QgYXJpdHlJbmRl
eCwgc2l6ZV90Li4uIHJlbWFpbmluZ0FyaXR5SW5kaWNlcz4KKyAgICBBTFdBWVNfSU5MSU5FIGNv
bnN0ZXhwciB2b2lkIGZpbmFsaXplQXJndW1lbnRzSW1wbChzdGQ6OmluZGV4X3NlcXVlbmNlPGFy
aXR5SW5kZXgsIHJlbWFpbmluZ0FyaXR5SW5kaWNlcy4uLj4pCisgICAgeworICAgICAgICB1c2lu
ZyBOZXh0SW5kZXhTZXF1ZW5jZVR5cGUgPSBzdGQ6OmluZGV4X3NlcXVlbmNlPHJlbWFpbmluZ0Fy
aXR5SW5kaWNlcy4uLj47CisgICAgICAgIHVzaW5nIEFyZ3VtZW50VHlwZSA9IHR5cGVuYW1lIEZ1
bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+Ojp0ZW1wbGF0ZSBBcmd1bWVudFR5cGU8YXJpdHlJ
bmRleD47CisKKyAgICAgICAgaWYgKCFzdGQ6OmlzX3NhbWU8QXJndW1lbnRUeXBlLCBkb3VibGU+
Ojp2YWx1ZSkgeworICAgICAgICAgICAgaWYgKGlzUklTQ1Y2NCgpICYmIGdwckluZGV4IDwgR1BS
SW5mbzo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycworICAgICAgICAgICAgICAgICYmIHN0ZDo6
aXNfaW50ZWdyYWw8QXJndW1lbnRUeXBlPjo6dmFsdWUgJiYgc2l6ZW9mKEFyZ3VtZW50VHlwZSkg
PT0gNCkgeworICAgICAgICAgICAgICAgIEdQUlJlZyBhcmdSZWcgPSBHUFJJbmZvOjp0b0FyZ3Vt
ZW50UmVnaXN0ZXIoZ3BySW5kZXgpOworICAgICAgICAgICAgICAgIHNpZ25FeHRlbmQzMlRvUHRy
KGFyZ1JlZywgYXJnUmVnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbmFsaXplQXJn
dW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlLCBncHJJbmRleCArIDE+KE5leHRJbmRleFNlcXVlbmNl
VHlwZSgpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmaW5hbGl6ZUFyZ3VtZW50c0lt
cGw8T3BlcmF0aW9uVHlwZSwgZ3BySW5kZXg+KE5leHRJbmRleFNlcXVlbmNlVHlwZSgpKTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBcmdUeXBlPiB1c2luZyBHUFJBcmdDb3VudFZh
bHVlID0gc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfc2FtZV92PEFyZ1R5cGUsIGRvdWJsZT4s
CisgICAgICAgIHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8dW5zaWduZWQsIDA+LCBzdGQ6OmludGVn
cmFsX2NvbnN0YW50PHVuc2lnbmVkLCAxPj47CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQXJnVHlw
ZT4gdXNpbmcgRlBSQXJnQ291bnRWYWx1ZSA9IHN0ZDo6Y29uZGl0aW9uYWxfdDxzdGQ6OmlzX3Nh
bWVfdjxBcmdUeXBlLCBkb3VibGU+LAorICAgICAgICBzdGQ6OmludGVncmFsX2NvbnN0YW50PHVu
c2lnbmVkLCAxPiwgc3RkOjppbnRlZ3JhbF9jb25zdGFudDx1bnNpZ25lZCwgMD4+OworCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHJhaXRzVHlwZSwgc2l6ZV90Li4uIGFyZ0luZGlj
ZXM+CisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGdwckFyZ3ND
b3VudChzdGQ6OmluZGV4X3NlcXVlbmNlPGFyZ0luZGljZXMuLi4+KQorICAgIHsKKyAgICAgICAg
cmV0dXJuICgwICsgLi4uICsgKEdQUkFyZ0NvdW50VmFsdWU8dHlwZW5hbWUgT3BlcmF0aW9uVHJh
aXRzVHlwZTo6dGVtcGxhdGUgQXJndW1lbnRUeXBlPGFyZ0luZGljZXM+Pjo6dmFsdWUpKTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UcmFpdHNUeXBlLCBzaXplX3Qu
Li4gYXJnSW5kaWNlcz4KKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgZnByQXJnc0NvdW50KHN0ZDo6aW5kZXhfc2VxdWVuY2U8YXJnSW5kaWNlcy4uLj4pCisgICAg
eworICAgICAgICByZXR1cm4gKDAgKyAuLi4gKyAoRlBSQXJnQ291bnRWYWx1ZTx0eXBlbmFtZSBP
cGVyYXRpb25UcmFpdHNUeXBlOjp0ZW1wbGF0ZSBBcmd1bWVudFR5cGU8YXJnSW5kaWNlcz4+Ojp2
YWx1ZSkpOworICAgIH0KKwogICAgIC8vIEJhc2UgY2FzZTsgc2V0IHVwIHRoZSBhcmd1bWVudCBy
ZWdpc3RlcnMuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQg
bnVtR1BSQXJncywgdW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywg
dW5zaWduZWQgbnVtRlBSU291cmNlcywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25l
ZCBleHRyYUdQUkFyZ3MsIHVuc2lnbmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZT4K
ICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNJbXBsKEFyZ0NvbGxlY3Rpb248
bnVtR1BSQXJncywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBSU291cmNlcywgbnVt
Q3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIG5vbkFyZ0dQUnMsIGV4dHJhUG9rZT4gYXJnU291
cmNlUmVncykKICAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8T3Bl
cmF0aW9uVHlwZT46OmFyaXR5ID09IG51bUdQUkFyZ3MgKyBudW1GUFJBcmdzLCAiT25lIGxhc3Qg
c2FuaXR5IGNoZWNrIik7CisgICAgICAgIHVzaW5nIFRyYWl0c1R5cGUgPSBGdW5jdGlvblRyYWl0
czxPcGVyYXRpb25UeXBlPjsKKyAgICAgICAgc3RhdGljX2Fzc2VydChUcmFpdHNUeXBlOjphcml0
eSA9PSBudW1HUFJBcmdzICsgbnVtRlBSQXJncywgIk9uZSBsYXN0IHNhbml0eSBjaGVjayIpOwog
I2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8
T3BlcmF0aW9uVHlwZT46OmNDYWxsQXJpdHkoKSA9PSBudW1HUFJBcmdzICsgbnVtRlBSQXJncyAr
IGV4dHJhUG9rZSwgIkNoZWNrIHRoZSBDQ2FsbCBhcml0eSIpOworICAgICAgICBzdGF0aWNfYXNz
ZXJ0KFRyYWl0c1R5cGU6OmNDYWxsQXJpdHkoKSA9PSBudW1HUFJBcmdzICsgbnVtRlBSQXJncyAr
IGV4dHJhUG9rZSwgIkNoZWNrIHRoZSBDQ2FsbCBhcml0eSIpOwogI2VuZGlmCisgICAgICAgIHN0
YXRpY19hc3NlcnQoZ3ByQXJnc0NvdW50PFRyYWl0c1R5cGU+KHN0ZDo6bWFrZV9pbmRleF9zZXF1
ZW5jZTxUcmFpdHNUeXBlOjphcml0eT4oKSkgPT0gbnVtR1BSQXJncyk7CisgICAgICAgIHN0YXRp
Y19hc3NlcnQoZnByQXJnc0NvdW50PFRyYWl0c1R5cGU+KHN0ZDo6bWFrZV9pbmRleF9zZXF1ZW5j
ZTxUcmFpdHNUeXBlOjphcml0eT4oKSkgPT0gbnVtRlBSQXJncyk7CisKICAgICAgICAgc2V0dXBT
dHViQXJnczxudW1HUFJTb3VyY2VzLCBHUFJSZWc+KGNsYW1wQXJyYXlUb1NpemU8bnVtR1BSU291
cmNlcywgR1BSUmVnPihhcmdTb3VyY2VSZWdzLmdwckRlc3RpbmF0aW9ucyksIGNsYW1wQXJyYXlU
b1NpemU8bnVtR1BSU291cmNlcywgR1BSUmVnPihhcmdTb3VyY2VSZWdzLmdwclNvdXJjZXMpKTsK
ICNpZiBDUFUoTUlQUykgfHwgKENQVShBUk1fVEhVTUIyKSAmJiAhQ1BVKEFSTV9IQVJERlApKQog
ICAgICAgICBzZXR1cFN0dWJDcm9zc0FyZ3M8bnVtQ3Jvc3NTb3VyY2VzPihhcmdTb3VyY2VSZWdz
LmNyb3NzRGVzdGluYXRpb25zLCBhcmdTb3VyY2VSZWdzLmNyb3NzU291cmNlcyk7CkBAIC03MTEs
NiArNzU0LDggQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICAgICAgc2V0dXBBcmd1bWVudHNJ
bXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIGFyZ3MuLi4pOwogICAgICAgICB9CisK
KyAgICAgICAgZmluYWxpemVBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGUsIDA+KHN0ZDo6bWFr
ZV9pbmRleF9zZXF1ZW5jZTxGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6YXJpdHk+KCkp
OwogICAgIH0KIAogcHVibGljOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457967</attachid>
            <date>2022-04-20 01:19:57 -0700</date>
            <delta_ts>2022-04-20 03:50:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236367-20220420101956.patch</filename>
            <type>text/plain</type>
            <size>7590</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjllZjBlNjY3NjBkMTk5YWFiYmViMTNkYzg2NDBhOGI4NzNkODEzLi5iZTg3ZWQ0MmYwZDZkYmJj
MmI5MjZiNzY4NDgyMzdmNzgxNTUwODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMi0wNC0xOSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0pTQ10gQWNjb21tb2RhdGUgdGhlIFJJU0NWNjQgQyBjYWxsaW5nIGNv
bnZlbnRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjM2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODkwMjYwMTI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIDY0LWJpdCBSSVNDLVYgKFJW
NjQpIGNhbGxpbmcgY29udmVudGlvbiByZXF1aXJlcyAzMi1iaXQgYXJndW1lbnRzCisgICAgICAg
IHRvIGJlIHNpZ24tZXh0ZW5kZWQgdG8gZmlsbCBvdXQgdGhlIHdob2xlIDY0LWJpdCByZWdpc3Rl
ciwgZml0dGluZworICAgICAgICBuaWNlbHkgd2l0aCBkaWZmZXJlbnQgaW5zdHJ1Y3Rpb25zIGlu
IHRoaXMgSVNBIHRoYXQgb3BlcmF0ZSBvbiAzMi1iaXQKKyAgICAgICAgdmFsdWVzLCBhbmQgZGlm
ZmVycmluZyBmcm9tIG90aGVyIDY0LWJpdCBJU0FzIHRoYXQgcHJvdmlkZSBwYXJ0aWFsLXNpemVk
CisgICAgICAgIHJlZ2lzdGVycyAod2hpY2ggYXJlIGFsaWFzZWQgdG8gdGhlIHdob2xlIHJlZ2lz
dGVyKS4KKworICAgICAgICBKU0MgSklUIGlzIHRhaWxvcmVkIHRvIHRoZSBvdGhlciBJU0FzLCBv
ZnRlbiB0YWtpbmcgc2hvcnRjdXRzIHRvIHBhY2sKKyAgICAgICAgbm9uLXNpZ24tZXh0ZW5kZWQg
dmFsdWVzIGludG8gcmVnaXN0ZXJzIHRoYXQgYXJlIHRoZW4gYWNjZXNzZWQgZm9yIHRob3NlCisg
ICAgICAgIDMyLWJpdCB2YWx1ZXMgdGhyb3VnaCB0aGUgcGFydGlhbC1zaXplZCBhbGlhc2VzLiBU
aGlzIGNhbiB0cmlwIHVwIFJJU0MtVgorICAgICAgICBleGVjdXRpb24gd2hlbiBjb25zdHJ1Y3Rp
bmcgY2FsbHMgdGhhdCBwYXNzIDMyLWJpdCB2YWx1ZXMgdG8gbmF0aXZlIGNvZGUKKyAgICAgICAg
dXNpbmcgdGhlIEMgY2FsbGluZyBjb252ZW50aW9uLgorCisgICAgICAgIFRvIGF2b2lkIHRoaXMs
IGFyZ3VtZW50cyBzZXR1cCBkb25lIHRocm91Z2ggdGhlIENDYWxsSGVscGVycyBjbGFzcyBpcwor
ICAgICAgICBlbmhhbmNlZCB0bywgYWZ0ZXIgcGFja2luZyB1cCBhcmd1bWVudHMgZWl0aGVyIGlu
dG8gYXJndW1lbnQgcmVnaXN0ZXJzCisgICAgICAgIG9yIG9udG8gdGhlIHN0YWNrLCBhbm90aGVy
IHBhc3Mgb2YgdGhlIGFyZ3VtZW50IHR5cGVzIGZvciB0aGUgZGVzaXJlZAorICAgICAgICBvcGVy
YXRpb24gaXMgZG9uZSwgZGV0ZWN0aW5nIHdoZXRoZXIgdGhlIGFyZ3VtZW50IHdhcyBzdXBwb3Nl
ZCB0byBiZQorICAgICAgICBwYWNrZWQgaW50byBhbiBHUFIgb3IgYW4gRlBSIGRlc3RpbmF0aW9u
LiBPbiBSVjY0LCB3aGVuIHBhY2tlZCBpbnRvIGEKKyAgICAgICAgR1BSIGFyZ3VtZW50IHJlZ2lz
dGVyIHRoYXQgbWF0Y2hlcyBhIDMyLWJpdCBhcmd1bWVudCBpbiB0aGUgb3BlcmF0aW9uLAorICAg
ICAgICB0aGUgYWRkaXRpb25hbCBzaWduIGV4dGVuc2lvbiBpcyBwZXJmb3JtZWQgb24gdGhhdCBh
cmd1bWVudCByZWdpc3Rlci4KKworICAgICAgICBHUFIgYW5kIEZQUiBkaXN0aW5jdGlvbiBmb3Ig
YSBnaXZlbiBhcmd1bWVudCdzIHJlZ2lzdGVyIHR5cGUgaXMgYmFzZWQKKyAgICAgICAgb24gd2hl
dGhlciBvciBub3QgdGhlIGRvdWJsZSB0eXBlIGlzIHVzZWQgYXMgdGhlIGFyZ3VtZW50J3MgdHlw
ZS4gQWxsCisgICAgICAgIG5vbi1kb3VibGUtdHlwZWQgYXJndW1lbnRzIGFyZSBwYXNzZWQgYXMg
R1BScy4gQWRkaXRpb25hbCBjb21waWxlLXRpbWUKKyAgICAgICAgdmFsaWRhdGlvbiBpcyBwcm92
aWRlZCB0byBlbnN1cmUgdGhhdCdzIHRoZSBjYXNlIGZvciBldmVyeSBvcGVyYXRpb24KKyAgICAg
ICAgdGhhdCdzIGhhdmluZyBpdHMgYXJndW1lbnRzIHNldCB1cC4gVGhpcyBpcyByZWxpZWQgdXBv
biB3aGVuIHRyYXZlcnNpbmcKKyAgICAgICAgdGhlIG9wZXJhdGlvbidzIGFyZ3VtZW50cyBhbmQg
aW5kZXhpbmcgZXZlcnkgR1BSIGFyZ3VtZW50IGFsb25nIHRoZSB3YXkuCisKKyAgICAgICAgVGhp
cyBhcHByb2FjaCBvbmx5IGFjY29tbW9kYXRlcyB0aGUgUlY2NCBjYWxsaW5nIGNvbnZlbnRpb24g
Zm9yIHRoZQorICAgICAgICBCYXNlbGluZSBKSVQgbGV2ZWwuIEZvciBoaWdoZXIgbGV2ZWxzLCBz
aW1pbGFyIGJ1dCBwcm9iYWJseSBkaWZmZXJlbnQKKyAgICAgICAgc29sdXRpb25zIHdpbGwgaGF2
ZSB0byBiZSBjcmFmdGVkLgorCisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAg
ICAoSlNDOjpDQ2FsbEhlbHBlcnM6OmZpbmFsaXplR1BSQXJndW1lbnRzKToKKyAgICAgICAgKEpT
Qzo6Q0NhbGxIZWxwZXJzOjpncHJBcmdzQ291bnQpOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBl
cnM6OmZwckFyZ3NDb3VudCk6CisgICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6c2V0dXBBcmd1
bWVudHNJbXBsKToKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50c0Vu
dHJ5SW1wbCk6CisKIDIwMjItMDQtMTkgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5j
b20+CiAKICAgICAgICAgVmFyaW91cyBXZWJLaXQgdG9vbHMgbmVlZCB0byBiZSB0b2xkIGFib3V0
IHRoZSBzeXN0ZW0gY29udGVudCBwYXRoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhl
bHBlcnMuaAppbmRleCBiZGU2MjQwMjM1MTRkY2ViNGU1YzcxNjU5OTI4ODBlNzUyNzI0MGU1Li41
OGE3ZDI2MTlkN2U5MTdhYmFkMjdhMjEyZmI0ODM5YjBiNTMwZjRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTY3NywxNCArNjc3LDYxIEBAIHByaXZhdGU6
CiAjdW5kZWYgQ1VSUkVOVF9BUkdVTUVOVF9UWVBFCiAjdW5kZWYgUkVTVUxUX1RZUEUKIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHVuc2lnbmVkIGdwckluZGV4PgorICAg
IEFMV0FZU19JTkxJTkUgY29uc3RleHByIHZvaWQgZmluYWxpemVHUFJBcmd1bWVudHMoc3RkOjpp
bmRleF9zZXF1ZW5jZTw+KQorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBP
cGVyYXRpb25UeXBlLCB1bnNpZ25lZCBncHJJbmRleCwgc2l6ZV90IGFyaXR5SW5kZXgsIHNpemVf
dC4uLiByZW1haW5pbmdBcml0eUluZGljZXM+CisgICAgQUxXQVlTX0lOTElORSBjb25zdGV4cHIg
dm9pZCBmaW5hbGl6ZUdQUkFyZ3VtZW50cyhzdGQ6OmluZGV4X3NlcXVlbmNlPGFyaXR5SW5kZXgs
IHJlbWFpbmluZ0FyaXR5SW5kaWNlcy4uLj4pCisgICAgeworICAgICAgICB1c2luZyBOZXh0SW5k
ZXhTZXF1ZW5jZVR5cGUgPSBzdGQ6OmluZGV4X3NlcXVlbmNlPHJlbWFpbmluZ0FyaXR5SW5kaWNl
cy4uLj47CisgICAgICAgIHVzaW5nIEFyZ3VtZW50VHlwZSA9IHR5cGVuYW1lIEZ1bmN0aW9uVHJh
aXRzPE9wZXJhdGlvblR5cGU+Ojp0ZW1wbGF0ZSBBcmd1bWVudFR5cGU8YXJpdHlJbmRleD47CisK
KyAgICAgICAgaWYgKCFzdGQ6OmlzX3NhbWU8QXJndW1lbnRUeXBlLCBkb3VibGU+Ojp2YWx1ZSkg
eworICAgICAgICAgICAgLy8gUlY2NCBjYWxsaW5nIGNvbnZlbnRpb24gcmVxdWlyZXMgYWxsIDMy
LWJpdCB2YWx1ZXMgdG8gYmUgc2lnbi1leHRlbmRlZCBpbnRvIHRoZSB3aG9sZSByZWdpc3Rlci4K
KyAgICAgICAgICAgIC8vIEpTQyBKSVQgaXMgdGFpbG9yZWQgZm9yIG90aGVyIElTQXMgdGhhdCBw
YXNzIHRoZXNlIHZhbHVlcyBpbiAzMi1iaXQtd2lkZSByZWdpc3RlcnMsIHdoaWNoIFJJU0MtVgor
ICAgICAgICAgICAgLy8gZG9lc24ndCBzdXBwb3J0LCBzbyBhbnkgMzItYml0IHZhbHVlIHBhc3Nl
ZCBpbiBhcmd1bWVudCByZWdpc3RlcnMgaGFzIHRvIGJlIG1hbnVhbGx5IHNpZ24tZXh0ZW5kZWQu
CisgICAgICAgICAgICBpZiAoaXNSSVNDVjY0KCkgJiYgZ3BySW5kZXggPCBHUFJJbmZvOjpudW1i
ZXJPZkFyZ3VtZW50UmVnaXN0ZXJzCisgICAgICAgICAgICAgICAgJiYgc3RkOjppc19pbnRlZ3Jh
bDxBcmd1bWVudFR5cGU+Ojp2YWx1ZSAmJiBzaXplb2YoQXJndW1lbnRUeXBlKSA9PSA0KSB7Cisg
ICAgICAgICAgICAgICAgR1BSUmVnIGFyZ1JlZyA9IEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3Rl
cihncHJJbmRleCk7CisgICAgICAgICAgICAgICAgc2lnbkV4dGVuZDMyVG9QdHIoYXJnUmVnLCBh
cmdSZWcpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmaW5hbGl6ZUdQUkFyZ3VtZW50
czxPcGVyYXRpb25UeXBlLCBncHJJbmRleCArIDE+KE5leHRJbmRleFNlcXVlbmNlVHlwZSgpKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmaW5hbGl6ZUdQUkFyZ3VtZW50czxPcGVyYXRp
b25UeXBlLCBncHJJbmRleD4oTmV4dEluZGV4U2VxdWVuY2VUeXBlKCkpOworICAgIH0KKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEFyZ1R5cGU+IHVzaW5nIEdQUkFyZ0NvdW50VmFsdWUgPSBzdGQ6
OmNvbmRpdGlvbmFsX3Q8c3RkOjppc19zYW1lX3Y8QXJnVHlwZSwgZG91YmxlPiwKKyAgICAgICAg
c3RkOjppbnRlZ3JhbF9jb25zdGFudDx1bnNpZ25lZCwgMD4sIHN0ZDo6aW50ZWdyYWxfY29uc3Rh
bnQ8dW5zaWduZWQsIDE+PjsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBcmdUeXBlPiB1c2luZyBG
UFJBcmdDb3VudFZhbHVlID0gc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfc2FtZV92PEFyZ1R5
cGUsIGRvdWJsZT4sCisgICAgICAgIHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8dW5zaWduZWQsIDE+
LCBzdGQ6OmludGVncmFsX2NvbnN0YW50PHVuc2lnbmVkLCAwPj47CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBPcGVyYXRpb25UcmFpdHNUeXBlLCBzaXplX3QuLi4gYXJnSW5kaWNlcz4KKyAgICBB
TFdBWVNfSU5MSU5FIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZ3ByQXJnc0NvdW50KHN0ZDo6
aW5kZXhfc2VxdWVuY2U8YXJnSW5kaWNlcy4uLj4pCisgICAgeworICAgICAgICByZXR1cm4gKDAg
KyAuLi4gKyAoR1BSQXJnQ291bnRWYWx1ZTx0eXBlbmFtZSBPcGVyYXRpb25UcmFpdHNUeXBlOjp0
ZW1wbGF0ZSBBcmd1bWVudFR5cGU8YXJnSW5kaWNlcz4+Ojp2YWx1ZSkpOworICAgIH0KKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblRyYWl0c1R5cGUsIHNpemVfdC4uLiBhcmdJbmRp
Y2VzPgorICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBmcHJBcmdz
Q291bnQoc3RkOjppbmRleF9zZXF1ZW5jZTxhcmdJbmRpY2VzLi4uPikKKyAgICB7CisgICAgICAg
IHJldHVybiAoMCArIC4uLiArIChGUFJBcmdDb3VudFZhbHVlPHR5cGVuYW1lIE9wZXJhdGlvblRy
YWl0c1R5cGU6OnRlbXBsYXRlIEFyZ3VtZW50VHlwZTxhcmdJbmRpY2VzPj46OnZhbHVlKSk7Cisg
ICAgfQorCiAgICAgLy8gQmFzZSBjYXNlOyBzZXQgdXAgdGhlIGFyZ3VtZW50IHJlZ2lzdGVycy4K
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBudW1HUFJBcmdz
LCB1bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBu
dW1GUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1NvdXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BS
QXJncywgdW5zaWduZWQgbm9uQXJnR1BScywgdW5zaWduZWQgZXh0cmFQb2tlPgogICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c0ltcGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdz
LCBudW1HUFJTb3VyY2VzLCBudW1GUFJBcmdzLCBudW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJj
ZXMsIGV4dHJhR1BSQXJncywgbm9uQXJnR1BScywgZXh0cmFQb2tlPiBhcmdTb3VyY2VSZWdzKQog
ICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBl
Pjo6YXJpdHkgPT0gbnVtR1BSQXJncyArIG51bUZQUkFyZ3MsICJPbmUgbGFzdCBzYW5pdHkgY2hl
Y2siKTsKKyAgICAgICAgdXNpbmcgVHJhaXRzVHlwZSA9IEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlv
blR5cGU+OworICAgICAgICBzdGF0aWNfYXNzZXJ0KFRyYWl0c1R5cGU6OmFyaXR5ID09IG51bUdQ
UkFyZ3MgKyBudW1GUFJBcmdzLCAiT25lIGxhc3Qgc2FuaXR5IGNoZWNrIik7CiAjaWYgVVNFKEpT
VkFMVUU2NCkKLSAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxPcGVyYXRpb25U
eXBlPjo6Y0NhbGxBcml0eSgpID09IG51bUdQUkFyZ3MgKyBudW1GUFJBcmdzICsgZXh0cmFQb2tl
LCAiQ2hlY2sgdGhlIENDYWxsIGFyaXR5Iik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoVHJhaXRz
VHlwZTo6Y0NhbGxBcml0eSgpID09IG51bUdQUkFyZ3MgKyBudW1GUFJBcmdzICsgZXh0cmFQb2tl
LCAiQ2hlY2sgdGhlIENDYWxsIGFyaXR5Iik7CiAjZW5kaWYKKyAgICAgICAgc3RhdGljX2Fzc2Vy
dChncHJBcmdzQ291bnQ8VHJhaXRzVHlwZT4oc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPFRyYWl0
c1R5cGU6OmFyaXR5PigpKSA9PSBudW1HUFJBcmdzKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChm
cHJBcmdzQ291bnQ8VHJhaXRzVHlwZT4oc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPFRyYWl0c1R5
cGU6OmFyaXR5PigpKSA9PSBudW1GUFJBcmdzKTsKKwogICAgICAgICBzZXR1cFN0dWJBcmdzPG51
bUdQUlNvdXJjZXMsIEdQUlJlZz4oY2xhbXBBcnJheVRvU2l6ZTxudW1HUFJTb3VyY2VzLCBHUFJS
ZWc+KGFyZ1NvdXJjZVJlZ3MuZ3ByRGVzdGluYXRpb25zKSwgY2xhbXBBcnJheVRvU2l6ZTxudW1H
UFJTb3VyY2VzLCBHUFJSZWc+KGFyZ1NvdXJjZVJlZ3MuZ3ByU291cmNlcykpOwogI2lmIENQVShN
SVBTKSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmICFDUFUoQVJNX0hBUkRGUCkpCiAgICAgICAgIHNl
dHVwU3R1YkNyb3NzQXJnczxudW1Dcm9zc1NvdXJjZXM+KGFyZ1NvdXJjZVJlZ3MuY3Jvc3NEZXN0
aW5hdGlvbnMsIGFyZ1NvdXJjZVJlZ3MuY3Jvc3NTb3VyY2VzKTsKQEAgLTcxMSw2ICs3NTgsOCBA
QCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAgICAgICBzZXR1cEFyZ3VtZW50c0ltcGw8T3BlcmF0
aW9uVHlwZT4oYXJnU291cmNlUmVncywgYXJncy4uLik7CiAgICAgICAgIH0KKworICAgICAgICBm
aW5hbGl6ZUdQUkFyZ3VtZW50czxPcGVyYXRpb25UeXBlLCAwPihzdGQ6Om1ha2VfaW5kZXhfc2Vx
dWVuY2U8RnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OmFyaXR5PigpKTsKICAgICB9CiAK
IHB1YmxpYzoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457973</attachid>
            <date>2022-04-20 03:50:59 -0700</date>
            <delta_ts>2022-04-20 03:50:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236367-20220420125057.patch</filename>
            <type>text/plain</type>
            <size>7951</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjllZjBlNjY3NjBkMTk5YWFiYmViMTNkYzg2NDBhOGI4NzNkODEzLi45YzA1NjRhNWM0YzlmMzJj
YTQ5NjFjNGQyNGQ3MmJhOTgwMjYwYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAyMi0wNC0yMCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0pTQ10gQWNjb21tb2RhdGUgdGhlIFJJU0NWNjQgQyBjYWxsaW5nIGNv
bnZlbnRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjM2NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODkwMjYwMTI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICBUaGUgNjQtYml0IFJJU0MtViAoUlY2
NCkgY2FsbGluZyBjb252ZW50aW9uIHJlcXVpcmVzIDMyLWJpdCBhcmd1bWVudHMKKyAgICAgICAg
dG8gYmUgc2lnbi1leHRlbmRlZCB0byBmaWxsIG91dCB0aGUgd2hvbGUgNjQtYml0IHJlZ2lzdGVy
LCBmaXR0aW5nCisgICAgICAgIG5pY2VseSB3aXRoIGRpZmZlcmVudCBpbnN0cnVjdGlvbnMgaW4g
dGhpcyBJU0EgdGhhdCBvcGVyYXRlIG9uIDMyLWJpdAorICAgICAgICB2YWx1ZXMsIGFuZCBkaWZm
ZXJyaW5nIGZyb20gb3RoZXIgNjQtYml0IElTQXMgdGhhdCBwcm92aWRlIHBhcnRpYWwtc2l6ZWQK
KyAgICAgICAgcmVnaXN0ZXJzICh3aGljaCBhcmUgYWxpYXNlZCB0byB0aGUgd2hvbGUgcmVnaXN0
ZXIpLgorCisgICAgICAgIEpTQyBKSVQgaXMgdGFpbG9yZWQgdG8gdGhlIG90aGVyIElTQXMsIG9m
dGVuIHRha2luZyBzaG9ydGN1dHMgdG8gcGFjaworICAgICAgICBub24tc2lnbi1leHRlbmRlZCB2
YWx1ZXMgaW50byByZWdpc3RlcnMgdGhhdCBhcmUgdGhlbiBhY2Nlc3NlZCBmb3IgdGhvc2UKKyAg
ICAgICAgMzItYml0IHZhbHVlcyB0aHJvdWdoIHRoZSBwYXJ0aWFsLXNpemVkIGFsaWFzZXMuIFRo
aXMgY2FuIHRyaXAgdXAgUklTQy1WCisgICAgICAgIGV4ZWN1dGlvbiB3aGVuIGNvbnN0cnVjdGlu
ZyBjYWxscyB0aGF0IHBhc3MgMzItYml0IHZhbHVlcyB0byBuYXRpdmUgY29kZQorICAgICAgICB1
c2luZyB0aGUgQyBjYWxsaW5nIGNvbnZlbnRpb24uCisKKyAgICAgICAgVG8gYXZvaWQgdGhpcywg
YXJndW1lbnRzIHNldHVwIGRvbmUgdGhyb3VnaCB0aGUgQ0NhbGxIZWxwZXJzIGNsYXNzIGlzCisg
ICAgICAgIGVuaGFuY2VkIHRvLCBhZnRlciBwYWNraW5nIHVwIGFyZ3VtZW50cyBlaXRoZXIgaW50
byBhcmd1bWVudCByZWdpc3RlcnMKKyAgICAgICAgb3Igb250byB0aGUgc3RhY2ssIGFub3RoZXIg
cGFzcyBvZiB0aGUgYXJndW1lbnQgdHlwZXMgZm9yIHRoZSBkZXNpcmVkCisgICAgICAgIG9wZXJh
dGlvbiBpcyBkb25lLCBkZXRlY3Rpbmcgd2hldGhlciB0aGUgYXJndW1lbnQgd2FzIHN1cHBvc2Vk
IHRvIGJlCisgICAgICAgIHBhY2tlZCBpbnRvIGFuIEdQUiBvciBhbiBGUFIgZGVzdGluYXRpb24u
IE9uIFJWNjQsIHdoZW4gcGFja2VkIGludG8gYQorICAgICAgICBHUFIgYXJndW1lbnQgcmVnaXN0
ZXIgdGhhdCBtYXRjaGVzIGEgMzItYml0IGFyZ3VtZW50IGluIHRoZSBvcGVyYXRpb24sCisgICAg
ICAgIHRoZSBhZGRpdGlvbmFsIHNpZ24gZXh0ZW5zaW9uIGlzIHBlcmZvcm1lZCBvbiB0aGF0IGFy
Z3VtZW50IHJlZ2lzdGVyLgorCisgICAgICAgIEdQUiBhbmQgRlBSIGRpc3RpbmN0aW9uIGZvciBh
IGdpdmVuIGFyZ3VtZW50J3MgcmVnaXN0ZXIgdHlwZSBpcyBiYXNlZAorICAgICAgICBvbiB3aGV0
aGVyIG9yIG5vdCB0aGUgZG91YmxlIHR5cGUgaXMgdXNlZCBhcyB0aGUgYXJndW1lbnQncyB0eXBl
LiBBbGwKKyAgICAgICAgbm9uLWRvdWJsZS10eXBlZCBhcmd1bWVudHMgYXJlIHBhc3NlZCBhcyBH
UFJzLiBBZGRpdGlvbmFsIGNvbXBpbGUtdGltZQorICAgICAgICB2YWxpZGF0aW9uIGlzIHByb3Zp
ZGVkIHRvIGVuc3VyZSB0aGF0J3MgdGhlIGNhc2UgZm9yIGV2ZXJ5IG9wZXJhdGlvbgorICAgICAg
ICB0aGF0J3MgaGF2aW5nIGl0cyBhcmd1bWVudHMgc2V0IHVwLiBUaGlzIGlzIHJlbGllZCB1cG9u
IHdoZW4gdHJhdmVyc2luZworICAgICAgICB0aGUgb3BlcmF0aW9uJ3MgYXJndW1lbnRzIGFuZCBp
bmRleGluZyBldmVyeSBHUFIgYXJndW1lbnQgYWxvbmcgdGhlIHdheS4KKworICAgICAgICBUaGlz
IGFwcHJvYWNoIG9ubHkgYWNjb21tb2RhdGVzIHRoZSBSVjY0IGNhbGxpbmcgY29udmVudGlvbiBm
b3IgdGhlCisgICAgICAgIEJhc2VsaW5lIEpJVCBsZXZlbC4gRm9yIGhpZ2hlciBsZXZlbHMsIHNp
bWlsYXIgYnV0IHByb2JhYmx5IGRpZmZlcmVudAorICAgICAgICBzb2x1dGlvbnMgd2lsbCBoYXZl
IHRvIGJlIGNyYWZ0ZWQuCisKKyAgICAgICAgKiBqaXQvQ0NhbGxIZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkNDYWxsSGVscGVyczo6ZmluYWxpemVHUFJBcmd1bWVudHMpOgorICAgICAgICAoSlND
OjpDQ2FsbEhlbHBlcnM6OmdwckFyZ3NDb3VudCk6CisgICAgICAgIChKU0M6OkNDYWxsSGVscGVy
czo6ZnByQXJnc0NvdW50KToKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3Vt
ZW50c0ltcGwpOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzRW50
cnlJbXBsKToKKwogMjAyMi0wNC0xOSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNv
bT4KIAogICAgICAgICBWYXJpb3VzIFdlYktpdCB0b29scyBuZWVkIHRvIGJlIHRvbGQgYWJvdXQg
dGhlIHN5c3RlbSBjb250ZW50IHBhdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVs
cGVycy5oCmluZGV4IGJkZTYyNDAyMzUxNGRjZWI0ZTVjNzE2NTk5Mjg4MGU3NTI3MjQwZTUuLjU5
ODdlYjIxNGFkMjFlZmNmNDY0OGQ3MzEwMGViOTE4ODJlZTM3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtNjc3LDE0ICs2NzcsNjUgQEAgcHJpdmF0ZToK
ICN1bmRlZiBDVVJSRU5UX0FSR1VNRU5UX1RZUEUKICN1bmRlZiBSRVNVTFRfVFlQRQogCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgZ3BySW5kZXg+CisgICAg
Y29uc3RleHByIHZvaWQgZmluYWxpemVHUFJBcmd1bWVudHMoc3RkOjppbmRleF9zZXF1ZW5jZTw+
KQorICAgIHsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1
bnNpZ25lZCBncHJJbmRleCwgc2l6ZV90IGFyaXR5SW5kZXgsIHNpemVfdC4uLiByZW1haW5pbmdB
cml0eUluZGljZXM+CisgICAgY29uc3RleHByIHZvaWQgZmluYWxpemVHUFJBcmd1bWVudHMoc3Rk
OjppbmRleF9zZXF1ZW5jZTxhcml0eUluZGV4LCByZW1haW5pbmdBcml0eUluZGljZXMuLi4+KQor
ICAgIHsKKyAgICAgICAgdXNpbmcgTmV4dEluZGV4U2VxdWVuY2VUeXBlID0gc3RkOjppbmRleF9z
ZXF1ZW5jZTxyZW1haW5pbmdBcml0eUluZGljZXMuLi4+OworICAgICAgICB1c2luZyBBcmd1bWVu
dFR5cGUgPSB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6dGVtcGxhdGUg
QXJndW1lbnRUeXBlPGFyaXR5SW5kZXg+OworCisgICAgICAgIC8vIEV2ZXJ5IG5vbi1kb3VibGUt
dHlwZWQgYXJndW1lbnQgc2hvdWxkIGJlIHBhc3NlZCBpbiB0aHJvdWdoIEdQUlJlZ3MsIGFuZCBp
bnZlcnNlbHkgb25seSBkb3VibGUtdHlwZWQKKyAgICAgICAgLy8gYXJndW1lbnRzIHNob3VsZCBi
ZSBwYXNzZWQgdGhyb3VnaCBGUFJSZWdzLiBUaGlzIGlzIGFzc2VydGVkIGluIHRoZSBpbnZvY2F0
aW9uIG9mIHRoZSBsYXN0bHktY2FsbGVkCisgICAgICAgIC8vIHNldHVwQXJndW1lbnRzSW1wbChB
cmdDb2xsZWN0aW9uPD4pIG92ZXJsb2FkLCBieSBtYXRjaGluZyB0aGUgbnVtYmVyIG9mIGhhbmRs
ZWQgR1BSIGFuZCBGUFIgYXJndW1lbnRzCisgICAgICAgIC8vIHdpdGggdGhlIGNvcnJlc3BvbmRp
bmcgY291bnQgb2YgcHJvcGVybHktdHlwZWQgYXJndW1lbnRzIGZvciB0aGlzIG9wZXJhdGlvbi4K
KyAgICAgICAgaWYgKCFzdGQ6OmlzX3NhbWVfdjxBcmd1bWVudFR5cGUsIGRvdWJsZT4pIHsKKyAg
ICAgICAgICAgIC8vIFJWNjQgY2FsbGluZyBjb252ZW50aW9uIHJlcXVpcmVzIGFsbCAzMi1iaXQg
dmFsdWVzIHRvIGJlIHNpZ24tZXh0ZW5kZWQgaW50byB0aGUgd2hvbGUgcmVnaXN0ZXIuCisgICAg
ICAgICAgICAvLyBKU0MgSklUIGlzIHRhaWxvcmVkIGZvciBvdGhlciBJU0FzIHRoYXQgcGFzcyB0
aGVzZSB2YWx1ZXMgaW4gMzItYml0LXdpZGUgcmVnaXN0ZXJzLCB3aGljaCBSSVNDLVYKKyAgICAg
ICAgICAgIC8vIGRvZXNuJ3Qgc3VwcG9ydCwgc28gYW55IDMyLWJpdCB2YWx1ZSBwYXNzZWQgaW4g
YXJndW1lbnQgcmVnaXN0ZXJzIGhhcyB0byBiZSBtYW51YWxseSBzaWduLWV4dGVuZGVkLgorICAg
ICAgICAgICAgaWYgKGlzUklTQ1Y2NCgpICYmIGdwckluZGV4IDwgR1BSSW5mbzo6bnVtYmVyT2ZB
cmd1bWVudFJlZ2lzdGVycworICAgICAgICAgICAgICAgICYmIHN0ZDo6aXNfaW50ZWdyYWxfdjxB
cmd1bWVudFR5cGU+ICYmIHNpemVvZihBcmd1bWVudFR5cGUpID09IDQpIHsKKyAgICAgICAgICAg
ICAgICBHUFJSZWcgYXJnUmVnID0gR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKGdwckluZGV4
KTsKKyAgICAgICAgICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihhcmdSZWcsIGFyZ1JlZyk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZpbmFsaXplR1BSQXJndW1lbnRzPE9wZXJhdGlv
blR5cGUsIGdwckluZGV4ICsgMT4oTmV4dEluZGV4U2VxdWVuY2VUeXBlKCkpOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGZpbmFsaXplR1BSQXJndW1lbnRzPE9wZXJhdGlvblR5cGUsIGdw
ckluZGV4PihOZXh0SW5kZXhTZXF1ZW5jZVR5cGUoKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQXJnVHlwZT4gdXNpbmcgR1BSQXJnQ291bnRWYWx1ZSA9IHN0ZDo6Y29uZGl0aW9u
YWxfdDxzdGQ6OmlzX3NhbWVfdjxBcmdUeXBlLCBkb3VibGU+LAorICAgICAgICBzdGQ6OmludGVn
cmFsX2NvbnN0YW50PHVuc2lnbmVkLCAwPiwgc3RkOjppbnRlZ3JhbF9jb25zdGFudDx1bnNpZ25l
ZCwgMT4+OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEFyZ1R5cGU+IHVzaW5nIEZQUkFyZ0NvdW50
VmFsdWUgPSBzdGQ6OmNvbmRpdGlvbmFsX3Q8c3RkOjppc19zYW1lX3Y8QXJnVHlwZSwgZG91Ymxl
PiwKKyAgICAgICAgc3RkOjppbnRlZ3JhbF9jb25zdGFudDx1bnNpZ25lZCwgMT4sIHN0ZDo6aW50
ZWdyYWxfY29uc3RhbnQ8dW5zaWduZWQsIDA+PjsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9w
ZXJhdGlvblRyYWl0c1R5cGUsIHNpemVfdC4uLiBhcmdJbmRpY2VzPgorICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgZ3ByQXJnc0NvdW50KHN0ZDo6aW5kZXhfc2VxdWVuY2U8YXJnSW5kaWNl
cy4uLj4pCisgICAgeworICAgICAgICByZXR1cm4gKDAgKyAuLi4gKyAoR1BSQXJnQ291bnRWYWx1
ZTx0eXBlbmFtZSBPcGVyYXRpb25UcmFpdHNUeXBlOjp0ZW1wbGF0ZSBBcmd1bWVudFR5cGU8YXJn
SW5kaWNlcz4+Ojp2YWx1ZSkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJh
dGlvblRyYWl0c1R5cGUsIHNpemVfdC4uLiBhcmdJbmRpY2VzPgorICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgZnByQXJnc0NvdW50KHN0ZDo6aW5kZXhfc2VxdWVuY2U8YXJnSW5kaWNlcy4u
Lj4pCisgICAgeworICAgICAgICByZXR1cm4gKDAgKyAuLi4gKyAoRlBSQXJnQ291bnRWYWx1ZTx0
eXBlbmFtZSBPcGVyYXRpb25UcmFpdHNUeXBlOjp0ZW1wbGF0ZSBBcmd1bWVudFR5cGU8YXJnSW5k
aWNlcz4+Ojp2YWx1ZSkpOworICAgIH0KKwogICAgIC8vIEJhc2UgY2FzZTsgc2V0IHVwIHRoZSBh
cmd1bWVudCByZWdpc3RlcnMuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwg
dW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVt
RlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNlcywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2Vz
LCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2lnbmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4
dHJhUG9rZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNJbXBsKEFyZ0Nv
bGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBSU291
cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIG5vbkFyZ0dQUnMsIGV4dHJhUG9r
ZT4gYXJnU291cmNlUmVncykKICAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25U
cmFpdHM8T3BlcmF0aW9uVHlwZT46OmFyaXR5ID09IG51bUdQUkFyZ3MgKyBudW1GUFJBcmdzLCAi
T25lIGxhc3Qgc2FuaXR5IGNoZWNrIik7CisgICAgICAgIHVzaW5nIFRyYWl0c1R5cGUgPSBGdW5j
dGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjsKKyAgICAgICAgc3RhdGljX2Fzc2VydChUcmFpdHNU
eXBlOjphcml0eSA9PSBudW1HUFJBcmdzICsgbnVtRlBSQXJncywgIk9uZSBsYXN0IHNhbml0eSBj
aGVjayIpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rp
b25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OmNDYWxsQXJpdHkoKSA9PSBudW1HUFJBcmdzICsgbnVt
RlBSQXJncyArIGV4dHJhUG9rZSwgIkNoZWNrIHRoZSBDQ2FsbCBhcml0eSIpOworICAgICAgICBz
dGF0aWNfYXNzZXJ0KFRyYWl0c1R5cGU6OmNDYWxsQXJpdHkoKSA9PSBudW1HUFJBcmdzICsgbnVt
RlBSQXJncyArIGV4dHJhUG9rZSwgIkNoZWNrIHRoZSBDQ2FsbCBhcml0eSIpOwogI2VuZGlmCisg
ICAgICAgIHN0YXRpY19hc3NlcnQoZ3ByQXJnc0NvdW50PFRyYWl0c1R5cGU+KHN0ZDo6bWFrZV9p
bmRleF9zZXF1ZW5jZTxUcmFpdHNUeXBlOjphcml0eT4oKSkgPT0gbnVtR1BSQXJncyk7CisgICAg
ICAgIHN0YXRpY19hc3NlcnQoZnByQXJnc0NvdW50PFRyYWl0c1R5cGU+KHN0ZDo6bWFrZV9pbmRl
eF9zZXF1ZW5jZTxUcmFpdHNUeXBlOjphcml0eT4oKSkgPT0gbnVtRlBSQXJncyk7CisKICAgICAg
ICAgc2V0dXBTdHViQXJnczxudW1HUFJTb3VyY2VzLCBHUFJSZWc+KGNsYW1wQXJyYXlUb1NpemU8
bnVtR1BSU291cmNlcywgR1BSUmVnPihhcmdTb3VyY2VSZWdzLmdwckRlc3RpbmF0aW9ucyksIGNs
YW1wQXJyYXlUb1NpemU8bnVtR1BSU291cmNlcywgR1BSUmVnPihhcmdTb3VyY2VSZWdzLmdwclNv
dXJjZXMpKTsKICNpZiBDUFUoTUlQUykgfHwgKENQVShBUk1fVEhVTUIyKSAmJiAhQ1BVKEFSTV9I
QVJERlApKQogICAgICAgICBzZXR1cFN0dWJDcm9zc0FyZ3M8bnVtQ3Jvc3NTb3VyY2VzPihhcmdT
b3VyY2VSZWdzLmNyb3NzRGVzdGluYXRpb25zLCBhcmdTb3VyY2VSZWdzLmNyb3NzU291cmNlcyk7
CkBAIC03MTEsNiArNzYyLDggQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICAgICAgc2V0dXBB
cmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MsIGFyZ3MuLi4pOwogICAg
ICAgICB9CisKKyAgICAgICAgZmluYWxpemVHUFJBcmd1bWVudHM8T3BlcmF0aW9uVHlwZSwgMD4o
c3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+Ojph
cml0eT4oKSk7CiAgICAgfQogCiBwdWJsaWM6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>