<?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>210835</bug_id>
          
          <creation_ts>2020-04-21 18:07:16 -0700</creation_ts>
          <short_desc>[JSC] NumberConstructor should accept BigInt</short_desc>
          <delta_ts>2020-04-28 11:05:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1644134</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-21 18:07:16 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644135</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-21 18:07:59 -0700</bug_when>
    <thetext>This looks like a spec change from the original one.
https://tc39.es/ecma262/#sec-number-constructor-number-value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644138</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-21 18:18:52 -0700</bug_when>
    <thetext>DFG/FTL support is also required since NumberConstructor is supported in DFG.
Maybe, we should introduce CallNumberConstructor DFG node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645923</commentid>
    <comment_count>3</comment_count>
      <attachid>397656</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-27 01:14:40 -0700</bug_when>
    <thetext>Created attachment 397656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645925</commentid>
    <comment_count>4</comment_count>
      <attachid>397657</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-27 01:19:25 -0700</bug_when>
    <thetext>Created attachment 397657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645926</commentid>
    <comment_count>5</comment_count>
      <attachid>397658</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-27 01:27:18 -0700</bug_when>
    <thetext>Created attachment 397658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645929</commentid>
    <comment_count>6</comment_count>
      <attachid>397660</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-27 01:35:56 -0700</bug_when>
    <thetext>Created attachment 397660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646105</commentid>
    <comment_count>7</comment_count>
      <attachid>397660</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-27 11:23:48 -0700</bug_when>
    <thetext>Comment on attachment 397660
Patch

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

Some comments while I continue reviewing.  If you haven&apos;t already done so, can you also run the added tests against Chrome and Firefox as sanity check that there&apos;s no unexpected difference in behavior?

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:2256
&gt; +    mantissa &gt;&gt;= 12; // (12 = 64 - 52) (double&apos;s mantissa bit count).

12 is the non-mantissa bit count, i.e. exponent and sign bits.  52 is the mantissa it count.

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:2257
&gt; +    int32_t mantissaBitsUnset = shiftAmount - 12;

This equation was unclear to me at first, but after it working it out, I see that it&apos;s correct.  Can you put the following in a comment her to explain how we derived this equation?

unsetBits = 64 - setBits - 12 // 12 for non-mantissa bits
    setBits = 64 - (msdLeadingZeros + 1 + bitsNotAvailableDueToDigitSize);  // 1 for hidden mantissa bit.
                = 64 - (msdLeadingZeros + 1 + (64 - digitBits))
                = 64 - shiftAmount
Hence, unsetBits = 64 - (64 - shiftAmount) - 12 = shiftAmount - 12

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:2266
&gt; +    if (mantissaBitsUnset &gt;= static_cast&lt;int32_t&gt;(digitBits) &amp;&amp; digitIndex &gt; 0) {
&gt; +        digitIndex--;
&gt; +        currentDigit = static_cast&lt;uint64_t&gt;(bigInt-&gt;digit(digitIndex));
&gt; +        mantissa |= (currentDigit &lt;&lt; (mantissaBitsUnset - digitBits));
&gt; +        mantissaBitsUnset -= digitBits;
&gt; +    }

Can you wrap this in a &quot;if constexpr (digitBits &lt; 64)&quot;?  This code should be a no-op for 64 bit targets.

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:2292
&gt; +    uint64_t doubleBits = signBit | exponent | mantissa;

Can you add ASSERTs here to confirm that we didn&apos;t have a bug that results in any of the 3 components exceeding their bit boundaries?
    ASSERT(doubleBits &amp; (1 &lt;&lt; 63) == signBit);
    ASSERT(doubleBits &amp; (0x7ff &lt;&lt; 52) == exponent);
    ASSERT(doubleBits &amp; ((1 &lt;&lt; 52) - 1) == mantissa);

&gt; Source/JavaScriptCore/runtime/JSBigInt.h:280
&gt; +    static constexpr unsigned doublePhysicalSignificandSize = 52;

You&apos;re using a mix of &quot;Significand&quot; and &quot;mantissa&quot; in this patch.  Can you stick with just one?  Maybe call this doublePhysicalMantissaSize instead?

&gt; Source/JavaScriptCore/runtime/NumberConstructor.cpp:100
&gt; +            numeric = JSBigInt::toNumber(numeric);

Can you ASSERT(numeric.isBigInt()) at the top here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646110</commentid>
    <comment_count>8</comment_count>
      <attachid>397660</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-27 11:41:29 -0700</bug_when>
    <thetext>Comment on attachment 397660
Patch

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

&gt; JSTests/stress/number-constructor-bigint.js:29
&gt; +// Around Infinity.

Can you also add some cases for mantissa rounding both near infinity (may rounD to infinity) and not near infinity?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646211</commentid>
    <comment_count>9</comment_count>
      <attachid>397660</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-04-27 14:23:47 -0700</bug_when>
    <thetext>Comment on attachment 397660
Patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:3102
&gt;  #if USE(BIGINT32)

Let&apos;s move this #if up around the &quot;if (node-&gt;op() == CallNumberConstructor) {&quot;.

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:3109
&gt;  #endif

Move below } below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646379</commentid>
    <comment_count>10</comment_count>
      <attachid>397660</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-27 21:26:47 -0700</bug_when>
    <thetext>Comment on attachment 397660
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:3102
&gt;&gt;  #if USE(BIGINT32)
&gt; 
&gt; Let&apos;s move this #if up around the &quot;if (node-&gt;op() == CallNumberConstructor) {&quot;.

Done.

&gt;&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:3109
&gt;&gt;  #endif
&gt; 
&gt; Move below } below.

Done

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:2256
&gt;&gt; +    mantissa &gt;&gt;= 12; // (12 = 64 - 52) (double&apos;s mantissa bit count).
&gt; 
&gt; 12 is the non-mantissa bit count, i.e. exponent and sign bits.  52 is the mantissa it count.

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:2266
&gt;&gt; +    }
&gt; 
&gt; Can you wrap this in a &quot;if constexpr (digitBits &lt; 64)&quot;?  This code should be a no-op for 64 bit targets.

Sounds nice! Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:2292
&gt;&gt; +    uint64_t doubleBits = signBit | exponent | mantissa;
&gt; 
&gt; Can you add ASSERTs here to confirm that we didn&apos;t have a bug that results in any of the 3 components exceeding their bit boundaries?
&gt;     ASSERT(doubleBits &amp; (1 &lt;&lt; 63) == signBit);
&gt;     ASSERT(doubleBits &amp; (0x7ff &lt;&lt; 52) == exponent);
&gt;     ASSERT(doubleBits &amp; ((1 &lt;&lt; 52) - 1) == mantissa);

Sounds nice, fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.h:280
&gt;&gt; +    static constexpr unsigned doublePhysicalSignificandSize = 52;
&gt; 
&gt; You&apos;re using a mix of &quot;Significand&quot; and &quot;mantissa&quot; in this patch.  Can you stick with just one?  Maybe call this doublePhysicalMantissaSize instead?

Fixed, nice.

&gt;&gt; Source/JavaScriptCore/runtime/NumberConstructor.cpp:100
&gt;&gt; +            numeric = JSBigInt::toNumber(numeric);
&gt; 
&gt; Can you ASSERT(numeric.isBigInt()) at the top here?

Sounds good. Fixed.

&gt;&gt; JSTests/stress/number-constructor-bigint.js:29
&gt;&gt; +// Around Infinity.
&gt; 
&gt; Can you also add some cases for mantissa rounding both near infinity (may rounD to infinity) and not near infinity?

near infinity thing is already added (`shouldBe(Number(0x3fffffffffffffn &lt;&lt; 969n), 8.98846567431158e+307);`), I&apos;ll add non-near infinity case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646381</commentid>
    <comment_count>11</comment_count>
      <attachid>397660</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-27 21:27:30 -0700</bug_when>
    <thetext>Comment on attachment 397660
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:2257
&gt;&gt; +    int32_t mantissaBitsUnset = shiftAmount - 12;
&gt; 
&gt; This equation was unclear to me at first, but after it working it out, I see that it&apos;s correct.  Can you put the following in a comment her to explain how we derived this equation?
&gt; 
&gt; unsetBits = 64 - setBits - 12 // 12 for non-mantissa bits
&gt;     setBits = 64 - (msdLeadingZeros + 1 + bitsNotAvailableDueToDigitSize);  // 1 for hidden mantissa bit.
&gt;                 = 64 - (msdLeadingZeros + 1 + (64 - digitBits))
&gt;                 = 64 - shiftAmount
&gt; Hence, unsetBits = 64 - (64 - shiftAmount) - 12 = shiftAmount - 12

Added, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646388</commentid>
    <comment_count>12</comment_count>
      <attachid>397805</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-27 22:04:23 -0700</bug_when>
    <thetext>Created attachment 397805
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646560</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-04-28 11:04:58 -0700</bug_when>
    <thetext>Committed r260834: &lt;https://trac.webkit.org/changeset/260834&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646561</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-28 11:05:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/62531125&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397656</attachid>
            <date>2020-04-27 01:14:40 -0700</date>
            <delta_ts>2020-04-27 01:19:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210835-20200427011429.patch</filename>
            <type>text/plain</type>
            <size>41254</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MWE1NDEzYmM1MmQzNjc4ZGZjNzY4ZmUwNjVlMzYwNWEyNjJmMjNjLi4yYzNiZDBkNWFlODAzNzM2
Yzg0NTJmNWVhOGZiM2U2MTk4YjNmOWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OSBAQAorMjAyMC0wNC0yNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE51bWJlckNvbnN0cnVjdG9yIHNob3VsZCBhY2NlcHQgQmlnSW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA4MzUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIG91ciBOdW1iZXIgY29uc3RydWN0b3IgYmVoYXZpb3IgdG8gYWNjZXB0IEJpZ0lu
dC4gQWNjb3JkaW5nIHRvIHRoZSBzcGVjWzFdLAorICAgICAgICBOdW1iZXIgY29uc3RydWN0b3Ig
c2hvdWxkIGFjY2VwdCBCaWdJbnQgYW5kIHNob3VsZCBnZW5lcmF0ZSBudW1iZXJzIGZyb20gdGhh
dC4KKworICAgICAgICBXZSBwb3J0IFY4J3MgQmlnSW50IHRvIGRvdWJsZSBjb252ZXJzaW9uIGNv
ZGUgYXMgd2UgZGlkIGZvciB0aGUgb3RoZXIgSGVhcEJpZ0ludCBydW50aW1lIGZ1bmN0aW9ucy4K
KworICAgICAgICBBbmQgd2UgaW50cm9kdWNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvciBERkcgbm9k
ZSBhbmQgaGFuZGxlIE51bWJlciBjb25zdHJ1Y3RvciBjYWxsIHdpdGggQmlnSW50IGNvcnJlY3Rs
eQorICAgICAgICBpbiBERkcgYW5kIEZUTC4gUHJldmlvdXNseSB3ZSB3ZXJlIGVtaXR0aW5nIFRv
TnVtYmVyIERGRyBub2RlIGZvciBOdW1iZXIgY29uc3RydWN0b3IuIEJ1dCB0aGlzIGlzIHdyb25n
CisgICAgICAgIG5vdyBzaW5jZSBUb051bWJlciBkb2VzIG5vdCBhY2NlcHQgQmlnSW50IGFuZCB0
aHJvd3MgYW4gZXJyb3IsIGFuZCBOdW1iZXIgY29uc3RydWN0b3Igc2hvdWxkIG5vdCB1c2UKKyAg
ICAgICAgVG9OdW1iZXIgdG8gaW1wbGVtZW50IGl0cyBpbXBsZW1lbnRhdGlvbi4gU28gd2Ugc2hv
dWxkIGludHJvZHVjZSBzbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzOiBDYWxsTnVtYmVyQ29u
c3RydWN0b3IKKyAgICAgICAgYXMgd2UgaW50cm9kdWNlZCBDYWxsU3RyaW5nQ29uc3RydWN0b3Ig
aW4gYWRkaXRpb24gdG8gVG9TdHJpbmcgREZHIG5vZGUuIEFuZCB3ZSBhZGQgYXBwcm9wcmlhdGUg
QmlnSW50MzIgcGF0aAorICAgICAgICB0byBlbWl0IGVmZmljaWVudCBDYWxsTnVtYmVyQ29uc3Ry
dWN0b3IgbWFjaGluZSBjb2RlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEy
NjIvI3NlYy1udW1iZXItY29uc3RydWN0b3ItbnVtYmVyLXZhbHVlCisKKyAgICAgICAgKiBkZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAg
ICAgICAqIGRmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAq
IGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQ
YXJzZXI6OmhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbik6CisgICAgICAgICogZGZnL0RG
R0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAg
KiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNv
bnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9l
c0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdG
aXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUp
OgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwVG9OdW1iZXJPclRvTnVtZXJp
Y09yQ2FsbE51bWJlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNl
OjpmaXh1cFRvTnVtZXJpYyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBUb051bWJlcik6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNIZWFwUHJlZGljdGlvbik6CisgICAgICAgICogZGZn
L0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAg
ICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVD
YWxsTnVtYmVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ2FsbE51bWJlckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTQmlnSW50LmNwcDoKKyAgICAgICAgKEpTQzo6SlNC
aWdJbnQ6OmRlY2lkZVJvdW5kaW5nKToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OnRvTnVtYmVy
SGVhcCk6CisgICAgICAgICogcnVudGltZS9KU0JpZ0ludC5oOgorICAgICAgICAqIHJ1bnRpbWUv
TnVtYmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNhbGxOdW1iZXJDb25zdHJ1Y3Rvcik6CisKIDIwMjAt
MDQtMjYgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAg
IFtKU0NdIENsZWFybHkgZGlzdGluZ3Vpc2ggaXNDb25zdHJ1Y3RvciBmcm9tIGdldENvbnN0cnVj
dERhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCBiZmMxNmQ5ZGEyOWUwODVhODNhMDg5OTY1MzI4
NjU2NWY0NTU1MjYwLi41OTQyNjM5Y2QyMTBkMTBkOGJlZjgxMDYyYmRiMTc2ZjIyZTk1YWYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCkBAIC0yNzExLDYgKzI3MTEsNDUgQEAgYm9vbCBBYnN0cmFjdElu
dGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xv
YmJlckxpbWkKICAgICAgICAgc2V0VHlwZUZvck5vZGUobm9kZSwgU3BlY0J5dGVjb2RlTnVtYmVy
IHwgU3BlY0JpZ0ludCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIGNhc2UgQ2FsbE51
bWJlckNvbnN0cnVjdG9yOiB7CisgICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdCA9IGZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CisgICAgICAgIGlmIChjaGlsZENvbnN0KSB7CisgICAg
ICAgICAgICBpZiAoY2hpbGRDb25zdC5pc051bWJlcigpKSB7CisgICAgICAgICAgICAgICAgaWYg
KG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKQorICAgICAgICAgICAgICAg
ICAgICBkaWRGb2xkQ2xvYmJlcldvcmxkKCk7CisgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQo
bm9kZSwgY2hpbGRDb25zdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICAgICAgaWYgKGNoaWxkQ29uc3QuaXNCaWdJbnQz
MigpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBV
bnR5cGVkVXNlKQorICAgICAgICAgICAgICAgICAgICBkaWRGb2xkQ2xvYmJlcldvcmxkKCk7Cisg
ICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNOdW1iZXIoY2hpbGRDb25zdC5iaWdJ
bnQzMkFzSW50MzIoKSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
I2VuZGlmCisgICAgICAgIH0KKworICAgICAgICBBU1NFUlQobm9kZS0+Y2hpbGQxKCkudXNlS2lu
ZCgpID09IFVudHlwZWRVc2UgfHwgbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEJpZ0ludDMy
VXNlKTsKKworICAgICAgICBpZiAoIShmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3R5cGUgJiB+
U3BlY0J5dGVjb2RlTnVtYmVyKSkgeworICAgICAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlD
b25zdGFudEZvbGRpbmcodHJ1ZSk7CisgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNl
S2luZCgpID09IFVudHlwZWRVc2UpCisgICAgICAgICAgICAgICAgZGlkRm9sZENsb2JiZXJXb3Js
ZCgpOworICAgICAgICAgICAgc2V0Rm9yTm9kZShub2RlLCBmb3JOb2RlKG5vZGUtPmNoaWxkMSgp
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChub2RlLT5j
aGlsZDEoKS51c2VLaW5kKCkgPT0gQmlnSW50MzJVc2UpIHsKKyAgICAgICAgICAgIHNldFR5cGVG
b3JOb2RlKG5vZGUsIFNwZWNJbnQzMk9ubHkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKworICAgICAgICBjbG9iYmVyV29ybGQoKTsKKyAgICAgICAgc2V0Tm9uQ2VsbFR5cGVGb3JO
b2RlKG5vZGUsIFNwZWNCeXRlY29kZU51bWJlcik7CisgICAgICAgIGJyZWFrOworICAgIH0KICAg
ICAgICAgCiAgICAgY2FzZSBUb1N0cmluZzoKICAgICBjYXNlIENhbGxTdHJpbmdDb25zdHJ1Y3Rv
cjogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYWNrd2FyZHNQ
cm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFja3dh
cmRzUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggMzY4NjVhNTIzZjVhYzg4ZjM2ZGRlMDA5MDg5
ZGZlYjJlMjQ3YjVmOC4uMmNjNzQyOTA1MWE1NWViYjhlNzEyN2FhOWIxZTNmNWQzMDE5NDY2OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYWNrd2FyZHNQcm9wYWdh
dGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JhY2t3YXJk
c1Byb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC00MTUsNyArNDE1LDggQEAgY2xhc3MgQmFja3dhcmRz
UHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAKICAgICAgICAg
Y2FzZSBUb1ByaW1pdGl2ZToKICAgICAgICAgY2FzZSBUb051bWJlcjoKLSAgICAgICAgY2FzZSBU
b051bWVyaWM6IHsKKyAgICAgICAgY2FzZSBUb051bWVyaWM6CisgICAgICAgIGNhc2UgQ2FsbE51
bWJlckNvbnN0cnVjdG9yOiB7CiAgICAgICAgICAgICBub2RlLT5jaGlsZDEoKS0+bWVyZ2VGbGFn
cyhmbGFncyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAyMDU0NGNjZDczMGUx
YzFiNGI2OGZiZWM2ZmExOTY5MmZlY2FiMjdjLi4xYTNlZTM1MDE0ZmE0ODRiYWI3ZTM2ODgwYjI0
MjRjOWEzNGIzZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcApAQCAtNDAyNyw3ICs0MDI3LDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6
aGFuZGxlQ29uc3RhbnRJbnRlcm5hbEZ1bmN0aW9uKAogICAgICAgICBpZiAoYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMgPD0gMSkKICAgICAgICAgICAgIHNldChyZXN1bHQsIGpzQ29uc3RhbnQo
anNOdW1iZXIoMCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgc2V0KHJlc3VsdCwgYWRk
VG9HcmFwaChUb051bWJlciwgT3BJbmZvKDApLCBPcEluZm8ocHJlZGljdGlvbiksIGdldCh2aXJ0
dWFsUmVnaXN0ZXJGb3JBcmd1bWVudEluY2x1ZGluZ1RoaXMoMSwgcmVnaXN0ZXJPZmZzZXQpKSkp
OworICAgICAgICAgICAgc2V0KHJlc3VsdCwgYWRkVG9HcmFwaChDYWxsTnVtYmVyQ29uc3RydWN0
b3IsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBnZXQodmlydHVhbFJlZ2lzdGVyRm9y
QXJndW1lbnRJbmNsdWRpbmdUaGlzKDEsIHJlZ2lzdGVyT2Zmc2V0KSkpKTsKIAogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5oCmluZGV4IGU1ODI5MDc0ZjAyMmI4MTFiN2FkOWUwNzAyYTgxNDNhNWM4NTYzNjQuLjNmYzk1
MjQ2MmMxMGE1YWM1ZjcxNjBjZDM0Y2U4NGNlMDBhMDliZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC02OTIsNiArNjkyLDE5IEBAIFNVUFBSRVNTX0FT
QU4gdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1
bmN0b3ImIHJlYWQsCiAgICAgICAgIHdyaXRlKEhlYXApOwogICAgICAgICByZXR1cm47CiAKKyAg
ICBjYXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjoKKyAgICAgICAgc3dpdGNoIChub2RlLT5jaGls
ZDEoKS51c2VLaW5kKCkpIHsKKyAgICAgICAgY2FzZSBCaWdJbnQzMlVzZToKKyAgICAgICAgICAg
IGRlZihQdXJlVmFsdWUobm9kZSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNl
IFVudHlwZWRVc2U6CisgICAgICAgICAgICByZWFkKFdvcmxkKTsKKyAgICAgICAgICAgIHdyaXRl
KEhlYXApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgREZHX0NSQVNIKGdyYXBoLCBub2RlLCAiQmFkIHVzZSBraW5kIik7CisgICAgICAgIH0KKwog
ICAgIGNhc2UgSW5jOgogICAgIGNhc2UgRGVjOgogICAgICAgICBzd2l0Y2ggKG5vZGUtPmNoaWxk
MSgpLnVzZUtpbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAppbmRleCA2YTFmZDA3NDAwNTJlMTUwYjU4MjA4YzRi
ZTM0ZDgyNTdlZjYzY2U5Li45MGEzMzY3Mzg4ZTRlNjgyMTkwMzgxYjYzOTU5NmQ0OWIyMDg5YjZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGlu
Z1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9s
ZGluZ1BoYXNlLmNwcApAQCAtOTUxLDcgKzk1MSw4IEBAIGNsYXNzIENvbnN0YW50Rm9sZGluZ1Bo
YXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgY2FzZSBUb051bWJlcjogeworICAgICAgICAgICAgY2FzZSBUb051
bWJlcjoKKyAgICAgICAgICAgIGNhc2UgQ2FsbE51bWJlckNvbnN0cnVjdG9yOiB7CiAgICAgICAg
ICAgICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlICYgflNw
ZWNCeXRlY29kZU51bWJlcikKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCA1Nzc4ZDdkYjQyOGUxNWQzYWVlNDg0
YTA1ZWRhMzBlNGRjYWNhYjVkLi4zZDM5NWI0ZGJlYWEyZDgwYWFmMTJlNzUzMGU3NmExNzdmMmFh
MDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC00MTMsNiAr
NDEzLDE1IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICNlbmRpZiAv
LyBub3QgQVNTRVJUX0VOQUJMRUQKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBjYXNlIENh
bGxOdW1iZXJDb25zdHJ1Y3RvcjoKKyAgICAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEoKS51c2VL
aW5kKCkpIHsKKyAgICAgICAgY2FzZSBCaWdJbnQzMlVzZToKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiB0cnVlOworCiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAg
ICAgY2FzZSBUb1N0cmluZzoKICAgICAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEoKS51c2VLaW5k
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4
IDNhNmZkYzc3MjZlY2I3NGMxZGFjMmYwYzRhNWYyMzAyYzBkNTM1NzMuLjllMDhmYzI5YzE5OWMx
MDc1ZjZlNTIzMmE2ZDE4ZGU0YTIwMGQ2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTU0NSwxNiArMTU0NSwxMyBAQCBjbGFzcyBGaXh1cFBo
YXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAg
ICAgICAgY2FzZSBUb051bWJlcjogewotICAgICAgICAgICAgZml4dXBUb051bWJlcihub2RlKTsK
KyAgICAgICAgY2FzZSBUb051bWJlcjoKKyAgICAgICAgY2FzZSBUb051bWVyaWM6CisgICAgICAg
IGNhc2UgQ2FsbE51bWJlckNvbnN0cnVjdG9yOiB7CisgICAgICAgICAgICBmaXh1cFRvTnVtYmVy
T3JUb051bWVyaWNPckNhbGxOdW1iZXJDb25zdHJ1Y3Rvcihub2RlKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBUb051bWVyaWM6IHsKLSAgICAgICAgICAg
IGZpeHVwVG9OdW1lcmljKG5vZGUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgICAgIAogICAgICAgICBjYXNlIFRvU3RyaW5nOgogICAgICAgICBjYXNlIENhbGxTdHJp
bmdDb25zdHJ1Y3RvcjogewogICAgICAgICAgICAgZml4dXBUb1N0cmluZ09yQ2FsbFN0cmluZ0Nv
bnN0cnVjdG9yKG5vZGUpOwpAQCAtMzA5OSwyOSArMzA5NiwzNyBAQCBjbGFzcyBGaXh1cFBoYXNl
IDogcHVibGljIFBoYXNlIHsKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgZml4dXBUb051
bWVyaWMoTm9kZSogbm9kZSkKKyAgICB2b2lkIGZpeHVwVG9OdW1iZXJPclRvTnVtZXJpY09yQ2Fs
bE51bWJlckNvbnN0cnVjdG9yKE5vZGUqIG5vZGUpCiAgICAgewotICAgICAgICAvLyBJZiB0aGUg
cHJlZGljdGlvbiBvZiB0aGUgY2hpbGQgaXMgQmlnSW50LCB3ZSBhdHRlbXB0IHRvIGNvbnZlcnQg
VG9OdW1lcmljIHRvIElkZW50aXR5LCBzaW5jZSBpdCBjYW4gb25seSByZXR1cm4gYSBCaWdJbnQg
d2hlbiBmZWQgYSBCaWdJbnQuCi0gICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlQmlnSW50KCkpIHsKKyAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gQ2FsbE51bWJlckNv
bnN0cnVjdG9yKSB7CiAjaWYgVVNFKEJJR0lOVDMyKQotICAgICAgICAgICAgaWYgKG5vZGUtPmNo
aWxkMSgpLT5zaG91bGRTcGVjdWxhdGVCaWdJbnQzMigpKQorICAgICAgICAgICAgaWYgKG5vZGUt
PmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVCaWdJbnQzMigpKSB7CiAgICAgICAgICAgICAgICAg
Zml4RWRnZTxCaWdJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgZWxzZSBp
ZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUhlYXBCaWdJbnQoKSkKLSAgICAgICAg
ICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmaXhFZGdlPEFueUJpZ0ludFVzZT4obm9kZS0+Y2hp
bGQxKCkpOwotI2Vsc2UKLSAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIG5vZGUtPmNsZWFyRmxhZ3MoTm9kZU11c3RHZW5l
cmF0ZSk7CisgICAgICAgICAgICAgICAgbm9kZS0+c2V0UmVzdWx0KE5vZGVSZXN1bHRJbnQzMik7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogI2VuZGlmCi0gICAgICAg
ICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOwotICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKLSAgICAgICAgZml4dXBUb051bWJlcihub2RlKTsKLSAgICB9CisgICAgICAgIC8v
IElmIHRoZSBwcmVkaWN0aW9uIG9mIHRoZSBjaGlsZCBpcyBCaWdJbnQsIHdlIGF0dGVtcHQgdG8g
Y29udmVydCBUb051bWVyaWMgdG8gSWRlbnRpdHksIHNpbmNlIGl0IGNhbiBvbmx5IHJldHVybiBh
IEJpZ0ludCB3aGVuIGZlZCBhIEJpZ0ludC4KKyAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gVG9O
dW1lcmljKSB7CisgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0
ZUJpZ0ludCgpKSB7CisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICAgICAgICAgIGlmIChub2Rl
LT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoKSkKKyAgICAgICAgICAgICAgICAg
ICAgZml4RWRnZTxCaWdJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAg
IGVsc2UgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVIZWFwQmlnSW50KCkpCisg
ICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxBbnlC
aWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyNlbHNlCisgICAgICAgICAgICAgICAgZml4RWRn
ZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisjZW5kaWYKKyAgICAgICAgICAgICAg
ICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQogCi0gICAgdm9pZCBmaXh1cFRvTnVtYmVyKE5vZGUqIG5v
ZGUpCi0gICAgewogICAgICAgICAvLyBBdCBmaXJzdCwgYXR0ZW1wdCB0byBmb2xkIEJvb2xlYW4g
b3IgSW50MzIgdG8gSW50MzIuCiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlSW50MzJPckJvb2xlYW4oKSkgewogICAgICAgICAgICAgaWYgKGlzSW50MzJTcGVjdWxh
dGlvbihub2RlLT5nZXRIZWFwUHJlZGljdGlvbigpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaAppbmRleCBlYmUwMTU4NjZiYjc5OTE0YWQyNGE4YmJjNjZkYTkxZDg3NzU3YWZhLi44
NzJjZDEwN2U2OGNkMDVkYjdhYWI4YTQxYTFjY2QwOWZkZjU5ZmZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGUuaApAQCAtMTc5NSw2ICsxNzk1LDcgQEAgc3RydWN0IE5vZGUgewogICAg
ICAgICBjYXNlIFRvTnVtYmVyOgogICAgICAgICBjYXNlIFRvTnVtZXJpYzoKICAgICAgICAgY2Fz
ZSBUb09iamVjdDoKKyAgICAgICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6CiAgICAgICAg
IGNhc2UgVmFsdWVCaXRBbmQ6CiAgICAgICAgIGNhc2UgVmFsdWVCaXRPcjoKICAgICAgICAgY2Fz
ZSBWYWx1ZUJpdFhvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRl
eCBkZTM1NzYyODcwMzhiYmVmYmI5YTRkNTYyMjc1ZDczOThlNWRmYWIxLi41NjE2ODE2NGRkZjQ2
ZDg4MDM2YmFmZmE5M2QxOTE4ODBlNWRhMDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlVHlwZS5oCkBAIC00MTIsNiArNDEyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogICAgIG1hY3JvKFRvT2JqZWN0LCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVy
YXRlKSBcCiAgICAgbWFjcm8oQ2FsbE9iamVjdENvbnN0cnVjdG9yLCBOb2RlUmVzdWx0SlMpIFwK
ICAgICBtYWNybyhDYWxsU3RyaW5nQ29uc3RydWN0b3IsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0
R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDYWxsTnVtYmVyQ29uc3RydWN0b3IsIE5vZGVSZXN1bHRK
UyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOdW1iZXJUb1N0cmluZ1dpdGhSYWRp
eCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKE51bWJlclRv
U3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8o
TWFrZVJvcGUsIE5vZGVSZXN1bHRKUykgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKaW5kZXggNDQzODc2YTIzMzg5NjU3MGYxZDI2MjdhMjk2MmM3YjM4MDYw
YTQyYS4uMjRkNTNlMzQ4NDY1NTI0YzQ4ZDFmNWFkYzA2NjMzNTQ2ZGRmYjM3YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNTM5LDYgKzE1Mzks
MjEgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub051bWVyaWMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9OdW1lcmljKGdsb2JhbE9iamVjdCkpOwogfQogCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxOdW1iZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIEpTVmFsdWUgbnVtZXJpYyA9IHZhbHVlLnRv
TnVtZXJpYyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgaWYgKCFudW1lcmljLmlzQmlnSW50KCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUobnVtZXJpYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6
dG9OdW1iZXIobnVtZXJpYykpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXgg
Mzg5Y2I4YTNlMTMwYzQ0ZmQzOWE1MzRhNjhkNmM4MTU2NjkzMTkyZC4uMmI3ZjFkNDkwNDc5ZmY3
ZjE0ZDhlNWVhODU3YzAzNzM5ZTI0YjVhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmgKQEAgLTk0LDYgKzk0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Ub1ByaW1pdGl2ZShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHUK
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9Qcm9wZXJ0eUtleShKU0ds
b2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvTnVtYmVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVG9OdW1lcmljKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbE51bWJlckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpOwogRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFdpdGhUaGlzKEpTR2xvYmFsT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lO
VEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm90b3R5
cGVPZihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3RvdHlwZU9mT2JqZWN0KEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwCmluZGV4IDBhYmRiNWI1MmQyMzc5OWE4YTNiNzlkNzAyYWViNDM2MDA5MzlmMWYuLjJjOTQx
YTEyY2RhYzQ1MzU0MDMxN2FiMGJlOGRhMjAzZWE2ZGIxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwCkBAIC04OTcsNiArODk3LDcgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Ug
OiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIFRvTnVtYmVyOgogICAgICAgICBjYXNlIFRv
TnVtZXJpYzoKICAgICAgICAgY2FzZSBUb09iamVjdDoKKyAgICAgICAgY2FzZSBDYWxsTnVtYmVy
Q29uc3RydWN0b3I6CiAgICAgICAgIGNhc2UgVmFsdWVCaXRBbmQ6CiAgICAgICAgIGNhc2UgVmFs
dWVCaXRYb3I6CiAgICAgICAgIGNhc2UgVmFsdWVCaXRPcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggOGRiMGFiYTJjY2U5Y2ZkNmFjNTM4YzI4
YjFmMDZhZWNmNWFmOGYzNC4uNDM2YmZiMTUyMDlmMmU2MmRiMGMxYjNkM2NiODdjOGI2MzE5OTE2
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAg
LTU2NSw2ICs1NjUsNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0
YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGJvb2wgaWdubwogICAgIGNhc2UgVG9OdW1i
ZXI6CiAgICAgY2FzZSBUb051bWVyaWM6CiAgICAgY2FzZSBUb09iamVjdDoKKyAgICBjYXNlIENh
bGxOdW1iZXJDb25zdHJ1Y3RvcjoKICAgICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4Ogog
ICAgIGNhc2UgU2V0RnVuY3Rpb25OYW1lOgogICAgIGNhc2UgTmV3U3RyaW5nT2JqZWN0OgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBk
MjA3MzJkNmU3YzM4Yjc5NzEwMjgxNzk3OWFmMDFkNzllNGQ1NjU0Li41ZGVjMjJkOGQ3ZWRlNjhj
YzJlZWQwZGQ0NmVkYTgzMDM5MDViZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTMzNTUsNiArMTMzNTUsNDAgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvTnVtZXJpYyhOb2RlKiBub2RlKQogICAgIGpzVmFsdWVS
ZXN1bHQocmVzdWx0UmVncywgbm9kZSwgRGF0YUZvcm1hdEpTKTsKIH0KIAordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3RvcihOb2RlKiBub2RlKQoreworI2lm
IFVTRShCSUdJTlQzMikKKyAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEJpZ0lu
dDMyVXNlKSB7CisgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCBvcGVyYW5kKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKwor
ICAgICAgICBHUFJSZWcgb3BlcmFuZEdQUiA9IG9wZXJhbmQuZ3ByKCk7CisgICAgICAgIEdQUlJl
ZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgbV9qaXQudW5ib3hCaWdJbnQz
MihvcGVyYW5kR1BSLCByZXN1bHRHUFIpOworICAgICAgICBzdHJpY3RJbnQzMlJlc3VsdChyZXN1
bHRHUFIsIG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBERkdf
QVNTRVJUKG1faml0LmdyYXBoKCksIG5vZGUsIG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBV
bnR5cGVkVXNlLCBub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpOworICAgIEpTVmFsdWVPcGVyYW5k
IGFyZ3VtZW50KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlUmVnc1RlbXBvcmFy
eSByZXN1bHQodGhpcyk7CisgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CisKKyAgICBKU1Zh
bHVlUmVncyBhcmd1bWVudFJlZ3MgPSBhcmd1bWVudC5qc1ZhbHVlUmVncygpOworICAgIEpTVmFs
dWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOworICAgIEdQUlJlZyB0ZW1wR1BSID0g
dGVtcC5ncHIoKTsKKyAgICAvLyBGSVhNRTogYWRkIGEgZmFzdCBwYXRoIGZvciBCaWdJbnQzMiBo
ZXJlIChhbmQgZm9yIHR5cGVPZiwgYW5kIGZvciBib29saWZ5IG9yIHdoYXRldmVyIGl0IGlzIGNh
bGxlZCBpbiB0aGlzIGZpbGUpLgorCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93Q2Fz
ZXM7CisgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdE51bWJlcihhcmd1bWVu
dFJlZ3MsIHRlbXBHUFIpKTsKKyAgICBtX2ppdC5tb3ZlVmFsdWVSZWdzKGFyZ3VtZW50UmVncywg
cmVzdWx0UmVncyk7CisgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHNsb3dD
YXNlcywgdGhpcywgb3BlcmF0aW9uQ2FsbE51bWJlckNvbnN0cnVjdG9yLCByZXN1bHRSZWdzLCBU
cnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZv
cihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYXJndW1lbnRSZWdzKSk7CisKKyAgICBqc1ZhbHVl
UmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlTG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlKE5vZGUqIG5vZGUpCiB7CiAgICAgZmx1c2hSZWdp
c3RlcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aAppbmRleCA1YWNlNTI1NWVkMDI3NjUzNWRhMWZhNjhiZjhjMDlkMmFhZmVjOTk5Li43Nzk2ZDA1
NmUxMTJlNWZiM2NlYjIzYjg4NzUwMjcwOTQ4NWVkNGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xNDc0LDYgKzE0NzQsNyBAQCBjbGFz
cyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlVG9QcmltaXRpdmUoTm9kZSopOwog
ICAgIHZvaWQgY29tcGlsZVRvUHJvcGVydHlLZXkoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVRv
TnVtZXJpYyhOb2RlKik7CisgICAgdm9pZCBjb21waWxlQ2FsbE51bWJlckNvbnN0cnVjdG9yKE5v
ZGUqKTsKICAgICB2b2lkIGNvbXBpbGVMb2dTaGFkb3dDaGlja2VuUHJvbG9ndWUoTm9kZSopOwog
ICAgIHZvaWQgY29tcGlsZUxvZ1NoYWRvd0NoaWNrZW5UYWlsKE5vZGUqKTsKICAgICB2b2lkIGNv
bXBpbGVIYXNJbmRleGVkUHJvcGVydHkoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggZTg5YjFjNzViMmI1
YzRlZTg0Yjk1ZGMwMTQ3MzA5OTE3YTI1ODc1ZC4uNjBjOTkxYzIxMWY3MTM1YTZmZTllZThlMGMy
MDI5ODhlNTI4NGI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zMTUxLDYgKzMxNTEsMTAgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlVG9OdW1lcmlj
KG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIENhbGxOdW1iZXJDb25z
dHJ1Y3RvcjoKKyAgICAgICAgY29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3Rvcihub2RlKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgY2FzZSBDYWxs
U3RyaW5nQ29uc3RydWN0b3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBiOGQzYTUzYTczYTE2MTA3MTYxM2FjZTIzZTU1YzBj
MTgwMTA5MTY4Li4wNzgyOWZhYjhlZmIwMjgxN2JmNmQ0ZTFlMmM0OTIwYjQzMDM2ZDAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
QEAgLTM3MTEsNiArMzcxMSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgQ2FsbE51bWJlckNvbnN0
cnVjdG9yOgorICAgICAgICBjb21waWxlQ2FsbE51bWJlckNvbnN0cnVjdG9yKG5vZGUpOworICAg
ICAgICBicmVhazsKKwogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29u
c3RydWN0b3I6CiAgICAgY2FzZSBTdHJpbmdWYWx1ZU9mOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggOGFlOTgyMDUxNjQ0MTE0NTVhODk2
YjczYmUyZDg0MmVmZmVjNzU1ZC4uYmM5NzMwN2UxYTdmZDg1NmZkMjhhZTljNzUxZWIwMjVjMjJk
YTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cApAQCAtMjE5LDYgKzIxOSw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShO
b2RlKiBub2RlKQogICAgIGNhc2UgVG9PYmplY3Q6CiAgICAgY2FzZSBDYWxsT2JqZWN0Q29uc3Ry
dWN0b3I6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CisgICAgY2FzZSBDYWxsTnVt
YmVyQ29uc3RydWN0b3I6CiAgICAgY2FzZSBPYmplY3RDcmVhdGU6CiAgICAgY2FzZSBPYmplY3RL
ZXlzOgogICAgIGNhc2UgTWFrZVJvcGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKaW5kZXggODViMTllOGVhNWU1NzQ2YmU1YjVhZDU0YTYzMjA0YjEx
YjYyNGI0NC4uYTMwM2IyOTc4MDE3Zjk1Nzg2Mjk5OTE1NmFlOTZhNmY5ODllNDE4YyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTEzMiw2
ICsxMTMyLDkgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgY2FzZSBUb051bWVyaWM6
CiAgICAgICAgICAgICBjb21waWxlVG9OdW1lcmljKCk7CiAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6CisgICAgICAgICAgICBjb21waWxlQ2Fs
bE51bWJlckNvbnN0cnVjdG9yKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBU
b1N0cmluZzoKICAgICAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAgICAgIGNh
c2UgU3RyaW5nVmFsdWVPZjoKQEAgLTc1ODgsNiArNzU5MSwzOCBAQCBjbGFzcyBMb3dlckRGR1Rv
QjMgewogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHNldEpTVmFsdWUodm1DYWxsKEludDY0
LCBvcGVyYXRpb25Ub051bWVyaWMsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIHZhbHVlKSk7
CiAgICAgfQorCisgICAgdm9pZCBjb21waWxlQ2FsbE51bWJlckNvbnN0cnVjdG9yKCkKKyAgICB7
CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihtX25vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CisjaWYgVVNFKEJJR0lOVDMyKQorICAg
ICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQmlnSW50MzJVc2UpIHsKKyAg
ICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0JpZ0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwor
ICAgICAgICAgICAgc2V0SW50MzIodW5ib3hCaWdJbnQzMih2YWx1ZSkpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNW
YWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKKworICAgICAgICBMQmFzaWNCbG9jayBub3ROdW1iZXIg
PSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBt
X291dC5uZXdCbG9jaygpOworCisgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBt
X291dC5hbmNob3IodmFsdWUpOworICAgICAgICBtX291dC5icmFuY2goaXNOdW1iZXIodmFsdWUs
IHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5z
dXJlKG5vdE51bWJlcikpOworCisgICAgICAgIC8vIG5vdE51bWJlciBjYXNlLgorICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdE51bWJlciwgY29udGludWF0
aW9uKTsKKyAgICAgICAgLy8gV2UgaGF2ZSBzZXZlcmFsIGF0dGVtcHRzIHRvIHJlbW92ZSBUb051
bWJlci4gQnV0IFRvTnVtYmVyIHN0aWxsIGV4aXN0cy4KKyAgICAgICAgLy8gSXQgbWVhbnMgdGhh
dCBjb252ZXJ0aW5nIG5vbi1udW1iZXJzIHRvIG51bWJlcnMgYnkgdGhpcyBUb051bWJlciBpcyBu
b3QgcmFyZS4KKyAgICAgICAgLy8gSW5zdGVhZCBvZiB0aGUgbGF6eSBzbG93IHBhdGggZ2VuZXJh
dG9yLCB3ZSBjYWxsIHRoZSBvcGVyYXRpb24gaGVyZS4KKyAgICAgICAgVmFsdWVGcm9tQmxvY2sg
c2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNhbGwoSW50NjQsIG9wZXJhdGlvbkNhbGxOdW1i
ZXJDb25zdHJ1Y3Rvciwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgdmFsdWUpKTsKKyAgICAg
ICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgIC8vIGNvbnRpbnVhdGlvbiBj
YXNlLgorICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAg
ICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQp
KTsKKyAgICB9CisKICAgICAKICAgICB2b2lkIGNvbXBpbGVUb1N0cmluZ09yQ2FsbFN0cmluZ0Nv
bnN0cnVjdG9yT3JTdHJpbmdWYWx1ZU9mKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXggYWNhMzU1NTRjZjUxNzNmMDM0MTdjNzQ3ZDA0Mzg4
YzQzNWY2MzkwMC4uZmVkMjA4NGJjMTNiYThkMmJhNTVlMzM0MGM3ZmNjYmQzMmY0ZTRlOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAtMjE5Miw0ICsy
MTkyLDEwNSBAQCBPcHRpb25hbDxKU0JpZ0ludDo6RGlnaXQ+IEpTQmlnSW50Ojp0b1NoaWZ0QW1v
dW50KEpTQmlnSW50KiB4KQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAorSlNCaWdJbnQ6OlJvdW5k
aW5nUmVzdWx0IEpTQmlnSW50OjpkZWNpZGVSb3VuZGluZyhKU0JpZ0ludCogYmlnSW50LCBpbnQz
Ml90IG1hbnRpc3NhQml0c1Vuc2V0LCBpbnQzMl90IGRpZ2l0SW5kZXgsIHVpbnQ2NF90IGN1cnJl
bnREaWdpdCkKK3sKKyAgICBpZiAobWFudGlzc2FCaXRzVW5zZXQgPiAwKQorICAgICAgICByZXR1
cm4gUm91bmRpbmdSZXN1bHQ6OlJvdW5kRG93bjsKKyAgICBpbnQzMl90IHRvcFVuY29uc3VtZWRC
aXQgPSAwOworICAgIGlmIChtYW50aXNzYUJpdHNVbnNldCA8IDApIHsKKyAgICAgICAgLy8gVGhl
cmUgYXJlIHVuY29uc3VtZWQgYml0cyBpbiBjdXJyZW50RGlnaXQuCisgICAgICAgIHRvcFVuY29u
c3VtZWRCaXQgPSAtbWFudGlzc2FCaXRzVW5zZXQgLSAxOworICAgIH0gZWxzZSB7CisgICAgICAg
IEFTU0VSVChtYW50aXNzYUJpdHNVbnNldCA9PSAwKTsKKyAgICAgICAgLy8gY3VycmVudERpZ2l0
IGZpdCB0aGUgbWFudGlzc2EgZXhhY3RseTsgbG9vayBhdCB0aGUgbmV4dCBkaWdpdC4KKyAgICAg
ICAgaWYgKGRpZ2l0SW5kZXggPT0gMCkKKyAgICAgICAgICAgIHJldHVybiBSb3VuZGluZ1Jlc3Vs
dDo6Um91bmREb3duOworICAgICAgICBkaWdpdEluZGV4LS07CisgICAgICAgIGN1cnJlbnREaWdp
dCA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihiaWdJbnQtPmRpZ2l0KGRpZ2l0SW5kZXgpKTsKKyAg
ICAgICAgdG9wVW5jb25zdW1lZEJpdCA9IGRpZ2l0Qml0cyAtIDE7CisgICAgfQorICAgIC8vIElm
IHRoZSBtb3N0IHNpZ25pZmljYW50IHJlbWFpbmluZyBiaXQgaXMgMCwgcm91bmQgZG93bi4KKyAg
ICB1aW50NjRfdCBiaXRtYXNrID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDEpIDw8IHRvcFVuY29u
c3VtZWRCaXQ7CisgICAgaWYgKChjdXJyZW50RGlnaXQgJiBiaXRtYXNrKSA9PSAwKQorICAgICAg
ICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlJvdW5kRG93bjsKKyAgICAvLyBJZiBhbnkgb3RoZXIg
cmVtYWluaW5nIGJpdCBpcyBzZXQsIHJvdW5kIHVwLgorICAgIGJpdG1hc2sgLT0gMTsKKyAgICBp
ZiAoKGN1cnJlbnREaWdpdCAmIGJpdG1hc2spICE9IDApCisgICAgICAgIHJldHVybiBSb3VuZGlu
Z1Jlc3VsdDo6Um91bmRVcDsKKyAgICB3aGlsZSAoZGlnaXRJbmRleCA+IDApIHsKKyAgICAgICAg
ZGlnaXRJbmRleC0tOworICAgICAgICBpZiAoYmlnSW50LT5kaWdpdChkaWdpdEluZGV4KSAhPSAw
KQorICAgICAgICAgICAgcmV0dXJuIFJvdW5kaW5nUmVzdWx0OjpSb3VuZFVwOworICAgIH0KKyAg
ICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlRpZTsKK30KKworSlNWYWx1ZSBKU0JpZ0ludDo6dG9O
dW1iZXJIZWFwKEpTQmlnSW50KiBiaWdJbnQpCit7CisgICAgaWYgKGJpZ0ludC0+aXNaZXJvKCkp
CisgICAgICAgIHJldHVybiBqc051bWJlcigwKTsKKyAgICBBU1NFUlQoYmlnSW50LT5sZW5ndGgo
KSk7CisKKyAgICAvLyBDb252ZXJzaW9uIG1lY2hhbmlzbSBpcyB0aGUgZm9sbG93aW5nLgorICAg
IC8vCisgICAgLy8gMS4gR2V0IGV4cG9uZW50IGJpdHMuCisgICAgLy8gMi4gQ29sbGVjdCBtYW50
aXNzYSA1MiBiaXRzLgorICAgIC8vIDMuIEFkZCByb3VuZGluZyByZXN1bHQgb2YgdW51c2VkIGJp
dHMgdG8gbWFudGlzc2EgYW5kIGFkanVzdCBtYW50aXNzYSAmIGV4cG9uZW50IGJpdHMuCisgICAg
Ly8gNC4gR2VuZXJhdGUgZG91YmxlIGJ5IGNvbWJpbmluZyAoMSkgYW5kICgzKS4KKworICAgIGNv
bnN0IHVuc2lnbmVkIGxlbmd0aCA9IGJpZ0ludC0+bGVuZ3RoKCk7CisgICAgY29uc3QgYm9vbCBz
aWduID0gYmlnSW50LT5zaWduKCk7CisgICAgY29uc3QgRGlnaXQgbXNkID0gYmlnSW50LT5kaWdp
dChsZW5ndGggLSAxKTsKKyAgICBjb25zdCB1bnNpZ25lZCBtc2RMZWFkaW5nWmVyb3MgPSBjbHoo
bXNkKTsKKyAgICBjb25zdCBzaXplX3QgYml0TGVuZ3RoID0gbGVuZ3RoICogZGlnaXRCaXRzIC0g
bXNkTGVhZGluZ1plcm9zOworICAgIC8vIERvdWJsZSdzIGV4cG9uZW50IGJpdHMgb3ZlcmZsb3cu
CisgICAgaWYgKGJpdExlbmd0aCA+IDEwMjQpCisgICAgICAgIHJldHVybiBqc0RvdWJsZU51bWJl
cihzaWduID8gLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSA6IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7CisgICAgdWludDY0X3QgZXhwb25l
bnQgPSBiaXRMZW5ndGggLSAxOworICAgIHVpbnQ2NF90IGN1cnJlbnREaWdpdCA9IG1zZDsKKyAg
ICBpbnQzMl90IGRpZ2l0SW5kZXggPSBsZW5ndGggLSAxOworICAgIGludDMyX3Qgc2hpZnRBbW91
bnQgPSBtc2RMZWFkaW5nWmVyb3MgKyAxICsgKDY0IC0gZGlnaXRCaXRzKTsKKyAgICBBU1NFUlQo
MSA8PSBzaGlmdEFtb3VudCk7CisgICAgQVNTRVJUKHNoaWZ0QW1vdW50IDw9IDY0KTsKKyAgICB1
aW50NjRfdCBtYW50aXNzYSA9IChzaGlmdEFtb3VudCA9PSA2NCkgPyAwIDogY3VycmVudERpZ2l0
IDw8IHNoaWZ0QW1vdW50OworICAgIG1hbnRpc3NhID4+PSAxMjsgLy8gKDEyID0gNjQgLSA1Mikg
KGRvdWJsZSdzIG1hbnRpc3NhIGJpdCBjb3VudCkuCisgICAgaW50MzJfdCBtYW50aXNzYUJpdHNV
bnNldCA9IHNoaWZ0QW1vdW50IC0gMTI7CisKKyAgICAvLyBJZiBub3QgYWxsIG1hbnRpc3NhIGJp
dHMgYXJlIGRlZmluZWQgeWV0LCBnZXQgbW9yZSBkaWdpdHMgYXMgbmVlZGVkLgorICAgIC8vIENv
bGxlY3QgbWFudGlzc2EgNTJiaXRzIGZyb20gc2V2ZXJhbCBkaWdpdHMuCisgICAgaWYgKG1hbnRp
c3NhQml0c1Vuc2V0ID49IHN0YXRpY19jYXN0PGludDMyX3Q+KGRpZ2l0Qml0cykgJiYgZGlnaXRJ
bmRleCA+IDApIHsKKyAgICAgICAgZGlnaXRJbmRleC0tOworICAgICAgICBjdXJyZW50RGlnaXQg
PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oYmlnSW50LT5kaWdpdChkaWdpdEluZGV4KSk7CisgICAg
ICAgIG1hbnRpc3NhIHw9IChjdXJyZW50RGlnaXQgPDwgKG1hbnRpc3NhQml0c1Vuc2V0IC0gZGln
aXRCaXRzKSk7CisgICAgICAgIG1hbnRpc3NhQml0c1Vuc2V0IC09IGRpZ2l0Qml0czsKKyAgICB9
CisKKyAgICBpZiAobWFudGlzc2FCaXRzVW5zZXQgPiAwICYmIGRpZ2l0SW5kZXggPiAwKSB7Cisg
ICAgICAgIEFTU0VSVChtYW50aXNzYUJpdHNVbnNldCA8IGRpZ2l0Qml0cyk7CisgICAgICAgIGRp
Z2l0SW5kZXgtLTsKKyAgICAgICAgY3VycmVudERpZ2l0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KGJpZ0ludC0+ZGlnaXQoZGlnaXRJbmRleCkpOworICAgICAgICBtYW50aXNzYSB8PSAoY3VycmVu
dERpZ2l0ID4+IChkaWdpdEJpdHMgLSBtYW50aXNzYUJpdHNVbnNldCkpOworICAgICAgICBtYW50
aXNzYUJpdHNVbnNldCAtPSBkaWdpdEJpdHM7CisgICAgfQorCisgICAgLy8gSWYgdGhlcmUgYXJl
IHVuY29uc3VtZWQgZGlnaXRzIGxlZnQsIHdlIG1heSBoYXZlIHRvIHJvdW5kLgorICAgIFJvdW5k
aW5nUmVzdWx0IHJvdW5kaW5nID0gZGVjaWRlUm91bmRpbmcoYmlnSW50LCBtYW50aXNzYUJpdHNV
bnNldCwgZGlnaXRJbmRleCwgY3VycmVudERpZ2l0KTsKKyAgICBpZiAocm91bmRpbmcgPT0gUm91
bmRpbmdSZXN1bHQ6OlJvdW5kVXAgfHwgKHJvdW5kaW5nID09IFJvdW5kaW5nUmVzdWx0OjpUaWUg
JiYgKG1hbnRpc3NhICYgMSkgPT0gMSkpIHsKKyAgICAgICAgKyttYW50aXNzYTsKKyAgICAgICAg
Ly8gSW5jcmVtZW50aW5nIHRoZSBtYW50aXNzYSBjYW4gb3ZlcmZsb3cgdGhlIG1hbnRpc3NhIGJp
dHMuIEluIHRoYXQgY2FzZSB0aGUgbmV3IG1hbnRpc3NhIHdpbGwgYmUgYWxsIHplcm8gKHBsdXMg
aGlkZGVuIGJpdCkuCisgICAgICAgIGlmICgobWFudGlzc2EgPj4gZG91YmxlUGh5c2ljYWxTaWdu
aWZpY2FuZFNpemUpICE9IDApIHsKKyAgICAgICAgICAgIG1hbnRpc3NhID0gMDsKKyAgICAgICAg
ICAgIGV4cG9uZW50Kys7CisgICAgICAgICAgICAvLyBJbmNyZW1lbnRpbmcgdGhlIGV4cG9uZW50
IGNhbiBvdmVyZmxvdyB0b28uCisgICAgICAgICAgICBpZiAoZXhwb25lbnQgPiAxMDIzKQorICAg
ICAgICAgICAgICAgIHJldHVybiBqc0RvdWJsZU51bWJlcihzaWduID8gLXN0ZDo6bnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSA6IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
aW5maW5pdHkoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB1aW50NjRfdCBzaWduQml0ID0g
c2lnbiA/IChzdGF0aWNfY2FzdDx1aW50NjRfdD4oMSkgPDwgNjMpIDogMDsKKyAgICBleHBvbmVu
dCA9IChleHBvbmVudCArIDB4M2ZmKSA8PCBkb3VibGVQaHlzaWNhbFNpZ25pZmljYW5kU2l6ZTsg
Ly8gMHgzZmYgaXMgZG91YmxlIGV4cG9uZW50IGJpYXMuCisgICAgdWludDY0X3QgZG91YmxlQml0
cyA9IHNpZ25CaXQgfCBleHBvbmVudCB8IG1hbnRpc3NhOworICAgIHJldHVybiBqc051bWJlcihi
aXR3aXNlX2Nhc3Q8ZG91YmxlPihkb3VibGVCaXRzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggNDQyNjdiYzZi
MzAwMWRiZjNhYjYzZWMyODNmNjQ1MWE4ZDk2NjQ1Ni4uMTc4YzNmZDlhMTY2OTkxMmZkNjEyOTli
MGNhZDliNWZhM2NiZjk0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCaWdJbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0lu
dC5oCkBAIC0yNTMsNiArMjUzLDE3IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpT
Q2VsbCB7CiAgICAgICAgIHJldHVybiB0cnlDb252ZXJ0VG9CaWdJbnQzMihzaWduZWRSaWdodFNo
aWZ0SGVhcChnbG9iYWxPYmplY3QsIHgsIHkpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgSlNWYWx1
ZSB0b051bWJlckhlYXAoSlNCaWdJbnQqKTsKKyAgICBzdGF0aWMgSlNWYWx1ZSB0b051bWJlcihK
U1ZhbHVlIGJpZ0ludCkKKyAgICB7CisgICAgICAgIEFTU0VSVChiaWdJbnQuaXNCaWdJbnQoKSk7
CisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICBpZiAoYmlnSW50LmlzQmlnSW50MzIoKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc051bWJlcihiaWdJbnQuYmlnSW50MzJBc0ludDMyKCkpOworI2Vu
ZGlmCisgICAgICAgIHJldHVybiB0b051bWJlckhlYXAoanNDYXN0PEpTQmlnSW50Kj4oYmlnSW50
KSk7CisgICAgfQorCiAgICAgRGlnaXQgZGlnaXQodW5zaWduZWQpOwogICAgIHZvaWQgc2V0RGln
aXQodW5zaWduZWQsIERpZ2l0KTsgLy8gVXNlIG9ubHkgd2hlbiBpbml0aWFsaXppbmcuCiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgSlNCaWdJbnQqIHJpZ2h0VHJpbShWTSYpOwpAQCAtMjY1LDYgKzI3
Niw4IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKICAgICBz
dGF0aWMgY29uc3RleHByIERpZ2l0IGhhbGZEaWdpdE1hc2sgPSAoMXVsbCA8PCBoYWxmRGlnaXRC
aXRzKSAtIDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4SW50ID0gMHg3RkZGRkZGRjsK
KworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZG91YmxlUGh5c2ljYWxTaWduaWZpY2Fu
ZFNpemUgPSA1MjsKICAgICAKICAgICAvLyBUaGUgbWF4aW11bSBsZW5ndGggdGhhdCB0aGUgY3Vy
cmVudCBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyB3b3VsZCBiZQogICAgIC8vIG1heEludCAvIGRp
Z2l0Qml0cy4gSG93ZXZlciwgd2UgdXNlIGEgbG93ZXIgbGltaXQgZm9yIG5vdywgYmVjYXVzZQpA
QCAtMjkzLDYgKzMwNiwxNCBAQCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwg
ewogICAgIERpZ2l0IGFic29sdXRlSW5wbGFjZVN1YihKU0JpZ0ludCogc3VidHJhaGVuZCwgdW5z
aWduZWQgc3RhcnRJbmRleCk7CiAgICAgdm9pZCBpbnBsYWNlUmlnaHRTaGlmdCh1bnNpZ25lZCBz
aGlmdCk7CiAKKyAgICBlbnVtIGNsYXNzIFJvdW5kaW5nUmVzdWx0IHsKKyAgICAgICAgUm91bmRE
b3duLAorICAgICAgICBUaWUsCisgICAgICAgIFJvdW5kVXAKKyAgICB9OworCisgICAgc3RhdGlj
IFJvdW5kaW5nUmVzdWx0IGRlY2lkZVJvdW5kaW5nKEpTQmlnSW50KiwgaW50MzJfdCBtYW50aXNz
YUJpdHNVbnNldCwgaW50MzJfdCBkaWdpdEluZGV4LCB1aW50NjRfdCBjdXJyZW50RGlnaXQpOwor
CiAgICAgZW51bSBjbGFzcyBFeHRyYURpZ2l0c0hhbmRsaW5nIHsKICAgICAgICAgQ29weSwKICAg
ICAgICAgU2tpcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
Q29uc3RydWN0b3IuY3BwCmluZGV4IDc4NjE2NjBkNjBiZWI2M2QwMjU1NGE1ZmYzY2Y0MTA5NDY5
MzY5NmMuLjQ5MDBlMTU3NGI2ZTUyOTQzZDNkYjRmODhlYmY3N2QxOGVlZGRhNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAK
QEAgLTkwLDggKzkwLDE4IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICBkb3VibGUgbiA9IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID8gY2Fs
bEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpIDogMDsK
LSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBk
b3VibGUgbiA9IDA7CisgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKSB7CisgICAg
ICAgIEpTVmFsdWUgbnVtZXJpYyA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkudG9O
dW1lcmljKGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CisgICAgICAgIGlmIChudW1lcmljLmlzTnVtYmVyKCkpCisgICAgICAgICAgICBuID0g
bnVtZXJpYy5hc051bWJlcigpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG51bWVyaWMg
PSBKU0JpZ0ludDo6dG9OdW1iZXIobnVtZXJpYyk7CisgICAgICAgICAgICBBU1NFUlQobnVtZXJp
Yy5pc051bWJlcigpKTsKKyAgICAgICAgICAgIG4gPSBudW1lcmljLmFzTnVtYmVyKCk7CisgICAg
ICAgIH0KKyAgICB9CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZy
YW1lLT5uZXdUYXJnZXQoKSk7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdUYXJnZXQg
PT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCkBAIC0xMDcsNyArMTE3LDE2IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBnCiAvLyBFQ01BIDE1LjcuMgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoIWNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID8gMCA6IGNhbGxGcmFtZS0+dW5j
aGVja2VkQXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpOworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisgICAgaWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSkKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7CisgICAgSlNWYWx1ZSBudW1lcmljID0g
Y2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051bWVyaWMoZ2xvYmFsT2JqZWN0KTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGlmIChudW1lcmljLmlz
TnVtYmVyKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobnVtZXJpYyk7CisgICAg
QVNTRVJUKG51bWVyaWMuaXNCaWdJbnQoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U0JpZ0ludDo6dG9OdW1iZXIobnVtZXJpYykpOwogfQogCiAvLyBFQ01BLTI2MiAyMC4xLjIuMwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAy
MGZmYWE3ZWVkZGNiYWU5NzMxNDliZjllMWM0OTIwNjQ0ZmNhY2UxLi41NThmMWJiODg5YzUxMTBj
ZTVjOTI4ZjIxMjA1ZjljYzBlNDhmZTM1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA0LTI3ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gTnVtYmVyQ29u
c3RydWN0b3Igc2hvdWxkIGFjY2VwdCBCaWdJbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL251bWJlci1jb25zdHJ1Y3Rvci1iaWdpbnQt
ZGZnLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGNvbnZlcnQpOgor
ICAgICAgICAqIHN0cmVzcy9udW1iZXItY29uc3RydWN0b3ItYmlnaW50LmpzOiBBZGRlZC4KKyAg
ICAgICAgKHNob3VsZEJlKToKKwogMjAyMC0wNC0yNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWth
bGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgU3ltYm9sIHNob3VsZCBoYXZlIFtbQ29uc3RydWN0
XV0gaW50ZXJuYWwgbWV0aG9kCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9udW1iZXItY29u
c3RydWN0b3ItYmlnaW50LWRmZy5qcyBiL0pTVGVzdHMvc3RyZXNzL251bWJlci1jb25zdHJ1Y3Rv
ci1iaWdpbnQtZGZnLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxYmRhZThjNjIzYzI4YjJiZGI0NzkyZGUxNTAx
OWQ5ZjJiZjI5N2EKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9udW1iZXItY29u
c3RydWN0b3ItYmlnaW50LWRmZy5qcwpAQCAtMCwwICsxLDUzIEBACitmdW5jdGlvbiBzaG91bGRC
ZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rp
b24gY29udmVydChiaWdJbnQpCit7CisgICAgcmV0dXJuIE51bWJlcihiaWdJbnQpOworfQorbm9J
bmxpbmUoY29udmVydCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBz
aG91bGRCZShjb252ZXJ0KDBuKSwgMCk7CisgICAgc2hvdWxkQmUoY29udmVydCgweDdmZmZmZmZm
biksIDB4N2ZmZmZmZmYpOworICAgIHNob3VsZEJlKGNvbnZlcnQoLTB4N2ZmZmZmZmZuIC0gMW4p
LCAtMHg4MDAwMDAwMCk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAg
ICBzaG91bGRCZShjb252ZXJ0KDB4ODAwMDAwMDBuKSwgMHg4MDAwMDAwMCk7CisgICAgc2hvdWxk
QmUoY29udmVydCgweDdmZmZmZmZmbiArIDFuKSwgMHg4MDAwMDAwMCk7CisgICAgc2hvdWxkQmUo
Y29udmVydCgweDdmZmZmZmZmbiArIDJuKSwgMHg4MDAwMDAwMSk7CisgICAgc2hvdWxkQmUoY29u
dmVydCgtMHg3ZmZmZmZmZm4gLSAybiksIC0weDgwMDAwMDAxKTsKK30KKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHNob3VsZEJlKGNvbnZlcnQoMm4qKjUzbiksIDkwMDcx
OTkyNTQ3NDA5OTIpOworICAgIHNob3VsZEJlKGNvbnZlcnQoMm4qKjUzbiArIDFuKSwgOTAwNzE5
OTI1NDc0MDk5Mik7CisgICAgc2hvdWxkQmUoY29udmVydCgybioqNTNuICsgMm4pLCA5MDA3MTk5
MjU0NzQwOTk0KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KDJuKio1M24gKyAzbiksIDkwMDcxOTky
NTQ3NDA5OTYpOworICAgIHNob3VsZEJlKGNvbnZlcnQoMm4qKjUzbiArIDRuKSwgOTAwNzE5OTI1
NDc0MDk5Nik7CisKKyAgICBzaG91bGRCZShjb252ZXJ0KC0oMm4qKjUzbikpLCAtOTAwNzE5OTI1
NDc0MDk5Mik7CisgICAgc2hvdWxkQmUoY29udmVydCgtKDJuKio1M24gKyAxbikpLCAtOTAwNzE5
OTI1NDc0MDk5Mik7CisgICAgc2hvdWxkQmUoY29udmVydCgtKDJuKio1M24gKyAybikpLCAtOTAw
NzE5OTI1NDc0MDk5NCk7CisgICAgc2hvdWxkQmUoY29udmVydCgtKDJuKio1M24gKyAzbikpLCAt
OTAwNzE5OTI1NDc0MDk5Nik7CisgICAgc2hvdWxkQmUoY29udmVydCgtKDJuKio1M24gKyA0bikp
LCAtOTAwNzE5OTI1NDc0MDk5Nik7CisKKyAgICBzaG91bGRCZShjb252ZXJ0KDJuICoqICgxMDI0
biAtIDFuKSksIDguOTg4NDY1Njc0MzExNThlKzMwNyk7CisgICAgc2hvdWxkQmUoY29udmVydCgy
biAqKiAoMTAyNG4gLSAxbikpLCA4Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworICAgIHNob3VsZEJl
KGNvbnZlcnQoMHgxZmZmZmZmZmZmZmZmZm4gPDwgOTcxbiksIE51bWJlci5NQVhfVkFMVUUpOwor
ICAgIHNob3VsZEJlKGNvbnZlcnQoMHgyMDAwMDAwMDAwMDAwMG4gPDwgOTcxbiksIEluZmluaXR5
KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KDB4MWZmZmZmZmZmZmZmZmZmbiA8PCA5NjZuKSwgOC45
ODg0NjU2NzQzMTE1OGUrMzA3KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KDB4M2ZmZmZmZmZmZmZm
ZmZuIDw8IDk3MG4pLCBJbmZpbml0eSk7CisgICAgc2hvdWxkQmUoY29udmVydCgweDNmZmZmZmZm
ZmZmZmZmbiA8PCA5NjluKSwgOC45ODg0NjU2NzQzMTE1OGUrMzA3KTsKKworICAgIHNob3VsZEJl
KGNvbnZlcnQoLSgybiAqKiAoMTAyNG4gLSAxbikpKSwgLTguOTg4NDY1Njc0MzExNThlKzMwNyk7
CisgICAgc2hvdWxkQmUoY29udmVydCgtKDJuICoqICgxMDI0biAtIDFuKSkpLCAtOC45ODg0NjU2
NzQzMTE1OGUrMzA3KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KC0weDFmZmZmZmZmZmZmZmZmbiA8
PCA5NzFuKSwgLU51bWJlci5NQVhfVkFMVUUpOworICAgIHNob3VsZEJlKGNvbnZlcnQoLTB4MjAw
MDAwMDAwMDAwMDBuIDw8IDk3MW4pLCAtSW5maW5pdHkpOworICAgIHNob3VsZEJlKGNvbnZlcnQo
LTB4MWZmZmZmZmZmZmZmZmZmbiA8PCA5NjZuKSwgLTguOTg4NDY1Njc0MzExNThlKzMwNyk7Cisg
ICAgc2hvdWxkQmUoY29udmVydCgtMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTcwbiksIC1JbmZpbml0
eSk7CisgICAgc2hvdWxkQmUoY29udmVydCgtMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTY5biksIC04
Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbnVt
YmVyLWNvbnN0cnVjdG9yLWJpZ2ludC5qcyBiL0pTVGVzdHMvc3RyZXNzL251bWJlci1jb25zdHJ1
Y3Rvci1iaWdpbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM5NGNhNWMyZjRhN2FiN2RhODljMDA0NzEyYzkx
MTA4MjBkMzhjOQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL251bWJlci1jb25z
dHJ1Y3Rvci1iaWdpbnQuanMKQEAgLTAsMCArMSw4NCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0
dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3Nob3VsZEJlKE51
bWJlcigwbiksIDApOworCisvLyBBcm91bmQgSW50MzIgbWF4L21pbi4KK3Nob3VsZEJlKE51bWJl
cigweDdmZmZmZmZmbiksIDB4N2ZmZmZmZmYpOworc2hvdWxkQmUoTnVtYmVyKDB4ODAwMDAwMDBu
KSwgMHg4MDAwMDAwMCk7CitzaG91bGRCZShOdW1iZXIoMHg3ZmZmZmZmZm4gKyAxbiksIDB4ODAw
MDAwMDApOworc2hvdWxkQmUoTnVtYmVyKDB4N2ZmZmZmZmZuICsgMm4pLCAweDgwMDAwMDAxKTsK
K3Nob3VsZEJlKE51bWJlcigtMHg3ZmZmZmZmZm4gLSAxbiksIC0weDgwMDAwMDAwKTsKK3Nob3Vs
ZEJlKE51bWJlcigtMHg3ZmZmZmZmZm4gLSAybiksIC0weDgwMDAwMDAxKTsKKworLy8gQXJvdW5k
IEludDUyIG1heC9taW4uCitzaG91bGRCZShOdW1iZXIoMm4qKjUzbiksIDkwMDcxOTkyNTQ3NDA5
OTIpOworc2hvdWxkQmUoTnVtYmVyKDJuKio1M24gKyAxbiksIDkwMDcxOTkyNTQ3NDA5OTIpOwor
c2hvdWxkQmUoTnVtYmVyKDJuKio1M24gKyAybiksIDkwMDcxOTkyNTQ3NDA5OTQpOworc2hvdWxk
QmUoTnVtYmVyKDJuKio1M24gKyAzbiksIDkwMDcxOTkyNTQ3NDA5OTYpOworc2hvdWxkQmUoTnVt
YmVyKDJuKio1M24gKyA0biksIDkwMDcxOTkyNTQ3NDA5OTYpOworCitzaG91bGRCZShOdW1iZXIo
LSgybioqNTNuKSksIC05MDA3MTk5MjU0NzQwOTkyKTsKK3Nob3VsZEJlKE51bWJlcigtKDJuKio1
M24gKyAxbikpLCAtOTAwNzE5OTI1NDc0MDk5Mik7CitzaG91bGRCZShOdW1iZXIoLSgybioqNTNu
ICsgMm4pKSwgLTkwMDcxOTkyNTQ3NDA5OTQpOworc2hvdWxkQmUoTnVtYmVyKC0oMm4qKjUzbiAr
IDNuKSksIC05MDA3MTk5MjU0NzQwOTk2KTsKK3Nob3VsZEJlKE51bWJlcigtKDJuKio1M24gKyA0
bikpLCAtOTAwNzE5OTI1NDc0MDk5Nik7CisKKy8vIEFyb3VuZCBJbmZpbml0eS4KK3Nob3VsZEJl
KE51bWJlcigybiAqKiAoMTAyNG4gLSAxbikpLCA4Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworc2hv
dWxkQmUoTnVtYmVyKDJuICoqICgxMDI0biAtIDFuKSksIDguOTg4NDY1Njc0MzExNThlKzMwNyk7
CitzaG91bGRCZShOdW1iZXIoMHgxZmZmZmZmZmZmZmZmZm4gPDwgOTcxbiksIE51bWJlci5NQVhf
VkFMVUUpOworc2hvdWxkQmUoTnVtYmVyKDB4MjAwMDAwMDAwMDAwMDBuIDw8IDk3MW4pLCBJbmZp
bml0eSk7CitzaG91bGRCZShOdW1iZXIoMHgxZmZmZmZmZmZmZmZmZmZuIDw8IDk2Nm4pLCA4Ljk4
ODQ2NTY3NDMxMTU4ZSszMDcpOworc2hvdWxkQmUoTnVtYmVyKDB4M2ZmZmZmZmZmZmZmZmZuIDw8
IDk3MG4pLCBJbmZpbml0eSk7CitzaG91bGRCZShOdW1iZXIoMHgzZmZmZmZmZmZmZmZmZm4gPDwg
OTY5biksIDguOTg4NDY1Njc0MzExNThlKzMwNyk7CisKK3Nob3VsZEJlKE51bWJlcigtKDJuICoq
ICgxMDI0biAtIDFuKSkpLCAtOC45ODg0NjU2NzQzMTE1OGUrMzA3KTsKK3Nob3VsZEJlKE51bWJl
cigtKDJuICoqICgxMDI0biAtIDFuKSkpLCAtOC45ODg0NjU2NzQzMTE1OGUrMzA3KTsKK3Nob3Vs
ZEJlKE51bWJlcigtMHgxZmZmZmZmZmZmZmZmZm4gPDwgOTcxbiksIC1OdW1iZXIuTUFYX1ZBTFVF
KTsKK3Nob3VsZEJlKE51bWJlcigtMHgyMDAwMDAwMDAwMDAwMG4gPDwgOTcxbiksIC1JbmZpbml0
eSk7CitzaG91bGRCZShOdW1iZXIoLTB4MWZmZmZmZmZmZmZmZmZmbiA8PCA5NjZuKSwgLTguOTg4
NDY1Njc0MzExNThlKzMwNyk7CitzaG91bGRCZShOdW1iZXIoLTB4M2ZmZmZmZmZmZmZmZmZuIDw8
IDk3MG4pLCAtSW5maW5pdHkpOworc2hvdWxkQmUoTnVtYmVyKC0weDNmZmZmZmZmZmZmZmZmbiA8
PCA5NjluKSwgLTguOTg4NDY1Njc0MzExNThlKzMwNyk7CisKK3Nob3VsZEJlKCtuZXcgTnVtYmVy
KDBuKSwgK25ldyBOdW1iZXIoMCkpOworCisvLyBBcm91bmQgSW50MzIgbWF4L21pbi4KK3Nob3Vs
ZEJlKCtuZXcgTnVtYmVyKDB4N2ZmZmZmZmZuKSwgK25ldyBOdW1iZXIoMHg3ZmZmZmZmZikpOwor
c2hvdWxkQmUoK25ldyBOdW1iZXIoMHg4MDAwMDAwMG4pLCArbmV3IE51bWJlcigweDgwMDAwMDAw
KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigweDdmZmZmZmZmbiArIDFuKSwgK25ldyBOdW1iZXIo
MHg4MDAwMDAwMCkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMHg3ZmZmZmZmZm4gKyAybiksICtu
ZXcgTnVtYmVyKDB4ODAwMDAwMDEpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0weDdmZmZmZmZm
biAtIDFuKSwgK25ldyBOdW1iZXIoLTB4ODAwMDAwMDApKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVy
KC0weDdmZmZmZmZmbiAtIDJuKSwgK25ldyBOdW1iZXIoLTB4ODAwMDAwMDEpKTsKKworLy8gQXJv
dW5kIEludDUyIG1heC9taW4uCitzaG91bGRCZSgrbmV3IE51bWJlcigybioqNTNuKSwgK25ldyBO
dW1iZXIoOTAwNzE5OTI1NDc0MDk5MikpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMm4qKjUzbiAr
IDFuKSwgK25ldyBOdW1iZXIoOTAwNzE5OTI1NDc0MDk5MikpOworc2hvdWxkQmUoK25ldyBOdW1i
ZXIoMm4qKjUzbiArIDJuKSwgK25ldyBOdW1iZXIoOTAwNzE5OTI1NDc0MDk5NCkpOworc2hvdWxk
QmUoK25ldyBOdW1iZXIoMm4qKjUzbiArIDNuKSwgK25ldyBOdW1iZXIoOTAwNzE5OTI1NDc0MDk5
NikpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMm4qKjUzbiArIDRuKSwgK25ldyBOdW1iZXIoOTAw
NzE5OTI1NDc0MDk5NikpOworCitzaG91bGRCZSgrbmV3IE51bWJlcigtKDJuKio1M24pKSwgK25l
dyBOdW1iZXIoLTkwMDcxOTkyNTQ3NDA5OTIpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0oMm4q
KjUzbiArIDFuKSksICtuZXcgTnVtYmVyKC05MDA3MTk5MjU0NzQwOTkyKSk7CitzaG91bGRCZSgr
bmV3IE51bWJlcigtKDJuKio1M24gKyAybikpLCArbmV3IE51bWJlcigtOTAwNzE5OTI1NDc0MDk5
NCkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoLSgybioqNTNuICsgM24pKSwgK25ldyBOdW1iZXIo
LTkwMDcxOTkyNTQ3NDA5OTYpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0oMm4qKjUzbiArIDRu
KSksICtuZXcgTnVtYmVyKC05MDA3MTk5MjU0NzQwOTk2KSk7CisKKy8vIEFyb3VuZCBJbmZpbml0
eS4KK3Nob3VsZEJlKCtuZXcgTnVtYmVyKDJuICoqICgxMDI0biAtIDFuKSksICtuZXcgTnVtYmVy
KDguOTg4NDY1Njc0MzExNThlKzMwNykpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMm4gKiogKDEw
MjRuIC0gMW4pKSwgK25ldyBOdW1iZXIoOC45ODg0NjU2NzQzMTE1OGUrMzA3KSk7CitzaG91bGRC
ZSgrbmV3IE51bWJlcigweDFmZmZmZmZmZmZmZmZmbiA8PCA5NzFuKSwgK25ldyBOdW1iZXIoTnVt
YmVyLk1BWF9WQUxVRSkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4g
PDwgOTcxbiksICtuZXcgTnVtYmVyKEluZmluaXR5KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigw
eDFmZmZmZmZmZmZmZmZmZm4gPDwgOTY2biksICtuZXcgTnVtYmVyKDguOTg4NDY1Njc0MzExNThl
KzMwNykpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTcwbiks
ICtuZXcgTnVtYmVyKEluZmluaXR5KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigweDNmZmZmZmZm
ZmZmZmZmbiA8PCA5NjluKSwgK25ldyBOdW1iZXIoOC45ODg0NjU2NzQzMTE1OGUrMzA3KSk7CisK
K3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0oMm4gKiogKDEwMjRuIC0gMW4pKSksICtuZXcgTnVtYmVy
KC04Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0oMm4gKiog
KDEwMjRuIC0gMW4pKSksICtuZXcgTnVtYmVyKC04Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpKTsKK3No
b3VsZEJlKCtuZXcgTnVtYmVyKC0weDFmZmZmZmZmZmZmZmZmbiA8PCA5NzFuKSwgK25ldyBOdW1i
ZXIoLU51bWJlci5NQVhfVkFMVUUpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0weDIwMDAwMDAw
MDAwMDAwbiA8PCA5NzFuKSwgK25ldyBOdW1iZXIoLUluZmluaXR5KSk7CitzaG91bGRCZSgrbmV3
IE51bWJlcigtMHgxZmZmZmZmZmZmZmZmZmZuIDw8IDk2Nm4pLCArbmV3IE51bWJlcigtOC45ODg0
NjU2NzQzMTE1OGUrMzA3KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigtMHgzZmZmZmZmZmZmZmZm
Zm4gPDwgOTcwbiksICtuZXcgTnVtYmVyKC1JbmZpbml0eSkpOworc2hvdWxkQmUoK25ldyBOdW1i
ZXIoLTB4M2ZmZmZmZmZmZmZmZmZuIDw8IDk2OW4pLCArbmV3IE51bWJlcigtOC45ODg0NjU2NzQz
MTE1OGUrMzA3KSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlh
bWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggMGMxNDcxYzAwYmI4
MWVkNWU1ZGQ0ZjAzMzQzYTk2MTFjYTg4YWRiOS4uZjBjMDJmM2YwZGZhYzkwZGRiY2Y1YWFhN2Vm
YTBhOGIyOTQxZWY4MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55
YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMTA2OCw5ICsx
MDY4LDYgQEAgdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL3VuaWNv
ZGUuanM6CiB0ZXN0L2J1aWx0LWlucy9KU09OL3BhcnNlL3Jldml2ZXItb2JqZWN0LW5vbi1jb25m
aWd1cmFibGUtcHJvcC1jcmVhdGUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIFNhbWVWYWx1ZSjCqzIywrssIMKrMsK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMjLCuywgwqsywrspIHRvIGJlIHRy
dWUnCi10ZXN0L2J1aWx0LWlucy9OdW1iZXIvYmlnaW50LWNvbnZlcnNpb24uanM6Ci0gIGRlZmF1
bHQ6ICJUeXBlRXJyb3I6IENvbnZlcnNpb24gZnJvbSAnQmlnSW50JyB0byAnbnVtYmVyJyBpcyBu
b3QgYWxsb3dlZC4iCi0gIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiBDb252ZXJzaW9uIGZyb20g
J0JpZ0ludCcgdG8gJ251bWJlcicgaXMgbm90IGFsbG93ZWQuIgogdGVzdC9idWlsdC1pbnMvT2Jq
ZWN0L2VudHJpZXMvb3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgogICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1l
IGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwg
YV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397657</attachid>
            <date>2020-04-27 01:19:25 -0700</date>
            <delta_ts>2020-04-27 01:27:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210835-20200427011914.patch</filename>
            <type>text/plain</type>
            <size>32951</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MWE1NDEzYmM1MmQzNjc4ZGZjNzY4ZmUwNjVlMzYwNWEyNjJmMjNjLi43MjRjNmExNzIzYTA5ZTNi
MjVlMzBjNWM2NTdmNTI0M2Y1NDFiZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MCBAQAorMjAyMC0wNC0yNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE51bWJlckNvbnN0cnVjdG9yIHNob3VsZCBhY2NlcHQgQmlnSW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA4MzUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIG91ciBOdW1iZXIgY29uc3RydWN0b3IgYmVoYXZpb3IgdG8gYWNjZXB0IEJpZ0lu
dC4gQWNjb3JkaW5nIHRvIHRoZSBzcGVjWzFdLAorICAgICAgICBOdW1iZXIgY29uc3RydWN0b3Ig
c2hvdWxkIGFjY2VwdCBCaWdJbnQgYW5kIHNob3VsZCBnZW5lcmF0ZSBudW1iZXJzIGZyb20gdGhh
dC4KKworICAgICAgICBXZSBwb3J0IFY4J3MgQmlnSW50IHRvIGRvdWJsZSBjb252ZXJzaW9uIGNv
ZGUgYXMgd2UgZGlkIGZvciB0aGUgb3RoZXIgSGVhcEJpZ0ludCBydW50aW1lIGZ1bmN0aW9ucy4K
KworICAgICAgICBBbmQgd2UgaW50cm9kdWNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvciBERkcgbm9k
ZSBhbmQgaGFuZGxlIE51bWJlciBjb25zdHJ1Y3RvciBjYWxsIHdpdGggQmlnSW50IGNvcnJlY3Rs
eQorICAgICAgICBpbiBERkcgYW5kIEZUTC4gUHJldmlvdXNseSB3ZSB3ZXJlIGVtaXR0aW5nIFRv
TnVtYmVyIERGRyBub2RlIGZvciBOdW1iZXIgY29uc3RydWN0b3IuIEJ1dCB0aGlzIGlzIHdyb25n
CisgICAgICAgIG5vdyBzaW5jZSBUb051bWJlciBkb2VzIG5vdCBhY2NlcHQgQmlnSW50IGFuZCB0
aHJvd3MgYW4gZXJyb3IsIGFuZCBOdW1iZXIgY29uc3RydWN0b3Igc2hvdWxkIG5vdCB1c2UKKyAg
ICAgICAgVG9OdW1iZXIgdG8gaW1wbGVtZW50IGl0cyBpbXBsZW1lbnRhdGlvbi4gU28gd2Ugc2hv
dWxkIGludHJvZHVjZSBzbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzOiBDYWxsTnVtYmVyQ29u
c3RydWN0b3IKKyAgICAgICAgYXMgd2UgaW50cm9kdWNlZCBDYWxsU3RyaW5nQ29uc3RydWN0b3Ig
aW4gYWRkaXRpb24gdG8gVG9TdHJpbmcgREZHIG5vZGUuIEFuZCB3ZSBhZGQgYXBwcm9wcmlhdGUg
QmlnSW50MzIgcGF0aAorICAgICAgICB0byBlbWl0IGVmZmljaWVudCBDYWxsTnVtYmVyQ29uc3Ry
dWN0b3IgbWFjaGluZSBjb2RlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEy
NjIvI3NlYy1udW1iZXItY29uc3RydWN0b3ItbnVtYmVyLXZhbHVlCisKKyAgICAgICAgKiBkZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAg
ICAgICAqIGRmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAq
IGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQ
YXJzZXI6OmhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbik6CisgICAgICAgICogZGZnL0RG
R0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAg
KiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNv
bnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9l
c0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdG
aXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUp
OgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwVG9OdW1iZXJPclRvTnVtZXJp
Y09yQ2FsbE51bWJlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNl
OjpmaXh1cFRvTnVtZXJpYyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBUb051bWJlcik6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNIZWFwUHJlZGljdGlvbik6CisgICAgICAgICogZGZn
L0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAg
ICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVU
b051bWVyaWMpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2Fs
bE51bWJlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3Rv
cik6CisgICAgICAgICogcnVudGltZS9KU0JpZ0ludC5jcHA6CisgICAgICAgIChKU0M6OkpTQmln
SW50OjpkZWNpZGVSb3VuZGluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b051bWJlckhl
YXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAgICAgICAgKiBydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0TnVtYmVyQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsTnVtYmVyQ29uc3RydWN0b3IpOgorCiAyMDIwLTA0
LTI2ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBb
SlNDXSBDbGVhcmx5IGRpc3Rpbmd1aXNoIGlzQ29uc3RydWN0b3IgZnJvbSBnZXRDb25zdHJ1Y3RE
YXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggYmZjMTZkOWRhMjllMDg1YTgzYTA4OTk2NTMyODY1
NjVmNDU1NTI2MC4uNTk0MjYzOWNkMjEwZDEwZDhiZWY4MTA2MmJkYjE3NmYyMmU5NWFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaApAQCAtMjcxMSw2ICsyNzExLDQ1IEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2Ji
ZXJMaW1pCiAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCeXRlY29kZU51bWJlciB8
IFNwZWNCaWdJbnQpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIENhbGxOdW1i
ZXJDb25zdHJ1Y3RvcjogeworICAgICAgICBKU1ZhbHVlIGNoaWxkQ29uc3QgPSBmb3JOb2RlKG5v
ZGUtPmNoaWxkMSgpKS52YWx1ZSgpOworICAgICAgICBpZiAoY2hpbGRDb25zdCkgeworICAgICAg
ICAgICAgaWYgKGNoaWxkQ29uc3QuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgICAgIGlmIChu
b2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKKyAgICAgICAgICAgICAgICAg
ICAgZGlkRm9sZENsb2JiZXJXb3JsZCgpOworICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5v
ZGUsIGNoaWxkQ29uc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
I2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgIGlmIChjaGlsZENvbnN0LmlzQmlnSW50MzIo
KSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50
eXBlZFVzZSkKKyAgICAgICAgICAgICAgICAgICAgZGlkRm9sZENsb2JiZXJXb3JsZCgpOworICAg
ICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzTnVtYmVyKGNoaWxkQ29uc3QuYmlnSW50
MzJBc0ludDMyKCkpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyNl
bmRpZgorICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQo
KSA9PSBVbnR5cGVkVXNlIHx8IG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBCaWdJbnQzMlVz
ZSk7CisKKyAgICAgICAgaWYgKCEoZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlICYgflNw
ZWNCeXRlY29kZU51bWJlcikpIHsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29u
c3RhbnRGb2xkaW5nKHRydWUpOworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBVbnR5cGVkVXNlKQorICAgICAgICAgICAgICAgIGRpZEZvbGRDbG9iYmVyV29ybGQo
KTsKKyAgICAgICAgICAgIHNldEZvck5vZGUobm9kZSwgZm9yTm9kZShub2RlLT5jaGlsZDEoKSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAobm9kZS0+Y2hp
bGQxKCkudXNlS2luZCgpID09IEJpZ0ludDMyVXNlKSB7CisgICAgICAgICAgICBzZXRUeXBlRm9y
Tm9kZShub2RlLCBTcGVjSW50MzJPbmx5KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisKKyAgICAgICAgY2xvYmJlcldvcmxkKCk7CisgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9k
ZShub2RlLCBTcGVjQnl0ZWNvZGVOdW1iZXIpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAg
ICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJv
cGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JhY2t3YXJk
c1Byb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDM2ODY1YTUyM2Y1YWM4OGYzNmRkZTAwOTA4OWRm
ZWIyZTI0N2I1ZjguLjJjYzc0MjkwNTFhNTVlYmI4ZTcxMjdhYTliMWUzZjVkMzAxOTQ2NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJvcGFnYXRp
b25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYWNrd2FyZHNQ
cm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNDE1LDcgKzQxNSw4IEBAIGNsYXNzIEJhY2t3YXJkc1By
b3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgVG9QcmltaXRpdmU6CiAgICAgICAgIGNhc2UgVG9OdW1iZXI6Ci0gICAgICAgIGNhc2UgVG9O
dW1lcmljOiB7CisgICAgICAgIGNhc2UgVG9OdW1lcmljOgorICAgICAgICBjYXNlIENhbGxOdW1i
ZXJDb25zdHJ1Y3RvcjogewogICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCktPm1lcmdlRmxhZ3Mo
ZmxhZ3MpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMjA1NDRjY2Q3MzBlMWMx
YjRiNjhmYmVjNmZhMTk2OTJmZWNhYjI3Yy4uMWEzZWUzNTAxNGZhNDg0YmFiN2UzNjg4MGIyNDI0
YzlhMzRiM2YxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTQwMjcsNyArNDAyNyw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6Omhh
bmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbigKICAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzIDw9IDEpCiAgICAgICAgICAgICBzZXQocmVzdWx0LCBqc0NvbnN0YW50KGpz
TnVtYmVyKDApKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNldChyZXN1bHQsIGFkZFRv
R3JhcGgoVG9OdW1iZXIsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBnZXQodmlydHVh
bFJlZ2lzdGVyRm9yQXJndW1lbnRJbmNsdWRpbmdUaGlzKDEsIHJlZ2lzdGVyT2Zmc2V0KSkpKTsK
KyAgICAgICAgICAgIHNldChyZXN1bHQsIGFkZFRvR3JhcGgoQ2FsbE51bWJlckNvbnN0cnVjdG9y
LCBPcEluZm8oMCksIE9wSW5mbyhwcmVkaWN0aW9uKSwgZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFy
Z3VtZW50SW5jbHVkaW5nVGhpcygxLCByZWdpc3Rlck9mZnNldCkpKSk7CiAKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAppbmRleCBlNTgyOTA3NGYwMjJiODExYjdhZDllMDcwMmE4MTQzYTVjODU2MzY0Li4zZmM5NTI0
NjJjMTBhNWFjNWY3MTYwY2QzNGNlODRjZTAwYTA5YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtNjkyLDYgKzY5MiwxOSBAQCBTVVBQUkVTU19BU0FO
IHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5j
dG9yJiByZWFkLAogICAgICAgICB3cml0ZShIZWFwKTsKICAgICAgICAgcmV0dXJuOwogCisgICAg
Y2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6CisgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQx
KCkudXNlS2luZCgpKSB7CisgICAgICAgIGNhc2UgQmlnSW50MzJVc2U6CisgICAgICAgICAgICBk
ZWYoUHVyZVZhbHVlKG5vZGUpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBV
bnR5cGVkVXNlOgorICAgICAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgICAgICB3cml0ZShI
ZWFwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IERGR19DUkFTSChncmFwaCwgbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICB9CisKICAg
ICBjYXNlIEluYzoKICAgICBjYXNlIERlYzoKICAgICAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggNmExZmQwNzQwMDUyZTE1MGI1ODIwOGM0YmUz
NGQ4MjU3ZWY2M2NlOS4uOTBhMzM2NzM4OGU0ZTY4MjE5MDM4MWI2Mzk1OTZkNDliMjA4OWI2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQ
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHAKQEAgLTk1MSw3ICs5NTEsOCBAQCBjbGFzcyBDb25zdGFudEZvbGRpbmdQaGFz
ZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIGNhc2UgVG9OdW1iZXI6IHsKKyAgICAgICAgICAgIGNhc2UgVG9OdW1i
ZXI6CisgICAgICAgICAgICBjYXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjogewogICAgICAgICAg
ICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH5TcGVj
Qnl0ZWNvZGVOdW1iZXIpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNTc3OGQ3ZGI0MjhlMTVkM2FlZTQ4NGEw
NWVkYTMwZTRkY2FjYWI1ZC4uM2QzOTViNGRiZWFhMmQ4MGFhZjEyZTc1MzBlNzZhMTc3ZjJhYTAw
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtNDEzLDYgKzQx
MywxNSBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAjZW5kaWYgLy8g
bm90IEFTU0VSVF9FTkFCTEVECiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgY2FzZSBDYWxs
TnVtYmVyQ29uc3RydWN0b3I6CisgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCkudXNlS2lu
ZCgpKSB7CisgICAgICAgIGNhc2UgQmlnSW50MzJVc2U6CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGNhc2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOgogICAg
IGNhc2UgVG9TdHJpbmc6CiAgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCAz
YTZmZGM3NzI2ZWNiNzRjMWRhYzJmMGM0YTVmMjMwMmMwZDUzNTczLi45ZTA4ZmMyOWMxOTljMTA3
NWY2ZTUyMzJhNmQxOGRlNGEyMDBkNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKQEAgLTE1NDUsMTYgKzE1NDUsMTMgQEAgY2xhc3MgRml4dXBQaGFz
ZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAg
ICAgIGNhc2UgVG9OdW1iZXI6IHsKLSAgICAgICAgICAgIGZpeHVwVG9OdW1iZXIobm9kZSk7Cisg
ICAgICAgIGNhc2UgVG9OdW1iZXI6CisgICAgICAgIGNhc2UgVG9OdW1lcmljOgorICAgICAgICBj
YXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjogeworICAgICAgICAgICAgZml4dXBUb051bWJlck9y
VG9OdW1lcmljT3JDYWxsTnVtYmVyQ29uc3RydWN0b3Iobm9kZSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2UgVG9OdW1lcmljOiB7Ci0gICAgICAgICAgICBm
aXh1cFRvTnVtZXJpYyhub2RlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
ICAgICAgICAKICAgICAgICAgY2FzZSBUb1N0cmluZzoKICAgICAgICAgY2FzZSBDYWxsU3RyaW5n
Q29uc3RydWN0b3I6IHsKICAgICAgICAgICAgIGZpeHVwVG9TdHJpbmdPckNhbGxTdHJpbmdDb25z
dHJ1Y3Rvcihub2RlKTsKQEAgLTMwOTksMjkgKzMwOTYsMzcgQEAgY2xhc3MgRml4dXBQaGFzZSA6
IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIGZpeHVwVG9OdW1l
cmljKE5vZGUqIG5vZGUpCisgICAgdm9pZCBmaXh1cFRvTnVtYmVyT3JUb051bWVyaWNPckNhbGxO
dW1iZXJDb25zdHJ1Y3RvcihOb2RlKiBub2RlKQogICAgIHsKLSAgICAgICAgLy8gSWYgdGhlIHBy
ZWRpY3Rpb24gb2YgdGhlIGNoaWxkIGlzIEJpZ0ludCwgd2UgYXR0ZW1wdCB0byBjb252ZXJ0IFRv
TnVtZXJpYyB0byBJZGVudGl0eSwgc2luY2UgaXQgY2FuIG9ubHkgcmV0dXJuIGEgQmlnSW50IHdo
ZW4gZmVkIGEgQmlnSW50LgotICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUJpZ0ludCgpKSB7CisgICAgICAgIGlmIChub2RlLT5vcCgpID09IENhbGxOdW1iZXJDb25z
dHJ1Y3RvcikgewogI2lmIFVTRShCSUdJTlQzMikKLSAgICAgICAgICAgIGlmIChub2RlLT5jaGls
ZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoKSkKKyAgICAgICAgICAgIGlmIChub2RlLT5j
aGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoKSkgewogICAgICAgICAgICAgICAgIGZp
eEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIGVsc2UgaWYg
KG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVIZWFwQmlnSW50KCkpCi0gICAgICAgICAg
ICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgZml4RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKLSNlbHNlCi0gICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJh
dGUpOworICAgICAgICAgICAgICAgIG5vZGUtPnNldFJlc3VsdChOb2RlUmVzdWx0SW50MzIpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAg
ICAgbm9kZS0+Y29udmVydFRvSWRlbnRpdHkoKTsKLSAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCi0gICAgICAgIGZpeHVwVG9OdW1iZXIobm9kZSk7Ci0gICAgfQorICAgICAgICAvLyBJ
ZiB0aGUgcHJlZGljdGlvbiBvZiB0aGUgY2hpbGQgaXMgQmlnSW50LCB3ZSBhdHRlbXB0IHRvIGNv
bnZlcnQgVG9OdW1lcmljIHRvIElkZW50aXR5LCBzaW5jZSBpdCBjYW4gb25seSByZXR1cm4gYSBC
aWdJbnQgd2hlbiBmZWQgYSBCaWdJbnQuCisgICAgICAgIGlmIChub2RlLT5vcCgpID09IFRvTnVt
ZXJpYykgeworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQoKSkgeworI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+
Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKCkpCisgICAgICAgICAgICAgICAgICAg
IGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBl
bHNlIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlSGVhcEJpZ0ludCgpKQorICAg
ICAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55Qmln
SW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisjZWxzZQorICAgICAgICAgICAgICAgIGZpeEVkZ2U8
SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAg
bm9kZS0+Y29udmVydFRvSWRlbnRpdHkoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KIAotICAgIHZvaWQgZml4dXBUb051bWJlcihOb2RlKiBub2Rl
KQotICAgIHsKICAgICAgICAgLy8gQXQgZmlyc3QsIGF0dGVtcHQgdG8gZm9sZCBCb29sZWFuIG9y
IEludDMyIHRvIEludDMyLgogICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUludDMyT3JCb29sZWFuKCkpIHsKICAgICAgICAgICAgIGlmIChpc0ludDMyU3BlY3VsYXRp
b24obm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgKaW5kZXggZWJlMDE1ODY2YmI3OTkxNGFkMjRhOGJiYzY2ZGE5MWQ4Nzc1N2FmYS4uODcy
Y2QxMDdlNjhjZDA1ZGI3YWFiOGE0MWExY2NkMDlmZGY1OWZmZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKQEAgLTE3OTUsNiArMTc5NSw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAg
ICAgY2FzZSBUb051bWJlcjoKICAgICAgICAgY2FzZSBUb051bWVyaWM6CiAgICAgICAgIGNhc2Ug
VG9PYmplY3Q6CisgICAgICAgIGNhc2UgQ2FsbE51bWJlckNvbnN0cnVjdG9yOgogICAgICAgICBj
YXNlIFZhbHVlQml0QW5kOgogICAgICAgICBjYXNlIFZhbHVlQml0T3I6CiAgICAgICAgIGNhc2Ug
VmFsdWVCaXRYb3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXgg
ZGUzNTc2Mjg3MDM4YmJlZmJiOWE0ZDU2MjI3NWQ3Mzk4ZTVkZmFiMS4uNTYxNjgxNjRkZGY0NmQ4
ODAzNmJhZmZhOTNkMTkxODgwZTVkYTAwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaApAQCAtNDEyLDYgKzQxMiw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICAgICBtYWNybyhUb09iamVjdCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIG1hY3JvKENhbGxPYmplY3RDb25zdHJ1Y3RvciwgTm9kZVJlc3VsdEpTKSBcCiAg
ICAgbWFjcm8oQ2FsbFN0cmluZ0NvbnN0cnVjdG9yLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdl
bmVyYXRlKSBcCisgICAgbWFjcm8oQ2FsbE51bWJlckNvbnN0cnVjdG9yLCBOb2RlUmVzdWx0SlMg
fCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXgs
IE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOdW1iZXJUb1N0
cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKE1h
a2VSb3BlLCBOb2RlUmVzdWx0SlMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCmluZGV4IDQ0Mzg3NmEyMzM4OTY1NzBmMWQyNjI3YTI5NjJjN2IzODA2MGE0
MmEuLjI0ZDUzZTM0ODQ2NTUyNGM0OGQxZjVhZGMwNjYzMzU0NmRkZmIzN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMTUzOSw2ICsxNTM5LDIx
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9OdW1lcmljKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvTnVtZXJpYyhnbG9iYWxPYmplY3QpKTsKIH0KIAorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsTnVtYmVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBKU1ZhbHVlIG51bWVyaWMgPSB2YWx1ZS50b051
bWVyaWMoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OworICAgIGlmICghbnVtZXJpYy5pc0JpZ0ludCgpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKG51bWVyaWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OnRv
TnVtYmVyKG51bWVyaWMpKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRCeVZhbFdpdGhUaGlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IDM4
OWNiOGEzZTEzMGM0NGZkMzlhNTM0YTY4ZDZjODE1NjY5MzE5MmQuLjJiN2YxZDQ5MDQ3OWZmN2Yx
NGQ4ZTVlYTg1N2MwMzczOWUyNGI1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5oCkBAIC05NCw2ICs5NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVG9QcmltaXRpdmUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvUHJvcGVydHlLZXkoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Ub051bWJlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblRvTnVtZXJpYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxOdW1iZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpcyhKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRF
Uk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvdG90eXBl
T2YoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm90b3R5cGVPZk9iamVjdChKU0ds
b2JhbE9iamVjdCosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cAppbmRleCAwYWJkYjViNTJkMjM3OTlhOGEzYjc5ZDcwMmFlYjQzNjAwOTM5ZjFmLi4yYzk0MWEx
MmNkYWM0NTM1NDAzMTdhYjBiZThkYTIwM2VhNmRiMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cApAQCAtODk3LDYgKzg5Nyw3IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDog
cHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBUb051bWJlcjoKICAgICAgICAgY2FzZSBUb051
bWVyaWM6CiAgICAgICAgIGNhc2UgVG9PYmplY3Q6CisgICAgICAgIGNhc2UgQ2FsbE51bWJlckNv
bnN0cnVjdG9yOgogICAgICAgICBjYXNlIFZhbHVlQml0QW5kOgogICAgICAgICBjYXNlIFZhbHVl
Qml0WG9yOgogICAgICAgICBjYXNlIFZhbHVlQml0T3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDhkYjBhYmEyY2NlOWNmZDZhYzUzOGMyOGIx
ZjA2YWVjZjVhZjhmMzQuLjQzNmJmYjE1MjA5ZjJlNjJkYjBjMWIzZDNjYjg3YzhiNjMxOTkxNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01
NjUsNiArNTY1LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0
ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBib29sIGlnbm8KICAgICBjYXNlIFRvTnVtYmVy
OgogICAgIGNhc2UgVG9OdW1lcmljOgogICAgIGNhc2UgVG9PYmplY3Q6CisgICAgY2FzZSBDYWxs
TnVtYmVyQ29uc3RydWN0b3I6CiAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhSYWRpeDoKICAg
ICBjYXNlIFNldEZ1bmN0aW9uTmFtZToKICAgICBjYXNlIE5ld1N0cmluZ09iamVjdDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZDIw
NzMyZDZlN2MzOGI3OTcxMDI4MTc5NzlhZjAxZDc5ZTRkNTY1NC4uMTRlOTQ5NTUwZTg3ZTczOTk1
ZTI2OTgxYjQ3ZWZjNTU5NjQyMjRlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTEzMzM2LDcgKzEzMzM2LDggQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVRvTnVtZXJpYyhOb2RlKiBub2RlKQogICAgIEpTVmFsdWVSZWdz
IGFyZ3VtZW50UmVncyA9IGFyZ3VtZW50LmpzVmFsdWVSZWdzKCk7CiAgICAgSlNWYWx1ZVJlZ3Mg
cmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CiAgICAgR1BSUmVnIHNjcmF0Y2ggPSB0ZW1wLmdw
cigpOwotICAgIC8vIEZJWE1FOiBhZGQgYSBmYXN0IHBhdGggZm9yIEJpZ0ludDMyIGhlcmUgKGFu
ZCBmb3IgdHlwZU9mLCBhbmQgZm9yIGJvb2xpZnkgb3Igd2hhdGV2ZXIgaXQgaXMgY2FsbGVkIGlu
IHRoaXMgZmlsZSkuCisgICAgLy8gRklYTUU6IGFkZCBhIGZhc3QgcGF0aCBmb3IgQmlnSW50MzIg
aGVyZS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEx
MDY0CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogCkBAIC0xMzM1
NSw2ICsxMzM1Niw0MSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9OdW1lcmljKE5v
ZGUqIG5vZGUpCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlLCBEYXRhRm9ybWF0
SlMpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2FsbE51bWJlckNvbnN0cnVj
dG9yKE5vZGUqIG5vZGUpCit7CisjaWYgVVNFKEJJR0lOVDMyKQorICAgIGlmIChub2RlLT5jaGls
ZDEoKS51c2VLaW5kKCkgPT0gQmlnSW50MzJVc2UpIHsKKyAgICAgICAgU3BlY3VsYXRlQmlnSW50
MzJPcGVyYW5kIG9wZXJhbmQodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBHUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMpOworCisgICAgICAgIEdQUlJlZyBvcGVyYW5kR1BSID0gb3BlcmFu
ZC5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAg
ICAgICBtX2ppdC51bmJveEJpZ0ludDMyKG9wZXJhbmRHUFIsIHJlc3VsdEdQUik7CisgICAgICAg
IHN0cmljdEludDMyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisjZW5kaWYKKworICAgIERGR19BU1NFUlQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbm9kZS0+
Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UsIG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQo
KSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJndW1lbnQodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwor
ICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICBHUFJUZW1wb3Jhcnkg
dGVtcCh0aGlzKTsKKworICAgIEpTVmFsdWVSZWdzIGFyZ3VtZW50UmVncyA9IGFyZ3VtZW50Lmpz
VmFsdWVSZWdzKCk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7
CisgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOworICAgIC8vIEZJWE1FOiBhZGQgYSBm
YXN0IHBhdGggZm9yIEJpZ0ludDMyIGhlcmUuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMTA2NAorCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBz
bG93Q2FzZXM7CisgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdE51bWJlcihh
cmd1bWVudFJlZ3MsIHRlbXBHUFIpKTsKKyAgICBtX2ppdC5tb3ZlVmFsdWVSZWdzKGFyZ3VtZW50
UmVncywgcmVzdWx0UmVncyk7CisgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxs
KHNsb3dDYXNlcywgdGhpcywgb3BlcmF0aW9uQ2FsbE51bWJlckNvbnN0cnVjdG9yLCByZXN1bHRS
ZWdzLCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYXJndW1lbnRSZWdzKSk7CisKKyAgICBq
c1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlTG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlKE5vZGUqIG5vZGUpCiB7CiAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAppbmRleCA1YWNlNTI1NWVkMDI3NjUzNWRhMWZhNjhiZjhjMDlkMmFhZmVjOTk5Li43
Nzk2ZDA1NmUxMTJlNWZiM2NlYjIzYjg4NzUwMjcwOTQ4NWVkNGMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xNDc0LDYgKzE0NzQsNyBA
QCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlVG9QcmltaXRpdmUoTm9k
ZSopOwogICAgIHZvaWQgY29tcGlsZVRvUHJvcGVydHlLZXkoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZVRvTnVtZXJpYyhOb2RlKik7CisgICAgdm9pZCBjb21waWxlQ2FsbE51bWJlckNvbnN0cnVj
dG9yKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVMb2dTaGFkb3dDaGlja2VuUHJvbG9ndWUoTm9k
ZSopOwogICAgIHZvaWQgY29tcGlsZUxvZ1NoYWRvd0NoaWNrZW5UYWlsKE5vZGUqKTsKICAgICB2
b2lkIGNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggZTg5YjFj
NzViMmI1YzRlZTg0Yjk1ZGMwMTQ3MzA5OTE3YTI1ODc1ZC4uNjBjOTkxYzIxMWY3MTM1YTZmZTll
ZThlMGMyMDI5ODhlNTI4NGI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zMTUxLDYgKzMxNTEsMTAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlVG9O
dW1lcmljKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIENhbGxOdW1i
ZXJDb25zdHJ1Y3RvcjoKKyAgICAgICAgY29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3Rvcihub2Rl
KTsKKyAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgY2Fz
ZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBiOGQzYTUzYTczYTE2MTA3MTYxM2FjZTIz
ZTU1YzBjMTgwMTA5MTY4Li4wNzgyOWZhYjhlZmIwMjgxN2JmNmQ0ZTFlMmM0OTIwYjQzMDM2ZDAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTM3MTEsNiArMzcxMSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgQ2FsbE51bWJl
ckNvbnN0cnVjdG9yOgorICAgICAgICBjb21waWxlQ2FsbE51bWJlckNvbnN0cnVjdG9yKG5vZGUp
OworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgY2FzZSBDYWxsU3Ry
aW5nQ29uc3RydWN0b3I6CiAgICAgY2FzZSBTdHJpbmdWYWx1ZU9mOiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggOGFlOTgyMDUxNjQ0MTE0
NTVhODk2YjczYmUyZDg0MmVmZmVjNzU1ZC4uYmM5NzMwN2UxYTdmZDg1NmZkMjhhZTljNzUxZWIw
MjVjMjJkYTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMjE5LDYgKzIxOSw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29t
cGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgVG9PYmplY3Q6CiAgICAgY2FzZSBDYWxsT2JqZWN0
Q29uc3RydWN0b3I6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CisgICAgY2FzZSBD
YWxsTnVtYmVyQ29uc3RydWN0b3I6CiAgICAgY2FzZSBPYmplY3RDcmVhdGU6CiAgICAgY2FzZSBP
YmplY3RLZXlzOgogICAgIGNhc2UgTWFrZVJvcGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggODViMTllOGVhNWU1NzQ2YmU1YjVhZDU0YTYz
MjA0YjExYjYyNGI0NC4uYTMwM2IyOTc4MDE3Zjk1Nzg2Mjk5OTE1NmFlOTZhNmY5ODllNDE4YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAt
MTEzMiw2ICsxMTMyLDkgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgY2FzZSBUb051
bWVyaWM6CiAgICAgICAgICAgICBjb21waWxlVG9OdW1lcmljKCk7CiAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6CisgICAgICAgICAgICBjb21w
aWxlQ2FsbE51bWJlckNvbnN0cnVjdG9yKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBUb1N0cmluZzoKICAgICAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAg
ICAgIGNhc2UgU3RyaW5nVmFsdWVPZjoKQEAgLTc1ODgsNiArNzU5MSwzOCBAQCBjbGFzcyBMb3dl
ckRGR1RvQjMgewogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHNldEpTVmFsdWUodm1DYWxs
KEludDY0LCBvcGVyYXRpb25Ub051bWVyaWMsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIHZh
bHVlKSk7CiAgICAgfQorCisgICAgdm9pZCBjb21waWxlQ2FsbE51bWJlckNvbnN0cnVjdG9yKCkK
KyAgICB7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmds
b2JhbE9iamVjdEZvcihtX25vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CisjaWYgVVNFKEJJR0lOVDMy
KQorICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQmlnSW50MzJVc2Up
IHsKKyAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0JpZ0ludDMyKG1fbm9kZS0+Y2hpbGQx
KCkpOworICAgICAgICAgICAgc2V0SW50MzIodW5ib3hCaWdJbnQzMih2YWx1ZSkpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgTFZhbHVlIHZhbHVlID0g
bG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKKworICAgICAgICBMQmFzaWNCbG9jayBub3RO
dW1iZXIgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRp
b24gPSBtX291dC5uZXdCbG9jaygpOworCisgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1
bHQgPSBtX291dC5hbmNob3IodmFsdWUpOworICAgICAgICBtX291dC5icmFuY2goaXNOdW1iZXIo
dmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUoY29udGludWF0aW9u
KSwgdW5zdXJlKG5vdE51bWJlcikpOworCisgICAgICAgIC8vIG5vdE51bWJlciBjYXNlLgorICAg
ICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdE51bWJlciwgY29u
dGludWF0aW9uKTsKKyAgICAgICAgLy8gV2UgaGF2ZSBzZXZlcmFsIGF0dGVtcHRzIHRvIHJlbW92
ZSBUb051bWJlci4gQnV0IFRvTnVtYmVyIHN0aWxsIGV4aXN0cy4KKyAgICAgICAgLy8gSXQgbWVh
bnMgdGhhdCBjb252ZXJ0aW5nIG5vbi1udW1iZXJzIHRvIG51bWJlcnMgYnkgdGhpcyBUb051bWJl
ciBpcyBub3QgcmFyZS4KKyAgICAgICAgLy8gSW5zdGVhZCBvZiB0aGUgbGF6eSBzbG93IHBhdGgg
Z2VuZXJhdG9yLCB3ZSBjYWxsIHRoZSBvcGVyYXRpb24gaGVyZS4KKyAgICAgICAgVmFsdWVGcm9t
QmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNhbGwoSW50NjQsIG9wZXJhdGlvbkNh
bGxOdW1iZXJDb25zdHJ1Y3Rvciwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgdmFsdWUpKTsK
KyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgIC8vIGNvbnRpbnVh
dGlvbiBjYXNlLgorICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0
KTsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIGZhc3RSZXN1bHQsIHNsb3dS
ZXN1bHQpKTsKKyAgICB9CisKICAgICAKICAgICB2b2lkIGNvbXBpbGVUb1N0cmluZ09yQ2FsbFN0
cmluZ0NvbnN0cnVjdG9yT3JTdHJpbmdWYWx1ZU9mKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXggYWNhMzU1NTRjZjUxNzNmMDM0MTdjNzQ3
ZDA0Mzg4YzQzNWY2MzkwMC4uZmVkMjA4NGJjMTNiYThkMmJhNTVlMzM0MGM3ZmNjYmQzMmY0ZTRl
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAtMjE5
Miw0ICsyMTkyLDEwNSBAQCBPcHRpb25hbDxKU0JpZ0ludDo6RGlnaXQ+IEpTQmlnSW50Ojp0b1No
aWZ0QW1vdW50KEpTQmlnSW50KiB4KQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAorSlNCaWdJbnQ6
OlJvdW5kaW5nUmVzdWx0IEpTQmlnSW50OjpkZWNpZGVSb3VuZGluZyhKU0JpZ0ludCogYmlnSW50
LCBpbnQzMl90IG1hbnRpc3NhQml0c1Vuc2V0LCBpbnQzMl90IGRpZ2l0SW5kZXgsIHVpbnQ2NF90
IGN1cnJlbnREaWdpdCkKK3sKKyAgICBpZiAobWFudGlzc2FCaXRzVW5zZXQgPiAwKQorICAgICAg
ICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlJvdW5kRG93bjsKKyAgICBpbnQzMl90IHRvcFVuY29u
c3VtZWRCaXQgPSAwOworICAgIGlmIChtYW50aXNzYUJpdHNVbnNldCA8IDApIHsKKyAgICAgICAg
Ly8gVGhlcmUgYXJlIHVuY29uc3VtZWQgYml0cyBpbiBjdXJyZW50RGlnaXQuCisgICAgICAgIHRv
cFVuY29uc3VtZWRCaXQgPSAtbWFudGlzc2FCaXRzVW5zZXQgLSAxOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIEFTU0VSVChtYW50aXNzYUJpdHNVbnNldCA9PSAwKTsKKyAgICAgICAgLy8gY3VycmVu
dERpZ2l0IGZpdCB0aGUgbWFudGlzc2EgZXhhY3RseTsgbG9vayBhdCB0aGUgbmV4dCBkaWdpdC4K
KyAgICAgICAgaWYgKGRpZ2l0SW5kZXggPT0gMCkKKyAgICAgICAgICAgIHJldHVybiBSb3VuZGlu
Z1Jlc3VsdDo6Um91bmREb3duOworICAgICAgICBkaWdpdEluZGV4LS07CisgICAgICAgIGN1cnJl
bnREaWdpdCA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihiaWdJbnQtPmRpZ2l0KGRpZ2l0SW5kZXgp
KTsKKyAgICAgICAgdG9wVW5jb25zdW1lZEJpdCA9IGRpZ2l0Qml0cyAtIDE7CisgICAgfQorICAg
IC8vIElmIHRoZSBtb3N0IHNpZ25pZmljYW50IHJlbWFpbmluZyBiaXQgaXMgMCwgcm91bmQgZG93
bi4KKyAgICB1aW50NjRfdCBiaXRtYXNrID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDEpIDw8IHRv
cFVuY29uc3VtZWRCaXQ7CisgICAgaWYgKChjdXJyZW50RGlnaXQgJiBiaXRtYXNrKSA9PSAwKQor
ICAgICAgICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlJvdW5kRG93bjsKKyAgICAvLyBJZiBhbnkg
b3RoZXIgcmVtYWluaW5nIGJpdCBpcyBzZXQsIHJvdW5kIHVwLgorICAgIGJpdG1hc2sgLT0gMTsK
KyAgICBpZiAoKGN1cnJlbnREaWdpdCAmIGJpdG1hc2spICE9IDApCisgICAgICAgIHJldHVybiBS
b3VuZGluZ1Jlc3VsdDo6Um91bmRVcDsKKyAgICB3aGlsZSAoZGlnaXRJbmRleCA+IDApIHsKKyAg
ICAgICAgZGlnaXRJbmRleC0tOworICAgICAgICBpZiAoYmlnSW50LT5kaWdpdChkaWdpdEluZGV4
KSAhPSAwKQorICAgICAgICAgICAgcmV0dXJuIFJvdW5kaW5nUmVzdWx0OjpSb3VuZFVwOworICAg
IH0KKyAgICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlRpZTsKK30KKworSlNWYWx1ZSBKU0JpZ0lu
dDo6dG9OdW1iZXJIZWFwKEpTQmlnSW50KiBiaWdJbnQpCit7CisgICAgaWYgKGJpZ0ludC0+aXNa
ZXJvKCkpCisgICAgICAgIHJldHVybiBqc051bWJlcigwKTsKKyAgICBBU1NFUlQoYmlnSW50LT5s
ZW5ndGgoKSk7CisKKyAgICAvLyBDb252ZXJzaW9uIG1lY2hhbmlzbSBpcyB0aGUgZm9sbG93aW5n
LgorICAgIC8vCisgICAgLy8gMS4gR2V0IGV4cG9uZW50IGJpdHMuCisgICAgLy8gMi4gQ29sbGVj
dCBtYW50aXNzYSA1MiBiaXRzLgorICAgIC8vIDMuIEFkZCByb3VuZGluZyByZXN1bHQgb2YgdW51
c2VkIGJpdHMgdG8gbWFudGlzc2EgYW5kIGFkanVzdCBtYW50aXNzYSAmIGV4cG9uZW50IGJpdHMu
CisgICAgLy8gNC4gR2VuZXJhdGUgZG91YmxlIGJ5IGNvbWJpbmluZyAoMSkgYW5kICgzKS4KKwor
ICAgIGNvbnN0IHVuc2lnbmVkIGxlbmd0aCA9IGJpZ0ludC0+bGVuZ3RoKCk7CisgICAgY29uc3Qg
Ym9vbCBzaWduID0gYmlnSW50LT5zaWduKCk7CisgICAgY29uc3QgRGlnaXQgbXNkID0gYmlnSW50
LT5kaWdpdChsZW5ndGggLSAxKTsKKyAgICBjb25zdCB1bnNpZ25lZCBtc2RMZWFkaW5nWmVyb3Mg
PSBjbHoobXNkKTsKKyAgICBjb25zdCBzaXplX3QgYml0TGVuZ3RoID0gbGVuZ3RoICogZGlnaXRC
aXRzIC0gbXNkTGVhZGluZ1plcm9zOworICAgIC8vIERvdWJsZSdzIGV4cG9uZW50IGJpdHMgb3Zl
cmZsb3cuCisgICAgaWYgKGJpdExlbmd0aCA+IDEwMjQpCisgICAgICAgIHJldHVybiBqc0RvdWJs
ZU51bWJlcihzaWduID8gLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSA6
IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7CisgICAgdWludDY0X3Qg
ZXhwb25lbnQgPSBiaXRMZW5ndGggLSAxOworICAgIHVpbnQ2NF90IGN1cnJlbnREaWdpdCA9IG1z
ZDsKKyAgICBpbnQzMl90IGRpZ2l0SW5kZXggPSBsZW5ndGggLSAxOworICAgIGludDMyX3Qgc2hp
ZnRBbW91bnQgPSBtc2RMZWFkaW5nWmVyb3MgKyAxICsgKDY0IC0gZGlnaXRCaXRzKTsKKyAgICBB
U1NFUlQoMSA8PSBzaGlmdEFtb3VudCk7CisgICAgQVNTRVJUKHNoaWZ0QW1vdW50IDw9IDY0KTsK
KyAgICB1aW50NjRfdCBtYW50aXNzYSA9IChzaGlmdEFtb3VudCA9PSA2NCkgPyAwIDogY3VycmVu
dERpZ2l0IDw8IHNoaWZ0QW1vdW50OworICAgIG1hbnRpc3NhID4+PSAxMjsgLy8gKDEyID0gNjQg
LSA1MikgKGRvdWJsZSdzIG1hbnRpc3NhIGJpdCBjb3VudCkuCisgICAgaW50MzJfdCBtYW50aXNz
YUJpdHNVbnNldCA9IHNoaWZ0QW1vdW50IC0gMTI7CisKKyAgICAvLyBJZiBub3QgYWxsIG1hbnRp
c3NhIGJpdHMgYXJlIGRlZmluZWQgeWV0LCBnZXQgbW9yZSBkaWdpdHMgYXMgbmVlZGVkLgorICAg
IC8vIENvbGxlY3QgbWFudGlzc2EgNTJiaXRzIGZyb20gc2V2ZXJhbCBkaWdpdHMuCisgICAgaWYg
KG1hbnRpc3NhQml0c1Vuc2V0ID49IHN0YXRpY19jYXN0PGludDMyX3Q+KGRpZ2l0Qml0cykgJiYg
ZGlnaXRJbmRleCA+IDApIHsKKyAgICAgICAgZGlnaXRJbmRleC0tOworICAgICAgICBjdXJyZW50
RGlnaXQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oYmlnSW50LT5kaWdpdChkaWdpdEluZGV4KSk7
CisgICAgICAgIG1hbnRpc3NhIHw9IChjdXJyZW50RGlnaXQgPDwgKG1hbnRpc3NhQml0c1Vuc2V0
IC0gZGlnaXRCaXRzKSk7CisgICAgICAgIG1hbnRpc3NhQml0c1Vuc2V0IC09IGRpZ2l0Qml0czsK
KyAgICB9CisKKyAgICBpZiAobWFudGlzc2FCaXRzVW5zZXQgPiAwICYmIGRpZ2l0SW5kZXggPiAw
KSB7CisgICAgICAgIEFTU0VSVChtYW50aXNzYUJpdHNVbnNldCA8IGRpZ2l0Qml0cyk7CisgICAg
ICAgIGRpZ2l0SW5kZXgtLTsKKyAgICAgICAgY3VycmVudERpZ2l0ID0gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KGJpZ0ludC0+ZGlnaXQoZGlnaXRJbmRleCkpOworICAgICAgICBtYW50aXNzYSB8PSAo
Y3VycmVudERpZ2l0ID4+IChkaWdpdEJpdHMgLSBtYW50aXNzYUJpdHNVbnNldCkpOworICAgICAg
ICBtYW50aXNzYUJpdHNVbnNldCAtPSBkaWdpdEJpdHM7CisgICAgfQorCisgICAgLy8gSWYgdGhl
cmUgYXJlIHVuY29uc3VtZWQgZGlnaXRzIGxlZnQsIHdlIG1heSBoYXZlIHRvIHJvdW5kLgorICAg
IFJvdW5kaW5nUmVzdWx0IHJvdW5kaW5nID0gZGVjaWRlUm91bmRpbmcoYmlnSW50LCBtYW50aXNz
YUJpdHNVbnNldCwgZGlnaXRJbmRleCwgY3VycmVudERpZ2l0KTsKKyAgICBpZiAocm91bmRpbmcg
PT0gUm91bmRpbmdSZXN1bHQ6OlJvdW5kVXAgfHwgKHJvdW5kaW5nID09IFJvdW5kaW5nUmVzdWx0
OjpUaWUgJiYgKG1hbnRpc3NhICYgMSkgPT0gMSkpIHsKKyAgICAgICAgKyttYW50aXNzYTsKKyAg
ICAgICAgLy8gSW5jcmVtZW50aW5nIHRoZSBtYW50aXNzYSBjYW4gb3ZlcmZsb3cgdGhlIG1hbnRp
c3NhIGJpdHMuIEluIHRoYXQgY2FzZSB0aGUgbmV3IG1hbnRpc3NhIHdpbGwgYmUgYWxsIHplcm8g
KHBsdXMgaGlkZGVuIGJpdCkuCisgICAgICAgIGlmICgobWFudGlzc2EgPj4gZG91YmxlUGh5c2lj
YWxTaWduaWZpY2FuZFNpemUpICE9IDApIHsKKyAgICAgICAgICAgIG1hbnRpc3NhID0gMDsKKyAg
ICAgICAgICAgIGV4cG9uZW50Kys7CisgICAgICAgICAgICAvLyBJbmNyZW1lbnRpbmcgdGhlIGV4
cG9uZW50IGNhbiBvdmVyZmxvdyB0b28uCisgICAgICAgICAgICBpZiAoZXhwb25lbnQgPiAxMDIz
KQorICAgICAgICAgICAgICAgIHJldHVybiBqc0RvdWJsZU51bWJlcihzaWduID8gLXN0ZDo6bnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSA6IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6aW5maW5pdHkoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB1aW50NjRfdCBzaWdu
Qml0ID0gc2lnbiA/IChzdGF0aWNfY2FzdDx1aW50NjRfdD4oMSkgPDwgNjMpIDogMDsKKyAgICBl
eHBvbmVudCA9IChleHBvbmVudCArIDB4M2ZmKSA8PCBkb3VibGVQaHlzaWNhbFNpZ25pZmljYW5k
U2l6ZTsgLy8gMHgzZmYgaXMgZG91YmxlIGV4cG9uZW50IGJpYXMuCisgICAgdWludDY0X3QgZG91
YmxlQml0cyA9IHNpZ25CaXQgfCBleHBvbmVudCB8IG1hbnRpc3NhOworICAgIHJldHVybiBqc051
bWJlcihiaXR3aXNlX2Nhc3Q8ZG91YmxlPihkb3VibGVCaXRzKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJ
bnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggNDQy
NjdiYzZiMzAwMWRiZjNhYjYzZWMyODNmNjQ1MWE4ZDk2NjQ1Ni4uMTc4YzNmZDlhMTY2OTkxMmZk
NjEyOTliMGNhZDliNWZhM2NiZjk0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCaWdJbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5oCkBAIC0yNTMsNiArMjUzLDE3IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiAgICAgICAgIHJldHVybiB0cnlDb252ZXJ0VG9CaWdJbnQzMihzaWduZWRS
aWdodFNoaWZ0SGVhcChnbG9iYWxPYmplY3QsIHgsIHkpKTsKICAgICB9CiAKKyAgICBzdGF0aWMg
SlNWYWx1ZSB0b051bWJlckhlYXAoSlNCaWdJbnQqKTsKKyAgICBzdGF0aWMgSlNWYWx1ZSB0b051
bWJlcihKU1ZhbHVlIGJpZ0ludCkKKyAgICB7CisgICAgICAgIEFTU0VSVChiaWdJbnQuaXNCaWdJ
bnQoKSk7CisjaWYgVVNFKEJJR0lOVDMyKQorICAgICAgICBpZiAoYmlnSW50LmlzQmlnSW50MzIo
KSkKKyAgICAgICAgICAgIHJldHVybiBqc051bWJlcihiaWdJbnQuYmlnSW50MzJBc0ludDMyKCkp
OworI2VuZGlmCisgICAgICAgIHJldHVybiB0b051bWJlckhlYXAoanNDYXN0PEpTQmlnSW50Kj4o
YmlnSW50KSk7CisgICAgfQorCiAgICAgRGlnaXQgZGlnaXQodW5zaWduZWQpOwogICAgIHZvaWQg
c2V0RGlnaXQodW5zaWduZWQsIERpZ2l0KTsgLy8gVXNlIG9ubHkgd2hlbiBpbml0aWFsaXppbmcu
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNCaWdJbnQqIHJpZ2h0VHJpbShWTSYpOwpAQCAtMjY1
LDYgKzI3Niw4IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsK
ICAgICBzdGF0aWMgY29uc3RleHByIERpZ2l0IGhhbGZEaWdpdE1hc2sgPSAoMXVsbCA8PCBoYWxm
RGlnaXRCaXRzKSAtIDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4SW50ID0gMHg3RkZG
RkZGRjsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZG91YmxlUGh5c2ljYWxTaWdu
aWZpY2FuZFNpemUgPSA1MjsKICAgICAKICAgICAvLyBUaGUgbWF4aW11bSBsZW5ndGggdGhhdCB0
aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyB3b3VsZCBiZQogICAgIC8vIG1heElu
dCAvIGRpZ2l0Qml0cy4gSG93ZXZlciwgd2UgdXNlIGEgbG93ZXIgbGltaXQgZm9yIG5vdywgYmVj
YXVzZQpAQCAtMjkzLDYgKzMwNiwxNCBAQCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBK
U0NlbGwgewogICAgIERpZ2l0IGFic29sdXRlSW5wbGFjZVN1YihKU0JpZ0ludCogc3VidHJhaGVu
ZCwgdW5zaWduZWQgc3RhcnRJbmRleCk7CiAgICAgdm9pZCBpbnBsYWNlUmlnaHRTaGlmdCh1bnNp
Z25lZCBzaGlmdCk7CiAKKyAgICBlbnVtIGNsYXNzIFJvdW5kaW5nUmVzdWx0IHsKKyAgICAgICAg
Um91bmREb3duLAorICAgICAgICBUaWUsCisgICAgICAgIFJvdW5kVXAKKyAgICB9OworCisgICAg
c3RhdGljIFJvdW5kaW5nUmVzdWx0IGRlY2lkZVJvdW5kaW5nKEpTQmlnSW50KiwgaW50MzJfdCBt
YW50aXNzYUJpdHNVbnNldCwgaW50MzJfdCBkaWdpdEluZGV4LCB1aW50NjRfdCBjdXJyZW50RGln
aXQpOworCiAgICAgZW51bSBjbGFzcyBFeHRyYURpZ2l0c0hhbmRsaW5nIHsKICAgICAgICAgQ29w
eSwKICAgICAgICAgU2tpcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDc4NjE2NjBkNjBiZWI2M2QwMjU1NGE1ZmYzY2Y0
MTA5NDY5MzY5NmMuLjQ5MDBlMTU3NGI2ZTUyOTQzZDNkYjRmODhlYmY3N2QxOGVlZGRhNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTkwLDggKzkwLDE4IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBkb3VibGUgbiA9IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgp
ID8gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3Qp
IDogMDsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
KyAgICBkb3VibGUgbiA9IDA7CisgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKSB7
CisgICAgICAgIEpTVmFsdWUgbnVtZXJpYyA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQo
MCkudG9OdW1lcmljKGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CisgICAgICAgIGlmIChudW1lcmljLmlzTnVtYmVyKCkpCisgICAgICAgICAg
ICBuID0gbnVtZXJpYy5hc051bWJlcigpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG51
bWVyaWMgPSBKU0JpZ0ludDo6dG9OdW1iZXIobnVtZXJpYyk7CisgICAgICAgICAgICBBU1NFUlQo
bnVtZXJpYy5pc051bWJlcigpKTsKKyAgICAgICAgICAgIG4gPSBudW1lcmljLmFzTnVtYmVyKCk7
CisgICAgICAgIH0KKyAgICB9CiAKICAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3Qo
Y2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdU
YXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpCkBAIC0xMDcsNyArMTE3LDE2IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBnCiAvLyBFQ01BIDE1LjcuMgogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoIWNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID8gMCA6IGNhbGxGcmFt
ZS0+dW5jaGVja2VkQXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpOworICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisgICAgaWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSkKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7CisgICAgSlNWYWx1ZSBudW1l
cmljID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051bWVyaWMoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGlmIChudW1l
cmljLmlzTnVtYmVyKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobnVtZXJpYyk7
CisgICAgQVNTRVJUKG51bWVyaWMuaXNCaWdJbnQoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU0JpZ0ludDo6dG9OdW1iZXIobnVtZXJpYykpOwogfQogCiAvLyBFQ01BLTI2MiAyMC4x
LjIuMwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397658</attachid>
            <date>2020-04-27 01:27:18 -0700</date>
            <delta_ts>2020-04-27 01:35:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210835-20200427012706.patch</filename>
            <type>text/plain</type>
            <size>42133</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MWE1NDEzYmM1MmQzNjc4ZGZjNzY4ZmUwNjVlMzYwNWEyNjJmMjNjLi43MjRjNmExNzIzYTA5ZTNi
MjVlMzBjNWM2NTdmNTI0M2Y1NDFiZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MCBAQAorMjAyMC0wNC0yNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE51bWJlckNvbnN0cnVjdG9yIHNob3VsZCBhY2NlcHQgQmlnSW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA4MzUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIG91ciBOdW1iZXIgY29uc3RydWN0b3IgYmVoYXZpb3IgdG8gYWNjZXB0IEJpZ0lu
dC4gQWNjb3JkaW5nIHRvIHRoZSBzcGVjWzFdLAorICAgICAgICBOdW1iZXIgY29uc3RydWN0b3Ig
c2hvdWxkIGFjY2VwdCBCaWdJbnQgYW5kIHNob3VsZCBnZW5lcmF0ZSBudW1iZXJzIGZyb20gdGhh
dC4KKworICAgICAgICBXZSBwb3J0IFY4J3MgQmlnSW50IHRvIGRvdWJsZSBjb252ZXJzaW9uIGNv
ZGUgYXMgd2UgZGlkIGZvciB0aGUgb3RoZXIgSGVhcEJpZ0ludCBydW50aW1lIGZ1bmN0aW9ucy4K
KworICAgICAgICBBbmQgd2UgaW50cm9kdWNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvciBERkcgbm9k
ZSBhbmQgaGFuZGxlIE51bWJlciBjb25zdHJ1Y3RvciBjYWxsIHdpdGggQmlnSW50IGNvcnJlY3Rs
eQorICAgICAgICBpbiBERkcgYW5kIEZUTC4gUHJldmlvdXNseSB3ZSB3ZXJlIGVtaXR0aW5nIFRv
TnVtYmVyIERGRyBub2RlIGZvciBOdW1iZXIgY29uc3RydWN0b3IuIEJ1dCB0aGlzIGlzIHdyb25n
CisgICAgICAgIG5vdyBzaW5jZSBUb051bWJlciBkb2VzIG5vdCBhY2NlcHQgQmlnSW50IGFuZCB0
aHJvd3MgYW4gZXJyb3IsIGFuZCBOdW1iZXIgY29uc3RydWN0b3Igc2hvdWxkIG5vdCB1c2UKKyAg
ICAgICAgVG9OdW1iZXIgdG8gaW1wbGVtZW50IGl0cyBpbXBsZW1lbnRhdGlvbi4gU28gd2Ugc2hv
dWxkIGludHJvZHVjZSBzbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzOiBDYWxsTnVtYmVyQ29u
c3RydWN0b3IKKyAgICAgICAgYXMgd2UgaW50cm9kdWNlZCBDYWxsU3RyaW5nQ29uc3RydWN0b3Ig
aW4gYWRkaXRpb24gdG8gVG9TdHJpbmcgREZHIG5vZGUuIEFuZCB3ZSBhZGQgYXBwcm9wcmlhdGUg
QmlnSW50MzIgcGF0aAorICAgICAgICB0byBlbWl0IGVmZmljaWVudCBDYWxsTnVtYmVyQ29uc3Ry
dWN0b3IgbWFjaGluZSBjb2RlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEy
NjIvI3NlYy1udW1iZXItY29uc3RydWN0b3ItbnVtYmVyLXZhbHVlCisKKyAgICAgICAgKiBkZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAg
ICAgICAqIGRmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAq
IGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQ
YXJzZXI6OmhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbik6CisgICAgICAgICogZGZnL0RG
R0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAg
KiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNv
bnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9l
c0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdG
aXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUp
OgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwVG9OdW1iZXJPclRvTnVtZXJp
Y09yQ2FsbE51bWJlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNl
OjpmaXh1cFRvTnVtZXJpYyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBUb051bWJlcik6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNIZWFwUHJlZGljdGlvbik6CisgICAgICAgICogZGZn
L0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAg
ICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVU
b051bWVyaWMpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2Fs
bE51bWJlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3Rv
cik6CisgICAgICAgICogcnVudGltZS9KU0JpZ0ludC5jcHA6CisgICAgICAgIChKU0M6OkpTQmln
SW50OjpkZWNpZGVSb3VuZGluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b051bWJlckhl
YXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAgICAgICAgKiBydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0TnVtYmVyQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsTnVtYmVyQ29uc3RydWN0b3IpOgorCiAyMDIwLTA0
LTI2ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBb
SlNDXSBDbGVhcmx5IGRpc3Rpbmd1aXNoIGlzQ29uc3RydWN0b3IgZnJvbSBnZXRDb25zdHJ1Y3RE
YXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggYmZjMTZkOWRhMjllMDg1YTgzYTA4OTk2NTMyODY1
NjVmNDU1NTI2MC4uNTk0MjYzOWNkMjEwZDEwZDhiZWY4MTA2MmJkYjE3NmYyMmU5NWFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaApAQCAtMjcxMSw2ICsyNzExLDQ1IEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2Ji
ZXJMaW1pCiAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCeXRlY29kZU51bWJlciB8
IFNwZWNCaWdJbnQpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIENhbGxOdW1i
ZXJDb25zdHJ1Y3RvcjogeworICAgICAgICBKU1ZhbHVlIGNoaWxkQ29uc3QgPSBmb3JOb2RlKG5v
ZGUtPmNoaWxkMSgpKS52YWx1ZSgpOworICAgICAgICBpZiAoY2hpbGRDb25zdCkgeworICAgICAg
ICAgICAgaWYgKGNoaWxkQ29uc3QuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgICAgIGlmIChu
b2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKKyAgICAgICAgICAgICAgICAg
ICAgZGlkRm9sZENsb2JiZXJXb3JsZCgpOworICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5v
ZGUsIGNoaWxkQ29uc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
I2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgIGlmIChjaGlsZENvbnN0LmlzQmlnSW50MzIo
KSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50
eXBlZFVzZSkKKyAgICAgICAgICAgICAgICAgICAgZGlkRm9sZENsb2JiZXJXb3JsZCgpOworICAg
ICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzTnVtYmVyKGNoaWxkQ29uc3QuYmlnSW50
MzJBc0ludDMyKCkpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyNl
bmRpZgorICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQo
KSA9PSBVbnR5cGVkVXNlIHx8IG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBCaWdJbnQzMlVz
ZSk7CisKKyAgICAgICAgaWYgKCEoZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlICYgflNw
ZWNCeXRlY29kZU51bWJlcikpIHsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29u
c3RhbnRGb2xkaW5nKHRydWUpOworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBVbnR5cGVkVXNlKQorICAgICAgICAgICAgICAgIGRpZEZvbGRDbG9iYmVyV29ybGQo
KTsKKyAgICAgICAgICAgIHNldEZvck5vZGUobm9kZSwgZm9yTm9kZShub2RlLT5jaGlsZDEoKSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAobm9kZS0+Y2hp
bGQxKCkudXNlS2luZCgpID09IEJpZ0ludDMyVXNlKSB7CisgICAgICAgICAgICBzZXRUeXBlRm9y
Tm9kZShub2RlLCBTcGVjSW50MzJPbmx5KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisKKyAgICAgICAgY2xvYmJlcldvcmxkKCk7CisgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9k
ZShub2RlLCBTcGVjQnl0ZWNvZGVOdW1iZXIpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAg
ICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJv
cGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JhY2t3YXJk
c1Byb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDM2ODY1YTUyM2Y1YWM4OGYzNmRkZTAwOTA4OWRm
ZWIyZTI0N2I1ZjguLjJjYzc0MjkwNTFhNTVlYmI4ZTcxMjdhYTliMWUzZjVkMzAxOTQ2NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJvcGFnYXRp
b25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYWNrd2FyZHNQ
cm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNDE1LDcgKzQxNSw4IEBAIGNsYXNzIEJhY2t3YXJkc1By
b3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgVG9QcmltaXRpdmU6CiAgICAgICAgIGNhc2UgVG9OdW1iZXI6Ci0gICAgICAgIGNhc2UgVG9O
dW1lcmljOiB7CisgICAgICAgIGNhc2UgVG9OdW1lcmljOgorICAgICAgICBjYXNlIENhbGxOdW1i
ZXJDb25zdHJ1Y3RvcjogewogICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCktPm1lcmdlRmxhZ3Mo
ZmxhZ3MpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMjA1NDRjY2Q3MzBlMWMx
YjRiNjhmYmVjNmZhMTk2OTJmZWNhYjI3Yy4uMWEzZWUzNTAxNGZhNDg0YmFiN2UzNjg4MGIyNDI0
YzlhMzRiM2YxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTQwMjcsNyArNDAyNyw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6Omhh
bmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbigKICAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzIDw9IDEpCiAgICAgICAgICAgICBzZXQocmVzdWx0LCBqc0NvbnN0YW50KGpz
TnVtYmVyKDApKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNldChyZXN1bHQsIGFkZFRv
R3JhcGgoVG9OdW1iZXIsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBnZXQodmlydHVh
bFJlZ2lzdGVyRm9yQXJndW1lbnRJbmNsdWRpbmdUaGlzKDEsIHJlZ2lzdGVyT2Zmc2V0KSkpKTsK
KyAgICAgICAgICAgIHNldChyZXN1bHQsIGFkZFRvR3JhcGgoQ2FsbE51bWJlckNvbnN0cnVjdG9y
LCBPcEluZm8oMCksIE9wSW5mbyhwcmVkaWN0aW9uKSwgZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFy
Z3VtZW50SW5jbHVkaW5nVGhpcygxLCByZWdpc3Rlck9mZnNldCkpKSk7CiAKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAppbmRleCBlNTgyOTA3NGYwMjJiODExYjdhZDllMDcwMmE4MTQzYTVjODU2MzY0Li4zZmM5NTI0
NjJjMTBhNWFjNWY3MTYwY2QzNGNlODRjZTAwYTA5YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtNjkyLDYgKzY5MiwxOSBAQCBTVVBQUkVTU19BU0FO
IHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5j
dG9yJiByZWFkLAogICAgICAgICB3cml0ZShIZWFwKTsKICAgICAgICAgcmV0dXJuOwogCisgICAg
Y2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6CisgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQx
KCkudXNlS2luZCgpKSB7CisgICAgICAgIGNhc2UgQmlnSW50MzJVc2U6CisgICAgICAgICAgICBk
ZWYoUHVyZVZhbHVlKG5vZGUpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBV
bnR5cGVkVXNlOgorICAgICAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgICAgICB3cml0ZShI
ZWFwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IERGR19DUkFTSChncmFwaCwgbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICB9CisKICAg
ICBjYXNlIEluYzoKICAgICBjYXNlIERlYzoKICAgICAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggNmExZmQwNzQwMDUyZTE1MGI1ODIwOGM0YmUz
NGQ4MjU3ZWY2M2NlOS4uOTBhMzM2NzM4OGU0ZTY4MjE5MDM4MWI2Mzk1OTZkNDliMjA4OWI2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQ
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHAKQEAgLTk1MSw3ICs5NTEsOCBAQCBjbGFzcyBDb25zdGFudEZvbGRpbmdQaGFz
ZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIGNhc2UgVG9OdW1iZXI6IHsKKyAgICAgICAgICAgIGNhc2UgVG9OdW1i
ZXI6CisgICAgICAgICAgICBjYXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjogewogICAgICAgICAg
ICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH5TcGVj
Qnl0ZWNvZGVOdW1iZXIpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNTc3OGQ3ZGI0MjhlMTVkM2FlZTQ4NGEw
NWVkYTMwZTRkY2FjYWI1ZC4uM2QzOTViNGRiZWFhMmQ4MGFhZjEyZTc1MzBlNzZhMTc3ZjJhYTAw
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtNDEzLDYgKzQx
MywxNSBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAjZW5kaWYgLy8g
bm90IEFTU0VSVF9FTkFCTEVECiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgY2FzZSBDYWxs
TnVtYmVyQ29uc3RydWN0b3I6CisgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCkudXNlS2lu
ZCgpKSB7CisgICAgICAgIGNhc2UgQmlnSW50MzJVc2U6CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGNhc2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOgogICAg
IGNhc2UgVG9TdHJpbmc6CiAgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCAz
YTZmZGM3NzI2ZWNiNzRjMWRhYzJmMGM0YTVmMjMwMmMwZDUzNTczLi45ZTA4ZmMyOWMxOTljMTA3
NWY2ZTUyMzJhNmQxOGRlNGEyMDBkNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKQEAgLTE1NDUsMTYgKzE1NDUsMTMgQEAgY2xhc3MgRml4dXBQaGFz
ZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAg
ICAgIGNhc2UgVG9OdW1iZXI6IHsKLSAgICAgICAgICAgIGZpeHVwVG9OdW1iZXIobm9kZSk7Cisg
ICAgICAgIGNhc2UgVG9OdW1iZXI6CisgICAgICAgIGNhc2UgVG9OdW1lcmljOgorICAgICAgICBj
YXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjogeworICAgICAgICAgICAgZml4dXBUb051bWJlck9y
VG9OdW1lcmljT3JDYWxsTnVtYmVyQ29uc3RydWN0b3Iobm9kZSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2UgVG9OdW1lcmljOiB7Ci0gICAgICAgICAgICBm
aXh1cFRvTnVtZXJpYyhub2RlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
ICAgICAgICAKICAgICAgICAgY2FzZSBUb1N0cmluZzoKICAgICAgICAgY2FzZSBDYWxsU3RyaW5n
Q29uc3RydWN0b3I6IHsKICAgICAgICAgICAgIGZpeHVwVG9TdHJpbmdPckNhbGxTdHJpbmdDb25z
dHJ1Y3Rvcihub2RlKTsKQEAgLTMwOTksMjkgKzMwOTYsMzcgQEAgY2xhc3MgRml4dXBQaGFzZSA6
IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIGZpeHVwVG9OdW1l
cmljKE5vZGUqIG5vZGUpCisgICAgdm9pZCBmaXh1cFRvTnVtYmVyT3JUb051bWVyaWNPckNhbGxO
dW1iZXJDb25zdHJ1Y3RvcihOb2RlKiBub2RlKQogICAgIHsKLSAgICAgICAgLy8gSWYgdGhlIHBy
ZWRpY3Rpb24gb2YgdGhlIGNoaWxkIGlzIEJpZ0ludCwgd2UgYXR0ZW1wdCB0byBjb252ZXJ0IFRv
TnVtZXJpYyB0byBJZGVudGl0eSwgc2luY2UgaXQgY2FuIG9ubHkgcmV0dXJuIGEgQmlnSW50IHdo
ZW4gZmVkIGEgQmlnSW50LgotICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUJpZ0ludCgpKSB7CisgICAgICAgIGlmIChub2RlLT5vcCgpID09IENhbGxOdW1iZXJDb25z
dHJ1Y3RvcikgewogI2lmIFVTRShCSUdJTlQzMikKLSAgICAgICAgICAgIGlmIChub2RlLT5jaGls
ZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoKSkKKyAgICAgICAgICAgIGlmIChub2RlLT5j
aGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoKSkgewogICAgICAgICAgICAgICAgIGZp
eEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIGVsc2UgaWYg
KG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVIZWFwQmlnSW50KCkpCi0gICAgICAgICAg
ICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgZml4RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKLSNlbHNlCi0gICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJh
dGUpOworICAgICAgICAgICAgICAgIG5vZGUtPnNldFJlc3VsdChOb2RlUmVzdWx0SW50MzIpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAg
ICAgbm9kZS0+Y29udmVydFRvSWRlbnRpdHkoKTsKLSAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCi0gICAgICAgIGZpeHVwVG9OdW1iZXIobm9kZSk7Ci0gICAgfQorICAgICAgICAvLyBJ
ZiB0aGUgcHJlZGljdGlvbiBvZiB0aGUgY2hpbGQgaXMgQmlnSW50LCB3ZSBhdHRlbXB0IHRvIGNv
bnZlcnQgVG9OdW1lcmljIHRvIElkZW50aXR5LCBzaW5jZSBpdCBjYW4gb25seSByZXR1cm4gYSBC
aWdJbnQgd2hlbiBmZWQgYSBCaWdJbnQuCisgICAgICAgIGlmIChub2RlLT5vcCgpID09IFRvTnVt
ZXJpYykgeworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQoKSkgeworI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+
Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKCkpCisgICAgICAgICAgICAgICAgICAg
IGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBl
bHNlIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlSGVhcEJpZ0ludCgpKQorICAg
ICAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55Qmln
SW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisjZWxzZQorICAgICAgICAgICAgICAgIGZpeEVkZ2U8
SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAg
bm9kZS0+Y29udmVydFRvSWRlbnRpdHkoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KIAotICAgIHZvaWQgZml4dXBUb051bWJlcihOb2RlKiBub2Rl
KQotICAgIHsKICAgICAgICAgLy8gQXQgZmlyc3QsIGF0dGVtcHQgdG8gZm9sZCBCb29sZWFuIG9y
IEludDMyIHRvIEludDMyLgogICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUludDMyT3JCb29sZWFuKCkpIHsKICAgICAgICAgICAgIGlmIChpc0ludDMyU3BlY3VsYXRp
b24obm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgKaW5kZXggZWJlMDE1ODY2YmI3OTkxNGFkMjRhOGJiYzY2ZGE5MWQ4Nzc1N2FmYS4uODcy
Y2QxMDdlNjhjZDA1ZGI3YWFiOGE0MWExY2NkMDlmZGY1OWZmZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKQEAgLTE3OTUsNiArMTc5NSw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAg
ICAgY2FzZSBUb051bWJlcjoKICAgICAgICAgY2FzZSBUb051bWVyaWM6CiAgICAgICAgIGNhc2Ug
VG9PYmplY3Q6CisgICAgICAgIGNhc2UgQ2FsbE51bWJlckNvbnN0cnVjdG9yOgogICAgICAgICBj
YXNlIFZhbHVlQml0QW5kOgogICAgICAgICBjYXNlIFZhbHVlQml0T3I6CiAgICAgICAgIGNhc2Ug
VmFsdWVCaXRYb3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXgg
ZGUzNTc2Mjg3MDM4YmJlZmJiOWE0ZDU2MjI3NWQ3Mzk4ZTVkZmFiMS4uNTYxNjgxNjRkZGY0NmQ4
ODAzNmJhZmZhOTNkMTkxODgwZTVkYTAwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaApAQCAtNDEyLDYgKzQxMiw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICAgICBtYWNybyhUb09iamVjdCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIG1hY3JvKENhbGxPYmplY3RDb25zdHJ1Y3RvciwgTm9kZVJlc3VsdEpTKSBcCiAg
ICAgbWFjcm8oQ2FsbFN0cmluZ0NvbnN0cnVjdG9yLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdl
bmVyYXRlKSBcCisgICAgbWFjcm8oQ2FsbE51bWJlckNvbnN0cnVjdG9yLCBOb2RlUmVzdWx0SlMg
fCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXgs
IE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOdW1iZXJUb1N0
cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKE1h
a2VSb3BlLCBOb2RlUmVzdWx0SlMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCmluZGV4IDQ0Mzg3NmEyMzM4OTY1NzBmMWQyNjI3YTI5NjJjN2IzODA2MGE0
MmEuLjI0ZDUzZTM0ODQ2NTUyNGM0OGQxZjVhZGMwNjYzMzU0NmRkZmIzN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMTUzOSw2ICsxNTM5LDIx
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9OdW1lcmljKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvTnVtZXJpYyhnbG9iYWxPYmplY3QpKTsKIH0KIAorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsTnVtYmVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBKU1ZhbHVlIG51bWVyaWMgPSB2YWx1ZS50b051
bWVyaWMoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OworICAgIGlmICghbnVtZXJpYy5pc0JpZ0ludCgpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKG51bWVyaWMpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OnRv
TnVtYmVyKG51bWVyaWMpKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRCeVZhbFdpdGhUaGlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVGhpcywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IDM4
OWNiOGEzZTEzMGM0NGZkMzlhNTM0YTY4ZDZjODE1NjY5MzE5MmQuLjJiN2YxZDQ5MDQ3OWZmN2Yx
NGQ4ZTVlYTg1N2MwMzczOWUyNGI1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5oCkBAIC05NCw2ICs5NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVG9QcmltaXRpdmUoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRvUHJvcGVydHlLZXkoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Ub051bWJlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRK
U1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblRvTnVtZXJpYyhKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxOdW1iZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxXaXRoVGhpcyhKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRF
Uk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvdG90eXBl
T2YoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm90b3R5cGVPZk9iamVjdChKU0ds
b2JhbE9iamVjdCosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cAppbmRleCAwYWJkYjViNTJkMjM3OTlhOGEzYjc5ZDcwMmFlYjQzNjAwOTM5ZjFmLi4yYzk0MWEx
MmNkYWM0NTM1NDAzMTdhYjBiZThkYTIwM2VhNmRiMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cApAQCAtODk3LDYgKzg5Nyw3IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDog
cHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBUb051bWJlcjoKICAgICAgICAgY2FzZSBUb051
bWVyaWM6CiAgICAgICAgIGNhc2UgVG9PYmplY3Q6CisgICAgICAgIGNhc2UgQ2FsbE51bWJlckNv
bnN0cnVjdG9yOgogICAgICAgICBjYXNlIFZhbHVlQml0QW5kOgogICAgICAgICBjYXNlIFZhbHVl
Qml0WG9yOgogICAgICAgICBjYXNlIFZhbHVlQml0T3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDhkYjBhYmEyY2NlOWNmZDZhYzUzOGMyOGIx
ZjA2YWVjZjVhZjhmMzQuLjQzNmJmYjE1MjA5ZjJlNjJkYjBjMWIzZDNjYjg3YzhiNjMxOTkxNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01
NjUsNiArNTY1LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0
ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBib29sIGlnbm8KICAgICBjYXNlIFRvTnVtYmVy
OgogICAgIGNhc2UgVG9OdW1lcmljOgogICAgIGNhc2UgVG9PYmplY3Q6CisgICAgY2FzZSBDYWxs
TnVtYmVyQ29uc3RydWN0b3I6CiAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhSYWRpeDoKICAg
ICBjYXNlIFNldEZ1bmN0aW9uTmFtZToKICAgICBjYXNlIE5ld1N0cmluZ09iamVjdDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZDIw
NzMyZDZlN2MzOGI3OTcxMDI4MTc5NzlhZjAxZDc5ZTRkNTY1NC4uMTRlOTQ5NTUwZTg3ZTczOTk1
ZTI2OTgxYjQ3ZWZjNTU5NjQyMjRlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTEzMzM2LDcgKzEzMzM2LDggQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVRvTnVtZXJpYyhOb2RlKiBub2RlKQogICAgIEpTVmFsdWVSZWdz
IGFyZ3VtZW50UmVncyA9IGFyZ3VtZW50LmpzVmFsdWVSZWdzKCk7CiAgICAgSlNWYWx1ZVJlZ3Mg
cmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CiAgICAgR1BSUmVnIHNjcmF0Y2ggPSB0ZW1wLmdw
cigpOwotICAgIC8vIEZJWE1FOiBhZGQgYSBmYXN0IHBhdGggZm9yIEJpZ0ludDMyIGhlcmUgKGFu
ZCBmb3IgdHlwZU9mLCBhbmQgZm9yIGJvb2xpZnkgb3Igd2hhdGV2ZXIgaXQgaXMgY2FsbGVkIGlu
IHRoaXMgZmlsZSkuCisgICAgLy8gRklYTUU6IGFkZCBhIGZhc3QgcGF0aCBmb3IgQmlnSW50MzIg
aGVyZS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEx
MDY0CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogCkBAIC0xMzM1
NSw2ICsxMzM1Niw0MSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9OdW1lcmljKE5v
ZGUqIG5vZGUpCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlLCBEYXRhRm9ybWF0
SlMpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2FsbE51bWJlckNvbnN0cnVj
dG9yKE5vZGUqIG5vZGUpCit7CisjaWYgVVNFKEJJR0lOVDMyKQorICAgIGlmIChub2RlLT5jaGls
ZDEoKS51c2VLaW5kKCkgPT0gQmlnSW50MzJVc2UpIHsKKyAgICAgICAgU3BlY3VsYXRlQmlnSW50
MzJPcGVyYW5kIG9wZXJhbmQodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBHUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMpOworCisgICAgICAgIEdQUlJlZyBvcGVyYW5kR1BSID0gb3BlcmFu
ZC5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAg
ICAgICBtX2ppdC51bmJveEJpZ0ludDMyKG9wZXJhbmRHUFIsIHJlc3VsdEdQUik7CisgICAgICAg
IHN0cmljdEludDMyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisjZW5kaWYKKworICAgIERGR19BU1NFUlQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbm9kZS0+
Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UsIG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQo
KSk7CisgICAgSlNWYWx1ZU9wZXJhbmQgYXJndW1lbnQodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwor
ICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICBHUFJUZW1wb3Jhcnkg
dGVtcCh0aGlzKTsKKworICAgIEpTVmFsdWVSZWdzIGFyZ3VtZW50UmVncyA9IGFyZ3VtZW50Lmpz
VmFsdWVSZWdzKCk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7
CisgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOworICAgIC8vIEZJWE1FOiBhZGQgYSBm
YXN0IHBhdGggZm9yIEJpZ0ludDMyIGhlcmUuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMTA2NAorCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBz
bG93Q2FzZXM7CisgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdE51bWJlcihh
cmd1bWVudFJlZ3MsIHRlbXBHUFIpKTsKKyAgICBtX2ppdC5tb3ZlVmFsdWVSZWdzKGFyZ3VtZW50
UmVncywgcmVzdWx0UmVncyk7CisgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxs
KHNsb3dDYXNlcywgdGhpcywgb3BlcmF0aW9uQ2FsbE51bWJlckNvbnN0cnVjdG9yLCByZXN1bHRS
ZWdzLCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYXJndW1lbnRSZWdzKSk7CisKKyAgICBq
c1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlTG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlKE5vZGUqIG5vZGUpCiB7CiAgICAgZmx1
c2hSZWdpc3RlcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAppbmRleCA1YWNlNTI1NWVkMDI3NjUzNWRhMWZhNjhiZjhjMDlkMmFhZmVjOTk5Li43
Nzk2ZDA1NmUxMTJlNWZiM2NlYjIzYjg4NzUwMjcwOTQ4NWVkNGMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xNDc0LDYgKzE0NzQsNyBA
QCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlVG9QcmltaXRpdmUoTm9k
ZSopOwogICAgIHZvaWQgY29tcGlsZVRvUHJvcGVydHlLZXkoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZVRvTnVtZXJpYyhOb2RlKik7CisgICAgdm9pZCBjb21waWxlQ2FsbE51bWJlckNvbnN0cnVj
dG9yKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVMb2dTaGFkb3dDaGlja2VuUHJvbG9ndWUoTm9k
ZSopOwogICAgIHZvaWQgY29tcGlsZUxvZ1NoYWRvd0NoaWNrZW5UYWlsKE5vZGUqKTsKICAgICB2
b2lkIGNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggZTg5YjFj
NzViMmI1YzRlZTg0Yjk1ZGMwMTQ3MzA5OTE3YTI1ODc1ZC4uNjBjOTkxYzIxMWY3MTM1YTZmZTll
ZThlMGMyMDI5ODhlNTI4NGI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zMTUxLDYgKzMxNTEsMTAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlVG9O
dW1lcmljKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIENhbGxOdW1i
ZXJDb25zdHJ1Y3RvcjoKKyAgICAgICAgY29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3Rvcihub2Rl
KTsKKyAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgY2Fz
ZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBiOGQzYTUzYTczYTE2MTA3MTYxM2FjZTIz
ZTU1YzBjMTgwMTA5MTY4Li4wNzgyOWZhYjhlZmIwMjgxN2JmNmQ0ZTFlMmM0OTIwYjQzMDM2ZDAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTM3MTEsNiArMzcxMSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgQ2FsbE51bWJl
ckNvbnN0cnVjdG9yOgorICAgICAgICBjb21waWxlQ2FsbE51bWJlckNvbnN0cnVjdG9yKG5vZGUp
OworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgY2FzZSBDYWxsU3Ry
aW5nQ29uc3RydWN0b3I6CiAgICAgY2FzZSBTdHJpbmdWYWx1ZU9mOiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggOGFlOTgyMDUxNjQ0MTE0
NTVhODk2YjczYmUyZDg0MmVmZmVjNzU1ZC4uYmM5NzMwN2UxYTdmZDg1NmZkMjhhZTljNzUxZWIw
MjVjMjJkYTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMjE5LDYgKzIxOSw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29t
cGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgVG9PYmplY3Q6CiAgICAgY2FzZSBDYWxsT2JqZWN0
Q29uc3RydWN0b3I6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CisgICAgY2FzZSBD
YWxsTnVtYmVyQ29uc3RydWN0b3I6CiAgICAgY2FzZSBPYmplY3RDcmVhdGU6CiAgICAgY2FzZSBP
YmplY3RLZXlzOgogICAgIGNhc2UgTWFrZVJvcGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggODViMTllOGVhNWU1NzQ2YmU1YjVhZDU0YTYz
MjA0YjExYjYyNGI0NC4uYTMwM2IyOTc4MDE3Zjk1Nzg2Mjk5OTE1NmFlOTZhNmY5ODllNDE4YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAt
MTEzMiw2ICsxMTMyLDkgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgY2FzZSBUb051
bWVyaWM6CiAgICAgICAgICAgICBjb21waWxlVG9OdW1lcmljKCk7CiAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6CisgICAgICAgICAgICBjb21w
aWxlQ2FsbE51bWJlckNvbnN0cnVjdG9yKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBUb1N0cmluZzoKICAgICAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAg
ICAgIGNhc2UgU3RyaW5nVmFsdWVPZjoKQEAgLTc1ODgsNiArNzU5MSwzOCBAQCBjbGFzcyBMb3dl
ckRGR1RvQjMgewogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHNldEpTVmFsdWUodm1DYWxs
KEludDY0LCBvcGVyYXRpb25Ub051bWVyaWMsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIHZh
bHVlKSk7CiAgICAgfQorCisgICAgdm9pZCBjb21waWxlQ2FsbE51bWJlckNvbnN0cnVjdG9yKCkK
KyAgICB7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmds
b2JhbE9iamVjdEZvcihtX25vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CisjaWYgVVNFKEJJR0lOVDMy
KQorICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQmlnSW50MzJVc2Up
IHsKKyAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0JpZ0ludDMyKG1fbm9kZS0+Y2hpbGQx
KCkpOworICAgICAgICAgICAgc2V0SW50MzIodW5ib3hCaWdJbnQzMih2YWx1ZSkpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgTFZhbHVlIHZhbHVlID0g
bG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKKworICAgICAgICBMQmFzaWNCbG9jayBub3RO
dW1iZXIgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRp
b24gPSBtX291dC5uZXdCbG9jaygpOworCisgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1
bHQgPSBtX291dC5hbmNob3IodmFsdWUpOworICAgICAgICBtX291dC5icmFuY2goaXNOdW1iZXIo
dmFsdWUsIHByb3ZlblR5cGUobV9ub2RlLT5jaGlsZDEoKSkpLCB1bnN1cmUoY29udGludWF0aW9u
KSwgdW5zdXJlKG5vdE51bWJlcikpOworCisgICAgICAgIC8vIG5vdE51bWJlciBjYXNlLgorICAg
ICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdE51bWJlciwgY29u
dGludWF0aW9uKTsKKyAgICAgICAgLy8gV2UgaGF2ZSBzZXZlcmFsIGF0dGVtcHRzIHRvIHJlbW92
ZSBUb051bWJlci4gQnV0IFRvTnVtYmVyIHN0aWxsIGV4aXN0cy4KKyAgICAgICAgLy8gSXQgbWVh
bnMgdGhhdCBjb252ZXJ0aW5nIG5vbi1udW1iZXJzIHRvIG51bWJlcnMgYnkgdGhpcyBUb051bWJl
ciBpcyBub3QgcmFyZS4KKyAgICAgICAgLy8gSW5zdGVhZCBvZiB0aGUgbGF6eSBzbG93IHBhdGgg
Z2VuZXJhdG9yLCB3ZSBjYWxsIHRoZSBvcGVyYXRpb24gaGVyZS4KKyAgICAgICAgVmFsdWVGcm9t
QmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNhbGwoSW50NjQsIG9wZXJhdGlvbkNh
bGxOdW1iZXJDb25zdHJ1Y3Rvciwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgdmFsdWUpKTsK
KyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgIC8vIGNvbnRpbnVh
dGlvbiBjYXNlLgorICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0
KTsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIGZhc3RSZXN1bHQsIHNsb3dS
ZXN1bHQpKTsKKyAgICB9CisKICAgICAKICAgICB2b2lkIGNvbXBpbGVUb1N0cmluZ09yQ2FsbFN0
cmluZ0NvbnN0cnVjdG9yT3JTdHJpbmdWYWx1ZU9mKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXggYWNhMzU1NTRjZjUxNzNmMDM0MTdjNzQ3
ZDA0Mzg4YzQzNWY2MzkwMC4uNjM3NzVkNzgzMDI3MjdhNmQ3YWQ5ZTk5YTllYjczY2MzNWNiNjgy
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAtMjE5
Miw0ICsyMTkyLDEwNSBAQCBPcHRpb25hbDxKU0JpZ0ludDo6RGlnaXQ+IEpTQmlnSW50Ojp0b1No
aWZ0QW1vdW50KEpTQmlnSW50KiB4KQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAorSlNCaWdJbnQ6
OlJvdW5kaW5nUmVzdWx0IEpTQmlnSW50OjpkZWNpZGVSb3VuZGluZyhKU0JpZ0ludCogYmlnSW50
LCBpbnQzMl90IG1hbnRpc3NhQml0c1Vuc2V0LCBpbnQzMl90IGRpZ2l0SW5kZXgsIHVpbnQ2NF90
IGN1cnJlbnREaWdpdCkKK3sKKyAgICBpZiAobWFudGlzc2FCaXRzVW5zZXQgPiAwKQorICAgICAg
ICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlJvdW5kRG93bjsKKyAgICBpbnQzMl90IHRvcFVuY29u
c3VtZWRCaXQgPSAwOworICAgIGlmIChtYW50aXNzYUJpdHNVbnNldCA8IDApIHsKKyAgICAgICAg
Ly8gVGhlcmUgYXJlIHVuY29uc3VtZWQgYml0cyBpbiBjdXJyZW50RGlnaXQuCisgICAgICAgIHRv
cFVuY29uc3VtZWRCaXQgPSAtbWFudGlzc2FCaXRzVW5zZXQgLSAxOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIEFTU0VSVChtYW50aXNzYUJpdHNVbnNldCA9PSAwKTsKKyAgICAgICAgLy8gY3VycmVu
dERpZ2l0IGZpdCB0aGUgbWFudGlzc2EgZXhhY3RseTsgbG9vayBhdCB0aGUgbmV4dCBkaWdpdC4K
KyAgICAgICAgaWYgKGRpZ2l0SW5kZXggPT0gMCkKKyAgICAgICAgICAgIHJldHVybiBSb3VuZGlu
Z1Jlc3VsdDo6Um91bmREb3duOworICAgICAgICBkaWdpdEluZGV4LS07CisgICAgICAgIGN1cnJl
bnREaWdpdCA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihiaWdJbnQtPmRpZ2l0KGRpZ2l0SW5kZXgp
KTsKKyAgICAgICAgdG9wVW5jb25zdW1lZEJpdCA9IGRpZ2l0Qml0cyAtIDE7CisgICAgfQorICAg
IC8vIElmIHRoZSBtb3N0IHNpZ25pZmljYW50IHJlbWFpbmluZyBiaXQgaXMgMCwgcm91bmQgZG93
bi4KKyAgICB1aW50NjRfdCBiaXRtYXNrID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDEpIDw8IHRv
cFVuY29uc3VtZWRCaXQ7CisgICAgaWYgKChjdXJyZW50RGlnaXQgJiBiaXRtYXNrKSA9PSAwKQor
ICAgICAgICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlJvdW5kRG93bjsKKyAgICAvLyBJZiBhbnkg
b3RoZXIgcmVtYWluaW5nIGJpdCBpcyBzZXQsIHJvdW5kIHVwLgorICAgIGJpdG1hc2sgLT0gMTsK
KyAgICBpZiAoKGN1cnJlbnREaWdpdCAmIGJpdG1hc2spICE9IDApCisgICAgICAgIHJldHVybiBS
b3VuZGluZ1Jlc3VsdDo6Um91bmRVcDsKKyAgICB3aGlsZSAoZGlnaXRJbmRleCA+IDApIHsKKyAg
ICAgICAgZGlnaXRJbmRleC0tOworICAgICAgICBpZiAoYmlnSW50LT5kaWdpdChkaWdpdEluZGV4
KSAhPSAwKQorICAgICAgICAgICAgcmV0dXJuIFJvdW5kaW5nUmVzdWx0OjpSb3VuZFVwOworICAg
IH0KKyAgICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlRpZTsKK30KKworSlNWYWx1ZSBKU0JpZ0lu
dDo6dG9OdW1iZXJIZWFwKEpTQmlnSW50KiBiaWdJbnQpCit7CisgICAgaWYgKGJpZ0ludC0+aXNa
ZXJvKCkpCisgICAgICAgIHJldHVybiBqc051bWJlcigwKTsKKyAgICBBU1NFUlQoYmlnSW50LT5s
ZW5ndGgoKSk7CisKKyAgICAvLyBDb252ZXJzaW9uIG1lY2hhbmlzbSBpcyB0aGUgZm9sbG93aW5n
LgorICAgIC8vCisgICAgLy8gMS4gR2V0IGV4cG9uZW50IGJpdHMuCisgICAgLy8gMi4gQ29sbGVj
dCBtYW50aXNzYSA1MiBiaXRzLgorICAgIC8vIDMuIEFkZCByb3VuZGluZyByZXN1bHQgb2YgdW51
c2VkIGJpdHMgdG8gbWFudGlzc2EgYW5kIGFkanVzdCBtYW50aXNzYSAmIGV4cG9uZW50IGJpdHMu
CisgICAgLy8gNC4gR2VuZXJhdGUgZG91YmxlIGJ5IGNvbWJpbmluZyAoMSkgYW5kICgzKS4KKwor
ICAgIGNvbnN0IHVuc2lnbmVkIGxlbmd0aCA9IGJpZ0ludC0+bGVuZ3RoKCk7CisgICAgY29uc3Qg
Ym9vbCBzaWduID0gYmlnSW50LT5zaWduKCk7CisgICAgY29uc3QgRGlnaXQgbXNkID0gYmlnSW50
LT5kaWdpdChsZW5ndGggLSAxKTsKKyAgICBjb25zdCB1bnNpZ25lZCBtc2RMZWFkaW5nWmVyb3Mg
PSBjbHoobXNkKTsKKyAgICBjb25zdCBzaXplX3QgYml0TGVuZ3RoID0gbGVuZ3RoICogZGlnaXRC
aXRzIC0gbXNkTGVhZGluZ1plcm9zOworICAgIC8vIERvdWJsZSdzIGV4cG9uZW50IGJpdHMgb3Zl
cmZsb3cuCisgICAgaWYgKGJpdExlbmd0aCA+IDEwMjQpCisgICAgICAgIHJldHVybiBqc0RvdWJs
ZU51bWJlcihzaWduID8gLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSA6
IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7CisgICAgdWludDY0X3Qg
ZXhwb25lbnQgPSBiaXRMZW5ndGggLSAxOworICAgIHVpbnQ2NF90IGN1cnJlbnREaWdpdCA9IG1z
ZDsKKyAgICBpbnQzMl90IGRpZ2l0SW5kZXggPSBsZW5ndGggLSAxOworICAgIGludDMyX3Qgc2hp
ZnRBbW91bnQgPSBtc2RMZWFkaW5nWmVyb3MgKyAxICsgKDY0IC0gZGlnaXRCaXRzKTsKKyAgICBB
U1NFUlQoMSA8PSBzaGlmdEFtb3VudCk7CisgICAgQVNTRVJUKHNoaWZ0QW1vdW50IDw9IDY0KTsK
KyAgICB1aW50NjRfdCBtYW50aXNzYSA9IChzaGlmdEFtb3VudCA9PSA2NCkgPyAwIDogY3VycmVu
dERpZ2l0IDw8IHNoaWZ0QW1vdW50OworICAgIG1hbnRpc3NhID4+PSAxMjsgLy8gKDEyID0gNjQg
LSA1MikgKGRvdWJsZSdzIG1hbnRpc3NhIGJpdCBjb3VudCkuCisgICAgaW50MzJfdCBtYW50aXNz
YUJpdHNVbnNldCA9IHNoaWZ0QW1vdW50IC0gMTI7CisKKyAgICAvLyBJZiBub3QgYWxsIG1hbnRp
c3NhIGJpdHMgYXJlIGRlZmluZWQgeWV0LCBnZXQgbW9yZSBkaWdpdHMgYXMgbmVlZGVkLgorICAg
IC8vIENvbGxlY3QgbWFudGlzc2EgNTJiaXRzIGZyb20gc2V2ZXJhbCBkaWdpdHMuCisgICAgaWYg
KG1hbnRpc3NhQml0c1Vuc2V0ID49IHN0YXRpY19jYXN0PGludDMyX3Q+KGRpZ2l0Qml0cykgJiYg
ZGlnaXRJbmRleCA+IDApIHsKKyAgICAgICAgZGlnaXRJbmRleC0tOworICAgICAgICBjdXJyZW50
RGlnaXQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oYmlnSW50LT5kaWdpdChkaWdpdEluZGV4KSk7
CisgICAgICAgIG1hbnRpc3NhIHw9IChjdXJyZW50RGlnaXQgPDwgKG1hbnRpc3NhQml0c1Vuc2V0
IC0gZGlnaXRCaXRzKSk7CisgICAgICAgIG1hbnRpc3NhQml0c1Vuc2V0IC09IGRpZ2l0Qml0czsK
KyAgICB9CisKKyAgICBpZiAobWFudGlzc2FCaXRzVW5zZXQgPiAwICYmIGRpZ2l0SW5kZXggPiAw
KSB7CisgICAgICAgIEFTU0VSVChtYW50aXNzYUJpdHNVbnNldCA8IHN0YXRpY19jYXN0PGludDMy
X3Q+KGRpZ2l0Qml0cykpOworICAgICAgICBkaWdpdEluZGV4LS07CisgICAgICAgIGN1cnJlbnRE
aWdpdCA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihiaWdJbnQtPmRpZ2l0KGRpZ2l0SW5kZXgpKTsK
KyAgICAgICAgbWFudGlzc2EgfD0gKGN1cnJlbnREaWdpdCA+PiAoZGlnaXRCaXRzIC0gbWFudGlz
c2FCaXRzVW5zZXQpKTsKKyAgICAgICAgbWFudGlzc2FCaXRzVW5zZXQgLT0gZGlnaXRCaXRzOwor
ICAgIH0KKworICAgIC8vIElmIHRoZXJlIGFyZSB1bmNvbnN1bWVkIGRpZ2l0cyBsZWZ0LCB3ZSBt
YXkgaGF2ZSB0byByb3VuZC4KKyAgICBSb3VuZGluZ1Jlc3VsdCByb3VuZGluZyA9IGRlY2lkZVJv
dW5kaW5nKGJpZ0ludCwgbWFudGlzc2FCaXRzVW5zZXQsIGRpZ2l0SW5kZXgsIGN1cnJlbnREaWdp
dCk7CisgICAgaWYgKHJvdW5kaW5nID09IFJvdW5kaW5nUmVzdWx0OjpSb3VuZFVwIHx8IChyb3Vu
ZGluZyA9PSBSb3VuZGluZ1Jlc3VsdDo6VGllICYmIChtYW50aXNzYSAmIDEpID09IDEpKSB7Cisg
ICAgICAgICsrbWFudGlzc2E7CisgICAgICAgIC8vIEluY3JlbWVudGluZyB0aGUgbWFudGlzc2Eg
Y2FuIG92ZXJmbG93IHRoZSBtYW50aXNzYSBiaXRzLiBJbiB0aGF0IGNhc2UgdGhlIG5ldyBtYW50
aXNzYSB3aWxsIGJlIGFsbCB6ZXJvIChwbHVzIGhpZGRlbiBiaXQpLgorICAgICAgICBpZiAoKG1h
bnRpc3NhID4+IGRvdWJsZVBoeXNpY2FsU2lnbmlmaWNhbmRTaXplKSAhPSAwKSB7CisgICAgICAg
ICAgICBtYW50aXNzYSA9IDA7CisgICAgICAgICAgICBleHBvbmVudCsrOworICAgICAgICAgICAg
Ly8gSW5jcmVtZW50aW5nIHRoZSBleHBvbmVudCBjYW4gb3ZlcmZsb3cgdG9vLgorICAgICAgICAg
ICAgaWYgKGV4cG9uZW50ID4gMTAyMykKKyAgICAgICAgICAgICAgICByZXR1cm4ganNEb3VibGVO
dW1iZXIoc2lnbiA/IC1zdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkgOiBz
dGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpOworICAgICAgICB9CisgICAg
fQorCisgICAgdWludDY0X3Qgc2lnbkJpdCA9IHNpZ24gPyAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KDEpIDw8IDYzKSA6IDA7CisgICAgZXhwb25lbnQgPSAoZXhwb25lbnQgKyAweDNmZikgPDwgZG91
YmxlUGh5c2ljYWxTaWduaWZpY2FuZFNpemU7IC8vIDB4M2ZmIGlzIGRvdWJsZSBleHBvbmVudCBi
aWFzLgorICAgIHVpbnQ2NF90IGRvdWJsZUJpdHMgPSBzaWduQml0IHwgZXhwb25lbnQgfCBtYW50
aXNzYTsKKyAgICByZXR1cm4ganNOdW1iZXIoYml0d2lzZV9jYXN0PGRvdWJsZT4oZG91YmxlQml0
cykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JpZ0ludC5oCmluZGV4IDQ0MjY3YmM2YjMwMDFkYmYzYWI2M2VjMjgzZjY0NTFhOGQ5NjY0
NTYuLjE3OGMzZmQ5YTE2Njk5MTJmZDYxMjk5YjBjYWQ5YjVmYTNjYmY5NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaApAQCAtMjUzLDYgKzI1MywxNyBAQCBjbGFz
cyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgICAgICByZXR1cm4gdHJ5Q29u
dmVydFRvQmlnSW50MzIoc2lnbmVkUmlnaHRTaGlmdEhlYXAoZ2xvYmFsT2JqZWN0LCB4LCB5KSk7
CiAgICAgfQogCisgICAgc3RhdGljIEpTVmFsdWUgdG9OdW1iZXJIZWFwKEpTQmlnSW50Kik7Cisg
ICAgc3RhdGljIEpTVmFsdWUgdG9OdW1iZXIoSlNWYWx1ZSBiaWdJbnQpCisgICAgeworICAgICAg
ICBBU1NFUlQoYmlnSW50LmlzQmlnSW50KCkpOworI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAg
aWYgKGJpZ0ludC5pc0JpZ0ludDMyKCkpCisgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIoYmln
SW50LmJpZ0ludDMyQXNJbnQzMigpKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gdG9OdW1iZXJI
ZWFwKGpzQ2FzdDxKU0JpZ0ludCo+KGJpZ0ludCkpOworICAgIH0KKwogICAgIERpZ2l0IGRpZ2l0
KHVuc2lnbmVkKTsKICAgICB2b2lkIHNldERpZ2l0KHVuc2lnbmVkLCBEaWdpdCk7IC8vIFVzZSBv
bmx5IHdoZW4gaW5pdGlhbGl6aW5nLgogICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTQmlnSW50KiBy
aWdodFRyaW0oVk0mKTsKQEAgLTI2NSw2ICsyNzYsOCBAQCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6
IHB1YmxpYyBKU0NlbGwgewogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaGFsZkRpZ2l0
Qml0cyA9IGRpZ2l0Qml0cyAvIDI7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBEaWdpdCBoYWxmRGln
aXRNYXNrID0gKDF1bGwgPDwgaGFsZkRpZ2l0Qml0cykgLSAxOwogICAgIHN0YXRpYyBjb25zdGV4
cHIgaW50IG1heEludCA9IDB4N0ZGRkZGRkY7CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIGRvdWJsZVBoeXNpY2FsU2lnbmlmaWNhbmRTaXplID0gNTI7CiAgICAgCiAgICAgLy8gVGhl
IG1heGltdW0gbGVuZ3RoIHRoYXQgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMg
d291bGQgYmUKICAgICAvLyBtYXhJbnQgLyBkaWdpdEJpdHMuIEhvd2V2ZXIsIHdlIHVzZSBhIGxv
d2VyIGxpbWl0IGZvciBub3csIGJlY2F1c2UKQEAgLTI5Myw2ICszMDYsMTQgQEAgY2xhc3MgSlNC
aWdJbnQgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBEaWdpdCBhYnNvbHV0ZUlucGxhY2VT
dWIoSlNCaWdJbnQqIHN1YnRyYWhlbmQsIHVuc2lnbmVkIHN0YXJ0SW5kZXgpOwogICAgIHZvaWQg
aW5wbGFjZVJpZ2h0U2hpZnQodW5zaWduZWQgc2hpZnQpOwogCisgICAgZW51bSBjbGFzcyBSb3Vu
ZGluZ1Jlc3VsdCB7CisgICAgICAgIFJvdW5kRG93biwKKyAgICAgICAgVGllLAorICAgICAgICBS
b3VuZFVwCisgICAgfTsKKworICAgIHN0YXRpYyBSb3VuZGluZ1Jlc3VsdCBkZWNpZGVSb3VuZGlu
ZyhKU0JpZ0ludCosIGludDMyX3QgbWFudGlzc2FCaXRzVW5zZXQsIGludDMyX3QgZGlnaXRJbmRl
eCwgdWludDY0X3QgY3VycmVudERpZ2l0KTsKKwogICAgIGVudW0gY2xhc3MgRXh0cmFEaWdpdHNI
YW5kbGluZyB7CiAgICAgICAgIENvcHksCiAgICAgICAgIFNraXAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAppbmRleCA3ODYxNjYw
ZDYwYmViNjNkMDI1NTRhNWZmM2NmNDEwOTQ2OTM2OTZjLi40OTAwZTE1NzRiNmU1Mjk0M2QzZGI0
Zjg4ZWJmNzdkMThlZWRkYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCkBAIC05MCw4ICs5MCwxOCBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogZwogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgZG91YmxlIG4gPSBjYWxs
RnJhbWUtPmFyZ3VtZW50Q291bnQoKSA/IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCku
dG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSA6IDA7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgZG91YmxlIG4gPSAwOworICAgIGlmIChjYWxsRnJh
bWUtPmFyZ3VtZW50Q291bnQoKSkgeworICAgICAgICBKU1ZhbHVlIG51bWVyaWMgPSBjYWxsRnJh
bWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvTnVtZXJpYyhnbG9iYWxPYmplY3QpOworICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgICAgICBpZiAobnVtZXJpYy5p
c051bWJlcigpKQorICAgICAgICAgICAgbiA9IG51bWVyaWMuYXNOdW1iZXIoKTsKKyAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICBudW1lcmljID0gSlNCaWdJbnQ6OnRvTnVtYmVyKG51bWVyaWMp
OworICAgICAgICAgICAgQVNTRVJUKG51bWVyaWMuaXNOdW1iZXIoKSk7CisgICAgICAgICAgICBu
ID0gbnVtZXJpYy5hc051bWJlcigpOworICAgICAgICB9CisgICAgfQogCiAgICAgSlNPYmplY3Qq
IG5ld1RhcmdldCA9IGFzT2JqZWN0KGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpOwogICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlID0gbmV3VGFyZ2V0ID09IGNhbGxGcmFtZS0+anNDYWxsZWUoKQpAQCAt
MTA3LDcgKzExNywxNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZwogLy8gRUNNQSAxNS43LjIK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxOdW1iZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKCFjYWxsRnJhbWUtPmFyZ3VtZW50
Q291bnQoKSA/IDAgOiBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvTnVtYmVyKGds
b2JhbE9iamVjdCkpKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmICghY2FsbEZyYW1lLT5h
cmd1bWVudENvdW50KCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
MCkpOworICAgIEpTVmFsdWUgbnVtZXJpYyA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQo
MCkudG9OdW1lcmljKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKKyAgICBpZiAobnVtZXJpYy5pc051bWJlcigpKQorICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKG51bWVyaWMpOworICAgIEFTU0VSVChudW1lcmljLmlzQmlnSW50KCkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNCaWdJbnQ6OnRvTnVtYmVyKG51bWVyaWMpKTsK
IH0KIAogLy8gRUNNQS0yNjIgMjAuMS4yLjMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9n
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjBmZmFhN2VlZGRjYmFlOTczMTQ5YmY5ZTFjNDky
MDY0NGZjYWNlMS4uYmNhMDdjZWRiNTczODdjNTE2NDEyMTFiZmQ3MzBmYjg5NDIwODAyMCAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wNC0yNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE51bWJlckNvbnN0cnVjdG9yIHNob3VsZCBhY2NlcHQgQmlnSW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA4MzUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVz
cy9udW1iZXItY29uc3RydWN0b3ItYmlnaW50LWRmZy5qczogQWRkZWQuCisgICAgICAgIChzaG91
bGRCZSk6CisgICAgICAgIChjb252ZXJ0KToKKyAgICAgICAgKiBzdHJlc3MvbnVtYmVyLWNvbnN0
cnVjdG9yLWJpZ2ludC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICog
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKwogMjAyMC0wNC0yNiAgQWxleGV5IFNodmF5a2Eg
IDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgU3ltYm9sIHNob3VsZCBoYXZlIFtb
Q29uc3RydWN0XV0gaW50ZXJuYWwgbWV0aG9kCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9u
dW1iZXItY29uc3RydWN0b3ItYmlnaW50LWRmZy5qcyBiL0pTVGVzdHMvc3RyZXNzL251bWJlci1j
b25zdHJ1Y3Rvci1iaWdpbnQtZGZnLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZWNhMzFkZjlhY2QzNjhhZjM0
NjA2ODM4ZGFkN2QyMWI5NDY2OGUKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9u
dW1iZXItY29uc3RydWN0b3ItYmlnaW50LWRmZy5qcwpAQCAtMCwwICsxLDUzIEBACitmdW5jdGlv
biBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30K
KworZnVuY3Rpb24gY29udmVydChiaWdJbnQpCit7CisgICAgcmV0dXJuIE51bWJlcihiaWdJbnQp
OworfQorbm9JbmxpbmUoY29udmVydCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kp
IHsKKyAgICBzaG91bGRCZShjb252ZXJ0KDBuKSwgMCk7CisgICAgc2hvdWxkQmUoY29udmVydCgw
eDdmZmZmZmZmbiksIDB4N2ZmZmZmZmYpOworICAgIHNob3VsZEJlKGNvbnZlcnQoLTB4N2ZmZmZm
ZmZuIC0gMW4pLCAtMHg4MDAwMDAwMCk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyAr
K2kpIHsKKyAgICBzaG91bGRCZShjb252ZXJ0KDB4ODAwMDAwMDBuKSwgMHg4MDAwMDAwMCk7Cisg
ICAgc2hvdWxkQmUoY29udmVydCgweDdmZmZmZmZmbiArIDFuKSwgMHg4MDAwMDAwMCk7CisgICAg
c2hvdWxkQmUoY29udmVydCgweDdmZmZmZmZmbiArIDJuKSwgMHg4MDAwMDAwMSk7CisgICAgc2hv
dWxkQmUoY29udmVydCgtMHg3ZmZmZmZmZm4gLSAybiksIC0weDgwMDAwMDAxKTsKK30KKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHNob3VsZEJlKGNvbnZlcnQoMHgyMDAw
MDAwMDAwMDAwMG4pLCA5MDA3MTk5MjU0NzQwOTkyKTsKKyAgICBzaG91bGRCZShjb252ZXJ0KDB4
MjAwMDAwMDAwMDAwMDBuICsgMW4pLCA5MDA3MTk5MjU0NzQwOTkyKTsKKyAgICBzaG91bGRCZShj
b252ZXJ0KDB4MjAwMDAwMDAwMDAwMDBuICsgMm4pLCA5MDA3MTk5MjU0NzQwOTk0KTsKKyAgICBz
aG91bGRCZShjb252ZXJ0KDB4MjAwMDAwMDAwMDAwMDBuICsgM24pLCA5MDA3MTk5MjU0NzQwOTk2
KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KDB4MjAwMDAwMDAwMDAwMDBuICsgNG4pLCA5MDA3MTk5
MjU0NzQwOTk2KTsKKworICAgIHNob3VsZEJlKGNvbnZlcnQoLSgweDIwMDAwMDAwMDAwMDAwbikp
LCAtOTAwNzE5OTI1NDc0MDk5Mik7CisgICAgc2hvdWxkQmUoY29udmVydCgtKDB4MjAwMDAwMDAw
MDAwMDBuICsgMW4pKSwgLTkwMDcxOTkyNTQ3NDA5OTIpOworICAgIHNob3VsZEJlKGNvbnZlcnQo
LSgweDIwMDAwMDAwMDAwMDAwbiArIDJuKSksIC05MDA3MTk5MjU0NzQwOTk0KTsKKyAgICBzaG91
bGRCZShjb252ZXJ0KC0oMHgyMDAwMDAwMDAwMDAwMG4gKyAzbikpLCAtOTAwNzE5OTI1NDc0MDk5
Nik7CisgICAgc2hvdWxkQmUoY29udmVydCgtKDB4MjAwMDAwMDAwMDAwMDBuICsgNG4pKSwgLTkw
MDcxOTkyNTQ3NDA5OTYpOworCisgICAgc2hvdWxkQmUoY29udmVydCgybiAqKiAoMTAyNG4gLSAx
bikpLCA4Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworICAgIHNob3VsZEJlKGNvbnZlcnQoMm4gKiog
KDEwMjRuIC0gMW4pKSwgOC45ODg0NjU2NzQzMTE1OGUrMzA3KTsKKyAgICBzaG91bGRCZShjb252
ZXJ0KDB4MWZmZmZmZmZmZmZmZmZuIDw8IDk3MW4pLCBOdW1iZXIuTUFYX1ZBTFVFKTsKKyAgICBz
aG91bGRCZShjb252ZXJ0KDB4MjAwMDAwMDAwMDAwMDBuIDw8IDk3MW4pLCBJbmZpbml0eSk7Cisg
ICAgc2hvdWxkQmUoY29udmVydCgweDFmZmZmZmZmZmZmZmZmZm4gPDwgOTY2biksIDguOTg4NDY1
Njc0MzExNThlKzMwNyk7CisgICAgc2hvdWxkQmUoY29udmVydCgweDNmZmZmZmZmZmZmZmZmbiA8
PCA5NzBuKSwgSW5maW5pdHkpOworICAgIHNob3VsZEJlKGNvbnZlcnQoMHgzZmZmZmZmZmZmZmZm
Zm4gPDwgOTY5biksIDguOTg4NDY1Njc0MzExNThlKzMwNyk7CisKKyAgICBzaG91bGRCZShjb252
ZXJ0KC0oMm4gKiogKDEwMjRuIC0gMW4pKSksIC04Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworICAg
IHNob3VsZEJlKGNvbnZlcnQoLSgybiAqKiAoMTAyNG4gLSAxbikpKSwgLTguOTg4NDY1Njc0MzEx
NThlKzMwNyk7CisgICAgc2hvdWxkQmUoY29udmVydCgtMHgxZmZmZmZmZmZmZmZmZm4gPDwgOTcx
biksIC1OdW1iZXIuTUFYX1ZBTFVFKTsKKyAgICBzaG91bGRCZShjb252ZXJ0KC0weDIwMDAwMDAw
MDAwMDAwbiA8PCA5NzFuKSwgLUluZmluaXR5KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KC0weDFm
ZmZmZmZmZmZmZmZmZm4gPDwgOTY2biksIC04Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworICAgIHNo
b3VsZEJlKGNvbnZlcnQoLTB4M2ZmZmZmZmZmZmZmZmZuIDw8IDk3MG4pLCAtSW5maW5pdHkpOwor
ICAgIHNob3VsZEJlKGNvbnZlcnQoLTB4M2ZmZmZmZmZmZmZmZmZuIDw8IDk2OW4pLCAtOC45ODg0
NjU2NzQzMTE1OGUrMzA3KTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL251bWJlci1j
b25zdHJ1Y3Rvci1iaWdpbnQuanMgYi9KU1Rlc3RzL3N0cmVzcy9udW1iZXItY29uc3RydWN0b3It
YmlnaW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MWEwYmYwMWIwMGFiMzdjZDFmMTRiOGE0ODkzYjczNGM4
YzlmMmMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9udW1iZXItY29uc3RydWN0
b3ItYmlnaW50LmpzCkBAIC0wLDAgKzEsODQgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitzaG91bGRCZShOdW1iZXIo
MG4pLCAwKTsKKworLy8gQXJvdW5kIEludDMyIG1heC9taW4uCitzaG91bGRCZShOdW1iZXIoMHg3
ZmZmZmZmZm4pLCAweDdmZmZmZmZmKTsKK3Nob3VsZEJlKE51bWJlcigweDgwMDAwMDAwbiksIDB4
ODAwMDAwMDApOworc2hvdWxkQmUoTnVtYmVyKDB4N2ZmZmZmZmZuICsgMW4pLCAweDgwMDAwMDAw
KTsKK3Nob3VsZEJlKE51bWJlcigweDdmZmZmZmZmbiArIDJuKSwgMHg4MDAwMDAwMSk7CitzaG91
bGRCZShOdW1iZXIoLTB4N2ZmZmZmZmZuIC0gMW4pLCAtMHg4MDAwMDAwMCk7CitzaG91bGRCZShO
dW1iZXIoLTB4N2ZmZmZmZmZuIC0gMm4pLCAtMHg4MDAwMDAwMSk7CisKKy8vIEFyb3VuZCBJbnQ1
MiBtYXgvbWluLgorc2hvdWxkQmUoTnVtYmVyKDB4MjAwMDAwMDAwMDAwMDBuKSwgOTAwNzE5OTI1
NDc0MDk5Mik7CitzaG91bGRCZShOdW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4gKyAxbiksIDkwMDcx
OTkyNTQ3NDA5OTIpOworc2hvdWxkQmUoTnVtYmVyKDB4MjAwMDAwMDAwMDAwMDBuICsgMm4pLCA5
MDA3MTk5MjU0NzQwOTk0KTsKK3Nob3VsZEJlKE51bWJlcigweDIwMDAwMDAwMDAwMDAwbiArIDNu
KSwgOTAwNzE5OTI1NDc0MDk5Nik7CitzaG91bGRCZShOdW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4g
KyA0biksIDkwMDcxOTkyNTQ3NDA5OTYpOworCitzaG91bGRCZShOdW1iZXIoLSgweDIwMDAwMDAw
MDAwMDAwbikpLCAtOTAwNzE5OTI1NDc0MDk5Mik7CitzaG91bGRCZShOdW1iZXIoLSgweDIwMDAw
MDAwMDAwMDAwbiArIDFuKSksIC05MDA3MTk5MjU0NzQwOTkyKTsKK3Nob3VsZEJlKE51bWJlcigt
KDB4MjAwMDAwMDAwMDAwMDBuICsgMm4pKSwgLTkwMDcxOTkyNTQ3NDA5OTQpOworc2hvdWxkQmUo
TnVtYmVyKC0oMHgyMDAwMDAwMDAwMDAwMG4gKyAzbikpLCAtOTAwNzE5OTI1NDc0MDk5Nik7Citz
aG91bGRCZShOdW1iZXIoLSgweDIwMDAwMDAwMDAwMDAwbiArIDRuKSksIC05MDA3MTk5MjU0NzQw
OTk2KTsKKworLy8gQXJvdW5kIEluZmluaXR5Lgorc2hvdWxkQmUoTnVtYmVyKDJuICoqICgxMDI0
biAtIDFuKSksIDguOTg4NDY1Njc0MzExNThlKzMwNyk7CitzaG91bGRCZShOdW1iZXIoMm4gKiog
KDEwMjRuIC0gMW4pKSwgOC45ODg0NjU2NzQzMTE1OGUrMzA3KTsKK3Nob3VsZEJlKE51bWJlcigw
eDFmZmZmZmZmZmZmZmZmbiA8PCA5NzFuKSwgTnVtYmVyLk1BWF9WQUxVRSk7CitzaG91bGRCZShO
dW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4gPDwgOTcxbiksIEluZmluaXR5KTsKK3Nob3VsZEJlKE51
bWJlcigweDFmZmZmZmZmZmZmZmZmZm4gPDwgOTY2biksIDguOTg4NDY1Njc0MzExNThlKzMwNyk7
CitzaG91bGRCZShOdW1iZXIoMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTcwbiksIEluZmluaXR5KTsK
K3Nob3VsZEJlKE51bWJlcigweDNmZmZmZmZmZmZmZmZmbiA8PCA5NjluKSwgOC45ODg0NjU2NzQz
MTE1OGUrMzA3KTsKKworc2hvdWxkQmUoTnVtYmVyKC0oMm4gKiogKDEwMjRuIC0gMW4pKSksIC04
Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworc2hvdWxkQmUoTnVtYmVyKC0oMm4gKiogKDEwMjRuIC0g
MW4pKSksIC04Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworc2hvdWxkQmUoTnVtYmVyKC0weDFmZmZm
ZmZmZmZmZmZmbiA8PCA5NzFuKSwgLU51bWJlci5NQVhfVkFMVUUpOworc2hvdWxkQmUoTnVtYmVy
KC0weDIwMDAwMDAwMDAwMDAwbiA8PCA5NzFuKSwgLUluZmluaXR5KTsKK3Nob3VsZEJlKE51bWJl
cigtMHgxZmZmZmZmZmZmZmZmZmZuIDw8IDk2Nm4pLCAtOC45ODg0NjU2NzQzMTE1OGUrMzA3KTsK
K3Nob3VsZEJlKE51bWJlcigtMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTcwbiksIC1JbmZpbml0eSk7
CitzaG91bGRCZShOdW1iZXIoLTB4M2ZmZmZmZmZmZmZmZmZuIDw8IDk2OW4pLCAtOC45ODg0NjU2
NzQzMTE1OGUrMzA3KTsKKworc2hvdWxkQmUoK25ldyBOdW1iZXIoMG4pLCArbmV3IE51bWJlcigw
KSk7CisKKy8vIEFyb3VuZCBJbnQzMiBtYXgvbWluLgorc2hvdWxkQmUoK25ldyBOdW1iZXIoMHg3
ZmZmZmZmZm4pLCArbmV3IE51bWJlcigweDdmZmZmZmZmKSk7CitzaG91bGRCZSgrbmV3IE51bWJl
cigweDgwMDAwMDAwbiksICtuZXcgTnVtYmVyKDB4ODAwMDAwMDApKTsKK3Nob3VsZEJlKCtuZXcg
TnVtYmVyKDB4N2ZmZmZmZmZuICsgMW4pLCArbmV3IE51bWJlcigweDgwMDAwMDAwKSk7CitzaG91
bGRCZSgrbmV3IE51bWJlcigweDdmZmZmZmZmbiArIDJuKSwgK25ldyBOdW1iZXIoMHg4MDAwMDAw
MSkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoLTB4N2ZmZmZmZmZuIC0gMW4pLCArbmV3IE51bWJl
cigtMHg4MDAwMDAwMCkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoLTB4N2ZmZmZmZmZuIC0gMm4p
LCArbmV3IE51bWJlcigtMHg4MDAwMDAwMSkpOworCisvLyBBcm91bmQgSW50NTIgbWF4L21pbi4K
K3Nob3VsZEJlKCtuZXcgTnVtYmVyKDB4MjAwMDAwMDAwMDAwMDBuKSwgK25ldyBOdW1iZXIoOTAw
NzE5OTI1NDc0MDk5MikpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4g
KyAxbiksICtuZXcgTnVtYmVyKDkwMDcxOTkyNTQ3NDA5OTIpKTsKK3Nob3VsZEJlKCtuZXcgTnVt
YmVyKDB4MjAwMDAwMDAwMDAwMDBuICsgMm4pLCArbmV3IE51bWJlcig5MDA3MTk5MjU0NzQwOTk0
KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigweDIwMDAwMDAwMDAwMDAwbiArIDNuKSwgK25ldyBO
dW1iZXIoOTAwNzE5OTI1NDc0MDk5NikpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMHgyMDAwMDAw
MDAwMDAwMG4gKyA0biksICtuZXcgTnVtYmVyKDkwMDcxOTkyNTQ3NDA5OTYpKTsKKworc2hvdWxk
QmUoK25ldyBOdW1iZXIoLSgweDIwMDAwMDAwMDAwMDAwbikpLCArbmV3IE51bWJlcigtOTAwNzE5
OTI1NDc0MDk5MikpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoLSgweDIwMDAwMDAwMDAwMDAwbiAr
IDFuKSksICtuZXcgTnVtYmVyKC05MDA3MTk5MjU0NzQwOTkyKSk7CitzaG91bGRCZSgrbmV3IE51
bWJlcigtKDB4MjAwMDAwMDAwMDAwMDBuICsgMm4pKSwgK25ldyBOdW1iZXIoLTkwMDcxOTkyNTQ3
NDA5OTQpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0oMHgyMDAwMDAwMDAwMDAwMG4gKyAzbikp
LCArbmV3IE51bWJlcigtOTAwNzE5OTI1NDc0MDk5NikpOworc2hvdWxkQmUoK25ldyBOdW1iZXIo
LSgweDIwMDAwMDAwMDAwMDAwbiArIDRuKSksICtuZXcgTnVtYmVyKC05MDA3MTk5MjU0NzQwOTk2
KSk7CisKKy8vIEFyb3VuZCBJbmZpbml0eS4KK3Nob3VsZEJlKCtuZXcgTnVtYmVyKDJuICoqICgx
MDI0biAtIDFuKSksICtuZXcgTnVtYmVyKDguOTg4NDY1Njc0MzExNThlKzMwNykpOworc2hvdWxk
QmUoK25ldyBOdW1iZXIoMm4gKiogKDEwMjRuIC0gMW4pKSwgK25ldyBOdW1iZXIoOC45ODg0NjU2
NzQzMTE1OGUrMzA3KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigweDFmZmZmZmZmZmZmZmZmbiA8
PCA5NzFuKSwgK25ldyBOdW1iZXIoTnVtYmVyLk1BWF9WQUxVRSkpOworc2hvdWxkQmUoK25ldyBO
dW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4gPDwgOTcxbiksICtuZXcgTnVtYmVyKEluZmluaXR5KSk7
CitzaG91bGRCZSgrbmV3IE51bWJlcigweDFmZmZmZmZmZmZmZmZmZm4gPDwgOTY2biksICtuZXcg
TnVtYmVyKDguOTg4NDY1Njc0MzExNThlKzMwNykpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMHgz
ZmZmZmZmZmZmZmZmZm4gPDwgOTcwbiksICtuZXcgTnVtYmVyKEluZmluaXR5KSk7CitzaG91bGRC
ZSgrbmV3IE51bWJlcigweDNmZmZmZmZmZmZmZmZmbiA8PCA5NjluKSwgK25ldyBOdW1iZXIoOC45
ODg0NjU2NzQzMTE1OGUrMzA3KSk7CisKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0oMm4gKiogKDEw
MjRuIC0gMW4pKSksICtuZXcgTnVtYmVyKC04Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpKTsKK3Nob3Vs
ZEJlKCtuZXcgTnVtYmVyKC0oMm4gKiogKDEwMjRuIC0gMW4pKSksICtuZXcgTnVtYmVyKC04Ljk4
ODQ2NTY3NDMxMTU4ZSszMDcpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0weDFmZmZmZmZmZmZm
ZmZmbiA8PCA5NzFuKSwgK25ldyBOdW1iZXIoLU51bWJlci5NQVhfVkFMVUUpKTsKK3Nob3VsZEJl
KCtuZXcgTnVtYmVyKC0weDIwMDAwMDAwMDAwMDAwbiA8PCA5NzFuKSwgK25ldyBOdW1iZXIoLUlu
ZmluaXR5KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigtMHgxZmZmZmZmZmZmZmZmZmZuIDw8IDk2
Nm4pLCArbmV3IE51bWJlcigtOC45ODg0NjU2NzQzMTE1OGUrMzA3KSk7CitzaG91bGRCZSgrbmV3
IE51bWJlcigtMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTcwbiksICtuZXcgTnVtYmVyKC1JbmZpbml0
eSkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoLTB4M2ZmZmZmZmZmZmZmZmZuIDw8IDk2OW4pLCAr
bmV3IE51bWJlcigtOC45ODg0NjU2NzQzMTE1OGUrMzA3KSk7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25z
LnlhbWwKaW5kZXggMGMxNDcxYzAwYmI4MWVkNWU1ZGQ0ZjAzMzQzYTk2MTFjYTg4YWRiOS4uZjBj
MDJmM2YwZGZhYzkwZGRiY2Y1YWFhN2VmYTBhOGIyOTQxZWY4MCAxMDA2NDQKLS0tIGEvSlNUZXN0
cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3Rh
dGlvbnMueWFtbApAQCAtMTA2OCw5ICsxMDY4LDYgQEAgdGVzdC9idWlsdC1pbnMvRnVuY3Rpb24v
cHJvdG90eXBlL3RvU3RyaW5nL3VuaWNvZGUuanM6CiB0ZXN0L2J1aWx0LWlucy9KU09OL3BhcnNl
L3Jldml2ZXItb2JqZWN0LW5vbi1jb25maWd1cmFibGUtcHJvcC1jcmVhdGUuanM6CiAgIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzIywrssIMKrMsK7KSB0byBi
ZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrMjLCuywgwqsywrspIHRvIGJlIHRydWUnCi10ZXN0L2J1aWx0LWlucy9OdW1iZXIvYmlnaW50
LWNvbnZlcnNpb24uanM6Ci0gIGRlZmF1bHQ6ICJUeXBlRXJyb3I6IENvbnZlcnNpb24gZnJvbSAn
QmlnSW50JyB0byAnbnVtYmVyJyBpcyBub3QgYWxsb3dlZC4iCi0gIHN0cmljdCBtb2RlOiAiVHlw
ZUVycm9yOiBDb252ZXJzaW9uIGZyb20gJ0JpZ0ludCcgdG8gJ251bWJlcicgaXMgbm90IGFsbG93
ZWQuIgogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2VudHJpZXMvb3JkZXItYWZ0ZXItZGVmaW5lLXBy
b3BlcnR5LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5k
IFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCiAgIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNv
bnRlbnRzLiAnCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397660</attachid>
            <date>2020-04-27 01:35:56 -0700</date>
            <delta_ts>2020-04-27 14:23:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210835-20200427013545.patch</filename>
            <type>text/plain</type>
            <size>41910</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MWE1NDEzYmM1MmQzNjc4ZGZjNzY4ZmUwNjVlMzYwNWEyNjJmMjNjLi43MjRjNmExNzIzYTA5ZTNi
MjVlMzBjNWM2NTdmNTI0M2Y1NDFiZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MCBAQAorMjAyMC0wNC0yNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE51bWJlckNvbnN0cnVjdG9yIHNob3VsZCBhY2NlcHQgQmlnSW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA4MzUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIG91ciBOdW1iZXIgY29uc3RydWN0b3IgYmVoYXZpb3IgdG8gYWNjZXB0IEJpZ0lu
dC4gQWNjb3JkaW5nIHRvIHRoZSBzcGVjWzFdLAorICAgICAgICBOdW1iZXIgY29uc3RydWN0b3Ig
c2hvdWxkIGFjY2VwdCBCaWdJbnQgYW5kIHNob3VsZCBnZW5lcmF0ZSBudW1iZXJzIGZyb20gdGhh
dC4KKworICAgICAgICBXZSBwb3J0IFY4J3MgQmlnSW50IHRvIGRvdWJsZSBjb252ZXJzaW9uIGNv
ZGUgYXMgd2UgZGlkIGZvciB0aGUgb3RoZXIgSGVhcEJpZ0ludCBydW50aW1lIGZ1bmN0aW9ucy4K
KworICAgICAgICBBbmQgd2UgaW50cm9kdWNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvciBERkcgbm9k
ZSBhbmQgaGFuZGxlIE51bWJlciBjb25zdHJ1Y3RvciBjYWxsIHdpdGggQmlnSW50IGNvcnJlY3Rs
eQorICAgICAgICBpbiBERkcgYW5kIEZUTC4gUHJldmlvdXNseSB3ZSB3ZXJlIGVtaXR0aW5nIFRv
TnVtYmVyIERGRyBub2RlIGZvciBOdW1iZXIgY29uc3RydWN0b3IuIEJ1dCB0aGlzIGlzIHdyb25n
CisgICAgICAgIG5vdyBzaW5jZSBUb051bWJlciBkb2VzIG5vdCBhY2NlcHQgQmlnSW50IGFuZCB0
aHJvd3MgYW4gZXJyb3IsIGFuZCBOdW1iZXIgY29uc3RydWN0b3Igc2hvdWxkIG5vdCB1c2UKKyAg
ICAgICAgVG9OdW1iZXIgdG8gaW1wbGVtZW50IGl0cyBpbXBsZW1lbnRhdGlvbi4gU28gd2Ugc2hv
dWxkIGludHJvZHVjZSBzbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzOiBDYWxsTnVtYmVyQ29u
c3RydWN0b3IKKyAgICAgICAgYXMgd2UgaW50cm9kdWNlZCBDYWxsU3RyaW5nQ29uc3RydWN0b3Ig
aW4gYWRkaXRpb24gdG8gVG9TdHJpbmcgREZHIG5vZGUuIEFuZCB3ZSBhZGQgYXBwcm9wcmlhdGUg
QmlnSW50MzIgcGF0aAorICAgICAgICB0byBlbWl0IGVmZmljaWVudCBDYWxsTnVtYmVyQ29uc3Ry
dWN0b3IgbWFjaGluZSBjb2RlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEy
NjIvI3NlYy1udW1iZXItY29uc3RydWN0b3ItbnVtYmVyLXZhbHVlCisKKyAgICAgICAgKiBkZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAg
ICAgICAqIGRmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAq
IGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQ
YXJzZXI6OmhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbik6CisgICAgICAgICogZGZnL0RG
R0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAg
KiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNv
bnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9l
c0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdG
aXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUp
OgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwVG9OdW1iZXJPclRvTnVtZXJp
Y09yQ2FsbE51bWJlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNl
OjpmaXh1cFRvTnVtZXJpYyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBUb051bWJlcik6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNIZWFwUHJlZGljdGlvbik6CisgICAgICAgICogZGZn
L0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAg
ICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVU
b051bWVyaWMpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2Fs
bE51bWJlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3Rv
cik6CisgICAgICAgICogcnVudGltZS9KU0JpZ0ludC5jcHA6CisgICAgICAgIChKU0M6OkpTQmln
SW50OjpkZWNpZGVSb3VuZGluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b051bWJlckhl
YXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAgICAgICAgKiBydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0TnVtYmVyQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsTnVtYmVyQ29uc3RydWN0b3IpOgorCiAyMDIwLTA0
LTI2ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBb
SlNDXSBDbGVhcmx5IGRpc3Rpbmd1aXNoIGlzQ29uc3RydWN0b3IgZnJvbSBnZXRDb25zdHJ1Y3RE
YXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggYmZjMTZkOWRhMjllMDg1YTgzYTA4OTk2NTMyODY1
NjVmNDU1NTI2MC4uNTk0MjYzOWNkMjEwZDEwZDhiZWY4MTA2MmJkYjE3NmYyMmU5NWFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaApAQCAtMjcxMSw2ICsyNzExLDQ1IEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2Ji
ZXJMaW1pCiAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCeXRlY29kZU51bWJlciB8
IFNwZWNCaWdJbnQpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIENhbGxOdW1i
ZXJDb25zdHJ1Y3RvcjogeworICAgICAgICBKU1ZhbHVlIGNoaWxkQ29uc3QgPSBmb3JOb2RlKG5v
ZGUtPmNoaWxkMSgpKS52YWx1ZSgpOworICAgICAgICBpZiAoY2hpbGRDb25zdCkgeworICAgICAg
ICAgICAgaWYgKGNoaWxkQ29uc3QuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgICAgIGlmIChu
b2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKKyAgICAgICAgICAgICAgICAg
ICAgZGlkRm9sZENsb2JiZXJXb3JsZCgpOworICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5v
ZGUsIGNoaWxkQ29uc3QpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
I2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgIGlmIChjaGlsZENvbnN0LmlzQmlnSW50MzIo
KSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50
eXBlZFVzZSkKKyAgICAgICAgICAgICAgICAgICAgZGlkRm9sZENsb2JiZXJXb3JsZCgpOworICAg
ICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzTnVtYmVyKGNoaWxkQ29uc3QuYmlnSW50
MzJBc0ludDMyKCkpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyNl
bmRpZgorICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQo
KSA9PSBVbnR5cGVkVXNlIHx8IG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBCaWdJbnQzMlVz
ZSk7CisKKyAgICAgICAgaWYgKCEoZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlICYgflNw
ZWNCeXRlY29kZU51bWJlcikpIHsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29u
c3RhbnRGb2xkaW5nKHRydWUpOworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBVbnR5cGVkVXNlKQorICAgICAgICAgICAgICAgIGRpZEZvbGRDbG9iYmVyV29ybGQo
KTsKKyAgICAgICAgICAgIHNldEZvck5vZGUobm9kZSwgZm9yTm9kZShub2RlLT5jaGlsZDEoKSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAobm9kZS0+Y2hp
bGQxKCkudXNlS2luZCgpID09IEJpZ0ludDMyVXNlKSB7CisgICAgICAgICAgICBzZXRUeXBlRm9y
Tm9kZShub2RlLCBTcGVjSW50MzJPbmx5KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisKKyAgICAgICAgY2xvYmJlcldvcmxkKCk7CisgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9k
ZShub2RlLCBTcGVjQnl0ZWNvZGVOdW1iZXIpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAg
ICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJv
cGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JhY2t3YXJk
c1Byb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDM2ODY1YTUyM2Y1YWM4OGYzNmRkZTAwOTA4OWRm
ZWIyZTI0N2I1ZjguLjJjYzc0MjkwNTFhNTVlYmI4ZTcxMjdhYTliMWUzZjVkMzAxOTQ2NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJvcGFnYXRp
b25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYWNrd2FyZHNQ
cm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNDE1LDcgKzQxNSw4IEBAIGNsYXNzIEJhY2t3YXJkc1By
b3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgVG9QcmltaXRpdmU6CiAgICAgICAgIGNhc2UgVG9OdW1iZXI6Ci0gICAgICAgIGNhc2UgVG9O
dW1lcmljOiB7CisgICAgICAgIGNhc2UgVG9OdW1lcmljOgorICAgICAgICBjYXNlIENhbGxOdW1i
ZXJDb25zdHJ1Y3RvcjogewogICAgICAgICAgICAgbm9kZS0+Y2hpbGQxKCktPm1lcmdlRmxhZ3Mo
ZmxhZ3MpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMjA1NDRjY2Q3MzBlMWMx
YjRiNjhmYmVjNmZhMTk2OTJmZWNhYjI3Yy4uMWEzZWUzNTAxNGZhNDg0YmFiN2UzNjg4MGIyNDI0
YzlhMzRiM2YxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTQwMjcsNyArNDAyNyw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6Omhh
bmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbigKICAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzIDw9IDEpCiAgICAgICAgICAgICBzZXQocmVzdWx0LCBqc0NvbnN0YW50KGpz
TnVtYmVyKDApKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNldChyZXN1bHQsIGFkZFRv
R3JhcGgoVG9OdW1iZXIsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBnZXQodmlydHVh
bFJlZ2lzdGVyRm9yQXJndW1lbnRJbmNsdWRpbmdUaGlzKDEsIHJlZ2lzdGVyT2Zmc2V0KSkpKTsK
KyAgICAgICAgICAgIHNldChyZXN1bHQsIGFkZFRvR3JhcGgoQ2FsbE51bWJlckNvbnN0cnVjdG9y
LCBPcEluZm8oMCksIE9wSW5mbyhwcmVkaWN0aW9uKSwgZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFy
Z3VtZW50SW5jbHVkaW5nVGhpcygxLCByZWdpc3Rlck9mZnNldCkpKSk7CiAKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAppbmRleCBlNTgyOTA3NGYwMjJiODExYjdhZDllMDcwMmE4MTQzYTVjODU2MzY0Li4zZmM5NTI0
NjJjMTBhNWFjNWY3MTYwY2QzNGNlODRjZTAwYTA5YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtNjkyLDYgKzY5MiwxOSBAQCBTVVBQUkVTU19BU0FO
IHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5j
dG9yJiByZWFkLAogICAgICAgICB3cml0ZShIZWFwKTsKICAgICAgICAgcmV0dXJuOwogCisgICAg
Y2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6CisgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQx
KCkudXNlS2luZCgpKSB7CisgICAgICAgIGNhc2UgQmlnSW50MzJVc2U6CisgICAgICAgICAgICBk
ZWYoUHVyZVZhbHVlKG5vZGUpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBV
bnR5cGVkVXNlOgorICAgICAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgICAgICB3cml0ZShI
ZWFwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IERGR19DUkFTSChncmFwaCwgbm9kZSwgIkJhZCB1c2Uga2luZCIpOworICAgICAgICB9CisKICAg
ICBjYXNlIEluYzoKICAgICBjYXNlIERlYzoKICAgICAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggNmExZmQwNzQwMDUyZTE1MGI1ODIwOGM0YmUz
NGQ4MjU3ZWY2M2NlOS4uOTBhMzM2NzM4OGU0ZTY4MjE5MDM4MWI2Mzk1OTZkNDliMjA4OWI2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQ
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHAKQEAgLTk1MSw3ICs5NTEsOCBAQCBjbGFzcyBDb25zdGFudEZvbGRpbmdQaGFz
ZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIGNhc2UgVG9OdW1iZXI6IHsKKyAgICAgICAgICAgIGNhc2UgVG9OdW1i
ZXI6CisgICAgICAgICAgICBjYXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjogewogICAgICAgICAg
ICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH5TcGVj
Qnl0ZWNvZGVOdW1iZXIpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNTc3OGQ3ZGI0MjhlMTVkM2FlZTQ4NGEw
NWVkYTMwZTRkY2FjYWI1ZC4uM2QzOTViNGRiZWFhMmQ4MGFhZjEyZTc1MzBlNzZhMTc3ZjJhYTAw
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtNDEzLDYgKzQx
MywxNSBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAjZW5kaWYgLy8g
bm90IEFTU0VSVF9FTkFCTEVECiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgY2FzZSBDYWxs
TnVtYmVyQ29uc3RydWN0b3I6CisgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCkudXNlS2lu
ZCgpKSB7CisgICAgICAgIGNhc2UgQmlnSW50MzJVc2U6CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGNhc2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOgogICAg
IGNhc2UgVG9TdHJpbmc6CiAgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCAz
YTZmZGM3NzI2ZWNiNzRjMWRhYzJmMGM0YTVmMjMwMmMwZDUzNTczLi45ZTA4ZmMyOWMxOTljMTA3
NWY2ZTUyMzJhNmQxOGRlNGEyMDBkNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKQEAgLTE1NDUsMTYgKzE1NDUsMTMgQEAgY2xhc3MgRml4dXBQaGFz
ZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAg
ICAgIGNhc2UgVG9OdW1iZXI6IHsKLSAgICAgICAgICAgIGZpeHVwVG9OdW1iZXIobm9kZSk7Cisg
ICAgICAgIGNhc2UgVG9OdW1iZXI6CisgICAgICAgIGNhc2UgVG9OdW1lcmljOgorICAgICAgICBj
YXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjogeworICAgICAgICAgICAgZml4dXBUb051bWJlck9y
VG9OdW1lcmljT3JDYWxsTnVtYmVyQ29uc3RydWN0b3Iobm9kZSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2UgVG9OdW1lcmljOiB7Ci0gICAgICAgICAgICBm
aXh1cFRvTnVtZXJpYyhub2RlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
ICAgICAgICAKICAgICAgICAgY2FzZSBUb1N0cmluZzoKICAgICAgICAgY2FzZSBDYWxsU3RyaW5n
Q29uc3RydWN0b3I6IHsKICAgICAgICAgICAgIGZpeHVwVG9TdHJpbmdPckNhbGxTdHJpbmdDb25z
dHJ1Y3Rvcihub2RlKTsKQEAgLTMwOTksMjkgKzMwOTYsMzcgQEAgY2xhc3MgRml4dXBQaGFzZSA6
IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2b2lkIGZpeHVwVG9OdW1l
cmljKE5vZGUqIG5vZGUpCisgICAgdm9pZCBmaXh1cFRvTnVtYmVyT3JUb051bWVyaWNPckNhbGxO
dW1iZXJDb25zdHJ1Y3RvcihOb2RlKiBub2RlKQogICAgIHsKLSAgICAgICAgLy8gSWYgdGhlIHBy
ZWRpY3Rpb24gb2YgdGhlIGNoaWxkIGlzIEJpZ0ludCwgd2UgYXR0ZW1wdCB0byBjb252ZXJ0IFRv
TnVtZXJpYyB0byBJZGVudGl0eSwgc2luY2UgaXQgY2FuIG9ubHkgcmV0dXJuIGEgQmlnSW50IHdo
ZW4gZmVkIGEgQmlnSW50LgotICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUJpZ0ludCgpKSB7CisgICAgICAgIGlmIChub2RlLT5vcCgpID09IENhbGxOdW1iZXJDb25z
dHJ1Y3RvcikgewogI2lmIFVTRShCSUdJTlQzMikKLSAgICAgICAgICAgIGlmIChub2RlLT5jaGls
ZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoKSkKKyAgICAgICAgICAgIGlmIChub2RlLT5j
aGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoKSkgewogICAgICAgICAgICAgICAgIGZp
eEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIGVsc2UgaWYg
KG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVIZWFwQmlnSW50KCkpCi0gICAgICAgICAg
ICAgICAgZml4RWRnZTxIZWFwQmlnSW50VXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgZml4RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKLSNlbHNlCi0gICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgICAgICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJh
dGUpOworICAgICAgICAgICAgICAgIG5vZGUtPnNldFJlc3VsdChOb2RlUmVzdWx0SW50MzIpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICNlbmRpZgotICAgICAgICAg
ICAgbm9kZS0+Y29udmVydFRvSWRlbnRpdHkoKTsKLSAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCi0gICAgICAgIGZpeHVwVG9OdW1iZXIobm9kZSk7Ci0gICAgfQorICAgICAgICAvLyBJ
ZiB0aGUgcHJlZGljdGlvbiBvZiB0aGUgY2hpbGQgaXMgQmlnSW50LCB3ZSBhdHRlbXB0IHRvIGNv
bnZlcnQgVG9OdW1lcmljIHRvIElkZW50aXR5LCBzaW5jZSBpdCBjYW4gb25seSByZXR1cm4gYSBC
aWdJbnQgd2hlbiBmZWQgYSBCaWdJbnQuCisgICAgICAgIGlmIChub2RlLT5vcCgpID09IFRvTnVt
ZXJpYykgeworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVC
aWdJbnQoKSkgeworI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+
Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKCkpCisgICAgICAgICAgICAgICAgICAg
IGZpeEVkZ2U8QmlnSW50MzJVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBl
bHNlIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlSGVhcEJpZ0ludCgpKQorICAg
ICAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55Qmln
SW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisjZWxzZQorICAgICAgICAgICAgICAgIGZpeEVkZ2U8
SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkpOworI2VuZGlmCisgICAgICAgICAgICAgICAg
bm9kZS0+Y29udmVydFRvSWRlbnRpdHkoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KIAotICAgIHZvaWQgZml4dXBUb051bWJlcihOb2RlKiBub2Rl
KQotICAgIHsKICAgICAgICAgLy8gQXQgZmlyc3QsIGF0dGVtcHQgdG8gZm9sZCBCb29sZWFuIG9y
IEludDMyIHRvIEludDMyLgogICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1
bGF0ZUludDMyT3JCb29sZWFuKCkpIHsKICAgICAgICAgICAgIGlmIChpc0ludDMyU3BlY3VsYXRp
b24obm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgKaW5kZXggZWJlMDE1ODY2YmI3OTkxNGFkMjRhOGJiYzY2ZGE5MWQ4Nzc1N2FmYS4uODcy
Y2QxMDdlNjhjZDA1ZGI3YWFiOGE0MWExY2NkMDlmZGY1OWZmZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKQEAgLTE3OTUsNiArMTc5NSw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAg
ICAgY2FzZSBUb051bWJlcjoKICAgICAgICAgY2FzZSBUb051bWVyaWM6CiAgICAgICAgIGNhc2Ug
VG9PYmplY3Q6CisgICAgICAgIGNhc2UgQ2FsbE51bWJlckNvbnN0cnVjdG9yOgogICAgICAgICBj
YXNlIFZhbHVlQml0QW5kOgogICAgICAgICBjYXNlIFZhbHVlQml0T3I6CiAgICAgICAgIGNhc2Ug
VmFsdWVCaXRYb3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXgg
ZGUzNTc2Mjg3MDM4YmJlZmJiOWE0ZDU2MjI3NWQ3Mzk4ZTVkZmFiMS4uNTYxNjgxNjRkZGY0NmQ4
ODAzNmJhZmZhOTNkMTkxODgwZTVkYTAwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaApAQCAtNDEyLDYgKzQxMiw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICAgICBtYWNybyhUb09iamVjdCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIG1hY3JvKENhbGxPYmplY3RDb25zdHJ1Y3RvciwgTm9kZVJlc3VsdEpTKSBcCiAg
ICAgbWFjcm8oQ2FsbFN0cmluZ0NvbnN0cnVjdG9yLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdl
bmVyYXRlKSBcCisgICAgbWFjcm8oQ2FsbE51bWJlckNvbnN0cnVjdG9yLCBOb2RlUmVzdWx0SlMg
fCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXgs
IE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOdW1iZXJUb1N0
cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKE1h
a2VSb3BlLCBOb2RlUmVzdWx0SlMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCmluZGV4IDQ0Mzg3NmEyMzM4OTY1NzBmMWQyNjI3YTI5NjJjN2IzODA2MGE0
MmEuLjFlZmI2MmVmZWI3MjZlYmMyMjg3YzZmYzU1MGZjMjMwM2Y4MTkyZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMTUzOSw2ICsxNTM5LDIy
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9OdW1lcmljKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvTnVtZXJpYyhnbG9iYWxPYmplY3QpKTsKIH0KIAorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsTnVtYmVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKKyAgICBKU1ZhbHVlIG51bWVyaWMgPSB2YWx1ZS50b051
bWVyaWMoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OworICAgIGlmIChudW1lcmljLmlzTnVtYmVyKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUobnVtZXJpYyk7CisgICAgQVNTRVJUKG51bWVyaWMuaXNCaWdJbnQoKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6dG9OdW1iZXIobnVtZXJpYykpOworfQorCiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRUaGlzLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXggMzg5Y2I4YTNlMTMwYzQ0ZmQzOWE1MzRhNjhk
NmM4MTU2NjkzMTkyZC4uMmI3ZjFkNDkwNDc5ZmY3ZjE0ZDhlNWVhODU3YzAzNzM5ZTI0YjVhNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTk0LDYgKzk0
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub1ByaW1pdGl2ZShK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHUKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVG9Qcm9wZXJ0eUtleShKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRv
TnVtYmVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9OdW1lcmljKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ2FsbE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUpOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25H
ZXRCeVZhbFdpdGhUaGlzKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldFByb3RvdHlwZU9mT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKSBX
VEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDBhYmRiNWI1MmQyMzc5OWE4
YTNiNzlkNzAyYWViNDM2MDA5MzlmMWYuLjJjOTQxYTEyY2RhYzQ1MzU0MDMxN2FiMGJlOGRhMjAz
ZWE2ZGIxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC04OTcsNiArODk3LDcgQEAgY2xh
c3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBj
YXNlIFRvTnVtYmVyOgogICAgICAgICBjYXNlIFRvTnVtZXJpYzoKICAgICAgICAgY2FzZSBUb09i
amVjdDoKKyAgICAgICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6CiAgICAgICAgIGNhc2Ug
VmFsdWVCaXRBbmQ6CiAgICAgICAgIGNhc2UgVmFsdWVCaXRYb3I6CiAgICAgICAgIGNhc2UgVmFs
dWVCaXRPcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgK
aW5kZXggOGRiMGFiYTJjY2U5Y2ZkNmFjNTM4YzI4YjFmMDZhZWNmNWFmOGYzNC4uNDM2YmZiMTUy
MDlmMmU2MmRiMGMxYjNkM2NiODdjOGI2MzE5OTE2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTU2NSw2ICs1NjUsNyBAQCBib29sIHNhZmVU
b0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUsIGJvb2wgaWdubwogICAgIGNhc2UgVG9OdW1iZXI6CiAgICAgY2FzZSBUb051bWVyaWM6CiAg
ICAgY2FzZSBUb09iamVjdDoKKyAgICBjYXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjoKICAgICBj
YXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4OgogICAgIGNhc2UgU2V0RnVuY3Rpb25OYW1lOgog
ICAgIGNhc2UgTmV3U3RyaW5nT2JqZWN0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBkMjA3MzJkNmU3YzM4Yjc5NzEwMjgxNzk3OWFm
MDFkNzllNGQ1NjU0Li4xNGU5NDk1NTBlODdlNzM5OTVlMjY5ODFiNDdlZmM1NTk2NDIyNGU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApA
QCAtMTMzMzYsNyArMTMzMzYsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9OdW1l
cmljKE5vZGUqIG5vZGUpCiAgICAgSlNWYWx1ZVJlZ3MgYXJndW1lbnRSZWdzID0gYXJndW1lbnQu
anNWYWx1ZVJlZ3MoKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3Mo
KTsKICAgICBHUFJSZWcgc2NyYXRjaCA9IHRlbXAuZ3ByKCk7Ci0gICAgLy8gRklYTUU6IGFkZCBh
IGZhc3QgcGF0aCBmb3IgQmlnSW50MzIgaGVyZSAoYW5kIGZvciB0eXBlT2YsIGFuZCBmb3IgYm9v
bGlmeSBvciB3aGF0ZXZlciBpdCBpcyBjYWxsZWQgaW4gdGhpcyBmaWxlKS4KKyAgICAvLyBGSVhN
RTogYWRkIGEgZmFzdCBwYXRoIGZvciBCaWdJbnQzMiBoZXJlLgorICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNjQKIAogICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wTGlzdCBzbG93Q2FzZXM7CiAKQEAgLTEzMzU1LDYgKzEzMzU2LDQxIEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVUb051bWVyaWMoTm9kZSogbm9kZSkKICAgICBqc1ZhbHVlUmVz
dWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUyk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVDYWxsTnVtYmVyQ29uc3RydWN0b3IoTm9kZSogbm9kZSkKK3sKKyNpZiBV
U0UoQklHSU5UMzIpCisgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBCaWdJbnQz
MlVzZSkgeworICAgICAgICBTcGVjdWxhdGVCaWdJbnQzMk9wZXJhbmQgb3BlcmFuZCh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisKKyAg
ICAgICAgR1BSUmVnIG9wZXJhbmRHUFIgPSBvcGVyYW5kLmdwcigpOworICAgICAgICBHUFJSZWcg
cmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworCisgICAgICAgIG1faml0LnVuYm94QmlnSW50MzIo
b3BlcmFuZEdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgc3RyaWN0SW50MzJSZXN1bHQocmVzdWx0
R1BSLCBub2RlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgREZHX0FT
U0VSVChtX2ppdC5ncmFwaCgpLCBub2RlLCBub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50
eXBlZFVzZSwgbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCBh
cmd1bWVudCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgSlNWYWx1ZVJlZ3NUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMpOworICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOworCisgICAgSlNWYWx1
ZVJlZ3MgYXJndW1lbnRSZWdzID0gYXJndW1lbnQuanNWYWx1ZVJlZ3MoKTsKKyAgICBKU1ZhbHVl
UmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKyAgICBHUFJSZWcgdGVtcEdQUiA9IHRl
bXAuZ3ByKCk7CisgICAgLy8gRklYTUU6IGFkZCBhIGZhc3QgcGF0aCBmb3IgQmlnSW50MzIgaGVy
ZS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDY0
CisKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dDYXNlczsKKyAgICBzbG93Q2FzZXMu
YXBwZW5kKG1faml0LmJyYW5jaElmTm90TnVtYmVyKGFyZ3VtZW50UmVncywgdGVtcEdQUikpOwor
ICAgIG1faml0Lm1vdmVWYWx1ZVJlZ3MoYXJndW1lbnRSZWdzLCByZXN1bHRSZWdzKTsKKyAgICBh
ZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoc2xvd0Nhc2VzLCB0aGlzLCBvcGVyYXRp
b25DYWxsTnVtYmVyQ29uc3RydWN0b3IsIHJlc3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6OndlYWtQ
b2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYykpLCBhcmd1bWVudFJlZ3MpKTsKKworICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywg
bm9kZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2dTaGFkb3dDaGlja2Vu
UHJvbG9ndWUoTm9kZSogbm9kZSkKIHsKICAgICBmbHVzaFJlZ2lzdGVycygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDVhY2U1MjU1ZWQw
Mjc2NTM1ZGExZmE2OGJmOGMwOWQyYWFmZWM5OTkuLjc3OTZkMDU2ZTExMmU1ZmIzY2ViMjNiODg3
NTAyNzA5NDg1ZWQ0YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmgKQEAgLTE0NzQsNiArMTQ3NCw3IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsK
ICAgICB2b2lkIGNvbXBpbGVUb1ByaW1pdGl2ZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlVG9Q
cm9wZXJ0eUtleShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlVG9OdW1lcmljKE5vZGUqKTsKKyAg
ICB2b2lkIGNvbXBpbGVDYWxsTnVtYmVyQ29uc3RydWN0b3IoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZUxvZ1NoYWRvd0NoaWNrZW5Qcm9sb2d1ZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlTG9n
U2hhZG93Q2hpY2tlblRhaWwoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUhhc0luZGV4ZWRQcm9w
ZXJ0eShOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCBlODliMWM3NWIyYjVjNGVlODRiOTVkYzAxNDczMDk5
MTdhMjU4NzVkLi42MGM5OTFjMjExZjcxMzVhNmZlOWVlOGUwYzIwMjk4OGU1Mjg0YjdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHAKQEAgLTMxNTEsNiArMzE1MSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVUb051bWVyaWMobm9kZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KKworICAgIGNhc2UgQ2FsbE51bWJlckNvbnN0cnVjdG9yOgorICAgICAgICBj
b21waWxlQ2FsbE51bWJlckNvbnN0cnVjdG9yKG5vZGUpOworICAgICAgICBicmVhazsKICAgICAg
ICAgCiAgICAgY2FzZSBUb1N0cmluZzoKICAgICBjYXNlIENhbGxTdHJpbmdDb25zdHJ1Y3RvcjoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CmluZGV4IGI4ZDNhNTNhNzNhMTYxMDcxNjEzYWNlMjNlNTVjMGMxODAxMDkxNjguLjA3ODI5ZmFi
OGVmYjAyODE3YmY2ZDRlMWUyYzQ5MjBiNDMwMzZkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMzcxMSw2ICszNzExLDEw
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJl
YWs7CiAgICAgfQogCisgICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6CisgICAgICAgIGNv
bXBpbGVDYWxsTnVtYmVyQ29uc3RydWN0b3Iobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAgICAg
Y2FzZSBUb1N0cmluZzoKICAgICBjYXNlIENhbGxTdHJpbmdDb25zdHJ1Y3RvcjoKICAgICBjYXNl
IFN0cmluZ1ZhbHVlT2Y6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcAppbmRleCA4YWU5ODIwNTE2NDQxMTQ1NWE4OTZiNzNiZTJkODQyZWZmZWM3NTVk
Li5iYzk3MzA3ZTFhN2ZkODU2ZmQyOGFlOWM3NTFlYjAyNWMyMmRhMTNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0yMTksNiArMjE5LDcg
QEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2Fz
ZSBUb09iamVjdDoKICAgICBjYXNlIENhbGxPYmplY3RDb25zdHJ1Y3RvcjoKICAgICBjYXNlIENh
bGxTdHJpbmdDb25zdHJ1Y3RvcjoKKyAgICBjYXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjoKICAg
ICBjYXNlIE9iamVjdENyZWF0ZToKICAgICBjYXNlIE9iamVjdEtleXM6CiAgICAgY2FzZSBNYWtl
Um9wZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApp
bmRleCA4NWIxOWU4ZWE1ZTU3NDZiZTViNWFkNTRhNjMyMDRiMTFiNjI0YjQ0Li44MzIyN2U5M2Y1
ZDc1OWZmZGY0M2E0ZDA2NDY4MDYwNzI3NmQ5YzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMTMyLDYgKzExMzIsOSBAQCBjbGFzcyBM
b3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIFRvTnVtZXJpYzoKICAgICAgICAgICAgIGNvbXBp
bGVUb051bWVyaWMoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENhbGxOdW1i
ZXJDb25zdHJ1Y3RvcjoKKyAgICAgICAgICAgIGNvbXBpbGVDYWxsTnVtYmVyQ29uc3RydWN0b3Io
KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFRvU3RyaW5nOgogICAgICAgICBj
YXNlIENhbGxTdHJpbmdDb25zdHJ1Y3RvcjoKICAgICAgICAgY2FzZSBTdHJpbmdWYWx1ZU9mOgpA
QCAtNzU4OCw2ICs3NTkxLDM1IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQsIG9wZXJhdGlvblRvTnVtZXJp
Yywgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgdmFsdWUpKTsKICAgICB9CisKKyAgICB2b2lk
IGNvbXBpbGVDYWxsTnVtYmVyQ29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+b3Jp
Z2luLnNlbWFudGljKTsKKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgIGlmIChtX25vZGUtPmNo
aWxkMSgpLnVzZUtpbmQoKSA9PSBCaWdJbnQzMlVzZSkgeworICAgICAgICAgICAgTFZhbHVlIHZh
bHVlID0gbG93QmlnSW50MzIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBzZXRJbnQz
Mih1bmJveEJpZ0ludDMyKHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyNlbmRpZgorICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQx
KCkpOworCisgICAgICAgIExCYXNpY0Jsb2NrIG5vdE51bWJlciA9IG1fb3V0Lm5ld0Jsb2NrKCk7
CisgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisK
KyAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcih2YWx1ZSk7
CisgICAgICAgIG1fb3V0LmJyYW5jaChpc051bWJlcih2YWx1ZSwgcHJvdmVuVHlwZShtX25vZGUt
PmNoaWxkMSgpKSksIHVuc3VyZShjb250aW51YXRpb24pLCB1bnN1cmUobm90TnVtYmVyKSk7CisK
KyAgICAgICAgLy8gbm90TnVtYmVyIGNhc2UuCisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0
ID0gbV9vdXQuYXBwZW5kVG8obm90TnVtYmVyLCBjb250aW51YXRpb24pOworICAgICAgICBWYWx1
ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZtQ2FsbChJbnQ2NCwgb3BlcmF0
aW9uQ2FsbE51bWJlckNvbnN0cnVjdG9yLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCB2YWx1
ZSkpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgLy8gY29u
dGludWF0aW9uIGNhc2UuCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFz
dE5leHQpOworICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShJbnQ2NCwgZmFzdFJlc3VsdCwg
c2xvd1Jlc3VsdCkpOworICAgIH0KKwogICAgIAogICAgIHZvaWQgY29tcGlsZVRvU3RyaW5nT3JD
YWxsU3RyaW5nQ29uc3RydWN0b3JPclN0cmluZ1ZhbHVlT2YoKQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRleCBhY2EzNTU1NGNmNTE3M2YwMzQx
N2M3NDdkMDQzODhjNDM1ZjYzOTAwLi42Mzc3NWQ3ODMwMjcyN2E2ZDdhZDllOTlhOWViNzNjYzM1
Y2I2ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0lu
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCkBA
IC0yMTkyLDQgKzIxOTIsMTA1IEBAIE9wdGlvbmFsPEpTQmlnSW50OjpEaWdpdD4gSlNCaWdJbnQ6
OnRvU2hpZnRBbW91bnQoSlNCaWdJbnQqIHgpCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCitKU0Jp
Z0ludDo6Um91bmRpbmdSZXN1bHQgSlNCaWdJbnQ6OmRlY2lkZVJvdW5kaW5nKEpTQmlnSW50KiBi
aWdJbnQsIGludDMyX3QgbWFudGlzc2FCaXRzVW5zZXQsIGludDMyX3QgZGlnaXRJbmRleCwgdWlu
dDY0X3QgY3VycmVudERpZ2l0KQoreworICAgIGlmIChtYW50aXNzYUJpdHNVbnNldCA+IDApCisg
ICAgICAgIHJldHVybiBSb3VuZGluZ1Jlc3VsdDo6Um91bmREb3duOworICAgIGludDMyX3QgdG9w
VW5jb25zdW1lZEJpdCA9IDA7CisgICAgaWYgKG1hbnRpc3NhQml0c1Vuc2V0IDwgMCkgeworICAg
ICAgICAvLyBUaGVyZSBhcmUgdW5jb25zdW1lZCBiaXRzIGluIGN1cnJlbnREaWdpdC4KKyAgICAg
ICAgdG9wVW5jb25zdW1lZEJpdCA9IC1tYW50aXNzYUJpdHNVbnNldCAtIDE7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgQVNTRVJUKG1hbnRpc3NhQml0c1Vuc2V0ID09IDApOworICAgICAgICAvLyBj
dXJyZW50RGlnaXQgZml0IHRoZSBtYW50aXNzYSBleGFjdGx5OyBsb29rIGF0IHRoZSBuZXh0IGRp
Z2l0LgorICAgICAgICBpZiAoZGlnaXRJbmRleCA9PSAwKQorICAgICAgICAgICAgcmV0dXJuIFJv
dW5kaW5nUmVzdWx0OjpSb3VuZERvd247CisgICAgICAgIGRpZ2l0SW5kZXgtLTsKKyAgICAgICAg
Y3VycmVudERpZ2l0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJpZ0ludC0+ZGlnaXQoZGlnaXRJ
bmRleCkpOworICAgICAgICB0b3BVbmNvbnN1bWVkQml0ID0gZGlnaXRCaXRzIC0gMTsKKyAgICB9
CisgICAgLy8gSWYgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgcmVtYWluaW5nIGJpdCBpcyAwLCByb3Vu
ZCBkb3duLgorICAgIHVpbnQ2NF90IGJpdG1hc2sgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oMSkg
PDwgdG9wVW5jb25zdW1lZEJpdDsKKyAgICBpZiAoKGN1cnJlbnREaWdpdCAmIGJpdG1hc2spID09
IDApCisgICAgICAgIHJldHVybiBSb3VuZGluZ1Jlc3VsdDo6Um91bmREb3duOworICAgIC8vIElm
IGFueSBvdGhlciByZW1haW5pbmcgYml0IGlzIHNldCwgcm91bmQgdXAuCisgICAgYml0bWFzayAt
PSAxOworICAgIGlmICgoY3VycmVudERpZ2l0ICYgYml0bWFzaykgIT0gMCkKKyAgICAgICAgcmV0
dXJuIFJvdW5kaW5nUmVzdWx0OjpSb3VuZFVwOworICAgIHdoaWxlIChkaWdpdEluZGV4ID4gMCkg
eworICAgICAgICBkaWdpdEluZGV4LS07CisgICAgICAgIGlmIChiaWdJbnQtPmRpZ2l0KGRpZ2l0
SW5kZXgpICE9IDApCisgICAgICAgICAgICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlJvdW5kVXA7
CisgICAgfQorICAgIHJldHVybiBSb3VuZGluZ1Jlc3VsdDo6VGllOworfQorCitKU1ZhbHVlIEpT
QmlnSW50Ojp0b051bWJlckhlYXAoSlNCaWdJbnQqIGJpZ0ludCkKK3sKKyAgICBpZiAoYmlnSW50
LT5pc1plcm8oKSkKKyAgICAgICAgcmV0dXJuIGpzTnVtYmVyKDApOworICAgIEFTU0VSVChiaWdJ
bnQtPmxlbmd0aCgpKTsKKworICAgIC8vIENvbnZlcnNpb24gbWVjaGFuaXNtIGlzIHRoZSBmb2xs
b3dpbmcuCisgICAgLy8KKyAgICAvLyAxLiBHZXQgZXhwb25lbnQgYml0cy4KKyAgICAvLyAyLiBD
b2xsZWN0IG1hbnRpc3NhIDUyIGJpdHMuCisgICAgLy8gMy4gQWRkIHJvdW5kaW5nIHJlc3VsdCBv
ZiB1bnVzZWQgYml0cyB0byBtYW50aXNzYSBhbmQgYWRqdXN0IG1hbnRpc3NhICYgZXhwb25lbnQg
Yml0cy4KKyAgICAvLyA0LiBHZW5lcmF0ZSBkb3VibGUgYnkgY29tYmluaW5nICgxKSBhbmQgKDMp
LgorCisgICAgY29uc3QgdW5zaWduZWQgbGVuZ3RoID0gYmlnSW50LT5sZW5ndGgoKTsKKyAgICBj
b25zdCBib29sIHNpZ24gPSBiaWdJbnQtPnNpZ24oKTsKKyAgICBjb25zdCBEaWdpdCBtc2QgPSBi
aWdJbnQtPmRpZ2l0KGxlbmd0aCAtIDEpOworICAgIGNvbnN0IHVuc2lnbmVkIG1zZExlYWRpbmda
ZXJvcyA9IGNseihtc2QpOworICAgIGNvbnN0IHNpemVfdCBiaXRMZW5ndGggPSBsZW5ndGggKiBk
aWdpdEJpdHMgLSBtc2RMZWFkaW5nWmVyb3M7CisgICAgLy8gRG91YmxlJ3MgZXhwb25lbnQgYml0
cyBvdmVyZmxvdy4KKyAgICBpZiAoYml0TGVuZ3RoID4gMTAyNCkKKyAgICAgICAgcmV0dXJuIGpz
RG91YmxlTnVtYmVyKHNpZ24gPyAtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0
eSgpIDogc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKTsKKyAgICB1aW50
NjRfdCBleHBvbmVudCA9IGJpdExlbmd0aCAtIDE7CisgICAgdWludDY0X3QgY3VycmVudERpZ2l0
ID0gbXNkOworICAgIGludDMyX3QgZGlnaXRJbmRleCA9IGxlbmd0aCAtIDE7CisgICAgaW50MzJf
dCBzaGlmdEFtb3VudCA9IG1zZExlYWRpbmdaZXJvcyArIDEgKyAoNjQgLSBkaWdpdEJpdHMpOwor
ICAgIEFTU0VSVCgxIDw9IHNoaWZ0QW1vdW50KTsKKyAgICBBU1NFUlQoc2hpZnRBbW91bnQgPD0g
NjQpOworICAgIHVpbnQ2NF90IG1hbnRpc3NhID0gKHNoaWZ0QW1vdW50ID09IDY0KSA/IDAgOiBj
dXJyZW50RGlnaXQgPDwgc2hpZnRBbW91bnQ7CisgICAgbWFudGlzc2EgPj49IDEyOyAvLyAoMTIg
PSA2NCAtIDUyKSAoZG91YmxlJ3MgbWFudGlzc2EgYml0IGNvdW50KS4KKyAgICBpbnQzMl90IG1h
bnRpc3NhQml0c1Vuc2V0ID0gc2hpZnRBbW91bnQgLSAxMjsKKworICAgIC8vIElmIG5vdCBhbGwg
bWFudGlzc2EgYml0cyBhcmUgZGVmaW5lZCB5ZXQsIGdldCBtb3JlIGRpZ2l0cyBhcyBuZWVkZWQu
CisgICAgLy8gQ29sbGVjdCBtYW50aXNzYSA1MmJpdHMgZnJvbSBzZXZlcmFsIGRpZ2l0cy4KKyAg
ICBpZiAobWFudGlzc2FCaXRzVW5zZXQgPj0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZGlnaXRCaXRz
KSAmJiBkaWdpdEluZGV4ID4gMCkgeworICAgICAgICBkaWdpdEluZGV4LS07CisgICAgICAgIGN1
cnJlbnREaWdpdCA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihiaWdJbnQtPmRpZ2l0KGRpZ2l0SW5k
ZXgpKTsKKyAgICAgICAgbWFudGlzc2EgfD0gKGN1cnJlbnREaWdpdCA8PCAobWFudGlzc2FCaXRz
VW5zZXQgLSBkaWdpdEJpdHMpKTsKKyAgICAgICAgbWFudGlzc2FCaXRzVW5zZXQgLT0gZGlnaXRC
aXRzOworICAgIH0KKworICAgIGlmIChtYW50aXNzYUJpdHNVbnNldCA+IDAgJiYgZGlnaXRJbmRl
eCA+IDApIHsKKyAgICAgICAgQVNTRVJUKG1hbnRpc3NhQml0c1Vuc2V0IDwgc3RhdGljX2Nhc3Q8
aW50MzJfdD4oZGlnaXRCaXRzKSk7CisgICAgICAgIGRpZ2l0SW5kZXgtLTsKKyAgICAgICAgY3Vy
cmVudERpZ2l0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJpZ0ludC0+ZGlnaXQoZGlnaXRJbmRl
eCkpOworICAgICAgICBtYW50aXNzYSB8PSAoY3VycmVudERpZ2l0ID4+IChkaWdpdEJpdHMgLSBt
YW50aXNzYUJpdHNVbnNldCkpOworICAgICAgICBtYW50aXNzYUJpdHNVbnNldCAtPSBkaWdpdEJp
dHM7CisgICAgfQorCisgICAgLy8gSWYgdGhlcmUgYXJlIHVuY29uc3VtZWQgZGlnaXRzIGxlZnQs
IHdlIG1heSBoYXZlIHRvIHJvdW5kLgorICAgIFJvdW5kaW5nUmVzdWx0IHJvdW5kaW5nID0gZGVj
aWRlUm91bmRpbmcoYmlnSW50LCBtYW50aXNzYUJpdHNVbnNldCwgZGlnaXRJbmRleCwgY3VycmVu
dERpZ2l0KTsKKyAgICBpZiAocm91bmRpbmcgPT0gUm91bmRpbmdSZXN1bHQ6OlJvdW5kVXAgfHwg
KHJvdW5kaW5nID09IFJvdW5kaW5nUmVzdWx0OjpUaWUgJiYgKG1hbnRpc3NhICYgMSkgPT0gMSkp
IHsKKyAgICAgICAgKyttYW50aXNzYTsKKyAgICAgICAgLy8gSW5jcmVtZW50aW5nIHRoZSBtYW50
aXNzYSBjYW4gb3ZlcmZsb3cgdGhlIG1hbnRpc3NhIGJpdHMuIEluIHRoYXQgY2FzZSB0aGUgbmV3
IG1hbnRpc3NhIHdpbGwgYmUgYWxsIHplcm8gKHBsdXMgaGlkZGVuIGJpdCkuCisgICAgICAgIGlm
ICgobWFudGlzc2EgPj4gZG91YmxlUGh5c2ljYWxTaWduaWZpY2FuZFNpemUpICE9IDApIHsKKyAg
ICAgICAgICAgIG1hbnRpc3NhID0gMDsKKyAgICAgICAgICAgIGV4cG9uZW50Kys7CisgICAgICAg
ICAgICAvLyBJbmNyZW1lbnRpbmcgdGhlIGV4cG9uZW50IGNhbiBvdmVyZmxvdyB0b28uCisgICAg
ICAgICAgICBpZiAoZXhwb25lbnQgPiAxMDIzKQorICAgICAgICAgICAgICAgIHJldHVybiBqc0Rv
dWJsZU51bWJlcihzaWduID8gLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHko
KSA6IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICB1aW50NjRfdCBzaWduQml0ID0gc2lnbiA/IChzdGF0aWNfY2FzdDx1aW50
NjRfdD4oMSkgPDwgNjMpIDogMDsKKyAgICBleHBvbmVudCA9IChleHBvbmVudCArIDB4M2ZmKSA8
PCBkb3VibGVQaHlzaWNhbFNpZ25pZmljYW5kU2l6ZTsgLy8gMHgzZmYgaXMgZG91YmxlIGV4cG9u
ZW50IGJpYXMuCisgICAgdWludDY0X3QgZG91YmxlQml0cyA9IHNpZ25CaXQgfCBleHBvbmVudCB8
IG1hbnRpc3NhOworICAgIHJldHVybiBqc051bWJlcihiaXR3aXNlX2Nhc3Q8ZG91YmxlPihkb3Vi
bGVCaXRzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQmlnSW50LmgKaW5kZXggNDQyNjdiYzZiMzAwMWRiZjNhYjYzZWMyODNmNjQ1MWE4
ZDk2NjQ1Ni4uMTc4YzNmZDlhMTY2OTkxMmZkNjEyOTliMGNhZDliNWZhM2NiZjk0YyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCkBAIC0yNTMsNiArMjUzLDE3IEBA
IGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgICAgIHJldHVybiB0
cnlDb252ZXJ0VG9CaWdJbnQzMihzaWduZWRSaWdodFNoaWZ0SGVhcChnbG9iYWxPYmplY3QsIHgs
IHkpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgSlNWYWx1ZSB0b051bWJlckhlYXAoSlNCaWdJbnQq
KTsKKyAgICBzdGF0aWMgSlNWYWx1ZSB0b051bWJlcihKU1ZhbHVlIGJpZ0ludCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChiaWdJbnQuaXNCaWdJbnQoKSk7CisjaWYgVVNFKEJJR0lOVDMyKQorICAg
ICAgICBpZiAoYmlnSW50LmlzQmlnSW50MzIoKSkKKyAgICAgICAgICAgIHJldHVybiBqc051bWJl
cihiaWdJbnQuYmlnSW50MzJBc0ludDMyKCkpOworI2VuZGlmCisgICAgICAgIHJldHVybiB0b051
bWJlckhlYXAoanNDYXN0PEpTQmlnSW50Kj4oYmlnSW50KSk7CisgICAgfQorCiAgICAgRGlnaXQg
ZGlnaXQodW5zaWduZWQpOwogICAgIHZvaWQgc2V0RGlnaXQodW5zaWduZWQsIERpZ2l0KTsgLy8g
VXNlIG9ubHkgd2hlbiBpbml0aWFsaXppbmcuCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNCaWdJ
bnQqIHJpZ2h0VHJpbShWTSYpOwpAQCAtMjY1LDYgKzI3Niw4IEBAIGNsYXNzIEpTQmlnSW50IGZp
bmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBoYWxm
RGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKICAgICBzdGF0aWMgY29uc3RleHByIERpZ2l0IGhh
bGZEaWdpdE1hc2sgPSAoMXVsbCA8PCBoYWxmRGlnaXRCaXRzKSAtIDE7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBpbnQgbWF4SW50ID0gMHg3RkZGRkZGRjsKKworICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgZG91YmxlUGh5c2ljYWxTaWduaWZpY2FuZFNpemUgPSA1MjsKICAgICAKICAgICAv
LyBUaGUgbWF4aW11bSBsZW5ndGggdGhhdCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBzdXBw
b3J0cyB3b3VsZCBiZQogICAgIC8vIG1heEludCAvIGRpZ2l0Qml0cy4gSG93ZXZlciwgd2UgdXNl
IGEgbG93ZXIgbGltaXQgZm9yIG5vdywgYmVjYXVzZQpAQCAtMjkzLDYgKzMwNiwxNCBAQCBjbGFz
cyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIERpZ2l0IGFic29sdXRlSW5w
bGFjZVN1YihKU0JpZ0ludCogc3VidHJhaGVuZCwgdW5zaWduZWQgc3RhcnRJbmRleCk7CiAgICAg
dm9pZCBpbnBsYWNlUmlnaHRTaGlmdCh1bnNpZ25lZCBzaGlmdCk7CiAKKyAgICBlbnVtIGNsYXNz
IFJvdW5kaW5nUmVzdWx0IHsKKyAgICAgICAgUm91bmREb3duLAorICAgICAgICBUaWUsCisgICAg
ICAgIFJvdW5kVXAKKyAgICB9OworCisgICAgc3RhdGljIFJvdW5kaW5nUmVzdWx0IGRlY2lkZVJv
dW5kaW5nKEpTQmlnSW50KiwgaW50MzJfdCBtYW50aXNzYUJpdHNVbnNldCwgaW50MzJfdCBkaWdp
dEluZGV4LCB1aW50NjRfdCBjdXJyZW50RGlnaXQpOworCiAgICAgZW51bSBjbGFzcyBFeHRyYURp
Z2l0c0hhbmRsaW5nIHsKICAgICAgICAgQ29weSwKICAgICAgICAgU2tpcApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDc4
NjE2NjBkNjBiZWI2M2QwMjU1NGE1ZmYzY2Y0MTA5NDY5MzY5NmMuLjQ5MDBlMTU3NGI2ZTUyOTQz
ZDNkYjRmODhlYmY3N2QxOGVlZGRhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTkwLDggKzkwLDE4IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBnCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBkb3VibGUgbiA9
IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID8gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVu
dCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpIDogMDsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBkb3VibGUgbiA9IDA7CisgICAgaWYgKGNh
bGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKSB7CisgICAgICAgIEpTVmFsdWUgbnVtZXJpYyA9IGNh
bGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkudG9OdW1lcmljKGdsb2JhbE9iamVjdCk7Cisg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgIGlmIChudW1l
cmljLmlzTnVtYmVyKCkpCisgICAgICAgICAgICBuID0gbnVtZXJpYy5hc051bWJlcigpOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIG51bWVyaWMgPSBKU0JpZ0ludDo6dG9OdW1iZXIobnVt
ZXJpYyk7CisgICAgICAgICAgICBBU1NFUlQobnVtZXJpYy5pc051bWJlcigpKTsKKyAgICAgICAg
ICAgIG4gPSBudW1lcmljLmFzTnVtYmVyKCk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICBKU09i
amVjdCogbmV3VGFyZ2V0ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSk7CiAgICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXdUYXJnZXQgPT0gY2FsbEZyYW1lLT5qc0NhbGxlZSgp
CkBAIC0xMDcsNyArMTE3LDE2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnCiAvLyBFQ01BIDE1
LjcuMgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE51bWJlckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoIWNhbGxGcmFtZS0+YXJn
dW1lbnRDb3VudCgpID8gMCA6IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkudG9OdW1i
ZXIoZ2xvYmFsT2JqZWN0KSkpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKCFjYWxsRnJh
bWUtPmFyZ3VtZW50Q291bnQoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcigwKSk7CisgICAgSlNWYWx1ZSBudW1lcmljID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1
bWVudCgwKS50b051bWVyaWMoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOworICAgIGlmIChudW1lcmljLmlzTnVtYmVyKCkpCisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUobnVtZXJpYyk7CisgICAgQVNTRVJUKG51bWVyaWMuaXNCaWdJbnQo
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6dG9OdW1iZXIobnVtZXJp
YykpOwogfQogCiAvLyBFQ01BLTI2MiAyMC4xLjIuMwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFu
Z2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAyMGZmYWE3ZWVkZGNiYWU5NzMxNDliZjll
MWM0OTIwNjQ0ZmNhY2UxLi5iY2EwN2NlZGI1NzM4N2M1MTY0MTIxMWJmZDczMGZiODk0MjA4MDIw
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIwLTA0LTI3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0pTQ10gTnVtYmVyQ29uc3RydWN0b3Igc2hvdWxkIGFjY2VwdCBC
aWdJbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3RyZXNzL251bWJlci1jb25zdHJ1Y3Rvci1iaWdpbnQtZGZnLmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKGNvbnZlcnQpOgorICAgICAgICAqIHN0cmVzcy9udW1iZXIt
Y29uc3RydWN0b3ItYmlnaW50LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAg
ICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorCiAyMDIwLTA0LTI2ICBBbGV4ZXkgU2h2
YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBTeW1ib2wgc2hvdWxkIGhh
dmUgW1tDb25zdHJ1Y3RdXSBpbnRlcm5hbCBtZXRob2QKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL251bWJlci1jb25zdHJ1Y3Rvci1iaWdpbnQtZGZnLmpzIGIvSlNUZXN0cy9zdHJlc3MvbnVt
YmVyLWNvbnN0cnVjdG9yLWJpZ2ludC1kZmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFlY2EzMWRmOWFjZDM2
OGFmMzQ2MDY4MzhkYWQ3ZDIxYjk0NjY4ZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL251bWJlci1jb25zdHJ1Y3Rvci1iaWdpbnQtZGZnLmpzCkBAIC0wLDAgKzEsNTMgQEAKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwp
OworfQorCitmdW5jdGlvbiBjb252ZXJ0KGJpZ0ludCkKK3sKKyAgICByZXR1cm4gTnVtYmVyKGJp
Z0ludCk7Cit9Citub0lubGluZShjb252ZXJ0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7
ICsraSkgeworICAgIHNob3VsZEJlKGNvbnZlcnQoMG4pLCAwKTsKKyAgICBzaG91bGRCZShjb252
ZXJ0KDB4N2ZmZmZmZmZuKSwgMHg3ZmZmZmZmZik7CisgICAgc2hvdWxkQmUoY29udmVydCgtMHg3
ZmZmZmZmZm4gLSAxbiksIC0weDgwMDAwMDAwKTsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
ZTQ7ICsraSkgeworICAgIHNob3VsZEJlKGNvbnZlcnQoMHg4MDAwMDAwMG4pLCAweDgwMDAwMDAw
KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KDB4N2ZmZmZmZmZuICsgMW4pLCAweDgwMDAwMDAwKTsK
KyAgICBzaG91bGRCZShjb252ZXJ0KDB4N2ZmZmZmZmZuICsgMm4pLCAweDgwMDAwMDAxKTsKKyAg
ICBzaG91bGRCZShjb252ZXJ0KC0weDdmZmZmZmZmbiAtIDJuKSwgLTB4ODAwMDAwMDEpOworfQor
Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxkQmUoY29udmVydCgw
eDIwMDAwMDAwMDAwMDAwbiksIDkwMDcxOTkyNTQ3NDA5OTIpOworICAgIHNob3VsZEJlKGNvbnZl
cnQoMHgyMDAwMDAwMDAwMDAwMG4gKyAxbiksIDkwMDcxOTkyNTQ3NDA5OTIpOworICAgIHNob3Vs
ZEJlKGNvbnZlcnQoMHgyMDAwMDAwMDAwMDAwMG4gKyAybiksIDkwMDcxOTkyNTQ3NDA5OTQpOwor
ICAgIHNob3VsZEJlKGNvbnZlcnQoMHgyMDAwMDAwMDAwMDAwMG4gKyAzbiksIDkwMDcxOTkyNTQ3
NDA5OTYpOworICAgIHNob3VsZEJlKGNvbnZlcnQoMHgyMDAwMDAwMDAwMDAwMG4gKyA0biksIDkw
MDcxOTkyNTQ3NDA5OTYpOworCisgICAgc2hvdWxkQmUoY29udmVydCgtKDB4MjAwMDAwMDAwMDAw
MDBuKSksIC05MDA3MTk5MjU0NzQwOTkyKTsKKyAgICBzaG91bGRCZShjb252ZXJ0KC0oMHgyMDAw
MDAwMDAwMDAwMG4gKyAxbikpLCAtOTAwNzE5OTI1NDc0MDk5Mik7CisgICAgc2hvdWxkQmUoY29u
dmVydCgtKDB4MjAwMDAwMDAwMDAwMDBuICsgMm4pKSwgLTkwMDcxOTkyNTQ3NDA5OTQpOworICAg
IHNob3VsZEJlKGNvbnZlcnQoLSgweDIwMDAwMDAwMDAwMDAwbiArIDNuKSksIC05MDA3MTk5MjU0
NzQwOTk2KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KC0oMHgyMDAwMDAwMDAwMDAwMG4gKyA0bikp
LCAtOTAwNzE5OTI1NDc0MDk5Nik7CisKKyAgICBzaG91bGRCZShjb252ZXJ0KDJuICoqICgxMDI0
biAtIDFuKSksIDguOTg4NDY1Njc0MzExNThlKzMwNyk7CisgICAgc2hvdWxkQmUoY29udmVydCgy
biAqKiAoMTAyNG4gLSAxbikpLCA4Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworICAgIHNob3VsZEJl
KGNvbnZlcnQoMHgxZmZmZmZmZmZmZmZmZm4gPDwgOTcxbiksIE51bWJlci5NQVhfVkFMVUUpOwor
ICAgIHNob3VsZEJlKGNvbnZlcnQoMHgyMDAwMDAwMDAwMDAwMG4gPDwgOTcxbiksIEluZmluaXR5
KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KDB4MWZmZmZmZmZmZmZmZmZmbiA8PCA5NjZuKSwgOC45
ODg0NjU2NzQzMTE1OGUrMzA3KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KDB4M2ZmZmZmZmZmZmZm
ZmZuIDw8IDk3MG4pLCBJbmZpbml0eSk7CisgICAgc2hvdWxkQmUoY29udmVydCgweDNmZmZmZmZm
ZmZmZmZmbiA8PCA5NjluKSwgOC45ODg0NjU2NzQzMTE1OGUrMzA3KTsKKworICAgIHNob3VsZEJl
KGNvbnZlcnQoLSgybiAqKiAoMTAyNG4gLSAxbikpKSwgLTguOTg4NDY1Njc0MzExNThlKzMwNyk7
CisgICAgc2hvdWxkQmUoY29udmVydCgtKDJuICoqICgxMDI0biAtIDFuKSkpLCAtOC45ODg0NjU2
NzQzMTE1OGUrMzA3KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KC0weDFmZmZmZmZmZmZmZmZmbiA8
PCA5NzFuKSwgLU51bWJlci5NQVhfVkFMVUUpOworICAgIHNob3VsZEJlKGNvbnZlcnQoLTB4MjAw
MDAwMDAwMDAwMDBuIDw8IDk3MW4pLCAtSW5maW5pdHkpOworICAgIHNob3VsZEJlKGNvbnZlcnQo
LTB4MWZmZmZmZmZmZmZmZmZmbiA8PCA5NjZuKSwgLTguOTg4NDY1Njc0MzExNThlKzMwNyk7Cisg
ICAgc2hvdWxkQmUoY29udmVydCgtMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTcwbiksIC1JbmZpbml0
eSk7CisgICAgc2hvdWxkQmUoY29udmVydCgtMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTY5biksIC04
Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbnVt
YmVyLWNvbnN0cnVjdG9yLWJpZ2ludC5qcyBiL0pTVGVzdHMvc3RyZXNzL251bWJlci1jb25zdHJ1
Y3Rvci1iaWdpbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcxYTBiZjAxYjAwYWIzN2NkMWYxNGI4YTQ4OTNi
NzM0YzhjOWYyYwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL251bWJlci1jb25z
dHJ1Y3Rvci1iaWdpbnQuanMKQEAgLTAsMCArMSw4NCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0
dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3Nob3VsZEJlKE51
bWJlcigwbiksIDApOworCisvLyBBcm91bmQgSW50MzIgbWF4L21pbi4KK3Nob3VsZEJlKE51bWJl
cigweDdmZmZmZmZmbiksIDB4N2ZmZmZmZmYpOworc2hvdWxkQmUoTnVtYmVyKDB4ODAwMDAwMDBu
KSwgMHg4MDAwMDAwMCk7CitzaG91bGRCZShOdW1iZXIoMHg3ZmZmZmZmZm4gKyAxbiksIDB4ODAw
MDAwMDApOworc2hvdWxkQmUoTnVtYmVyKDB4N2ZmZmZmZmZuICsgMm4pLCAweDgwMDAwMDAxKTsK
K3Nob3VsZEJlKE51bWJlcigtMHg3ZmZmZmZmZm4gLSAxbiksIC0weDgwMDAwMDAwKTsKK3Nob3Vs
ZEJlKE51bWJlcigtMHg3ZmZmZmZmZm4gLSAybiksIC0weDgwMDAwMDAxKTsKKworLy8gQXJvdW5k
IEludDUyIG1heC9taW4uCitzaG91bGRCZShOdW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4pLCA5MDA3
MTk5MjU0NzQwOTkyKTsKK3Nob3VsZEJlKE51bWJlcigweDIwMDAwMDAwMDAwMDAwbiArIDFuKSwg
OTAwNzE5OTI1NDc0MDk5Mik7CitzaG91bGRCZShOdW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4gKyAy
biksIDkwMDcxOTkyNTQ3NDA5OTQpOworc2hvdWxkQmUoTnVtYmVyKDB4MjAwMDAwMDAwMDAwMDBu
ICsgM24pLCA5MDA3MTk5MjU0NzQwOTk2KTsKK3Nob3VsZEJlKE51bWJlcigweDIwMDAwMDAwMDAw
MDAwbiArIDRuKSwgOTAwNzE5OTI1NDc0MDk5Nik7CisKK3Nob3VsZEJlKE51bWJlcigtKDB4MjAw
MDAwMDAwMDAwMDBuKSksIC05MDA3MTk5MjU0NzQwOTkyKTsKK3Nob3VsZEJlKE51bWJlcigtKDB4
MjAwMDAwMDAwMDAwMDBuICsgMW4pKSwgLTkwMDcxOTkyNTQ3NDA5OTIpOworc2hvdWxkQmUoTnVt
YmVyKC0oMHgyMDAwMDAwMDAwMDAwMG4gKyAybikpLCAtOTAwNzE5OTI1NDc0MDk5NCk7CitzaG91
bGRCZShOdW1iZXIoLSgweDIwMDAwMDAwMDAwMDAwbiArIDNuKSksIC05MDA3MTk5MjU0NzQwOTk2
KTsKK3Nob3VsZEJlKE51bWJlcigtKDB4MjAwMDAwMDAwMDAwMDBuICsgNG4pKSwgLTkwMDcxOTky
NTQ3NDA5OTYpOworCisvLyBBcm91bmQgSW5maW5pdHkuCitzaG91bGRCZShOdW1iZXIoMm4gKiog
KDEwMjRuIC0gMW4pKSwgOC45ODg0NjU2NzQzMTE1OGUrMzA3KTsKK3Nob3VsZEJlKE51bWJlcigy
biAqKiAoMTAyNG4gLSAxbikpLCA4Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworc2hvdWxkQmUoTnVt
YmVyKDB4MWZmZmZmZmZmZmZmZmZuIDw8IDk3MW4pLCBOdW1iZXIuTUFYX1ZBTFVFKTsKK3Nob3Vs
ZEJlKE51bWJlcigweDIwMDAwMDAwMDAwMDAwbiA8PCA5NzFuKSwgSW5maW5pdHkpOworc2hvdWxk
QmUoTnVtYmVyKDB4MWZmZmZmZmZmZmZmZmZmbiA8PCA5NjZuKSwgOC45ODg0NjU2NzQzMTE1OGUr
MzA3KTsKK3Nob3VsZEJlKE51bWJlcigweDNmZmZmZmZmZmZmZmZmbiA8PCA5NzBuKSwgSW5maW5p
dHkpOworc2hvdWxkQmUoTnVtYmVyKDB4M2ZmZmZmZmZmZmZmZmZuIDw8IDk2OW4pLCA4Ljk4ODQ2
NTY3NDMxMTU4ZSszMDcpOworCitzaG91bGRCZShOdW1iZXIoLSgybiAqKiAoMTAyNG4gLSAxbikp
KSwgLTguOTg4NDY1Njc0MzExNThlKzMwNyk7CitzaG91bGRCZShOdW1iZXIoLSgybiAqKiAoMTAy
NG4gLSAxbikpKSwgLTguOTg4NDY1Njc0MzExNThlKzMwNyk7CitzaG91bGRCZShOdW1iZXIoLTB4
MWZmZmZmZmZmZmZmZmZuIDw8IDk3MW4pLCAtTnVtYmVyLk1BWF9WQUxVRSk7CitzaG91bGRCZShO
dW1iZXIoLTB4MjAwMDAwMDAwMDAwMDBuIDw8IDk3MW4pLCAtSW5maW5pdHkpOworc2hvdWxkQmUo
TnVtYmVyKC0weDFmZmZmZmZmZmZmZmZmZm4gPDwgOTY2biksIC04Ljk4ODQ2NTY3NDMxMTU4ZSsz
MDcpOworc2hvdWxkQmUoTnVtYmVyKC0weDNmZmZmZmZmZmZmZmZmbiA8PCA5NzBuKSwgLUluZmlu
aXR5KTsKK3Nob3VsZEJlKE51bWJlcigtMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTY5biksIC04Ljk4
ODQ2NTY3NDMxMTU4ZSszMDcpOworCitzaG91bGRCZSgrbmV3IE51bWJlcigwbiksICtuZXcgTnVt
YmVyKDApKTsKKworLy8gQXJvdW5kIEludDMyIG1heC9taW4uCitzaG91bGRCZSgrbmV3IE51bWJl
cigweDdmZmZmZmZmbiksICtuZXcgTnVtYmVyKDB4N2ZmZmZmZmYpKTsKK3Nob3VsZEJlKCtuZXcg
TnVtYmVyKDB4ODAwMDAwMDBuKSwgK25ldyBOdW1iZXIoMHg4MDAwMDAwMCkpOworc2hvdWxkQmUo
K25ldyBOdW1iZXIoMHg3ZmZmZmZmZm4gKyAxbiksICtuZXcgTnVtYmVyKDB4ODAwMDAwMDApKTsK
K3Nob3VsZEJlKCtuZXcgTnVtYmVyKDB4N2ZmZmZmZmZuICsgMm4pLCArbmV3IE51bWJlcigweDgw
MDAwMDAxKSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigtMHg3ZmZmZmZmZm4gLSAxbiksICtuZXcg
TnVtYmVyKC0weDgwMDAwMDAwKSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigtMHg3ZmZmZmZmZm4g
LSAybiksICtuZXcgTnVtYmVyKC0weDgwMDAwMDAxKSk7CisKKy8vIEFyb3VuZCBJbnQ1MiBtYXgv
bWluLgorc2hvdWxkQmUoK25ldyBOdW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4pLCArbmV3IE51bWJl
cig5MDA3MTk5MjU0NzQwOTkyKSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigweDIwMDAwMDAwMDAw
MDAwbiArIDFuKSwgK25ldyBOdW1iZXIoOTAwNzE5OTI1NDc0MDk5MikpOworc2hvdWxkQmUoK25l
dyBOdW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4gKyAybiksICtuZXcgTnVtYmVyKDkwMDcxOTkyNTQ3
NDA5OTQpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKDB4MjAwMDAwMDAwMDAwMDBuICsgM24pLCAr
bmV3IE51bWJlcig5MDA3MTk5MjU0NzQwOTk2KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigweDIw
MDAwMDAwMDAwMDAwbiArIDRuKSwgK25ldyBOdW1iZXIoOTAwNzE5OTI1NDc0MDk5NikpOworCitz
aG91bGRCZSgrbmV3IE51bWJlcigtKDB4MjAwMDAwMDAwMDAwMDBuKSksICtuZXcgTnVtYmVyKC05
MDA3MTk5MjU0NzQwOTkyKSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigtKDB4MjAwMDAwMDAwMDAw
MDBuICsgMW4pKSwgK25ldyBOdW1iZXIoLTkwMDcxOTkyNTQ3NDA5OTIpKTsKK3Nob3VsZEJlKCtu
ZXcgTnVtYmVyKC0oMHgyMDAwMDAwMDAwMDAwMG4gKyAybikpLCArbmV3IE51bWJlcigtOTAwNzE5
OTI1NDc0MDk5NCkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoLSgweDIwMDAwMDAwMDAwMDAwbiAr
IDNuKSksICtuZXcgTnVtYmVyKC05MDA3MTk5MjU0NzQwOTk2KSk7CitzaG91bGRCZSgrbmV3IE51
bWJlcigtKDB4MjAwMDAwMDAwMDAwMDBuICsgNG4pKSwgK25ldyBOdW1iZXIoLTkwMDcxOTkyNTQ3
NDA5OTYpKTsKKworLy8gQXJvdW5kIEluZmluaXR5Lgorc2hvdWxkQmUoK25ldyBOdW1iZXIoMm4g
KiogKDEwMjRuIC0gMW4pKSwgK25ldyBOdW1iZXIoOC45ODg0NjU2NzQzMTE1OGUrMzA3KSk7Citz
aG91bGRCZSgrbmV3IE51bWJlcigybiAqKiAoMTAyNG4gLSAxbikpLCArbmV3IE51bWJlcig4Ljk4
ODQ2NTY3NDMxMTU4ZSszMDcpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKDB4MWZmZmZmZmZmZmZm
ZmZuIDw8IDk3MW4pLCArbmV3IE51bWJlcihOdW1iZXIuTUFYX1ZBTFVFKSk7CitzaG91bGRCZSgr
bmV3IE51bWJlcigweDIwMDAwMDAwMDAwMDAwbiA8PCA5NzFuKSwgK25ldyBOdW1iZXIoSW5maW5p
dHkpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKDB4MWZmZmZmZmZmZmZmZmZmbiA8PCA5NjZuKSwg
K25ldyBOdW1iZXIoOC45ODg0NjU2NzQzMTE1OGUrMzA3KSk7CitzaG91bGRCZSgrbmV3IE51bWJl
cigweDNmZmZmZmZmZmZmZmZmbiA8PCA5NzBuKSwgK25ldyBOdW1iZXIoSW5maW5pdHkpKTsKK3No
b3VsZEJlKCtuZXcgTnVtYmVyKDB4M2ZmZmZmZmZmZmZmZmZuIDw8IDk2OW4pLCArbmV3IE51bWJl
cig4Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpKTsKKworc2hvdWxkQmUoK25ldyBOdW1iZXIoLSgybiAq
KiAoMTAyNG4gLSAxbikpKSwgK25ldyBOdW1iZXIoLTguOTg4NDY1Njc0MzExNThlKzMwNykpOwor
c2hvdWxkQmUoK25ldyBOdW1iZXIoLSgybiAqKiAoMTAyNG4gLSAxbikpKSwgK25ldyBOdW1iZXIo
LTguOTg4NDY1Njc0MzExNThlKzMwNykpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoLTB4MWZmZmZm
ZmZmZmZmZmZuIDw8IDk3MW4pLCArbmV3IE51bWJlcigtTnVtYmVyLk1BWF9WQUxVRSkpOworc2hv
dWxkQmUoK25ldyBOdW1iZXIoLTB4MjAwMDAwMDAwMDAwMDBuIDw8IDk3MW4pLCArbmV3IE51bWJl
cigtSW5maW5pdHkpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0weDFmZmZmZmZmZmZmZmZmZm4g
PDwgOTY2biksICtuZXcgTnVtYmVyKC04Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpKTsKK3Nob3VsZEJl
KCtuZXcgTnVtYmVyKC0weDNmZmZmZmZmZmZmZmZmbiA8PCA5NzBuKSwgK25ldyBOdW1iZXIoLUlu
ZmluaXR5KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigtMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTY5
biksICtuZXcgTnVtYmVyKC04Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3Rh
dGlvbnMueWFtbAppbmRleCAwYzE0NzFjMDBiYjgxZWQ1ZTVkZDRmMDMzNDNhOTYxMWNhODhhZGI5
Li5mMGMwMmYzZjBkZmFjOTBkZGJjZjVhYWE3ZWZhMGE4YjI5NDFlZjgwIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sCkBAIC0xMDY4LDkgKzEwNjgsNiBAQCB0ZXN0L2J1aWx0LWlucy9GdW5j
dGlvbi9wcm90b3R5cGUvdG9TdHJpbmcvdW5pY29kZS5qczoKIHRlc3QvYnVpbHQtaW5zL0pTT04v
cGFyc2UvcmV2aXZlci1vYmplY3Qtbm9uLWNvbmZpZ3VyYWJsZS1wcm9wLWNyZWF0ZS5qczoKICAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMjLCuywgwqsywrsp
IHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1l
VmFsdWUowqsyMsK7LCDCqzLCuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5zL051bWJlci9i
aWdpbnQtY29udmVyc2lvbi5qczoKLSAgZGVmYXVsdDogIlR5cGVFcnJvcjogQ29udmVyc2lvbiBm
cm9tICdCaWdJbnQnIHRvICdudW1iZXInIGlzIG5vdCBhbGxvd2VkLiIKLSAgc3RyaWN0IG1vZGU6
ICJUeXBlRXJyb3I6IENvbnZlcnNpb24gZnJvbSAnQmlnSW50JyB0byAnbnVtYmVyJyBpcyBub3Qg
YWxsb3dlZC4iCiB0ZXN0L2J1aWx0LWlucy9PYmplY3QvZW50cmllcy9vcmRlci1hZnRlci1kZWZp
bmUtcHJvcGVydHkuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBh
XSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuICcKICAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFtiLCBhXSBhbmQgW2EsIGJdIHRvIGhhdmUgdGhlIHNh
bWUgY29udGVudHMuICcK
</data>
<flag name="review"
          id="413054"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397805</attachid>
            <date>2020-04-27 22:04:23 -0700</date>
            <delta_ts>2020-04-27 22:04:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210835-20200427220408.patch</filename>
            <type>text/plain</type>
            <size>44719</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MTg2YzI3NWU5YzJhZDBhZTA5YTRmMjk0MTE0MDk5ZjY1YThjYTVmLi5hZGJjNTJmM2NiMGI5M2Ux
YWRlMTRkZmJhZTEzZjQwNGZkMTkyYTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MCBAQAorMjAyMC0wNC0yNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIE51bWJlckNvbnN0cnVjdG9yIHNob3VsZCBhY2NlcHQgQmlnSW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA4MzUK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBUaGlzIHBhdGNoIGZp
eGVzIG91ciBOdW1iZXIgY29uc3RydWN0b3IgYmVoYXZpb3IgdG8gYWNjZXB0IEJpZ0ludC4gQWNj
b3JkaW5nIHRvIHRoZSBzcGVjWzFdLAorICAgICAgICBOdW1iZXIgY29uc3RydWN0b3Igc2hvdWxk
IGFjY2VwdCBCaWdJbnQgYW5kIHNob3VsZCBnZW5lcmF0ZSBudW1iZXJzIGZyb20gdGhhdC4KKwor
ICAgICAgICBXZSBwb3J0IFY4J3MgQmlnSW50IHRvIGRvdWJsZSBjb252ZXJzaW9uIGNvZGUgYXMg
d2UgZGlkIGZvciB0aGUgb3RoZXIgSGVhcEJpZ0ludCBydW50aW1lIGZ1bmN0aW9ucy4KKworICAg
ICAgICBBbmQgd2UgaW50cm9kdWNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvciBERkcgbm9kZSBhbmQg
aGFuZGxlIE51bWJlciBjb25zdHJ1Y3RvciBjYWxsIHdpdGggQmlnSW50IGNvcnJlY3RseQorICAg
ICAgICBpbiBERkcgYW5kIEZUTC4gUHJldmlvdXNseSB3ZSB3ZXJlIGVtaXR0aW5nIFRvTnVtYmVy
IERGRyBub2RlIGZvciBOdW1iZXIgY29uc3RydWN0b3IuIEJ1dCB0aGlzIGlzIHdyb25nCisgICAg
ICAgIG5vdyBzaW5jZSBUb051bWJlciBkb2VzIG5vdCBhY2NlcHQgQmlnSW50IGFuZCB0aHJvd3Mg
YW4gZXJyb3IsIGFuZCBOdW1iZXIgY29uc3RydWN0b3Igc2hvdWxkIG5vdCB1c2UKKyAgICAgICAg
VG9OdW1iZXIgdG8gaW1wbGVtZW50IGl0cyBpbXBsZW1lbnRhdGlvbi4gU28gd2Ugc2hvdWxkIGlu
dHJvZHVjZSBzbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzOiBDYWxsTnVtYmVyQ29uc3RydWN0
b3IKKyAgICAgICAgYXMgd2UgaW50cm9kdWNlZCBDYWxsU3RyaW5nQ29uc3RydWN0b3IgaW4gYWRk
aXRpb24gdG8gVG9TdHJpbmcgREZHIG5vZGUuIEFuZCB3ZSBhZGQgYXBwcm9wcmlhdGUgQmlnSW50
MzIgcGF0aAorICAgICAgICB0byBlbWl0IGVmZmljaWVudCBDYWxsTnVtYmVyQ29uc3RydWN0b3Ig
bWFjaGluZSBjb2RlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3Nl
Yy1udW1iZXItY29uc3RydWN0b3ItbnVtYmVyLXZhbHVlCisKKyAgICAgICAgKiBkZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdElu
dGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAq
IGRmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAqIGRmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbik6CisgICAgICAgICogZGZnL0RGR0Nsb2Ji
ZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50
Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBo
YXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAg
ICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwVG9OdW1iZXJPclRvTnVtZXJpY09yQ2Fs
bE51bWJlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1
cFRvTnVtZXJpYyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4
dXBUb051bWJlcik6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpOb2RlOjpoYXNIZWFwUHJlZGljdGlvbik6CisgICAgICAgICogZGZnL0RGR05v
ZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRm
Zy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlv
blBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAo
SlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb051bWVy
aWMpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2FsbE51bWJl
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2Fu
Q29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogcnVudGltZS9KU0JpZ0ludC5jcHA6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojpk
ZWNpZGVSb3VuZGluZyk6CisgICAgICAgIChKU0M6OkpTQmlnSW50Ojp0b051bWJlckhlYXApOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAgICAgICAgKiBydW50aW1lL051bWJlckNv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3Ip
OgorICAgICAgICAoSlNDOjpjYWxsTnVtYmVyQ29uc3RydWN0b3IpOgorCiAyMDIwLTA0LTI3ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gPj4+IHNo
b3VsZCBjYWxsIFRvTnVtZXJpYwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGJmYzE2ZDlkYTI5ZTA4
NWE4M2EwODk5NjUzMjg2NTY1ZjQ1NTUyNjAuLjU5NDI2MzljZDIxMGQxMGQ4YmVmODEwNjJiZGIx
NzZmMjJlOTVhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTI3MTEsNiArMjcxMSw0NSBAQCBi
b29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBzZXRUeXBlRm9yTm9kZShub2RlLCBTcGVj
Qnl0ZWNvZGVOdW1iZXIgfCBTcGVjQmlnSW50KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorCisg
ICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6IHsKKyAgICAgICAgSlNWYWx1ZSBjaGlsZENv
bnN0ID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKKyAgICAgICAgaWYgKGNoaWxk
Q29uc3QpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZENvbnN0LmlzTnVtYmVyKCkpIHsKKyAgICAg
ICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpCisg
ICAgICAgICAgICAgICAgICAgIGRpZEZvbGRDbG9iYmVyV29ybGQoKTsKKyAgICAgICAgICAgICAg
ICBzZXRDb25zdGFudChub2RlLCBjaGlsZENvbnN0KTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyNpZiBVU0UoQklHSU5UMzIpCisgICAgICAgICAgICBpZiAoY2hpbGRD
b25zdC5pc0JpZ0ludDMyKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCku
dXNlS2luZCgpID09IFVudHlwZWRVc2UpCisgICAgICAgICAgICAgICAgICAgIGRpZEZvbGRDbG9i
YmVyV29ybGQoKTsKKyAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc051bWJlcihj
aGlsZENvbnN0LmJpZ0ludDMyQXNJbnQzMigpKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChub2RlLT5j
aGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSB8fCBub2RlLT5jaGlsZDEoKS51c2VLaW5k
KCkgPT0gQmlnSW50MzJVc2UpOworCisgICAgICAgIGlmICghKGZvck5vZGUobm9kZS0+Y2hpbGQx
KCkpLm1fdHlwZSAmIH5TcGVjQnl0ZWNvZGVOdW1iZXIpKSB7CisgICAgICAgICAgICBtX3N0YXRl
LnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKKyAgICAgICAgICAgIGlmIChub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKKyAgICAgICAgICAgICAgICBkaWRG
b2xkQ2xvYmJlcldvcmxkKCk7CisgICAgICAgICAgICBzZXRGb3JOb2RlKG5vZGUsIGZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBCaWdJbnQzMlVzZSkgeworICAgICAg
ICAgICAgc2V0VHlwZUZvck5vZGUobm9kZSwgU3BlY0ludDMyT25seSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNsb2JiZXJXb3JsZCgpOworICAgICAgICBzZXRO
b25DZWxsVHlwZUZvck5vZGUobm9kZSwgU3BlY0J5dGVjb2RlTnVtYmVyKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQogICAgICAgICAKICAgICBjYXNlIFRvU3RyaW5nOgogICAgIGNhc2UgQ2FsbFN0
cmluZ0NvbnN0cnVjdG9yOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCAzNjg2NWE1MjNmNWFj
ODhmMzZkZGUwMDkwODlkZmViMmUyNDdiNWY4Li4yY2M3NDI5MDUxYTU1ZWJiOGU3MTI3YWE5YjFl
M2Y1ZDMwMTk0NjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jh
Y2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTQxNSw3ICs0MTUsOCBAQCBj
bGFzcyBCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAg
ICAgIAogICAgICAgICBjYXNlIFRvUHJpbWl0aXZlOgogICAgICAgICBjYXNlIFRvTnVtYmVyOgot
ICAgICAgICBjYXNlIFRvTnVtZXJpYzogeworICAgICAgICBjYXNlIFRvTnVtZXJpYzoKKyAgICAg
ICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6IHsKICAgICAgICAgICAgIG5vZGUtPmNoaWxk
MSgpLT5tZXJnZUZsYWdzKGZsYWdzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4
IDIwNTQ0Y2NkNzMwZTFjMWI0YjY4ZmJlYzZmYTE5NjkyZmVjYWIyN2MuLjFhM2VlMzUwMTRmYTQ4
NGJhYjdlMzY4ODBiMjQyNGM5YTM0YjNmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC00MDI3LDcgKzQwMjcsNyBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVDb25zdGFudEludGVybmFsRnVuY3Rpb24oCiAgICAgICAgIGlm
IChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA8PSAxKQogICAgICAgICAgICAgc2V0KHJlc3Vs
dCwganNDb25zdGFudChqc051bWJlcigwKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBz
ZXQocmVzdWx0LCBhZGRUb0dyYXBoKFRvTnVtYmVyLCBPcEluZm8oMCksIE9wSW5mbyhwcmVkaWN0
aW9uKSwgZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50SW5jbHVkaW5nVGhpcygxLCByZWdp
c3Rlck9mZnNldCkpKSk7CisgICAgICAgICAgICBzZXQocmVzdWx0LCBhZGRUb0dyYXBoKENhbGxO
dW1iZXJDb25zdHJ1Y3RvciwgT3BJbmZvKDApLCBPcEluZm8ocHJlZGljdGlvbiksIGdldCh2aXJ0
dWFsUmVnaXN0ZXJGb3JBcmd1bWVudEluY2x1ZGluZ1RoaXMoMSwgcmVnaXN0ZXJPZmZzZXQpKSkp
OwogCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKaW5kZXggZTU4MjkwNzRmMDIyYjgxMWI3YWQ5ZTA3MDJhODE0M2E1
Yzg1NjM2NC4uM2ZjOTUyNDYyYzEwYTVhYzVmNzE2MGNkMzRjZTg0Y2UwMGEwOWJkOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTY5Miw2ICs2OTIsMTkg
QEAgU1VQUFJFU1NfQVNBTiB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2Rl
LCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwKICAgICAgICAgd3JpdGUoSGVhcCk7CiAgICAgICAg
IHJldHVybjsKIAorICAgIGNhc2UgQ2FsbE51bWJlckNvbnN0cnVjdG9yOgorICAgICAgICBzd2l0
Y2ggKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgeworICAgICAgICBjYXNlIEJpZ0ludDMyVXNl
OgorICAgICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGNhc2UgVW50eXBlZFVzZToKKyAgICAgICAgICAgIHJlYWQoV29ybGQpOworICAg
ICAgICAgICAgd3JpdGUoSGVhcCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICBERkdfQ1JBU0goZ3JhcGgsIG5vZGUsICJCYWQgdXNlIGtpbmQiKTsK
KyAgICAgICAgfQorCiAgICAgY2FzZSBJbmM6CiAgICAgY2FzZSBEZWM6CiAgICAgICAgIHN3aXRj
aCAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDZhMWZkMDc0MDA1
MmUxNTBiNTgyMDhjNGJlMzRkODI1N2VmNjNjZTkuLjkwYTMzNjczODhlNGU2ODIxOTAzODFiNjM5
NTk2ZDQ5YjIwODliNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC05NTEsNyArOTUxLDggQEAgY2xhc3MgQ29u
c3RhbnRGb2xkaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjYXNlIFRvTnVtYmVyOiB7CisgICAgICAg
ICAgICBjYXNlIFRvTnVtYmVyOgorICAgICAgICAgICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0
b3I6IHsKICAgICAgICAgICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgp
KS5tX3R5cGUgJiB+U3BlY0J5dGVjb2RlTnVtYmVyKQogICAgICAgICAgICAgICAgICAgICBicmVh
azsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDU3NzhkN2Ri
NDI4ZTE1ZDNhZWU0ODRhMDVlZGEzMGU0ZGNhY2FiNWQuLjNkMzk1YjRkYmVhYTJkODBhYWYxMmU3
NTMwZTc2YTE3N2YyYWEwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKQEAgLTQxMyw2ICs0MTMsMTUgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlKQogI2VuZGlmIC8vIG5vdCBBU1NFUlRfRU5BQkxFRAogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAorICAgIGNhc2UgQ2FsbE51bWJlckNvbnN0cnVjdG9yOgorICAgICAgICBzd2l0Y2ggKG5vZGUt
PmNoaWxkMSgpLnVzZUtpbmQoKSkgeworICAgICAgICBjYXNlIEJpZ0ludDMyVXNlOgorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBjYXNlIENhbGxTdHJpbmdD
b25zdHJ1Y3RvcjoKICAgICBjYXNlIFRvU3RyaW5nOgogICAgICAgICBzd2l0Y2ggKG5vZGUtPmNo
aWxkMSgpLnVzZUtpbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAKaW5kZXggM2E2ZmRjNzcyNmVjYjc0YzFkYWMyZjBjNGE1ZjIzMDJjMGQ1MzU3My4u
MTcyZWI5MjA0NzE0ZGYxODdkZThkMGRhYTM3OWVhNTZmOTY4ZTkwMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xNTQ1LDE2ICsxNTQ1LDEzIEBA
IGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KIAotICAgICAgICBjYXNlIFRvTnVtYmVyOiB7Ci0gICAgICAgICAgICBmaXh1cFRv
TnVtYmVyKG5vZGUpOworICAgICAgICBjYXNlIFRvTnVtYmVyOgorICAgICAgICBjYXNlIFRvTnVt
ZXJpYzoKKyAgICAgICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6IHsKKyAgICAgICAgICAg
IGZpeHVwVG9OdW1iZXJPclRvTnVtZXJpY09yQ2FsbE51bWJlckNvbnN0cnVjdG9yKG5vZGUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBjYXNlIFRvTnVtZXJpYzog
ewotICAgICAgICAgICAgZml4dXBUb051bWVyaWMobm9kZSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgVG9TdHJpbmc6CiAgICAgICAg
IGNhc2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOiB7CiAgICAgICAgICAgICBmaXh1cFRvU3RyaW5n
T3JDYWxsU3RyaW5nQ29uc3RydWN0b3Iobm9kZSk7CkBAIC0zMDk5LDI5ICszMDk2LDM3IEBAIGNs
YXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICB9CiAgICAgfQogCi0gICAg
dm9pZCBmaXh1cFRvTnVtZXJpYyhOb2RlKiBub2RlKQorICAgIHZvaWQgZml4dXBUb051bWJlck9y
VG9OdW1lcmljT3JDYWxsTnVtYmVyQ29uc3RydWN0b3IoTm9kZSogbm9kZSkKICAgICB7Ci0gICAg
ICAgIC8vIElmIHRoZSBwcmVkaWN0aW9uIG9mIHRoZSBjaGlsZCBpcyBCaWdJbnQsIHdlIGF0dGVt
cHQgdG8gY29udmVydCBUb051bWVyaWMgdG8gSWRlbnRpdHksIHNpbmNlIGl0IGNhbiBvbmx5IHJl
dHVybiBhIEJpZ0ludCB3aGVuIGZlZCBhIEJpZ0ludC4KLSAgICAgICAgaWYgKG5vZGUtPmNoaWxk
MSgpLT5zaG91bGRTcGVjdWxhdGVCaWdJbnQoKSkgewogI2lmIFVTRShCSUdJTlQzMikKLSAgICAg
ICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmlnSW50MzIoKSkKKyAg
ICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gQ2FsbE51bWJlckNvbnN0cnVjdG9yKSB7CisgICAgICAg
ICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUJpZ0ludDMyKCkpIHsKICAg
ICAgICAgICAgICAgICBmaXhFZGdlPEJpZ0ludDMyVXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgICAgICBlbHNlIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlSGVhcEJpZ0lu
dCgpKQotICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVhcEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGZpeEVkZ2U8QW55QmlnSW50
VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgbm9kZS0+Y2xlYXJGbGFncyhO
b2RlTXVzdEdlbmVyYXRlKTsKKyAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXN1bHQoTm9kZVJl
c3VsdEludDMyKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyNlbmRpZgorCisgICAgICAgIC8vIElmIHRoZSBwcmVkaWN0aW9uIG9mIHRoZSBjaGls
ZCBpcyBCaWdJbnQsIHdlIGF0dGVtcHQgdG8gY29udmVydCBUb051bWVyaWMgdG8gSWRlbnRpdHks
IHNpbmNlIGl0IGNhbiBvbmx5IHJldHVybiBhIEJpZ0ludCB3aGVuIGZlZCBhIEJpZ0ludC4KKyAg
ICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gVG9OdW1lcmljKSB7CisgICAgICAgICAgICBpZiAobm9k
ZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUJpZ0ludCgpKSB7CisjaWYgVVNFKEJJR0lOVDMy
KQorICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQmln
SW50MzIoKSkKKyAgICAgICAgICAgICAgICAgICAgZml4RWRnZTxCaWdJbnQzMlVzZT4obm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91
bGRTcGVjdWxhdGVIZWFwQmlnSW50KCkpCisgICAgICAgICAgICAgICAgICAgIGZpeEVkZ2U8SGVh
cEJpZ0ludFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgZml4RWRnZTxBbnlCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICNl
bHNlCi0gICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgICAgICBmaXhFZGdlPEhlYXBCaWdJbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
ICNlbmRpZgotICAgICAgICAgICAgbm9kZS0+Y29udmVydFRvSWRlbnRpdHkoKTsKLSAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9JZGVudGl0eSgpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAg
ICAgIGZpeHVwVG9OdW1iZXIobm9kZSk7Ci0gICAgfQotCi0gICAgdm9pZCBmaXh1cFRvTnVtYmVy
KE5vZGUqIG5vZGUpCi0gICAgewogICAgICAgICAvLyBBdCBmaXJzdCwgYXR0ZW1wdCB0byBmb2xk
IEJvb2xlYW4gb3IgSW50MzIgdG8gSW50MzIuCiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+
c2hvdWxkU3BlY3VsYXRlSW50MzJPckJvb2xlYW4oKSkgewogICAgICAgICAgICAgaWYgKGlzSW50
MzJTcGVjdWxhdGlvbihub2RlLT5nZXRIZWFwUHJlZGljdGlvbigpKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGUuaAppbmRleCBlYmUwMTU4NjZiYjc5OTE0YWQyNGE4YmJjNjZkYTkxZDg3
NzU3YWZhLi44NzJjZDEwN2U2OGNkMDVkYjdhYWI4YTQxYTFjY2QwOWZkZjU5ZmZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTc5NSw2ICsxNzk1LDcgQEAgc3RydWN0IE5v
ZGUgewogICAgICAgICBjYXNlIFRvTnVtYmVyOgogICAgICAgICBjYXNlIFRvTnVtZXJpYzoKICAg
ICAgICAgY2FzZSBUb09iamVjdDoKKyAgICAgICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6
CiAgICAgICAgIGNhc2UgVmFsdWVCaXRBbmQ6CiAgICAgICAgIGNhc2UgVmFsdWVCaXRPcjoKICAg
ICAgICAgY2FzZSBWYWx1ZUJpdFhvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaAppbmRleCBkZTM1NzYyODcwMzhiYmVmYmI5YTRkNTYyMjc1ZDczOThlNWRmYWIxLi41NjE2
ODE2NGRkZjQ2ZDg4MDM2YmFmZmE5M2QxOTE4ODBlNWRhMDAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC00MTIsNiArNDEyLDcgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKFRvT2JqZWN0LCBOb2RlUmVzdWx0SlMgfCBOb2Rl
TXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2FsbE9iamVjdENvbnN0cnVjdG9yLCBOb2RlUmVz
dWx0SlMpIFwKICAgICBtYWNybyhDYWxsU3RyaW5nQ29uc3RydWN0b3IsIE5vZGVSZXN1bHRKUyB8
IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDYWxsTnVtYmVyQ29uc3RydWN0b3IsIE5v
ZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOdW1iZXJUb1N0cmlu
Z1dpdGhSYWRpeCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KE51bWJlclRvU3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudCwgTm9kZVJlc3VsdEpTKSBcCiAg
ICAgbWFjcm8oTWFrZVJvcGUsIE5vZGVSZXN1bHRKUykgXApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggMjkyMzM3N2FiNDYxMjFkY2ZhMGEwY2VkZGVm
MTRjNGJkMTk5ZDdmMS4uYTQ3ZGYyODI5MTc3OGU1OWYxZWU5NTY3NmEwZWI4MWEwY2EwY2M0YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNTMx
LDYgKzE1MzEsMjIgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub051
bWVyaWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW4KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9OdW1lcmljKGdsb2JhbE9iamVjdCkp
OwogfQogCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxOdW1iZXJD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIEpTVmFsdWUgbnVtZXJpYyA9
IHZhbHVlLnRvTnVtZXJpYyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CisgICAgaWYgKG51bWVyaWMuaXNOdW1iZXIoKSkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShudW1lcmljKTsKKyAgICBBU1NFUlQobnVtZXJpYy5pc0JpZ0ludCgp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50Ojp0b051bWJlcihudW1lcmlj
KSk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxX
aXRoVGhpcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCAzODljYjhhM2UxMzBjNDRm
ZDM5YTUzNGE2OGQ2YzgxNTY2OTMxOTJkLi4yYjdmMWQ0OTA0NzlmZjdmMTRkOGU1ZWE4NTdjMDM3
MzllMjRiNWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaApA
QCAtOTQsNiArOTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRv
UHJpbWl0aXZlKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdQogRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Ub1Byb3BlcnR5S2V5KEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVG9OdW1iZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lO
VEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Ub051bWVyaWMo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsTnVtYmVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSk7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldEJ5VmFsV2l0aFRoaXMoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3RvdHlwZU9mKEpTR2xvYmFsT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uR2V0UHJvdG90eXBlT2ZPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBK
U09iamVjdCopIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggMGFiZGI1
YjUyZDIzNzk5YThhM2I3OWQ3MDJhZWI0MzYwMDkzOWYxZi4uMmM5NDFhMTJjZGFjNDUzNTQwMzE3
YWIwYmU4ZGEyMDNlYTZkYjE0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTg5Nyw2ICs4
OTcsNyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7
CiAgICAgICAgIGNhc2UgVG9OdW1iZXI6CiAgICAgICAgIGNhc2UgVG9OdW1lcmljOgogICAgICAg
ICBjYXNlIFRvT2JqZWN0OgorICAgICAgICBjYXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjoKICAg
ICAgICAgY2FzZSBWYWx1ZUJpdEFuZDoKICAgICAgICAgY2FzZSBWYWx1ZUJpdFhvcjoKICAgICAg
ICAgY2FzZSBWYWx1ZUJpdE9yOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaAppbmRleCA4ZGIwYWJhMmNjZTljZmQ2YWM1MzhjMjhiMWYwNmFlY2Y1YWY4ZjM0
Li40MzZiZmIxNTIwOWYyZTYyZGIwYzFiM2QzY2I4N2M4YjYzMTk5MTYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNTY1LDYgKzU2NSw3IEBA
IGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSwgYm9vbCBpZ25vCiAgICAgY2FzZSBUb051bWJlcjoKICAgICBjYXNlIFRv
TnVtZXJpYzoKICAgICBjYXNlIFRvT2JqZWN0OgorICAgIGNhc2UgQ2FsbE51bWJlckNvbnN0cnVj
dG9yOgogICAgIGNhc2UgTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXg6CiAgICAgY2FzZSBTZXRGdW5j
dGlvbk5hbWU6CiAgICAgY2FzZSBOZXdTdHJpbmdPYmplY3Q6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDY1NDY0NTVmOGU4ZGU1MDk4
NTM4Y2EzODI3NzI0MGQwN2E2ODEyZWUuLjc3Y2QzMTViMjgyZWNhMjM5NzEyZjJhOGZiYThmNWIw
NDBhYTY3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCkBAIC0xMzMzNiw3ICsxMzMzNiw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVUb051bWVyaWMoTm9kZSogbm9kZSkKICAgICBKU1ZhbHVlUmVncyBhcmd1bWVudFJlZ3Mg
PSBhcmd1bWVudC5qc1ZhbHVlUmVncygpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBy
ZXN1bHQucmVncygpOwogICAgIEdQUlJlZyBzY3JhdGNoID0gdGVtcC5ncHIoKTsKLSAgICAvLyBG
SVhNRTogYWRkIGEgZmFzdCBwYXRoIGZvciBCaWdJbnQzMiBoZXJlIChhbmQgZm9yIHR5cGVPZiwg
YW5kIGZvciBib29saWZ5IG9yIHdoYXRldmVyIGl0IGlzIGNhbGxlZCBpbiB0aGlzIGZpbGUpLgor
ICAgIC8vIEZJWE1FOiBhZGQgYSBmYXN0IHBhdGggZm9yIEJpZ0ludDMyIGhlcmUuCisgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA2NAogCiAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKIApAQCAtMTMzNTUsNiArMTMzNTYsNDEg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvTnVtZXJpYyhOb2RlKiBub2RlKQogICAg
IGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSwgRGF0YUZvcm1hdEpTKTsKIH0KIAordm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3RvcihOb2RlKiBub2Rl
KQoreworI2lmIFVTRShCSUdJTlQzMikKKyAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgp
ID09IEJpZ0ludDMyVXNlKSB7CisgICAgICAgIFNwZWN1bGF0ZUJpZ0ludDMyT3BlcmFuZCBvcGVy
YW5kKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0
aGlzKTsKKworICAgICAgICBHUFJSZWcgb3BlcmFuZEdQUiA9IG9wZXJhbmQuZ3ByKCk7CisgICAg
ICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgbV9qaXQudW5i
b3hCaWdJbnQzMihvcGVyYW5kR1BSLCByZXN1bHRHUFIpOworICAgICAgICBzdHJpY3RJbnQzMlJl
c3VsdChyZXN1bHRHUFIsIG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisK
KyAgICBERkdfQVNTRVJUKG1faml0LmdyYXBoKCksIG5vZGUsIG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBVbnR5cGVkVXNlLCBub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpOworICAgIEpTVmFs
dWVPcGVyYW5kIGFyZ3VtZW50KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlUmVn
c1RlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CisK
KyAgICBKU1ZhbHVlUmVncyBhcmd1bWVudFJlZ3MgPSBhcmd1bWVudC5qc1ZhbHVlUmVncygpOwor
ICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOworICAgIEdQUlJlZyB0
ZW1wR1BSID0gdGVtcC5ncHIoKTsKKyAgICAvLyBGSVhNRTogYWRkIGEgZmFzdCBwYXRoIGZvciBC
aWdJbnQzMiBoZXJlLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTEwNjQKKworICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd0Nhc2VzOworICAg
IHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoSWZOb3ROdW1iZXIoYXJndW1lbnRSZWdzLCB0
ZW1wR1BSKSk7CisgICAgbV9qaXQubW92ZVZhbHVlUmVncyhhcmd1bWVudFJlZ3MsIHJlc3VsdFJl
Z3MpOworICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93Q2FzZXMsIHRo
aXMsIG9wZXJhdGlvbkNhbGxOdW1iZXJDb25zdHJ1Y3RvciwgcmVzdWx0UmVncywgVHJ1c3RlZElt
bVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+
b3JpZ2luLnNlbWFudGljKSksIGFyZ3VtZW50UmVncykpOworCisgICAganNWYWx1ZVJlc3VsdChy
ZXN1bHRSZWdzLCBub2RlKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvZ1No
YWRvd0NoaWNrZW5Qcm9sb2d1ZShOb2RlKiBub2RlKQogewogICAgIGZsdXNoUmVnaXN0ZXJzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXgg
NWFjZTUyNTVlZDAyNzY1MzVkYTFmYTY4YmY4YzA5ZDJhYWZlYzk5OS4uNzc5NmQwNTZlMTEyZTVm
YjNjZWIyM2I4ODc1MDI3MDk0ODVlZDRjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTQ3NCw2ICsxNDc0LDcgQEAgY2xhc3MgU3BlY3Vs
YXRpdmVKSVQgewogICAgIHZvaWQgY29tcGlsZVRvUHJpbWl0aXZlKE5vZGUqKTsKICAgICB2b2lk
IGNvbXBpbGVUb1Byb3BlcnR5S2V5KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVUb051bWVyaWMo
Tm9kZSopOworICAgIHZvaWQgY29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3RvcihOb2RlKik7CiAg
ICAgdm9pZCBjb21waWxlTG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlKE5vZGUqKTsKICAgICB2b2lk
IGNvbXBpbGVMb2dTaGFkb3dDaGlja2VuVGFpbChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlSGFz
SW5kZXhlZFByb3BlcnR5KE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IGU4OWIxYzc1YjJiNWM0ZWU4NGI5
NWRjMDE0NzMwOTkxN2EyNTg3NWQuLjYwYzk5MWMyMTFmNzEzNWE2ZmU5ZWU4ZTBjMjAyOTg4ZTUy
ODRiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcApAQCAtMzE1MSw2ICszMTUxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZVRvTnVtZXJpYyhub2RlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAgY2FzZSBDYWxsTnVtYmVyQ29uc3RydWN0b3I6
CisgICAgICAgIGNvbXBpbGVDYWxsTnVtYmVyQ29uc3RydWN0b3Iobm9kZSk7CisgICAgICAgIGJy
ZWFrOwogICAgICAgICAKICAgICBjYXNlIFRvU3RyaW5nOgogICAgIGNhc2UgQ2FsbFN0cmluZ0Nv
bnN0cnVjdG9yOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKaW5kZXggNTA4MzZmZGQ2MWNmZjYwOTBjNTBhNTM2OWY0MzA4MjgzZTdhMjU1
ZC4uOTdhZjJlMmNkYmY4NmZiNjc2ZDRiZDFiOGYwN2FiMDllZjFkMjMxYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0zNzIw
LDYgKzM3MjAsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQog
ICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENhbGxOdW1iZXJDb25zdHJ1Y3RvcjoK
KyAgICAgICAgY29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3Rvcihub2RlKTsKKyAgICAgICAgYnJl
YWs7CisKICAgICBjYXNlIFRvU3RyaW5nOgogICAgIGNhc2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9y
OgogICAgIGNhc2UgU3RyaW5nVmFsdWVPZjogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDhhZTk4MjA1MTY0NDExNDU1YTg5NmI3M2JlMmQ4
NDJlZmZlYzc1NWQuLmJjOTczMDdlMWE3ZmQ4NTZmZDI4YWU5Yzc1MWViMDI1YzIyZGExM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTIx
OSw2ICsyMTksNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9k
ZSkKICAgICBjYXNlIFRvT2JqZWN0OgogICAgIGNhc2UgQ2FsbE9iamVjdENvbnN0cnVjdG9yOgog
ICAgIGNhc2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOgorICAgIGNhc2UgQ2FsbE51bWJlckNvbnN0
cnVjdG9yOgogICAgIGNhc2UgT2JqZWN0Q3JlYXRlOgogICAgIGNhc2UgT2JqZWN0S2V5czoKICAg
ICBjYXNlIE1ha2VSb3BlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCmluZGV4IDkzOWVjZmU2YzBjZWE3NTQ0ZDU1YWRjZmJjODk4MjRiYWQwMTQxMTUu
LjU4MDZmNTc4M2E4NmJmZmY0NTkzZWVmZTA1OTM1MGVkNzRkYWNiODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTExMzQsNiArMTEzNCw5
IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNhc2UgVG9OdW1lcmljOgogICAgICAg
ICAgICAgY29tcGlsZVRvTnVtZXJpYygpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQ2FsbE51bWJlckNvbnN0cnVjdG9yOgorICAgICAgICAgICAgY29tcGlsZUNhbGxOdW1iZXJD
b25zdHJ1Y3RvcigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVG9TdHJpbmc6
CiAgICAgICAgIGNhc2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOgogICAgICAgICBjYXNlIFN0cmlu
Z1ZhbHVlT2Y6CkBAIC03NTkwLDYgKzc1OTMsMzUgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2NCwgb3BlcmF0
aW9uVG9OdW1lcmljLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCB2YWx1ZSkpOwogICAgIH0K
KworICAgIHZvaWQgY29tcGlsZUNhbGxOdW1iZXJDb25zdHJ1Y3RvcigpCisgICAgeworICAgICAg
ICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Io
bV9ub2RlLT5vcmlnaW4uc2VtYW50aWMpOworI2lmIFVTRShCSUdJTlQzMikKKyAgICAgICAgaWYg
KG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IEJpZ0ludDMyVXNlKSB7CisgICAgICAgICAg
ICBMVmFsdWUgdmFsdWUgPSBsb3dCaWdJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
ICAgIHNldEludDMyKHVuYm94QmlnSW50MzIodmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDEoKSk7CisKKyAgICAgICAgTEJhc2ljQmxvY2sgbm90TnVtYmVyID0gbV9vdXQu
bmV3QmxvY2soKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3
QmxvY2soKTsKKworICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5j
aG9yKHZhbHVlKTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKGlzTnVtYmVyKHZhbHVlLCBwcm92ZW5U
eXBlKG1fbm9kZS0+Y2hpbGQxKCkpKSwgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShub3RO
dW1iZXIpKTsKKworICAgICAgICAvLyBub3ROdW1iZXIgY2FzZS4KKyAgICAgICAgTEJhc2ljQmxv
Y2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3ROdW1iZXIsIGNvbnRpbnVhdGlvbik7Cisg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKElu
dDY0LCBvcGVyYXRpb25DYWxsTnVtYmVyQ29uc3RydWN0b3IsIHdlYWtQb2ludGVyKGdsb2JhbE9i
amVjdCksIHZhbHVlKSk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAg
ICAgICAvLyBjb250aW51YXRpb24gY2FzZS4KKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGlu
dWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKEludDY0LCBm
YXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7CisgICAgfQorCiAgICAgCiAgICAgdm9pZCBjb21waWxl
VG9TdHJpbmdPckNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9yU3RyaW5nVmFsdWVPZigpCiAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCmluZGV4IGFjYTM1NTU0
Y2Y1MTczZjAzNDE3Yzc0N2QwNDM4OGM0MzVmNjM5MDAuLmI4NzcxOGM0OTEzNjcxZjhhYTNmZWU5
OTRhOGFlZjA1ZmQwZjM2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQmlnSW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jp
Z0ludC5jcHAKQEAgLTIxOTIsNCArMjE5MiwxMTggQEAgT3B0aW9uYWw8SlNCaWdJbnQ6OkRpZ2l0
PiBKU0JpZ0ludDo6dG9TaGlmdEFtb3VudChKU0JpZ0ludCogeCkKICAgICByZXR1cm4gdmFsdWU7
CiB9CiAKK0pTQmlnSW50OjpSb3VuZGluZ1Jlc3VsdCBKU0JpZ0ludDo6ZGVjaWRlUm91bmRpbmco
SlNCaWdJbnQqIGJpZ0ludCwgaW50MzJfdCBtYW50aXNzYUJpdHNVbnNldCwgaW50MzJfdCBkaWdp
dEluZGV4LCB1aW50NjRfdCBjdXJyZW50RGlnaXQpCit7CisgICAgaWYgKG1hbnRpc3NhQml0c1Vu
c2V0ID4gMCkKKyAgICAgICAgcmV0dXJuIFJvdW5kaW5nUmVzdWx0OjpSb3VuZERvd247CisgICAg
aW50MzJfdCB0b3BVbmNvbnN1bWVkQml0ID0gMDsKKyAgICBpZiAobWFudGlzc2FCaXRzVW5zZXQg
PCAwKSB7CisgICAgICAgIC8vIFRoZXJlIGFyZSB1bmNvbnN1bWVkIGJpdHMgaW4gY3VycmVudERp
Z2l0LgorICAgICAgICB0b3BVbmNvbnN1bWVkQml0ID0gLW1hbnRpc3NhQml0c1Vuc2V0IC0gMTsK
KyAgICB9IGVsc2UgeworICAgICAgICBBU1NFUlQobWFudGlzc2FCaXRzVW5zZXQgPT0gMCk7Cisg
ICAgICAgIC8vIGN1cnJlbnREaWdpdCBmaXQgdGhlIG1hbnRpc3NhIGV4YWN0bHk7IGxvb2sgYXQg
dGhlIG5leHQgZGlnaXQuCisgICAgICAgIGlmIChkaWdpdEluZGV4ID09IDApCisgICAgICAgICAg
ICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlJvdW5kRG93bjsKKyAgICAgICAgZGlnaXRJbmRleC0t
OworICAgICAgICBjdXJyZW50RGlnaXQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oYmlnSW50LT5k
aWdpdChkaWdpdEluZGV4KSk7CisgICAgICAgIHRvcFVuY29uc3VtZWRCaXQgPSBkaWdpdEJpdHMg
LSAxOworICAgIH0KKyAgICAvLyBJZiB0aGUgbW9zdCBzaWduaWZpY2FudCByZW1haW5pbmcgYml0
IGlzIDAsIHJvdW5kIGRvd24uCisgICAgdWludDY0X3QgYml0bWFzayA9IHN0YXRpY19jYXN0PHVp
bnQ2NF90PigxKSA8PCB0b3BVbmNvbnN1bWVkQml0OworICAgIGlmICgoY3VycmVudERpZ2l0ICYg
Yml0bWFzaykgPT0gMCkKKyAgICAgICAgcmV0dXJuIFJvdW5kaW5nUmVzdWx0OjpSb3VuZERvd247
CisgICAgLy8gSWYgYW55IG90aGVyIHJlbWFpbmluZyBiaXQgaXMgc2V0LCByb3VuZCB1cC4KKyAg
ICBiaXRtYXNrIC09IDE7CisgICAgaWYgKChjdXJyZW50RGlnaXQgJiBiaXRtYXNrKSAhPSAwKQor
ICAgICAgICByZXR1cm4gUm91bmRpbmdSZXN1bHQ6OlJvdW5kVXA7CisgICAgd2hpbGUgKGRpZ2l0
SW5kZXggPiAwKSB7CisgICAgICAgIGRpZ2l0SW5kZXgtLTsKKyAgICAgICAgaWYgKGJpZ0ludC0+
ZGlnaXQoZGlnaXRJbmRleCkgIT0gMCkKKyAgICAgICAgICAgIHJldHVybiBSb3VuZGluZ1Jlc3Vs
dDo6Um91bmRVcDsKKyAgICB9CisgICAgcmV0dXJuIFJvdW5kaW5nUmVzdWx0OjpUaWU7Cit9CisK
K0pTVmFsdWUgSlNCaWdJbnQ6OnRvTnVtYmVySGVhcChKU0JpZ0ludCogYmlnSW50KQoreworICAg
IGlmIChiaWdJbnQtPmlzWmVybygpKQorICAgICAgICByZXR1cm4ganNOdW1iZXIoMCk7CisgICAg
QVNTRVJUKGJpZ0ludC0+bGVuZ3RoKCkpOworCisgICAgLy8gQ29udmVyc2lvbiBtZWNoYW5pc20g
aXMgdGhlIGZvbGxvd2luZy4KKyAgICAvLworICAgIC8vIDEuIEdldCBleHBvbmVudCBiaXRzLgor
ICAgIC8vIDIuIENvbGxlY3QgbWFudGlzc2EgNTIgYml0cy4KKyAgICAvLyAzLiBBZGQgcm91bmRp
bmcgcmVzdWx0IG9mIHVudXNlZCBiaXRzIHRvIG1hbnRpc3NhIGFuZCBhZGp1c3QgbWFudGlzc2Eg
JiBleHBvbmVudCBiaXRzLgorICAgIC8vIDQuIEdlbmVyYXRlIGRvdWJsZSBieSBjb21iaW5pbmcg
KDEpIGFuZCAoMykuCisKKyAgICBjb25zdCB1bnNpZ25lZCBsZW5ndGggPSBiaWdJbnQtPmxlbmd0
aCgpOworICAgIGNvbnN0IGJvb2wgc2lnbiA9IGJpZ0ludC0+c2lnbigpOworICAgIGNvbnN0IERp
Z2l0IG1zZCA9IGJpZ0ludC0+ZGlnaXQobGVuZ3RoIC0gMSk7CisgICAgY29uc3QgdW5zaWduZWQg
bXNkTGVhZGluZ1plcm9zID0gY2x6KG1zZCk7CisgICAgY29uc3Qgc2l6ZV90IGJpdExlbmd0aCA9
IGxlbmd0aCAqIGRpZ2l0Qml0cyAtIG1zZExlYWRpbmdaZXJvczsKKyAgICAvLyBEb3VibGUncyBl
eHBvbmVudCBiaXRzIG92ZXJmbG93LgorICAgIGlmIChiaXRMZW5ndGggPiAxMDI0KQorICAgICAg
ICByZXR1cm4ganNEb3VibGVOdW1iZXIoc2lnbiA/IC1zdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OmluZmluaXR5KCkgOiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkp
OworICAgIHVpbnQ2NF90IGV4cG9uZW50ID0gYml0TGVuZ3RoIC0gMTsKKyAgICB1aW50NjRfdCBj
dXJyZW50RGlnaXQgPSBtc2Q7CisgICAgaW50MzJfdCBkaWdpdEluZGV4ID0gbGVuZ3RoIC0gMTsK
KyAgICBpbnQzMl90IHNoaWZ0QW1vdW50ID0gbXNkTGVhZGluZ1plcm9zICsgMSArICg2NCAtIGRp
Z2l0Qml0cyk7CisgICAgQVNTRVJUKDEgPD0gc2hpZnRBbW91bnQpOworICAgIEFTU0VSVChzaGlm
dEFtb3VudCA8PSA2NCk7CisgICAgdWludDY0X3QgbWFudGlzc2EgPSAoc2hpZnRBbW91bnQgPT0g
NjQpID8gMCA6IGN1cnJlbnREaWdpdCA8PCBzaGlmdEFtb3VudDsKKworICAgIC8vIHVuc2V0Qml0
cyA9IDY0IC0gc2V0Qml0cyAtIDEyIC8vIDEyIGZvciBub24tbWFudGlzc2EgYml0cworICAgIC8v
ICAgICBzZXRCaXRzID0gNjQgLSAobXNkTGVhZGluZ1plcm9zICsgMSArIGJpdHNOb3RBdmFpbGFi
bGVEdWVUb0RpZ2l0U2l6ZSk7ICAvLyAxIGZvciBoaWRkZW4gbWFudGlzc2EgYml0LgorICAgIC8v
ICAgICAgICAgICAgICAgICA9IDY0IC0gKG1zZExlYWRpbmdaZXJvcyArIDEgKyAoNjQgLSBkaWdp
dEJpdHMpKQorICAgIC8vICAgICAgICAgICAgICAgICA9IDY0IC0gc2hpZnRBbW91bnQKKyAgICAv
LyBIZW5jZSwgdW5zZXRCaXRzID0gNjQgLSAoNjQgLSBzaGlmdEFtb3VudCkgLSAxMiA9IHNoaWZ0
QW1vdW50IC0gMTIKKworICAgIG1hbnRpc3NhID4+PSAxMjsgLy8gKDEyID0gNjQgLSA1MiksIHdl
IHNoaWZ0IDEyIGJpdHMgdG8gcHV0IDEyIHplcm9zIGluIHVpbnQ2NF90IG1hbnRpc3NhLgorICAg
IGludDMyX3QgbWFudGlzc2FCaXRzVW5zZXQgPSBzaGlmdEFtb3VudCAtIDEyOworCisgICAgLy8g
SWYgbm90IGFsbCBtYW50aXNzYSBiaXRzIGFyZSBkZWZpbmVkIHlldCwgZ2V0IG1vcmUgZGlnaXRz
IGFzIG5lZWRlZC4KKyAgICAvLyBDb2xsZWN0IG1hbnRpc3NhIDUyYml0cyBmcm9tIHNldmVyYWwg
ZGlnaXRzLgorCisgICAgaWYgY29uc3RleHByIChkaWdpdEJpdHMgPCA2NCkgeworICAgICAgICBp
ZiAobWFudGlzc2FCaXRzVW5zZXQgPj0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZGlnaXRCaXRzKSAm
JiBkaWdpdEluZGV4ID4gMCkgeworICAgICAgICAgICAgZGlnaXRJbmRleC0tOworICAgICAgICAg
ICAgY3VycmVudERpZ2l0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJpZ0ludC0+ZGlnaXQoZGln
aXRJbmRleCkpOworICAgICAgICAgICAgbWFudGlzc2EgfD0gKGN1cnJlbnREaWdpdCA8PCAobWFu
dGlzc2FCaXRzVW5zZXQgLSBkaWdpdEJpdHMpKTsKKyAgICAgICAgICAgIG1hbnRpc3NhQml0c1Vu
c2V0IC09IGRpZ2l0Qml0czsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChtYW50aXNzYUJp
dHNVbnNldCA+IDAgJiYgZGlnaXRJbmRleCA+IDApIHsKKyAgICAgICAgQVNTRVJUKG1hbnRpc3Nh
Qml0c1Vuc2V0IDwgc3RhdGljX2Nhc3Q8aW50MzJfdD4oZGlnaXRCaXRzKSk7CisgICAgICAgIGRp
Z2l0SW5kZXgtLTsKKyAgICAgICAgY3VycmVudERpZ2l0ID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KGJpZ0ludC0+ZGlnaXQoZGlnaXRJbmRleCkpOworICAgICAgICBtYW50aXNzYSB8PSAoY3VycmVu
dERpZ2l0ID4+IChkaWdpdEJpdHMgLSBtYW50aXNzYUJpdHNVbnNldCkpOworICAgICAgICBtYW50
aXNzYUJpdHNVbnNldCAtPSBkaWdpdEJpdHM7CisgICAgfQorCisgICAgLy8gSWYgdGhlcmUgYXJl
IHVuY29uc3VtZWQgZGlnaXRzIGxlZnQsIHdlIG1heSBoYXZlIHRvIHJvdW5kLgorICAgIFJvdW5k
aW5nUmVzdWx0IHJvdW5kaW5nID0gZGVjaWRlUm91bmRpbmcoYmlnSW50LCBtYW50aXNzYUJpdHNV
bnNldCwgZGlnaXRJbmRleCwgY3VycmVudERpZ2l0KTsKKyAgICBpZiAocm91bmRpbmcgPT0gUm91
bmRpbmdSZXN1bHQ6OlJvdW5kVXAgfHwgKHJvdW5kaW5nID09IFJvdW5kaW5nUmVzdWx0OjpUaWUg
JiYgKG1hbnRpc3NhICYgMSkgPT0gMSkpIHsKKyAgICAgICAgKyttYW50aXNzYTsKKyAgICAgICAg
Ly8gSW5jcmVtZW50aW5nIHRoZSBtYW50aXNzYSBjYW4gb3ZlcmZsb3cgdGhlIG1hbnRpc3NhIGJp
dHMuIEluIHRoYXQgY2FzZSB0aGUgbmV3IG1hbnRpc3NhIHdpbGwgYmUgYWxsIHplcm8gKHBsdXMg
aGlkZGVuIGJpdCkuCisgICAgICAgIGlmICgobWFudGlzc2EgPj4gZG91YmxlUGh5c2ljYWxNYW50
aXNzYVNpemUpICE9IDApIHsKKyAgICAgICAgICAgIG1hbnRpc3NhID0gMDsKKyAgICAgICAgICAg
IGV4cG9uZW50Kys7CisgICAgICAgICAgICAvLyBJbmNyZW1lbnRpbmcgdGhlIGV4cG9uZW50IGNh
biBvdmVyZmxvdyB0b28uCisgICAgICAgICAgICBpZiAoZXhwb25lbnQgPiAxMDIzKQorICAgICAg
ICAgICAgICAgIHJldHVybiBqc0RvdWJsZU51bWJlcihzaWduID8gLXN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6aW5maW5pdHkoKSA6IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB1aW50NjRfdCBzaWduQml0ID0gc2ln
biA/IChzdGF0aWNfY2FzdDx1aW50NjRfdD4oMSkgPDwgNjMpIDogMDsKKyAgICBleHBvbmVudCA9
IChleHBvbmVudCArIDB4M2ZmKSA8PCBkb3VibGVQaHlzaWNhbE1hbnRpc3NhU2l6ZTsgLy8gMHgz
ZmYgaXMgZG91YmxlIGV4cG9uZW50IGJpYXMuCisgICAgdWludDY0X3QgZG91YmxlQml0cyA9IHNp
Z25CaXQgfCBleHBvbmVudCB8IG1hbnRpc3NhOworICAgIEFTU0VSVCgoZG91YmxlQml0cyAmIChz
dGF0aWNfY2FzdDx1aW50NjRfdD4oMSkgPDwgNjMpKSA9PSBzaWduQml0KTsKKyAgICBBU1NFUlQo
KGRvdWJsZUJpdHMgJiAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDB4N2ZmKSA8PCA1MikpID09IGV4
cG9uZW50KTsKKyAgICBBU1NFUlQoKGRvdWJsZUJpdHMgJiAoKHN0YXRpY19jYXN0PHVpbnQ2NF90
PigxKSA8PCA1MikgLSAxKSkgPT0gbWFudGlzc2EpOworICAgIHJldHVybiBqc051bWJlcihiaXR3
aXNlX2Nhc3Q8ZG91YmxlPihkb3VibGVCaXRzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggNDQyNjdiYzZiMzAw
MWRiZjNhYjYzZWMyODNmNjQ1MWE4ZDk2NjQ1Ni4uNGU5ZWVhODUzYjEwZjM2ZTJiNzM1NjJkMWMy
N2E4MDk5YTIxZjM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCaWdJbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5o
CkBAIC0yNTMsNiArMjUzLDE3IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2Vs
bCB7CiAgICAgICAgIHJldHVybiB0cnlDb252ZXJ0VG9CaWdJbnQzMihzaWduZWRSaWdodFNoaWZ0
SGVhcChnbG9iYWxPYmplY3QsIHgsIHkpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgSlNWYWx1ZSB0
b051bWJlckhlYXAoSlNCaWdJbnQqKTsKKyAgICBzdGF0aWMgSlNWYWx1ZSB0b051bWJlcihKU1Zh
bHVlIGJpZ0ludCkKKyAgICB7CisgICAgICAgIEFTU0VSVChiaWdJbnQuaXNCaWdJbnQoKSk7Cisj
aWYgVVNFKEJJR0lOVDMyKQorICAgICAgICBpZiAoYmlnSW50LmlzQmlnSW50MzIoKSkKKyAgICAg
ICAgICAgIHJldHVybiBqc051bWJlcihiaWdJbnQuYmlnSW50MzJBc0ludDMyKCkpOworI2VuZGlm
CisgICAgICAgIHJldHVybiB0b051bWJlckhlYXAoanNDYXN0PEpTQmlnSW50Kj4oYmlnSW50KSk7
CisgICAgfQorCiAgICAgRGlnaXQgZGlnaXQodW5zaWduZWQpOwogICAgIHZvaWQgc2V0RGlnaXQo
dW5zaWduZWQsIERpZ2l0KTsgLy8gVXNlIG9ubHkgd2hlbiBpbml0aWFsaXppbmcuCiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgSlNCaWdJbnQqIHJpZ2h0VHJpbShWTSYpOwpAQCAtMjY1LDYgKzI3Niw4
IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKICAgICBzdGF0
aWMgY29uc3RleHByIERpZ2l0IGhhbGZEaWdpdE1hc2sgPSAoMXVsbCA8PCBoYWxmRGlnaXRCaXRz
KSAtIDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4SW50ID0gMHg3RkZGRkZGRjsKKwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZG91YmxlUGh5c2ljYWxNYW50aXNzYVNpemUg
PSA1MjsKICAgICAKICAgICAvLyBUaGUgbWF4aW11bSBsZW5ndGggdGhhdCB0aGUgY3VycmVudCBp
bXBsZW1lbnRhdGlvbiBzdXBwb3J0cyB3b3VsZCBiZQogICAgIC8vIG1heEludCAvIGRpZ2l0Qml0
cy4gSG93ZXZlciwgd2UgdXNlIGEgbG93ZXIgbGltaXQgZm9yIG5vdywgYmVjYXVzZQpAQCAtMjkz
LDYgKzMwNiwxNCBAQCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAg
IERpZ2l0IGFic29sdXRlSW5wbGFjZVN1YihKU0JpZ0ludCogc3VidHJhaGVuZCwgdW5zaWduZWQg
c3RhcnRJbmRleCk7CiAgICAgdm9pZCBpbnBsYWNlUmlnaHRTaGlmdCh1bnNpZ25lZCBzaGlmdCk7
CiAKKyAgICBlbnVtIGNsYXNzIFJvdW5kaW5nUmVzdWx0IHsKKyAgICAgICAgUm91bmREb3duLAor
ICAgICAgICBUaWUsCisgICAgICAgIFJvdW5kVXAKKyAgICB9OworCisgICAgc3RhdGljIFJvdW5k
aW5nUmVzdWx0IGRlY2lkZVJvdW5kaW5nKEpTQmlnSW50KiwgaW50MzJfdCBtYW50aXNzYUJpdHNV
bnNldCwgaW50MzJfdCBkaWdpdEluZGV4LCB1aW50NjRfdCBjdXJyZW50RGlnaXQpOworCiAgICAg
ZW51bSBjbGFzcyBFeHRyYURpZ2l0c0hhbmRsaW5nIHsKICAgICAgICAgQ29weSwKICAgICAgICAg
U2tpcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IDc4NjE2NjBkNjBiZWI2M2QwMjU1NGE1ZmYzY2Y0MTA5NDY5MzY5NmMu
LjZjNmZiM2ExZTI3YThjMDQ5MDhiNWIyMGM3ZDY4YmExYTUzYTVmYjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTkw
LDggKzkwLDE5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKLSAgICBkb3VibGUgbiA9IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID8gY2FsbEZyYW1l
LT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpIDogMDsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBkb3VibGUg
biA9IDA7CisgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKSB7CisgICAgICAgIEpT
VmFsdWUgbnVtZXJpYyA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkudG9OdW1lcmlj
KGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisgICAgICAgIGlmIChudW1lcmljLmlzTnVtYmVyKCkpCisgICAgICAgICAgICBuID0gbnVtZXJp
Yy5hc051bWJlcigpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChudW1lcmlj
LmlzQmlnSW50KCkpOworICAgICAgICAgICAgbnVtZXJpYyA9IEpTQmlnSW50Ojp0b051bWJlcihu
dW1lcmljKTsKKyAgICAgICAgICAgIEFTU0VSVChudW1lcmljLmlzTnVtYmVyKCkpOworICAgICAg
ICAgICAgbiA9IG51bWVyaWMuYXNOdW1iZXIoKTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIEpT
T2JqZWN0KiBuZXdUYXJnZXQgPSBhc09iamVjdChjYWxsRnJhbWUtPm5ld1RhcmdldCgpKTsKICAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ld1RhcmdldCA9PSBjYWxsRnJhbWUtPmpzQ2FsbGVl
KCkKQEAgLTEwNyw3ICsxMTgsMTYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGcKIC8vIEVDTUEg
MTUuNy4yCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTnVtYmVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcighY2FsbEZyYW1lLT5h
cmd1bWVudENvdW50KCkgPyAwIDogY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051
bWJlcihnbG9iYWxPYmplY3QpKSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoIWNhbGxG
cmFtZS0+YXJndW1lbnRDb3VudCgpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKDApKTsKKyAgICBKU1ZhbHVlIG51bWVyaWMgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFy
Z3VtZW50KDApLnRvTnVtZXJpYyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CisgICAgaWYgKG51bWVyaWMuaXNOdW1iZXIoKSkKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShudW1lcmljKTsKKyAgICBBU1NFUlQobnVtZXJpYy5pc0JpZ0lu
dCgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQmlnSW50Ojp0b051bWJlcihudW1l
cmljKSk7CiB9CiAKIC8vIEVDTUEtMjYyIDIwLjEuMi4zCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0No
YW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY5NjkzZmQwNDYxYjM4ZjJiMGE3OGU5
ZDhiYmY1OTA3YjAyNDdlNWUuLjRhNDMyMjZhN2JiODAyZjZmM2EzMjljM2JlZjk0YmI3MzNhYjY0
NjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDQtMjcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBbSlNDXSBOdW1iZXJDb25zdHJ1Y3RvciBzaG91bGQgYWNjZXB0
IEJpZ0ludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEwODM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgKiBzdHJl
c3MvbnVtYmVyLWNvbnN0cnVjdG9yLWJpZ2ludC1kZmcuanM6IEFkZGVkLgorICAgICAgICAoc2hv
dWxkQmUpOgorICAgICAgICAoY29udmVydCk6CisgICAgICAgICogc3RyZXNzL251bWJlci1jb25z
dHJ1Y3Rvci1iaWdpbnQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAq
IHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisKIDIwMjAtMDQtMjcgIEtlaXRoIE1pbGxlciAg
PGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgc3RyZXNzL2dlbmVyYXRvci1jb250
YWluaW5nLWZvci1vZi1vbi1tYXAuanMgYW5kIHN0cmVzcy9nZW5lcmF0b3ItY29udGFpbmluZy1m
b3Itb2Ytb24tc2V0LmpzIHRpbWluZyBvdXQgb24gZGVidWcgSlNDIGJvdApkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvbnVtYmVyLWNvbnN0cnVjdG9yLWJpZ2ludC1kZmcuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9udW1iZXItY29uc3RydWN0b3ItYmlnaW50LWRmZy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWVj
YTMxZGY5YWNkMzY4YWYzNDYwNjgzOGRhZDdkMjFiOTQ2NjhlCi0tLSAvZGV2L251bGwKKysrIGIv
SlNUZXN0cy9zdHJlc3MvbnVtYmVyLWNvbnN0cnVjdG9yLWJpZ2ludC1kZmcuanMKQEAgLTAsMCAr
MSw1MyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChh
Y3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTog
JyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIGNvbnZlcnQoYmlnSW50KQoreworICAgIHJldHVy
biBOdW1iZXIoYmlnSW50KTsKK30KK25vSW5saW5lKGNvbnZlcnQpOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxkQmUoY29udmVydCgwbiksIDApOworICAgIHNo
b3VsZEJlKGNvbnZlcnQoMHg3ZmZmZmZmZm4pLCAweDdmZmZmZmZmKTsKKyAgICBzaG91bGRCZShj
b252ZXJ0KC0weDdmZmZmZmZmbiAtIDFuKSwgLTB4ODAwMDAwMDApOworfQorCitmb3IgKHZhciBp
ID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxkQmUoY29udmVydCgweDgwMDAwMDAwbiks
IDB4ODAwMDAwMDApOworICAgIHNob3VsZEJlKGNvbnZlcnQoMHg3ZmZmZmZmZm4gKyAxbiksIDB4
ODAwMDAwMDApOworICAgIHNob3VsZEJlKGNvbnZlcnQoMHg3ZmZmZmZmZm4gKyAybiksIDB4ODAw
MDAwMDEpOworICAgIHNob3VsZEJlKGNvbnZlcnQoLTB4N2ZmZmZmZmZuIC0gMm4pLCAtMHg4MDAw
MDAwMSk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBzaG91bGRC
ZShjb252ZXJ0KDB4MjAwMDAwMDAwMDAwMDBuKSwgOTAwNzE5OTI1NDc0MDk5Mik7CisgICAgc2hv
dWxkQmUoY29udmVydCgweDIwMDAwMDAwMDAwMDAwbiArIDFuKSwgOTAwNzE5OTI1NDc0MDk5Mik7
CisgICAgc2hvdWxkQmUoY29udmVydCgweDIwMDAwMDAwMDAwMDAwbiArIDJuKSwgOTAwNzE5OTI1
NDc0MDk5NCk7CisgICAgc2hvdWxkQmUoY29udmVydCgweDIwMDAwMDAwMDAwMDAwbiArIDNuKSwg
OTAwNzE5OTI1NDc0MDk5Nik7CisgICAgc2hvdWxkQmUoY29udmVydCgweDIwMDAwMDAwMDAwMDAw
biArIDRuKSwgOTAwNzE5OTI1NDc0MDk5Nik7CisKKyAgICBzaG91bGRCZShjb252ZXJ0KC0oMHgy
MDAwMDAwMDAwMDAwMG4pKSwgLTkwMDcxOTkyNTQ3NDA5OTIpOworICAgIHNob3VsZEJlKGNvbnZl
cnQoLSgweDIwMDAwMDAwMDAwMDAwbiArIDFuKSksIC05MDA3MTk5MjU0NzQwOTkyKTsKKyAgICBz
aG91bGRCZShjb252ZXJ0KC0oMHgyMDAwMDAwMDAwMDAwMG4gKyAybikpLCAtOTAwNzE5OTI1NDc0
MDk5NCk7CisgICAgc2hvdWxkQmUoY29udmVydCgtKDB4MjAwMDAwMDAwMDAwMDBuICsgM24pKSwg
LTkwMDcxOTkyNTQ3NDA5OTYpOworICAgIHNob3VsZEJlKGNvbnZlcnQoLSgweDIwMDAwMDAwMDAw
MDAwbiArIDRuKSksIC05MDA3MTk5MjU0NzQwOTk2KTsKKworICAgIHNob3VsZEJlKGNvbnZlcnQo
Mm4gKiogKDEwMjRuIC0gMW4pKSwgOC45ODg0NjU2NzQzMTE1OGUrMzA3KTsKKyAgICBzaG91bGRC
ZShjb252ZXJ0KDJuICoqICgxMDI0biAtIDFuKSksIDguOTg4NDY1Njc0MzExNThlKzMwNyk7Cisg
ICAgc2hvdWxkQmUoY29udmVydCgweDFmZmZmZmZmZmZmZmZmbiA8PCA5NzFuKSwgTnVtYmVyLk1B
WF9WQUxVRSk7CisgICAgc2hvdWxkQmUoY29udmVydCgweDIwMDAwMDAwMDAwMDAwbiA8PCA5NzFu
KSwgSW5maW5pdHkpOworICAgIHNob3VsZEJlKGNvbnZlcnQoMHgxZmZmZmZmZmZmZmZmZmZuIDw8
IDk2Nm4pLCA4Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworICAgIHNob3VsZEJlKGNvbnZlcnQoMHgz
ZmZmZmZmZmZmZmZmZm4gPDwgOTcwbiksIEluZmluaXR5KTsKKyAgICBzaG91bGRCZShjb252ZXJ0
KDB4M2ZmZmZmZmZmZmZmZmZuIDw8IDk2OW4pLCA4Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworCisg
ICAgc2hvdWxkQmUoY29udmVydCgtKDJuICoqICgxMDI0biAtIDFuKSkpLCAtOC45ODg0NjU2NzQz
MTE1OGUrMzA3KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KC0oMm4gKiogKDEwMjRuIC0gMW4pKSks
IC04Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworICAgIHNob3VsZEJlKGNvbnZlcnQoLTB4MWZmZmZm
ZmZmZmZmZmZuIDw8IDk3MW4pLCAtTnVtYmVyLk1BWF9WQUxVRSk7CisgICAgc2hvdWxkQmUoY29u
dmVydCgtMHgyMDAwMDAwMDAwMDAwMG4gPDwgOTcxbiksIC1JbmZpbml0eSk7CisgICAgc2hvdWxk
QmUoY29udmVydCgtMHgxZmZmZmZmZmZmZmZmZmZuIDw8IDk2Nm4pLCAtOC45ODg0NjU2NzQzMTE1
OGUrMzA3KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KC0weDNmZmZmZmZmZmZmZmZmbiA8PCA5NzBu
KSwgLUluZmluaXR5KTsKKyAgICBzaG91bGRCZShjb252ZXJ0KC0weDNmZmZmZmZmZmZmZmZmbiA8
PCA5NjluKSwgLTguOTg4NDY1Njc0MzExNThlKzMwNyk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9udW1iZXItY29uc3RydWN0b3ItYmlnaW50LmpzIGIvSlNUZXN0cy9zdHJlc3MvbnVt
YmVyLWNvbnN0cnVjdG9yLWJpZ2ludC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Y2VjNTM0Mjc3NDMwMTBlOTkx
MmM3ZWI0YmRiM2E1YTIyMWIyZWJkCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
bnVtYmVyLWNvbnN0cnVjdG9yLWJpZ2ludC5qcwpAQCAtMCwwICsxLDEwOCBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisK
K3Nob3VsZEJlKE51bWJlcigwbiksIDApOworCisvLyBBcm91bmQgSW50MzIgbWF4L21pbi4KK3No
b3VsZEJlKE51bWJlcigweDdmZmZmZmZmbiksIDB4N2ZmZmZmZmYpOworc2hvdWxkQmUoTnVtYmVy
KDB4ODAwMDAwMDBuKSwgMHg4MDAwMDAwMCk7CitzaG91bGRCZShOdW1iZXIoMHg3ZmZmZmZmZm4g
KyAxbiksIDB4ODAwMDAwMDApOworc2hvdWxkQmUoTnVtYmVyKDB4N2ZmZmZmZmZuICsgMm4pLCAw
eDgwMDAwMDAxKTsKK3Nob3VsZEJlKE51bWJlcigtMHg3ZmZmZmZmZm4gLSAxbiksIC0weDgwMDAw
MDAwKTsKK3Nob3VsZEJlKE51bWJlcigtMHg3ZmZmZmZmZm4gLSAybiksIC0weDgwMDAwMDAxKTsK
KworLy8gQXJvdW5kIEludDUyIG1heC9taW4uCitzaG91bGRCZShOdW1iZXIoMHgyMDAwMDAwMDAw
MDAwMG4pLCA5MDA3MTk5MjU0NzQwOTkyKTsKK3Nob3VsZEJlKE51bWJlcigweDIwMDAwMDAwMDAw
MDAwbiArIDFuKSwgOTAwNzE5OTI1NDc0MDk5Mik7CitzaG91bGRCZShOdW1iZXIoMHgyMDAwMDAw
MDAwMDAwMG4gKyAybiksIDkwMDcxOTkyNTQ3NDA5OTQpOworc2hvdWxkQmUoTnVtYmVyKDB4MjAw
MDAwMDAwMDAwMDBuICsgM24pLCA5MDA3MTk5MjU0NzQwOTk2KTsKK3Nob3VsZEJlKE51bWJlcigw
eDIwMDAwMDAwMDAwMDAwbiArIDRuKSwgOTAwNzE5OTI1NDc0MDk5Nik7CisKK3Nob3VsZEJlKE51
bWJlcigtKDB4MjAwMDAwMDAwMDAwMDBuKSksIC05MDA3MTk5MjU0NzQwOTkyKTsKK3Nob3VsZEJl
KE51bWJlcigtKDB4MjAwMDAwMDAwMDAwMDBuICsgMW4pKSwgLTkwMDcxOTkyNTQ3NDA5OTIpOwor
c2hvdWxkQmUoTnVtYmVyKC0oMHgyMDAwMDAwMDAwMDAwMG4gKyAybikpLCAtOTAwNzE5OTI1NDc0
MDk5NCk7CitzaG91bGRCZShOdW1iZXIoLSgweDIwMDAwMDAwMDAwMDAwbiArIDNuKSksIC05MDA3
MTk5MjU0NzQwOTk2KTsKK3Nob3VsZEJlKE51bWJlcigtKDB4MjAwMDAwMDAwMDAwMDBuICsgNG4p
KSwgLTkwMDcxOTkyNTQ3NDA5OTYpOworCisvLyBtYW50aXNzYSByb3VuZGluZy4KK3Nob3VsZEJl
KE51bWJlcigweDNmZmZmZmZmZmZmZmZmbiksIDE4MDE0Mzk4NTA5NDgxOTg0KTsKK3Nob3VsZEJl
KE51bWJlcigtMHgzZmZmZmZmZmZmZmZmZm4pLCAtMTgwMTQzOTg1MDk0ODE5ODQpOworc2hvdWxk
QmUoTnVtYmVyKDBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExMTExMTEx
MTExMTExMTExMTExMW4pLCAxNDQxMTUxODgwNzc5NTMwMjApOworc2hvdWxkQmUoTnVtYmVyKDBi
MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MW4pLCAxNDQxMTUxODgwNzU4NTU4NzApOworc2hvdWxkQmUoTnVtYmVyKDBiMTAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMG4pLCAxNDQxMTUx
ODgwNzU4NTU5NDApOworc2hvdWxkQmUoTnVtYmVyKDBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMW4pLCAxNDQxMTUxODgwNzU4NTU5NDAp
Oworc2hvdWxkQmUoTnVtYmVyKDBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMTAwMDAwMW4pLCAxNDQxMTUxODgwNzU4NTU5NDApOworc2hvdWxkQmUo
TnVtYmVyKDBiMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDFuKSwgNDUwMzU5OTYyNzM3MDQ5Nyk7CitzaG91bGRCZShOdW1iZXIoMGIxMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBuKSwgOTAwNzE5OTI1
NDc0MDk5NCk7CitzaG91bGRCZShOdW1iZXIoMGIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTFuKSwgOTAwNzE5OTI1NDc0MDk5Nik7CisKKy8vIEFy
b3VuZCBJbmZpbml0eS4KK3Nob3VsZEJlKE51bWJlcigybiAqKiAoMTAyNG4gLSAxbikpLCA4Ljk4
ODQ2NTY3NDMxMTU4ZSszMDcpOworc2hvdWxkQmUoTnVtYmVyKDJuICoqICgxMDI0biAtIDFuKSks
IDguOTg4NDY1Njc0MzExNThlKzMwNyk7CitzaG91bGRCZShOdW1iZXIoMHgxZmZmZmZmZmZmZmZm
Zm4gPDwgOTcxbiksIE51bWJlci5NQVhfVkFMVUUpOworc2hvdWxkQmUoTnVtYmVyKDB4MjAwMDAw
MDAwMDAwMDBuIDw8IDk3MW4pLCBJbmZpbml0eSk7CitzaG91bGRCZShOdW1iZXIoMHgxZmZmZmZm
ZmZmZmZmZmZuIDw8IDk2Nm4pLCA4Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpOworc2hvdWxkQmUoTnVt
YmVyKDB4M2ZmZmZmZmZmZmZmZmZuIDw8IDk3MG4pLCBJbmZpbml0eSk7CitzaG91bGRCZShOdW1i
ZXIoMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTY5biksIDguOTg4NDY1Njc0MzExNThlKzMwNyk7CisK
K3Nob3VsZEJlKE51bWJlcigtKDJuICoqICgxMDI0biAtIDFuKSkpLCAtOC45ODg0NjU2NzQzMTE1
OGUrMzA3KTsKK3Nob3VsZEJlKE51bWJlcigtKDJuICoqICgxMDI0biAtIDFuKSkpLCAtOC45ODg0
NjU2NzQzMTE1OGUrMzA3KTsKK3Nob3VsZEJlKE51bWJlcigtMHgxZmZmZmZmZmZmZmZmZm4gPDwg
OTcxbiksIC1OdW1iZXIuTUFYX1ZBTFVFKTsKK3Nob3VsZEJlKE51bWJlcigtMHgyMDAwMDAwMDAw
MDAwMG4gPDwgOTcxbiksIC1JbmZpbml0eSk7CitzaG91bGRCZShOdW1iZXIoLTB4MWZmZmZmZmZm
ZmZmZmZmbiA8PCA5NjZuKSwgLTguOTg4NDY1Njc0MzExNThlKzMwNyk7CitzaG91bGRCZShOdW1i
ZXIoLTB4M2ZmZmZmZmZmZmZmZmZuIDw8IDk3MG4pLCAtSW5maW5pdHkpOworc2hvdWxkQmUoTnVt
YmVyKC0weDNmZmZmZmZmZmZmZmZmbiA8PCA5NjluKSwgLTguOTg4NDY1Njc0MzExNThlKzMwNyk7
CisKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKDBuKSwgK25ldyBOdW1iZXIoMCkpOworCisvLyBBcm91
bmQgSW50MzIgbWF4L21pbi4KK3Nob3VsZEJlKCtuZXcgTnVtYmVyKDB4N2ZmZmZmZmZuKSwgK25l
dyBOdW1iZXIoMHg3ZmZmZmZmZikpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMHg4MDAwMDAwMG4p
LCArbmV3IE51bWJlcigweDgwMDAwMDAwKSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigweDdmZmZm
ZmZmbiArIDFuKSwgK25ldyBOdW1iZXIoMHg4MDAwMDAwMCkpOworc2hvdWxkQmUoK25ldyBOdW1i
ZXIoMHg3ZmZmZmZmZm4gKyAybiksICtuZXcgTnVtYmVyKDB4ODAwMDAwMDEpKTsKK3Nob3VsZEJl
KCtuZXcgTnVtYmVyKC0weDdmZmZmZmZmbiAtIDFuKSwgK25ldyBOdW1iZXIoLTB4ODAwMDAwMDAp
KTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0weDdmZmZmZmZmbiAtIDJuKSwgK25ldyBOdW1iZXIo
LTB4ODAwMDAwMDEpKTsKKworLy8gQXJvdW5kIEludDUyIG1heC9taW4uCitzaG91bGRCZSgrbmV3
IE51bWJlcigweDIwMDAwMDAwMDAwMDAwbiksICtuZXcgTnVtYmVyKDkwMDcxOTkyNTQ3NDA5OTIp
KTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKDB4MjAwMDAwMDAwMDAwMDBuICsgMW4pLCArbmV3IE51
bWJlcig5MDA3MTk5MjU0NzQwOTkyKSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigweDIwMDAwMDAw
MDAwMDAwbiArIDJuKSwgK25ldyBOdW1iZXIoOTAwNzE5OTI1NDc0MDk5NCkpOworc2hvdWxkQmUo
K25ldyBOdW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4gKyAzbiksICtuZXcgTnVtYmVyKDkwMDcxOTky
NTQ3NDA5OTYpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKDB4MjAwMDAwMDAwMDAwMDBuICsgNG4p
LCArbmV3IE51bWJlcig5MDA3MTk5MjU0NzQwOTk2KSk7CisKK3Nob3VsZEJlKCtuZXcgTnVtYmVy
KC0oMHgyMDAwMDAwMDAwMDAwMG4pKSwgK25ldyBOdW1iZXIoLTkwMDcxOTkyNTQ3NDA5OTIpKTsK
K3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0oMHgyMDAwMDAwMDAwMDAwMG4gKyAxbikpLCArbmV3IE51
bWJlcigtOTAwNzE5OTI1NDc0MDk5MikpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoLSgweDIwMDAw
MDAwMDAwMDAwbiArIDJuKSksICtuZXcgTnVtYmVyKC05MDA3MTk5MjU0NzQwOTk0KSk7CitzaG91
bGRCZSgrbmV3IE51bWJlcigtKDB4MjAwMDAwMDAwMDAwMDBuICsgM24pKSwgK25ldyBOdW1iZXIo
LTkwMDcxOTkyNTQ3NDA5OTYpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0oMHgyMDAwMDAwMDAw
MDAwMG4gKyA0bikpLCArbmV3IE51bWJlcigtOTAwNzE5OTI1NDc0MDk5NikpOworCisvLyBtYW50
aXNzYSByb3VuZGluZy4KK3Nob3VsZEJlKCtuZXcgTnVtYmVyKDB4M2ZmZmZmZmZmZmZmZmZuKSwg
K25ldyBOdW1iZXIoMTgwMTQzOTg1MDk0ODE5ODQpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0w
eDNmZmZmZmZmZmZmZmZmbiksICtuZXcgTnVtYmVyKC0xODAxNDM5ODUwOTQ4MTk4NCkpOworc2hv
dWxkQmUoK25ldyBOdW1iZXIoMGIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MTExMTExMTExMTExMTExMTExMTExbiksICtuZXcgTnVtYmVyKDE0NDExNTE4ODA3Nzk1MzAyMCkp
Oworc2hvdWxkQmUoK25ldyBOdW1iZXIoMGIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxbiksICtuZXcgTnVtYmVyKDE0NDExNTE4ODA3NTg1
NTg3MCkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMGIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAwbiksICtuZXcgTnVtYmVyKDE0NDExNTE4
ODA3NTg1NTk0MCkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMGIxMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAxbiksICtuZXcgTnVtYmVyKDE0
NDExNTE4ODA3NTg1NTk0MCkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMGIxMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAxbiksICtuZXcgTnVt
YmVyKDE0NDExNTE4ODA3NTg1NTk0MCkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMGIxMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMW4pLCArbmV3IE51
bWJlcig0NTAzNTk5NjI3MzcwNDk3KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigwYjEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMG4pLCArbmV3IE51
bWJlcig5MDA3MTk5MjU0NzQwOTk0KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigwYjEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMW4pLCArbmV3IE51
bWJlcig5MDA3MTk5MjU0NzQwOTk2KSk7CisKKy8vIEFyb3VuZCBJbmZpbml0eS4KK3Nob3VsZEJl
KCtuZXcgTnVtYmVyKDJuICoqICgxMDI0biAtIDFuKSksICtuZXcgTnVtYmVyKDguOTg4NDY1Njc0
MzExNThlKzMwNykpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMm4gKiogKDEwMjRuIC0gMW4pKSwg
K25ldyBOdW1iZXIoOC45ODg0NjU2NzQzMTE1OGUrMzA3KSk7CitzaG91bGRCZSgrbmV3IE51bWJl
cigweDFmZmZmZmZmZmZmZmZmbiA8PCA5NzFuKSwgK25ldyBOdW1iZXIoTnVtYmVyLk1BWF9WQUxV
RSkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoMHgyMDAwMDAwMDAwMDAwMG4gPDwgOTcxbiksICtu
ZXcgTnVtYmVyKEluZmluaXR5KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigweDFmZmZmZmZmZmZm
ZmZmZm4gPDwgOTY2biksICtuZXcgTnVtYmVyKDguOTg4NDY1Njc0MzExNThlKzMwNykpOworc2hv
dWxkQmUoK25ldyBOdW1iZXIoMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTcwbiksICtuZXcgTnVtYmVy
KEluZmluaXR5KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigweDNmZmZmZmZmZmZmZmZmbiA8PCA5
NjluKSwgK25ldyBOdW1iZXIoOC45ODg0NjU2NzQzMTE1OGUrMzA3KSk7CisKK3Nob3VsZEJlKCtu
ZXcgTnVtYmVyKC0oMm4gKiogKDEwMjRuIC0gMW4pKSksICtuZXcgTnVtYmVyKC04Ljk4ODQ2NTY3
NDMxMTU4ZSszMDcpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0oMm4gKiogKDEwMjRuIC0gMW4p
KSksICtuZXcgTnVtYmVyKC04Ljk4ODQ2NTY3NDMxMTU4ZSszMDcpKTsKK3Nob3VsZEJlKCtuZXcg
TnVtYmVyKC0weDFmZmZmZmZmZmZmZmZmbiA8PCA5NzFuKSwgK25ldyBOdW1iZXIoLU51bWJlci5N
QVhfVkFMVUUpKTsKK3Nob3VsZEJlKCtuZXcgTnVtYmVyKC0weDIwMDAwMDAwMDAwMDAwbiA8PCA5
NzFuKSwgK25ldyBOdW1iZXIoLUluZmluaXR5KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigtMHgx
ZmZmZmZmZmZmZmZmZmZuIDw8IDk2Nm4pLCArbmV3IE51bWJlcigtOC45ODg0NjU2NzQzMTE1OGUr
MzA3KSk7CitzaG91bGRCZSgrbmV3IE51bWJlcigtMHgzZmZmZmZmZmZmZmZmZm4gPDwgOTcwbiks
ICtuZXcgTnVtYmVyKC1JbmZpbml0eSkpOworc2hvdWxkQmUoK25ldyBOdW1iZXIoLTB4M2ZmZmZm
ZmZmZmZmZmZuIDw8IDk2OW4pLCArbmV3IE51bWJlcigtOC45ODg0NjU2NzQzMTE1OGUrMzA3KSk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggNTgwYmE3ZjU5Zjg3YmEzZGRlZTU1ZmY1
YWViMGMyZTdiZGI5OWFhOS4uMmMxNzk2YjM4ZDg1YzY1YzRhYWM4NThhMjU5MjYzNjU2Zjc4MWE1
OSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMTA2OCw5ICsxMDY4LDYgQEAgdGVz
dC9idWlsdC1pbnMvRnVuY3Rpb24vcHJvdG90eXBlL3RvU3RyaW5nL3VuaWNvZGUuanM6CiB0ZXN0
L2J1aWx0LWlucy9KU09OL3BhcnNlL3Jldml2ZXItb2JqZWN0LW5vbi1jb25maWd1cmFibGUtcHJv
cC1jcmVhdGUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1
ZSjCqzIywrssIMKrMsK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMjLCuywgwqsywrspIHRvIGJlIHRydWUnCi10ZXN0L2J1
aWx0LWlucy9OdW1iZXIvYmlnaW50LWNvbnZlcnNpb24uanM6Ci0gIGRlZmF1bHQ6ICJUeXBlRXJy
b3I6IENvbnZlcnNpb24gZnJvbSAnQmlnSW50JyB0byAnbnVtYmVyJyBpcyBub3QgYWxsb3dlZC4i
Ci0gIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiBDb252ZXJzaW9uIGZyb20gJ0JpZ0ludCcgdG8g
J251bWJlcicgaXMgbm90IGFsbG93ZWQuIgogdGVzdC9idWlsdC1pbnMvT2JqZWN0L2VudHJpZXMv
b3JkZXItYWZ0ZXItZGVmaW5lLXByb3BlcnR5LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBiXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAn
CiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbYiwgYV0gYW5kIFthLCBi
XSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiAnCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>