<?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>212383</bug_id>
          
          <creation_ts>2020-05-26 13:48:00 -0700</creation_ts>
          <short_desc>for-of should check the iterable is a JSArray for FastArray in DFG iterator_open</short_desc>
          <delta_ts>2020-06-03 00:53:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>myoki.crystal</cc>
    
    <cc>pmatos</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1656159</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-26 13:48:00 -0700</bug_when>
    <thetext>for-of should check the iterable is a JSArray for FastArray in DFG iterator_open</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656168</commentid>
    <comment_count>1</comment_count>
      <attachid>400273</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-26 14:00:53 -0700</bug_when>
    <thetext>Created attachment 400273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656239</commentid>
    <comment_count>2</comment_count>
      <attachid>400290</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-26 18:00:08 -0700</bug_when>
    <thetext>Created attachment 400290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656276</commentid>
    <comment_count>3</comment_count>
      <attachid>400304</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-26 20:15:43 -0700</bug_when>
    <thetext>Created attachment 400304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656277</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-26 20:19:03 -0700</bug_when>
    <thetext>rdar://problem/63269579</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656278</commentid>
    <comment_count>5</comment_count>
      <attachid>400305</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-26 20:21:10 -0700</bug_when>
    <thetext>Created attachment 400305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656469</commentid>
    <comment_count>6</comment_count>
      <attachid>400305</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-27 11:38:41 -0700</bug_when>
    <thetext>Comment on attachment 400305
Patch

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

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:445
&gt; +    if (classInfo-&gt;isSubClassOf(JSArray::info()))
&gt; +        return SpecArray | SpecDerivedArray;

this is a behavior change. Why?

Don&apos;t we do this specifically for the Array constructor function?

This also seems like a pessimization, since. we no longer return SpecArray when we&apos;re JSArray::info

&gt; Source/JavaScriptCore/runtime/JSCast.h:138
&gt; +    bool canCast = range.first &lt;= from-&gt;type() &amp;&amp; from-&gt;type() &lt;= range.last;

nit: this inequality exists in a few different places. Now that you&apos;re using a struct to abstract this range, why not add a method &quot;bool contains(JSType)&quot; on JSTypeRange and invoke that here and elsewhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656472</commentid>
    <comment_count>7</comment_count>
      <attachid>400305</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-27 11:41:38 -0700</bug_when>
    <thetext>Comment on attachment 400305
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:445
&gt;&gt; +        return SpecArray | SpecDerivedArray;
&gt; 
&gt; this is a behavior change. Why?
&gt; 
&gt; Don&apos;t we do this specifically for the Array constructor function?
&gt; 
&gt; This also seems like a pessimization, since. we no longer return SpecArray when we&apos;re JSArray::info

It&apos;s just incorrect. Array.prototype is a subclass of JSArray::info. If you want to check for only JSArray then you&apos;d need a different operation. 

The existing code will happily let Array.prototype through CheckSubClass (now CheckJSCast).

&gt;&gt; Source/JavaScriptCore/runtime/JSCast.h:138
&gt;&gt; +    bool canCast = range.first &lt;= from-&gt;type() &amp;&amp; from-&gt;type() &lt;= range.last;
&gt; 
&gt; nit: this inequality exists in a few different places. Now that you&apos;re using a struct to abstract this range, why not add a method &quot;bool contains(JSType)&quot; on JSTypeRange and invoke that here and elsewhere?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656512</commentid>
    <comment_count>8</comment_count>
      <attachid>400305</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-27 12:12:17 -0700</bug_when>
    <thetext>Comment on attachment 400305
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:445
&gt;&gt;&gt; +        return SpecArray | SpecDerivedArray;
&gt;&gt; 
&gt;&gt; this is a behavior change. Why?
&gt;&gt; 
&gt;&gt; Don&apos;t we do this specifically for the Array constructor function?
&gt;&gt; 
&gt;&gt; This also seems like a pessimization, since. we no longer return SpecArray when we&apos;re JSArray::info
&gt; 
&gt; It&apos;s just incorrect. Array.prototype is a subclass of JSArray::info. If you want to check for only JSArray then you&apos;d need a different operation. 
&gt; 
&gt; The existing code will happily let Array.prototype through CheckSubClass (now CheckJSCast).

This isn&apos;t right. This function&apos;s job wasn&apos;t to represent the type system. Maybe we should make a version that does represent the type system.

But this is saying what we should speculate, now what might be allowed to flow through.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656515</commentid>
    <comment_count>9</comment_count>
      <attachid>400305</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-27 12:16:10 -0700</bug_when>
    <thetext>Comment on attachment 400305
Patch

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

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:438
&gt; +    if (classInfo-&gt;isSubClassOf(JSString::info()))
&gt;          return SpecString;

I think you can have == here still,
and in the else, add an assert that isSubclassOf is false.

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:463
&gt; +    if (classInfo-&gt;isSubClassOf(StringObject::info()))

my guess is now we&apos;re introducing OSR exit loops here for StringPrototype and its use with shouldSpeculateStringObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656580</commentid>
    <comment_count>10</comment_count>
      <attachid>400381</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-27 14:21:48 -0700</bug_when>
    <thetext>Created attachment 400381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656672</commentid>
    <comment_count>11</comment_count>
      <attachid>400381</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-27 16:40:11 -0700</bug_when>
    <thetext>Comment on attachment 400381
Patch

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

Mostly LGTM, but I found a bug

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:488
&gt; +

nit: remove extra new line

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:530
&gt; +    if (structure-&gt;typeInfo().type() == ArrayType)
&gt; +        return SpecArray;
&gt; +    if (structure-&gt;typeInfo().type() == StringObjectType)
&gt; +        return SpecStringObject;

can you turn all these ifs into a helper lambda, and capture the result JSType, and then add a debug assert that speculationFromClassInfoInheritance is a supertype of whatever we return here?

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.h:527
&gt; +// ASSERT(!c-&gt;inherits(classInfo) || speculationChecked(speculationFromCell(c), speculationFromClassInfoInheritance(classInfo)));

can you add a form of this assert as I propose above

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:3520
&gt; +                    ASSERT(classInfo-&gt;inheritsJSTypeRange-&gt;first &lt;= constant.asCell()-&gt;type() &amp;&amp; constant.asCell()-&gt;type() &lt;= classInfo-&gt;inheritsJSTypeRange-&gt;last);

I still think we should add a helper for this as we&apos;re now dealing with a struct.

Each call site shouldn&apos;t have to worry about if the bounds are inclusive or not, let&apos;s abstract it into the helper

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:13941
&gt; +            LValue hasType = isCellWithType(cell, classInfo-&gt;inheritsJSTypeRange-&gt;first, classInfo-&gt;inheritsJSTypeRange-&gt;last);

You&apos;re misunderstanding what this function is doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656729</commentid>
    <comment_count>12</comment_count>
      <attachid>400419</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-27 19:00:16 -0700</bug_when>
    <thetext>Created attachment 400419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656746</commentid>
    <comment_count>13</comment_count>
      <attachid>400423</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-27 19:58:44 -0700</bug_when>
    <thetext>Created attachment 400423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656931</commentid>
    <comment_count>14</comment_count>
      <attachid>400423</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-28 11:08:09 -0700</bug_when>
    <thetext>Comment on attachment 400423
Patch

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

r=me

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:488
&gt; +

extra space

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:491
&gt; +    if (classInfo-&gt;isSubClassOf(JSString::info()))
&gt; +        return SpecString;

this can still be an == with an assert that if == is false then isSubClassOf is also false

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:536
&gt; +    SpeculatedType classInfoTypes = speculationFromClassInfoInheritance(structure-&gt;classInfo());
&gt; +    ASSERT(!filteredResult || isSubtypeSpeculation(filteredResult, classInfoTypes));

I wouldn&apos;t call this unconditionally. Just branch on filtered result, and if non zero, debug assert.

I suspect the compiler isn&apos;t smart enough to not do this function invocation when !!filteredResult

&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:538
&gt; +    // Fallback to what ClassInfo tells us if we don&apos;t have something more refined.

remove this comment, it&apos;s obvious from reading the code

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:998
&gt; +        return branchIfType(cellGPR, JSTypeRange { type, type });

why not just make JSTypeRange have a constructor from JSType,  and then you wouldn&apos;t need this variant anymore?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656941</commentid>
    <comment_count>15</comment_count>
      <attachid>400423</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-28 11:33:51 -0700</bug_when>
    <thetext>Comment on attachment 400423
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:488
&gt;&gt; +
&gt; 
&gt; extra space

Removed.

&gt;&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:491
&gt;&gt; +        return SpecString;
&gt; 
&gt; this can still be an == with an assert that if == is false then isSubClassOf is also false

Done.

&gt;&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:536
&gt;&gt; +    ASSERT(!filteredResult || isSubtypeSpeculation(filteredResult, classInfoTypes));
&gt; 
&gt; I wouldn&apos;t call this unconditionally. Just branch on filtered result, and if non zero, debug assert.
&gt; 
&gt; I suspect the compiler isn&apos;t smart enough to not do this function invocation when !!filteredResult

Did some refactoring now this function is:

SpeculatedType speculationFromStructure(Structure* structure)
{
    SpeculatedType filteredResult = SpecNone;
    if (structure-&gt;typeInfo().type() == StringType)
        filteredResult = SpecString;
    else if (structure-&gt;typeInfo().type() == SymbolType)
        filteredResult = SpecSymbol;
    else if (structure-&gt;typeInfo().type() == HeapBigIntType)
        filteredResult = SpecHeapBigInt;
    else if (structure-&gt;typeInfo().type() == DerivedArrayType)
        filteredResult = SpecDerivedArray;
    else if (structure-&gt;typeInfo().type() == ArrayType)
        filteredResult = SpecArray;
    else if (structure-&gt;typeInfo().type() == StringObjectType)
        filteredResult = SpecStringObject;
    else
        return speculationFromClassInfoInheritance(structure-&gt;classInfo());

    ASSERT(filteredResult);
    ASSERT(isSubtypeSpeculation(filteredResult, speculationFromClassInfoInheritance(structure-&gt;classInfo())));
    return filteredResult;
}

&gt;&gt; Source/JavaScriptCore/bytecode/SpeculatedType.cpp:538
&gt;&gt; +    // Fallback to what ClassInfo tells us if we don&apos;t have something more refined.
&gt; 
&gt; remove this comment, it&apos;s obvious from reading the code

Done.

&gt;&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:998
&gt;&gt; +        return branchIfType(cellGPR, JSTypeRange { type, type });
&gt; 
&gt; why not just make JSTypeRange have a constructor from JSType,  and then you wouldn&apos;t need this variant anymore?

I think you can&apos;t aggregate initialize JSTypeRange if you have any user-defined constructors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656942</commentid>
    <comment_count>16</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-28 11:38:54 -0700</bug_when>
    <thetext>Committed r262252: &lt;https://trac.webkit.org/changeset/262252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658648</commentid>
    <comment_count>17</comment_count>
    <who name="Minh Tran">myoki.crystal</who>
    <bug_when>2020-06-03 00:53:35 -0700</bug_when>
    <thetext>*** Bug 212185 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400273</attachid>
            <date>2020-05-26 14:00:53 -0700</date>
            <delta_ts>2020-05-26 18:00:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212383-20200526140052.patch</filename>
            <type>text/plain</type>
            <size>32187</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NzNiMWJhNTc5MTI1OTVlNDIzYmQzNWNlYWU0MzJiZTE3ZDllMWY0Li4wN2JlMzc2MjViYjBlYTRm
Mjg4MDNhYzZmMTM2MTA0Y2Y1NjdjNWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMC0wNS0yNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBpcyBhIEpT
QXJyYXkgZm9yIEZhc3RBcnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1
ZSB3aGVyZSB3ZSBkaWRuJ3QgY2hlY2sgdGhhdCB0aGUgaXRlcmFibGUgb3BlcmFuZCB0bworICAg
ICAgICBpdGVyYXRvcl9vcGVuIHdhcyBhIEpTQXJyYXkgd2hlbiBsb3dlcmluZyB0aGUgRmFzdEFy
cmF5IG9ubHkgdmFyaWFudCBvZiB0aGUgYnl0ZWNvZGUgdG8gdGhlIERGRy4KKyAgICAgICAgVGhp
cyBtZWFudCB3ZSB3b3VsZCBPU1IgZXhpdCBhdCB0aGUgaXRlcmF0b3JfbmV4dCdzIGxvd2VyaW5n
IHRoZW4gYXNzZXJ0aW9uIGZhaWx1cmUgaW4gdGhlCisgICAgICAgIGNoZWNrcG9pbnQgT1NSIGV4
aXQgaGVscGVyLiBUbyBtYWtlIHRoaXMgd29yaywgdGhpcyBwYXRjaCBleHRlbmRzIChhbmQgcmVu
YW1lcyBmcm9tIENoZWNrU3ViQ2xhc3MpCisgICAgICAgIENoZWNrSlNDYXN0IHRvIHVzZSB0aGUg
c2FtZSBKU1R5cGUgaW5mb3JtYXRpb24gdGhhdCB3ZSB1c2UgZm9yIHRoZSBqc0Nhc3QgZnVuY3Rp
b24uIEluIG9yZGVyIHRvCisgICAgICAgIGdldCB0aGUgSlNUeXBlIHJhbmdlIGZyb20gYSBDbGFz
c0luZm8qIHRoZSBtYWNybyB0aGF0IGF1dG9nZW5lcmF0ZXMgTWV0aG9kVGFibGUgbm93IGFsc28g
ZmlsbHMKKyAgICAgICAgYSBPcHRpb25hbDxKU1R5cGVSYW5nZT4gaW50byB0aGUgQ2xhc3NJbmZv
IGFzIHdlbGwuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVU
eXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZURPTUpJVEdldHRl
cik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAg
ICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6
ZSk6CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAgICAg
ICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAg
ICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjphdHRlbXB0VG9N
YWtlQ2FsbERPTSk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBDaGVja0pT
Q2FzdCk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBDaGVja1N1YkNsYXNz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6Omhhc0NsYXNzSW5mbyBjb25zdCk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4
ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0pTQ2FzdCk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja1N1YkNsYXNzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAg
ICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZUNoZWNrSlNDYXN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MpOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvQ2xhc3NJbmZvLmg6CisgICAgICAgICogcnVudGltZS9KU0Nhc3QuaDoKKyAgICAgICAg
KEpTQzo6SlNDYXN0aW5nSGVscGVyczo6aW5oZXJpdHNKU1R5cGVJbXBsKToKKyAgICAgICAgKiB0
b29scy9KU0RvbGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVET01KSVRD
aGVja0pTQ2FzdE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTRG9sbGFyVk06OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVET01KSVRDaGVja1N1YkNsYXNzT2Jq
ZWN0KTogRGVsZXRlZC4KKwogMjAyMC0wNS0yMiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBpbl9ieV92YWwgaW5zaWRlIHN0cnVjdHVyZSBwcm9wZXJ0eSBmb3It
aW4gbG9vcCBzaG91bGQgdXNlIGFuIG9wY29kZSBsaWtlIGhhc19zdHJ1Y3R1cmVfcHJvcGVydHkg
YnV0IGZvciAiaW4iCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCmluZGV4IDNjZjgzNDBhOTM3ZTY4MWJjMTM1Mjc1MWRhZTkwOWViMDdlZDM0
OTkuLmY3NmZlYTZkMzMzMmMzMzQ5MDEyYTdkYzBhZWZiN2Y1NTgzZDdlYmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMjAtMDUtMjYgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CisKKyAgICAgICAgZm9yLW9mIHNob3VsZCBjaGVjayB0aGUgaXRlcmFibGUgaXMgYSBKU0Fy
cmF5IGZvciBGYXN0QXJyYXkgaW4gREZHIGl0ZXJhdG9yX29wZW4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjM4MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9wdGlvbmFsIHNob3VsZCBiZSBhYmxlIHRv
IGNvcHkvbW92ZSBjb25zdHJ1Y3RvciBpdHNlbGYgYXMgbG9uZyBhcyA8VD4gaXMKKyAgICAgICAg
dHJpdmlhbGx5IGNvcHlhYmxlLiBUaGlzIGxldHMgdXMgY29weSBPcHRpb25hbHMgaW50byBjb25z
dCBnbG9iYWxzIHdpdGhvdXQKKyAgICAgICAgZ2xvYmFsIGNvbnN0cnVjdG9ycy4KKworICAgICAg
ICAqIHd0Zi9PcHRpb25hbC5oOgorICAgICAgICAoV1RGOjpPcHRpb25hbDo6T3B0aW9uYWwpOgor
CiAyMDIwLTA1LTIyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBb
QXBwbGUgUGF5XSBBZGQgbmV3IEFwcGxlUGF5SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uIG1lbWJl
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBhNTljOWM5Zjg3Mzc4OWE5MmU4NzU1MjRiZjIzOTJjZDk5NDIxZThi
Li40NDM2ODk0YzNhODkyNjBlZDNlMzBkMGYxNmZjNWY4NWEwZGY4OGM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMjAtMDUtMjYgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBh
cHBsZS5jb20+CisKKyAgICAgICAgZm9yLW9mIHNob3VsZCBjaGVjayB0aGUgaXRlcmFibGUgaXMg
YSBKU0FycmF5IGZvciBGYXN0QXJyYXkgaW4gREZHIGl0ZXJhdG9yX29wZW4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjM4MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBjb21tZW50IGZvciBKU0Mg
cmVuYW1pbmcuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKwogMjAyMC0wNS0yMiAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgd2UgY2xlYW4g
dXAgQ0ZUaW1lclJlZnMgd2hlbiBkZXN0cm95aW5nIHNjcm9sbGluZyB0cmVlIG5vZGVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmgKaW5kZXggNWZjMTk4MzA1Y2Y0OWQ4MDc1MTc4ZGQxNTUzY2Y0ZWQ4NzViMzEz
NC4uZDE0NDU1MDRkNmIzMzBjMGE2NDk4OWFmODRlYWJmZDNhZWJkNzM1NiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaApAQCAtMzUxMSwxMCArMzUxMSwxMyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQog
ICAgICAgICAgICAgZGlkRm9sZENsb2JiZXJTdHJ1Y3R1cmVzKCk7CiAgICAgICAgIGNsZWFyRm9y
Tm9kZShub2RlKTsgLy8gVGhlIHJlc3VsdCBpcyBub3QgYSBKUyB2YWx1ZS4KICAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBDaGVja1N1YkNsYXNzOiB7CisgICAgY2FzZSBDaGVja0pTQ2FzdDogewor
ICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbyA9IG5vZGUtPmNsYXNzSW5mbygpOwog
ICAgICAgICBKU1ZhbHVlIGNvbnN0YW50ID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUo
KTsKICAgICAgICAgaWYgKGNvbnN0YW50KSB7Ci0gICAgICAgICAgICBpZiAoY29uc3RhbnQuaXND
ZWxsKCkgJiYgY29uc3RhbnQuYXNDZWxsKCktPmluaGVyaXRzKG1fdm0sIG5vZGUtPmNsYXNzSW5m
bygpKSkgeworICAgICAgICAgICAgaWYgKGNvbnN0YW50LmlzQ2VsbCgpICYmIGNvbnN0YW50LmFz
Q2VsbCgpLT5pbmhlcml0cyhtX3ZtLCBjbGFzc0luZm8pKSB7CisgICAgICAgICAgICAgICAgaWYg
KGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5nZSkKKyAgICAgICAgICAgICAgICAgICAgQVNT
RVJUKGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5nZS0+Zmlyc3QgPD0gY29uc3RhbnQuYXND
ZWxsKCktPnR5cGUoKSAmJiBjb25zdGFudC5hc0NlbGwoKS0+dHlwZSgpIDw9IGNsYXNzSW5mby0+
aW5oZXJpdHNKU1R5cGVSYW5nZS0+bGFzdCk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRT
aG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGNv
bnN0YW50KTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM1MjMsMTAgKzM1MjYsMTAgQEAg
Ym9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVj
dHModW5zaWduZWQgY2xvYmJlckxpbWkKIAogICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9
IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpOwogCi0gICAgICAgIGlmICh2YWx1ZS5tX3N0cnVjdHVy
ZS5pc1N1YkNsYXNzT2Yobm9kZS0+Y2xhc3NJbmZvKCkpKQorICAgICAgICBpZiAodmFsdWUubV9z
dHJ1Y3R1cmUuaXNTdWJDbGFzc09mKGNsYXNzSW5mbykpCiAgICAgICAgICAgICBtX3N0YXRlLnNl
dFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKIAotICAgICAgICBmaWx0ZXJDbGFzc0lu
Zm8odmFsdWUsIG5vZGUtPmNsYXNzSW5mbygpKTsKKyAgICAgICAgZmlsdGVyQ2xhc3NJbmZvKHZh
bHVlLCBjbGFzc0luZm8pOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDYWxsRE9N
R2V0dGVyOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCmluZGV4IGNkZWMxODZmMTU5NWQwMTEyOGJhMDAwMzQ2MWJiZGUzZjJiMDllMmUuLjdk
MWU0MzYxY2IzMDdkYjE0YWVhZWU5ZDYyYWQwNDRkNmQzOWI5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zODcyLDcgKzM4NzIs
NyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVET01KSVRHZXR0ZXIoT3BlcmFuZCByZXN1
bHQsIGNvbnN0IEdldEJ5SWRWYXJpYW50JiB2YQogICAgIGFkZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1
cmUsIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldCh2YXJpYW50LnN0cnVjdHVyZVNldCgp
KSksIHRoaXNOb2RlKTsKICAgICAKICAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBlbWl0IENoZWNr
SXNDb25zdGFudCB0aGluZ3kgaGVyZS4gV2hlbiB0aGUgY3VzdG9tIGFjY2Vzc29yIGlzIHJlcGxh
Y2VkIHRvIGRpZmZlcmVudCBvbmUsIFN0cnVjdHVyZSB0cmFuc2l0aW9uIG9jY3Vycy4KLSAgICBh
ZGRUb0dyYXBoKENoZWNrU3ViQ2xhc3MsIE9wSW5mbyhkb21BdHRyaWJ1dGUtPmNsYXNzSW5mbyks
IHRoaXNOb2RlKTsKKyAgICBhZGRUb0dyYXBoKENoZWNrSlNDYXN0LCBPcEluZm8oZG9tQXR0cmli
dXRlLT5jbGFzc0luZm8pLCB0aGlzTm9kZSk7CiAgICAgCiAgICAgYm9vbCB3YXNTZWVuSW5KSVQg
PSB0cnVlOwogICAgIEdldEJ5U3RhdHVzKiBzdGF0dXMgPSBtX2dyYXBoLm1fcGxhbi5yZWNvcmRl
ZFN0YXR1c2VzKCkuYWRkR2V0QnlTdGF0dXMoY3VycmVudENvZGVPcmlnaW4oKSwgR2V0QnlTdGF0
dXMoR2V0QnlTdGF0dXM6OkN1c3RvbSwgd2FzU2VlbkluSklUKSk7CkBAIC02NzQxLDkgKzY3NDEs
MTAgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAg
ICAgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGdsb2JhbE9iamVjdC0+YXJyYXlQcm90
b1ZhbHVlc0Z1bmN0aW9uQ29uY3VycmVudGx5KCksICJUaGUgb25seSB3YXkgd2UgY291bGQgaGF2
ZSBzZWVuIEZhc3RBcnJheSBpcyBpZiB3ZSBzYXcgdGhpcyBmdW5jdGlvbiBpbiB0aGUgTExJbnQv
QmFzZWxpbmUgc28gdGhlIGl0ZXJhdG9yIGZ1bmN0aW9uIHNob3VsZCBiZSBhbGxvY2F0ZWQuIik7
CiAgICAgICAgICAgICAgICAgRnJvemVuVmFsdWUqIGZyb3plblN5bWJvbEl0ZXJhdG9yRnVuY3Rp
b24gPSBtX2dyYXBoLmZyZWV6ZShnbG9iYWxPYmplY3QtPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlv
bkNvbmN1cnJlbnRseSgpKTsKICAgICAgICAgICAgICAgICBudW1iZXJPZlJlbWFpbmluZ01vZGVz
LS07Ci0gICAgICAgICAgICAgICAgaWYgKCFudW1iZXJPZlJlbWFpbmluZ01vZGVzKQorICAgICAg
ICAgICAgICAgIGlmICghbnVtYmVyT2ZSZW1haW5pbmdNb2RlcykgewogICAgICAgICAgICAgICAg
ICAgICBhZGRUb0dyYXBoKENoZWNrSXNDb25zdGFudCwgT3BJbmZvKGZyb3plblN5bWJvbEl0ZXJh
dG9yRnVuY3Rpb24pLCBzeW1ib2xJdGVyYXRvcik7Ci0gICAgICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tKU0Nhc3QsIE9wSW5mbyhKU0FycmF5
OjppbmZvKCkpLCBnZXQoYnl0ZWNvZGUubV9pdGVyYWJsZSkpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIGZhc3RBcnJheUJsb2NrID0g
YWxsb2NhdGVVbnRhcmdldGFibGVCbG9jaygpOwogICAgICAgICAgICAgICAgICAgICBnZW5lcmlj
QmxvY2sgPSBhbGxvY2F0ZVVudGFyZ2V0YWJsZUJsb2NrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMDQwMWFjMWUzNmZiNzY4MGM3MmViN2Q2ODRh
YWU2ODYxOTllZDFiZi4uMzUxZWMyZDQ3NjkzOTdjYjA5OWFjMzkyODBiNGVjOWQzMjU0OTY3YiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTExODAsNyAr
MTE4MCw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0
IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihIZWFwTG9jYXRp
b24oQnV0dGVyZmx5TG9jLCBKU09iamVjdF9idXR0ZXJmbHksIG5vZGUtPmNoaWxkMSgpKSwgTGF6
eU5vZGUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAKLSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6
CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2Rl
LT5jbGFzc0luZm8oKSkpOwogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggMmRjZWVi
YTExMDg5ZGEyZTcwZDM3Y2JmZTZhNTNjOWY1ZjcyM2YxOC4uYWYxZDQ0MDA4ZDg3MjhjN2Q1NzE3
MmE5YTA1ZGRmNTI1ZWJmYmYzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBjYXNlIENoZWNrU3ViQ2xhc3M6IHsKKyAgICAgICAgICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6IHsK
ICAgICAgICAgICAgICAgICBKU1ZhbHVlIGNvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUt
PmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICAgICAgICAgIGlmIChjb25zdGFudCkgewogICAg
ICAgICAgICAgICAgICAgICBpZiAoY29uc3RhbnQuaXNDZWxsKCkgJiYgY29uc3RhbnQuYXNDZWxs
KCktPmluaGVyaXRzKG1fZ3JhcGgubV92bSwgbm9kZS0+Y2xhc3NJbmZvKCkpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNGVkYmIxZjVmYTRhZDY1ZjYzMWU3
OGZhZDRmYzUyMDMxOTc5YzZmZS4uNjljNTAxMGU5YTMwMmQ1YmUyYzQyMDMxZDQ2YWY1ODUxZjk1
OWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTE0LDcg
KzExNCw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNl
IENoZWNrU3RydWN0dXJlSW1tZWRpYXRlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBj
YXNlIEdldEJ1dHRlcmZseToKLSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6CisgICAgY2FzZSBDaGVj
a0pTQ2FzdDoKICAgICBjYXNlIENoZWNrQXJyYXk6CiAgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0
eToKICAgICBjYXNlIENoZWNrTmV1dGVyZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdGaXh1cFBoYXNlLmNwcAppbmRleCA1ODUyZmMxYjYwOGUwMDE5MmUxYzAyNTJmNzk0MzVkNjFi
NTA1NWQ0Li4zMDBkOTVjNGQwOTljZjkwNzY1MjJiZTkxMmRlOThkZjBjZTJmNTFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTI1NDEsOCArMjU0
MSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAg
IGNhc2UgQ2hlY2tTdWJDbGFzczogewotICAgICAgICAgICAgZml4dXBDaGVja1N1YkNsYXNzKG5v
ZGUpOworICAgICAgICBjYXNlIENoZWNrSlNDYXN0OiB7CisgICAgICAgICAgICBmaXh1cENoZWNr
SlNDYXN0KG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNDAzNSwx
NCArNDAzNSwxNCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgTm9kZSogdGhpc05v
ZGUgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLm5vZGUoKTsKLSAgICAgICAgTm9kZSog
Y2hlY2tTdWJDbGFzcyA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ss
IFNwZWNOb25lLCBDaGVja1N1YkNsYXNzLCBub2RlLT5vcmlnaW4sIE9wSW5mbyhzaWduYXR1cmUt
PmNsYXNzSW5mbyksIEVkZ2UodGhpc05vZGUpKTsKKyAgICAgICAgTm9kZSogY2hlY2tTdWJDbGFz
cyA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNOb25lLCBD
aGVja0pTQ2FzdCwgbm9kZS0+b3JpZ2luLCBPcEluZm8oc2lnbmF0dXJlLT5jbGFzc0luZm8pLCBF
ZGdlKHRoaXNOb2RlKSk7CiAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0NhbGxET00obV9ncmFwaCk7
Ci0gICAgICAgIGZpeHVwQ2hlY2tTdWJDbGFzcyhjaGVja1N1YkNsYXNzKTsKKyAgICAgICAgZml4
dXBDaGVja0pTQ2FzdChjaGVja1N1YkNsYXNzKTsKICAgICAgICAgZml4dXBDYWxsRE9NKG5vZGUp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICB2b2lkIGZpeHVwQ2hlY2tTdWJD
bGFzcyhOb2RlKiBub2RlKQorICAgIHZvaWQgZml4dXBDaGVja0pTQ2FzdChOb2RlKiBub2RlKQog
ICAgIHsKICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCBkMGFjYTAxZDNkZTA3NjkyZTJlYzI2
OTk0YjZkMTg1NWZkMWM2MDAyLi4yMjQ3Mzc2NWZiN2ZhYTIyYmZiMjc1ZjljNzVkNGVmYTI3Y2Vj
YmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMjk0NSw3ICsyOTQ1LDcg
QEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNDbGFzc0luZm8oKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tTdWJDbGFzczsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0g
Q2hlY2tKU0Nhc3Q7CiAgICAgfQogCiAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDQzYjUzZTZhOTRlYzZl
YTljMjIwMzMzYzcyNGJjZGZjZjljY2ViODAuLjQ3ODk2Mjg2MjY3NjY2YzVkZjRhODk4NjBjZTY4
YWMyMTgwMTlhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAg
LTI4MCw3ICsyODAsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFj
cm8oQ2hlY2tJbkJvdW5kcywgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgXAogICAg
IG1hY3JvKENoZWNrSWRlbnQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1R5
cGVJbmZvRmxhZ3MsIE5vZGVNdXN0R2VuZXJhdGUpIC8qIFRha2VzIGFuIE9wSW5mbyB3aXRoIHRo
ZSBmbGFncyB5b3Ugd2FudCB0byB0ZXN0IGFyZSBzZXQgKi9cCi0gICAgbWFjcm8oQ2hlY2tTdWJD
bGFzcywgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKENoZWNrSlNDYXN0LCBOb2RlTXVz
dEdlbmVyYXRlKSAvKiBUaGlzIGlzIHRoZSBzYW1lIGFzIGpzQ2FzdCBidXQgYXMgYSBzcGVjdWxh
dGlvbiByYXRoZXIgdGhhbiBhc3NlcnRpb24gKi9cCiAgICAgbWFjcm8oUGFyc2VJbnQsIE5vZGVN
dXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhHZXRQcm90b3R5cGVPZiwg
Tm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKE9iamVjdENyZWF0
ZSwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cAppbmRleCBmODBmYTg2NjQ0Y2UzN2UxMWQxNTU0ODM4NjFjYWRiN2Y1MDJlYjlmLi4zZGIwZGQz
NjIzOWI1OTQxMWVkNjQ1NGFlMThlOTlmMDE4MWIyNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cApAQCAtMTA2MCw3ICsxMDYwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAKLSAgICAgICAgY2FzZSBDaGVja1N1YkNsYXNzOgorICAgICAgICBjYXNlIENoZWNr
SlNDYXN0OgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBTa2lwU2NvcGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGIzYTgw
OWU3MmE0NTEwM2IwNDBkOTBmMjZhNDQxMTgzNGJlOTY2MDkuLjY3MDc4ZmU4OTRmYjI5NjRjZDc3
YmFjMjJiMDFkZDM0Njk2NzE4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCkBAIC0yMzQsNyArMjM0LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFi
c3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBib29sIGln
bm8KICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBDYWxsRE9NR2V0dGVyOgogICAg
IGNhc2UgQ2FsbERPTToKLSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6CisgICAgY2FzZSBDaGVja0pT
Q2FzdDoKICAgICBjYXNlIENoZWNrQXJyYXk6CiAgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eToK
ICAgICBjYXNlIEdldFNjb3BlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAppbmRleCAzZDIyNWRjYTJkOGI4MDdjNzhmMjMyN2FjMjNkODE3MWU3
ZjBmMjI5Li4yNTI4Njc4M2E0Y2VjODViZjdhMTc4MTMxOGYzY2M3YTFlNTI3ZDkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtOTk5
OSw5ICs5OTk5LDE5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsRE9NR2V0dGVy
KE5vZGUqIG5vZGUpCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQucmVncygpLCBub2RlKTsKIH0K
IAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MoTm9kZSogbm9kZSkK
K3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0pTQ2FzdChOb2RlKiBub2RlKQogewog
ICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvID0gbm9kZS0+Y2xhc3NJbmZvKCk7CisgICAg
aWYgKGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5nZSkgeworICAgICAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgR1BSUmVnIGJh
c2VHUFIgPSBiYXNlLmdwcigpOworCisgICAgICAgIGF1dG8gY2hlY2tGYWlsZWQgPSBtX2ppdC5i
cmFuY2hJZk5vdFR5cGUoYmFzZUdQUiwgY2xhc3NJbmZvLT5pbmhlcml0c0pTVHlwZVJhbmdlLT5m
aXJzdCwgY2xhc3NJbmZvLT5pbmhlcml0c0pTVHlwZVJhbmdlLT5sYXN0KTsKKyAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChiYXNlR1BS
KSwgbm9kZS0+Y2hpbGQxKCksIGNoZWNrRmFpbGVkKTsKKyAgICAgICAgbm9SZXN1bHQobm9kZSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoIWNsYXNzSW5mby0+Y2hlY2tTdWJD
bGFzc1NuaXBwZXQpIHsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBvdGhlcih0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBhY2JiMDNj
ZmViODA4ZTI4MDI1YTJjZjllOGQxM2RiYjVhZjY5N2M5Li5kOTM0NmM2N2I4Y2UzMzNiNDAxOGU0
OTViYjkwZTgwZjZjNGM5MWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCkBAIC0xMjQ2LDcgKzEyNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
b21waWxlR2V0QnV0dGVyZmx5KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDYWxsRE9NR2V0dGVy
KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDYWxsRE9NKE5vZGUqKTsKLSAgICB2b2lkIGNvbXBp
bGVDaGVja1N1YkNsYXNzKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVDaGVja0pTQ2FzdChOb2Rl
Kik7CiAgICAgdm9pZCBjb21waWxlTm9ybWFsaXplTWFwS2V5KE5vZGUqKTsKICAgICB2b2lkIGNv
bXBpbGVHZXRNYXBCdWNrZXRIZWFkKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVHZXRNYXBCdWNr
ZXROZXh0KE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDE5ZDBlMjhhNGU3NGVhYjBiOWUzOGE5MTk3YTMz
OTJmOGFkOGQxMzQuLmEzYzA1OTE1MzViNzg5M2UwOGQwMDU1ZDZiMmYxNjg5YTI0NDY3NTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcApAQCAtNDE3NCw4ICs0MTc0LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlQ2FsbERPTUdldHRlcihub2RlKTsKICAgICAg
ICAgYnJlYWs7CiAKLSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6Ci0gICAgICAgIGNvbXBpbGVDaGVj
a1N1YkNsYXNzKG5vZGUpOworICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CisgICAgICAgIGNvbXBpbGVD
aGVja0pTQ2FzdChub2RlKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFVucmVhY2hhYmxl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKaW5kZXggNGQyNmQzNTZiNmYxNjc1ZjczNWIzYzUwNjUxNjdjMzIxZjRmOThlMy4uMTQ3NTQx
YTNiOWQxOTJlNTAxNzFhOThiNmJkMzBlZTFlYTI5ZGQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC01MDQ2LDggKzUwNDYs
OCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNv
bXBpbGVDYWxsRE9NR2V0dGVyKG5vZGUpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQ2hl
Y2tTdWJDbGFzczoKLSAgICAgICAgY29tcGlsZUNoZWNrU3ViQ2xhc3Mobm9kZSk7CisgICAgY2Fz
ZSBDaGVja0pTQ2FzdDoKKyAgICAgICAgY29tcGlsZUNoZWNrSlNDYXN0KG5vZGUpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgRXh0cmFjdENhdGNoTG9jYWw6IHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBjNWExNjAxNGIzMDkyZDU4
NTg4NjdhMGUzYjE3NDU3MTg4MWZjNjY3Li5hNGY5N2Q0NjBiMTgyYzhlNDUxNDQzMzAyMjBhMmM5
MjFmOTMwMTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBUb0xvd2VyQ2FzZToKICAgICBjYXNlIE51bWJlclRv
U3RyaW5nV2l0aFJhZGl4OgogICAgIGNhc2UgTnVtYmVyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeENv
bnN0YW50OgotICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKKyAgICBjYXNlIENoZWNrSlNDYXN0Ogog
ICAgIGNhc2UgQ2FsbERPTToKICAgICBjYXNlIENhbGxET01HZXR0ZXI6CiAgICAgY2FzZSBBcnJh
eVNsaWNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CmluZGV4IGZiN2ZjZWVjYjQ1Y2I3OWQ5NzFiNTAzOWY0MDYzNjhkMzMyNDEzZmYuLjY3ZDRhNmQw
YWJjNmU1YzNkOGNjNjE1MGI4YzEzZmQyOGM1MGZmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTE1ODYsOCArMTU4Niw4IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgTnVtYmVyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeENvbnN0YW50Ogog
ICAgICAgICAgICAgY29tcGlsZU51bWJlclRvU3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudCgp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKLSAgICAg
ICAgICAgIGNvbXBpbGVDaGVja1N1YkNsYXNzKCk7CisgICAgICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6
CisgICAgICAgICAgICBjb21waWxlQ2hlY2tKU0Nhc3QoKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIENhbGxET006CiAgICAgICAgICAgICBjb21waWxlQ2FsbERPTSgpOwpAQCAt
MTM5MzEsMTEgKzEzOTMxLDE4IEBAIHByaXZhdGU6CiAgICAgICAgIGNyYXNoKCk7CiAgICAgfQog
Ci0gICAgdm9pZCBjb21waWxlQ2hlY2tTdWJDbGFzcygpCisgICAgdm9pZCBjb21waWxlQ2hlY2tK
U0Nhc3QoKQogICAgIHsKICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hp
bGQxKCkpOwogCiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvID0gbV9ub2RlLT5j
bGFzc0luZm8oKTsKKworICAgICAgICBpZiAoY2xhc3NJbmZvLT5pbmhlcml0c0pTVHlwZVJhbmdl
KSB7CisgICAgICAgICAgICBMVmFsdWUgaGFzVHlwZSA9IGlzQ2VsbFdpdGhUeXBlKGNlbGwsIGNs
YXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5nZS0+Zmlyc3QsIGNsYXNzSW5mby0+aW5oZXJpdHNK
U1R5cGVSYW5nZS0+bGFzdCk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkVHlwZSwganNWYWx1
ZVZhbHVlKGNlbGwpLCBtX25vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbV9vdXQuYml0Tm90KGhhc1R5
cGUpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICghY2xh
c3NJbmZvLT5jaGVja1N1YkNsYXNzU25pcHBldCkgewogICAgICAgICAgICAgTEJhc2ljQmxvY2sg
bG9vcCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBwYXJlbnRD
bGFzcyA9IG1fb3V0Lm5ld0Jsb2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9DbGFzc0luZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Ns
YXNzSW5mby5oCmluZGV4IGIzMmM4ZmRiNWQ3NjZkNzBiZmUxZjAwMjFhZjI2OTY2MmVlMzI4NTku
LjM5ZDI2ZTBkODZhMTE2MzY0YmY1MDY0Y2EwZjJmZDg0YzRiNzA2MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCkBAIC0xNTEsNyArMTUxLDkgQEAgc3RydWN0
IE1ldGhvZFRhYmxlIHsKIAogI2RlZmluZSBIQVNfTUVNQkVSX05BTUVEKGtsYXNzLCBuYW1lKSAo
TWVtYmVyQ2hlY2sjI25hbWU8a2xhc3M+OjpoYXMpCiAKLSNkZWZpbmUgQ1JFQVRFX01FVEhPRF9U
QUJMRShDbGFzc05hbWUpIHsgXAorI2RlZmluZSBDUkVBVEVfTUVUSE9EX1RBQkxFKENsYXNzTmFt
ZSkgXAorICAgIEpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzPENsYXNzTmFtZT46OnR5
cGVSYW5nZSwgXAorICAgIHsgXAogICAgICAgICAmQ2xhc3NOYW1lOjpkZXN0cm95LCBcCiAgICAg
ICAgICZDbGFzc05hbWU6OnZpc2l0Q2hpbGRyZW4sIFwKICAgICAgICAgJkNsYXNzTmFtZTo6Z2V0
Q2FsbERhdGEsIFwKQEAgLTE4NSwxMCArMTg3LDEwIEBAIHN0cnVjdCBNZXRob2RUYWJsZSB7CiAg
ICAgICAgICZDbGFzc05hbWU6OnZpc2l0T3V0cHV0Q29uc3RyYWludHMsIFwKICAgICB9LCBcCiAg
ICAgQ2xhc3NOYW1lOjpUeXBlZEFycmF5U3RvcmFnZVR5cGUsIFwKLSAgICBzaXplb2YoQ2xhc3NO
YW1lKQorICAgIHNpemVvZihDbGFzc05hbWUpLAogCiBzdHJ1Y3QgQ2xhc3NJbmZvIHsKLSAgICB1
c2luZyBDaGVja1N1YkNsYXNzU25pcHBldEZ1bmN0aW9uUHRyID0gUmVmPFNuaXBwZXQ+ICgqKSh2
b2lkKTsKKyAgICB1c2luZyBDaGVja0pTQ2FzdFNuaXBwZXRGdW5jdGlvblB0ciA9IFJlZjxTbmlw
cGV0PiAoKikodm9pZCk7CiAKICAgICAvLyBBIHN0cmluZyBkZW5vdGluZyB0aGUgY2xhc3MgbmFt
ZS4gRXhhbXBsZTogIldpbmRvdyIuCiAgICAgY29uc3QgY2hhciogY2xhc3NOYW1lOwpAQCAtMTk2
LDEwICsxOTgsMTEgQEAgc3RydWN0IENsYXNzSW5mbyB7CiAgICAgLy8gbnVsbHB0cmlmIHRoZXJl
IGlzIG5vbmUuCiAgICAgY29uc3QgQ2xhc3NJbmZvKiBwYXJlbnRDbGFzczsKICAgICBjb25zdCBI
YXNoVGFibGUqIHN0YXRpY1Byb3BIYXNoVGFibGU7Ci0gICAgQ2hlY2tTdWJDbGFzc1NuaXBwZXRG
dW5jdGlvblB0ciBjaGVja1N1YkNsYXNzU25pcHBldDsKKyAgICBDaGVja0pTQ2FzdFNuaXBwZXRG
dW5jdGlvblB0ciBjaGVja1N1YkNsYXNzU25pcHBldDsKKyAgICBjb25zdCBPcHRpb25hbDxKU0Nh
c3RpbmdIZWxwZXJzOjpKU1R5cGVSYW5nZT4gaW5oZXJpdHNKU1R5cGVSYW5nZTsgLy8gVGhpcyBp
cyByYW5nZSBvZiBKU1R5cGVzIGZvciBkb2luZyBpbmhlcml0YW5jZSBjaGVja2luZy4gSGFzIHRo
ZSBmb3JtOiBbZmlyc3RKU1R5cGUsIGxhc3RKU1R5cGVdIChpbmNsdXNpdmUpLgogICAgIE1ldGhv
ZFRhYmxlIG1ldGhvZFRhYmxlOwotICAgIFR5cGVkQXJyYXlUeXBlIHR5cGVkQXJyYXlTdG9yYWdl
VHlwZTsKLSAgICB1bnNpZ25lZCBzdGF0aWNDbGFzc1NpemU7CisgICAgY29uc3QgVHlwZWRBcnJh
eVR5cGUgdHlwZWRBcnJheVN0b3JhZ2VUeXBlOworICAgIGNvbnN0IHVuc2lnbmVkIHN0YXRpY0Ns
YXNzU2l6ZTsKIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZQYXJlbnRDbGFzcygpCiAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAppbmRleCBiMjUwMzU2OWM4
NDIyNTYwMTE0MWE4MGNmNTk4NDhmNWQ2NzNiNzRiLi5iNGViNTEyYmQyNzIyODQwMWYxZjliM2Ri
MmVlNmIzZTg1YjdmMDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Nhc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaApA
QCAtMTI1LDExICsxMjUsMTcgQEAgc3RydWN0IEZpbmFsVHlwZURpc3BhdGNoZXI8LyogaXNGaW5h
bCAqLyB0cnVlPiB7CiAgICAgfQogfTsKIAorLy8gVGhlIGZpcnN0IGFuZCBsYXN0IEpTVHlwZSBh
cmUgaW5jbHVzaXZlCitzdHJ1Y3QgSlNUeXBlUmFuZ2UgeworICAgIEpTVHlwZSBmaXJzdDsKKyAg
ICBKU1R5cGUgbGFzdDsKK307CisKIHRlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUg
RnJvbT4KLWlubGluZSBib29sIGluaGVyaXRzSlNUeXBlSW1wbChWTSYgdm0sIEZyb20qIGZyb20s
IEpTVHlwZSBmaXJzdFR5cGUsIEpTVHlwZSBsYXN0VHlwZSkKK2lubGluZSBib29sIGluaGVyaXRz
SlNUeXBlSW1wbChWTSYgdm0sIEZyb20qIGZyb20sIEpTVHlwZVJhbmdlIHJhbmdlKQogewogICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNlX29mPEpTQ2VsbCwgVGFyZ2V0Pjo6dmFsdWUgJiYg
c3RkOjppc19iYXNlX29mPEpTQ2VsbCwgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxGcm9t
Pjo6dHlwZT46OnZhbHVlLCAiSlMgY2FzdGluZyBleHBlY3RzIHRoYXQgdGhlIHR5cGVzIHlvdSBh
cmUgY2FzdGluZyB0by9mcm9tIGFyZSBzdWJjbGFzc2VzIG9mIEpTQ2VsbCIpOwotICAgIGJvb2wg
Y2FuQ2FzdCA9IGZpcnN0VHlwZSA8PSBmcm9tLT50eXBlKCkgJiYgZnJvbS0+dHlwZSgpIDw9IGxh
c3RUeXBlOworICAgIGJvb2wgY2FuQ2FzdCA9IHJhbmdlLmZpcnN0IDw9IGZyb20tPnR5cGUoKSAm
JiBmcm9tLT50eXBlKCkgPD0gcmFuZ2UubGFzdDsKICAgICAvLyBEbyBub3QgdXNlIGluaGVyaXRz
PFRhcmdldD4odm0pIHNpbmNlIGluaGVyaXRzPFQ+IGRlcGVuZHMgb24gdGhpcyBmdW5jdGlvbi4K
ICAgICBBU1NFUlRfVU5VU0VEKHZtLCBjYW5DYXN0ID09IGZyb20tPkpTQ2VsbDo6aW5oZXJpdHMo
dm0sIFRhcmdldDo6aW5mbygpKSk7CiAgICAgcmV0dXJuIGNhbkNhc3Q7CkBAIC0xMzksNiArMTQ1
LDcgQEAgaW5saW5lIGJvb2wgaW5oZXJpdHNKU1R5cGVJbXBsKFZNJiB2bSwgRnJvbSogZnJvbSwg
SlNUeXBlIGZpcnN0VHlwZSwgSlNUeXBlIGxhc3QKIC8vIHdheSB0byBzYXkgdGhhdCB3ZSBhcmUg
b3ZlcmxvYWRpbmcganVzdCB0aGUgZmlyc3QgdHlwZSBpbiBhIHRlbXBsYXRlIGxpc3QuLi4KIHRl
bXBsYXRlPHR5cGVuYW1lIFRhcmdldD4KIHN0cnVjdCBJbmhlcml0c1RyYWl0cyB7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBPcHRpb25hbDxKU1R5cGVSYW5nZT4gdHlwZVJhbmdlIHsgV1RGOjpudWxs
b3B0IH07CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KICAgICBzdGF0aWMgaW5saW5lIGJv
b2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKSB7IHJldHVybiBGaW5hbFR5cGVEaXNwYXRj
aGVyPHN0ZDo6aXNfZmluYWw8VGFyZ2V0Pjo6dmFsdWU+Ojp0ZW1wbGF0ZSBpbmhlcml0c0dlbmVy
aWM8VGFyZ2V0Pih2bSwgZnJvbSk7IH0KIH07CkBAIC0xNDYsOCArMTUzLDkgQEAgc3RydWN0IElu
aGVyaXRzVHJhaXRzIHsKICNkZWZpbmUgREVGSU5FX1RSQUlUU19GT1JfSlNfVFlQRV9PVkVSTE9B
RChjbGFzc05hbWUsIGZpcnN0SlNUeXBlLCBsYXN0SlNUeXBlKSBcCiAgICAgdGVtcGxhdGU8PiBc
CiAgICAgc3RydWN0IEluaGVyaXRzVHJhaXRzPGNsYXNzTmFtZT4geyBcCisgICAgICAgIHN0YXRp
YyBjb25zdGV4cHIgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7IHsgc3RhdGljX2Nh
c3Q8SlNUeXBlPihmaXJzdEpTVHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4obGFzdEpTVHlwZSkg
fSB9OyBcCiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+IFwKLSAgICAgICAgc3RhdGlj
IGlubGluZSBib29sIGluaGVyaXRzKFZNJiB2bSwgRnJvbSogZnJvbSkgeyByZXR1cm4gaW5oZXJp
dHNKU1R5cGVJbXBsPGNsYXNzTmFtZSwgRnJvbT4odm0sIGZyb20sIHN0YXRpY19jYXN0PEpTVHlw
ZT4oZmlyc3RKU1R5cGUpLCBzdGF0aWNfY2FzdDxKU1R5cGU+KGxhc3RKU1R5cGUpKTsgfSBcCisg
ICAgICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20pIHsg
cmV0dXJuIGluaGVyaXRzSlNUeXBlSW1wbDxjbGFzc05hbWUsIEZyb20+KHZtLCBmcm9tLCAqdHlw
ZVJhbmdlKTsgfSBcCiAgICAgfTsgXAogCiBGT1JfRUFDSF9KU19EWU5BTUlDX0NBU1RfSlNfVFlQ
RV9PVkVSTE9BRChERUZJTkVfVFJBSVRTX0ZPUl9KU19UWVBFX09WRVJMT0FEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IGUzZWNlZjZlY2JhYmE3ZTE3
MjYwZWE1NTE3YTJmNzZmYzUwMjFjNDUuLjA5YWYwYjFjNmRiZmU1MDI4NzM2NWNkNjkyZTg4NjMz
MGZmZjQ0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAK
QEAgLTExMjUsOSArMTEyNSw5IEBAIHZvaWQgRE9NSklURnVuY3Rpb25PYmplY3Q6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJl
Y3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlvbldpdGhUeXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9N
SklURnVuY3Rpb25PYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAotY2xhc3MgRE9NSklUQ2hlY2tTdWJDbGFzc09i
amVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKK2NsYXNzIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0
IDogcHVibGljIERPTUpJVE5vZGUgewogcHVibGljOgotICAgIERPTUpJVENoZWNrU3ViQ2xhc3NP
YmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICBET01KSVRDaGVja0pTQ2Fz
dE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICA6IEJhc2Uodm0s
IHN0cnVjdHVyZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CkBAIC0xMTQzLDEwICsxMTQzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSlNDOjpK
U1R5cGUoTGFzdEpTQ09iamVjdFR5cGUgKyAxKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwog
ICAgIH0KIAotICAgIHN0YXRpYyBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KiBjcmVhdGUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
KyAgICBzdGF0aWMgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QqIGNyZWF0ZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKICAg
ICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAgRE9NSklUQ2hl
Y2tTdWJDbGFzc09iamVjdCogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8RE9N
SklUQ2hlY2tTdWJDbGFzc09iamVjdD4odm0uaGVhcCkpIERPTUpJVENoZWNrU3ViQ2xhc3NPYmpl
Y3Qodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0KiBvYmpl
Y3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxET01KSVRDaGVja0pTQ2FzdE9iamVjdD4o
dm0uaGVhcCkpIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwogICAgICAg
ICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1
cm4gb2JqZWN0OwogICAgIH0KQEAgLTExNTcsNyArMTE1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICAgICAgYXV0byogdGhpc09iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8RE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpKTsKKyAgICAgICAgYXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUQ2hl
Y2tKU0Nhc3RPYmplY3QqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgICAgIGlm
ICghdGhpc09iamVjdCkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KHRoaXNPYmplY3QtPnZhbHVlKCkpKTsKQEAgLTExNzYsMTMgKzExNzYsMTMgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKLXN0
YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0U2ln
bmF0dXJlKERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q6OmZ1bmN0aW9uV2l0aG91dFR5cGVDaGVj
aywgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdDo6aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9y
UmVhZChET01KSVQ6OkhlYXBSYW5nZTo6dG9wKCkpLCBTcGVjSW50MzJPbmx5KTsKK3N0YXRpYyBj
b25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRDaGVja0pTQ2FzdE9iamVjdFNpZ25hdHVyZShE
T01KSVRDaGVja0pTQ2FzdE9iamVjdDo6ZnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrLCBET01KSVRD
aGVja0pTQ2FzdE9iamVjdDo6aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6
OkhlYXBSYW5nZTo6dG9wKCkpLCBTcGVjSW50MzJPbmx5KTsKIAotdm9pZCBET01KSVRDaGVja1N1
YkNsYXNzT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCit2b2lkIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgRG9sbGFyVk1Bc3Nl
cnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAg
cHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25XaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNp
YywgJkRPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKKyAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVu
YyIpLCAwLCBmdW5jdGlvbldpdGhUeXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAogY2xhc3MgRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0IDog
cHVibGljIERPTUpJVE5vZGUgewpAQCAtMTQxNyw3ICsxNDE3LDcgQEAgY29uc3QgQ2xhc3NJbmZv
IERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzX2luZm8gPSB7ICJET01KSVRGdW5jdGlvbk9iamVjdCIs
ICZCYXNlOjoKICNlbHNlCiBjb25zdCBDbGFzc0luZm8gRE9NSklURnVuY3Rpb25PYmplY3Q6OnNf
aW5mbyA9IHsgIkRPTUpJVEZ1bmN0aW9uT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01KSVRGdW5jdGlvbk9iamVjdCkgfTsKICNl
bmRpZgotY29uc3QgQ2xhc3NJbmZvIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q6OnNfaW5mbyA9
IHsgIkRPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QpIH07
Citjb25zdCBDbGFzc0luZm8gRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OnNfaW5mbyA9IHsgIkRP
TUpJVENoZWNrSlNDYXN0T2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShET01KSVRDaGVja0pTQ2FzdE9iamVjdCkgfTsKIGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI6OnNfaW5mbyA9IHsgIkpTVGVzdEN1c3Rv
bUdldHRlclNldHRlciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyKSB9OwogCiBjb25zdCBDbGFzc0lu
Zm8gU3RhdGljQ3VzdG9tQWNjZXNzb3I6OnNfaW5mbyA9IHsgIlN0YXRpY0N1c3RvbUFjY2Vzc29y
IiwgJkJhc2U6OnNfaW5mbywgJnN0YXRpY0N1c3RvbUFjY2Vzc29yVGFibGUsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoU3RhdGljQ3VzdG9tQWNjZXNzb3IpIH07CkBAIC0yMzQ5LDEzICsy
MzQ5LDEzIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3Jl
YXRlRE9NSklURnVuY3Rpb25PYmplY3QoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0xvY2tI
b2xkZXIgbG9jayh2bSk7Ci0gICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBET01KSVRDaGVja1N1
YkNsYXNzT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwganNOdWxsKCkp
OwotICAgIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QqIHJlc3VsdCA9IERPTUpJVENoZWNrU3Vi
Q2xhc3NPYmplY3Q6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgIFN0
cnVjdHVyZSogc3RydWN0dXJlID0gRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwoKSk7CisgICAgRE9NSklUQ2hlY2tKU0Nhc3RP
YmplY3QqIHJlc3VsdCA9IERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgc3RydWN0dXJlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7
CiB9CiAKQEAgLTMwNTMsNyArMzA1Myw3IEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtKQogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0
IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmplY3QsIDApOwogICAgIGFkZEZ1bmN0aW9u
KHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9N
SklUR2V0dGVyQ29tcGxleE9iamVjdCwgMCk7CiAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVE
T01KSVRGdW5jdGlvbk9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3Qs
IDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVj
dCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCwgMCk7CisgICAgYWRk
RnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVjdCIsIGZ1bmN0aW9uQ3Jl
YXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3Jl
YXRlRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJC
YXNlSlNPYmplY3QsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQnVpbHRpbiIsIGZ1
bmN0aW9uQ3JlYXRlQnVpbHRpbiwgMik7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaCBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFs
LmgKaW5kZXggNzcxNmJhNDE4ZGRhZWQzMzRmNDBiNTYwY2NhNzIzMzY5NWNmZTg3OC4uN2JmMGVj
YTRiNzA3N2M4ZWM1ODE0NDdmYjU4NDI0ZjY2ODFhZWYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvT3B0aW9uYWwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCkBAIC00MTEs
MjAgKzQxMSwyNiBAQCBwdWJsaWM6CiAgIGNvbnN0ZXhwciBPcHRpb25hbCgpIF9fTk9FWENFUFQg
OiBPcHRpb25hbEJhc2U8VD4oKSAge307CiAgIGNvbnN0ZXhwciBPcHRpb25hbChudWxsb3B0X3Qp
IF9fTk9FWENFUFQgOiBPcHRpb25hbEJhc2U8VD4oKSB7fTsKIAotICBPcHRpb25hbChjb25zdCBP
cHRpb25hbCYgcmhzKQorICBjb25zdGV4cHIgT3B0aW9uYWwoY29uc3QgT3B0aW9uYWwmIHJocykK
ICAgOiBPcHRpb25hbEJhc2U8VD4oKQogICB7CiAgICAgaWYgKHJocy5pbml0aWFsaXplZCgpKSB7
Ci0gICAgICAgIDo6bmV3IChzdGF0aWNfY2FzdDx2b2lkKj4oZGF0YXB0cigpKSkgVCgqcmhzKTsK
KyAgICAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX3RyaXZpYWxseV9jb3B5YWJsZV92PFQ+KQor
ICAgICAgICAgICAgT3B0aW9uYWxCYXNlPFQ+OjpzdG9yYWdlXyA9ICpyaHM7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIDo6bmV3IChzdGF0aWNfY2FzdDx2b2lkKj4oZGF0YXB0cigpKSkgVCgq
cmhzKTsKICAgICAgICAgT3B0aW9uYWxCYXNlPFQ+Ojppbml0XyA9IHRydWU7CiAgICAgfQogICB9
CiAKLSAgT3B0aW9uYWwoT3B0aW9uYWwmJiByaHMpIF9fTk9FWENFUFRfKGRldGFpbF86OmlzX25v
dGhyb3dfbW92ZV9jb25zdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSkKKyAgY29uc3RleHByIE9wdGlvbmFs
KE9wdGlvbmFsJiYgcmhzKSBfX05PRVhDRVBUXyhkZXRhaWxfOjppc19ub3Rocm93X21vdmVfY29u
c3RydWN0aWJsZTxUPjo6dmFsdWUpCiAgIDogT3B0aW9uYWxCYXNlPFQ+KCkKICAgewogICAgIGlm
IChyaHMuaW5pdGlhbGl6ZWQoKSkgewotICAgICAgICA6Om5ldyAoc3RhdGljX2Nhc3Q8dm9pZCo+
KGRhdGFwdHIoKSkpIFQoc3RkOjptb3ZlKCpyaHMpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChz
dGQ6OmlzX3RyaXZpYWxseV9jb3B5YWJsZV92PFQ+KQorICAgICAgICAgICAgT3B0aW9uYWxCYXNl
PFQ+OjpzdG9yYWdlXyA9ICpyaHM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIDo6bmV3IChz
dGF0aWNfY2FzdDx2b2lkKj4oZGF0YXB0cigpKSkgVChzdGQ6Om1vdmUoKnJocykpOwogICAgICAg
ICBPcHRpb25hbEJhc2U8VD46OmluaXRfID0gdHJ1ZTsKICAgICAgICAgcmhzLmNsZWFyKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQppbmRleCA2N2MzM2VmZDJiZjExZmRmODI4N2MzMjQwZDhhZTE0OGIwMzY4MjM4Li43
NWExNGEwMzQ1M2U1YmI3MGNhNjI0ZTBiMzNkMzcxODhjOTMzOGY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzAyMSw3
ICszMDIxLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAj
IENoZWNrU3ViQ2xhc3MgU25pcHBldCBmdW5jdGlvbi4KKyAgICAjIENoZWNrSlNDYXN0IFNuaXBw
ZXQgZnVuY3Rpb24uCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RP
TUpJVH0pIHsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8SmF2YVNjcmlwdENvcmUvU25pcHBl
dC5oPiJ9ID0gMTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpZiBFTkFCTEUoSklU
KVxuIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9mb3Itb2YtaXRlcmF0b3Itb3Blbi1m
YXN0LWFycmF5LXNob3VsZC1jaGVjay1qcy10eXBlLmpzIGIvSlNUZXN0cy9zdHJlc3MvZm9yLW9m
LWl0ZXJhdG9yLW9wZW4tZmFzdC1hcnJheS1zaG91bGQtY2hlY2stanMtdHlwZS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YjhiNjllYjMxMWUxMmY2ODk4MTFjMjRlNmJkMTBhOTk5ZGFiYzVjCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZm9yLW9mLWl0ZXJhdG9yLW9wZW4tZmFzdC1hcnJheS1z
aG91bGQtY2hlY2stanMtdHlwZS5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIGZvbyhhMCkg
eworICBOdW1iZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFtdOworICBmb3IgKGxldCBpID0gMDsg
aSA8IDEwMDAwMDsgaSsrKSB7fQorICBmb3IgKGxldCBxIG9mIGEwKSB7fQorfQorCitmb28oW10p
OworZm9vKDApOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400290</attachid>
            <date>2020-05-26 18:00:08 -0700</date>
            <delta_ts>2020-05-26 20:15:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212383-20200526180007.patch</filename>
            <type>text/plain</type>
            <size>38114</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZDJlODIyZDViYTZmNmJmMGMyYzg4ZTBjNWM4NzdjNzM1MjM3NTZjLi5mYjMwMjRjNTViMjllN2E4
YzFhYmY3OWJhYmU1ZjI0MzgxOWU1ZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMC0wNS0yNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBpcyBhIEpT
QXJyYXkgZm9yIEZhc3RBcnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1
ZSB3aGVyZSB3ZSBkaWRuJ3QgY2hlY2sgdGhhdCB0aGUgaXRlcmFibGUgb3BlcmFuZCB0bworICAg
ICAgICBpdGVyYXRvcl9vcGVuIHdhcyBhIEpTQXJyYXkgd2hlbiBsb3dlcmluZyB0aGUgRmFzdEFy
cmF5IG9ubHkgdmFyaWFudCBvZiB0aGUgYnl0ZWNvZGUgdG8gdGhlIERGRy4KKyAgICAgICAgVGhp
cyBtZWFudCB3ZSB3b3VsZCBPU1IgZXhpdCBhdCB0aGUgaXRlcmF0b3JfbmV4dCdzIGxvd2VyaW5n
IHRoZW4gYXNzZXJ0aW9uIGZhaWx1cmUgaW4gdGhlCisgICAgICAgIGNoZWNrcG9pbnQgT1NSIGV4
aXQgaGVscGVyLiBUbyBtYWtlIHRoaXMgd29yaywgdGhpcyBwYXRjaCBleHRlbmRzIChhbmQgcmVu
YW1lcyBmcm9tIENoZWNrU3ViQ2xhc3MpCisgICAgICAgIENoZWNrSlNDYXN0IHRvIHVzZSB0aGUg
c2FtZSBKU1R5cGUgaW5mb3JtYXRpb24gdGhhdCB3ZSB1c2UgZm9yIHRoZSBqc0Nhc3QgZnVuY3Rp
b24uIEluIG9yZGVyIHRvCisgICAgICAgIGdldCB0aGUgSlNUeXBlIHJhbmdlIGZyb20gYSBDbGFz
c0luZm8qIHRoZSBtYWNybyB0aGF0IGF1dG9nZW5lcmF0ZXMgTWV0aG9kVGFibGUgbm93IGFsc28g
ZmlsbHMKKyAgICAgICAgYSBPcHRpb25hbDxKU1R5cGVSYW5nZT4gaW50byB0aGUgQ2xhc3NJbmZv
IGFzIHdlbGwuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVU
eXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZURPTUpJVEdldHRl
cik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAg
ICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6
ZSk6CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAgICAg
ICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAg
ICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjphdHRlbXB0VG9N
YWtlQ2FsbERPTSk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBDaGVja0pT
Q2FzdCk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBDaGVja1N1YkNsYXNz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6Omhhc0NsYXNzSW5mbyBjb25zdCk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6
CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4
ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0pTQ2FzdCk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja1N1YkNsYXNzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAg
ICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZUNoZWNrSlNDYXN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MpOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvQ2xhc3NJbmZvLmg6CisgICAgICAgICogcnVudGltZS9KU0Nhc3QuaDoKKyAgICAgICAg
KEpTQzo6SlNDYXN0aW5nSGVscGVyczo6aW5oZXJpdHNKU1R5cGVJbXBsKToKKyAgICAgICAgKiB0
b29scy9KU0RvbGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVET01KSVRD
aGVja0pTQ2FzdE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTRG9sbGFyVk06OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVET01KSVRDaGVja1N1YkNsYXNzT2Jq
ZWN0KTogRGVsZXRlZC4KKwogMjAyMC0wNS0yNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHNvbWUgbmV3IGVtaXR0ZXJzIHRvIHRoZSBYODZfNjQgYW5kIEFS
TTY0IE1hY3JvQXNzZW1ibGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNDNkMzBhYmQ1Y2ZjMDMwNDRmY2Q5Y2U3MjRmZDQz
MWUyNWM1MTA2MC4uMDY2ZjMyMTQ4YzU2ODRlZDY4MmEwODg2NTlmODY0ZDljZTkzMjk1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNS0yNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVy
QGFwcGxlLmNvbT4KKworICAgICAgICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBp
cyBhIEpTQXJyYXkgZm9yIEZhc3RBcnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0aW9uYWwgc2hvdWxkIGJl
IGFibGUgdG8gY29weS9tb3ZlIGNvbnN0cnVjdG9yIGl0c2VsZiBhcyBsb25nIGFzIDxUPiBpcwor
ICAgICAgICB0cml2aWFsbHkgY29weWFibGUuIFRoaXMgbGV0cyB1cyBjb3B5IE9wdGlvbmFscyBp
bnRvIGNvbnN0IGdsb2JhbHMgd2l0aG91dAorICAgICAgICBnbG9iYWwgY29uc3RydWN0b3JzLgor
CisgICAgICAgICogd3RmL09wdGlvbmFsLmg6CisgICAgICAgIChXVEY6Ok9wdGlvbmFsOjpPcHRp
b25hbCk6CisgICAgICAgIChXVEY6Ok9wdGlvbmFsOjpfX05PRVhDRVBUXyk6CisKIDIwMjAtMDUt
MjYgIFlvc2hpYWtpIEpJVFNVS0FXQSAgPHlvc2hpYWtpLmppdHN1a2F3YUBzb255LmNvbT4KIAog
ICAgICAgICBbUGxheVN0YXRpb25dIERpc2FibGUgTExJTlRfRU1CRURERURfT1BDT0RFX0lECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMTljNTJmN2E0ZGE1NGQwYzFmNjU3NTZlYjZhYjY3NjVjNGFmNTI0YS4uZmMy
MmM4NjMxOWJhYjE5MzhlZWQ3NTU0NjNhN2I1Y2VmMGRkZmM4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA1LTI2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIGZvci1vZiBzaG91bGQgY2hlY2sgdGhlIGl0ZXJhYmxlIGlzIGEgSlNB
cnJheSBmb3IgRmFzdEFycmF5IGluIERGRyBpdGVyYXRvcl9vcGVuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIzODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdmFyaW91cyBJbmhlcml0c1Ry
YWl0cyBzcGVjaWFsaXphdGlvbnMgdG8gY29udGFpbiBhIHR5cGVSYW5nZSBtZW1iZXIuCisgICAg
ICAgIEFsc28sIGNoYW5nZSB0aGUgaW5oZXJpdHMgZnVuY3Rpb24gdG8gdXNlIGluaGVyaXRzSlNU
eXBlSW1wbCBsaWtlIHRoZSBKU0MKKyAgICAgICAgdmFyaWFudHMuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmg6CisgICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBl
cnM6OkluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTRG9jdW1lbnQ+Ojppbmhlcml0cyk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmg6CisgICAgICAgIChKU0M6OkpTQ2Fz
dGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTRWxlbWVudD46OmluaGVyaXRz
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmg6CisgICAgICAgIChKU0M6
OkpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTRXZlbnQ+Ojppbmhl
cml0cyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmg6CisgICAgICAgIChK
U0M6OkpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTTm9kZT46Omlu
aGVyaXRzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToK
KyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKwogMjAyMC0wNS0yNiAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBDYW4ndCBzY3J1YiB2aWRlbyBvbiBodHRwczov
L3d3dy5qdWRpY2lhcnkuc2VuYXRlLmdvdgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDVmYzE5ODMw
NWNmNDlkODA3NTE3OGRkMTU1M2NmNGVkODc1YjMxMzQuLmQxNDQ1NTA0ZDZiMzMwYzBhNjQ5ODlh
Zjg0ZWFiZmQzYWViZDczNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTM1MTEsMTAgKzM1MTEs
MTMgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0
ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgICAgIGRpZEZvbGRDbG9iYmVy
U3RydWN0dXJlcygpOwogICAgICAgICBjbGVhckZvck5vZGUobm9kZSk7IC8vIFRoZSByZXN1bHQg
aXMgbm90IGEgSlMgdmFsdWUuCiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2hlY2tTdWJDbGFz
czogeworICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6IHsKKyAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBj
bGFzc0luZm8gPSBub2RlLT5jbGFzc0luZm8oKTsKICAgICAgICAgSlNWYWx1ZSBjb25zdGFudCA9
IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAgICAgIGlmIChjb25zdGFudCkg
ewotICAgICAgICAgICAgaWYgKGNvbnN0YW50LmlzQ2VsbCgpICYmIGNvbnN0YW50LmFzQ2VsbCgp
LT5pbmhlcml0cyhtX3ZtLCBub2RlLT5jbGFzc0luZm8oKSkpIHsKKyAgICAgICAgICAgIGlmIChj
b25zdGFudC5pc0NlbGwoKSAmJiBjb25zdGFudC5hc0NlbGwoKS0+aW5oZXJpdHMobV92bSwgY2xh
c3NJbmZvKSkgeworICAgICAgICAgICAgICAgIGlmIChjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBl
UmFuZ2UpCisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChjbGFzc0luZm8tPmluaGVyaXRzSlNU
eXBlUmFuZ2UtPmZpcnN0IDw9IGNvbnN0YW50LmFzQ2VsbCgpLT50eXBlKCkgJiYgY29uc3RhbnQu
YXNDZWxsKCktPnR5cGUoKSA8PSBjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UtPmxhc3Qp
OwogICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRy
dWUpOwogICAgICAgICAgICAgICAgIEFTU0VSVChjb25zdGFudCk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CkBAIC0zNTIzLDEwICszNTI2LDEwIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAK
ICAgICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsK
IAotICAgICAgICBpZiAodmFsdWUubV9zdHJ1Y3R1cmUuaXNTdWJDbGFzc09mKG5vZGUtPmNsYXNz
SW5mbygpKSkKKyAgICAgICAgaWYgKHZhbHVlLm1fc3RydWN0dXJlLmlzU3ViQ2xhc3NPZihjbGFz
c0luZm8pKQogICAgICAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmco
dHJ1ZSk7CiAKLSAgICAgICAgZmlsdGVyQ2xhc3NJbmZvKHZhbHVlLCBub2RlLT5jbGFzc0luZm8o
KSk7CisgICAgICAgIGZpbHRlckNsYXNzSW5mbyh2YWx1ZSwgY2xhc3NJbmZvKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGNhc2UgQ2FsbERPTUdldHRlcjogewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBjZGVjMTg2ZjE1OTVk
MDExMjhiYTAwMDM0NjFiYmRlM2YyYjA5ZTJlLi43ZDFlNDM2MWNiMzA3ZGIxNGFlYWVlOWQ2MmFk
MDQ0ZDZkMzliOTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcApAQCAtMzg3Miw3ICszODcyLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6
aGFuZGxlRE9NSklUR2V0dGVyKE9wZXJhbmQgcmVzdWx0LCBjb25zdCBHZXRCeUlkVmFyaWFudCYg
dmEKICAgICBhZGRUb0dyYXBoKENoZWNrU3RydWN0dXJlLCBPcEluZm8obV9ncmFwaC5hZGRTdHJ1
Y3R1cmVTZXQodmFyaWFudC5zdHJ1Y3R1cmVTZXQoKSkpLCB0aGlzTm9kZSk7CiAgICAgCiAgICAg
Ly8gV2UgZG8gbm90IG5lZWQgdG8gZW1pdCBDaGVja0lzQ29uc3RhbnQgdGhpbmd5IGhlcmUuIFdo
ZW4gdGhlIGN1c3RvbSBhY2Nlc3NvciBpcyByZXBsYWNlZCB0byBkaWZmZXJlbnQgb25lLCBTdHJ1
Y3R1cmUgdHJhbnNpdGlvbiBvY2N1cnMuCi0gICAgYWRkVG9HcmFwaChDaGVja1N1YkNsYXNzLCBP
cEluZm8oZG9tQXR0cmlidXRlLT5jbGFzc0luZm8pLCB0aGlzTm9kZSk7CisgICAgYWRkVG9HcmFw
aChDaGVja0pTQ2FzdCwgT3BJbmZvKGRvbUF0dHJpYnV0ZS0+Y2xhc3NJbmZvKSwgdGhpc05vZGUp
OwogICAgIAogICAgIGJvb2wgd2FzU2VlbkluSklUID0gdHJ1ZTsKICAgICBHZXRCeVN0YXR1cyog
c3RhdHVzID0gbV9ncmFwaC5tX3BsYW4ucmVjb3JkZWRTdGF0dXNlcygpLmFkZEdldEJ5U3RhdHVz
KGN1cnJlbnRDb2RlT3JpZ2luKCksIEdldEJ5U3RhdHVzKEdldEJ5U3RhdHVzOjpDdXN0b20sIHdh
c1NlZW5JbkpJVCkpOwpAQCAtNjc0MSw5ICs2NzQxLDEwIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6
OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShnbG9iYWxPYmplY3QtPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbkNvbmN1cnJlbnRs
eSgpLCAiVGhlIG9ubHkgd2F5IHdlIGNvdWxkIGhhdmUgc2VlbiBGYXN0QXJyYXkgaXMgaWYgd2Ug
c2F3IHRoaXMgZnVuY3Rpb24gaW4gdGhlIExMSW50L0Jhc2VsaW5lIHNvIHRoZSBpdGVyYXRvciBm
dW5jdGlvbiBzaG91bGQgYmUgYWxsb2NhdGVkLiIpOwogICAgICAgICAgICAgICAgIEZyb3plblZh
bHVlKiBmcm96ZW5TeW1ib2xJdGVyYXRvckZ1bmN0aW9uID0gbV9ncmFwaC5mcmVlemUoZ2xvYmFs
T2JqZWN0LT5hcnJheVByb3RvVmFsdWVzRnVuY3Rpb25Db25jdXJyZW50bHkoKSk7CiAgICAgICAg
ICAgICAgICAgbnVtYmVyT2ZSZW1haW5pbmdNb2Rlcy0tOwotICAgICAgICAgICAgICAgIGlmICgh
bnVtYmVyT2ZSZW1haW5pbmdNb2RlcykKKyAgICAgICAgICAgICAgICBpZiAoIW51bWJlck9mUmVt
YWluaW5nTW9kZXMpIHsKICAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja0lzQ29u
c3RhbnQsIE9wSW5mbyhmcm96ZW5TeW1ib2xJdGVyYXRvckZ1bmN0aW9uKSwgc3ltYm9sSXRlcmF0
b3IpOwotICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhZGRUb0dy
YXBoKENoZWNrSlNDYXN0LCBPcEluZm8oSlNBcnJheTo6aW5mbygpKSwgZ2V0KGJ5dGVjb2RlLm1f
aXRlcmFibGUpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAg
ICBCYXNpY0Jsb2NrKiBmYXN0QXJyYXlCbG9jayA9IGFsbG9jYXRlVW50YXJnZXRhYmxlQmxvY2so
KTsKICAgICAgICAgICAgICAgICAgICAgZ2VuZXJpY0Jsb2NrID0gYWxsb2NhdGVVbnRhcmdldGFi
bGVCbG9jaygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmlu
ZGV4IDA0MDFhYzFlMzZmYjc2ODBjNzJlYjdkNjg0YWFlNjg2MTk5ZWQxYmYuLjM1MWVjMmQ0NzY5
Mzk3Y2IwOTlhYzM5MjgwYjRlYzlkMzI1NDk2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xMTgwLDcgKzExODAsNyBAQCB2b2lkIGNsb2JiZXJpemUo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3Qg
V3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEJ1dHRlcmZseUxvYywgSlNPYmplY3Rf
YnV0dGVyZmx5LCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0
dXJuOwogCi0gICAgY2FzZSBDaGVja1N1YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAg
ICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSwgbm9kZS0+Y2xhc3NJbmZvKCkpKTsKICAgICAgICAg
cmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0
YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDJkY2VlYmExMTA4OWRhMmU3MGQzN2NiZmU2YTUzYzlm
NWY3MjNmMTguLmFmMWQ0NDAwOGQ4NzI4YzdkNTcxNzJhOWEwNWRkZjUyNWViZmJmM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwCkBAIC0xOTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgY2FzZSBDaGVja1N1YkNsYXNzOiB7Cisg
ICAgICAgICAgICBjYXNlIENoZWNrSlNDYXN0OiB7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBj
b25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAg
ICAgICAgICAgICBpZiAoY29uc3RhbnQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnN0
YW50LmlzQ2VsbCgpICYmIGNvbnN0YW50LmFzQ2VsbCgpLT5pbmhlcml0cyhtX2dyYXBoLm1fdm0s
IG5vZGUtPmNsYXNzSW5mbygpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0Mu
Y3BwCmluZGV4IDRlZGJiMWY1ZmE0YWQ2NWY2MzFlNzhmYWQ0ZmM1MjAzMTk3OWM2ZmUuLjY5YzUw
MTBlOWEzMDJkNWJlMmM0MjAzMWQ0NmFmNTg1MWY5NTlmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTExNCw3ICsxMTQsNyBAQCBib29sIGRvZXNHQyhHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZUltbWVkaWF0ZToK
ICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgY2Fz
ZSBDaGVja1N1YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAgICAgY2FzZSBDaGVja0Fy
cmF5OgogICAgIGNhc2UgQ2hlY2tBcnJheU9yRW1wdHk6CiAgICAgY2FzZSBDaGVja05ldXRlcmVk
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggNTg1
MmZjMWI2MDhlMDAxOTJlMWMwMjUyZjc5NDM1ZDYxYjUwNTVkNC4uMzAwZDk1YzRkMDk5Y2Y5MDc2
NTIyYmU5MTJkZTk4ZGYwY2UyZjUxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCkBAIC0yNTQxLDggKzI1NDEsOCBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBjYXNlIENoZWNrU3ViQ2xhc3M6IHsKLSAg
ICAgICAgICAgIGZpeHVwQ2hlY2tTdWJDbGFzcyhub2RlKTsKKyAgICAgICAgY2FzZSBDaGVja0pT
Q2FzdDogeworICAgICAgICAgICAgZml4dXBDaGVja0pTQ2FzdChub2RlKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAKQEAgLTQwMzUsMTQgKzQwMzUsMTQgQEAgcHJpdmF0ZToKICAg
ICAgICAgfQogCiAgICAgICAgIE5vZGUqIHRoaXNOb2RlID0gbV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAxKS5ub2RlKCk7Ci0gICAgICAgIE5vZGUqIGNoZWNrU3ViQ2xhc3MgPSBtX2luc2VydGlv
blNldC5pbnNlcnROb2RlKG1faW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgQ2hlY2tTdWJDbGFzcywg
bm9kZS0+b3JpZ2luLCBPcEluZm8oc2lnbmF0dXJlLT5jbGFzc0luZm8pLCBFZGdlKHRoaXNOb2Rl
KSk7CisgICAgICAgIE5vZGUqIGNoZWNrU3ViQ2xhc3MgPSBtX2luc2VydGlvblNldC5pbnNlcnRO
b2RlKG1faW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgQ2hlY2tKU0Nhc3QsIG5vZGUtPm9yaWdpbiwg
T3BJbmZvKHNpZ25hdHVyZS0+Y2xhc3NJbmZvKSwgRWRnZSh0aGlzTm9kZSkpOwogICAgICAgICBu
b2RlLT5jb252ZXJ0VG9DYWxsRE9NKG1fZ3JhcGgpOwotICAgICAgICBmaXh1cENoZWNrU3ViQ2xh
c3MoY2hlY2tTdWJDbGFzcyk7CisgICAgICAgIGZpeHVwQ2hlY2tKU0Nhc3QoY2hlY2tTdWJDbGFz
cyk7CiAgICAgICAgIGZpeHVwQ2FsbERPTShub2RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCi0gICAgdm9pZCBmaXh1cENoZWNrU3ViQ2xhc3MoTm9kZSogbm9kZSkKKyAgICB2b2lk
IGZpeHVwQ2hlY2tKU0Nhc3QoTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIGZpeEVkZ2U8Q2Vs
bFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmgKaW5kZXggZDBhY2EwMWQzZGUwNzY5MmUyZWMyNjk5NGI2ZDE4NTVmZDFjNjAwMi4uMjI0NzM3
NjVmYjdmYWEyMmJmYjI3NWY5Yzc1ZDRlZmEyN2NlY2JkMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgKQEAgLTI5NDUsNyArMjk0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFz
Q2xhc3NJbmZvKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBvcCgpID09IENoZWNrU3Vi
Q2xhc3M7CisgICAgICAgIHJldHVybiBvcCgpID09IENoZWNrSlNDYXN0OwogICAgIH0KIAogICAg
IGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaAppbmRleCA0M2I1M2U2YTk0ZWM2ZWE5YzIyMDMzM2M3MjRiY2RmY2Y5Y2NlYjgw
Li40Nzg5NjI4NjI2NzY2NmM1ZGY0YTg5ODYwY2U2OGFjMjE4MDE5YTQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yODAsNyArMjgwLDcgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0
R2VuZXJhdGUgfCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVz
dEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tUeXBlSW5mb0ZsYWdzLCBOb2RlTXVzdEdlbmVy
YXRlKSAvKiBUYWtlcyBhbiBPcEluZm8gd2l0aCB0aGUgZmxhZ3MgeW91IHdhbnQgdG8gdGVzdCBh
cmUgc2V0ICovXAotICAgIG1hY3JvKENoZWNrU3ViQ2xhc3MsIE5vZGVNdXN0R2VuZXJhdGUpIFwK
KyAgICBtYWNybyhDaGVja0pTQ2FzdCwgTm9kZU11c3RHZW5lcmF0ZSkgLyogVGhpcyBpcyB0aGUg
c2FtZSBhcyBqc0Nhc3QgYnV0IGFzIGEgc3BlY3VsYXRpb24gcmF0aGVyIHRoYW4gYXNzZXJ0aW9u
ICovXAogICAgIG1hY3JvKFBhcnNlSW50LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpT
KSBcCiAgICAgbWFjcm8oR2V0UHJvdG90eXBlT2YsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVz
dWx0SlMpIFwKICAgICBtYWNybyhPYmplY3RDcmVhdGUsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2Rl
UmVzdWx0SlMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggZjgwZmE4NjY0NGNlMzdlMTFk
MTU1NDgzODYxY2FkYjdmNTAyZWI5Zi4uM2RiMGRkMzYyMzliNTk0MTFlZDY0NTRhZTE4ZTk5ZjAx
ODFiMjc2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTEwNjAsNyArMTA2MCw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2UgQ2hl
Y2tTdWJDbGFzczoKKyAgICAgICAgY2FzZSBDaGVja0pTQ2FzdDoKICAgICAgICAgICAgIGJyZWFr
OwogCiAgICAgICAgIGNhc2UgU2tpcFNjb3BlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCBiM2E4MDllNzJhNDUxMDNiMDQwZDkwZjI2YTQ0MTE4
MzRiZTk2NjA5Li42NzA3OGZlODk0ZmIyOTY0Y2Q3N2JhYzIyYjAxZGQzNDY5NjcxODZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtMjM0LDcg
KzIzNCw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdy
YXBoJiBncmFwaCwgTm9kZSogbm9kZSwgYm9vbCBpZ25vCiAgICAgY2FzZSBHZXRFeGVjdXRhYmxl
OgogICAgIGNhc2UgQ2FsbERPTUdldHRlcjoKICAgICBjYXNlIENhbGxET006Ci0gICAgY2FzZSBD
aGVja1N1YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAgICAgY2FzZSBDaGVja0FycmF5
OgogICAgIGNhc2UgQ2hlY2tBcnJheU9yRW1wdHk6CiAgICAgY2FzZSBHZXRTY29wZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggM2Qy
MjVkY2EyZDhiODA3Yzc4ZjIzMjdhYzIzZDgxNzFlN2YwZjIyOS4uMjUyODY3ODNhNGNlYzg1YmY3
YTE3ODEzMThmM2NjN2ExZTUyN2Q5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTk5OTksOSArOTk5OSwxOSBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ2FsbERPTUdldHRlcihOb2RlKiBub2RlKQogICAgIGpzVmFsdWVS
ZXN1bHQocmVzdWx0LnJlZ3MoKSwgbm9kZSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVDaGVja1N1YkNsYXNzKE5vZGUqIG5vZGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ2hlY2tKU0Nhc3QoTm9kZSogbm9kZSkKIHsKICAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNz
SW5mbyA9IG5vZGUtPmNsYXNzSW5mbygpOworICAgIGlmIChjbGFzc0luZm8tPmluaGVyaXRzSlNU
eXBlUmFuZ2UpIHsKKyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2Rl
LT5jaGlsZDEoKSk7CisgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKworICAg
ICAgICBhdXRvIGNoZWNrRmFpbGVkID0gbV9qaXQuYnJhbmNoSWZOb3RUeXBlKGJhc2VHUFIsIGNs
YXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5nZS0+Zmlyc3QsIGNsYXNzSW5mby0+aW5oZXJpdHNK
U1R5cGVSYW5nZS0+bGFzdCk7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNW
YWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZUdQUiksIG5vZGUtPmNoaWxkMSgpLCBjaGVja0Zh
aWxlZCk7CisgICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgaWYgKCFjbGFzc0luZm8tPmNoZWNrU3ViQ2xhc3NTbmlwcGV0KSB7CiAgICAgICAgIFNw
ZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBH
UFJUZW1wb3Jhcnkgb3RoZXIodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgKaW5kZXggYWNiYjAzY2ZlYjgwOGUyODAyNWEyY2Y5ZThkMTNkYmI1
YWY2OTdjOS4uZDkzNDZjNjdiOGNlMzMzYjQwMThlNDk1YmI5MGU4MGY2YzRjOTFhNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTI0Niw3
ICsxMjQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZUdldEJ1dHRlcmZseShOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlQ2FsbERPTUdldHRlcihOb2RlKik7CiAgICAgdm9pZCBjb21waWxl
Q2FsbERPTShOb2RlKik7Ci0gICAgdm9pZCBjb21waWxlQ2hlY2tTdWJDbGFzcyhOb2RlKik7Cisg
ICAgdm9pZCBjb21waWxlQ2hlY2tKU0Nhc3QoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZU5vcm1h
bGl6ZU1hcEtleShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0TWFwQnVja2V0SGVhZChOb2Rl
Kik7CiAgICAgdm9pZCBjb21waWxlR2V0TWFwQnVja2V0TmV4dChOb2RlKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRl
eCAxOWQwZTI4YTRlNzRlYWIwYjllMzhhOTE5N2EzMzkyZjhhZDhkMTM0Li5hM2MwNTkxNTM1Yjc4
OTNlMDhkMDA1NWQ2YjJmMTY4OWEyNDQ2NzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTQxNzQsOCArNDE3NCw4
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29t
cGlsZUNhbGxET01HZXR0ZXIobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBDaGVj
a1N1YkNsYXNzOgotICAgICAgICBjb21waWxlQ2hlY2tTdWJDbGFzcyhub2RlKTsKKyAgICBjYXNl
IENoZWNrSlNDYXN0OgorICAgICAgICBjb21waWxlQ2hlY2tKU0Nhc3Qobm9kZSk7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBVbnJlYWNoYWJsZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDRkMjZkMzU2YjZmMTY3NWY3
MzViM2M1MDY1MTY3YzMyMWY0Zjk4ZTMuLjE0NzU0MWEzYjlkMTkyZTUwMTcxYTk4YjZiZDMwZWUx
ZWEyOWRkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcApAQCAtNTA0Niw4ICs1MDQ2LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlQ2FsbERPTUdldHRlcihub2RlKTsK
ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6Ci0gICAgICAgIGNvbXBp
bGVDaGVja1N1YkNsYXNzKG5vZGUpOworICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CisgICAgICAgIGNv
bXBpbGVDaGVja0pTQ2FzdChub2RlKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEV4dHJh
Y3RDYXRjaExvY2FsOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxp
dGllcy5jcHAKaW5kZXggYzVhMTYwMTRiMzA5MmQ1ODU4ODY3YTBlM2IxNzQ1NzE4ODFmYzY2Ny4u
YTRmOTdkNDYwYjE4MmM4ZTQ1MTQ0MzMwMjIwYTJjOTIxZjkzMDE1NyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBA
IGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2Ug
VG9Mb3dlckNhc2U6CiAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhSYWRpeDoKICAgICBjYXNl
IE51bWJlclRvU3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudDoKLSAgICBjYXNlIENoZWNrU3Vi
Q2xhc3M6CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKICAgICBjYXNlIENhbGxET006CiAgICAgY2Fz
ZSBDYWxsRE9NR2V0dGVyOgogICAgIGNhc2UgQXJyYXlTbGljZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBmYjdmY2VlY2I0NWNiNzlkOTcx
YjUwMzlmNDA2MzY4ZDMzMjQxM2ZmLi42N2Q0YTZkMGFiYzZlNWMzZDhjYzYxNTBiOGMxM2ZkMjhj
NTBmZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCkBAIC0xNTg2LDggKzE1ODYsOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIE51bWJlclRv
U3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudDoKICAgICAgICAgICAgIGNvbXBpbGVOdW1iZXJU
b1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQoKTsKICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENoZWNrU3ViQ2xhc3M6Ci0gICAgICAgICAgICBjb21waWxlQ2hlY2tTdWJDbGFz
cygpOworICAgICAgICBjYXNlIENoZWNrSlNDYXN0OgorICAgICAgICAgICAgY29tcGlsZUNoZWNr
SlNDYXN0KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDYWxsRE9NOgogICAg
ICAgICAgICAgY29tcGlsZUNhbGxET00oKTsKQEAgLTEzOTMxLDExICsxMzkzMSwxOCBAQCBwcml2
YXRlOgogICAgICAgICBjcmFzaCgpOwogICAgIH0KIAotICAgIHZvaWQgY29tcGlsZUNoZWNrU3Vi
Q2xhc3MoKQorICAgIHZvaWQgY29tcGlsZUNoZWNrSlNDYXN0KCkKICAgICB7CiAgICAgICAgIExW
YWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKIAogICAgICAgICBjb25zdCBD
bGFzc0luZm8qIGNsYXNzSW5mbyA9IG1fbm9kZS0+Y2xhc3NJbmZvKCk7CisKKyAgICAgICAgaWYg
KGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5nZSkgeworICAgICAgICAgICAgTFZhbHVlIGhh
c1R5cGUgPSBpc0NlbGxXaXRoVHlwZShjZWxsLCBjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFu
Z2UtPmZpcnN0LCBjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UtPmxhc3QpOworICAgICAg
ICAgICAgc3BlY3VsYXRlKEJhZFR5cGUsIGpzVmFsdWVWYWx1ZShjZWxsKSwgbV9ub2RlLT5jaGls
ZDEoKS5ub2RlKCksIG1fb3V0LmJpdE5vdChoYXNUeXBlKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIWNsYXNzSW5mby0+Y2hlY2tTdWJDbGFzc1NuaXBw
ZXQpIHsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxvb3AgPSBtX291dC5uZXdCbG9jaygpOwog
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgcGFyZW50Q2xhc3MgPSBtX291dC5uZXdCbG9jaygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xhc3NJbmZvLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaAppbmRleCBiMzJjOGZkYjVk
NzY2ZDcwYmZlMWYwMDIxYWYyNjk2NjJlZTMyODU5Li4zOWQyNmUwZDg2YTExNjM2NGJmNTA2NGNh
MGYyZmQ4NGM0YjcwNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9DbGFzc0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0lu
Zm8uaApAQCAtMTUxLDcgKzE1MSw5IEBAIHN0cnVjdCBNZXRob2RUYWJsZSB7CiAKICNkZWZpbmUg
SEFTX01FTUJFUl9OQU1FRChrbGFzcywgbmFtZSkgKE1lbWJlckNoZWNrIyNuYW1lPGtsYXNzPjo6
aGFzKQogCi0jZGVmaW5lIENSRUFURV9NRVRIT0RfVEFCTEUoQ2xhc3NOYW1lKSB7IFwKKyNkZWZp
bmUgQ1JFQVRFX01FVEhPRF9UQUJMRShDbGFzc05hbWUpIFwKKyAgICBKU0Nhc3RpbmdIZWxwZXJz
OjpJbmhlcml0c1RyYWl0czxDbGFzc05hbWU+Ojp0eXBlUmFuZ2UsIFwKKyAgICB7IFwKICAgICAg
ICAgJkNsYXNzTmFtZTo6ZGVzdHJveSwgXAogICAgICAgICAmQ2xhc3NOYW1lOjp2aXNpdENoaWxk
cmVuLCBcCiAgICAgICAgICZDbGFzc05hbWU6OmdldENhbGxEYXRhLCBcCkBAIC0xODUsMTAgKzE4
NywxMCBAQCBzdHJ1Y3QgTWV0aG9kVGFibGUgewogICAgICAgICAmQ2xhc3NOYW1lOjp2aXNpdE91
dHB1dENvbnN0cmFpbnRzLCBcCiAgICAgfSwgXAogICAgIENsYXNzTmFtZTo6VHlwZWRBcnJheVN0
b3JhZ2VUeXBlLCBcCi0gICAgc2l6ZW9mKENsYXNzTmFtZSkKKyAgICBzaXplb2YoQ2xhc3NOYW1l
KSwKIAogc3RydWN0IENsYXNzSW5mbyB7Ci0gICAgdXNpbmcgQ2hlY2tTdWJDbGFzc1NuaXBwZXRG
dW5jdGlvblB0ciA9IFJlZjxTbmlwcGV0PiAoKikodm9pZCk7CisgICAgdXNpbmcgQ2hlY2tKU0Nh
c3RTbmlwcGV0RnVuY3Rpb25QdHIgPSBSZWY8U25pcHBldD4gKCopKHZvaWQpOwogCiAgICAgLy8g
QSBzdHJpbmcgZGVub3RpbmcgdGhlIGNsYXNzIG5hbWUuIEV4YW1wbGU6ICJXaW5kb3ciLgogICAg
IGNvbnN0IGNoYXIqIGNsYXNzTmFtZTsKQEAgLTE5NiwxMCArMTk4LDExIEBAIHN0cnVjdCBDbGFz
c0luZm8gewogICAgIC8vIG51bGxwdHJpZiB0aGVyZSBpcyBub25lLgogICAgIGNvbnN0IENsYXNz
SW5mbyogcGFyZW50Q2xhc3M7CiAgICAgY29uc3QgSGFzaFRhYmxlKiBzdGF0aWNQcm9wSGFzaFRh
YmxlOwotICAgIENoZWNrU3ViQ2xhc3NTbmlwcGV0RnVuY3Rpb25QdHIgY2hlY2tTdWJDbGFzc1Nu
aXBwZXQ7CisgICAgQ2hlY2tKU0Nhc3RTbmlwcGV0RnVuY3Rpb25QdHIgY2hlY2tTdWJDbGFzc1Nu
aXBwZXQ7CisgICAgY29uc3QgT3B0aW9uYWw8SlNDYXN0aW5nSGVscGVyczo6SlNUeXBlUmFuZ2U+
IGluaGVyaXRzSlNUeXBlUmFuZ2U7IC8vIFRoaXMgaXMgcmFuZ2Ugb2YgSlNUeXBlcyBmb3IgZG9p
bmcgaW5oZXJpdGFuY2UgY2hlY2tpbmcuIEhhcyB0aGUgZm9ybTogW2ZpcnN0SlNUeXBlLCBsYXN0
SlNUeXBlXSAoaW5jbHVzaXZlKS4KICAgICBNZXRob2RUYWJsZSBtZXRob2RUYWJsZTsKLSAgICBU
eXBlZEFycmF5VHlwZSB0eXBlZEFycmF5U3RvcmFnZVR5cGU7Ci0gICAgdW5zaWduZWQgc3RhdGlj
Q2xhc3NTaXplOworICAgIGNvbnN0IFR5cGVkQXJyYXlUeXBlIHR5cGVkQXJyYXlTdG9yYWdlVHlw
ZTsKKyAgICBjb25zdCB1bnNpZ25lZCBzdGF0aWNDbGFzc1NpemU7CiAKICAgICBzdGF0aWMgcHRy
ZGlmZl90IG9mZnNldE9mUGFyZW50Q2xhc3MoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2FzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDYXN0LmgKaW5kZXggYjI1MDM1NjljODQyMjU2MDExNDFhODBjZjU5ODQ4ZjVkNjcz
Yjc0Yi4uYjRlYjUxMmJkMjcyMjg0MDFmMWY5YjNkYjJlZTZiM2U4NWI3ZjA4MiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKQEAgLTEyNSwxMSArMTI1LDE3IEBAIHN0cnVj
dCBGaW5hbFR5cGVEaXNwYXRjaGVyPC8qIGlzRmluYWwgKi8gdHJ1ZT4gewogICAgIH0KIH07CiAK
Ky8vIFRoZSBmaXJzdCBhbmQgbGFzdCBKU1R5cGUgYXJlIGluY2x1c2l2ZQorc3RydWN0IEpTVHlw
ZVJhbmdlIHsKKyAgICBKU1R5cGUgZmlyc3Q7CisgICAgSlNUeXBlIGxhc3Q7Cit9OworCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIEZyb20+Ci1pbmxpbmUgYm9vbCBpbmhlcml0
c0pTVHlwZUltcGwoVk0mIHZtLCBGcm9tKiBmcm9tLCBKU1R5cGUgZmlyc3RUeXBlLCBKU1R5cGUg
bGFzdFR5cGUpCitpbmxpbmUgYm9vbCBpbmhlcml0c0pTVHlwZUltcGwoVk0mIHZtLCBGcm9tKiBm
cm9tLCBKU1R5cGVSYW5nZSByYW5nZSkKIHsKICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFz
ZV9vZjxKU0NlbGwsIFRhcmdldD46OnZhbHVlICYmIHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIHR5
cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8RnJvbT46OnR5cGU+Ojp2YWx1ZSwgIkpTIGNhc3Rp
bmcgZXhwZWN0cyB0aGF0IHRoZSB0eXBlcyB5b3UgYXJlIGNhc3RpbmcgdG8vZnJvbSBhcmUgc3Vi
Y2xhc3NlcyBvZiBKU0NlbGwiKTsKLSAgICBib29sIGNhbkNhc3QgPSBmaXJzdFR5cGUgPD0gZnJv
bS0+dHlwZSgpICYmIGZyb20tPnR5cGUoKSA8PSBsYXN0VHlwZTsKKyAgICBib29sIGNhbkNhc3Qg
PSByYW5nZS5maXJzdCA8PSBmcm9tLT50eXBlKCkgJiYgZnJvbS0+dHlwZSgpIDw9IHJhbmdlLmxh
c3Q7CiAgICAgLy8gRG8gbm90IHVzZSBpbmhlcml0czxUYXJnZXQ+KHZtKSBzaW5jZSBpbmhlcml0
czxUPiBkZXBlbmRzIG9uIHRoaXMgZnVuY3Rpb24uCiAgICAgQVNTRVJUX1VOVVNFRCh2bSwgY2Fu
Q2FzdCA9PSBmcm9tLT5KU0NlbGw6OmluaGVyaXRzKHZtLCBUYXJnZXQ6OmluZm8oKSkpOwogICAg
IHJldHVybiBjYW5DYXN0OwpAQCAtMTM5LDYgKzE0NSw3IEBAIGlubGluZSBib29sIGluaGVyaXRz
SlNUeXBlSW1wbChWTSYgdm0sIEZyb20qIGZyb20sIEpTVHlwZSBmaXJzdFR5cGUsIEpTVHlwZSBs
YXN0CiAvLyB3YXkgdG8gc2F5IHRoYXQgd2UgYXJlIG92ZXJsb2FkaW5nIGp1c3QgdGhlIGZpcnN0
IHR5cGUgaW4gYSB0ZW1wbGF0ZSBsaXN0Li4uCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQ+CiBz
dHJ1Y3QgSW5oZXJpdHNUcmFpdHMgeworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNU
eXBlUmFuZ2U+IHR5cGVSYW5nZSB7IFdURjo6bnVsbG9wdCB9OwogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZyb20+CiAgICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiB2bSwgRnJvbSog
ZnJvbSkgeyByZXR1cm4gRmluYWxUeXBlRGlzcGF0Y2hlcjxzdGQ6OmlzX2ZpbmFsPFRhcmdldD46
OnZhbHVlPjo6dGVtcGxhdGUgaW5oZXJpdHNHZW5lcmljPFRhcmdldD4odm0sIGZyb20pOyB9CiB9
OwpAQCAtMTQ2LDggKzE1Myw5IEBAIHN0cnVjdCBJbmhlcml0c1RyYWl0cyB7CiAjZGVmaW5lIERF
RklORV9UUkFJVFNfRk9SX0pTX1RZUEVfT1ZFUkxPQUQoY2xhc3NOYW1lLCBmaXJzdEpTVHlwZSwg
bGFzdEpTVHlwZSkgXAogICAgIHRlbXBsYXRlPD4gXAogICAgIHN0cnVjdCBJbmhlcml0c1RyYWl0
czxjbGFzc05hbWU+IHsgXAorICAgICAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvbmFsPEpTVHlw
ZVJhbmdlPiB0eXBlUmFuZ2UgeyB7IHN0YXRpY19jYXN0PEpTVHlwZT4oZmlyc3RKU1R5cGUpLCBz
dGF0aWNfY2FzdDxKU1R5cGU+KGxhc3RKU1R5cGUpIH0gfTsgXAogICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGcm9tPiBcCi0gICAgICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0cyhWTSYg
dm0sIEZyb20qIGZyb20pIHsgcmV0dXJuIGluaGVyaXRzSlNUeXBlSW1wbDxjbGFzc05hbWUsIEZy
b20+KHZtLCBmcm9tLCBzdGF0aWNfY2FzdDxKU1R5cGU+KGZpcnN0SlNUeXBlKSwgc3RhdGljX2Nh
c3Q8SlNUeXBlPihsYXN0SlNUeXBlKSk7IH0gXAorICAgICAgICBzdGF0aWMgaW5saW5lIGJvb2wg
aW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKSB7IHJldHVybiBpbmhlcml0c0pTVHlwZUltcGw8
Y2xhc3NOYW1lLCBGcm9tPih2bSwgZnJvbSwgKnR5cGVSYW5nZSk7IH0gXAogICAgIH07IFwKIAog
Rk9SX0VBQ0hfSlNfRFlOQU1JQ19DQVNUX0pTX1RZUEVfT1ZFUkxPQUQoREVGSU5FX1RSQUlUU19G
T1JfSlNfVFlQRV9PVkVSTE9BRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9KU0RvbGxhclZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcAppbmRleCBlM2VjZWY2ZWNiYWJhN2UxNzI2MGVhNTUxN2EyZjc2ZmM1MDIxYzQ1Li4w
OWFmMGIxYzZkYmZlNTAyODczNjVjZDY5MmU4ODYzMzBmZmY0NGQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCkBAIC0xMTI1LDkgKzExMjUsOSBAQCB2b2lk
IERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2Jh
bE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25X
aXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRPTUpJVEZ1bmN0aW9uT2JqZWN0U2lnbmF0dXJl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiB9
CiAKLWNsYXNzIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7
CitjbGFzcyBET01KSVRDaGVja0pTQ2FzdE9iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKIHB1
YmxpYzoKLSAgICBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCisgICAgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiAgICAgewogICAgICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwpAQCAtMTE0MywxMCArMTE0MywxMCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTQzo6SlNUeXBlKExhc3RKU0NPYmplY3RUeXBlICsg
MSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgRE9NSklU
Q2hlY2tTdWJDbGFzc09iamVjdCogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgc3RhdGljIERPTUpJVENoZWNrSlND
YXN0T2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUg
YXNzZXJ0U2NvcGU7Ci0gICAgICAgIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QqIG9iamVjdCA9
IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q+KHZt
LmhlYXApKSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOworICAgICAg
ICBET01KSVRDaGVja0pTQ2FzdE9iamVjdCogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0
ZUNlbGw8RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q+KHZtLmhlYXApKSBET01KSVRDaGVja0pTQ2Fz
dE9iamVjdCh2bSwgc3RydWN0dXJlKTsKICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2
bSwgZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CkBAIC0xMTU3
LDcgKzExNTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAg
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVENoZWNrU3ViQ2xhc3NP
YmplY3QqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAgICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVENoZWNrSlNDYXN0T2JqZWN0Kj4odm0sIGNhbGxG
cmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCiAgICAgICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT52YWx1ZSgpKSk7CkBA
IC0xMTc2LDEzICsxMTc2LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihW
TSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCi1zdGF0aWMgY29uc3QgRE9NSklUOjpTaWduYXR1
cmUgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdFNpZ25hdHVyZShET01KSVRDaGVja1N1YkNsYXNz
T2JqZWN0OjpmdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2ssIERPTUpJVENoZWNrU3ViQ2xhc3NPYmpl
Y3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpIZWFwUmFuZ2U6OnRv
cCgpKSwgU3BlY0ludDMyT25seSk7CitzdGF0aWMgY29uc3QgRE9NSklUOjpTaWduYXR1cmUgRE9N
SklUQ2hlY2tKU0Nhc3RPYmplY3RTaWduYXR1cmUoRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmZ1
bmN0aW9uV2l0aG91dFR5cGVDaGVjaywgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmluZm8oKSwg
RE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpIZWFwUmFuZ2U6OnRvcCgpKSwgU3BlY0lu
dDMyT25seSk7CiAKLXZvaWQgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdDo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBET01KSVRDaGVj
a0pTQ2FzdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZt
LCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJmdW5jIiksIDAsIGZ1
bmN0aW9uV2l0aFR5cGVDaGVjaywgTm9JbnRyaW5zaWMsICZET01KSVRDaGVja1N1YkNsYXNzT2Jq
ZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5KSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25XaXRoVHlwZUNo
ZWNrLCBOb0ludHJpbnNpYywgJkRPTUpJVENoZWNrSlNDYXN0T2JqZWN0U2lnbmF0dXJlLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiB9CiAKIGNs
YXNzIERPTUpJVEdldHRlckJhc2VKU09iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKQEAgLTE0
MTcsNyArMTQxNyw3IEBAIGNvbnN0IENsYXNzSW5mbyBET01KSVRGdW5jdGlvbk9iamVjdDo6c19p
bmZvID0geyAiRE9NSklURnVuY3Rpb25PYmplY3QiLCAmQmFzZTo6CiAjZWxzZQogY29uc3QgQ2xh
c3NJbmZvIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzX2luZm8gPSB7ICJET01KSVRGdW5jdGlvbk9i
amVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoRE9NSklURnVuY3Rpb25PYmplY3QpIH07CiAjZW5kaWYKLWNvbnN0IENsYXNzSW5mbyBET01K
SVRDaGVja1N1YkNsYXNzT2JqZWN0OjpzX2luZm8gPSB7ICJET01KSVRDaGVja1N1YkNsYXNzT2Jq
ZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KSB9OworY29uc3QgQ2xhc3NJbmZvIERPTUpJVENo
ZWNrSlNDYXN0T2JqZWN0OjpzX2luZm8gPSB7ICJET01KSVRDaGVja0pTQ2FzdE9iamVjdCIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklU
Q2hlY2tKU0Nhc3RPYmplY3QpIH07CiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q3VzdG9tR2V0dGVy
U2V0dGVyOjpzX2luZm8gPSB7ICJKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXIiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1c3RvbUdl
dHRlclNldHRlcikgfTsKIAogY29uc3QgQ2xhc3NJbmZvIFN0YXRpY0N1c3RvbUFjY2Vzc29yOjpz
X2luZm8gPSB7ICJTdGF0aWNDdXN0b21BY2Nlc3NvciIsICZCYXNlOjpzX2luZm8sICZzdGF0aWND
dXN0b21BY2Nlc3NvclRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFN0YXRpY0N1
c3RvbUFjY2Vzc29yKSB9OwpAQCAtMjM0OSwxMyArMjM0OSwxMyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0KEpT
R2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRDaGVja1N1
YkNsYXNzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVENo
ZWNrSlNDYXN0T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
CiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwotICAgIFN0cnVj
dHVyZSogc3RydWN0dXJlID0gRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdDo6Y3JlYXRlU3RydWN0
dXJlKHZtLCBnbG9iYWxPYmplY3QsIGpzTnVsbCgpKTsKLSAgICBET01KSVRDaGVja1N1YkNsYXNz
T2JqZWN0KiByZXN1bHQgPSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IERPTUpJ
VENoZWNrSlNDYXN0T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwganNO
dWxsKCkpOworICAgIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0KiByZXN1bHQgPSBET01KSVRDaGVj
a0pTQ2FzdE9iamVjdDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0zMDUzLDcgKzMwNTMsNyBA
QCB2b2lkIEpTRG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBhZGRGdW5jdGlv
bih2bSwgImNyZWF0ZURPTUpJVEdldHRlck9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0
dGVyT2JqZWN0LCAwKTsKICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRlckNv
bXBsZXhPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QsIDAp
OwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QiLCBmdW5j
dGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwg
ImNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVENo
ZWNrU3ViQ2xhc3NPYmplY3QsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklU
Q2hlY2tKU0Nhc3RPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0
LCAwKTsKICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVj
dCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0LCAwKTsKICAgICBhZGRG
dW5jdGlvbih2bSwgImNyZWF0ZUJ1aWx0aW4iLCBmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4sIDIpOwog
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL09wdGlv
bmFsLmggYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCmluZGV4IDc3MTZiYTQxOGRkYWVkMzM0
ZjQwYjU2MGNjYTcyMzM2OTVjZmU4NzguLjdiZjBlY2E0YjcwNzdjOGVjNTgxNDQ3ZmI1ODQyNGY2
NjgxYWVmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKKysrIGIvU291
cmNlL1dURi93dGYvT3B0aW9uYWwuaApAQCAtNDExLDIwICs0MTEsMjYgQEAgcHVibGljOgogICBj
b25zdGV4cHIgT3B0aW9uYWwoKSBfX05PRVhDRVBUIDogT3B0aW9uYWxCYXNlPFQ+KCkgIHt9Owog
ICBjb25zdGV4cHIgT3B0aW9uYWwobnVsbG9wdF90KSBfX05PRVhDRVBUIDogT3B0aW9uYWxCYXNl
PFQ+KCkge307CiAKLSAgT3B0aW9uYWwoY29uc3QgT3B0aW9uYWwmIHJocykKKyAgY29uc3RleHBy
IE9wdGlvbmFsKGNvbnN0IE9wdGlvbmFsJiByaHMpCiAgIDogT3B0aW9uYWxCYXNlPFQ+KCkKICAg
ewogICAgIGlmIChyaHMuaW5pdGlhbGl6ZWQoKSkgewotICAgICAgICA6Om5ldyAoc3RhdGljX2Nh
c3Q8dm9pZCo+KGRhdGFwdHIoKSkpIFQoKnJocyk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc3Rk
Ojppc190cml2aWFsbHlfY29weWFibGVfdjxUPikKKyAgICAgICAgICAgIE9wdGlvbmFsQmFzZTxU
Pjo6c3RvcmFnZV8gPSAqcmhzOworICAgICAgICBlbHNlCisgICAgICAgICAgICA6Om5ldyAoc3Rh
dGljX2Nhc3Q8dm9pZCo+KGRhdGFwdHIoKSkpIFQoKnJocyk7CiAgICAgICAgIE9wdGlvbmFsQmFz
ZTxUPjo6aW5pdF8gPSB0cnVlOwogICAgIH0KICAgfQogCi0gIE9wdGlvbmFsKE9wdGlvbmFsJiYg
cmhzKSBfX05PRVhDRVBUXyhkZXRhaWxfOjppc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZTxU
Pjo6dmFsdWUpCisgIGNvbnN0ZXhwciBPcHRpb25hbChPcHRpb25hbCYmIHJocykgX19OT0VYQ0VQ
VF8oZGV0YWlsXzo6aXNfbm90aHJvd19tb3ZlX2NvbnN0cnVjdGlibGU8VD46OnZhbHVlKQogICA6
IE9wdGlvbmFsQmFzZTxUPigpCiAgIHsKICAgICBpZiAocmhzLmluaXRpYWxpemVkKCkpIHsKLSAg
ICAgICAgOjpuZXcgKHN0YXRpY19jYXN0PHZvaWQqPihkYXRhcHRyKCkpKSBUKHN0ZDo6bW92ZSgq
cmhzKSk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc190cml2aWFsbHlfY29weWFibGVf
djxUPikKKyAgICAgICAgICAgIE9wdGlvbmFsQmFzZTxUPjo6c3RvcmFnZV8gPSAqcmhzOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICA6Om5ldyAoc3RhdGljX2Nhc3Q8dm9pZCo+KGRhdGFwdHIo
KSkpIFQoc3RkOjptb3ZlKCpyaHMpKTsKICAgICAgICAgT3B0aW9uYWxCYXNlPFQ+Ojppbml0XyA9
IHRydWU7CiAgICAgICAgIHJocy5jbGVhcigpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaAppbmRleCBhNTM5NjM2NDg0YWQzYTQxNWM5ZTM5
ZjBjYzIzNzkzMjQyZGFiNTkxLi44MWNiOTEwZmFmNjc5OWEyNmUxZWUxNGQ0YjY0NWNiNDk3NTA2
YTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3Vz
dG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5o
CkBAIC0zNCwxMCArMzQsMTEgQEAgbmFtZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMgewogCiB0ZW1w
bGF0ZTw+CiBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNEb2N1bWVudD4geworICAg
IHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7IEpTVHlw
ZVJhbmdlIHsgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpKU0RvY3VtZW50V3JhcHBlclR5
cGUpLCBzdGF0aWNfY2FzdDxKU1R5cGU+KFdlYkNvcmU6OkpTRG9jdW1lbnRXcmFwcGVyVHlwZSkg
fSB9OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+Ci0gICAgc3RhdGljIGlubGluZSBib29s
IGluaGVyaXRzKFZNJiwgRnJvbSogZnJvbSkKKyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJp
dHMoVk0mIHZtLCBGcm9tKiBmcm9tKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb20tPnR5cGUo
KSA9PSBXZWJDb3JlOjpKU0RvY3VtZW50V3JhcHBlclR5cGU7CisgICAgICAgIHJldHVybiBpbmhl
cml0c0pTVHlwZUltcGw8V2ViQ29yZTo6SlNEb2N1bWVudD4odm0sIGZyb20sICp0eXBlUmFuZ2Up
OwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RWxlbWVudEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3Vz
dG9tLmgKaW5kZXggNWM2MTQ0NzdmNjMzYmUyZDdjMTMwNThjNjc5NzY2NmU4Mzc0NWY3NC4uMjVh
NjgzYzllYzliYjU1MDc1YmZlYzgwNTJhZmJiNTg5ZjEwNTliMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmgKQEAgLTM0LDEwICszNCwxMSBAQCBuYW1l
c3BhY2UgSlNDYXN0aW5nSGVscGVycyB7CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBJbmhlcml0c1Ry
YWl0czxXZWJDb3JlOjpKU0VsZW1lbnQ+IHsKKyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvbmFs
PEpTVHlwZVJhbmdlPiB0eXBlUmFuZ2UgeyBKU1R5cGVSYW5nZSB7IHN0YXRpY19jYXN0PEpTVHlw
ZT4oV2ViQ29yZTo6SlNFbGVtZW50VHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6
SlNFbGVtZW50VHlwZSkgfSB9OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+Ci0gICAgc3Rh
dGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiwgRnJvbSogZnJvbSkKKyAgICBzdGF0aWMgaW5s
aW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGZyb20tPnR5cGUoKSA9PSBXZWJDb3JlOjpKU0VsZW1lbnRUeXBlOworICAgICAgICByZXR1
cm4gaW5oZXJpdHNKU1R5cGVJbXBsPFdlYkNvcmU6OkpTRWxlbWVudD4odm0sIGZyb20sICp0eXBl
UmFuZ2UpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXZlbnRDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRD
dXN0b20uaAppbmRleCAyZTY1YTMxMjJhY2JkNmRjYzZjY2YwNjcwMTUyYmE1NTNlOTRlNjYxLi5l
MDNhMGRjNWZkZDE1YTdmZmYwOWRjNWIyMzA1NmNlY2FkYWQzN2NkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5oCkBAIC0zNCwxMCArMzQsMTEgQEAgbmFtZXNw
YWNlIEpTQ2FzdGluZ0hlbHBlcnMgewogCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgSW5oZXJpdHNUcmFp
dHM8V2ViQ29yZTo6SlNFdmVudD4geworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNU
eXBlUmFuZ2U+IHR5cGVSYW5nZSB7IHsgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpKU0V2
ZW50VHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNFdmVudFR5cGUpIH0gfTsK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGcm9tPgotICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhl
cml0cyhWTSYsIEZyb20qIGZyb20pCisgICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZN
JiB2bSwgRnJvbSogZnJvbSkKICAgICB7Ci0gICAgICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0g
V2ViQ29yZTo6SlNFdmVudFR5cGU7CisgICAgICAgIHJldHVybiBpbmhlcml0c0pTVHlwZUltcGw8
V2ViQ29yZTo6SlNFdmVudD4odm0sIGZyb20sICp0eXBlUmFuZ2UpOwogICAgIH0KIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKaW5kZXggNTg5NTBjYmUyMGJi
NjIxMTFiMThiNjlmYjA4NmVmMDI0OTZmMmQ2OC4uMzQ0Y2U4MTVhYjYzMTQ5ZmZmZTgwODM1Mzlj
MjNjMWFiMjg4ZDZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNO
b2RlQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9t
LmgKQEAgLTM0LDEwICszNCwxMiBAQCBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycyB7CiAKIHRl
bXBsYXRlPD4KIHN0cnVjdCBJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU05vZGU+IHsKKyAgICBz
dGF0aWMgY29uc3RleHByIE9wdGlvbmFsPEpTVHlwZVJhbmdlPiB0eXBlUmFuZ2UgeyB7IHN0YXRp
Y19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNOb2RlVHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4o
V2ViQ29yZTo6SlNOb2RlVHlwZSArIFdlYkNvcmU6OkpTTm9kZVR5cGVNYXNrKSB9IH07CisgICAg
c3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ4X3Q+OjptYXgoKSA9PSB0eXBl
UmFuZ2UtPmxhc3QpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+Ci0gICAgc3RhdGljIGlu
bGluZSBib29sIGluaGVyaXRzKFZNJiwgRnJvbSogZnJvbSkKKyAgICBzdGF0aWMgaW5saW5lIGJv
b2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGZy
b20tPnR5cGUoKSA+PSBXZWJDb3JlOjpKU05vZGVUeXBlOworICAgICAgICByZXR1cm4gaW5oZXJp
dHNKU1R5cGVJbXBsPFdlYkNvcmU6OkpTTm9kZT4odm0sIGZyb20sICp0eXBlUmFuZ2UpOwogICAg
IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KaW5kZXggNjdjMzNlZmQyYmYxMWZkZjgyODdjMzI0MGQ4YWUxNDhiMDM2ODIz
OC4uNzVhMTRhMDM0NTNlNWJiNzBjYTYyNGUwYjMzZDM3MTg4YzkzMzhmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTMw
MjEsNyArMzAyMSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICB9CiAgICAgfQogCi0g
ICAgIyBDaGVja1N1YkNsYXNzIFNuaXBwZXQgZnVuY3Rpb24uCisgICAgIyBDaGVja0pTQ2FzdCBT
bmlwcGV0IGZ1bmN0aW9uLgogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntET01KSVR9KSB7CiAgICAgICAgICRoZWFkZXJJbmNsdWRlc3siPEphdmFTY3JpcHRDb3JlL1Nu
aXBwZXQuaD4ifSA9IDE7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWYgRU5BQkxF
KEpJVClcbiIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwppbmRleCAwMDQzODM3MTg1MzRjZWZmZjNjY2M3NzkzM2IwOTgwYjAxZjRmYWJkLi45NzA1
ZDMxYjE3MzQ5ODcwYmY2Njg2ZmFkN2RjYjgxZmZmMTA3YWFmIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTA1LTI2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAg
IGZvci1vZiBzaG91bGQgY2hlY2sgdGhlIGl0ZXJhYmxlIGlzIGEgSlNBcnJheSBmb3IgRmFzdEFy
cmF5IGluIERGRyBpdGVyYXRvcl9vcGVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTIzODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHN0cmVzcy9jaGVjay1zdWItY2xhc3MuanM6CisgICAgICAgICog
c3RyZXNzL2Zvci1vZi1pdGVyYXRvci1vcGVuLWZhc3QtYXJyYXktc2hvdWxkLWNoZWNrLWpzLXR5
cGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAyMC0wNS0yNiAgQWxleGV5IFNodmF5
a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgSXRlcmF0b3JDbG9zZSBzaG91
bGQgc3VwcHJlc3MgR2V0TWV0aG9kIGVycm9ycwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
Y2hlY2stc3ViLWNsYXNzLmpzIGIvSlNUZXN0cy9zdHJlc3MvY2hlY2stc3ViLWNsYXNzLmpzCmlu
ZGV4IDRiNGIxZDQ2NmNiMjA5MTMxMjdmM2MzZmRjYTYwYjE4NzRmMDA2ZWMuLjk5ZGU4ZmIzNmVk
MzE2MTNjOWY1NDZhMjdiNzJkYjdiOWI2MDdlOGIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L2NoZWNrLXN1Yi1jbGFzcy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9jaGVjay1zdWItY2xhc3Mu
anMKQEAgLTEsNSArMSw1IEBACiB2YXIgY3JlYXRlRE9NSklUTm9kZU9iamVjdCA9ICR2bS5jcmVh
dGVET01KSVROb2RlT2JqZWN0OwotdmFyIGNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Qg
PSAkdm0uY3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdDsKK3ZhciBjcmVhdGVET01KSVRD
aGVja0pTQ2FzdE9iamVjdCA9ICR2bS5jcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVjdDsKIAog
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewogICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQpAQCAtMjMsMTEgKzIzLDExIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMs
IGVycm9yTWVzc2FnZSkgewogCiB2YXIgYXJyYXkgPSBbXTsKIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwOyArK2kpCi0gICAgYXJyYXkucHVzaChjcmVhdGVET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0
KCkpOworICAgIGFycmF5LnB1c2goY3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoKSk7CiAK
LS8vIERPTUpJVE5vZGUgaXMgYW4gaW5zdGFuY2Ugb2YgYSBzdXBlciBjbGFzcyAoRE9NSklUTm9k
ZSkgb2YgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdC4KKy8vIERPTUpJVE5vZGUgaXMgYW4gaW5z
dGFuY2Ugb2YgYSBzdXBlciBjbGFzcyAoRE9NSklUTm9kZSkgb2YgRE9NSklUQ2hlY2tKU0Nhc3RP
YmplY3QuCiB2YXIgbm9kZSA9IGNyZWF0ZURPTUpJVE5vZGVPYmplY3QoKTsKLW5vZGUuZnVuYyA9
IGNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QoKS5mdW5jOworbm9kZS5mdW5jID0gY3Jl
YXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoKS5mdW5jOwogCiBmdW5jdGlvbiBjYWxsaW5nKGRv
bSkKIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Zvci1vZi1pdGVyYXRvci1vcGVuLWZh
c3QtYXJyYXktc2hvdWxkLWNoZWNrLWpzLXR5cGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9mb3Itb2Yt
aXRlcmF0b3Itb3Blbi1mYXN0LWFycmF5LXNob3VsZC1jaGVjay1qcy10eXBlLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZiOGI2OWViMzExZTEyZjY4OTgxMWMyNGU2YmQxMGE5OTlkYWJjNWMKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3N0cmVzcy9mb3Itb2YtaXRlcmF0b3Itb3Blbi1mYXN0LWFycmF5LXNo
b3VsZC1jaGVjay1qcy10eXBlLmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gZm9vKGEwKSB7
CisgIE51bWJlci5wcm90b3R5cGUuX19wcm90b19fID0gW107CisgIGZvciAobGV0IGkgPSAwOyBp
IDwgMTAwMDAwOyBpKyspIHt9CisgIGZvciAobGV0IHEgb2YgYTApIHt9Cit9CisKK2ZvbyhbXSk7
Citmb28oMCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400304</attachid>
            <date>2020-05-26 20:15:43 -0700</date>
            <delta_ts>2020-05-26 20:21:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212383-20200526201542.patch</filename>
            <type>text/plain</type>
            <size>44602</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZDJlODIyZDViYTZmNmJmMGMyYzg4ZTBjNWM4NzdjNzM1MjM3NTZjLi40MmYyMGJmMDEwZjBiYWZi
ZjI4YTA4MjdiOGE4YThmZjk4OTIzMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NCBAQAorMjAyMC0wNS0yNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBpcyBhIEpT
QXJyYXkgZm9yIEZhc3RBcnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1
ZSB3aGVyZSB3ZSBkaWRuJ3QgY2hlY2sgdGhhdCB0aGUgaXRlcmFibGUgb3BlcmFuZCB0bworICAg
ICAgICBpdGVyYXRvcl9vcGVuIHdhcyBhIEpTQXJyYXkgd2hlbiBsb3dlcmluZyB0aGUgRmFzdEFy
cmF5IG9ubHkgdmFyaWFudCBvZiB0aGUgYnl0ZWNvZGUgdG8gdGhlIERGRy4KKyAgICAgICAgVGhp
cyBtZWFudCB3ZSB3b3VsZCBPU1IgZXhpdCBhdCB0aGUgaXRlcmF0b3JfbmV4dCdzIGxvd2VyaW5n
IHRoZW4gYXNzZXJ0aW9uIGZhaWx1cmUgaW4gdGhlCisgICAgICAgIGNoZWNrcG9pbnQgT1NSIGV4
aXQgaGVscGVyLiBUbyBtYWtlIHRoaXMgd29yaywgdGhpcyBwYXRjaCBleHRlbmRzIChhbmQgcmVu
YW1lcyBmcm9tIENoZWNrU3ViQ2xhc3MpCisgICAgICAgIENoZWNrSlNDYXN0IHRvIHVzZSB0aGUg
c2FtZSBKU1R5cGUgaW5mb3JtYXRpb24gdGhhdCB3ZSB1c2UgZm9yIHRoZSBqc0Nhc3QgZnVuY3Rp
b24uIEluIG9yZGVyIHRvCisgICAgICAgIGdldCB0aGUgSlNUeXBlIHJhbmdlIGZyb20gYSBDbGFz
c0luZm8qIHRoZSBtYWNybyB0aGF0IGF1dG9nZW5lcmF0ZXMgTWV0aG9kVGFibGUgbm93IGFsc28g
ZmlsbHMKKyAgICAgICAgYSBPcHRpb25hbDxKU1R5cGVSYW5nZT4gaW50byB0aGUgQ2xhc3NJbmZv
IGFzIHdlbGwuCisKKyAgICAgICAgTGFzdGx5LCBhZGQgc3RhdGljX2Fzc2VydHMgdG8gdGhlIGNh
c2VzIHdoZXJlIHdlIGRvbid0IGNoZWNrIGZvciBzdWJjbGFzc2VzIGluIHNwZWN1bGF0aW9uRnJv
bUNsYXNzSW5mby4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlRE9NSklUR2V0
dGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAg
ICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAg
ICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBo
YXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmF0dGVtcHRU
b01ha2VDYWxsRE9NKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cENoZWNr
SlNDYXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cENoZWNrU3ViQ2xh
c3MpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6aGFzQ2xhc3NJbmZvIGNvbnN0KToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUu
aDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAg
ICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRv
RXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSlNDYXN0KToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MpOiBEZWxldGVk
LgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tKU0Nhc3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tTdWJDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9DbGFzc0luZm8uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2FzdC5oOgorICAgICAg
ICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjppbmhlcml0c0pTVHlwZUltcGwpOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJ
VENoZWNrSlNDYXN0T2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNoQ3Jl
YXRpb24pOgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NP
YmplY3QpOiBEZWxldGVkLgorCiAyMDIwLTA1LTI2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgc29tZSBuZXcgZW1pdHRlcnMgdG8gdGhlIFg4Nl82NCBhbmQg
QVJNNjQgTWFjcm9Bc3NlbWJsZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAyNWNiYzVmMzQ0ZDQ4YTBlMTkwNWI4Y2ZmOGQ0
MDY4MDM3N2I4Yjc2Li4wNjZmMzIxNDhjNTY4NGVkNjgyYTA4ODY1OWY4NjRkOWNlOTMyOTVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA1LTI2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxs
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIGZvci1vZiBzaG91bGQgY2hlY2sgdGhlIGl0ZXJhYmxl
IGlzIGEgSlNBcnJheSBmb3IgRmFzdEFycmF5IGluIERGRyBpdGVyYXRvcl9vcGVuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIzODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPcHRpb25hbCBzaG91bGQg
YmUgYWJsZSB0byBjb3B5L21vdmUgY29uc3RydWN0b3IgaXRzZWxmIGFzIGxvbmcgYXMgPFQ+IGlz
CisgICAgICAgIHRyaXZpYWxseSBjb3B5YWJsZS4gVGhpcyBsZXRzIHVzIGNvcHkgT3B0aW9uYWxz
IGludG8gY29uc3QgZ2xvYmFscyB3aXRob3V0CisgICAgICAgIGdsb2JhbCBjb25zdHJ1Y3RvcnMu
CisKKyAgICAgICAgKiB3dGYvT3B0aW9uYWwuaDoKKyAgICAgICAgKFdURjo6T3B0aW9uYWw6Ok9w
dGlvbmFsKToKKyAgICAgICAgKFdURjo6T3B0aW9uYWw6Ol9fTk9FWENFUFRfKToKKworMjAyMC0w
NS0yNiAgWW9zaGlha2kgSklUU1VLQVdBICA8eW9zaGlha2kuaml0c3VrYXdhQHNvbnkuY29tPgor
CisgICAgICAgIFtQbGF5U3RhdGlvbl0gRGlzYWJsZSBMTElOVF9FTUJFRERFRF9PUENPREVfSUQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjM4Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IERvbiBPbG1zdGVhZC4KKworICAgICAgICAqIHd0Zi9DTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDoKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm1FbmFibGVQbGF5U3RhdGlvbi5oOiBBZGRlZC4KKwogMjAyMC0wNS0yNiAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRW5oYW5jZSBCaXRtYXA6OnNl
dEVhY2hOdGhCaXQoKSB0byBhbHNvIHRha2UgYW4gZW5kIGluZGV4LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE5
YzUyZjdhNGRhNTRkMGMxZjY1NzU2ZWI2YWI2NzY1YzRhZjUyNGEuLmZjMjJjODYzMTliYWIxOTM4
ZWVkNzU1NDYzYTdiNWNlZjBkZGZjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAy
MC0wNS0yNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBpcyBhIEpTQXJyYXkgZm9yIEZhc3RB
cnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIHZhcmlvdXMgSW5oZXJpdHNUcmFpdHMgc3BlY2lhbGl6
YXRpb25zIHRvIGNvbnRhaW4gYSB0eXBlUmFuZ2UgbWVtYmVyLgorICAgICAgICBBbHNvLCBjaGFu
Z2UgdGhlIGluaGVyaXRzIGZ1bmN0aW9uIHRvIHVzZSBpbmhlcml0c0pTVHlwZUltcGwgbGlrZSB0
aGUgSlNDCisgICAgICAgIHZhcmlhbnRzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1
bWVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjpJbmhlcml0c1Ry
YWl0czxXZWJDb3JlOjpKU0RvY3VtZW50Pjo6aW5oZXJpdHMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRWxlbWVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjpJ
bmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0VsZW1lbnQ+Ojppbmhlcml0cyk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxw
ZXJzOjpJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0V2ZW50Pjo6aW5oZXJpdHMpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdI
ZWxwZXJzOjpJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU05vZGU+Ojppbmhlcml0cyk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5l
cmF0ZUhlYWRlcik6CisKIDIwMjAtMDUtMjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgQ2FuJ3Qgc2NydWIgdmlkZW8gb24gaHR0cHM6Ly93d3cuanVkaWNpYXJ5
LnNlbmF0ZS5nb3YKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
cGVjdWxhdGVkVHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3Vs
YXRlZFR5cGUuY3BwCmluZGV4IDdhZTlkOGM3ZTc0YTVhZDhhMTY4MDg5NTExZmNkNmQ4OGE0M2E2
ZjcuLmFjODc3ZWYyNjI5NGFhMGJkNThkM2E0MDM0YTA0MTA2MmMzNTkxNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcApAQCAtNDM0
LDUxICs0MzQsNjQgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tVHlwZWRBcnJheVR5
cGUoVHlwZWRBcnJheVR5cGUgdHlwZSkKIAogU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9t
Q2xhc3NJbmZvKGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogewotICAgIGlmIChjbGFzc0lu
Zm8gPT0gSlNTdHJpbmc6OmluZm8oKSkKKyAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNzT2Yo
SlNTdHJpbmc6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nOwogCisgICAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8U3ltYm9sPik7CiAgICAgaWYgKGNsYXNzSW5mbyA9
PSBTeW1ib2w6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNTeW1ib2w7CiAgICAgCisgICAg
aWYgKGNsYXNzSW5mby0+aXNTdWJDbGFzc09mKEpTQXJyYXk6OmluZm8oKSkpCisgICAgICAgIHJl
dHVybiBTcGVjQXJyYXkgfCBTcGVjRGVyaXZlZEFycmF5OworCisgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX2ZpbmFsX3Y8SlNCaWdJbnQ+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpTQmlnSW50
OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjSGVhcEJpZ0ludDsKIAorICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19maW5hbF92PEpTRmluYWxPYmplY3Q+KTsKICAgICBpZiAoY2xhc3NJbmZv
ID09IEpTRmluYWxPYmplY3Q6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNGaW5hbE9iamVj
dDsKICAgICAKLSAgICBpZiAoY2xhc3NJbmZvID09IEpTQXJyYXk6OmluZm8oKSkKLSAgICAgICAg
cmV0dXJuIFNwZWNBcnJheTsKLSAgICAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxf
djxEaXJlY3RBcmd1bWVudHM+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IERpcmVjdEFyZ3VtZW50
czo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY0RpcmVjdEFyZ3VtZW50czsKICAgICAKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxTY29wZWRBcmd1bWVudHM+KTsKICAgICBp
ZiAoY2xhc3NJbmZvID09IFNjb3BlZEFyZ3VtZW50czo6aW5mbygpKQogICAgICAgICByZXR1cm4g
U3BlY1Njb3BlZEFyZ3VtZW50czsKICAgICAKLSAgICBpZiAoY2xhc3NJbmZvID09IFN0cmluZ09i
amVjdDo6aW5mbygpKQorICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihTdHJpbmdPYmpl
Y3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nT2JqZWN0OwogCisgICAgc3Rh
dGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8UmVnRXhwT2JqZWN0Pik7CiAgICAgaWYgKGNsYXNz
SW5mbyA9PSBSZWdFeHBPYmplY3Q6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNSZWdFeHBP
YmplY3Q7CiAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxEYXRlSW5zdGFuY2U+
KTsKICAgICBpZiAoY2xhc3NJbmZvID09IERhdGVJbnN0YW5jZTo6aW5mbygpKQogICAgICAgICBy
ZXR1cm4gU3BlY0RhdGVPYmplY3Q7CiAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxf
djxKU01hcD4pOwogICAgIGlmIChjbGFzc0luZm8gPT0gSlNNYXA6OmluZm8oKSkKICAgICAgICAg
cmV0dXJuIFNwZWNNYXBPYmplY3Q7CiAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxf
djxKU1NldD4pOwogICAgIGlmIChjbGFzc0luZm8gPT0gSlNTZXQ6OmluZm8oKSkKICAgICAgICAg
cmV0dXJuIFNwZWNTZXRPYmplY3Q7CiAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxf
djxKU1dlYWtNYXA+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpTV2Vha01hcDo6aW5mbygpKQog
ICAgICAgICByZXR1cm4gU3BlY1dlYWtNYXBPYmplY3Q7CiAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfZmluYWxfdjxKU1dlYWtTZXQ+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpTV2Vha1Nl
dDo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY1dlYWtTZXRPYmplY3Q7CiAKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxQcm94eU9iamVjdD4pOwogICAgIGlmIChjbGFzc0lu
Zm8gPT0gUHJveHlPYmplY3Q6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm94eU9iamVj
dDsKIAorICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PEpTRGF0YVZpZXc+KTsKICAg
ICBpZiAoY2xhc3NJbmZvID09IEpTRGF0YVZpZXc6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNw
ZWNEYXRhVmlld09iamVjdDsKICAgICAKQEAgLTQ5Myw5ICs1MDYsNiBAQCBTcGVjdWxhdGVkVHlw
ZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAg
ICAgCiAgICAgaWYgKGlzVHlwZWRWaWV3KGNsYXNzSW5mby0+dHlwZWRBcnJheVN0b3JhZ2VUeXBl
KSkKICAgICAgICAgcmV0dXJuIHNwZWN1bGF0aW9uRnJvbVR5cGVkQXJyYXlUeXBlKGNsYXNzSW5m
by0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKTsKLQotICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xh
c3NPZihKU0FycmF5OjppbmZvKCkpKQotICAgICAgICByZXR1cm4gU3BlY0Rlcml2ZWRBcnJheTsK
ICAgICAKICAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNzT2YoSlNPYmplY3Q6OmluZm8oKSkp
CiAgICAgICAgIHJldHVybiBTcGVjT2JqZWN0T3RoZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXgg
NWZjMTk4MzA1Y2Y0OWQ4MDc1MTc4ZGQxNTUzY2Y0ZWQ4NzViMzEzNC4uZDE0NDU1MDRkNmIzMzBj
MGE2NDk4OWFmODRlYWJmZDNhZWJkNzM1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMzUxMSwx
MCArMzUxMSwxMyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgZGlkRm9s
ZENsb2JiZXJTdHJ1Y3R1cmVzKCk7CiAgICAgICAgIGNsZWFyRm9yTm9kZShub2RlKTsgLy8gVGhl
IHJlc3VsdCBpcyBub3QgYSBKUyB2YWx1ZS4KICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDaGVj
a1N1YkNsYXNzOiB7CisgICAgY2FzZSBDaGVja0pTQ2FzdDogeworICAgICAgICBjb25zdCBDbGFz
c0luZm8qIGNsYXNzSW5mbyA9IG5vZGUtPmNsYXNzSW5mbygpOwogICAgICAgICBKU1ZhbHVlIGNv
bnN0YW50ID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgaWYgKGNv
bnN0YW50KSB7Ci0gICAgICAgICAgICBpZiAoY29uc3RhbnQuaXNDZWxsKCkgJiYgY29uc3RhbnQu
YXNDZWxsKCktPmluaGVyaXRzKG1fdm0sIG5vZGUtPmNsYXNzSW5mbygpKSkgeworICAgICAgICAg
ICAgaWYgKGNvbnN0YW50LmlzQ2VsbCgpICYmIGNvbnN0YW50LmFzQ2VsbCgpLT5pbmhlcml0cyht
X3ZtLCBjbGFzc0luZm8pKSB7CisgICAgICAgICAgICAgICAgaWYgKGNsYXNzSW5mby0+aW5oZXJp
dHNKU1R5cGVSYW5nZSkKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGNsYXNzSW5mby0+aW5o
ZXJpdHNKU1R5cGVSYW5nZS0+Zmlyc3QgPD0gY29uc3RhbnQuYXNDZWxsKCktPnR5cGUoKSAmJiBj
b25zdGFudC5hc0NlbGwoKS0+dHlwZSgpIDw9IGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5n
ZS0+bGFzdCk7CiAgICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZv
bGRpbmcodHJ1ZSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGNvbnN0YW50KTsKICAgICAgICAg
ICAgICAgICBicmVhazsKQEAgLTM1MjMsMTAgKzM1MjYsMTAgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKIAogICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9IGZvck5vZGUobm9kZS0+Y2hp
bGQxKCkpOwogCi0gICAgICAgIGlmICh2YWx1ZS5tX3N0cnVjdHVyZS5pc1N1YkNsYXNzT2Yobm9k
ZS0+Y2xhc3NJbmZvKCkpKQorICAgICAgICBpZiAodmFsdWUubV9zdHJ1Y3R1cmUuaXNTdWJDbGFz
c09mKGNsYXNzSW5mbykpCiAgICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50
Rm9sZGluZyh0cnVlKTsKIAotICAgICAgICBmaWx0ZXJDbGFzc0luZm8odmFsdWUsIG5vZGUtPmNs
YXNzSW5mbygpKTsKKyAgICAgICAgZmlsdGVyQ2xhc3NJbmZvKHZhbHVlLCBjbGFzc0luZm8pOwog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDYWxsRE9NR2V0dGVyOiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGNkZWMx
ODZmMTU5NWQwMTEyOGJhMDAwMzQ2MWJiZGUzZjJiMDllMmUuLjdkMWU0MzYxY2IzMDdkYjE0YWVh
ZWU5ZDYyYWQwNDRkNmQzOWI5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zODcyLDcgKzM4NzIsNyBAQCBib29sIEJ5dGVDb2Rl
UGFyc2VyOjpoYW5kbGVET01KSVRHZXR0ZXIoT3BlcmFuZCByZXN1bHQsIGNvbnN0IEdldEJ5SWRW
YXJpYW50JiB2YQogICAgIGFkZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5mbyhtX2dyYXBo
LmFkZFN0cnVjdHVyZVNldCh2YXJpYW50LnN0cnVjdHVyZVNldCgpKSksIHRoaXNOb2RlKTsKICAg
ICAKICAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBlbWl0IENoZWNrSXNDb25zdGFudCB0aGluZ3kg
aGVyZS4gV2hlbiB0aGUgY3VzdG9tIGFjY2Vzc29yIGlzIHJlcGxhY2VkIHRvIGRpZmZlcmVudCBv
bmUsIFN0cnVjdHVyZSB0cmFuc2l0aW9uIG9jY3Vycy4KLSAgICBhZGRUb0dyYXBoKENoZWNrU3Vi
Q2xhc3MsIE9wSW5mbyhkb21BdHRyaWJ1dGUtPmNsYXNzSW5mbyksIHRoaXNOb2RlKTsKKyAgICBh
ZGRUb0dyYXBoKENoZWNrSlNDYXN0LCBPcEluZm8oZG9tQXR0cmlidXRlLT5jbGFzc0luZm8pLCB0
aGlzTm9kZSk7CiAgICAgCiAgICAgYm9vbCB3YXNTZWVuSW5KSVQgPSB0cnVlOwogICAgIEdldEJ5
U3RhdHVzKiBzdGF0dXMgPSBtX2dyYXBoLm1fcGxhbi5yZWNvcmRlZFN0YXR1c2VzKCkuYWRkR2V0
QnlTdGF0dXMoY3VycmVudENvZGVPcmlnaW4oKSwgR2V0QnlTdGF0dXMoR2V0QnlTdGF0dXM6OkN1
c3RvbSwgd2FzU2VlbkluSklUKSk7CkBAIC02NzQxLDkgKzY3NDEsMTAgQEAgdm9pZCBCeXRlQ29k
ZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgICAgICBBU1NF
UlRfV0lUSF9NRVNTQUdFKGdsb2JhbE9iamVjdC0+YXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uQ29u
Y3VycmVudGx5KCksICJUaGUgb25seSB3YXkgd2UgY291bGQgaGF2ZSBzZWVuIEZhc3RBcnJheSBp
cyBpZiB3ZSBzYXcgdGhpcyBmdW5jdGlvbiBpbiB0aGUgTExJbnQvQmFzZWxpbmUgc28gdGhlIGl0
ZXJhdG9yIGZ1bmN0aW9uIHNob3VsZCBiZSBhbGxvY2F0ZWQuIik7CiAgICAgICAgICAgICAgICAg
RnJvemVuVmFsdWUqIGZyb3plblN5bWJvbEl0ZXJhdG9yRnVuY3Rpb24gPSBtX2dyYXBoLmZyZWV6
ZShnbG9iYWxPYmplY3QtPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbkNvbmN1cnJlbnRseSgpKTsK
ICAgICAgICAgICAgICAgICBudW1iZXJPZlJlbWFpbmluZ01vZGVzLS07Ci0gICAgICAgICAgICAg
ICAgaWYgKCFudW1iZXJPZlJlbWFpbmluZ01vZGVzKQorICAgICAgICAgICAgICAgIGlmICghbnVt
YmVyT2ZSZW1haW5pbmdNb2RlcykgewogICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENo
ZWNrSXNDb25zdGFudCwgT3BJbmZvKGZyb3plblN5bWJvbEl0ZXJhdG9yRnVuY3Rpb24pLCBzeW1i
b2xJdGVyYXRvcik7Ci0gICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IGFkZFRvR3JhcGgoQ2hlY2tKU0Nhc3QsIE9wSW5mbyhKU0FycmF5OjppbmZvKCkpLCBnZXQoYnl0
ZWNvZGUubV9pdGVyYWJsZSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgIEJhc2ljQmxvY2sqIGZhc3RBcnJheUJsb2NrID0gYWxsb2NhdGVVbnRhcmdldGFi
bGVCbG9jaygpOwogICAgICAgICAgICAgICAgICAgICBnZW5lcmljQmxvY2sgPSBhbGxvY2F0ZVVu
dGFyZ2V0YWJsZUJsb2NrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmgKaW5kZXggMDQwMWFjMWUzNmZiNzY4MGM3MmViN2Q2ODRhYWU2ODYxOTllZDFiZi4uMzUx
ZWMyZDQ3NjkzOTdjYjA5OWFjMzkyODBiNGVjOWQzMjU0OTY3YiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTExODAsNyArMTE4MCw3IEBAIHZvaWQgY2xv
YmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFk
LCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQnV0dGVyZmx5TG9jLCBK
U09iamVjdF9idXR0ZXJmbHksIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOwogICAg
ICAgICByZXR1cm47CiAKLSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6CisgICAgY2FzZSBDaGVja0pT
Q2FzdDoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5jbGFzc0luZm8oKSkpOwog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggMmRjZWViYTExMDg5ZGEyZTcwZDM3Y2Jm
ZTZhNTNjOWY1ZjcyM2YxOC4uYWYxZDQ0MDA4ZDg3MjhjN2Q1NzE3MmE5YTA1ZGRmNTI1ZWJmYmYz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjYXNlIENoZWNrU3ViQ2xh
c3M6IHsKKyAgICAgICAgICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6IHsKICAgICAgICAgICAgICAgICBK
U1ZhbHVlIGNvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgp
OwogICAgICAgICAgICAgICAgIGlmIChjb25zdGFudCkgewogICAgICAgICAgICAgICAgICAgICBp
ZiAoY29uc3RhbnQuaXNDZWxsKCkgJiYgY29uc3RhbnQuYXNDZWxsKCktPmluaGVyaXRzKG1fZ3Jh
cGgubV92bSwgbm9kZS0+Y2xhc3NJbmZvKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0RvZXNHQy5jcHAKaW5kZXggNGVkYmIxZjVmYTRhZDY1ZjYzMWU3OGZhZDRmYzUyMDMxOTc5YzZm
ZS4uNjljNTAxMGU5YTMwMmQ1YmUyYzQyMDMxZDQ2YWY1ODUxZjk1OWZhYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTE0LDcgKzExNCw3IEBAIGJvb2wgZG9l
c0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNrU3RydWN0dXJlSW1t
ZWRpYXRlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNlIEdldEJ1dHRlcmZseToK
LSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKICAgICBjYXNl
IENoZWNrQXJyYXk6CiAgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eToKICAgICBjYXNlIENoZWNr
TmV1dGVyZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApp
bmRleCA1ODUyZmMxYjYwOGUwMDE5MmUxYzAyNTJmNzk0MzVkNjFiNTA1NWQ0Li4zMDBkOTVjNGQw
OTljZjkwNzY1MjJiZTkxMmRlOThkZjBjZTJmNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTI1NDEsOCArMjU0MSw4IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2UgQ2hlY2tTdWJDbGFz
czogewotICAgICAgICAgICAgZml4dXBDaGVja1N1YkNsYXNzKG5vZGUpOworICAgICAgICBjYXNl
IENoZWNrSlNDYXN0OiB7CisgICAgICAgICAgICBmaXh1cENoZWNrSlNDYXN0KG5vZGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNDAzNSwxNCArNDAzNSwxNCBAQCBwcml2
YXRlOgogICAgICAgICB9CiAKICAgICAgICAgTm9kZSogdGhpc05vZGUgPSBtX2dyYXBoLnZhckFy
Z0NoaWxkKG5vZGUsIDEpLm5vZGUoKTsKLSAgICAgICAgTm9kZSogY2hlY2tTdWJDbGFzcyA9IG1f
aW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNOb25lLCBDaGVja1N1
YkNsYXNzLCBub2RlLT5vcmlnaW4sIE9wSW5mbyhzaWduYXR1cmUtPmNsYXNzSW5mbyksIEVkZ2Uo
dGhpc05vZGUpKTsKKyAgICAgICAgTm9kZSogY2hlY2tTdWJDbGFzcyA9IG1faW5zZXJ0aW9uU2V0
Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNOb25lLCBDaGVja0pTQ2FzdCwgbm9kZS0+
b3JpZ2luLCBPcEluZm8oc2lnbmF0dXJlLT5jbGFzc0luZm8pLCBFZGdlKHRoaXNOb2RlKSk7CiAg
ICAgICAgIG5vZGUtPmNvbnZlcnRUb0NhbGxET00obV9ncmFwaCk7Ci0gICAgICAgIGZpeHVwQ2hl
Y2tTdWJDbGFzcyhjaGVja1N1YkNsYXNzKTsKKyAgICAgICAgZml4dXBDaGVja0pTQ2FzdChjaGVj
a1N1YkNsYXNzKTsKICAgICAgICAgZml4dXBDYWxsRE9NKG5vZGUpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKLSAgICB2b2lkIGZpeHVwQ2hlY2tTdWJDbGFzcyhOb2RlKiBub2RlKQor
ICAgIHZvaWQgZml4dXBDaGVja0pTQ2FzdChOb2RlKiBub2RlKQogICAgIHsKICAgICAgICAgZml4
RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaAppbmRleCBkMGFjYTAxZDNkZTA3NjkyZTJlYzI2OTk0YjZkMTg1NWZkMWM2MDAy
Li4yMjQ3Mzc2NWZiN2ZhYTIyYmZiMjc1ZjljNzVkNGVmYTI3Y2VjYmQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaApAQCAtMjk0NSw3ICsyOTQ1LDcgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBoYXNDbGFzc0luZm8oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG9wKCkgPT0g
Q2hlY2tTdWJDbGFzczsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tKU0Nhc3Q7CiAgICAg
fQogCiAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDQzYjUzZTZhOTRlYzZlYTljMjIwMzMzYzcyNGJjZGZj
ZjljY2ViODAuLjQ3ODk2Mjg2MjY3NjY2YzVkZjRhODk4NjBjZTY4YWMyMTgwMTlhNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTI4MCw3ICsyODAsNyBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tJbkJvdW5kcywg
Tm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKENoZWNrSWRlbnQs
IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1R5cGVJbmZvRmxhZ3MsIE5vZGVN
dXN0R2VuZXJhdGUpIC8qIFRha2VzIGFuIE9wSW5mbyB3aXRoIHRoZSBmbGFncyB5b3Ugd2FudCB0
byB0ZXN0IGFyZSBzZXQgKi9cCi0gICAgbWFjcm8oQ2hlY2tTdWJDbGFzcywgTm9kZU11c3RHZW5l
cmF0ZSkgXAorICAgIG1hY3JvKENoZWNrSlNDYXN0LCBOb2RlTXVzdEdlbmVyYXRlKSAvKiBUaGlz
IGlzIHRoZSBzYW1lIGFzIGpzQ2FzdCBidXQgYXMgYSBzcGVjdWxhdGlvbiByYXRoZXIgdGhhbiBh
c3NlcnRpb24gKi9cCiAgICAgbWFjcm8oUGFyc2VJbnQsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2Rl
UmVzdWx0SlMpIFwKICAgICBtYWNybyhHZXRQcm90b3R5cGVPZiwgTm9kZU11c3RHZW5lcmF0ZSB8
IE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKE9iamVjdENyZWF0ZSwgTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVSZXN1bHRKUykgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBmODBmYTg2NjQ0
Y2UzN2UxMWQxNTU0ODM4NjFjYWRiN2Y1MDJlYjlmLi4zZGIwZGQzNjIzOWI1OTQxMWVkNjQ1NGFl
MThlOTlmMDE4MWIyNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMTA2MCw3ICsxMDYw
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAg
Y2FzZSBDaGVja1N1YkNsYXNzOgorICAgICAgICBjYXNlIENoZWNrSlNDYXN0OgogICAgICAgICAg
ICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBTa2lwU2NvcGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGIzYTgwOWU3MmE0NTEwM2IwNDBkOTBm
MjZhNDQxMTgzNGJlOTY2MDkuLjY3MDc4ZmU4OTRmYjI5NjRjZDc3YmFjMjJiMDFkZDM0Njk2NzE4
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBA
IC0yMzQsNyArMjM0LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBz
dGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBib29sIGlnbm8KICAgICBjYXNlIEdldEV4
ZWN1dGFibGU6CiAgICAgY2FzZSBDYWxsRE9NR2V0dGVyOgogICAgIGNhc2UgQ2FsbERPTToKLSAg
ICBjYXNlIENoZWNrU3ViQ2xhc3M6CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKICAgICBjYXNlIENo
ZWNrQXJyYXk6CiAgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eToKICAgICBjYXNlIEdldFNjb3Bl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApp
bmRleCAzZDIyNWRjYTJkOGI4MDdjNzhmMjMyN2FjMjNkODE3MWU3ZjBmMjI5Li4yNTI4Njc4M2E0
Y2VjODViZjdhMTc4MTMxOGYzY2M3YTFlNTI3ZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtOTk5OSw5ICs5OTk5LDE5IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsRE9NR2V0dGVyKE5vZGUqIG5vZGUpCiAgICAg
anNWYWx1ZVJlc3VsdChyZXN1bHQucmVncygpLCBub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MoTm9kZSogbm9kZSkKK3ZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVDaGVja0pTQ2FzdChOb2RlKiBub2RlKQogewogICAgIGNvbnN0IENsYXNzSW5m
byogY2xhc3NJbmZvID0gbm9kZS0+Y2xhc3NJbmZvKCk7CisgICAgaWYgKGNsYXNzSW5mby0+aW5o
ZXJpdHNKU1R5cGVSYW5nZSkgeworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigp
OworCisgICAgICAgIGF1dG8gY2hlY2tGYWlsZWQgPSBtX2ppdC5icmFuY2hJZk5vdFR5cGUoYmFz
ZUdQUiwgY2xhc3NJbmZvLT5pbmhlcml0c0pTVHlwZVJhbmdlLT5maXJzdCwgY2xhc3NJbmZvLT5p
bmhlcml0c0pTVHlwZVJhbmdlLT5sYXN0KTsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRU
eXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChiYXNlR1BSKSwgbm9kZS0+Y2hpbGQxKCks
IGNoZWNrRmFpbGVkKTsKKyAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICBpZiAoIWNsYXNzSW5mby0+Y2hlY2tTdWJDbGFzc1NuaXBwZXQpIHsKICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgIEdQUlRlbXBvcmFyeSBvdGhlcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBhY2JiMDNjZmViODA4ZTI4MDI1YTJjZjll
OGQxM2RiYjVhZjY5N2M5Li5kOTM0NmM2N2I4Y2UzMzNiNDAxOGU0OTViYjkwZTgwZjZjNGM5MWE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBA
IC0xMjQ2LDcgKzEyNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlR2V0QnV0dGVyZmx5
KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDYWxsRE9NR2V0dGVyKE5vZGUqKTsKICAgICB2b2lk
IGNvbXBpbGVDYWxsRE9NKE5vZGUqKTsKLSAgICB2b2lkIGNvbXBpbGVDaGVja1N1YkNsYXNzKE5v
ZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVDaGVja0pTQ2FzdChOb2RlKik7CiAgICAgdm9pZCBjb21w
aWxlTm9ybWFsaXplTWFwS2V5KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVHZXRNYXBCdWNrZXRI
ZWFkKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVHZXRNYXBCdWNrZXROZXh0KE5vZGUqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQu
Y3BwCmluZGV4IDE5ZDBlMjhhNGU3NGVhYjBiOWUzOGE5MTk3YTMzOTJmOGFkOGQxMzQuLmEzYzA1
OTE1MzViNzg5M2UwOGQwMDU1ZDZiMmYxNjg5YTI0NDY3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDE3NCw4
ICs0MTc0LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
ICAgICBjb21waWxlQ2FsbERPTUdldHRlcihub2RlKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBj
YXNlIENoZWNrU3ViQ2xhc3M6Ci0gICAgICAgIGNvbXBpbGVDaGVja1N1YkNsYXNzKG5vZGUpOwor
ICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CisgICAgICAgIGNvbXBpbGVDaGVja0pTQ2FzdChub2RlKTsK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFVucmVhY2hhYmxlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNGQyNmQzNTZi
NmYxNjc1ZjczNWIzYzUwNjUxNjdjMzIxZjRmOThlMy4uMTQ3NTQxYTNiOWQxOTJlNTAxNzFhOThi
NmJkMzBlZTFlYTI5ZGQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC01MDQ2LDggKzUwNDYsOCBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVDYWxsRE9NR2V0dGVy
KG5vZGUpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKLSAgICAg
ICAgY29tcGlsZUNoZWNrU3ViQ2xhc3Mobm9kZSk7CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKKyAg
ICAgICAgY29tcGlsZUNoZWNrSlNDYXN0KG5vZGUpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgRXh0cmFjdENhdGNoTG9jYWw6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcAppbmRleCBjNWExNjAxNGIzMDkyZDU4NTg4NjdhMGUzYjE3NDU3MTg4
MWZjNjY3Li5hNGY5N2Q0NjBiMTgyYzhlNDUxNDQzMzAyMjBhMmM5MjFmOTMwMTU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0zNjMsNyAr
MzYzLDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgY2FzZSBUb0xvd2VyQ2FzZToKICAgICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4Ogog
ICAgIGNhc2UgTnVtYmVyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeENvbnN0YW50OgotICAgIGNhc2Ug
Q2hlY2tTdWJDbGFzczoKKyAgICBjYXNlIENoZWNrSlNDYXN0OgogICAgIGNhc2UgQ2FsbERPTToK
ICAgICBjYXNlIENhbGxET01HZXR0ZXI6CiAgICAgY2FzZSBBcnJheVNsaWNlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IGZiN2ZjZWVjYjQ1
Y2I3OWQ5NzFiNTAzOWY0MDYzNjhkMzMyNDEzZmYuLjY3ZDRhNmQwYWJjNmU1YzNkOGNjNjE1MGI4
YzEzZmQyOGM1MGZmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKQEAgLTE1ODYsOCArMTU4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2Ug
TnVtYmVyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeENvbnN0YW50OgogICAgICAgICAgICAgY29tcGls
ZU51bWJlclRvU3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudCgpOwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKLSAgICAgICAgICAgIGNvbXBpbGVDaGVj
a1N1YkNsYXNzKCk7CisgICAgICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CisgICAgICAgICAgICBjb21w
aWxlQ2hlY2tKU0Nhc3QoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENhbGxE
T006CiAgICAgICAgICAgICBjb21waWxlQ2FsbERPTSgpOwpAQCAtMTM5MzEsMTEgKzEzOTMxLDE4
IEBAIHByaXZhdGU6CiAgICAgICAgIGNyYXNoKCk7CiAgICAgfQogCi0gICAgdm9pZCBjb21waWxl
Q2hlY2tTdWJDbGFzcygpCisgICAgdm9pZCBjb21waWxlQ2hlY2tKU0Nhc3QoKQogICAgIHsKICAg
ICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwogCiAgICAgICAg
IGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvID0gbV9ub2RlLT5jbGFzc0luZm8oKTsKKworICAg
ICAgICBpZiAoY2xhc3NJbmZvLT5pbmhlcml0c0pTVHlwZVJhbmdlKSB7CisgICAgICAgICAgICBM
VmFsdWUgaGFzVHlwZSA9IGlzQ2VsbFdpdGhUeXBlKGNlbGwsIGNsYXNzSW5mby0+aW5oZXJpdHNK
U1R5cGVSYW5nZS0+Zmlyc3QsIGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5nZS0+bGFzdCk7
CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkVHlwZSwganNWYWx1ZVZhbHVlKGNlbGwpLCBtX25v
ZGUtPmNoaWxkMSgpLm5vZGUoKSwgbV9vdXQuYml0Tm90KGhhc1R5cGUpKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICghY2xhc3NJbmZvLT5jaGVja1N1YkNs
YXNzU25pcHBldCkgewogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbG9vcCA9IG1fb3V0Lm5ld0Js
b2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBwYXJlbnRDbGFzcyA9IG1fb3V0Lm5ld0Js
b2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0lu
Zm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCmluZGV4IGIz
MmM4ZmRiNWQ3NjZkNzBiZmUxZjAwMjFhZjI2OTY2MmVlMzI4NTkuLjM5ZDI2ZTBkODZhMTE2MzY0
YmY1MDY0Y2EwZjJmZDg0YzRiNzA2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NsYXNzSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NsYXNzSW5mby5oCkBAIC0xNTEsNyArMTUxLDkgQEAgc3RydWN0IE1ldGhvZFRhYmxlIHsKIAog
I2RlZmluZSBIQVNfTUVNQkVSX05BTUVEKGtsYXNzLCBuYW1lKSAoTWVtYmVyQ2hlY2sjI25hbWU8
a2xhc3M+OjpoYXMpCiAKLSNkZWZpbmUgQ1JFQVRFX01FVEhPRF9UQUJMRShDbGFzc05hbWUpIHsg
XAorI2RlZmluZSBDUkVBVEVfTUVUSE9EX1RBQkxFKENsYXNzTmFtZSkgXAorICAgIEpTQ2FzdGlu
Z0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzPENsYXNzTmFtZT46OnR5cGVSYW5nZSwgXAorICAgIHsg
XAogICAgICAgICAmQ2xhc3NOYW1lOjpkZXN0cm95LCBcCiAgICAgICAgICZDbGFzc05hbWU6OnZp
c2l0Q2hpbGRyZW4sIFwKICAgICAgICAgJkNsYXNzTmFtZTo6Z2V0Q2FsbERhdGEsIFwKQEAgLTE4
NSwxMCArMTg3LDEwIEBAIHN0cnVjdCBNZXRob2RUYWJsZSB7CiAgICAgICAgICZDbGFzc05hbWU6
OnZpc2l0T3V0cHV0Q29uc3RyYWludHMsIFwKICAgICB9LCBcCiAgICAgQ2xhc3NOYW1lOjpUeXBl
ZEFycmF5U3RvcmFnZVR5cGUsIFwKLSAgICBzaXplb2YoQ2xhc3NOYW1lKQorICAgIHNpemVvZihD
bGFzc05hbWUpLAogCiBzdHJ1Y3QgQ2xhc3NJbmZvIHsKLSAgICB1c2luZyBDaGVja1N1YkNsYXNz
U25pcHBldEZ1bmN0aW9uUHRyID0gUmVmPFNuaXBwZXQ+ICgqKSh2b2lkKTsKKyAgICB1c2luZyBD
aGVja0pTQ2FzdFNuaXBwZXRGdW5jdGlvblB0ciA9IFJlZjxTbmlwcGV0PiAoKikodm9pZCk7CiAK
ICAgICAvLyBBIHN0cmluZyBkZW5vdGluZyB0aGUgY2xhc3MgbmFtZS4gRXhhbXBsZTogIldpbmRv
dyIuCiAgICAgY29uc3QgY2hhciogY2xhc3NOYW1lOwpAQCAtMTk2LDEwICsxOTgsMTEgQEAgc3Ry
dWN0IENsYXNzSW5mbyB7CiAgICAgLy8gbnVsbHB0cmlmIHRoZXJlIGlzIG5vbmUuCiAgICAgY29u
c3QgQ2xhc3NJbmZvKiBwYXJlbnRDbGFzczsKICAgICBjb25zdCBIYXNoVGFibGUqIHN0YXRpY1By
b3BIYXNoVGFibGU7Ci0gICAgQ2hlY2tTdWJDbGFzc1NuaXBwZXRGdW5jdGlvblB0ciBjaGVja1N1
YkNsYXNzU25pcHBldDsKKyAgICBDaGVja0pTQ2FzdFNuaXBwZXRGdW5jdGlvblB0ciBjaGVja1N1
YkNsYXNzU25pcHBldDsKKyAgICBjb25zdCBPcHRpb25hbDxKU0Nhc3RpbmdIZWxwZXJzOjpKU1R5
cGVSYW5nZT4gaW5oZXJpdHNKU1R5cGVSYW5nZTsgLy8gVGhpcyBpcyByYW5nZSBvZiBKU1R5cGVz
IGZvciBkb2luZyBpbmhlcml0YW5jZSBjaGVja2luZy4gSGFzIHRoZSBmb3JtOiBbZmlyc3RKU1R5
cGUsIGxhc3RKU1R5cGVdIChpbmNsdXNpdmUpLgogICAgIE1ldGhvZFRhYmxlIG1ldGhvZFRhYmxl
OwotICAgIFR5cGVkQXJyYXlUeXBlIHR5cGVkQXJyYXlTdG9yYWdlVHlwZTsKLSAgICB1bnNpZ25l
ZCBzdGF0aWNDbGFzc1NpemU7CisgICAgY29uc3QgVHlwZWRBcnJheVR5cGUgdHlwZWRBcnJheVN0
b3JhZ2VUeXBlOworICAgIGNvbnN0IHVuc2lnbmVkIHN0YXRpY0NsYXNzU2l6ZTsKIAogICAgIHN0
YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZQYXJlbnRDbGFzcygpCiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Nhc3QuaAppbmRleCBiMjUwMzU2OWM4NDIyNTYwMTE0MWE4MGNmNTk4
NDhmNWQ2NzNiNzRiLi5iNGViNTEyYmQyNzIyODQwMWYxZjliM2RiMmVlNmIzZTg1YjdmMDgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaApAQCAtMTI1LDExICsxMjUsMTcg
QEAgc3RydWN0IEZpbmFsVHlwZURpc3BhdGNoZXI8LyogaXNGaW5hbCAqLyB0cnVlPiB7CiAgICAg
fQogfTsKIAorLy8gVGhlIGZpcnN0IGFuZCBsYXN0IEpTVHlwZSBhcmUgaW5jbHVzaXZlCitzdHJ1
Y3QgSlNUeXBlUmFuZ2UgeworICAgIEpTVHlwZSBmaXJzdDsKKyAgICBKU1R5cGUgbGFzdDsKK307
CisKIHRlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgRnJvbT4KLWlubGluZSBib29s
IGluaGVyaXRzSlNUeXBlSW1wbChWTSYgdm0sIEZyb20qIGZyb20sIEpTVHlwZSBmaXJzdFR5cGUs
IEpTVHlwZSBsYXN0VHlwZSkKK2lubGluZSBib29sIGluaGVyaXRzSlNUeXBlSW1wbChWTSYgdm0s
IEZyb20qIGZyb20sIEpTVHlwZVJhbmdlIHJhbmdlKQogewogICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19iYXNlX29mPEpTQ2VsbCwgVGFyZ2V0Pjo6dmFsdWUgJiYgc3RkOjppc19iYXNlX29mPEpT
Q2VsbCwgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxGcm9tPjo6dHlwZT46OnZhbHVlLCAi
SlMgY2FzdGluZyBleHBlY3RzIHRoYXQgdGhlIHR5cGVzIHlvdSBhcmUgY2FzdGluZyB0by9mcm9t
IGFyZSBzdWJjbGFzc2VzIG9mIEpTQ2VsbCIpOwotICAgIGJvb2wgY2FuQ2FzdCA9IGZpcnN0VHlw
ZSA8PSBmcm9tLT50eXBlKCkgJiYgZnJvbS0+dHlwZSgpIDw9IGxhc3RUeXBlOworICAgIGJvb2wg
Y2FuQ2FzdCA9IHJhbmdlLmZpcnN0IDw9IGZyb20tPnR5cGUoKSAmJiBmcm9tLT50eXBlKCkgPD0g
cmFuZ2UubGFzdDsKICAgICAvLyBEbyBub3QgdXNlIGluaGVyaXRzPFRhcmdldD4odm0pIHNpbmNl
IGluaGVyaXRzPFQ+IGRlcGVuZHMgb24gdGhpcyBmdW5jdGlvbi4KICAgICBBU1NFUlRfVU5VU0VE
KHZtLCBjYW5DYXN0ID09IGZyb20tPkpTQ2VsbDo6aW5oZXJpdHModm0sIFRhcmdldDo6aW5mbygp
KSk7CiAgICAgcmV0dXJuIGNhbkNhc3Q7CkBAIC0xMzksNiArMTQ1LDcgQEAgaW5saW5lIGJvb2wg
aW5oZXJpdHNKU1R5cGVJbXBsKFZNJiB2bSwgRnJvbSogZnJvbSwgSlNUeXBlIGZpcnN0VHlwZSwg
SlNUeXBlIGxhc3QKIC8vIHdheSB0byBzYXkgdGhhdCB3ZSBhcmUgb3ZlcmxvYWRpbmcganVzdCB0
aGUgZmlyc3QgdHlwZSBpbiBhIHRlbXBsYXRlIGxpc3QuLi4KIHRlbXBsYXRlPHR5cGVuYW1lIFRh
cmdldD4KIHN0cnVjdCBJbmhlcml0c1RyYWl0cyB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRp
b25hbDxKU1R5cGVSYW5nZT4gdHlwZVJhbmdlIHsgV1RGOjpudWxsb3B0IH07CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRnJvbT4KICAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZt
LCBGcm9tKiBmcm9tKSB7IHJldHVybiBGaW5hbFR5cGVEaXNwYXRjaGVyPHN0ZDo6aXNfZmluYWw8
VGFyZ2V0Pjo6dmFsdWU+Ojp0ZW1wbGF0ZSBpbmhlcml0c0dlbmVyaWM8VGFyZ2V0Pih2bSwgZnJv
bSk7IH0KIH07CkBAIC0xNDYsOCArMTUzLDkgQEAgc3RydWN0IEluaGVyaXRzVHJhaXRzIHsKICNk
ZWZpbmUgREVGSU5FX1RSQUlUU19GT1JfSlNfVFlQRV9PVkVSTE9BRChjbGFzc05hbWUsIGZpcnN0
SlNUeXBlLCBsYXN0SlNUeXBlKSBcCiAgICAgdGVtcGxhdGU8PiBcCiAgICAgc3RydWN0IEluaGVy
aXRzVHJhaXRzPGNsYXNzTmFtZT4geyBcCisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9u
YWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7IHsgc3RhdGljX2Nhc3Q8SlNUeXBlPihmaXJzdEpT
VHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4obGFzdEpTVHlwZSkgfSB9OyBcCiAgICAgICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZyb20+IFwKLSAgICAgICAgc3RhdGljIGlubGluZSBib29sIGluaGVy
aXRzKFZNJiB2bSwgRnJvbSogZnJvbSkgeyByZXR1cm4gaW5oZXJpdHNKU1R5cGVJbXBsPGNsYXNz
TmFtZSwgRnJvbT4odm0sIGZyb20sIHN0YXRpY19jYXN0PEpTVHlwZT4oZmlyc3RKU1R5cGUpLCBz
dGF0aWNfY2FzdDxKU1R5cGU+KGxhc3RKU1R5cGUpKTsgfSBcCisgICAgICAgIHN0YXRpYyBpbmxp
bmUgYm9vbCBpbmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20pIHsgcmV0dXJuIGluaGVyaXRzSlNU
eXBlSW1wbDxjbGFzc05hbWUsIEZyb20+KHZtLCBmcm9tLCAqdHlwZVJhbmdlKTsgfSBcCiAgICAg
fTsgXAogCiBGT1JfRUFDSF9KU19EWU5BTUlDX0NBU1RfSlNfVFlQRV9PVkVSTE9BRChERUZJTkVf
VFJBSVRTX0ZPUl9KU19UWVBFX09WRVJMT0FEKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0pTRG9sbGFyVk0uY3BwCmluZGV4IGUzZWNlZjZlY2JhYmE3ZTE3MjYwZWE1NTE3YTJmNzZmYzUw
MjFjNDUuLjA5YWYwYjFjNmRiZmU1MDI4NzM2NWNkNjkyZTg4NjMzMGZmZjQ0ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKQEAgLTExMjUsOSArMTEyNSw5
IEBAIHZvaWQgRE9NSklURnVuY3Rpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2
bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBm
dW5jdGlvbldpdGhUeXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklURnVuY3Rpb25PYmplY3RT
aWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkpKTsKIH0KIAotY2xhc3MgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCA6IHB1YmxpYyBET01K
SVROb2RlIHsKK2NsYXNzIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0IDogcHVibGljIERPTUpJVE5v
ZGUgewogcHVibGljOgotICAgIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICBET01KSVRDaGVja0pTQ2FzdE9iamVjdChWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKICAgICB7
CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CkBAIC0xMTQzLDEwICsx
MTQzLDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSlNDOjpKU1R5cGUoTGFzdEpTQ09iamVj
dFR5cGUgKyAxKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRp
YyBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICBzdGF0aWMgRE9NSklU
Q2hlY2tKU0Nhc3RPYmplY3QqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3Nl
cnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCog
b2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8RE9NSklUQ2hlY2tTdWJDbGFzc09i
amVjdD4odm0uaGVhcCkpIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Qodm0sIHN0cnVjdHVyZSk7
CisgICAgICAgIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0KiBvYmplY3QgPSBuZXcgKE5vdE51bGws
IGFsbG9jYXRlQ2VsbDxET01KSVRDaGVja0pTQ2FzdE9iamVjdD4odm0uaGVhcCkpIERPTUpJVENo
ZWNrSlNDYXN0T2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwogICAgICAgICBvYmplY3QtPmZpbmlzaENy
ZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0K
QEAgLTExNTcsNyArMTE1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKLSAgICAgICAgYXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUQ2hlY2tT
dWJDbGFzc09iamVjdCo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICAgICAgYXV0
byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QqPih2
bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgICAgIGlmICghdGhpc09iamVjdCkKICAg
ICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZhbHVl
KCkpKTsKQEAgLTExNzYsMTMgKzExNzYsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKLXN0YXRpYyBjb25zdCBET01KSVQ6
OlNpZ25hdHVyZSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0U2lnbmF0dXJlKERPTUpJVENoZWNr
U3ViQ2xhc3NPYmplY3Q6OmZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjaywgRE9NSklUQ2hlY2tTdWJD
bGFzc09iamVjdDo6aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkhlYXBS
YW5nZTo6dG9wKCkpLCBTcGVjSW50MzJPbmx5KTsKK3N0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25h
dHVyZSBET01KSVRDaGVja0pTQ2FzdE9iamVjdFNpZ25hdHVyZShET01KSVRDaGVja0pTQ2FzdE9i
amVjdDo6ZnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrLCBET01KSVRDaGVja0pTQ2FzdE9iamVjdDo6
aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkhlYXBSYW5nZTo6dG9wKCkp
LCBTcGVjSW50MzJPbmx5KTsKIAotdm9pZCBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIERP
TUpJVENoZWNrSlNDYXN0T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVu
Y3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMi
KSwgMCwgZnVuY3Rpb25XaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRPTUpJVENoZWNrU3Vi
Q2xhc3NPYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkpKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlvbldp
dGhUeXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RTaWduYXR1
cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsK
IH0KIAogY2xhc3MgRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUg
ewpAQCAtMTQxNyw3ICsxNDE3LDcgQEAgY29uc3QgQ2xhc3NJbmZvIERPTUpJVEZ1bmN0aW9uT2Jq
ZWN0OjpzX2luZm8gPSB7ICJET01KSVRGdW5jdGlvbk9iamVjdCIsICZCYXNlOjoKICNlbHNlCiBj
b25zdCBDbGFzc0luZm8gRE9NSklURnVuY3Rpb25PYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUpJVEZ1
bmN0aW9uT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShET01KSVRGdW5jdGlvbk9iamVjdCkgfTsKICNlbmRpZgotY29uc3QgQ2xhc3NJ
bmZvIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUpJVENoZWNrU3Vi
Q2xhc3NPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QpIH07Citjb25zdCBDbGFzc0luZm8g
RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUpJVENoZWNrSlNDYXN0T2Jq
ZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShET01KSVRDaGVja0pTQ2FzdE9iamVjdCkgfTsKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDdXN0
b21HZXR0ZXJTZXR0ZXI6OnNfaW5mbyA9IHsgIkpTVGVzdEN1c3RvbUdldHRlclNldHRlciIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
Q3VzdG9tR2V0dGVyU2V0dGVyKSB9OwogCiBjb25zdCBDbGFzc0luZm8gU3RhdGljQ3VzdG9tQWNj
ZXNzb3I6OnNfaW5mbyA9IHsgIlN0YXRpY0N1c3RvbUFjY2Vzc29yIiwgJkJhc2U6OnNfaW5mbywg
JnN0YXRpY0N1c3RvbUFjY2Vzc29yVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
U3RhdGljQ3VzdG9tQWNjZXNzb3IpIH07CkBAIC0yMzQ5LDEzICsyMzQ5LDEzIEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25P
YmplY3QoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJ
VENoZWNrU3ViQ2xhc3NPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRl
RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7Ci0g
ICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwganNOdWxsKCkpOwotICAgIERPTUpJVENoZWNr
U3ViQ2xhc3NPYmplY3QqIHJlc3VsdCA9IERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
ID0gRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBqc051bGwoKSk7CisgICAgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QqIHJlc3VsdCA9IERP
TUpJVENoZWNrSlNDYXN0T2JqZWN0OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTMwNTMsNyAr
MzA1Myw3IEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVE
T01KSVRHZXR0ZXJPYmplY3QsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklU
R2V0dGVyQ29tcGxleE9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9i
amVjdCwgMCk7CiAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRGdW5jdGlvbk9iamVj
dCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QsIDApOwotICAgIGFkZEZ1bmN0
aW9uKHZtLCAiY3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCIsIGZ1bmN0aW9uQ3JlYXRl
RE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVh
dGVET01KSVRDaGVja0pTQ2FzdE9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nh
c3RPYmplY3QsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyQmFz
ZUpTT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJCYXNlSlNPYmplY3QsIDApOwog
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQnVpbHRpbiIsIGZ1bmN0aW9uQ3JlYXRlQnVpbHRp
biwgMik7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA1
MDhlMTlkNjJiNDg4NGVmMDQ3OGE3YTNmMTQ0NjdjZGQwZDY1ODMwLi4wMjRhMDlmMTFhNzFlOTVi
NWE4ZDkyM2ZiY2RkNzEzYzFjM2E5Y2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMTc3LDYg
KzE3Nyw3IEBAIHNldChXVEZfUFVCTElDX0hFQURFUlMKICAgICBQbGF0Zm9ybUNQVS5oCiAgICAg
UGxhdGZvcm1FbmFibGUuaAogICAgIFBsYXRmb3JtRW5hYmxlQ29jb2EuaAorICAgIFBsYXRmb3Jt
RW5hYmxlUGxheVN0YXRpb24uaAogICAgIFBsYXRmb3JtRW5hYmxlV2luQXBwbGUuaAogICAgIFBs
YXRmb3JtRW5hYmxlV2luQ2Fpcm8uaAogICAgIFBsYXRmb3JtSGF2ZS5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAppbmRl
eCA3NzE2YmE0MThkZGFlZDMzNGY0MGI1NjBjY2E3MjMzNjk1Y2ZlODc4Li43YmYwZWNhNGI3MDc3
YzhlYzU4MTQ0N2ZiNTg0MjRmNjY4MWFlZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9P
cHRpb25hbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKQEAgLTQxMSwyMCArNDEx
LDI2IEBAIHB1YmxpYzoKICAgY29uc3RleHByIE9wdGlvbmFsKCkgX19OT0VYQ0VQVCA6IE9wdGlv
bmFsQmFzZTxUPigpICB7fTsKICAgY29uc3RleHByIE9wdGlvbmFsKG51bGxvcHRfdCkgX19OT0VY
Q0VQVCA6IE9wdGlvbmFsQmFzZTxUPigpIHt9OwogCi0gIE9wdGlvbmFsKGNvbnN0IE9wdGlvbmFs
JiByaHMpCisgIGNvbnN0ZXhwciBPcHRpb25hbChjb25zdCBPcHRpb25hbCYgcmhzKQogICA6IE9w
dGlvbmFsQmFzZTxUPigpCiAgIHsKICAgICBpZiAocmhzLmluaXRpYWxpemVkKCkpIHsKLSAgICAg
ICAgOjpuZXcgKHN0YXRpY19jYXN0PHZvaWQqPihkYXRhcHRyKCkpKSBUKCpyaHMpOworICAgICAg
ICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfdHJpdmlhbGx5X2NvcHlhYmxlX3Y8VD4pCisgICAgICAg
ICAgICBPcHRpb25hbEJhc2U8VD46OnN0b3JhZ2VfID0gKnJoczsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgOjpuZXcgKHN0YXRpY19jYXN0PHZvaWQqPihkYXRhcHRyKCkpKSBUKCpyaHMpOwog
ICAgICAgICBPcHRpb25hbEJhc2U8VD46OmluaXRfID0gdHJ1ZTsKICAgICB9CiAgIH0KIAotICBP
cHRpb25hbChPcHRpb25hbCYmIHJocykgX19OT0VYQ0VQVF8oZGV0YWlsXzo6aXNfbm90aHJvd19t
b3ZlX2NvbnN0cnVjdGlibGU8VD46OnZhbHVlKQorICBjb25zdGV4cHIgT3B0aW9uYWwoT3B0aW9u
YWwmJiByaHMpIF9fTk9FWENFUFRfKGRldGFpbF86OmlzX25vdGhyb3dfbW92ZV9jb25zdHJ1Y3Rp
YmxlPFQ+Ojp2YWx1ZSkKICAgOiBPcHRpb25hbEJhc2U8VD4oKQogICB7CiAgICAgaWYgKHJocy5p
bml0aWFsaXplZCgpKSB7Ci0gICAgICAgIDo6bmV3IChzdGF0aWNfY2FzdDx2b2lkKj4oZGF0YXB0
cigpKSkgVChzdGQ6Om1vdmUoKnJocykpOworICAgICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNf
dHJpdmlhbGx5X2NvcHlhYmxlX3Y8VD4pCisgICAgICAgICAgICBPcHRpb25hbEJhc2U8VD46OnN0
b3JhZ2VfID0gKnJoczsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgOjpuZXcgKHN0YXRpY19j
YXN0PHZvaWQqPihkYXRhcHRyKCkpKSBUKHN0ZDo6bW92ZSgqcmhzKSk7CiAgICAgICAgIE9wdGlv
bmFsQmFzZTxUPjo6aW5pdF8gPSB0cnVlOwogICAgICAgICByaHMuY2xlYXIoKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaAppbmRleCBmZTUxNjRlNGE4ZjVhYWQ1OGIyNzhiNDQ5NDNkM2Uz
MjhkOWE0NzAwLi4xZTBmM2ViODM0OTdkZGU4ZjUyNjI3NGRkYjdkMjZiNjcwOTE5NWY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlLmgKQEAgLTk1LDcgKzk1LDEwIEBACiAjaW5jbHVkZSA8d3RmL1Bs
YXRmb3JtRW5hYmxlV2luQ2Fpcm8uaD4KICNlbmRpZgogCi0KKy8qIC0tLS0tLS0tLSBQbGF5U3Rh
dGlvbiBwb3J0IC0tLS0tLS0tLSAqLworI2lmIFBMQVRGT1JNKFBMQVlTVEFUSU9OKQorI2luY2x1
ZGUgPHd0Zi9QbGF0Zm9ybUVuYWJsZVBsYXlTdGF0aW9uLmg+CisjZW5kaWYKIAogLyogLS0tLS0t
LS0tICBFTkFCTEUgbWFjcm8gZGVmYXVsdHMgLS0tLS0tLS0tICovCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlUGxheVN0YXRpb24uaCBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlUGxheVN0YXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWRjOWM5NjU2MjFhNzMz
YjU2MjM4OTJjMzM4N2U2ZTRlY2VjNDdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGVQbGF5U3RhdGlvbi5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZm5kZWYgV1RGX1BMQVRGT1JNX0dVQVJEX0FHQUlO
U1RfSU5ESVJFQ1RfSU5DTFVTSU9OCisjZXJyb3IgIlBsZWFzZSAjaW5jbHVkZSA8d3RmL1BsYXRm
b3JtLmg+IGluc3RlYWQgb2YgdGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWYgIVBM
QVRGT1JNKFBMQVlTVEFUSU9OKQorI2Vycm9yICJUaGlzIGZpbGUgc2hvdWxkIG9ubHkgYmUgaW5j
bHVkZWQgd2hlbiBidWlsZGluZyB0aGUgUGxheVN0YXRpb24gcG9ydC4iCisjZW5kaWYKKworLyog
LS0tLS0tLS0tIFBsYXlTdGF0aW9uIHBvcnQgLS0tLS0tLS0tICovCisKKyNpZiAhZGVmaW5lZChF
TkFCTEVfTExJTlRfRU1CRURERURfT1BDT0RFX0lEKQorI2RlZmluZSBFTkFCTEVfTExJTlRfRU1C
RURERURfT1BDT0RFX0lEIDAKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEb2N1bWVudEN1c3RvbS5oCmluZGV4IGE1Mzk2MzY0ODRhZDNhNDE1YzllMzlmMGNjMjM3OTMy
NDJkYWI1OTEuLjgxY2I5MTBmYWY2Nzk5YTI2ZTFlZTE0ZDRiNjQ1Y2I0OTc1MDZhMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmgKQEAgLTM0LDEw
ICszNCwxMSBAQCBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycyB7CiAKIHRlbXBsYXRlPD4KIHN0
cnVjdCBJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0RvY3VtZW50PiB7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBPcHRpb25hbDxKU1R5cGVSYW5nZT4gdHlwZVJhbmdlIHsgSlNUeXBlUmFuZ2UgeyBz
dGF0aWNfY2FzdDxKU1R5cGU+KFdlYkNvcmU6OkpTRG9jdW1lbnRXcmFwcGVyVHlwZSksIHN0YXRp
Y19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNEb2N1bWVudFdyYXBwZXJUeXBlKSB9IH07CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KLSAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMo
Vk0mLCBGcm9tKiBmcm9tKQorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0cyhWTSYgdm0s
IEZyb20qIGZyb20pCiAgICAgewotICAgICAgICByZXR1cm4gZnJvbS0+dHlwZSgpID09IFdlYkNv
cmU6OkpTRG9jdW1lbnRXcmFwcGVyVHlwZTsKKyAgICAgICAgcmV0dXJuIGluaGVyaXRzSlNUeXBl
SW1wbDxXZWJDb3JlOjpKU0RvY3VtZW50Pih2bSwgZnJvbSwgKnR5cGVSYW5nZSk7CiAgICAgfQog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3Vz
dG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAppbmRl
eCA1YzYxNDQ3N2Y2MzNiZTJkN2MxMzA1OGM2Nzk3NjY2ZTgzNzQ1Zjc0Li4yNWE2ODNjOWVjOWJi
NTUwNzViZmVjODA1MmFmYmI1ODlmMTA1OWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0VsZW1lbnRDdXN0b20uaApAQCAtMzQsMTAgKzM0LDExIEBAIG5hbWVzcGFjZSBKU0Nh
c3RpbmdIZWxwZXJzIHsKIAogdGVtcGxhdGU8Pgogc3RydWN0IEluaGVyaXRzVHJhaXRzPFdlYkNv
cmU6OkpTRWxlbWVudD4geworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNUeXBlUmFu
Z2U+IHR5cGVSYW5nZSB7IEpTVHlwZVJhbmdlIHsgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3Jl
OjpKU0VsZW1lbnRUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpKU0VsZW1lbnRU
eXBlKSB9IH07CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KLSAgICBzdGF0aWMgaW5saW5l
IGJvb2wgaW5oZXJpdHMoVk0mLCBGcm9tKiBmcm9tKQorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBp
bmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20pCiAgICAgewotICAgICAgICByZXR1cm4gZnJvbS0+
dHlwZSgpID09IFdlYkNvcmU6OkpTRWxlbWVudFR5cGU7CisgICAgICAgIHJldHVybiBpbmhlcml0
c0pTVHlwZUltcGw8V2ViQ29yZTo6SlNFbGVtZW50Pih2bSwgZnJvbSwgKnR5cGVSYW5nZSk7CiAg
ICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5oCmlu
ZGV4IDJlNjVhMzEyMmFjYmQ2ZGNjNmNjZjA2NzAxNTJiYTU1M2U5NGU2NjEuLmUwM2EwZGM1ZmRk
MTVhN2ZmZjA5ZGM1YjIzMDU2Y2VjYWRhZDM3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50Q3VzdG9tLmgKQEAgLTM0LDEwICszNCwxMSBAQCBuYW1lc3BhY2UgSlNDYXN0
aW5nSGVscGVycyB7CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBJbmhlcml0c1RyYWl0czxXZWJDb3Jl
OjpKU0V2ZW50PiB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25hbDxKU1R5cGVSYW5nZT4g
dHlwZVJhbmdlIHsgeyBzdGF0aWNfY2FzdDxKU1R5cGU+KFdlYkNvcmU6OkpTRXZlbnRUeXBlKSwg
c3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpKU0V2ZW50VHlwZSkgfSB9OwogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZyb20+Ci0gICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiwg
RnJvbSogZnJvbSkKKyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9t
KiBmcm9tKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBXZWJDb3JlOjpK
U0V2ZW50VHlwZTsKKyAgICAgICAgcmV0dXJuIGluaGVyaXRzSlNUeXBlSW1wbDxXZWJDb3JlOjpK
U0V2ZW50Pih2bSwgZnJvbSwgKnR5cGVSYW5nZSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaAppbmRleCA1ODk1MGNiZTIwYmI2MjExMWIxOGI2
OWZiMDg2ZWYwMjQ5NmYyZDY4Li4zNDRjZTgxNWFiNjMxNDlmZmZlODA4MzUzOWMyM2MxYWIyODhk
NmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaApAQCAtMzQs
MTAgKzM0LDEyIEBAIG5hbWVzcGFjZSBKU0Nhc3RpbmdIZWxwZXJzIHsKIAogdGVtcGxhdGU8Pgog
c3RydWN0IEluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTTm9kZT4geworICAgIHN0YXRpYyBjb25z
dGV4cHIgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7IHsgc3RhdGljX2Nhc3Q8SlNU
eXBlPihXZWJDb3JlOjpKU05vZGVUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpK
U05vZGVUeXBlICsgV2ViQ29yZTo6SlNOb2RlVHlwZU1hc2spIH0gfTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDhfdD46Om1heCgpID09IHR5cGVSYW5nZS0+bGFz
dCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KLSAgICBzdGF0aWMgaW5saW5lIGJvb2wg
aW5oZXJpdHMoVk0mLCBGcm9tKiBmcm9tKQorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0
cyhWTSYgdm0sIEZyb20qIGZyb20pCiAgICAgewotICAgICAgICByZXR1cm4gZnJvbS0+dHlwZSgp
ID49IFdlYkNvcmU6OkpTTm9kZVR5cGU7CisgICAgICAgIHJldHVybiBpbmhlcml0c0pTVHlwZUlt
cGw8V2ViQ29yZTo6SlNOb2RlPih2bSwgZnJvbSwgKnR5cGVSYW5nZSk7CiAgICAgfQogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCA2N2MzM2VmZDJiZjExZmRmODI4N2MzMjQwZDhhZTE0OGIwMzY4MjM4Li43NWExNGEw
MzQ1M2U1YmI3MGNhNjI0ZTBiMzNkMzcxODhjOTMzOGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzAyMSw3ICszMDIx
LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAjIENoZWNr
U3ViQ2xhc3MgU25pcHBldCBmdW5jdGlvbi4KKyAgICAjIENoZWNrSlNDYXN0IFNuaXBwZXQgZnVu
Y3Rpb24uCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH0p
IHsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8SmF2YVNjcmlwdENvcmUvU25pcHBldC5oPiJ9
ID0gMTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpZiBFTkFCTEUoSklUKVxuIik7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDAwNDM4MzcxODUzNGNlZmZmM2NjYzc3OTMzYjA5ODBiMDFmNGZhYmQuLjk3MDVkMzFiMTczNDk4
NzBiZjY2ODZmYWQ3ZGNiODFmZmYxMDdhYWYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDUtMjYgIEtl
aXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgZm9yLW9mIHNo
b3VsZCBjaGVjayB0aGUgaXRlcmFibGUgaXMgYSBKU0FycmF5IGZvciBGYXN0QXJyYXkgaW4gREZH
IGl0ZXJhdG9yX29wZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMjM4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3RyZXNzL2NoZWNrLXN1Yi1jbGFzcy5qczoKKyAgICAgICAgKiBzdHJlc3MvZm9y
LW9mLWl0ZXJhdG9yLW9wZW4tZmFzdC1hcnJheS1zaG91bGQtY2hlY2stanMtdHlwZS5qczogQWRk
ZWQuCisgICAgICAgIChmb28pOgorCiAyMDIwLTA1LTI2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBJdGVyYXRvckNsb3NlIHNob3VsZCBzdXBwcmVz
cyBHZXRNZXRob2QgZXJyb3JzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9jaGVjay1zdWIt
Y2xhc3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9jaGVjay1zdWItY2xhc3MuanMKaW5kZXggNGI0YjFk
NDY2Y2IyMDkxMzEyN2YzYzNmZGNhNjBiMTg3NGYwMDZlYy4uOTlkZThmYjM2ZWQzMTYxM2M5ZjU0
NmEyN2I3MmRiN2I5YjYwN2U4YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvY2hlY2stc3Vi
LWNsYXNzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2NoZWNrLXN1Yi1jbGFzcy5qcwpAQCAtMSw1
ICsxLDUgQEAKIHZhciBjcmVhdGVET01KSVROb2RlT2JqZWN0ID0gJHZtLmNyZWF0ZURPTUpJVE5v
ZGVPYmplY3Q7Ci12YXIgY3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCA9ICR2bS5jcmVh
dGVET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OwordmFyIGNyZWF0ZURPTUpJVENoZWNrSlNDYXN0
T2JqZWN0ID0gJHZtLmNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0OwogCiBmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiAgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
CkBAIC0yMywxMSArMjMsMTEgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNz
YWdlKSB7CiAKIHZhciBhcnJheSA9IFtdOwogZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkK
LSAgICBhcnJheS5wdXNoKGNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QoKSk7CisgICAg
YXJyYXkucHVzaChjcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVjdCgpKTsKIAotLy8gRE9NSklU
Tm9kZSBpcyBhbiBpbnN0YW5jZSBvZiBhIHN1cGVyIGNsYXNzIChET01KSVROb2RlKSBvZiBET01K
SVRDaGVja1N1YkNsYXNzT2JqZWN0LgorLy8gRE9NSklUTm9kZSBpcyBhbiBpbnN0YW5jZSBvZiBh
IHN1cGVyIGNsYXNzIChET01KSVROb2RlKSBvZiBET01KSVRDaGVja0pTQ2FzdE9iamVjdC4KIHZh
ciBub2RlID0gY3JlYXRlRE9NSklUTm9kZU9iamVjdCgpOwotbm9kZS5mdW5jID0gY3JlYXRlRE9N
SklUQ2hlY2tTdWJDbGFzc09iamVjdCgpLmZ1bmM7Citub2RlLmZ1bmMgPSBjcmVhdGVET01KSVRD
aGVja0pTQ2FzdE9iamVjdCgpLmZ1bmM7CiAKIGZ1bmN0aW9uIGNhbGxpbmcoZG9tKQogewpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZm9yLW9mLWl0ZXJhdG9yLW9wZW4tZmFzdC1hcnJheS1z
aG91bGQtY2hlY2stanMtdHlwZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1vZi1pdGVyYXRvci1v
cGVuLWZhc3QtYXJyYXktc2hvdWxkLWNoZWNrLWpzLXR5cGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI4YjY5
ZWIzMTFlMTJmNjg5ODExYzI0ZTZiZDEwYTk5OWRhYmM1YwotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2Zvci1vZi1pdGVyYXRvci1vcGVuLWZhc3QtYXJyYXktc2hvdWxkLWNoZWNr
LWpzLXR5cGUuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBmb28oYTApIHsKKyAgTnVtYmVy
LnByb3RvdHlwZS5fX3Byb3RvX18gPSBbXTsKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDA7
IGkrKykge30KKyAgZm9yIChsZXQgcSBvZiBhMCkge30KK30KKworZm9vKFtdKTsKK2ZvbygwKTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400305</attachid>
            <date>2020-05-26 20:21:10 -0700</date>
            <delta_ts>2020-05-27 14:21:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212383-20200526202109.patch</filename>
            <type>text/plain</type>
            <size>41276</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZDJlODIyZDViYTZmNmJmMGMyYzg4ZTBjNWM4NzdjNzM1MjM3NTZjLi40MmYyMGJmMDEwZjBiYWZi
ZjI4YTA4MjdiOGE4YThmZjk4OTIzMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NCBAQAorMjAyMC0wNS0yNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBpcyBhIEpT
QXJyYXkgZm9yIEZhc3RBcnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1
ZSB3aGVyZSB3ZSBkaWRuJ3QgY2hlY2sgdGhhdCB0aGUgaXRlcmFibGUgb3BlcmFuZCB0bworICAg
ICAgICBpdGVyYXRvcl9vcGVuIHdhcyBhIEpTQXJyYXkgd2hlbiBsb3dlcmluZyB0aGUgRmFzdEFy
cmF5IG9ubHkgdmFyaWFudCBvZiB0aGUgYnl0ZWNvZGUgdG8gdGhlIERGRy4KKyAgICAgICAgVGhp
cyBtZWFudCB3ZSB3b3VsZCBPU1IgZXhpdCBhdCB0aGUgaXRlcmF0b3JfbmV4dCdzIGxvd2VyaW5n
IHRoZW4gYXNzZXJ0aW9uIGZhaWx1cmUgaW4gdGhlCisgICAgICAgIGNoZWNrcG9pbnQgT1NSIGV4
aXQgaGVscGVyLiBUbyBtYWtlIHRoaXMgd29yaywgdGhpcyBwYXRjaCBleHRlbmRzIChhbmQgcmVu
YW1lcyBmcm9tIENoZWNrU3ViQ2xhc3MpCisgICAgICAgIENoZWNrSlNDYXN0IHRvIHVzZSB0aGUg
c2FtZSBKU1R5cGUgaW5mb3JtYXRpb24gdGhhdCB3ZSB1c2UgZm9yIHRoZSBqc0Nhc3QgZnVuY3Rp
b24uIEluIG9yZGVyIHRvCisgICAgICAgIGdldCB0aGUgSlNUeXBlIHJhbmdlIGZyb20gYSBDbGFz
c0luZm8qIHRoZSBtYWNybyB0aGF0IGF1dG9nZW5lcmF0ZXMgTWV0aG9kVGFibGUgbm93IGFsc28g
ZmlsbHMKKyAgICAgICAgYSBPcHRpb25hbDxKU1R5cGVSYW5nZT4gaW50byB0aGUgQ2xhc3NJbmZv
IGFzIHdlbGwuCisKKyAgICAgICAgTGFzdGx5LCBhZGQgc3RhdGljX2Fzc2VydHMgdG8gdGhlIGNh
c2VzIHdoZXJlIHdlIGRvbid0IGNoZWNrIGZvciBzdWJjbGFzc2VzIGluIHNwZWN1bGF0aW9uRnJv
bUNsYXNzSW5mby4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlRE9NSklUR2V0
dGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAg
ICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAg
ICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBo
YXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmF0dGVtcHRU
b01ha2VDYWxsRE9NKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cENoZWNr
SlNDYXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cENoZWNrU3ViQ2xh
c3MpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6aGFzQ2xhc3NJbmZvIGNvbnN0KToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUu
aDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAg
ICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRv
RXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSlNDYXN0KToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MpOiBEZWxldGVk
LgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tKU0Nhc3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tTdWJDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9DbGFzc0luZm8uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2FzdC5oOgorICAgICAg
ICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjppbmhlcml0c0pTVHlwZUltcGwpOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJ
VENoZWNrSlNDYXN0T2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNoQ3Jl
YXRpb24pOgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NP
YmplY3QpOiBEZWxldGVkLgorCiAyMDIwLTA1LTI2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgc29tZSBuZXcgZW1pdHRlcnMgdG8gdGhlIFg4Nl82NCBhbmQg
QVJNNjQgTWFjcm9Bc3NlbWJsZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAyZTQ2YTgzZjc4MmI5M2VjM2Q4MGY0NmY2ZTIw
ZmU2N2E5ZTQyMGI3Li41Nzk5OWVlNGI5MTZmN2Q1OGQ5OWVjOGJiMDJkM2JmZTdhM2YwMDUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTI2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxs
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIGZvci1vZiBzaG91bGQgY2hlY2sgdGhlIGl0ZXJhYmxl
IGlzIGEgSlNBcnJheSBmb3IgRmFzdEFycmF5IGluIERGRyBpdGVyYXRvcl9vcGVuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIzODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPcHRpb25hbCBzaG91bGQg
YmUgYWJsZSB0byBjb3B5L21vdmUgY29uc3RydWN0b3IgaXRzZWxmIGFzIGxvbmcgYXMgPFQ+IGlz
CisgICAgICAgIHRyaXZpYWxseSBjb3B5YWJsZS4gVGhpcyBsZXRzIHVzIGNvcHkgT3B0aW9uYWxz
IGludG8gY29uc3QgZ2xvYmFscyB3aXRob3V0CisgICAgICAgIGdsb2JhbCBjb25zdHJ1Y3RvcnMu
CisKKyAgICAgICAgKiB3dGYvT3B0aW9uYWwuaDoKKyAgICAgICAgKFdURjo6T3B0aW9uYWw6Ok9w
dGlvbmFsKToKKyAgICAgICAgKFdURjo6T3B0aW9uYWw6Ol9fTk9FWENFUFRfKToKKwogMjAyMC0w
NS0yNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVURi04IGVuY29kZSBzdHJpbmdzIG9mIGludmFsaWQgVVJMcyB3aGVuIGNvbnZlcnRpbmcg
V1RGOjpVUkwgdG8gTlNVUkwgaW5zdGVhZCBvZiB0cnVuY2F0aW5nIHRoZSBVVEYtMTYgZW5jb2Rp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAxOWM1MmY3YTRkYTU0ZDBjMWY2NTc1NmViNmFiNjc2NWM0YWY1MjRh
Li5mYzIyYzg2MzE5YmFiMTkzOGVlZDc1NTQ2M2E3YjVjZWYwZGRmYzg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMjAtMDUtMjYgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBh
cHBsZS5jb20+CisKKyAgICAgICAgZm9yLW9mIHNob3VsZCBjaGVjayB0aGUgaXRlcmFibGUgaXMg
YSBKU0FycmF5IGZvciBGYXN0QXJyYXkgaW4gREZHIGl0ZXJhdG9yX29wZW4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjM4MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB2YXJpb3VzIEluaGVy
aXRzVHJhaXRzIHNwZWNpYWxpemF0aW9ucyB0byBjb250YWluIGEgdHlwZVJhbmdlIG1lbWJlci4K
KyAgICAgICAgQWxzbywgY2hhbmdlIHRoZSBpbmhlcml0cyBmdW5jdGlvbiB0byB1c2UgaW5oZXJp
dHNKU1R5cGVJbXBsIGxpa2UgdGhlIEpTQworICAgICAgICB2YXJpYW50cy4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaDoKKyAgICAgICAgKEpTQzo6SlNDYXN0aW5n
SGVscGVyczo6SW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNEb2N1bWVudD46OmluaGVyaXRzKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaDoKKyAgICAgICAgKEpTQzo6
SlNDYXN0aW5nSGVscGVyczo6SW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNFbGVtZW50Pjo6aW5o
ZXJpdHMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uaDoKKyAgICAgICAg
KEpTQzo6SlNDYXN0aW5nSGVscGVyczo6SW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNFdmVudD46
OmluaGVyaXRzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaDoKKyAgICAg
ICAgKEpTQzo6SlNDYXN0aW5nSGVscGVyczo6SW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNOb2Rl
Pjo6aW5oZXJpdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorCiAyMDIwLTA1LTI2ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIENhbid0IHNjcnViIHZpZGVvIG9uIGh0
dHBzOi8vd3d3Lmp1ZGljaWFyeS5zZW5hdGUuZ292CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAppbmRleCA3YWU5ZDhjN2U3NGE1YWQ4YTE2
ODA4OTUxMWZjZDZkODhhNDNhNmY3Li5hYzg3N2VmMjYyOTRhYTBiZDU4ZDNhNDAzNGEwNDEwNjJj
MzU5MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3Vs
YXRlZFR5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxh
dGVkVHlwZS5jcHAKQEAgLTQzNCw1MSArNDM0LDY0IEBAIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0
aW9uRnJvbVR5cGVkQXJyYXlUeXBlKFR5cGVkQXJyYXlUeXBlIHR5cGUpCiAKIFNwZWN1bGF0ZWRU
eXBlIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykK
IHsKLSAgICBpZiAoY2xhc3NJbmZvID09IEpTU3RyaW5nOjppbmZvKCkpCisgICAgaWYgKGNsYXNz
SW5mby0+aXNTdWJDbGFzc09mKEpTU3RyaW5nOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gU3Bl
Y1N0cmluZzsKIAorICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PFN5bWJvbD4pOwog
ICAgIGlmIChjbGFzc0luZm8gPT0gU3ltYm9sOjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVj
U3ltYm9sOwogICAgIAorICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU0FycmF5Ojpp
bmZvKCkpKQorICAgICAgICByZXR1cm4gU3BlY0FycmF5IHwgU3BlY0Rlcml2ZWRBcnJheTsKKwor
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PEpTQmlnSW50Pik7CiAgICAgaWYgKGNs
YXNzSW5mbyA9PSBKU0JpZ0ludDo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY0hlYXBCaWdJ
bnQ7CiAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxKU0ZpbmFsT2JqZWN0Pik7
CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBKU0ZpbmFsT2JqZWN0OjppbmZvKCkpCiAgICAgICAgIHJl
dHVybiBTcGVjRmluYWxPYmplY3Q7CiAgICAgCi0gICAgaWYgKGNsYXNzSW5mbyA9PSBKU0FycmF5
OjppbmZvKCkpCi0gICAgICAgIHJldHVybiBTcGVjQXJyYXk7Ci0gICAgCisgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2ZpbmFsX3Y8RGlyZWN0QXJndW1lbnRzPik7CiAgICAgaWYgKGNsYXNzSW5m
byA9PSBEaXJlY3RBcmd1bWVudHM6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNEaXJlY3RB
cmd1bWVudHM7CiAgICAgCisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8U2NvcGVk
QXJndW1lbnRzPik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBTY29wZWRBcmd1bWVudHM6OmluZm8o
KSkKICAgICAgICAgcmV0dXJuIFNwZWNTY29wZWRBcmd1bWVudHM7CiAgICAgCi0gICAgaWYgKGNs
YXNzSW5mbyA9PSBTdHJpbmdPYmplY3Q6OmluZm8oKSkKKyAgICBpZiAoY2xhc3NJbmZvLT5pc1N1
YkNsYXNzT2YoU3RyaW5nT2JqZWN0OjppbmZvKCkpKQogICAgICAgICByZXR1cm4gU3BlY1N0cmlu
Z09iamVjdDsKIAorICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PFJlZ0V4cE9iamVj
dD4pOwogICAgIGlmIChjbGFzc0luZm8gPT0gUmVnRXhwT2JqZWN0OjppbmZvKCkpCiAgICAgICAg
IHJldHVybiBTcGVjUmVnRXhwT2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Zp
bmFsX3Y8RGF0ZUluc3RhbmNlPik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBEYXRlSW5zdGFuY2U6
OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogCisgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNNYXA+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpTTWFw
OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjTWFwT2JqZWN0OwogCisgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNTZXQ+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpTU2V0
OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjU2V0T2JqZWN0OwogCisgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNXZWFrTWFwPik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBK
U1dlYWtNYXA6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFwT2JqZWN0OwogCisg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNXZWFrU2V0Pik7CiAgICAgaWYgKGNs
YXNzSW5mbyA9PSBKU1dlYWtTZXQ6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNXZWFrU2V0
T2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8UHJveHlPYmplY3Q+
KTsKICAgICBpZiAoY2xhc3NJbmZvID09IFByb3h5T2JqZWN0OjppbmZvKCkpCiAgICAgICAgIHJl
dHVybiBTcGVjUHJveHlPYmplY3Q7CiAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxf
djxKU0RhdGFWaWV3Pik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBKU0RhdGFWaWV3OjppbmZvKCkp
CiAgICAgICAgIHJldHVybiBTcGVjRGF0YVZpZXdPYmplY3Q7CiAgICAgCkBAIC00OTMsOSArNTA2
LDYgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKGNvbnN0IENsYXNz
SW5mbyogY2xhc3NJbmZvKQogICAgIAogICAgIGlmIChpc1R5cGVkVmlldyhjbGFzc0luZm8tPnR5
cGVkQXJyYXlTdG9yYWdlVHlwZSkpCiAgICAgICAgIHJldHVybiBzcGVjdWxhdGlvbkZyb21UeXBl
ZEFycmF5VHlwZShjbGFzc0luZm8tPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSk7Ci0KLSAgICBpZiAo
Y2xhc3NJbmZvLT5pc1N1YkNsYXNzT2YoSlNBcnJheTo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJu
IFNwZWNEZXJpdmVkQXJyYXk7CiAgICAgCiAgICAgaWYgKGNsYXNzSW5mby0+aXNTdWJDbGFzc09m
KEpTT2JqZWN0OjppbmZvKCkpKQogICAgICAgICByZXR1cm4gU3BlY09iamVjdE90aGVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCmluZGV4IDVmYzE5ODMwNWNmNDlkODA3NTE3OGRkMTU1M2NmNGVkODc1YjMx
MzQuLmQxNDQ1NTA0ZDZiMzMwYzBhNjQ5ODlhZjg0ZWFiZmQzYWViZDczNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKQEAgLTM1MTEsMTAgKzM1MTEsMTMgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkK
ICAgICAgICAgICAgIGRpZEZvbGRDbG9iYmVyU3RydWN0dXJlcygpOwogICAgICAgICBjbGVhckZv
ck5vZGUobm9kZSk7IC8vIFRoZSByZXN1bHQgaXMgbm90IGEgSlMgdmFsdWUuCiAgICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgQ2hlY2tTdWJDbGFzczogeworICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6IHsK
KyAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8gPSBub2RlLT5jbGFzc0luZm8oKTsK
ICAgICAgICAgSlNWYWx1ZSBjb25zdGFudCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVl
KCk7CiAgICAgICAgIGlmIChjb25zdGFudCkgewotICAgICAgICAgICAgaWYgKGNvbnN0YW50Lmlz
Q2VsbCgpICYmIGNvbnN0YW50LmFzQ2VsbCgpLT5pbmhlcml0cyhtX3ZtLCBub2RlLT5jbGFzc0lu
Zm8oKSkpIHsKKyAgICAgICAgICAgIGlmIChjb25zdGFudC5pc0NlbGwoKSAmJiBjb25zdGFudC5h
c0NlbGwoKS0+aW5oZXJpdHMobV92bSwgY2xhc3NJbmZvKSkgeworICAgICAgICAgICAgICAgIGlm
IChjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UpCisgICAgICAgICAgICAgICAgICAgIEFT
U0VSVChjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UtPmZpcnN0IDw9IGNvbnN0YW50LmFz
Q2VsbCgpLT50eXBlKCkgJiYgY29uc3RhbnQuYXNDZWxsKCktPnR5cGUoKSA8PSBjbGFzc0luZm8t
PmluaGVyaXRzSlNUeXBlUmFuZ2UtPmxhc3QpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0
U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgICAgIEFTU0VSVChj
b25zdGFudCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNTIzLDEwICszNTI2LDEwIEBA
IGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZl
Y3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAKICAgICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUg
PSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKIAotICAgICAgICBpZiAodmFsdWUubV9zdHJ1Y3R1
cmUuaXNTdWJDbGFzc09mKG5vZGUtPmNsYXNzSW5mbygpKSkKKyAgICAgICAgaWYgKHZhbHVlLm1f
c3RydWN0dXJlLmlzU3ViQ2xhc3NPZihjbGFzc0luZm8pKQogICAgICAgICAgICAgbV9zdGF0ZS5z
ZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAKLSAgICAgICAgZmlsdGVyQ2xhc3NJ
bmZvKHZhbHVlLCBub2RlLT5jbGFzc0luZm8oKSk7CisgICAgICAgIGZpbHRlckNsYXNzSW5mbyh2
YWx1ZSwgY2xhc3NJbmZvKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQ2FsbERP
TUdldHRlcjogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAppbmRleCBjZGVjMTg2ZjE1OTVkMDExMjhiYTAwMDM0NjFiYmRlM2YyYjA5ZTJlLi43
ZDFlNDM2MWNiMzA3ZGIxNGFlYWVlOWQ2MmFkMDQ0ZDZkMzliOTBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMzg3Miw3ICszODcy
LDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlRE9NSklUR2V0dGVyKE9wZXJhbmQgcmVz
dWx0LCBjb25zdCBHZXRCeUlkVmFyaWFudCYgdmEKICAgICBhZGRUb0dyYXBoKENoZWNrU3RydWN0
dXJlLCBPcEluZm8obV9ncmFwaC5hZGRTdHJ1Y3R1cmVTZXQodmFyaWFudC5zdHJ1Y3R1cmVTZXQo
KSkpLCB0aGlzTm9kZSk7CiAgICAgCiAgICAgLy8gV2UgZG8gbm90IG5lZWQgdG8gZW1pdCBDaGVj
a0lzQ29uc3RhbnQgdGhpbmd5IGhlcmUuIFdoZW4gdGhlIGN1c3RvbSBhY2Nlc3NvciBpcyByZXBs
YWNlZCB0byBkaWZmZXJlbnQgb25lLCBTdHJ1Y3R1cmUgdHJhbnNpdGlvbiBvY2N1cnMuCi0gICAg
YWRkVG9HcmFwaChDaGVja1N1YkNsYXNzLCBPcEluZm8oZG9tQXR0cmlidXRlLT5jbGFzc0luZm8p
LCB0aGlzTm9kZSk7CisgICAgYWRkVG9HcmFwaChDaGVja0pTQ2FzdCwgT3BJbmZvKGRvbUF0dHJp
YnV0ZS0+Y2xhc3NJbmZvKSwgdGhpc05vZGUpOwogICAgIAogICAgIGJvb2wgd2FzU2VlbkluSklU
ID0gdHJ1ZTsKICAgICBHZXRCeVN0YXR1cyogc3RhdHVzID0gbV9ncmFwaC5tX3BsYW4ucmVjb3Jk
ZWRTdGF0dXNlcygpLmFkZEdldEJ5U3RhdHVzKGN1cnJlbnRDb2RlT3JpZ2luKCksIEdldEJ5U3Rh
dHVzKEdldEJ5U3RhdHVzOjpDdXN0b20sIHdhc1NlZW5JbkpJVCkpOwpAQCAtNjc0MSw5ICs2NzQx
LDEwIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAg
ICAgICAgICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShnbG9iYWxPYmplY3QtPmFycmF5UHJv
dG9WYWx1ZXNGdW5jdGlvbkNvbmN1cnJlbnRseSgpLCAiVGhlIG9ubHkgd2F5IHdlIGNvdWxkIGhh
dmUgc2VlbiBGYXN0QXJyYXkgaXMgaWYgd2Ugc2F3IHRoaXMgZnVuY3Rpb24gaW4gdGhlIExMSW50
L0Jhc2VsaW5lIHNvIHRoZSBpdGVyYXRvciBmdW5jdGlvbiBzaG91bGQgYmUgYWxsb2NhdGVkLiIp
OwogICAgICAgICAgICAgICAgIEZyb3plblZhbHVlKiBmcm96ZW5TeW1ib2xJdGVyYXRvckZ1bmN0
aW9uID0gbV9ncmFwaC5mcmVlemUoZ2xvYmFsT2JqZWN0LT5hcnJheVByb3RvVmFsdWVzRnVuY3Rp
b25Db25jdXJyZW50bHkoKSk7CiAgICAgICAgICAgICAgICAgbnVtYmVyT2ZSZW1haW5pbmdNb2Rl
cy0tOwotICAgICAgICAgICAgICAgIGlmICghbnVtYmVyT2ZSZW1haW5pbmdNb2RlcykKKyAgICAg
ICAgICAgICAgICBpZiAoIW51bWJlck9mUmVtYWluaW5nTW9kZXMpIHsKICAgICAgICAgICAgICAg
ICAgICAgYWRkVG9HcmFwaChDaGVja0lzQ29uc3RhbnQsIE9wSW5mbyhmcm96ZW5TeW1ib2xJdGVy
YXRvckZ1bmN0aW9uKSwgc3ltYm9sSXRlcmF0b3IpOwotICAgICAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrSlNDYXN0LCBPcEluZm8oSlNBcnJh
eTo6aW5mbygpKSwgZ2V0KGJ5dGVjb2RlLm1faXRlcmFibGUpKTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBmYXN0QXJyYXlCbG9jayA9
IGFsbG9jYXRlVW50YXJnZXRhYmxlQmxvY2soKTsKICAgICAgICAgICAgICAgICAgICAgZ2VuZXJp
Y0Jsb2NrID0gYWxsb2NhdGVVbnRhcmdldGFibGVCbG9jaygpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDA0MDFhYzFlMzZmYjc2ODBjNzJlYjdkNjg0
YWFlNjg2MTk5ZWQxYmYuLjM1MWVjMmQ0NzY5Mzk3Y2IwOTlhYzM5MjgwYjRlYzlkMzI1NDk2N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xMTgwLDcg
KzExODAsNyBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25z
dCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0
aW9uKEJ1dHRlcmZseUxvYywgSlNPYmplY3RfYnV0dGVyZmx5LCBub2RlLT5jaGlsZDEoKSksIExh
enlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2FzZSBDaGVja1N1YkNsYXNz
OgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAgICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSwgbm9k
ZS0+Y2xhc3NJbmZvKCkpKTsKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDJkY2Vl
YmExMTA4OWRhMmU3MGQzN2NiZmU2YTUzYzlmNWY3MjNmMTguLmFmMWQ0NDAwOGQ4NzI4YzdkNTcx
NzJhOWEwNWRkZjUyNWViZmJmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC0xOTQsNyArMTk0LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgY2FzZSBDaGVja1N1YkNsYXNzOiB7CisgICAgICAgICAgICBjYXNlIENoZWNrSlNDYXN0OiB7
CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBjb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2Rl
LT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAgICBpZiAoY29uc3RhbnQpIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKGNvbnN0YW50LmlzQ2VsbCgpICYmIGNvbnN0YW50LmFzQ2Vs
bCgpLT5pbmhlcml0cyhtX2dyYXBoLm1fdm0sIG5vZGUtPmNsYXNzSW5mbygpKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDRlZGJiMWY1ZmE0YWQ2NWY2MzFl
NzhmYWQ0ZmM1MjAzMTk3OWM2ZmUuLjY5YzUwMTBlOWEzMDJkNWJlMmM0MjAzMWQ0NmFmNTg1MWY5
NTlmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTExNCw3
ICsxMTQsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2Fz
ZSBDaGVja1N0cnVjdHVyZUltbWVkaWF0ZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAg
Y2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgY2FzZSBDaGVja1N1YkNsYXNzOgorICAgIGNhc2UgQ2hl
Y2tKU0Nhc3Q6CiAgICAgY2FzZSBDaGVja0FycmF5OgogICAgIGNhc2UgQ2hlY2tBcnJheU9yRW1w
dHk6CiAgICAgY2FzZSBDaGVja05ldXRlcmVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKaW5kZXggNTg1MmZjMWI2MDhlMDAxOTJlMWMwMjUyZjc5NDM1ZDYx
YjUwNTVkNC4uMzAwZDk1YzRkMDk5Y2Y5MDc2NTIyYmU5MTJkZTk4ZGYwY2UyZjUxYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yNTQxLDggKzI1
NDEsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAg
ICBjYXNlIENoZWNrU3ViQ2xhc3M6IHsKLSAgICAgICAgICAgIGZpeHVwQ2hlY2tTdWJDbGFzcyhu
b2RlKTsKKyAgICAgICAgY2FzZSBDaGVja0pTQ2FzdDogeworICAgICAgICAgICAgZml4dXBDaGVj
a0pTQ2FzdChub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTQwMzUs
MTQgKzQwMzUsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIE5vZGUqIHRoaXNO
b2RlID0gbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKS5ub2RlKCk7Ci0gICAgICAgIE5vZGUq
IGNoZWNrU3ViQ2xhc3MgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKG1faW5kZXhJbkJsb2Nr
LCBTcGVjTm9uZSwgQ2hlY2tTdWJDbGFzcywgbm9kZS0+b3JpZ2luLCBPcEluZm8oc2lnbmF0dXJl
LT5jbGFzc0luZm8pLCBFZGdlKHRoaXNOb2RlKSk7CisgICAgICAgIE5vZGUqIGNoZWNrU3ViQ2xh
c3MgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKG1faW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwg
Q2hlY2tKU0Nhc3QsIG5vZGUtPm9yaWdpbiwgT3BJbmZvKHNpZ25hdHVyZS0+Y2xhc3NJbmZvKSwg
RWRnZSh0aGlzTm9kZSkpOwogICAgICAgICBub2RlLT5jb252ZXJ0VG9DYWxsRE9NKG1fZ3JhcGgp
OwotICAgICAgICBmaXh1cENoZWNrU3ViQ2xhc3MoY2hlY2tTdWJDbGFzcyk7CisgICAgICAgIGZp
eHVwQ2hlY2tKU0Nhc3QoY2hlY2tTdWJDbGFzcyk7CiAgICAgICAgIGZpeHVwQ2FsbERPTShub2Rl
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgdm9pZCBmaXh1cENoZWNrU3Vi
Q2xhc3MoTm9kZSogbm9kZSkKKyAgICB2b2lkIGZpeHVwQ2hlY2tKU0Nhc3QoTm9kZSogbm9kZSkK
ICAgICB7CiAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggZDBhY2EwMWQzZGUwNzY5MmUyZWMy
Njk5NGI2ZDE4NTVmZDFjNjAwMi4uMjI0NzM3NjVmYjdmYWEyMmJmYjI3NWY5Yzc1ZDRlZmEyN2Nl
Y2JkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTI5NDUsNyArMjk0NSw3
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzQ2xhc3NJbmZvKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBvcCgpID09IENoZWNrU3ViQ2xhc3M7CisgICAgICAgIHJldHVybiBvcCgpID09
IENoZWNrSlNDYXN0OwogICAgIH0KIAogICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCA0M2I1M2U2YTk0ZWM2
ZWE5YzIyMDMzM2M3MjRiY2RmY2Y5Y2NlYjgwLi40Nzg5NjI4NjI2NzY2NmM1ZGY0YTg5ODYwY2U2
OGFjMjE4MDE5YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBA
IC0yODAsNyArMjgwLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1h
Y3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0SlMpIFwKICAg
ICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tU
eXBlSW5mb0ZsYWdzLCBOb2RlTXVzdEdlbmVyYXRlKSAvKiBUYWtlcyBhbiBPcEluZm8gd2l0aCB0
aGUgZmxhZ3MgeW91IHdhbnQgdG8gdGVzdCBhcmUgc2V0ICovXAotICAgIG1hY3JvKENoZWNrU3Vi
Q2xhc3MsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja0pTQ2FzdCwgTm9kZU11
c3RHZW5lcmF0ZSkgLyogVGhpcyBpcyB0aGUgc2FtZSBhcyBqc0Nhc3QgYnV0IGFzIGEgc3BlY3Vs
YXRpb24gcmF0aGVyIHRoYW4gYXNzZXJ0aW9uICovXAogICAgIG1hY3JvKFBhcnNlSW50LCBOb2Rl
TXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oR2V0UHJvdG90eXBlT2Ys
IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhPYmplY3RDcmVh
dGUsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0SlMpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAKaW5kZXggZjgwZmE4NjY0NGNlMzdlMTFkMTU1NDgzODYxY2FkYjdmNTAyZWI5Zi4uM2RiMGRk
MzYyMzliNTk0MTFlZDY0NTRhZTE4ZTk5ZjAxODFiMjc2NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAKQEAgLTEwNjAsNyArMTA2MCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogCi0gICAgICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKKyAgICAgICAgY2FzZSBDaGVj
a0pTQ2FzdDoKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgU2tpcFNjb3BlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCBiM2E4
MDllNzJhNDUxMDNiMDQwZDkwZjI2YTQ0MTE4MzRiZTk2NjA5Li42NzA3OGZlODk0ZmIyOTY0Y2Q3
N2JhYzIyYjAxZGQzNDY5NjcxODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NhZmVUb0V4ZWN1dGUuaApAQCAtMjM0LDcgKzIzNCw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShB
YnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgYm9vbCBp
Z25vCiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgIGNhc2UgQ2FsbERPTUdldHRlcjoKICAg
ICBjYXNlIENhbGxET006Ci0gICAgY2FzZSBDaGVja1N1YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tK
U0Nhc3Q6CiAgICAgY2FzZSBDaGVja0FycmF5OgogICAgIGNhc2UgQ2hlY2tBcnJheU9yRW1wdHk6
CiAgICAgY2FzZSBHZXRTY29wZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggM2QyMjVkY2EyZDhiODA3Yzc4ZjIzMjdhYzIzZDgxNzFl
N2YwZjIyOS4uMjUyODY3ODNhNGNlYzg1YmY3YTE3ODEzMThmM2NjN2ExZTUyN2Q5MiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTk5
OTksOSArOTk5OSwxOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2FsbERPTUdldHRl
cihOb2RlKiBub2RlKQogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LnJlZ3MoKSwgbm9kZSk7CiB9
CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja1N1YkNsYXNzKE5vZGUqIG5vZGUp
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tKU0Nhc3QoTm9kZSogbm9kZSkKIHsK
ICAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbyA9IG5vZGUtPmNsYXNzSW5mbygpOworICAg
IGlmIChjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UpIHsKKyAgICAgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIEdQUlJlZyBi
YXNlR1BSID0gYmFzZS5ncHIoKTsKKworICAgICAgICBhdXRvIGNoZWNrRmFpbGVkID0gbV9qaXQu
YnJhbmNoSWZOb3RUeXBlKGJhc2VHUFIsIGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5nZS0+
Zmlyc3QsIGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5nZS0+bGFzdCk7CisgICAgICAgIHNw
ZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoYmFzZUdQ
UiksIG5vZGUtPmNoaWxkMSgpLCBjaGVja0ZhaWxlZCk7CisgICAgICAgIG5vUmVzdWx0KG5vZGUp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCFjbGFzc0luZm8tPmNoZWNrU3Vi
Q2xhc3NTbmlwcGV0KSB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywg
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3Jhcnkgb3RoZXIodGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYWNiYjAz
Y2ZlYjgwOGUyODAyNWEyY2Y5ZThkMTNkYmI1YWY2OTdjOS4uZDkzNDZjNjdiOGNlMzMzYjQwMThl
NDk1YmI5MGU4MGY2YzRjOTFhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaApAQCAtMTI0Niw3ICsxMjQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
Y29tcGlsZUdldEJ1dHRlcmZseShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQ2FsbERPTUdldHRl
cihOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQ2FsbERPTShOb2RlKik7Ci0gICAgdm9pZCBjb21w
aWxlQ2hlY2tTdWJDbGFzcyhOb2RlKik7CisgICAgdm9pZCBjb21waWxlQ2hlY2tKU0Nhc3QoTm9k
ZSopOwogICAgIHZvaWQgY29tcGlsZU5vcm1hbGl6ZU1hcEtleShOb2RlKik7CiAgICAgdm9pZCBj
b21waWxlR2V0TWFwQnVja2V0SGVhZChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0TWFwQnVj
a2V0TmV4dChOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAxOWQwZTI4YTRlNzRlYWIwYjllMzhhOTE5N2Ez
MzkyZjhhZDhkMTM0Li5hM2MwNTkxNTM1Yjc4OTNlMDhkMDA1NWQ2YjJmMTY4OWEyNDQ2NzUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKQEAgLTQxNzQsOCArNDE3NCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZUNhbGxET01HZXR0ZXIobm9kZSk7CiAgICAg
ICAgIGJyZWFrOwogCi0gICAgY2FzZSBDaGVja1N1YkNsYXNzOgotICAgICAgICBjb21waWxlQ2hl
Y2tTdWJDbGFzcyhub2RlKTsKKyAgICBjYXNlIENoZWNrSlNDYXN0OgorICAgICAgICBjb21waWxl
Q2hlY2tKU0Nhc3Qobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBVbnJlYWNoYWJs
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCmluZGV4IDRkMjZkMzU2YjZmMTY3NWY3MzViM2M1MDY1MTY3YzMyMWY0Zjk4ZTMuLjE0NzU0
MWEzYjlkMTkyZTUwMTcxYTk4YjZiZDMwZWUxZWEyOWRkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNTA0Niw4ICs1MDQ2
LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBj
b21waWxlQ2FsbERPTUdldHRlcihub2RlKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIENo
ZWNrU3ViQ2xhc3M6Ci0gICAgICAgIGNvbXBpbGVDaGVja1N1YkNsYXNzKG5vZGUpOworICAgIGNh
c2UgQ2hlY2tKU0Nhc3Q6CisgICAgICAgIGNvbXBpbGVDaGVja0pTQ2FzdChub2RlKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIEV4dHJhY3RDYXRjaExvY2FsOiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggYzVhMTYwMTRiMzA5MmQ1
ODU4ODY3YTBlM2IxNzQ1NzE4ODFmYzY2Ny4uYTRmOTdkNDYwYjE4MmM4ZTQ1MTQ0MzMwMjIwYTJj
OTIxZjkzMDE1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29t
cGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgVG9Mb3dlckNhc2U6CiAgICAgY2FzZSBOdW1iZXJU
b1N0cmluZ1dpdGhSYWRpeDoKICAgICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFZhbGlkUmFkaXhD
b25zdGFudDoKLSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6CisgICAgY2FzZSBDaGVja0pTQ2FzdDoK
ICAgICBjYXNlIENhbGxET006CiAgICAgY2FzZSBDYWxsRE9NR2V0dGVyOgogICAgIGNhc2UgQXJy
YXlTbGljZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAppbmRleCBmYjdmY2VlY2I0NWNiNzlkOTcxYjUwMzlmNDA2MzY4ZDMzMjQxM2ZmLi42N2Q0YTZk
MGFiYzZlNWMzZDhjYzYxNTBiOGMxM2ZkMjhjNTBmZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xNTg2LDggKzE1ODYsOCBAQCBwcml2
YXRlOgogICAgICAgICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudDoK
ICAgICAgICAgICAgIGNvbXBpbGVOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQo
KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENoZWNrU3ViQ2xhc3M6Ci0gICAg
ICAgICAgICBjb21waWxlQ2hlY2tTdWJDbGFzcygpOworICAgICAgICBjYXNlIENoZWNrSlNDYXN0
OgorICAgICAgICAgICAgY29tcGlsZUNoZWNrSlNDYXN0KCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBDYWxsRE9NOgogICAgICAgICAgICAgY29tcGlsZUNhbGxET00oKTsKQEAg
LTEzOTMxLDExICsxMzkzMSwxOCBAQCBwcml2YXRlOgogICAgICAgICBjcmFzaCgpOwogICAgIH0K
IAotICAgIHZvaWQgY29tcGlsZUNoZWNrU3ViQ2xhc3MoKQorICAgIHZvaWQgY29tcGlsZUNoZWNr
SlNDYXN0KCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNo
aWxkMSgpKTsKIAogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbyA9IG1fbm9kZS0+
Y2xhc3NJbmZvKCk7CisKKyAgICAgICAgaWYgKGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5n
ZSkgeworICAgICAgICAgICAgTFZhbHVlIGhhc1R5cGUgPSBpc0NlbGxXaXRoVHlwZShjZWxsLCBj
bGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UtPmZpcnN0LCBjbGFzc0luZm8tPmluaGVyaXRz
SlNUeXBlUmFuZ2UtPmxhc3QpOworICAgICAgICAgICAgc3BlY3VsYXRlKEJhZFR5cGUsIGpzVmFs
dWVWYWx1ZShjZWxsKSwgbV9ub2RlLT5jaGlsZDEoKS5ub2RlKCksIG1fb3V0LmJpdE5vdChoYXNU
eXBlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIWNs
YXNzSW5mby0+Y2hlY2tTdWJDbGFzc1NuaXBwZXQpIHsKICAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGxvb3AgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgcGFyZW50
Q2xhc3MgPSBtX291dC5uZXdCbG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ2xhc3NJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
bGFzc0luZm8uaAppbmRleCBiMzJjOGZkYjVkNzY2ZDcwYmZlMWYwMDIxYWYyNjk2NjJlZTMyODU5
Li4zOWQyNmUwZDg2YTExNjM2NGJmNTA2NGNhMGYyZmQ4NGM0YjcwNjM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaApAQCAtMTUxLDcgKzE1MSw5IEBAIHN0cnVj
dCBNZXRob2RUYWJsZSB7CiAKICNkZWZpbmUgSEFTX01FTUJFUl9OQU1FRChrbGFzcywgbmFtZSkg
KE1lbWJlckNoZWNrIyNuYW1lPGtsYXNzPjo6aGFzKQogCi0jZGVmaW5lIENSRUFURV9NRVRIT0Rf
VEFCTEUoQ2xhc3NOYW1lKSB7IFwKKyNkZWZpbmUgQ1JFQVRFX01FVEhPRF9UQUJMRShDbGFzc05h
bWUpIFwKKyAgICBKU0Nhc3RpbmdIZWxwZXJzOjpJbmhlcml0c1RyYWl0czxDbGFzc05hbWU+Ojp0
eXBlUmFuZ2UsIFwKKyAgICB7IFwKICAgICAgICAgJkNsYXNzTmFtZTo6ZGVzdHJveSwgXAogICAg
ICAgICAmQ2xhc3NOYW1lOjp2aXNpdENoaWxkcmVuLCBcCiAgICAgICAgICZDbGFzc05hbWU6Omdl
dENhbGxEYXRhLCBcCkBAIC0xODUsMTAgKzE4NywxMCBAQCBzdHJ1Y3QgTWV0aG9kVGFibGUgewog
ICAgICAgICAmQ2xhc3NOYW1lOjp2aXNpdE91dHB1dENvbnN0cmFpbnRzLCBcCiAgICAgfSwgXAog
ICAgIENsYXNzTmFtZTo6VHlwZWRBcnJheVN0b3JhZ2VUeXBlLCBcCi0gICAgc2l6ZW9mKENsYXNz
TmFtZSkKKyAgICBzaXplb2YoQ2xhc3NOYW1lKSwKIAogc3RydWN0IENsYXNzSW5mbyB7Ci0gICAg
dXNpbmcgQ2hlY2tTdWJDbGFzc1NuaXBwZXRGdW5jdGlvblB0ciA9IFJlZjxTbmlwcGV0PiAoKiko
dm9pZCk7CisgICAgdXNpbmcgQ2hlY2tKU0Nhc3RTbmlwcGV0RnVuY3Rpb25QdHIgPSBSZWY8U25p
cHBldD4gKCopKHZvaWQpOwogCiAgICAgLy8gQSBzdHJpbmcgZGVub3RpbmcgdGhlIGNsYXNzIG5h
bWUuIEV4YW1wbGU6ICJXaW5kb3ciLgogICAgIGNvbnN0IGNoYXIqIGNsYXNzTmFtZTsKQEAgLTE5
NiwxMCArMTk4LDExIEBAIHN0cnVjdCBDbGFzc0luZm8gewogICAgIC8vIG51bGxwdHJpZiB0aGVy
ZSBpcyBub25lLgogICAgIGNvbnN0IENsYXNzSW5mbyogcGFyZW50Q2xhc3M7CiAgICAgY29uc3Qg
SGFzaFRhYmxlKiBzdGF0aWNQcm9wSGFzaFRhYmxlOwotICAgIENoZWNrU3ViQ2xhc3NTbmlwcGV0
RnVuY3Rpb25QdHIgY2hlY2tTdWJDbGFzc1NuaXBwZXQ7CisgICAgQ2hlY2tKU0Nhc3RTbmlwcGV0
RnVuY3Rpb25QdHIgY2hlY2tTdWJDbGFzc1NuaXBwZXQ7CisgICAgY29uc3QgT3B0aW9uYWw8SlND
YXN0aW5nSGVscGVyczo6SlNUeXBlUmFuZ2U+IGluaGVyaXRzSlNUeXBlUmFuZ2U7IC8vIFRoaXMg
aXMgcmFuZ2Ugb2YgSlNUeXBlcyBmb3IgZG9pbmcgaW5oZXJpdGFuY2UgY2hlY2tpbmcuIEhhcyB0
aGUgZm9ybTogW2ZpcnN0SlNUeXBlLCBsYXN0SlNUeXBlXSAoaW5jbHVzaXZlKS4KICAgICBNZXRo
b2RUYWJsZSBtZXRob2RUYWJsZTsKLSAgICBUeXBlZEFycmF5VHlwZSB0eXBlZEFycmF5U3RvcmFn
ZVR5cGU7Ci0gICAgdW5zaWduZWQgc3RhdGljQ2xhc3NTaXplOworICAgIGNvbnN0IFR5cGVkQXJy
YXlUeXBlIHR5cGVkQXJyYXlTdG9yYWdlVHlwZTsKKyAgICBjb25zdCB1bnNpZ25lZCBzdGF0aWND
bGFzc1NpemU7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mUGFyZW50Q2xhc3MoKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2FzdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKaW5kZXggYjI1MDM1Njlj
ODQyMjU2MDExNDFhODBjZjU5ODQ4ZjVkNjczYjc0Yi4uYjRlYjUxMmJkMjcyMjg0MDFmMWY5YjNk
YjJlZTZiM2U4NWI3ZjA4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDYXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgK
QEAgLTEyNSwxMSArMTI1LDE3IEBAIHN0cnVjdCBGaW5hbFR5cGVEaXNwYXRjaGVyPC8qIGlzRmlu
YWwgKi8gdHJ1ZT4gewogICAgIH0KIH07CiAKKy8vIFRoZSBmaXJzdCBhbmQgbGFzdCBKU1R5cGUg
YXJlIGluY2x1c2l2ZQorc3RydWN0IEpTVHlwZVJhbmdlIHsKKyAgICBKU1R5cGUgZmlyc3Q7Cisg
ICAgSlNUeXBlIGxhc3Q7Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1l
IEZyb20+Ci1pbmxpbmUgYm9vbCBpbmhlcml0c0pTVHlwZUltcGwoVk0mIHZtLCBGcm9tKiBmcm9t
LCBKU1R5cGUgZmlyc3RUeXBlLCBKU1R5cGUgbGFzdFR5cGUpCitpbmxpbmUgYm9vbCBpbmhlcml0
c0pTVHlwZUltcGwoVk0mIHZtLCBGcm9tKiBmcm9tLCBKU1R5cGVSYW5nZSByYW5nZSkKIHsKICAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIFRhcmdldD46OnZhbHVlICYm
IHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8RnJv
bT46OnR5cGU+Ojp2YWx1ZSwgIkpTIGNhc3RpbmcgZXhwZWN0cyB0aGF0IHRoZSB0eXBlcyB5b3Ug
YXJlIGNhc3RpbmcgdG8vZnJvbSBhcmUgc3ViY2xhc3NlcyBvZiBKU0NlbGwiKTsKLSAgICBib29s
IGNhbkNhc3QgPSBmaXJzdFR5cGUgPD0gZnJvbS0+dHlwZSgpICYmIGZyb20tPnR5cGUoKSA8PSBs
YXN0VHlwZTsKKyAgICBib29sIGNhbkNhc3QgPSByYW5nZS5maXJzdCA8PSBmcm9tLT50eXBlKCkg
JiYgZnJvbS0+dHlwZSgpIDw9IHJhbmdlLmxhc3Q7CiAgICAgLy8gRG8gbm90IHVzZSBpbmhlcml0
czxUYXJnZXQ+KHZtKSBzaW5jZSBpbmhlcml0czxUPiBkZXBlbmRzIG9uIHRoaXMgZnVuY3Rpb24u
CiAgICAgQVNTRVJUX1VOVVNFRCh2bSwgY2FuQ2FzdCA9PSBmcm9tLT5KU0NlbGw6OmluaGVyaXRz
KHZtLCBUYXJnZXQ6OmluZm8oKSkpOwogICAgIHJldHVybiBjYW5DYXN0OwpAQCAtMTM5LDYgKzE0
NSw3IEBAIGlubGluZSBib29sIGluaGVyaXRzSlNUeXBlSW1wbChWTSYgdm0sIEZyb20qIGZyb20s
IEpTVHlwZSBmaXJzdFR5cGUsIEpTVHlwZSBsYXN0CiAvLyB3YXkgdG8gc2F5IHRoYXQgd2UgYXJl
IG92ZXJsb2FkaW5nIGp1c3QgdGhlIGZpcnN0IHR5cGUgaW4gYSB0ZW1wbGF0ZSBsaXN0Li4uCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQ+CiBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHMgeworICAgIHN0
YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7IFdURjo6bnVs
bG9wdCB9OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+CiAgICAgc3RhdGljIGlubGluZSBi
b29sIGluaGVyaXRzKFZNJiB2bSwgRnJvbSogZnJvbSkgeyByZXR1cm4gRmluYWxUeXBlRGlzcGF0
Y2hlcjxzdGQ6OmlzX2ZpbmFsPFRhcmdldD46OnZhbHVlPjo6dGVtcGxhdGUgaW5oZXJpdHNHZW5l
cmljPFRhcmdldD4odm0sIGZyb20pOyB9CiB9OwpAQCAtMTQ2LDggKzE1Myw5IEBAIHN0cnVjdCBJ
bmhlcml0c1RyYWl0cyB7CiAjZGVmaW5lIERFRklORV9UUkFJVFNfRk9SX0pTX1RZUEVfT1ZFUkxP
QUQoY2xhc3NOYW1lLCBmaXJzdEpTVHlwZSwgbGFzdEpTVHlwZSkgXAogICAgIHRlbXBsYXRlPD4g
XAogICAgIHN0cnVjdCBJbmhlcml0c1RyYWl0czxjbGFzc05hbWU+IHsgXAorICAgICAgICBzdGF0
aWMgY29uc3RleHByIE9wdGlvbmFsPEpTVHlwZVJhbmdlPiB0eXBlUmFuZ2UgeyB7IHN0YXRpY19j
YXN0PEpTVHlwZT4oZmlyc3RKU1R5cGUpLCBzdGF0aWNfY2FzdDxKU1R5cGU+KGxhc3RKU1R5cGUp
IH0gfTsgXAogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGcm9tPiBcCi0gICAgICAgIHN0YXRp
YyBpbmxpbmUgYm9vbCBpbmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20pIHsgcmV0dXJuIGluaGVy
aXRzSlNUeXBlSW1wbDxjbGFzc05hbWUsIEZyb20+KHZtLCBmcm9tLCBzdGF0aWNfY2FzdDxKU1R5
cGU+KGZpcnN0SlNUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihsYXN0SlNUeXBlKSk7IH0gXAor
ICAgICAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKSB7
IHJldHVybiBpbmhlcml0c0pTVHlwZUltcGw8Y2xhc3NOYW1lLCBGcm9tPih2bSwgZnJvbSwgKnR5
cGVSYW5nZSk7IH0gXAogICAgIH07IFwKIAogRk9SX0VBQ0hfSlNfRFlOQU1JQ19DQVNUX0pTX1RZ
UEVfT1ZFUkxPQUQoREVGSU5FX1RSQUlUU19GT1JfSlNfVFlQRV9PVkVSTE9BRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAppbmRleCBlM2VjZWY2ZWNiYWJhN2Ux
NzI2MGVhNTUxN2EyZjc2ZmM1MDIxYzQ1Li4wOWFmMGIxYzZkYmZlNTAyODczNjVjZDY5MmU4ODYz
MzBmZmY0NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xs
YXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3Bw
CkBAIC0xMTI1LDkgKzExMjUsOSBAQCB2b2lkIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGly
ZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25XaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRP
TUpJVEZ1bmN0aW9uT2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiB9CiAKLWNsYXNzIERPTUpJVENoZWNrU3ViQ2xhc3NP
YmplY3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7CitjbGFzcyBET01KSVRDaGVja0pTQ2FzdE9iamVj
dCA6IHB1YmxpYyBET01KSVROb2RlIHsKIHB1YmxpYzoKLSAgICBET01KSVRDaGVja1N1YkNsYXNz
T2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgRE9NSklUQ2hlY2tKU0Nh
c3RPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpCiAgICAgewogICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNj
b3BlOwpAQCAtMTE0MywxMCArMTE0MywxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTQzo6
SlNUeXBlKExhc3RKU0NPYmplY3RUeXBlICsgMSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCogY3JlYXRlKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CisgICAgc3RhdGljIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CiAg
ICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAgICAgIERPTUpJVENo
ZWNrU3ViQ2xhc3NPYmplY3QqIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPERP
TUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q+KHZtLmhlYXApKSBET01KSVRDaGVja1N1YkNsYXNzT2Jq
ZWN0KHZtLCBzdHJ1Y3R1cmUpOworICAgICAgICBET01KSVRDaGVja0pTQ2FzdE9iamVjdCogb2Jq
ZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q+
KHZtLmhlYXApKSBET01KSVRDaGVja0pTQ2FzdE9iamVjdCh2bSwgc3RydWN0dXJlKTsKICAgICAg
ICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgcmV0
dXJuIG9iamVjdDsKICAgICB9CkBAIC0xMTU3LDcgKzExNTcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFt
aWNDYXN0PERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFs
dWUoKSk7CisgICAgICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVENo
ZWNrSlNDYXN0T2JqZWN0Kj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgICAgICBp
ZiAoIXRoaXNPYmplY3QpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cih0aGlzT2JqZWN0LT52YWx1ZSgpKSk7CkBAIC0xMTc2LDEzICsxMTc2LDEzIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCi1z
dGF0aWMgY29uc3QgRE9NSklUOjpTaWduYXR1cmUgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdFNp
Z25hdHVyZShET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpmdW5jdGlvbldpdGhvdXRUeXBlQ2hl
Y2ssIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZv
clJlYWQoRE9NSklUOjpIZWFwUmFuZ2U6OnRvcCgpKSwgU3BlY0ludDMyT25seSk7CitzdGF0aWMg
Y29uc3QgRE9NSklUOjpTaWduYXR1cmUgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RTaWduYXR1cmUo
RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjaywgRE9NSklU
Q2hlY2tKU0Nhc3RPYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklU
OjpIZWFwUmFuZ2U6OnRvcCgpKSwgU3BlY0ludDMyT25seSk7CiAKLXZvaWQgRE9NSklUQ2hlY2tT
dWJDbGFzc09iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQordm9pZCBET01KSVRDaGVja0pTQ2FzdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIERvbGxhclZNQXNz
ZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAg
IHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJmdW5jIiksIDAsIGZ1bmN0aW9uV2l0aFR5cGVDaGVjaywgTm9JbnRyaW5z
aWMsICZET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgcHV0RGlyZWN0TmF0aXZl
RnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1
bmMiKSwgMCwgZnVuY3Rpb25XaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRPTUpJVENoZWNr
SlNDYXN0T2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5KSk7CiB9CiAKIGNsYXNzIERPTUpJVEdldHRlckJhc2VKU09iamVjdCA6
IHB1YmxpYyBET01KSVROb2RlIHsKQEAgLTE0MTcsNyArMTQxNyw3IEBAIGNvbnN0IENsYXNzSW5m
byBET01KSVRGdW5jdGlvbk9iamVjdDo6c19pbmZvID0geyAiRE9NSklURnVuY3Rpb25PYmplY3Qi
LCAmQmFzZTo6CiAjZWxzZQogY29uc3QgQ2xhc3NJbmZvIERPTUpJVEZ1bmN0aW9uT2JqZWN0Ojpz
X2luZm8gPSB7ICJET01KSVRGdW5jdGlvbk9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklURnVuY3Rpb25PYmplY3QpIH07CiAj
ZW5kaWYKLWNvbnN0IENsYXNzSW5mbyBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpzX2luZm8g
PSB7ICJET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KSB9
OworY29uc3QgQ2xhc3NJbmZvIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpzX2luZm8gPSB7ICJE
T01KSVRDaGVja0pTQ2FzdE9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QpIH07CiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyOjpzX2luZm8gPSB7ICJKU1Rlc3RDdXN0
b21HZXR0ZXJTZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdEN1c3RvbUdldHRlclNldHRlcikgfTsKIAogY29uc3QgQ2xhc3NJ
bmZvIFN0YXRpY0N1c3RvbUFjY2Vzc29yOjpzX2luZm8gPSB7ICJTdGF0aWNDdXN0b21BY2Nlc3Nv
ciIsICZCYXNlOjpzX2luZm8sICZzdGF0aWNDdXN0b21BY2Nlc3NvclRhYmxlLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKFN0YXRpY0N1c3RvbUFjY2Vzc29yKSB9OwpAQCAtMjM0OSwxMyAr
MjM0OSwxMyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNy
ZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0KEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DcmVhdGVET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBh
c3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2Nr
SG9sZGVyIGxvY2sodm0pOwotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gRE9NSklUQ2hlY2tT
dWJDbGFzc09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGpzTnVsbCgp
KTsKLSAgICBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KiByZXN1bHQgPSBET01KSVRDaGVja1N1
YkNsYXNzT2JqZWN0OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwganNOdWxsKCkpOworICAgIERPTUpJVENoZWNrSlNDYXN0
T2JqZWN0KiByZXN1bHQgPSBET01KSVRDaGVja0pTQ2FzdE9iamVjdDo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHN0cnVjdHVyZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogfQogCkBAIC0zMDUzLDcgKzMwNTMsNyBAQCB2b2lkIEpTRG9sbGFyVk06OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSkKICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRlck9iamVj
dCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0LCAwKTsKICAgICBhZGRGdW5jdGlv
bih2bSwgImNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURP
TUpJVEdldHRlckNvbXBsZXhPYmplY3QsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRl
RE9NSklURnVuY3Rpb25PYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0
LCAwKTsKLSAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmpl
Y3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QsIDApOworICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QiLCBmdW5jdGlvbkNy
ZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0LCAwKTsKICAgICBhZGRGdW5jdGlvbih2bSwgImNy
ZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVy
QmFzZUpTT2JqZWN0LCAwKTsKICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUJ1aWx0aW4iLCBm
dW5jdGlvbkNyZWF0ZUJ1aWx0aW4sIDIpOwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmggYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25h
bC5oCmluZGV4IDc3MTZiYTQxOGRkYWVkMzM0ZjQwYjU2MGNjYTcyMzM2OTVjZmU4NzguLjdiZjBl
Y2E0YjcwNzdjOGVjNTgxNDQ3ZmI1ODQyNGY2NjgxYWVmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL09wdGlvbmFsLmgKKysrIGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaApAQCAtNDEx
LDIwICs0MTEsMjYgQEAgcHVibGljOgogICBjb25zdGV4cHIgT3B0aW9uYWwoKSBfX05PRVhDRVBU
IDogT3B0aW9uYWxCYXNlPFQ+KCkgIHt9OwogICBjb25zdGV4cHIgT3B0aW9uYWwobnVsbG9wdF90
KSBfX05PRVhDRVBUIDogT3B0aW9uYWxCYXNlPFQ+KCkge307CiAKLSAgT3B0aW9uYWwoY29uc3Qg
T3B0aW9uYWwmIHJocykKKyAgY29uc3RleHByIE9wdGlvbmFsKGNvbnN0IE9wdGlvbmFsJiByaHMp
CiAgIDogT3B0aW9uYWxCYXNlPFQ+KCkKICAgewogICAgIGlmIChyaHMuaW5pdGlhbGl6ZWQoKSkg
ewotICAgICAgICA6Om5ldyAoc3RhdGljX2Nhc3Q8dm9pZCo+KGRhdGFwdHIoKSkpIFQoKnJocyk7
CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc190cml2aWFsbHlfY29weWFibGVfdjxUPikK
KyAgICAgICAgICAgIE9wdGlvbmFsQmFzZTxUPjo6c3RvcmFnZV8gPSAqcmhzOworICAgICAgICBl
bHNlCisgICAgICAgICAgICA6Om5ldyAoc3RhdGljX2Nhc3Q8dm9pZCo+KGRhdGFwdHIoKSkpIFQo
KnJocyk7CiAgICAgICAgIE9wdGlvbmFsQmFzZTxUPjo6aW5pdF8gPSB0cnVlOwogICAgIH0KICAg
fQogCi0gIE9wdGlvbmFsKE9wdGlvbmFsJiYgcmhzKSBfX05PRVhDRVBUXyhkZXRhaWxfOjppc19u
b3Rocm93X21vdmVfY29uc3RydWN0aWJsZTxUPjo6dmFsdWUpCisgIGNvbnN0ZXhwciBPcHRpb25h
bChPcHRpb25hbCYmIHJocykgX19OT0VYQ0VQVF8oZGV0YWlsXzo6aXNfbm90aHJvd19tb3ZlX2Nv
bnN0cnVjdGlibGU8VD46OnZhbHVlKQogICA6IE9wdGlvbmFsQmFzZTxUPigpCiAgIHsKICAgICBp
ZiAocmhzLmluaXRpYWxpemVkKCkpIHsKLSAgICAgICAgOjpuZXcgKHN0YXRpY19jYXN0PHZvaWQq
PihkYXRhcHRyKCkpKSBUKHN0ZDo6bW92ZSgqcmhzKSk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAo
c3RkOjppc190cml2aWFsbHlfY29weWFibGVfdjxUPikKKyAgICAgICAgICAgIE9wdGlvbmFsQmFz
ZTxUPjo6c3RvcmFnZV8gPSAqcmhzOworICAgICAgICBlbHNlCisgICAgICAgICAgICA6Om5ldyAo
c3RhdGljX2Nhc3Q8dm9pZCo+KGRhdGFwdHIoKSkpIFQoc3RkOjptb3ZlKCpyaHMpKTsKICAgICAg
ICAgT3B0aW9uYWxCYXNlPFQ+Ojppbml0XyA9IHRydWU7CiAgICAgICAgIHJocy5jbGVhcigpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRD
dXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaApp
bmRleCBhNTM5NjM2NDg0YWQzYTQxNWM5ZTM5ZjBjYzIzNzkzMjQyZGFiNTkxLi44MWNiOTEwZmFm
Njc5OWEyNmUxZWUxNGQ0YjY0NWNiNDk3NTA2YTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oCkBAIC0zNCwxMCArMzQsMTEgQEAgbmFtZXNwYWNl
IEpTQ2FzdGluZ0hlbHBlcnMgewogCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHM8
V2ViQ29yZTo6SlNEb2N1bWVudD4geworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNU
eXBlUmFuZ2U+IHR5cGVSYW5nZSB7IEpTVHlwZVJhbmdlIHsgc3RhdGljX2Nhc3Q8SlNUeXBlPihX
ZWJDb3JlOjpKU0RvY3VtZW50V3JhcHBlclR5cGUpLCBzdGF0aWNfY2FzdDxKU1R5cGU+KFdlYkNv
cmU6OkpTRG9jdW1lbnRXcmFwcGVyVHlwZSkgfSB9OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZy
b20+Ci0gICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiwgRnJvbSogZnJvbSkKKyAg
ICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBXZWJDb3JlOjpKU0RvY3VtZW50V3JhcHBl
clR5cGU7CisgICAgICAgIHJldHVybiBpbmhlcml0c0pTVHlwZUltcGw8V2ViQ29yZTo6SlNEb2N1
bWVudD4odm0sIGZyb20sICp0eXBlUmFuZ2UpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmgKaW5kZXggNWM2MTQ0NzdmNjMzYmUyZDdj
MTMwNThjNjc5NzY2NmU4Mzc0NWY3NC4uMjVhNjgzYzllYzliYjU1MDc1YmZlYzgwNTJhZmJiNTg5
ZjEwNTliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50
Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9t
LmgKQEAgLTM0LDEwICszNCwxMSBAQCBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycyB7CiAKIHRl
bXBsYXRlPD4KIHN0cnVjdCBJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0VsZW1lbnQ+IHsKKyAg
ICBzdGF0aWMgY29uc3RleHByIE9wdGlvbmFsPEpTVHlwZVJhbmdlPiB0eXBlUmFuZ2UgeyBKU1R5
cGVSYW5nZSB7IHN0YXRpY19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNFbGVtZW50VHlwZSksIHN0
YXRpY19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNFbGVtZW50VHlwZSkgfSB9OwogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZyb20+Ci0gICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiwg
RnJvbSogZnJvbSkKKyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9t
KiBmcm9tKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBXZWJDb3JlOjpK
U0VsZW1lbnRUeXBlOworICAgICAgICByZXR1cm4gaW5oZXJpdHNKU1R5cGVJbXBsPFdlYkNvcmU6
OkpTRWxlbWVudD4odm0sIGZyb20sICp0eXBlUmFuZ2UpOwogICAgIH0KIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uaAppbmRleCAyZTY1YTMxMjJhY2JkNmRj
YzZjY2YwNjcwMTUyYmE1NTNlOTRlNjYxLi5lMDNhMGRjNWZkZDE1YTdmZmYwOWRjNWIyMzA1NmNl
Y2FkYWQzN2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50
Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5o
CkBAIC0zNCwxMCArMzQsMTEgQEAgbmFtZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMgewogCiB0ZW1w
bGF0ZTw+CiBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNFdmVudD4geworICAgIHN0
YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7IHsgc3RhdGlj
X2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpKU0V2ZW50VHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4o
V2ViQ29yZTo6SlNFdmVudFR5cGUpIH0gfTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGcm9tPgot
ICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0cyhWTSYsIEZyb20qIGZyb20pCisgICAgc3Rh
dGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiB2bSwgRnJvbSogZnJvbSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBmcm9tLT50eXBlKCkgPT0gV2ViQ29yZTo6SlNFdmVudFR5cGU7CisgICAgICAg
IHJldHVybiBpbmhlcml0c0pTVHlwZUltcGw8V2ViQ29yZTo6SlNFdmVudD4odm0sIGZyb20sICp0
eXBlUmFuZ2UpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmgKaW5kZXggNTg5NTBjYmUyMGJiNjIxMTFiMThiNjlmYjA4NmVmMDI0OTZmMmQ2OC4u
MzQ0Y2U4MTVhYjYzMTQ5ZmZmZTgwODM1MzljMjNjMWFiMjg4ZDZiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKQEAgLTM0LDEwICszNCwxMiBAQCBuYW1lc3Bh
Y2UgSlNDYXN0aW5nSGVscGVycyB7CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBJbmhlcml0c1RyYWl0
czxXZWJDb3JlOjpKU05vZGU+IHsKKyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvbmFsPEpTVHlw
ZVJhbmdlPiB0eXBlUmFuZ2UgeyB7IHN0YXRpY19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNOb2Rl
VHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNOb2RlVHlwZSArIFdlYkNvcmU6
OkpTTm9kZVR5cGVNYXNrKSB9IH07CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGlt
aXRzPHVpbnQ4X3Q+OjptYXgoKSA9PSB0eXBlUmFuZ2UtPmxhc3QpOwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEZyb20+Ci0gICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiwgRnJvbSog
ZnJvbSkKKyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9t
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb20tPnR5cGUoKSA+PSBXZWJDb3JlOjpKU05vZGVU
eXBlOworICAgICAgICByZXR1cm4gaW5oZXJpdHNKU1R5cGVJbXBsPFdlYkNvcmU6OkpTTm9kZT4o
dm0sIGZyb20sICp0eXBlUmFuZ2UpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNjdjMzNlZmQyYmYx
MWZkZjgyODdjMzI0MGQ4YWUxNDhiMDM2ODIzOC4uNzVhMTRhMDM0NTNlNWJiNzBjYTYyNGUwYjMz
ZDM3MTg4YzkzMzhmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTMwMjEsNyArMzAyMSw3IEBAIHN1YiBHZW5lcmF0ZUhl
YWRlcgogICAgICAgICB9CiAgICAgfQogCi0gICAgIyBDaGVja1N1YkNsYXNzIFNuaXBwZXQgZnVu
Y3Rpb24uCisgICAgIyBDaGVja0pTQ2FzdCBTbmlwcGV0IGZ1bmN0aW9uLgogICAgIGlmICgkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9KSB7CiAgICAgICAgICRoZWFkZXJJ
bmNsdWRlc3siPEphdmFTY3JpcHRDb3JlL1NuaXBwZXQuaD4ifSA9IDE7CiAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIjaWYgRU5BQkxFKEpJVClcbiIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwMDQzODM3MTg1MzRjZWZmZjNj
Y2M3NzkzM2IwOTgwYjAxZjRmYWJkLi45NzA1ZDMxYjE3MzQ5ODcwYmY2Njg2ZmFkN2RjYjgxZmZm
MTA3YWFmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA1LTI2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9t
aWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIGZvci1vZiBzaG91bGQgY2hlY2sgdGhlIGl0ZXJh
YmxlIGlzIGEgSlNBcnJheSBmb3IgRmFzdEFycmF5IGluIERGRyBpdGVyYXRvcl9vcGVuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIzODMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9jaGVj
ay1zdWItY2xhc3MuanM6CisgICAgICAgICogc3RyZXNzL2Zvci1vZi1pdGVyYXRvci1vcGVuLWZh
c3QtYXJyYXktc2hvdWxkLWNoZWNrLWpzLXR5cGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToK
KwogMjAyMC0wNS0yNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAK
ICAgICAgICAgSXRlcmF0b3JDbG9zZSBzaG91bGQgc3VwcHJlc3MgR2V0TWV0aG9kIGVycm9ycwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvY2hlY2stc3ViLWNsYXNzLmpzIGIvSlNUZXN0cy9z
dHJlc3MvY2hlY2stc3ViLWNsYXNzLmpzCmluZGV4IDRiNGIxZDQ2NmNiMjA5MTMxMjdmM2MzZmRj
YTYwYjE4NzRmMDA2ZWMuLjk5ZGU4ZmIzNmVkMzE2MTNjOWY1NDZhMjdiNzJkYjdiOWI2MDdlOGIg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2NoZWNrLXN1Yi1jbGFzcy5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9jaGVjay1zdWItY2xhc3MuanMKQEAgLTEsNSArMSw1IEBACiB2YXIgY3JlYXRl
RE9NSklUTm9kZU9iamVjdCA9ICR2bS5jcmVhdGVET01KSVROb2RlT2JqZWN0OwotdmFyIGNyZWF0
ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QgPSAkdm0uY3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFz
c09iamVjdDsKK3ZhciBjcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVjdCA9ICR2bS5jcmVhdGVE
T01KSVRDaGVja0pTQ2FzdE9iamVjdDsKIAogZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBl
Y3RlZCkgewogICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQpAQCAtMjMsMTEgKzIzLDExIEBA
IGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yTWVzc2FnZSkgewogCiB2YXIgYXJyYXkg
PSBbXTsKIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCi0gICAgYXJyYXkucHVzaChjcmVh
dGVET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KCkpOworICAgIGFycmF5LnB1c2goY3JlYXRlRE9N
SklUQ2hlY2tKU0Nhc3RPYmplY3QoKSk7CiAKLS8vIERPTUpJVE5vZGUgaXMgYW4gaW5zdGFuY2Ug
b2YgYSBzdXBlciBjbGFzcyAoRE9NSklUTm9kZSkgb2YgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVj
dC4KKy8vIERPTUpJVE5vZGUgaXMgYW4gaW5zdGFuY2Ugb2YgYSBzdXBlciBjbGFzcyAoRE9NSklU
Tm9kZSkgb2YgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QuCiB2YXIgbm9kZSA9IGNyZWF0ZURPTUpJ
VE5vZGVPYmplY3QoKTsKLW5vZGUuZnVuYyA9IGNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmpl
Y3QoKS5mdW5jOworbm9kZS5mdW5jID0gY3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoKS5m
dW5jOwogCiBmdW5jdGlvbiBjYWxsaW5nKGRvbSkKIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL2Zvci1vZi1pdGVyYXRvci1vcGVuLWZhc3QtYXJyYXktc2hvdWxkLWNoZWNrLWpzLXR5cGUu
anMgYi9KU1Rlc3RzL3N0cmVzcy9mb3Itb2YtaXRlcmF0b3Itb3Blbi1mYXN0LWFycmF5LXNob3Vs
ZC1jaGVjay1qcy10eXBlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiOGI2OWViMzExZTEyZjY4OTgxMWMyNGU2
YmQxMGE5OTlkYWJjNWMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9mb3Itb2Yt
aXRlcmF0b3Itb3Blbi1mYXN0LWFycmF5LXNob3VsZC1jaGVjay1qcy10eXBlLmpzCkBAIC0wLDAg
KzEsOCBAQAorZnVuY3Rpb24gZm9vKGEwKSB7CisgIE51bWJlci5wcm90b3R5cGUuX19wcm90b19f
ID0gW107CisgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspIHt9CisgIGZvciAobGV0
IHEgb2YgYTApIHt9Cit9CisKK2ZvbyhbXSk7Citmb28oMCk7ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400381</attachid>
            <date>2020-05-27 14:21:48 -0700</date>
            <delta_ts>2020-05-27 19:00:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212383-20200527142147.patch</filename>
            <type>text/plain</type>
            <size>47411</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZDJlODIyZDViYTZmNmJmMGMyYzg4ZTBjNWM4NzdjNzM1MjM3NTZjLi4yNzc5ZmE4MmZiNTdmZDQ4
Mzg4MmM5NzlkNGYxNDZhOWE3OWUwMjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjMgQEAKKzIwMjAtMDUtMjcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgZm9yLW9mIHNob3VsZCBjaGVjayB0aGUgaXRlcmFibGUgaXMgYSBK
U0FycmF5IGZvciBGYXN0QXJyYXkgaW4gREZHIGl0ZXJhdG9yX29wZW4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjM4MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgYW4gaXNz
dWUgd2hlcmUgd2UgZGlkbid0IGNoZWNrIHRoYXQgdGhlIGl0ZXJhYmxlIG9wZXJhbmQgdG8KKyAg
ICAgICAgaXRlcmF0b3Jfb3BlbiB3YXMgYSBKU0FycmF5IHdoZW4gbG93ZXJpbmcgdGhlIEZhc3RB
cnJheSBvbmx5IHZhcmlhbnQgb2YgdGhlIGJ5dGVjb2RlIHRvIHRoZSBERkcuCisgICAgICAgIFRo
aXMgbWVhbnQgd2Ugd291bGQgT1NSIGV4aXQgYXQgdGhlIGl0ZXJhdG9yX25leHQncyBsb3dlcmlu
ZyB0aGVuIGFzc2VydGlvbiBmYWlsdXJlIGluIHRoZQorICAgICAgICBjaGVja3BvaW50IE9TUiBl
eGl0IGhlbHBlci4gVG8gbWFrZSB0aGlzIHdvcmssIHRoaXMgcGF0Y2ggZXh0ZW5kcyAoYW5kIHJl
bmFtZXMgZnJvbSBDaGVja1N1YkNsYXNzKQorICAgICAgICBDaGVja0pTQ2FzdCB0byB1c2UgdGhl
IHNhbWUgSlNUeXBlIGluZm9ybWF0aW9uIHRoYXQgd2UgdXNlIGZvciB0aGUganNDYXN0IGZ1bmN0
aW9uLiBJbiBvcmRlciB0bworICAgICAgICBnZXQgdGhlIEpTVHlwZSByYW5nZSBmcm9tIGEgQ2xh
c3NJbmZvKiB0aGUgbWFjcm8gdGhhdCBhdXRvZ2VuZXJhdGVzIE1ldGhvZFRhYmxlIG5vdyBhbHNv
IGZpbGxzCisgICAgICAgIGEgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+IGludG8gdGhlIENsYXNzSW5m
byBhcyB3ZWxsLgorCisgICAgICAgIExhc3RseSwgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvIHdh
cyBtaXN1c2VkIGJ5IEFJLiBUaGlzIHBhdGNoCisgICAgICAgIHJlbmFtZXMgaXQgdG8gc3BlY3Vs
YXRpb25Gcm9tQ2xhc3NJbmZvSW5oZXJpdGFuY2UgdG8gYmV0dGVyCisgICAgICAgIHJlZmxlY3Qg
aG93IEFJIHdhcyB1c2luZyBpdC4gVGhlIG9ubHkgb3RoZXIgdXNlciBvZgorICAgICAgICBzcGVj
dWxhdGlvbkZyb21DbGFzc0luZm8gd2FzIHNwZWN1bGF0aW9uRnJvbVN0cnVjdHVyZS4gQW55IGNh
c2UKKyAgICAgICAgd2hlcmUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvSW50ZXJpdGFuY2Ugd291
bGQgZGlmZmVyIGZyb20gd2hhdCBhCisgICAgICAgIFN0cnVjdHVyZSB3b3VsZCB0ZWxsIHlvdSBo
YXMgYmVlbiBob2lzdGVkIHRvCisgICAgICAgIHNwZWN1bGF0aW9uRnJvbVN0cnVjdHVyZS4KKwor
ICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlRE9NSklUR2V0dGVyKToKKyAgICAgICAg
KEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RG
R0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAg
KiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNv
bnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9l
c0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdG
aXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUp
OgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmF0dGVtcHRUb01ha2VDYWxsRE9NKToK
KyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cENoZWNrSlNDYXN0KToKKyAgICAg
ICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cENoZWNrU3ViQ2xhc3MpOiBEZWxldGVkLgor
ICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzQ2xh
c3NJbmZvIGNvbnN0KToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBk
ZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdT
YWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSlNDYXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MpOiBEZWxldGVkLgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVz
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRM
TG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21w
aWxlQ2hlY2tKU0Nhc3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpj
b21waWxlQ2hlY2tTdWJDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9DbGFzc0lu
Zm8uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2FzdC5oOgorICAgICAgICAoSlNDOjpKU0Nhc3Rp
bmdIZWxwZXJzOjppbmhlcml0c0pTVHlwZUltcGwpOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFy
Vk0uY3BwOgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2Jq
ZWN0KToKKyAgICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QpOiBEZWxldGVk
LgorCisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlND
OjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm9Jbmhlcml0YW5jZSk6CisgICAgICAgIChKU0M6OnNw
ZWN1bGF0aW9uRnJvbVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJvbUNs
YXNzSW5mbyk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoK
KyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0
ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFZhbHVlLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpBYnN0cmFjdFZhbHVlOjpmaWx0ZXJDbGFzc0luZm8pOgorICAgICAgICAqIGRm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJz
ZXI6OmhhbmRsZURPTUpJVEdldHRlcik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJz
ZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAg
IChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGlu
Z1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9s
ZENvbnN0YW50cyk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpG
aXh1cFBoYXNlOjphdHRlbXB0VG9NYWtlQ2FsbERPTSk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4
dXBQaGFzZTo6Zml4dXBDaGVja0pTQ2FzdCk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBDaGVja1N1YkNsYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZS5o
OgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0NsYXNzSW5mbyBjb25zdCk6CisgICAgICAg
ICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAg
ICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVj
a0pTQ2FzdCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVj
a1N1YkNsYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNoZWNrSlNDYXN0KToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQ2xhc3NJbmZvLmg6CisgICAgICAgICogcnVudGlt
ZS9KU0Nhc3QuaDoKKyAgICAgICAgKEpTQzo6SlNDYXN0aW5nSGVscGVyczo6aW5oZXJpdHNKU1R5
cGVJbXBsKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlND
OjpKU0Z1bmN0aW9uOjphc3NlcnRUeXBlSW5mb0ZsYWdJbnZhcmlhbnRzKToKKyAgICAgICAgKiB0
b29scy9KU0RvbGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVET01KSVRD
aGVja0pTQ2FzdE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTRG9sbGFyVk06OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVET01KSVRDaGVja1N1YkNsYXNzT2Jq
ZWN0KTogRGVsZXRlZC4KKwogMjAyMC0wNS0yNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHNvbWUgbmV3IGVtaXR0ZXJzIHRvIHRoZSBYODZfNjQgYW5kIEFS
TTY0IE1hY3JvQXNzZW1ibGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMmU0NmE4M2Y3ODJiOTNlYzNkODBmNDZmNmUyMGZl
NjdhOWU0MjBiNy4uZTVlZjk3MDEzMjNkYWVlYmYwOWMxNDg0MjMxNmFiMGEwODZlZTE0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNS0yNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVy
QGFwcGxlLmNvbT4KKworICAgICAgICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBp
cyBhIEpTQXJyYXkgZm9yIEZhc3RBcnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0aW9uYWwgc2hvdWxkIGJl
IGFibGUgdG8gY29weS9tb3ZlIGNvbnN0cnVjdG9yIGl0c2VsZiBhcyBsb25nIGFzIDxUPiBpcwor
ICAgICAgICB0cml2aWFsbHkgY29weWFibGUuIFRoaXMgbGV0cyB1cyBjb3B5IE9wdGlvbmFscyBp
bnRvIGNvbnN0IGdsb2JhbHMgd2l0aG91dAorICAgICAgICBnbG9iYWwgY29uc3RydWN0b3JzLgor
CisgICAgICAgICogd3RmL09wdGlvbmFsLmg6CisgICAgICAgIChXVEY6Ok9wdGlvbmFsOjpPcHRp
b25hbCk6CisgICAgICAgIChXVEY6Ok9wdGlvbmFsOjpfX05PRVhDRVBUXyk6CisKIDIwMjAtMDUt
MjYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBVVEYtOCBlbmNvZGUgc3RyaW5ncyBvZiBpbnZhbGlkIFVSTHMgd2hlbiBjb252ZXJ0aW5nIFdU
Rjo6VVJMIHRvIE5TVVJMIGluc3RlYWQgb2YgdHJ1bmNhdGluZyB0aGUgVVRGLTE2IGVuY29kaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMTljNTJmN2E0ZGE1NGQwYzFmNjU3NTZlYjZhYjY3NjVjNGFmNTI0YS4u
NGMzYzhkMmRkOGYxNjQ5Y2ZjOWVkYmQ0YmExOWVlNzMyYjJjY2IxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI1IEBACisyMDIwLTA1LTI3ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBw
bGUuY29tPgorCisgICAgICAgIGZvci1vZiBzaG91bGQgY2hlY2sgdGhlIGl0ZXJhYmxlIGlzIGEg
SlNBcnJheSBmb3IgRmFzdEFycmF5IGluIERGRyBpdGVyYXRvcl9vcGVuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIzODMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdmFyaW91cyBJbmhlcml0
c1RyYWl0cyBzcGVjaWFsaXphdGlvbnMgdG8gY29udGFpbiBhIHR5cGVSYW5nZSBtZW1iZXIuCisg
ICAgICAgIEFsc28sIGNoYW5nZSB0aGUgaW5oZXJpdHMgZnVuY3Rpb24gdG8gdXNlIGluaGVyaXRz
SlNUeXBlSW1wbCBsaWtlIHRoZSBKU0MKKyAgICAgICAgdmFyaWFudHMuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmg6CisgICAgICAgIChKU0M6OkpTQ2FzdGluZ0hl
bHBlcnM6OkluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTRG9jdW1lbnQ+Ojppbmhlcml0cyk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmg6CisgICAgICAgIChKU0M6OkpT
Q2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTRWxlbWVudD46OmluaGVy
aXRzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmg6CisgICAgICAgIChK
U0M6OkpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTRXZlbnQ+Ojpp
bmhlcml0cyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmg6CisgICAgICAg
IChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTTm9kZT46
OmluaGVyaXRzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKwogMjAyMC0wNS0yNiAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBDYW4ndCBzY3J1YiB2aWRlbyBvbiBodHRw
czovL3d3dy5qdWRpY2lhcnkuc2VuYXRlLmdvdgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKaW5kZXggN2FlOWQ4YzdlNzRhNWFkOGExNjgw
ODk1MTFmY2Q2ZDg4YTQzYTZmNy4uODE4Yzc3MWRmZWE2ZDcyODU0N2RkODRlYmUyODQxNzM4NGE3
OTAxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0
ZWRUeXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRl
ZFR5cGUuY3BwCkBAIC00MzIsNTYgKzQzMiw3MCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlv
bkZyb21UeXBlZEFycmF5VHlwZShUeXBlZEFycmF5VHlwZSB0eXBlKQogICAgIHJldHVybiBTcGVj
Tm9uZTsKIH0KIAotU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvKQorU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xh
c3NJbmZvSW5oZXJpdGFuY2UoY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiB7Ci0gICAgaWYg
KGNsYXNzSW5mbyA9PSBKU1N0cmluZzo6aW5mbygpKQotICAgICAgICByZXR1cm4gU3BlY1N0cmlu
ZzsKLQorICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PFN5bWJvbD4pOwogICAgIGlm
IChjbGFzc0luZm8gPT0gU3ltYm9sOjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjU3ltYm9s
OwotICAgIAorCisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNCaWdJbnQ+KTsK
ICAgICBpZiAoY2xhc3NJbmZvID09IEpTQmlnSW50OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBT
cGVjSGVhcEJpZ0ludDsKIAorICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PEpTRmlu
YWxPYmplY3Q+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpTRmluYWxPYmplY3Q6OmluZm8oKSkK
ICAgICAgICAgcmV0dXJuIFNwZWNGaW5hbE9iamVjdDsKICAgICAKLSAgICBpZiAoY2xhc3NJbmZv
ID09IEpTQXJyYXk6OmluZm8oKSkKLSAgICAgICAgcmV0dXJuIFNwZWNBcnJheTsKLSAgICAKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxEaXJlY3RBcmd1bWVudHM+KTsKICAgICBp
ZiAoY2xhc3NJbmZvID09IERpcmVjdEFyZ3VtZW50czo6aW5mbygpKQogICAgICAgICByZXR1cm4g
U3BlY0RpcmVjdEFyZ3VtZW50czsKICAgICAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmlu
YWxfdjxTY29wZWRBcmd1bWVudHM+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IFNjb3BlZEFyZ3Vt
ZW50czo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY1Njb3BlZEFyZ3VtZW50czsKLSAgICAK
LSAgICBpZiAoY2xhc3NJbmZvID09IFN0cmluZ09iamVjdDo6aW5mbygpKQotICAgICAgICByZXR1
cm4gU3BlY1N0cmluZ09iamVjdDsKIAorICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92
PFJlZ0V4cE9iamVjdD4pOwogICAgIGlmIChjbGFzc0luZm8gPT0gUmVnRXhwT2JqZWN0OjppbmZv
KCkpCiAgICAgICAgIHJldHVybiBTcGVjUmVnRXhwT2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX2ZpbmFsX3Y8RGF0ZUluc3RhbmNlPik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBE
YXRlSW5zdGFuY2U6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogCisg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNNYXA+KTsKICAgICBpZiAoY2xhc3NJ
bmZvID09IEpTTWFwOjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjTWFwT2JqZWN0OwogCisg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNTZXQ+KTsKICAgICBpZiAoY2xhc3NJ
bmZvID09IEpTU2V0OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjU2V0T2JqZWN0OwogCisg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNXZWFrTWFwPik7CiAgICAgaWYgKGNs
YXNzSW5mbyA9PSBKU1dlYWtNYXA6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFw
T2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNXZWFrU2V0Pik7
CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBKU1dlYWtTZXQ6OmluZm8oKSkKICAgICAgICAgcmV0dXJu
IFNwZWNXZWFrU2V0T2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8
UHJveHlPYmplY3Q+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IFByb3h5T2JqZWN0OjppbmZvKCkp
CiAgICAgICAgIHJldHVybiBTcGVjUHJveHlPYmplY3Q7CiAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfZmluYWxfdjxKU0RhdGFWaWV3Pik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBKU0RhdGFW
aWV3OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjRGF0YVZpZXdPYmplY3Q7Ci0gICAgCisK
KworICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU1N0cmluZzo6aW5mbygpKSkKKyAg
ICAgICAgcmV0dXJuIFNwZWNTdHJpbmc7CisKKyAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNz
T2YoU3RyaW5nT2JqZWN0OjppbmZvKCkpKQorICAgICAgICByZXR1cm4gU3BlY1N0cmluZ09iamVj
dCB8IFNwZWNPYmplY3RPdGhlcjsKKworICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihK
U0FycmF5OjppbmZvKCkpKQorICAgICAgICByZXR1cm4gU3BlY0FycmF5IHwgU3BlY0Rlcml2ZWRB
cnJheTsKKwogICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU0Z1bmN0aW9uOjppbmZv
KCkpKSB7CiAgICAgICAgIGlmIChjbGFzc0luZm8gPT0gSlNCb3VuZEZ1bmN0aW9uOjppbmZvKCkp
CiAgICAgICAgICAgICByZXR1cm4gU3BlY0Z1bmN0aW9uV2l0aE5vbkRlZmF1bHRIYXNJbnN0YW5j
ZTsKQEAgLTQ5Myw5ICs1MDcsNiBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21DbGFz
c0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAgICAgCiAgICAgaWYgKGlzVHlwZWRW
aWV3KGNsYXNzSW5mby0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSkKICAgICAgICAgcmV0dXJuIHNw
ZWN1bGF0aW9uRnJvbVR5cGVkQXJyYXlUeXBlKGNsYXNzSW5mby0+dHlwZWRBcnJheVN0b3JhZ2VU
eXBlKTsKLQotICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU0FycmF5OjppbmZvKCkp
KQotICAgICAgICByZXR1cm4gU3BlY0Rlcml2ZWRBcnJheTsKICAgICAKICAgICBpZiAoY2xhc3NJ
bmZvLT5pc1N1YkNsYXNzT2YoSlNPYmplY3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiBTcGVj
T2JqZWN0T3RoZXI7CkBAIC01MTMsNyArNTI0LDEzIEBAIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0
aW9uRnJvbVN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgcmV0dXJuIFNw
ZWNIZWFwQmlnSW50OwogICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IERl
cml2ZWRBcnJheVR5cGUpCiAgICAgICAgIHJldHVybiBTcGVjRGVyaXZlZEFycmF5OwotICAgIHJl
dHVybiBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oc3RydWN0dXJlLT5jbGFzc0luZm8oKSk7Cisg
ICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gQXJyYXlUeXBlKQorICAgICAg
ICByZXR1cm4gU3BlY0FycmF5OworICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgp
ID09IFN0cmluZ09iamVjdFR5cGUpCisgICAgICAgIHJldHVybiBTcGVjU3RyaW5nT2JqZWN0Owor
CisgICAgLy8gIEZhbGxiYWNrIHRvIHdoYXRldmVyIHRoZSB1cHBlciBib3VuZCBmb3Igb3VyIGNs
YXNzIGluZm8gdGVsbHMgdXMuCisgICAgcmV0dXJuIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mb0lu
aGVyaXRhbmNlKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkpOwogfQogCiBTcGVjdWxhdGVkVHlwZSBz
cGVjdWxhdGlvbkZyb21DZWxsKEpTQ2VsbCogY2VsbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKaW5kZXggN2I3YWEyMjUzY2VlMmIzMDkzNjE3
YTJjN2E5MWQyZTg3MzdlOWM1MC4uODNlNjgzNWNkMWMxY2M4YzViZmVhZmQzODYyZDVmZDE1NTA2
NDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0
ZWRUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmgKQEAgLTUyMyw3ICs1MjMsMTAgQEAgaW5saW5lIGJvb2wgc3BlY3VsYXRpb25DaGVja2Vk
KFNwZWN1bGF0ZWRUeXBlIGFjdHVhbCwgU3BlY3VsYXRlZFR5cGUgZGVzaXJlZCkKICAgICByZXR1
cm4gKGFjdHVhbCB8IGRlc2lyZWQpID09IGRlc2lyZWQ7CiB9CiAKLVNwZWN1bGF0ZWRUeXBlIHNw
ZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0luZm8qKTsKKy8vIFRoZSBTcGVjdWxh
dGVkVHlwZSByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uIGZvciBhbnkgY2VsbCwgYywgaGFzIHRo
ZSBmb2xsb3dpbmcgaW52YXJpYW50OgorLy8gQVNTRVJUKCFjLT5pbmhlcml0cyhjbGFzc0luZm8p
IHx8IHNwZWN1bGF0aW9uQ2hlY2tlZChzcGVjdWxhdGlvbkZyb21DZWxsKGMpLCBzcGVjdWxhdGlv
bkZyb21DbGFzc0luZm9Jbmhlcml0YW5jZShjbGFzc0luZm8pKSk7CitTcGVjdWxhdGVkVHlwZSBz
cGVjdWxhdGlvbkZyb21DbGFzc0luZm9Jbmhlcml0YW5jZShjb25zdCBDbGFzc0luZm8qKTsKKwog
U3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tU3RydWN0dXJlKFN0cnVjdHVyZSopOwogU3Bl
Y3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2VsbChKU0NlbGwqKTsKIEpTX0VYUE9SVF9QUklW
QVRFIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbVZhbHVlKEpTVmFsdWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCmluZGV4IDVmYzE5ODMwNWNmNDlkODA3NTE3OGRkMTU1M2NmNGVkODc1YjMxMzQu
LmQxNDQ1NTA0ZDZiMzMwYzBhNjQ5ODlhZjg0ZWFiZmQzYWViZDczNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmgKQEAgLTM1MTEsMTAgKzM1MTEsMTMgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFi
c3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAg
ICAgICAgICAgIGRpZEZvbGRDbG9iYmVyU3RydWN0dXJlcygpOwogICAgICAgICBjbGVhckZvck5v
ZGUobm9kZSk7IC8vIFRoZSByZXN1bHQgaXMgbm90IGEgSlMgdmFsdWUuCiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQ2hlY2tTdWJDbGFzczogeworICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6IHsKKyAg
ICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8gPSBub2RlLT5jbGFzc0luZm8oKTsKICAg
ICAgICAgSlNWYWx1ZSBjb25zdGFudCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7
CiAgICAgICAgIGlmIChjb25zdGFudCkgewotICAgICAgICAgICAgaWYgKGNvbnN0YW50LmlzQ2Vs
bCgpICYmIGNvbnN0YW50LmFzQ2VsbCgpLT5pbmhlcml0cyhtX3ZtLCBub2RlLT5jbGFzc0luZm8o
KSkpIHsKKyAgICAgICAgICAgIGlmIChjb25zdGFudC5pc0NlbGwoKSAmJiBjb25zdGFudC5hc0Nl
bGwoKS0+aW5oZXJpdHMobV92bSwgY2xhc3NJbmZvKSkgeworICAgICAgICAgICAgICAgIGlmIChj
bGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UpCisgICAgICAgICAgICAgICAgICAgIEFTU0VS
VChjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UtPmZpcnN0IDw9IGNvbnN0YW50LmFzQ2Vs
bCgpLT50eXBlKCkgJiYgY29uc3RhbnQuYXNDZWxsKCktPnR5cGUoKSA8PSBjbGFzc0luZm8tPmlu
aGVyaXRzSlNUeXBlUmFuZ2UtPmxhc3QpOwogICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hv
dWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgICAgIEFTU0VSVChjb25z
dGFudCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNTIzLDEwICszNTI2LDEwIEBAIGJv
b2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3Rz
KHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAKICAgICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKIAotICAgICAgICBpZiAodmFsdWUubV9zdHJ1Y3R1cmUu
aXNTdWJDbGFzc09mKG5vZGUtPmNsYXNzSW5mbygpKSkKKyAgICAgICAgaWYgKHZhbHVlLm1fc3Ry
dWN0dXJlLmlzU3ViQ2xhc3NPZihjbGFzc0luZm8pKQogICAgICAgICAgICAgbV9zdGF0ZS5zZXRT
aG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAKLSAgICAgICAgZmlsdGVyQ2xhc3NJbmZv
KHZhbHVlLCBub2RlLT5jbGFzc0luZm8oKSk7CisgICAgICAgIGZpbHRlckNsYXNzSW5mbyh2YWx1
ZSwgY2xhc3NJbmZvKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQ2FsbERPTUdl
dHRlcjogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dFZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5j
cHAKaW5kZXggZWVlMGU0ZDkyOTJkOTlhMWYyOTkxMWU3MjZkNTU3OGFiZTM3ZDA3MS4uMDk0ODk0
NzhiNWYwNTYyOTY4Zjc0M2MxMTU3Yjk1YmYxNzI4MGNmYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCkBAIC0yODYsNyArMjg2LDcgQEAgRmls
dHJhdGlvblJlc3VsdCBBYnN0cmFjdFZhbHVlOjpmaWx0ZXJDbGFzc0luZm8oR3JhcGgmIGdyYXBo
LCBjb25zdCBDbGFzc0luZm8qIGMKICAgICBpZiAoaXNDbGVhcigpKQogICAgICAgICByZXR1cm4g
RmlsdHJhdGlvbk9LOwogCi0gICAgbV90eXBlICY9IHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhj
bGFzc0luZm8pOworICAgIG1fdHlwZSAmPSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm9Jbmhlcml0
YW5jZShjbGFzc0luZm8pOwogICAgIG1fc3RydWN0dXJlLmZpbHRlckNsYXNzSW5mbyhjbGFzc0lu
Zm8pOwogCiAgICAgbV9zdHJ1Y3R1cmUuZmlsdGVyKG1fdHlwZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGNkZWMxODZmMTU5NWQw
MTEyOGJhMDAwMzQ2MWJiZGUzZjJiMDllMmUuLjdkMWU0MzYxY2IzMDdkYjE0YWVhZWU5ZDYyYWQw
NDRkNmQzOWI5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCkBAIC0zODcyLDcgKzM4NzIsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpo
YW5kbGVET01KSVRHZXR0ZXIoT3BlcmFuZCByZXN1bHQsIGNvbnN0IEdldEJ5SWRWYXJpYW50JiB2
YQogICAgIGFkZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVj
dHVyZVNldCh2YXJpYW50LnN0cnVjdHVyZVNldCgpKSksIHRoaXNOb2RlKTsKICAgICAKICAgICAv
LyBXZSBkbyBub3QgbmVlZCB0byBlbWl0IENoZWNrSXNDb25zdGFudCB0aGluZ3kgaGVyZS4gV2hl
biB0aGUgY3VzdG9tIGFjY2Vzc29yIGlzIHJlcGxhY2VkIHRvIGRpZmZlcmVudCBvbmUsIFN0cnVj
dHVyZSB0cmFuc2l0aW9uIG9jY3Vycy4KLSAgICBhZGRUb0dyYXBoKENoZWNrU3ViQ2xhc3MsIE9w
SW5mbyhkb21BdHRyaWJ1dGUtPmNsYXNzSW5mbyksIHRoaXNOb2RlKTsKKyAgICBhZGRUb0dyYXBo
KENoZWNrSlNDYXN0LCBPcEluZm8oZG9tQXR0cmlidXRlLT5jbGFzc0luZm8pLCB0aGlzTm9kZSk7
CiAgICAgCiAgICAgYm9vbCB3YXNTZWVuSW5KSVQgPSB0cnVlOwogICAgIEdldEJ5U3RhdHVzKiBz
dGF0dXMgPSBtX2dyYXBoLm1fcGxhbi5yZWNvcmRlZFN0YXR1c2VzKCkuYWRkR2V0QnlTdGF0dXMo
Y3VycmVudENvZGVPcmlnaW4oKSwgR2V0QnlTdGF0dXMoR2V0QnlTdGF0dXM6OkN1c3RvbSwgd2Fz
U2VlbkluSklUKSk7CkBAIC02NzQxLDkgKzY3NDEsMTAgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6
cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgICAgICBBU1NFUlRfV0lUSF9N
RVNTQUdFKGdsb2JhbE9iamVjdC0+YXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uQ29uY3VycmVudGx5
KCksICJUaGUgb25seSB3YXkgd2UgY291bGQgaGF2ZSBzZWVuIEZhc3RBcnJheSBpcyBpZiB3ZSBz
YXcgdGhpcyBmdW5jdGlvbiBpbiB0aGUgTExJbnQvQmFzZWxpbmUgc28gdGhlIGl0ZXJhdG9yIGZ1
bmN0aW9uIHNob3VsZCBiZSBhbGxvY2F0ZWQuIik7CiAgICAgICAgICAgICAgICAgRnJvemVuVmFs
dWUqIGZyb3plblN5bWJvbEl0ZXJhdG9yRnVuY3Rpb24gPSBtX2dyYXBoLmZyZWV6ZShnbG9iYWxP
YmplY3QtPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbkNvbmN1cnJlbnRseSgpKTsKICAgICAgICAg
ICAgICAgICBudW1iZXJPZlJlbWFpbmluZ01vZGVzLS07Ci0gICAgICAgICAgICAgICAgaWYgKCFu
dW1iZXJPZlJlbWFpbmluZ01vZGVzKQorICAgICAgICAgICAgICAgIGlmICghbnVtYmVyT2ZSZW1h
aW5pbmdNb2RlcykgewogICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrSXNDb25z
dGFudCwgT3BJbmZvKGZyb3plblN5bWJvbEl0ZXJhdG9yRnVuY3Rpb24pLCBzeW1ib2xJdGVyYXRv
cik7Ci0gICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFRvR3Jh
cGgoQ2hlY2tKU0Nhc3QsIE9wSW5mbyhKU0FycmF5OjppbmZvKCkpLCBnZXQoYnl0ZWNvZGUubV9p
dGVyYWJsZSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAg
IEJhc2ljQmxvY2sqIGZhc3RBcnJheUJsb2NrID0gYWxsb2NhdGVVbnRhcmdldGFibGVCbG9jaygp
OwogICAgICAgICAgICAgICAgICAgICBnZW5lcmljQmxvY2sgPSBhbGxvY2F0ZVVudGFyZ2V0YWJs
ZUJsb2NrKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5k
ZXggMDQwMWFjMWUzNmZiNzY4MGM3MmViN2Q2ODRhYWU2ODYxOTllZDFiZi4uMzUxZWMyZDQ3Njkz
OTdjYjA5OWFjMzkyODBiNGVjOWQzMjU0OTY3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKQEAgLTExODAsNyArMTE4MCw3IEBAIHZvaWQgY2xvYmJlcml6ZShH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBX
cml0ZUZ1CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQnV0dGVyZmx5TG9jLCBKU09iamVjdF9i
dXR0ZXJmbHksIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICByZXR1
cm47CiAKLSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKICAg
ICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5jbGFzc0luZm8oKSkpOwogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFu
dEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggMmRjZWViYTExMDg5ZGEyZTcwZDM3Y2JmZTZhNTNjOWY1
ZjcyM2YxOC4uYWYxZDQ0MDA4ZDg3MjhjN2Q1NzE3MmE5YTA1ZGRmNTI1ZWJmYmYzZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjYXNlIENoZWNrU3ViQ2xhc3M6IHsKKyAg
ICAgICAgICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6IHsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIGNv
bnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAg
ICAgICAgICAgIGlmIChjb25zdGFudCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoY29uc3Rh
bnQuaXNDZWxsKCkgJiYgY29uc3RhbnQuYXNDZWxsKCktPmluaGVyaXRzKG1fZ3JhcGgubV92bSwg
bm9kZS0+Y2xhc3NJbmZvKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKaW5kZXggNGVkYmIxZjVmYTRhZDY1ZjYzMWU3OGZhZDRmYzUyMDMxOTc5YzZmZS4uNjljNTAx
MGU5YTMwMmQ1YmUyYzQyMDMxZDQ2YWY1ODUxZjk1OWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTE0LDcgKzExNCw3IEBAIGJvb2wgZG9lc0dDKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNrU3RydWN0dXJlSW1tZWRpYXRlOgog
ICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNlIEdldEJ1dHRlcmZseToKLSAgICBjYXNl
IENoZWNrU3ViQ2xhc3M6CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKICAgICBjYXNlIENoZWNrQXJy
YXk6CiAgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eToKICAgICBjYXNlIENoZWNrTmV1dGVyZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCA1ODUy
ZmMxYjYwOGUwMDE5MmUxYzAyNTJmNzk0MzVkNjFiNTA1NWQ0Li4zMDBkOTVjNGQwOTljZjkwNzY1
MjJiZTkxMmRlOThkZjBjZTJmNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAKQEAgLTI1NDEsOCArMjU0MSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2UgQ2hlY2tTdWJDbGFzczogewotICAg
ICAgICAgICAgZml4dXBDaGVja1N1YkNsYXNzKG5vZGUpOworICAgICAgICBjYXNlIENoZWNrSlND
YXN0OiB7CisgICAgICAgICAgICBmaXh1cENoZWNrSlNDYXN0KG5vZGUpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KIApAQCAtNDAzNSwxNCArNDAzNSwxNCBAQCBwcml2YXRlOgogICAg
ICAgICB9CiAKICAgICAgICAgTm9kZSogdGhpc05vZGUgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG5v
ZGUsIDEpLm5vZGUoKTsKLSAgICAgICAgTm9kZSogY2hlY2tTdWJDbGFzcyA9IG1faW5zZXJ0aW9u
U2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNOb25lLCBDaGVja1N1YkNsYXNzLCBu
b2RlLT5vcmlnaW4sIE9wSW5mbyhzaWduYXR1cmUtPmNsYXNzSW5mbyksIEVkZ2UodGhpc05vZGUp
KTsKKyAgICAgICAgTm9kZSogY2hlY2tTdWJDbGFzcyA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydE5v
ZGUobV9pbmRleEluQmxvY2ssIFNwZWNOb25lLCBDaGVja0pTQ2FzdCwgbm9kZS0+b3JpZ2luLCBP
cEluZm8oc2lnbmF0dXJlLT5jbGFzc0luZm8pLCBFZGdlKHRoaXNOb2RlKSk7CiAgICAgICAgIG5v
ZGUtPmNvbnZlcnRUb0NhbGxET00obV9ncmFwaCk7Ci0gICAgICAgIGZpeHVwQ2hlY2tTdWJDbGFz
cyhjaGVja1N1YkNsYXNzKTsKKyAgICAgICAgZml4dXBDaGVja0pTQ2FzdChjaGVja1N1YkNsYXNz
KTsKICAgICAgICAgZml4dXBDYWxsRE9NKG5vZGUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKLSAgICB2b2lkIGZpeHVwQ2hlY2tTdWJDbGFzcyhOb2RlKiBub2RlKQorICAgIHZvaWQg
Zml4dXBDaGVja0pTQ2FzdChOb2RlKiBub2RlKQogICAgIHsKICAgICAgICAgZml4RWRnZTxDZWxs
VXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
aAppbmRleCBkMGFjYTAxZDNkZTA3NjkyZTJlYzI2OTk0YjZkMTg1NWZkMWM2MDAyLi4yMjQ3Mzc2
NWZiN2ZhYTIyYmZiMjc1ZjljNzVkNGVmYTI3Y2VjYmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaApAQCAtMjk0NSw3ICsyOTQ1LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXND
bGFzc0luZm8oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tTdWJD
bGFzczsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tKU0Nhc3Q7CiAgICAgfQogCiAgICAg
Y29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlVHlwZS5oCmluZGV4IDQzYjUzZTZhOTRlYzZlYTljMjIwMzMzYzcyNGJjZGZjZjljY2ViODAu
LjQ3ODk2Mjg2MjY3NjY2YzVkZjRhODk4NjBjZTY4YWMyMTgwMTlhNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTI4MCw3ICsyODAsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tJbkJvdW5kcywgTm9kZU11c3RH
ZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKENoZWNrSWRlbnQsIE5vZGVNdXN0
R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1R5cGVJbmZvRmxhZ3MsIE5vZGVNdXN0R2VuZXJh
dGUpIC8qIFRha2VzIGFuIE9wSW5mbyB3aXRoIHRoZSBmbGFncyB5b3Ugd2FudCB0byB0ZXN0IGFy
ZSBzZXQgKi9cCi0gICAgbWFjcm8oQ2hlY2tTdWJDbGFzcywgTm9kZU11c3RHZW5lcmF0ZSkgXAor
ICAgIG1hY3JvKENoZWNrSlNDYXN0LCBOb2RlTXVzdEdlbmVyYXRlKSAvKiBUaGlzIGlzIHRoZSBz
YW1lIGFzIGpzQ2FzdCBidXQgYXMgYSBzcGVjdWxhdGlvbiByYXRoZXIgdGhhbiBhc3NlcnRpb24g
Ki9cCiAgICAgbWFjcm8oUGFyc2VJbnQsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0SlMp
IFwKICAgICBtYWNybyhHZXRQcm90b3R5cGVPZiwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1
bHRKUykgXAogICAgIG1hY3JvKE9iamVjdENyZWF0ZSwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVS
ZXN1bHRKUykgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBmODBmYTg2NjQ0Y2UzN2UxMWQx
NTU0ODM4NjFjYWRiN2Y1MDJlYjlmLi4zZGIwZGQzNjIzOWI1OTQxMWVkNjQ1NGFlMThlOTlmMDE4
MWIyNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMTA2MCw3ICsxMDYwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBDaGVj
a1N1YkNsYXNzOgorICAgICAgICBjYXNlIENoZWNrSlNDYXN0OgogICAgICAgICAgICAgYnJlYWs7
CiAKICAgICAgICAgY2FzZSBTa2lwU2NvcGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGIzYTgwOWU3MmE0NTEwM2IwNDBkOTBmMjZhNDQxMTgz
NGJlOTY2MDkuLjY3MDc4ZmU4OTRmYjI5NjRjZDc3YmFjMjJiMDFkZDM0Njk2NzE4NmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0yMzQsNyAr
MjM0LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3Jh
cGgmIGdyYXBoLCBOb2RlKiBub2RlLCBib29sIGlnbm8KICAgICBjYXNlIEdldEV4ZWN1dGFibGU6
CiAgICAgY2FzZSBDYWxsRE9NR2V0dGVyOgogICAgIGNhc2UgQ2FsbERPTToKLSAgICBjYXNlIENo
ZWNrU3ViQ2xhc3M6CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKICAgICBjYXNlIENoZWNrQXJyYXk6
CiAgICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eToKICAgICBjYXNlIEdldFNjb3BlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAzZDIy
NWRjYTJkOGI4MDdjNzhmMjMyN2FjMjNkODE3MWU3ZjBmMjI5Li4yNTI4Njc4M2E0Y2VjODViZjdh
MTc4MTMxOGYzY2M3YTFlNTI3ZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtOTk5OSw5ICs5OTk5LDE5IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVDYWxsRE9NR2V0dGVyKE5vZGUqIG5vZGUpCiAgICAganNWYWx1ZVJl
c3VsdChyZXN1bHQucmVncygpLCBub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUNoZWNrU3ViQ2xhc3MoTm9kZSogbm9kZSkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVDaGVja0pTQ2FzdChOb2RlKiBub2RlKQogewogICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJ
bmZvID0gbm9kZS0+Y2xhc3NJbmZvKCk7CisgICAgaWYgKGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5
cGVSYW5nZSkgeworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworCisgICAg
ICAgIGF1dG8gY2hlY2tGYWlsZWQgPSBtX2ppdC5icmFuY2hJZk5vdFR5cGUoYmFzZUdQUiwgY2xh
c3NJbmZvLT5pbmhlcml0c0pTVHlwZVJhbmdlLT5maXJzdCwgY2xhc3NJbmZvLT5pbmhlcml0c0pT
VHlwZVJhbmdlLT5sYXN0KTsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1Zh
bHVlU291cmNlOjp1bmJveGVkQ2VsbChiYXNlR1BSKSwgbm9kZS0+Y2hpbGQxKCksIGNoZWNrRmFp
bGVkKTsKKyAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICBpZiAoIWNsYXNzSW5mby0+Y2hlY2tTdWJDbGFzc1NuaXBwZXQpIHsKICAgICAgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQ
UlRlbXBvcmFyeSBvdGhlcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaAppbmRleCBhY2JiMDNjZmViODA4ZTI4MDI1YTJjZjllOGQxM2RiYjVh
ZjY5N2M5Li5kOTM0NmM2N2I4Y2UzMzNiNDAxOGU0OTViYjkwZTgwZjZjNGM5MWE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xMjQ2LDcg
KzEyNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlR2V0QnV0dGVyZmx5KE5vZGUqKTsK
ICAgICB2b2lkIGNvbXBpbGVDYWxsRE9NR2V0dGVyKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVD
YWxsRE9NKE5vZGUqKTsKLSAgICB2b2lkIGNvbXBpbGVDaGVja1N1YkNsYXNzKE5vZGUqKTsKKyAg
ICB2b2lkIGNvbXBpbGVDaGVja0pTQ2FzdChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlTm9ybWFs
aXplTWFwS2V5KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVHZXRNYXBCdWNrZXRIZWFkKE5vZGUq
KTsKICAgICB2b2lkIGNvbXBpbGVHZXRNYXBCdWNrZXROZXh0KE5vZGUqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4
IDE5ZDBlMjhhNGU3NGVhYjBiOWUzOGE5MTk3YTMzOTJmOGFkOGQxMzQuLmEzYzA1OTE1MzViNzg5
M2UwOGQwMDU1ZDZiMmYxNjg5YTI0NDY3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDE3NCw4ICs0MTc0LDgg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjb21w
aWxlQ2FsbERPTUdldHRlcihub2RlKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIENoZWNr
U3ViQ2xhc3M6Ci0gICAgICAgIGNvbXBpbGVDaGVja1N1YkNsYXNzKG5vZGUpOworICAgIGNhc2Ug
Q2hlY2tKU0Nhc3Q6CisgICAgICAgIGNvbXBpbGVDaGVja0pTQ2FzdChub2RlKTsKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIFVucmVhY2hhYmxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNGQyNmQzNTZiNmYxNjc1Zjcz
NWIzYzUwNjUxNjdjMzIxZjRmOThlMy4uMTQ3NTQxYTNiOWQxOTJlNTAxNzFhOThiNmJkMzBlZTFl
YTI5ZGQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCkBAIC01MDQ2LDggKzUwNDYsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVDYWxsRE9NR2V0dGVyKG5vZGUpOwog
ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKLSAgICAgICAgY29tcGls
ZUNoZWNrU3ViQ2xhc3Mobm9kZSk7CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKKyAgICAgICAgY29t
cGlsZUNoZWNrSlNDYXN0KG5vZGUpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgRXh0cmFj
dENhdGNoTG9jYWw6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcAppbmRleCBjNWExNjAxNGIzMDkyZDU4NTg4NjdhMGUzYjE3NDU3MTg4MWZjNjY3Li5h
NGY5N2Q0NjBiMTgyYzhlNDUxNDQzMzAyMjBhMmM5MjFmOTMwMTU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAg
aW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBU
b0xvd2VyQ2FzZToKICAgICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4OgogICAgIGNhc2Ug
TnVtYmVyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeENvbnN0YW50OgotICAgIGNhc2UgQ2hlY2tTdWJD
bGFzczoKKyAgICBjYXNlIENoZWNrSlNDYXN0OgogICAgIGNhc2UgQ2FsbERPTToKICAgICBjYXNl
IENhbGxET01HZXR0ZXI6CiAgICAgY2FzZSBBcnJheVNsaWNlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IGZiN2ZjZWVjYjQ1Y2I3OWQ5NzFi
NTAzOWY0MDYzNjhkMzMyNDEzZmYuLjY3ZDRhNmQwYWJjNmU1YzNkOGNjNjE1MGI4YzEzZmQyOGM1
MGZmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKQEAgLTE1ODYsOCArMTU4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgTnVtYmVyVG9T
dHJpbmdXaXRoVmFsaWRSYWRpeENvbnN0YW50OgogICAgICAgICAgICAgY29tcGlsZU51bWJlclRv
U3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKLSAgICAgICAgICAgIGNvbXBpbGVDaGVja1N1YkNsYXNz
KCk7CisgICAgICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CisgICAgICAgICAgICBjb21waWxlQ2hlY2tK
U0Nhc3QoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENhbGxET006CiAgICAg
ICAgICAgICBjb21waWxlQ2FsbERPTSgpOwpAQCAtMTM5MzEsMTEgKzEzOTMxLDE4IEBAIHByaXZh
dGU6CiAgICAgICAgIGNyYXNoKCk7CiAgICAgfQogCi0gICAgdm9pZCBjb21waWxlQ2hlY2tTdWJD
bGFzcygpCisgICAgdm9pZCBjb21waWxlQ2hlY2tKU0Nhc3QoKQogICAgIHsKICAgICAgICAgTFZh
bHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwogCiAgICAgICAgIGNvbnN0IENs
YXNzSW5mbyogY2xhc3NJbmZvID0gbV9ub2RlLT5jbGFzc0luZm8oKTsKKworICAgICAgICBpZiAo
Y2xhc3NJbmZvLT5pbmhlcml0c0pTVHlwZVJhbmdlKSB7CisgICAgICAgICAgICBMVmFsdWUgaGFz
VHlwZSA9IGlzQ2VsbFdpdGhUeXBlKGNlbGwsIGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5n
ZS0+Zmlyc3QsIGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5nZS0+bGFzdCk7CisgICAgICAg
ICAgICBzcGVjdWxhdGUoQmFkVHlwZSwganNWYWx1ZVZhbHVlKGNlbGwpLCBtX25vZGUtPmNoaWxk
MSgpLm5vZGUoKSwgbV9vdXQuYml0Tm90KGhhc1R5cGUpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCiAgICAgICAgIGlmICghY2xhc3NJbmZvLT5jaGVja1N1YkNsYXNzU25pcHBl
dCkgewogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbG9vcCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CiAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBwYXJlbnRDbGFzcyA9IG1fb3V0Lm5ld0Jsb2NrKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCmluZGV4IGIzMmM4ZmRiNWQ3
NjZkNzBiZmUxZjAwMjFhZjI2OTY2MmVlMzI4NTkuLjM5ZDI2ZTBkODZhMTE2MzY0YmY1MDY0Y2Ew
ZjJmZDg0YzRiNzA2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NsYXNzSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5m
by5oCkBAIC0xNTEsNyArMTUxLDkgQEAgc3RydWN0IE1ldGhvZFRhYmxlIHsKIAogI2RlZmluZSBI
QVNfTUVNQkVSX05BTUVEKGtsYXNzLCBuYW1lKSAoTWVtYmVyQ2hlY2sjI25hbWU8a2xhc3M+Ojpo
YXMpCiAKLSNkZWZpbmUgQ1JFQVRFX01FVEhPRF9UQUJMRShDbGFzc05hbWUpIHsgXAorI2RlZmlu
ZSBDUkVBVEVfTUVUSE9EX1RBQkxFKENsYXNzTmFtZSkgXAorICAgIEpTQ2FzdGluZ0hlbHBlcnM6
OkluaGVyaXRzVHJhaXRzPENsYXNzTmFtZT46OnR5cGVSYW5nZSwgXAorICAgIHsgXAogICAgICAg
ICAmQ2xhc3NOYW1lOjpkZXN0cm95LCBcCiAgICAgICAgICZDbGFzc05hbWU6OnZpc2l0Q2hpbGRy
ZW4sIFwKICAgICAgICAgJkNsYXNzTmFtZTo6Z2V0Q2FsbERhdGEsIFwKQEAgLTE4NSwxMCArMTg3
LDEwIEBAIHN0cnVjdCBNZXRob2RUYWJsZSB7CiAgICAgICAgICZDbGFzc05hbWU6OnZpc2l0T3V0
cHV0Q29uc3RyYWludHMsIFwKICAgICB9LCBcCiAgICAgQ2xhc3NOYW1lOjpUeXBlZEFycmF5U3Rv
cmFnZVR5cGUsIFwKLSAgICBzaXplb2YoQ2xhc3NOYW1lKQorICAgIHNpemVvZihDbGFzc05hbWUp
LAogCiBzdHJ1Y3QgQ2xhc3NJbmZvIHsKLSAgICB1c2luZyBDaGVja1N1YkNsYXNzU25pcHBldEZ1
bmN0aW9uUHRyID0gUmVmPFNuaXBwZXQ+ICgqKSh2b2lkKTsKKyAgICB1c2luZyBDaGVja0pTQ2Fz
dFNuaXBwZXRGdW5jdGlvblB0ciA9IFJlZjxTbmlwcGV0PiAoKikodm9pZCk7CiAKICAgICAvLyBB
IHN0cmluZyBkZW5vdGluZyB0aGUgY2xhc3MgbmFtZS4gRXhhbXBsZTogIldpbmRvdyIuCiAgICAg
Y29uc3QgY2hhciogY2xhc3NOYW1lOwpAQCAtMTk2LDEwICsxOTgsMTEgQEAgc3RydWN0IENsYXNz
SW5mbyB7CiAgICAgLy8gbnVsbHB0cmlmIHRoZXJlIGlzIG5vbmUuCiAgICAgY29uc3QgQ2xhc3NJ
bmZvKiBwYXJlbnRDbGFzczsKICAgICBjb25zdCBIYXNoVGFibGUqIHN0YXRpY1Byb3BIYXNoVGFi
bGU7Ci0gICAgQ2hlY2tTdWJDbGFzc1NuaXBwZXRGdW5jdGlvblB0ciBjaGVja1N1YkNsYXNzU25p
cHBldDsKKyAgICBDaGVja0pTQ2FzdFNuaXBwZXRGdW5jdGlvblB0ciBjaGVja1N1YkNsYXNzU25p
cHBldDsKKyAgICBjb25zdCBPcHRpb25hbDxKU0Nhc3RpbmdIZWxwZXJzOjpKU1R5cGVSYW5nZT4g
aW5oZXJpdHNKU1R5cGVSYW5nZTsgLy8gVGhpcyBpcyByYW5nZSBvZiBKU1R5cGVzIGZvciBkb2lu
ZyBpbmhlcml0YW5jZSBjaGVja2luZy4gSGFzIHRoZSBmb3JtOiBbZmlyc3RKU1R5cGUsIGxhc3RK
U1R5cGVdIChpbmNsdXNpdmUpLgogICAgIE1ldGhvZFRhYmxlIG1ldGhvZFRhYmxlOwotICAgIFR5
cGVkQXJyYXlUeXBlIHR5cGVkQXJyYXlTdG9yYWdlVHlwZTsKLSAgICB1bnNpZ25lZCBzdGF0aWND
bGFzc1NpemU7CisgICAgY29uc3QgVHlwZWRBcnJheVR5cGUgdHlwZWRBcnJheVN0b3JhZ2VUeXBl
OworICAgIGNvbnN0IHVuc2lnbmVkIHN0YXRpY0NsYXNzU2l6ZTsKIAogICAgIHN0YXRpYyBwdHJk
aWZmX3Qgb2Zmc2V0T2ZQYXJlbnRDbGFzcygpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Nhc3QuaAppbmRleCBiMjUwMzU2OWM4NDIyNTYwMTE0MWE4MGNmNTk4NDhmNWQ2NzNi
NzRiLi5iNGViNTEyYmQyNzIyODQwMWYxZjliM2RiMmVlNmIzZTg1YjdmMDgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaApAQCAtMTI1LDExICsxMjUsMTcgQEAgc3RydWN0
IEZpbmFsVHlwZURpc3BhdGNoZXI8LyogaXNGaW5hbCAqLyB0cnVlPiB7CiAgICAgfQogfTsKIAor
Ly8gVGhlIGZpcnN0IGFuZCBsYXN0IEpTVHlwZSBhcmUgaW5jbHVzaXZlCitzdHJ1Y3QgSlNUeXBl
UmFuZ2UgeworICAgIEpTVHlwZSBmaXJzdDsKKyAgICBKU1R5cGUgbGFzdDsKK307CisKIHRlbXBs
YXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgRnJvbT4KLWlubGluZSBib29sIGluaGVyaXRz
SlNUeXBlSW1wbChWTSYgdm0sIEZyb20qIGZyb20sIEpTVHlwZSBmaXJzdFR5cGUsIEpTVHlwZSBs
YXN0VHlwZSkKK2lubGluZSBib29sIGluaGVyaXRzSlNUeXBlSW1wbChWTSYgdm0sIEZyb20qIGZy
b20sIEpTVHlwZVJhbmdlIHJhbmdlKQogewogICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19iYXNl
X29mPEpTQ2VsbCwgVGFyZ2V0Pjo6dmFsdWUgJiYgc3RkOjppc19iYXNlX29mPEpTQ2VsbCwgdHlw
ZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxGcm9tPjo6dHlwZT46OnZhbHVlLCAiSlMgY2FzdGlu
ZyBleHBlY3RzIHRoYXQgdGhlIHR5cGVzIHlvdSBhcmUgY2FzdGluZyB0by9mcm9tIGFyZSBzdWJj
bGFzc2VzIG9mIEpTQ2VsbCIpOwotICAgIGJvb2wgY2FuQ2FzdCA9IGZpcnN0VHlwZSA8PSBmcm9t
LT50eXBlKCkgJiYgZnJvbS0+dHlwZSgpIDw9IGxhc3RUeXBlOworICAgIGJvb2wgY2FuQ2FzdCA9
IHJhbmdlLmZpcnN0IDw9IGZyb20tPnR5cGUoKSAmJiBmcm9tLT50eXBlKCkgPD0gcmFuZ2UubGFz
dDsKICAgICAvLyBEbyBub3QgdXNlIGluaGVyaXRzPFRhcmdldD4odm0pIHNpbmNlIGluaGVyaXRz
PFQ+IGRlcGVuZHMgb24gdGhpcyBmdW5jdGlvbi4KICAgICBBU1NFUlRfVU5VU0VEKHZtLCBjYW5D
YXN0ID09IGZyb20tPkpTQ2VsbDo6aW5oZXJpdHModm0sIFRhcmdldDo6aW5mbygpKSk7CiAgICAg
cmV0dXJuIGNhbkNhc3Q7CkBAIC0xMzksNiArMTQ1LDcgQEAgaW5saW5lIGJvb2wgaW5oZXJpdHNK
U1R5cGVJbXBsKFZNJiB2bSwgRnJvbSogZnJvbSwgSlNUeXBlIGZpcnN0VHlwZSwgSlNUeXBlIGxh
c3QKIC8vIHdheSB0byBzYXkgdGhhdCB3ZSBhcmUgb3ZlcmxvYWRpbmcganVzdCB0aGUgZmlyc3Qg
dHlwZSBpbiBhIHRlbXBsYXRlIGxpc3QuLi4KIHRlbXBsYXRlPHR5cGVuYW1lIFRhcmdldD4KIHN0
cnVjdCBJbmhlcml0c1RyYWl0cyB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25hbDxKU1R5
cGVSYW5nZT4gdHlwZVJhbmdlIHsgV1RGOjpudWxsb3B0IH07CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRnJvbT4KICAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBm
cm9tKSB7IHJldHVybiBGaW5hbFR5cGVEaXNwYXRjaGVyPHN0ZDo6aXNfZmluYWw8VGFyZ2V0Pjo6
dmFsdWU+Ojp0ZW1wbGF0ZSBpbmhlcml0c0dlbmVyaWM8VGFyZ2V0Pih2bSwgZnJvbSk7IH0KIH07
CkBAIC0xNDYsOCArMTUzLDkgQEAgc3RydWN0IEluaGVyaXRzVHJhaXRzIHsKICNkZWZpbmUgREVG
SU5FX1RSQUlUU19GT1JfSlNfVFlQRV9PVkVSTE9BRChjbGFzc05hbWUsIGZpcnN0SlNUeXBlLCBs
YXN0SlNUeXBlKSBcCiAgICAgdGVtcGxhdGU8PiBcCiAgICAgc3RydWN0IEluaGVyaXRzVHJhaXRz
PGNsYXNzTmFtZT4geyBcCisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNUeXBl
UmFuZ2U+IHR5cGVSYW5nZSB7IHsgc3RhdGljX2Nhc3Q8SlNUeXBlPihmaXJzdEpTVHlwZSksIHN0
YXRpY19jYXN0PEpTVHlwZT4obGFzdEpTVHlwZSkgfSB9OyBcCiAgICAgICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEZyb20+IFwKLSAgICAgICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiB2
bSwgRnJvbSogZnJvbSkgeyByZXR1cm4gaW5oZXJpdHNKU1R5cGVJbXBsPGNsYXNzTmFtZSwgRnJv
bT4odm0sIGZyb20sIHN0YXRpY19jYXN0PEpTVHlwZT4oZmlyc3RKU1R5cGUpLCBzdGF0aWNfY2Fz
dDxKU1R5cGU+KGxhc3RKU1R5cGUpKTsgfSBcCisgICAgICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBp
bmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20pIHsgcmV0dXJuIGluaGVyaXRzSlNUeXBlSW1wbDxj
bGFzc05hbWUsIEZyb20+KHZtLCBmcm9tLCAqdHlwZVJhbmdlKTsgfSBcCiAgICAgfTsgXAogCiBG
T1JfRUFDSF9KU19EWU5BTUlDX0NBU1RfSlNfVFlQRV9PVkVSTE9BRChERUZJTkVfVFJBSVRTX0ZP
Ul9KU19UWVBFX09WRVJMT0FEKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcAppbmRleCAwZTNmODU4MWRmZDVlMzYxM2M3YjUzZDk5ODY2MWQ4ODFhMjQ0Mjc5
Li5kNTU2Y2RlZTYyOThlOTllMjM2ODllNDc1NTU2MjdkMWU3YjdiMTkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtOTEyLDcgKzkxMiw3IEBA
IEpTRnVuY3Rpb246OlByb3BlcnR5U3RhdHVzIEpTRnVuY3Rpb246OnJlaWZ5TGF6eUJvdW5kTmFt
ZUlmTmVlZGVkKFZNJiB2bSwgSlNHbG9iCiAjaWYgQVNTRVJUX0VOQUJMRUQKIHZvaWQgSlNGdW5j
dGlvbjo6YXNzZXJ0VHlwZUluZm9GbGFnSW52YXJpYW50cygpCiB7Ci0gICAgLy8gSWYgeW91IGNo
YW5nZSB0aGlzLCB5b3UnbGwgbmVlZCB0byB1cGRhdGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZv
LgorICAgIC8vIElmIHlvdSBjaGFuZ2UgdGhpcywgeW91J2xsIG5lZWQgdG8gdXBkYXRlIHNwZWN1
bGF0aW9uRnJvbUNsYXNzSW5mb0luaGVyaXRhbmNlLgogICAgIGNvbnN0IENsYXNzSW5mbyogaW5m
byA9IGNsYXNzSW5mbyh2bSgpKTsKICAgICBpZiAoIShpbmxpbmVUeXBlRmxhZ3MoKSAmIEltcGxl
bWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpKQogICAgICAgICBSRUxFQVNFX0FTU0VSVChpbmZvID09
IEpTQm91bmRGdW5jdGlvbjo6aW5mbygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90b29scy9KU0RvbGxhclZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9K
U0RvbGxhclZNLmNwcAppbmRleCBlM2VjZWY2ZWNiYWJhN2UxNzI2MGVhNTUxN2EyZjc2ZmM1MDIx
YzQ1Li4wOWFmMGIxYzZkYmZlNTAyODczNjVjZDY5MmU4ODYzMzBmZmY0NGQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCkBAIC0xMTI1LDkgKzExMjUsOSBA
QCB2b2lkIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0s
IGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMiKSwgMCwgZnVu
Y3Rpb25XaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRPTUpJVEZ1bmN0aW9uT2JqZWN0U2ln
bmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
KSk7CiB9CiAKLWNsYXNzIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QgOiBwdWJsaWMgRE9NSklU
Tm9kZSB7CitjbGFzcyBET01KSVRDaGVja0pTQ2FzdE9iamVjdCA6IHB1YmxpYyBET01KSVROb2Rl
IHsKIHB1YmxpYzoKLSAgICBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCisgICAgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiAgICAgewog
ICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwpAQCAtMTE0MywxMCArMTE0
MywxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTQzo6SlNUeXBlKExhc3RKU0NPYmplY3RU
eXBlICsgMSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMg
RE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgc3RhdGljIERPTUpJVENo
ZWNrSlNDYXN0T2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0
U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAgICAgIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QqIG9i
amVjdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPERPTUpJVENoZWNrU3ViQ2xhc3NPYmpl
Y3Q+KHZtLmhlYXApKSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwor
ICAgICAgICBET01KSVRDaGVja0pTQ2FzdE9iamVjdCogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBh
bGxvY2F0ZUNlbGw8RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q+KHZtLmhlYXApKSBET01KSVRDaGVj
a0pTQ2FzdE9iamVjdCh2bSwgc3RydWN0dXJlKTsKICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVh
dGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CkBA
IC0xMTU3LDcgKzExNTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
Ci0gICAgICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVENoZWNrU3Vi
Q2xhc3NPYmplY3QqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAgICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVENoZWNrSlNDYXN0T2JqZWN0Kj4odm0s
IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCiAgICAg
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT52YWx1ZSgp
KSk7CkBAIC0xMTc2LDEzICsxMTc2LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCi1zdGF0aWMgY29uc3QgRE9NSklUOjpT
aWduYXR1cmUgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdFNpZ25hdHVyZShET01KSVRDaGVja1N1
YkNsYXNzT2JqZWN0OjpmdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2ssIERPTUpJVENoZWNrU3ViQ2xh
c3NPYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpIZWFwUmFu
Z2U6OnRvcCgpKSwgU3BlY0ludDMyT25seSk7CitzdGF0aWMgY29uc3QgRE9NSklUOjpTaWduYXR1
cmUgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RTaWduYXR1cmUoRE9NSklUQ2hlY2tKU0Nhc3RPYmpl
Y3Q6OmZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjaywgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6Omlu
Zm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpIZWFwUmFuZ2U6OnRvcCgpKSwg
U3BlY0ludDMyT25seSk7CiAKLXZvaWQgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdDo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBET01K
SVRDaGVja0pTQ2FzdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0
aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJmdW5jIiks
IDAsIGZ1bmN0aW9uV2l0aFR5cGVDaGVjaywgTm9JbnRyaW5zaWMsICZET01KSVRDaGVja1N1YkNs
YXNzT2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5KSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25XaXRo
VHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRPTUpJVENoZWNrSlNDYXN0T2JqZWN0U2lnbmF0dXJl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiB9
CiAKIGNsYXNzIERPTUpJVEdldHRlckJhc2VKU09iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsK
QEAgLTE0MTcsNyArMTQxNyw3IEBAIGNvbnN0IENsYXNzSW5mbyBET01KSVRGdW5jdGlvbk9iamVj
dDo6c19pbmZvID0geyAiRE9NSklURnVuY3Rpb25PYmplY3QiLCAmQmFzZTo6CiAjZWxzZQogY29u
c3QgQ2xhc3NJbmZvIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzX2luZm8gPSB7ICJET01KSVRGdW5j
dGlvbk9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoRE9NSklURnVuY3Rpb25PYmplY3QpIH07CiAjZW5kaWYKLWNvbnN0IENsYXNzSW5m
byBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpzX2luZm8gPSB7ICJET01KSVRDaGVja1N1YkNs
YXNzT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0KSB9OworY29uc3QgQ2xhc3NJbmZvIERP
TUpJVENoZWNrSlNDYXN0T2JqZWN0OjpzX2luZm8gPSB7ICJET01KSVRDaGVja0pTQ2FzdE9iamVj
dCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QpIH07CiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q3VzdG9t
R2V0dGVyU2V0dGVyOjpzX2luZm8gPSB7ICJKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXIiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1
c3RvbUdldHRlclNldHRlcikgfTsKIAogY29uc3QgQ2xhc3NJbmZvIFN0YXRpY0N1c3RvbUFjY2Vz
c29yOjpzX2luZm8gPSB7ICJTdGF0aWNDdXN0b21BY2Nlc3NvciIsICZCYXNlOjpzX2luZm8sICZz
dGF0aWNDdXN0b21BY2Nlc3NvclRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFN0
YXRpY0N1c3RvbUFjY2Vzc29yKSB9OwpAQCAtMjM0OSwxMyArMjM0OSwxMyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2Jq
ZWN0KEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRD
aGVja1N1YkNsYXNzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURP
TUpJVENoZWNrSlNDYXN0T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSopCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwotICAg
IFN0cnVjdHVyZSogc3RydWN0dXJlID0gRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGpzTnVsbCgpKTsKLSAgICBET01KSVRDaGVja1N1
YkNsYXNzT2JqZWN0KiByZXN1bHQgPSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVj
dCwganNOdWxsKCkpOworICAgIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0KiByZXN1bHQgPSBET01K
SVRDaGVja0pTQ2FzdE9iamVjdDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0zMDUzLDcgKzMw
NTMsNyBAQCB2b2lkIEpTRG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBhZGRG
dW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRlck9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9N
SklUR2V0dGVyT2JqZWN0LCAwKTsKICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdl
dHRlckNvbXBsZXhPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmpl
Y3QsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3Qi
LCBmdW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0LCAwKTsKLSAgICBhZGRGdW5jdGlv
bih2bSwgImNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURP
TUpJVENoZWNrU3ViQ2xhc3NPYmplY3QsIDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRl
RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrSlNDYXN0
T2JqZWN0LCAwKTsKICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRlckJhc2VK
U09iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0LCAwKTsKICAg
ICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUJ1aWx0aW4iLCBmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4s
IDIpOwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L09wdGlvbmFsLmggYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCmluZGV4IDc3MTZiYTQxOGRk
YWVkMzM0ZjQwYjU2MGNjYTcyMzM2OTVjZmU4NzguLjdiZjBlY2E0YjcwNzdjOGVjNTgxNDQ3ZmI1
ODQyNGY2NjgxYWVmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKKysr
IGIvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaApAQCAtNDExLDIwICs0MTEsMjYgQEAgcHVibGlj
OgogICBjb25zdGV4cHIgT3B0aW9uYWwoKSBfX05PRVhDRVBUIDogT3B0aW9uYWxCYXNlPFQ+KCkg
IHt9OwogICBjb25zdGV4cHIgT3B0aW9uYWwobnVsbG9wdF90KSBfX05PRVhDRVBUIDogT3B0aW9u
YWxCYXNlPFQ+KCkge307CiAKLSAgT3B0aW9uYWwoY29uc3QgT3B0aW9uYWwmIHJocykKKyAgY29u
c3RleHByIE9wdGlvbmFsKGNvbnN0IE9wdGlvbmFsJiByaHMpCiAgIDogT3B0aW9uYWxCYXNlPFQ+
KCkKICAgewogICAgIGlmIChyaHMuaW5pdGlhbGl6ZWQoKSkgewotICAgICAgICA6Om5ldyAoc3Rh
dGljX2Nhc3Q8dm9pZCo+KGRhdGFwdHIoKSkpIFQoKnJocyk7CisgICAgICAgIGlmIGNvbnN0ZXhw
ciAoc3RkOjppc190cml2aWFsbHlfY29weWFibGVfdjxUPikKKyAgICAgICAgICAgIE9wdGlvbmFs
QmFzZTxUPjo6c3RvcmFnZV8gPSAqcmhzOworICAgICAgICBlbHNlCisgICAgICAgICAgICA6Om5l
dyAoc3RhdGljX2Nhc3Q8dm9pZCo+KGRhdGFwdHIoKSkpIFQoKnJocyk7CiAgICAgICAgIE9wdGlv
bmFsQmFzZTxUPjo6aW5pdF8gPSB0cnVlOwogICAgIH0KICAgfQogCi0gIE9wdGlvbmFsKE9wdGlv
bmFsJiYgcmhzKSBfX05PRVhDRVBUXyhkZXRhaWxfOjppc19ub3Rocm93X21vdmVfY29uc3RydWN0
aWJsZTxUPjo6dmFsdWUpCisgIGNvbnN0ZXhwciBPcHRpb25hbChPcHRpb25hbCYmIHJocykgX19O
T0VYQ0VQVF8oZGV0YWlsXzo6aXNfbm90aHJvd19tb3ZlX2NvbnN0cnVjdGlibGU8VD46OnZhbHVl
KQogICA6IE9wdGlvbmFsQmFzZTxUPigpCiAgIHsKICAgICBpZiAocmhzLmluaXRpYWxpemVkKCkp
IHsKLSAgICAgICAgOjpuZXcgKHN0YXRpY19jYXN0PHZvaWQqPihkYXRhcHRyKCkpKSBUKHN0ZDo6
bW92ZSgqcmhzKSk7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc190cml2aWFsbHlfY29w
eWFibGVfdjxUPikKKyAgICAgICAgICAgIE9wdGlvbmFsQmFzZTxUPjo6c3RvcmFnZV8gPSAqcmhz
OworICAgICAgICBlbHNlCisgICAgICAgICAgICA6Om5ldyAoc3RhdGljX2Nhc3Q8dm9pZCo+KGRh
dGFwdHIoKSkpIFQoc3RkOjptb3ZlKCpyaHMpKTsKICAgICAgICAgT3B0aW9uYWxCYXNlPFQ+Ojpp
bml0XyA9IHRydWU7CiAgICAgICAgIHJocy5jbGVhcigpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaAppbmRleCBhNTM5NjM2NDg0YWQzYTQx
NWM5ZTM5ZjBjYzIzNzkzMjQyZGFiNTkxLi44MWNiOTEwZmFmNjc5OWEyNmUxZWUxNGQ0YjY0NWNi
NDk3NTA2YTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1
c3RvbS5oCkBAIC0zNCwxMCArMzQsMTEgQEAgbmFtZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMgewog
CiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHM8V2ViQ29yZTo6SlNEb2N1bWVudD4g
eworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7
IEpTVHlwZVJhbmdlIHsgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpKU0RvY3VtZW50V3Jh
cHBlclR5cGUpLCBzdGF0aWNfY2FzdDxKU1R5cGU+KFdlYkNvcmU6OkpTRG9jdW1lbnRXcmFwcGVy
VHlwZSkgfSB9OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+Ci0gICAgc3RhdGljIGlubGlu
ZSBib29sIGluaGVyaXRzKFZNJiwgRnJvbSogZnJvbSkKKyAgICBzdGF0aWMgaW5saW5lIGJvb2wg
aW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb20t
PnR5cGUoKSA9PSBXZWJDb3JlOjpKU0RvY3VtZW50V3JhcHBlclR5cGU7CisgICAgICAgIHJldHVy
biBpbmhlcml0c0pTVHlwZUltcGw8V2ViQ29yZTo6SlNEb2N1bWVudD4odm0sIGZyb20sICp0eXBl
UmFuZ2UpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRWxlbWVudEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVt
ZW50Q3VzdG9tLmgKaW5kZXggNWM2MTQ0NzdmNjMzYmUyZDdjMTMwNThjNjc5NzY2NmU4Mzc0NWY3
NC4uMjVhNjgzYzllYzliYjU1MDc1YmZlYzgwNTJhZmJiNTg5ZjEwNTliMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmgKQEAgLTM0LDEwICszNCwxMSBA
QCBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycyB7CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBJbmhl
cml0c1RyYWl0czxXZWJDb3JlOjpKU0VsZW1lbnQ+IHsKKyAgICBzdGF0aWMgY29uc3RleHByIE9w
dGlvbmFsPEpTVHlwZVJhbmdlPiB0eXBlUmFuZ2UgeyBKU1R5cGVSYW5nZSB7IHN0YXRpY19jYXN0
PEpTVHlwZT4oV2ViQ29yZTo6SlNFbGVtZW50VHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4oV2Vi
Q29yZTo6SlNFbGVtZW50VHlwZSkgfSB9OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+Ci0g
ICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiwgRnJvbSogZnJvbSkKKyAgICBzdGF0
aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBXZWJDb3JlOjpKU0VsZW1lbnRUeXBlOworICAgICAg
ICByZXR1cm4gaW5oZXJpdHNKU1R5cGVJbXBsPFdlYkNvcmU6OkpTRWxlbWVudD4odm0sIGZyb20s
ICp0eXBlUmFuZ2UpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRDdXN0b20uaAppbmRleCAyZTY1YTMxMjJhY2JkNmRjYzZjY2YwNjcwMTUyYmE1NTNlOTRl
NjYxLi5lMDNhMGRjNWZkZDE1YTdmZmYwOWRjNWIyMzA1NmNlY2FkYWQzN2NkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5oCkBAIC0zNCwxMCArMzQsMTEgQEAg
bmFtZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMgewogCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3QgSW5oZXJp
dHNUcmFpdHM8V2ViQ29yZTo6SlNFdmVudD4geworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9u
YWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7IHsgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3Jl
OjpKU0V2ZW50VHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNFdmVudFR5cGUp
IH0gfTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGcm9tPgotICAgIHN0YXRpYyBpbmxpbmUgYm9v
bCBpbmhlcml0cyhWTSYsIEZyb20qIGZyb20pCisgICAgc3RhdGljIGlubGluZSBib29sIGluaGVy
aXRzKFZNJiB2bSwgRnJvbSogZnJvbSkKICAgICB7Ci0gICAgICAgIHJldHVybiBmcm9tLT50eXBl
KCkgPT0gV2ViQ29yZTo6SlNFdmVudFR5cGU7CisgICAgICAgIHJldHVybiBpbmhlcml0c0pTVHlw
ZUltcGw8V2ViQ29yZTo6SlNFdmVudD4odm0sIGZyb20sICp0eXBlUmFuZ2UpOwogICAgIH0KIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKaW5kZXggNTg5NTBj
YmUyMGJiNjIxMTFiMThiNjlmYjA4NmVmMDI0OTZmMmQ2OC4uMzQ0Y2U4MTVhYjYzMTQ5ZmZmZTgw
ODM1MzljMjNjMWFiMjg4ZDZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmgKQEAgLTM0LDEwICszNCwxMiBAQCBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycyB7
CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU05vZGU+IHsK
KyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvbmFsPEpTVHlwZVJhbmdlPiB0eXBlUmFuZ2UgeyB7
IHN0YXRpY19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNOb2RlVHlwZSksIHN0YXRpY19jYXN0PEpT
VHlwZT4oV2ViQ29yZTo6SlNOb2RlVHlwZSArIFdlYkNvcmU6OkpTTm9kZVR5cGVNYXNrKSB9IH07
CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ4X3Q+OjptYXgoKSA9
PSB0eXBlUmFuZ2UtPmxhc3QpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+Ci0gICAgc3Rh
dGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiwgRnJvbSogZnJvbSkKKyAgICBzdGF0aWMgaW5s
aW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGZyb20tPnR5cGUoKSA+PSBXZWJDb3JlOjpKU05vZGVUeXBlOworICAgICAgICByZXR1cm4g
aW5oZXJpdHNKU1R5cGVJbXBsPFdlYkNvcmU6OkpTTm9kZT4odm0sIGZyb20sICp0eXBlUmFuZ2Up
OwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNjdjMzNlZmQyYmYxMWZkZjgyODdjMzI0MGQ4YWUxNDhi
MDM2ODIzOC4uNzVhMTRhMDM0NTNlNWJiNzBjYTYyNGUwYjMzZDM3MTg4YzkzMzhmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
QEAgLTMwMjEsNyArMzAyMSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICB9CiAgICAg
fQogCi0gICAgIyBDaGVja1N1YkNsYXNzIFNuaXBwZXQgZnVuY3Rpb24uCisgICAgIyBDaGVja0pT
Q2FzdCBTbmlwcGV0IGZ1bmN0aW9uLgogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntET01KSVR9KSB7CiAgICAgICAgICRoZWFkZXJJbmNsdWRlc3siPEphdmFTY3JpcHRD
b3JlL1NuaXBwZXQuaD4ifSA9IDE7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWYg
RU5BQkxFKEpJVClcbiIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwppbmRleCAwMDQzODM3MTg1MzRjZWZmZjNjY2M3NzkzM2IwOTgwYjAxZjRmYWJk
Li5jOTQ4ZGE3NTdjNmQ2YmFlZTljM2E4MDg0OWQwMDA4MTA4MzI1YmYxIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTA1LTI3ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIGZvci1vZiBzaG91bGQgY2hlY2sgdGhlIGl0ZXJhYmxlIGlzIGEgSlNBcnJheSBmb3Ig
RmFzdEFycmF5IGluIERGRyBpdGVyYXRvcl9vcGVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIzODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9jaGVjay1zdWItY2xhc3MuanM6CisgICAg
ICAgICogc3RyZXNzL2Zvci1vZi1pdGVyYXRvci1vcGVuLWZhc3QtYXJyYXktc2hvdWxkLWNoZWNr
LWpzLXR5cGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAyMC0wNS0yNiAgQWxleGV5
IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgSXRlcmF0b3JDbG9z
ZSBzaG91bGQgc3VwcHJlc3MgR2V0TWV0aG9kIGVycm9ycwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvY2hlY2stc3ViLWNsYXNzLmpzIGIvSlNUZXN0cy9zdHJlc3MvY2hlY2stc3ViLWNsYXNz
LmpzCmluZGV4IDRiNGIxZDQ2NmNiMjA5MTMxMjdmM2MzZmRjYTYwYjE4NzRmMDA2ZWMuLjk5ZGU4
ZmIzNmVkMzE2MTNjOWY1NDZhMjdiNzJkYjdiOWI2MDdlOGIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
c3RyZXNzL2NoZWNrLXN1Yi1jbGFzcy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9jaGVjay1zdWIt
Y2xhc3MuanMKQEAgLTEsNSArMSw1IEBACiB2YXIgY3JlYXRlRE9NSklUTm9kZU9iamVjdCA9ICR2
bS5jcmVhdGVET01KSVROb2RlT2JqZWN0OwotdmFyIGNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NP
YmplY3QgPSAkdm0uY3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdDsKK3ZhciBjcmVhdGVE
T01KSVRDaGVja0pTQ2FzdE9iamVjdCA9ICR2bS5jcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVj
dDsKIAogZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewogICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQpAQCAtMjMsMTEgKzIzLDExIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93
KGZ1bmMsIGVycm9yTWVzc2FnZSkgewogCiB2YXIgYXJyYXkgPSBbXTsKIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwOyArK2kpCi0gICAgYXJyYXkucHVzaChjcmVhdGVET01KSVRDaGVja1N1YkNsYXNz
T2JqZWN0KCkpOworICAgIGFycmF5LnB1c2goY3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Qo
KSk7CiAKLS8vIERPTUpJVE5vZGUgaXMgYW4gaW5zdGFuY2Ugb2YgYSBzdXBlciBjbGFzcyAoRE9N
SklUTm9kZSkgb2YgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdC4KKy8vIERPTUpJVE5vZGUgaXMg
YW4gaW5zdGFuY2Ugb2YgYSBzdXBlciBjbGFzcyAoRE9NSklUTm9kZSkgb2YgRE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3QuCiB2YXIgbm9kZSA9IGNyZWF0ZURPTUpJVE5vZGVPYmplY3QoKTsKLW5vZGUu
ZnVuYyA9IGNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QoKS5mdW5jOworbm9kZS5mdW5j
ID0gY3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoKS5mdW5jOwogCiBmdW5jdGlvbiBjYWxs
aW5nKGRvbSkKIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Zvci1vZi1pdGVyYXRvci1v
cGVuLWZhc3QtYXJyYXktc2hvdWxkLWNoZWNrLWpzLXR5cGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9m
b3Itb2YtaXRlcmF0b3Itb3Blbi1mYXN0LWFycmF5LXNob3VsZC1jaGVjay1qcy10eXBlLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZiOGI2OWViMzExZTEyZjY4OTgxMWMyNGU2YmQxMGE5OTlkYWJjNWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9mb3Itb2YtaXRlcmF0b3Itb3Blbi1mYXN0LWFy
cmF5LXNob3VsZC1jaGVjay1qcy10eXBlLmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gZm9v
KGEwKSB7CisgIE51bWJlci5wcm90b3R5cGUuX19wcm90b19fID0gW107CisgIGZvciAobGV0IGkg
PSAwOyBpIDwgMTAwMDAwOyBpKyspIHt9CisgIGZvciAobGV0IHEgb2YgYTApIHt9Cit9CisKK2Zv
byhbXSk7Citmb28oMCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400419</attachid>
            <date>2020-05-27 19:00:16 -0700</date>
            <delta_ts>2020-05-27 19:58:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212383-20200527190015.patch</filename>
            <type>text/plain</type>
            <size>63082</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZDJlODIyZDViYTZmNmJmMGMyYzg4ZTBjNWM4NzdjNzM1MjM3NTZjLi45Y2QwOWM2YjgwMmI5MmQ2
N2I3MjcwYzBmMjJlMzlkMGJmZTcxNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4OSBAQAorMjAyMC0wNS0yNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBpcyBhIEpT
QXJyYXkgZm9yIEZhc3RBcnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1
ZSB3aGVyZSB3ZSBkaWRuJ3QgY2hlY2sgdGhhdCB0aGUgaXRlcmFibGUgb3BlcmFuZCB0bworICAg
ICAgICBpdGVyYXRvcl9vcGVuIHdhcyBhIEpTQXJyYXkgd2hlbiBsb3dlcmluZyB0aGUgRmFzdEFy
cmF5IG9ubHkgdmFyaWFudCBvZiB0aGUgYnl0ZWNvZGUgdG8gdGhlIERGRy4KKyAgICAgICAgVGhp
cyBtZWFudCB3ZSB3b3VsZCBPU1IgZXhpdCBhdCB0aGUgaXRlcmF0b3JfbmV4dCdzIGxvd2VyaW5n
IHRoZW4gYXNzZXJ0aW9uIGZhaWx1cmUgaW4gdGhlCisgICAgICAgIGNoZWNrcG9pbnQgT1NSIGV4
aXQgaGVscGVyLiBUbyBtYWtlIHRoaXMgd29yaywgdGhpcyBwYXRjaCBleHRlbmRzIChhbmQgcmVu
YW1lcyBmcm9tIENoZWNrU3ViQ2xhc3MpCisgICAgICAgIENoZWNrSlNDYXN0IHRvIHVzZSB0aGUg
c2FtZSBKU1R5cGUgaW5mb3JtYXRpb24gdGhhdCB3ZSB1c2UgZm9yIHRoZSBqc0Nhc3QgZnVuY3Rp
b24uIEluIG9yZGVyIHRvCisgICAgICAgIGdldCB0aGUgSlNUeXBlIHJhbmdlIGZyb20gYSBDbGFz
c0luZm8qIHRoZSBtYWNybyB0aGF0IGF1dG9nZW5lcmF0ZXMgTWV0aG9kVGFibGUgbm93IGFsc28g
ZmlsbHMKKyAgICAgICAgYSBPcHRpb25hbDxKU1R5cGVSYW5nZT4gaW50byB0aGUgQ2xhc3NJbmZv
IGFzIHdlbGwuCisKKyAgICAgICAgTGFzdGx5LCBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8gd2Fz
IG1pc3VzZWQgYnkgQUkuIFRoaXMgcGF0Y2gKKyAgICAgICAgcmVuYW1lcyBpdCB0byBzcGVjdWxh
dGlvbkZyb21DbGFzc0luZm9Jbmhlcml0YW5jZSB0byBiZXR0ZXIKKyAgICAgICAgcmVmbGVjdCBo
b3cgQUkgd2FzIHVzaW5nIGl0LiBUaGUgb25seSBvdGhlciB1c2VyIG9mCisgICAgICAgIHNwZWN1
bGF0aW9uRnJvbUNsYXNzSW5mbyB3YXMgc3BlY3VsYXRpb25Gcm9tU3RydWN0dXJlLiBBbnkgY2Fz
ZQorICAgICAgICB3aGVyZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm9JbnRlcml0YW5jZSB3b3Vs
ZCBkaWZmZXIgZnJvbSB3aGF0IGEKKyAgICAgICAgU3RydWN0dXJlIHdvdWxkIHRlbGwgeW91IGhh
cyBiZWVuIGhvaXN0ZWQgdG8KKyAgICAgICAgc3BlY3VsYXRpb25Gcm9tU3RydWN0dXJlLgorCisg
ICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5j
aElmVHlwZSk6CisgICAgICAgIChKU0M6OnRlc3RCcmFuY2hJZk5vdFR5cGUpOgorICAgICAgICAq
IGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcDoKKyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25G
cm9tQ2xhc3NJbmZvSW5oZXJpdGFuY2UpOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21T
dHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8pOiBEZWxl
dGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RWYWx1ZTo6ZmlsdGVyQ2xhc3NJbmZvKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVET01K
SVRHZXR0ZXIpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2Nr
KToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNs
b2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xkaW5nUGhhc2U6OmZvbGRDb25zdGFudHMpOgor
ICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6
CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZp
eHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6YXR0
ZW1wdFRvTWFrZUNhbGxET00pOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVw
Q2hlY2tKU0Nhc3QpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwQ2hlY2tT
dWJDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpOb2RlOjpoYXNDbGFzc0luZm8gY29uc3QpOgorICAgICAgICAqIGRmZy9ERkdOb2Rl
VHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6
CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpz
YWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSlNDYXN0KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MpOiBEZWxldGVkLgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAg
ICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjpjb21waWxlQ2hlY2tKU0Nhc3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjppc0NlbGxXaXRoVHlwZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmlzVHlwZWRBcnJheVZpZXcpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tTdWJDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICogaml0
L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5j
aElmVHlwZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RUeXBl
KToKKyAgICAgICAgKiBydW50aW1lL0NsYXNzSW5mby5oOgorICAgICAgICAqIHJ1bnRpbWUvSlND
YXN0Lmg6CisgICAgICAgIChKU0M6OkpTVHlwZVJhbmdlOjpjb250YWlucyBjb25zdCk6CisgICAg
ICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmluaGVyaXRzSlNUeXBlSW1wbCk6CisgICAgICAg
ICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YXNz
ZXJ0VHlwZUluZm9GbGFnSW52YXJpYW50cyk6CisgICAgICAgICogdG9vbHMvSlNEb2xsYXJWTS5j
cHA6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Qp
OgorICAgICAgICAoSlNDOjpKU0RvbGxhclZNOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChK
U0M6OmZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCk6IERlbGV0ZWQuCisK
IDIwMjAtMDUtMjYgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBzb21lIG5ldyBlbWl0dGVycyB0byB0aGUgWDg2XzY0IGFuZCBBUk02NCBNYWNyb0Fzc2VtYmxl
cnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCmluZGV4IDJlNDZhODNmNzgyYjkzZWMzZDgwZjQ2ZjZlMjBmZTY3YTllNDIwYjcuLmU1ZWY5
NzAxMzIzZGFlZWJmMDljMTQ4NDIzMTZhYjBhMDg2ZWUxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMjAtMDUtMjcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgZm9yLW9mIHNob3VsZCBjaGVjayB0aGUgaXRlcmFibGUgaXMgYSBKU0FycmF5IGZvciBG
YXN0QXJyYXkgaW4gREZHIGl0ZXJhdG9yX29wZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjM4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9wdGlvbmFsIHNob3VsZCBiZSBhYmxlIHRvIGNvcHkvbW92
ZSBjb25zdHJ1Y3RvciBpdHNlbGYgYXMgbG9uZyBhcyA8VD4gaXMKKyAgICAgICAgdHJpdmlhbGx5
IGNvcHlhYmxlLiBUaGlzIGxldHMgdXMgY29weSBPcHRpb25hbHMgaW50byBjb25zdCBnbG9iYWxz
IHdpdGhvdXQKKyAgICAgICAgZ2xvYmFsIGNvbnN0cnVjdG9ycy4KKworICAgICAgICAqIHd0Zi9P
cHRpb25hbC5oOgorICAgICAgICAoV1RGOjpPcHRpb25hbDo6T3B0aW9uYWwpOgorICAgICAgICAo
V1RGOjpPcHRpb25hbDo6X19OT0VYQ0VQVF8pOgorCiAyMDIwLTA1LTI2ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVVRGLTggZW5jb2RlIHN0
cmluZ3Mgb2YgaW52YWxpZCBVUkxzIHdoZW4gY29udmVydGluZyBXVEY6OlVSTCB0byBOU1VSTCBp
bnN0ZWFkIG9mIHRydW5jYXRpbmcgdGhlIFVURi0xNiBlbmNvZGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE5
YzUyZjdhNGRhNTRkMGMxZjY1NzU2ZWI2YWI2NzY1YzRhZjUyNGEuLmRiZDc1MjVhZmQxOWJhMDBi
ZjY5YzgwZmUxNjc2OWQ3NWEwMTI2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAy
MC0wNS0yNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBpcyBhIEpTQXJyYXkgZm9yIEZhc3RB
cnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIHZhcmlvdXMgSW5oZXJpdHNUcmFpdHMgc3BlY2lhbGl6
YXRpb25zIHRvIGNvbnRhaW4gYSB0eXBlUmFuZ2UgbWVtYmVyLgorICAgICAgICBBbHNvLCBjaGFu
Z2UgdGhlIGluaGVyaXRzIGZ1bmN0aW9uIHRvIHVzZSBpbmhlcml0c0pTVHlwZUltcGwgbGlrZSB0
aGUgSlNDCisgICAgICAgIHZhcmlhbnRzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1
bWVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjpJbmhlcml0c1Ry
YWl0czxXZWJDb3JlOjpKU0RvY3VtZW50Pjo6aW5oZXJpdHMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRWxlbWVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjpJ
bmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0VsZW1lbnQ+Ojppbmhlcml0cyk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxw
ZXJzOjpJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0V2ZW50Pjo6aW5oZXJpdHMpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdI
ZWxwZXJzOjpJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU05vZGU+Ojppbmhlcml0cyk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5l
cmF0ZUhlYWRlcik6CisKIDIwMjAtMDUtMjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgQ2FuJ3Qgc2NydWIgdmlkZW8gb24gaHR0cHM6Ly93d3cuanVkaWNpYXJ5
LnNlbmF0ZS5nb3YKQEAgLTEzNDkxLDk1ICsxMzUxMyw3IEBACiAgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKICAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgogICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpZEJlY29tZUN1cnJlbnREb2N1bWVudEluRnJhbWUp
OgotICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByZXBhcmVGb3JEZXN0cnVjdGlvbik6Ci0g
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW1wbGljaXRDbG9zZSk6Ci0gICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6cmVzdW1lKToKLSAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6Ci0gICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKToKLSAgICAgICAgKiBk
b20vUHNldWRvRWxlbWVudC5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpQc2V1ZG9FbGVtZW50Ojpj
bGVhckhvc3RFbGVtZW50KToKLSAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKLSAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZEZyYW1lOjpkZXN0cm95KToKLSAgICAgICAgKiBwYWdlL0Zy
YW1lLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpjbGVhclRpbWVycyk6Ci0gICAgICAg
IChXZWJDb3JlOjpGcmFtZTo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMpOgot
ICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKLSAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6Ci0g
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZERlc3Ryb3lSZW5kZXJUcmVlKToKLSAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vy
c2l2ZSk6Ci0gICAgICAgICogcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcDoKLSAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dCk6Ci0gICAgICAgICog
cGFnZS9QYWdlLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmhhbmRsZUxvd01vZGVQb3dl
ckNoYW5nZSk6Ci0gICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRJc1Zpc2libGVJbnRlcm5hbCk6
Ci0gICAgICAgIChXZWJDb3JlOjpQYWdlOjpoaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lv
blN0YXRlQ2hhbmdlZCk6Ci0gICAgICAgICogcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlci5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb25Db250cm9sbGVyUHJp
dmF0ZTo6dXBkYXRlVGhyb3R0bGluZ1N0YXRlKToKLSAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1h
dGlvbkNvbnRyb2xsZXJQcml2YXRlOjpzdXNwZW5kQW5pbWF0aW9ucyk6Ci0gICAgICAgIChXZWJD
b3JlOjpDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6cmVzdW1lQW5pbWF0aW9ucyk6Ci0g
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtIGNvbnN0KToKLSAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgotICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgotICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjp1cGRhdGVHZW9tZXRyeSk6Ci0gICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJh
Y2tpbmc6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQpOgotICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgotICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgotICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyk6Ci0gICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JBbmlt
YXRpb24gY29uc3QpOgotICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpp
c1J1bm5pbmdUcmFuc2Zvcm1BbmltYXRpb24gY29uc3QpOgotICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaDoKLSAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bGVnYWN5QW5p
bWF0aW9uIGNvbnN0KToKLSAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YW5pbWF0aW9u
IGNvbnN0KTogRGVsZXRlZC4KLSAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZVVwZGF0ZXIuY3BwOgotICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnRlYXJE
b3duUmVuZGVyZXJzKToKLSAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6Ci0g
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1l
bnRVcGRhdGUpOgotICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKLSAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zIGNvbnN0KToKLSAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6YW5pbWF0aW9uc0FyZVN1c3BlbmRlZCBjb25zdCk6Ci0g
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmFuaW1hdGlvbnNJbnRlcnZhbCBjb25zdCk6Ci0g
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnN1c3BlbmRBbmltYXRpb25zIGNvbnN0KToKLSAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzdW1lQW5pbWF0aW9ucyBjb25zdCk6Ci0gICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50KToK
LSAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cGF1c2VBbmltYXRpb25BdFRpbWVPblBzZXVk
b0VsZW1lbnQpOgotICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXVzZVRyYW5zaXRpb25B
dFRpbWVPbkVsZW1lbnQpOgotICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXVzZVRyYW5z
aXRpb25BdFRpbWVPblBzZXVkb0VsZW1lbnQpOgotCi0yMDIwLTA0LTI3ICBQZXIgQXJuZSBWb2xs
YW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KLQotICAgICAgICBbQ29jb2FdIEFmdGVyIHIyNTg4OTEs
IHIyNTUxMTkgY2FuIGJlIHJldmVydGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTEwODMKLSAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNzE0MzE4
PgotCi0gICAgICAgIFVucmV2aWV3ZWQgcmV2ZXJ0IG9mIHIyNTUxMTkuCi0KLSAgICAgICAgQ29w
eWluZyBhIE1JTUUgdHlwZSBtYXAgZnJvbSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIG9uIHN0YXJ0dXAgaXMgbm90IG5lZWRlZCBhbnltb3JlLAotICAgICAgICBzaW5j
ZSByMjU4ODkxIHdpbGwgbWFwIHRoZSBMYXVuY2ggU2VydmljZXMgZGF0YWJhc2UgaW4gdGhlIFdl
YkNvbnRlbnQgcHJvY2Vzcy4KLQotICAgICAgICAqIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
Y3BwOgotICAgICAgICAoV2ViQ29yZTo6Y29tbW9uTWltZVR5cGVzTWFwKToKLSAgICAgICAgKFdl
YkNvcmU6OnR5cGVzRm9yQ29tbW9uRXh0ZW5zaW9uKToKLSAgICAgICAgKFdlYkNvcmU6Om92ZXJy
aWRkZW5NaW1lVHlwZXNNYXApOiBEZWxldGVkLgotICAgICAgICAqIHBsYXRmb3JtL01JTUVUeXBl
UmVnaXN0cnkuaDoKLSAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Ci0gICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6Om1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24pOiBEZWxldGVkLgot
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6Ci0gICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaWRsOgotCi0yMDIwLTA0LTI3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KLQot
ICAgICAgICBJbXByb3ZlIHBlcmZvcm1hbmNlIG9mIGNvbW1vbkluY2x1c2l2ZUFuY2VzdG9yIGZv
ciBkZWVwbHkgbmVzdGVkIG5vZGVzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTEwNzgKLQotICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0
by4KLQotICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OmRlcHRoKTog
QWRkZWQuCi0gICAgICAgIChXZWJDb3JlOjpjb21tb25JbmNsdXNpdmVBbmNlc3Rvcik6IFJlcGxh
Y2VkIGltcGxlbWVudGF0aW9uIHRoYXQgd2Fsa3MgdGhlCi0gICAgICAgIHBhcmVudCBjaGFpbiBv
ZiB0aGUgc2Vjb25kIG5vZGUgcmVwZWF0ZWRseSB3aXRoIG9uZSB0aGF0IHdhbGtzIHRoZSBwYXJl
bnQKLSAgICAgICAgY2hhaW4gb2YgZWFjaCBub2RlIHR3aWNlLgotCisgICAgICAgIChXZWJDAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAogMjAyMC0wNC0y
NyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2FyZXQgbWF5
IGJlIHBsYWNlZCBpbiB0aGUgd3Jvbmcgc3BvdCBmb3IgdGV4dCBpbnB1dCBjb250ZXh0IHRoYXQg
aXMgYSBmb3JtIGNvbnRyb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0
bWFzbS5jcHAKaW5kZXggZDM2OWEwMzdlZjcwMjM1MmViMmU2NWMxYjBhOTJkMDRjMGU5ZWJlNi4u
YmVhM2FmOGY3OGVlYmM5Mjg2ZGQ3NmE4MWEwNGMxOWI5OGIxNDUzNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTIzNjUsNyArMjM2NSw3IEBA
IHN0YXRpYyB2b2lkIHRlc3RCcmFuY2hJZlR5cGUoKQogCiAgICAgYXV0byBpc1R5cGUgPSBjb21w
aWxlKFtdIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1
ZShqaXQpOwotICAgICAgICBhdXRvIGlzVHlwZSA9IGppdC5icmFuY2hJZlR5cGUoR1BSSW5mbzo6
YXJndW1lbnRHUFIwLCBKU1R5cGUoRmlyc3RUeXBlZEFycmF5VHlwZSksIEpTVHlwZShMYXN0VHlw
ZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldykpOworICAgICAgICBhdXRvIGlzVHlwZSA9IGpp
dC5icmFuY2hJZlR5cGUoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBKU0M6OkpTVHlwZVJhbmdlIHsg
SlNUeXBlKEZpcnN0VHlwZWRBcnJheVR5cGUpLCBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlRXhj
bHVkaW5nRGF0YVZpZXcpIH0pOwogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMihmYWxzZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKICAgICAgICAgYXV0byBk
b25lID0gaml0Lmp1bXAoKTsKICAgICAgICAgaXNUeXBlLmxpbmsoJmppdCk7CkBAIC0yMzk5LDcg
KzIzOTksNyBAQCBzdGF0aWMgdm9pZCB0ZXN0QnJhbmNoSWZOb3RUeXBlKCkKIAogICAgIGF1dG8g
aXNOb3RUeXBlID0gY29tcGlsZShbXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKICAgICAgICAgZW1p
dEZ1bmN0aW9uUHJvbG9ndWUoaml0KTsKLSAgICAgICAgYXV0byBpc05vdFR5cGUgPSBqaXQuYnJh
bmNoSWZOb3RUeXBlKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSlNUeXBlKEZpcnN0VHlwZWRBcnJh
eVR5cGUpLCBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVkaW5nRGF0YVZpZXcpKTsKKyAg
ICAgICAgYXV0byBpc05vdFR5cGUgPSBqaXQuYnJhbmNoSWZOb3RUeXBlKEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCwgSlNDOjpKU1R5cGVSYW5nZSB7IEpTVHlwZShGaXJzdFR5cGVkQXJyYXlUeXBlKSwg
SlNUeXBlKExhc3RUeXBlZEFycmF5VHlwZUV4Y2x1ZGluZ0RhdGFWaWV3KSB9KTsKICAgICAgICAg
aml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoZmFsc2UpLCBHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUik7CiAgICAgICAgIGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAgICAgICAgIGlz
Tm90VHlwZS5saW5rKCZqaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TcGVjdWxhdGVkVHlwZS5jcHAKaW5kZXggN2FlOWQ4YzdlNzRhNWFkOGExNjgwODk1MTFmY2Q2
ZDg4YTQzYTZmNy4uMDQ0NjU2MTJhYzYwOTFhOTgxYmVlNWM5MDI0YzJkOWZiZjQxYTZlMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3Bw
CkBAIC00MzIsNTYgKzQzMiw3MCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21UeXBl
ZEFycmF5VHlwZShUeXBlZEFycmF5VHlwZSB0eXBlKQogICAgIHJldHVybiBTcGVjTm9uZTsKIH0K
IAotU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKGNvbnN0IENsYXNzSW5m
byogY2xhc3NJbmZvKQorU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvSW5o
ZXJpdGFuY2UoY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiB7Ci0gICAgaWYgKGNsYXNzSW5m
byA9PSBKU1N0cmluZzo6aW5mbygpKQotICAgICAgICByZXR1cm4gU3BlY1N0cmluZzsKLQorICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PFN5bWJvbD4pOwogICAgIGlmIChjbGFzc0lu
Zm8gPT0gU3ltYm9sOjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjU3ltYm9sOwotICAgIAor
CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNCaWdJbnQ+KTsKICAgICBpZiAo
Y2xhc3NJbmZvID09IEpTQmlnSW50OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjSGVhcEJp
Z0ludDsKIAorICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PEpTRmluYWxPYmplY3Q+
KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpTRmluYWxPYmplY3Q6OmluZm8oKSkKICAgICAgICAg
cmV0dXJuIFNwZWNGaW5hbE9iamVjdDsKICAgICAKLSAgICBpZiAoY2xhc3NJbmZvID09IEpTQXJy
YXk6OmluZm8oKSkKLSAgICAgICAgcmV0dXJuIFNwZWNBcnJheTsKLSAgICAKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxEaXJlY3RBcmd1bWVudHM+KTsKICAgICBpZiAoY2xhc3NJ
bmZvID09IERpcmVjdEFyZ3VtZW50czo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY0RpcmVj
dEFyZ3VtZW50czsKICAgICAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxTY29w
ZWRBcmd1bWVudHM+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IFNjb3BlZEFyZ3VtZW50czo6aW5m
bygpKQogICAgICAgICByZXR1cm4gU3BlY1Njb3BlZEFyZ3VtZW50czsKLSAgICAKLSAgICBpZiAo
Y2xhc3NJbmZvID09IFN0cmluZ09iamVjdDo6aW5mbygpKQotICAgICAgICByZXR1cm4gU3BlY1N0
cmluZ09iamVjdDsKIAorICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PFJlZ0V4cE9i
amVjdD4pOwogICAgIGlmIChjbGFzc0luZm8gPT0gUmVnRXhwT2JqZWN0OjppbmZvKCkpCiAgICAg
ICAgIHJldHVybiBTcGVjUmVnRXhwT2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X2ZpbmFsX3Y8RGF0ZUluc3RhbmNlPik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBEYXRlSW5zdGFu
Y2U6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogCisgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNNYXA+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpT
TWFwOjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjTWFwT2JqZWN0OwogCisgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNTZXQ+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpT
U2V0OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjU2V0T2JqZWN0OwogCisgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNXZWFrTWFwPik7CiAgICAgaWYgKGNsYXNzSW5mbyA9
PSBKU1dlYWtNYXA6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFwT2JqZWN0Owog
CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNXZWFrU2V0Pik7CiAgICAgaWYg
KGNsYXNzSW5mbyA9PSBKU1dlYWtTZXQ6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNXZWFr
U2V0T2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8UHJveHlPYmpl
Y3Q+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IFByb3h5T2JqZWN0OjppbmZvKCkpCiAgICAgICAg
IHJldHVybiBTcGVjUHJveHlPYmplY3Q7CiAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmlu
YWxfdjxKU0RhdGFWaWV3Pik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBKU0RhdGFWaWV3OjppbmZv
KCkpCiAgICAgICAgIHJldHVybiBTcGVjRGF0YVZpZXdPYmplY3Q7Ci0gICAgCisKKworICAgIGlm
IChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU1N0cmluZzo6aW5mbygpKSkKKyAgICAgICAgcmV0
dXJuIFNwZWNTdHJpbmc7CisKKyAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNzT2YoU3RyaW5n
T2JqZWN0OjppbmZvKCkpKQorICAgICAgICByZXR1cm4gU3BlY1N0cmluZ09iamVjdCB8IFNwZWNP
YmplY3RPdGhlcjsKKworICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU0FycmF5Ojpp
bmZvKCkpKQorICAgICAgICByZXR1cm4gU3BlY0FycmF5IHwgU3BlY0Rlcml2ZWRBcnJheTsKKwog
ICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU0Z1bmN0aW9uOjppbmZvKCkpKSB7CiAg
ICAgICAgIGlmIChjbGFzc0luZm8gPT0gSlNCb3VuZEZ1bmN0aW9uOjppbmZvKCkpCiAgICAgICAg
ICAgICByZXR1cm4gU3BlY0Z1bmN0aW9uV2l0aE5vbkRlZmF1bHRIYXNJbnN0YW5jZTsKQEAgLTQ5
Myw5ICs1MDcsNiBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY29u
c3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAgICAgCiAgICAgaWYgKGlzVHlwZWRWaWV3KGNsYXNz
SW5mby0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSkKICAgICAgICAgcmV0dXJuIHNwZWN1bGF0aW9u
RnJvbVR5cGVkQXJyYXlUeXBlKGNsYXNzSW5mby0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKTsKLQot
ICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU0FycmF5OjppbmZvKCkpKQotICAgICAg
ICByZXR1cm4gU3BlY0Rlcml2ZWRBcnJheTsKICAgICAKICAgICBpZiAoY2xhc3NJbmZvLT5pc1N1
YkNsYXNzT2YoSlNPYmplY3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiBTcGVjT2JqZWN0T3Ro
ZXI7CkBAIC01MDUsMTUgKzUxNiwyNyBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21D
bGFzc0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAKIFNwZWN1bGF0ZWRUeXBlIHNw
ZWN1bGF0aW9uRnJvbVN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKLSAgICBpZiAo
c3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBTdHJpbmdUeXBlKQotICAgICAgICByZXR1
cm4gU3BlY1N0cmluZzsKLSAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBT
eW1ib2xUeXBlKQotICAgICAgICByZXR1cm4gU3BlY1N5bWJvbDsKLSAgICBpZiAoc3RydWN0dXJl
LT50eXBlSW5mbygpLnR5cGUoKSA9PSBIZWFwQmlnSW50VHlwZSkKLSAgICAgICAgcmV0dXJuIFNw
ZWNIZWFwQmlnSW50OwotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IERl
cml2ZWRBcnJheVR5cGUpCi0gICAgICAgIHJldHVybiBTcGVjRGVyaXZlZEFycmF5OwotICAgIHJl
dHVybiBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oc3RydWN0dXJlLT5jbGFzc0luZm8oKSk7Cisg
ICAgU3BlY3VsYXRlZFR5cGUgZmlsdGVyZWRSZXN1bHQgPSAoWyZdIHsKKyAgICAgICAgaWYgKHN0
cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gU3RyaW5nVHlwZSkKKyAgICAgICAgICAgIHJl
dHVybiBTcGVjU3RyaW5nOworICAgICAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUo
KSA9PSBTeW1ib2xUeXBlKQorICAgICAgICAgICAgcmV0dXJuIFNwZWNTeW1ib2w7CisgICAgICAg
IGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IEhlYXBCaWdJbnRUeXBlKQorICAg
ICAgICAgICAgcmV0dXJuIFNwZWNIZWFwQmlnSW50OworICAgICAgICBpZiAoc3RydWN0dXJlLT50
eXBlSW5mbygpLnR5cGUoKSA9PSBEZXJpdmVkQXJyYXlUeXBlKQorICAgICAgICAgICAgcmV0dXJu
IFNwZWNEZXJpdmVkQXJyYXk7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlw
ZSgpID09IEFycmF5VHlwZSkKKyAgICAgICAgICAgIHJldHVybiBTcGVjQXJyYXk7CisgICAgICAg
IGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IFN0cmluZ09iamVjdFR5cGUpCisg
ICAgICAgICAgICByZXR1cm4gU3BlY1N0cmluZ09iamVjdDsKKyAgICAgICAgcmV0dXJuIFNwZWNO
b25lOworICAgIH0pKCk7CisKKyAgICBTcGVjdWxhdGVkVHlwZSBjbGFzc0luZm9UeXBlcyA9IHNw
ZWN1bGF0aW9uRnJvbUNsYXNzSW5mb0luaGVyaXRhbmNlKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkp
OworICAgIEFTU0VSVCghZmlsdGVyZWRSZXN1bHQgfHwgaXNTdWJ0eXBlU3BlY3VsYXRpb24oZmls
dGVyZWRSZXN1bHQsIGNsYXNzSW5mb1R5cGVzKSk7CisKKyAgICAvLyBGYWxsYmFjayB0byB3aGF0
IENsYXNzSW5mbyB0ZWxscyB1cyBpZiB3ZSBkb24ndCBoYXZlIHNvbWV0aGluZyBtb3JlIHJlZmlu
ZWQuCisgICAgcmV0dXJuIGZpbHRlcmVkUmVzdWx0ID8gZmlsdGVyZWRSZXN1bHQgOiBjbGFzc0lu
Zm9UeXBlczsKIH0KIAogU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2VsbChKU0NlbGwq
IGNlbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3Vs
YXRlZFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlw
ZS5oCmluZGV4IDdiN2FhMjI1M2NlZTJiMzA5MzYxN2EyYzdhOTFkMmU4NzM3ZTljNTAuLjgzZTY4
MzVjZDFjMWNjOGM1YmZlYWZkMzg2MmQ1ZmQxNTUwNjQ4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC01MjMsNyArNTIzLDEwIEBA
IGlubGluZSBib29sIHNwZWN1bGF0aW9uQ2hlY2tlZChTcGVjdWxhdGVkVHlwZSBhY3R1YWwsIFNw
ZWN1bGF0ZWRUeXBlIGRlc2lyZWQpCiAgICAgcmV0dXJuIChhY3R1YWwgfCBkZXNpcmVkKSA9PSBk
ZXNpcmVkOwogfQogCi1TcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY29u
c3QgQ2xhc3NJbmZvKik7CisvLyBUaGUgU3BlY3VsYXRlZFR5cGUgcmV0dXJuZWQgYnkgdGhpcyBm
dW5jdGlvbiBmb3IgYW55IGNlbGwsIGMsIGhhcyB0aGUgZm9sbG93aW5nIGludmFyaWFudDoKKy8v
IEFTU0VSVCghYy0+aW5oZXJpdHMoY2xhc3NJbmZvKSB8fCBzcGVjdWxhdGlvbkNoZWNrZWQoc3Bl
Y3VsYXRpb25Gcm9tQ2VsbChjKSwgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvSW5oZXJpdGFuY2Uo
Y2xhc3NJbmZvKSkpOworU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvSW5o
ZXJpdGFuY2UoY29uc3QgQ2xhc3NJbmZvKik7CisKIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9u
RnJvbVN0cnVjdHVyZShTdHJ1Y3R1cmUqKTsKIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJv
bUNlbGwoSlNDZWxsKik7CiBKU19FWFBPUlRfUFJJVkFURSBTcGVjdWxhdGVkVHlwZSBzcGVjdWxh
dGlvbkZyb21WYWx1ZShKU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCA1ZmMxOTgzMDVj
ZjQ5ZDgwNzUxNzhkZDE1NTNjZjRlZDg3NWIzMTM0Li5kYzM5NzA2MGEwM2E4ODRiZWQ2NjJjNjY3
ZjM0N2VmNDY5NGJmYzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0zNTExLDEwICszNTExLDEy
IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVF
ZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgICAgICBkaWRGb2xkQ2xvYmJlclN0
cnVjdHVyZXMoKTsKICAgICAgICAgY2xlYXJGb3JOb2RlKG5vZGUpOyAvLyBUaGUgcmVzdWx0IGlz
IG5vdCBhIEpTIHZhbHVlLgogICAgICAgICBicmVhazsKLSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6
IHsKKyAgICBjYXNlIENoZWNrSlNDYXN0OiB7CisgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY2xh
c3NJbmZvID0gbm9kZS0+Y2xhc3NJbmZvKCk7CiAgICAgICAgIEpTVmFsdWUgY29uc3RhbnQgPSBm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBpZiAoY29uc3RhbnQpIHsK
LSAgICAgICAgICAgIGlmIChjb25zdGFudC5pc0NlbGwoKSAmJiBjb25zdGFudC5hc0NlbGwoKS0+
aW5oZXJpdHMobV92bSwgbm9kZS0+Y2xhc3NJbmZvKCkpKSB7CisgICAgICAgICAgICBpZiAoY29u
c3RhbnQuaXNDZWxsKCkgJiYgY29uc3RhbnQuYXNDZWxsKCktPmluaGVyaXRzKG1fdm0sIGNsYXNz
SW5mbykpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWNsYXNzSW5mby0+aW5oZXJpdHNKU1R5
cGVSYW5nZSB8fCBjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UtPmNvbnRhaW5zKGNvbnN0
YW50LmFzQ2VsbCgpLT50eXBlKCkpKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldFNob3Vs
ZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoY29uc3Rh
bnQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzUyMywxMCArMzUyNSwxMCBAQCBib29s
IEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1
bnNpZ25lZCBjbG9iYmVyTGltaQogCiAgICAgICAgIEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9y
Tm9kZShub2RlLT5jaGlsZDEoKSk7CiAKLSAgICAgICAgaWYgKHZhbHVlLm1fc3RydWN0dXJlLmlz
U3ViQ2xhc3NPZihub2RlLT5jbGFzc0luZm8oKSkpCisgICAgICAgIGlmICh2YWx1ZS5tX3N0cnVj
dHVyZS5pc1N1YkNsYXNzT2YoY2xhc3NJbmZvKSkKICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hv
dWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogCi0gICAgICAgIGZpbHRlckNsYXNzSW5mbyh2
YWx1ZSwgbm9kZS0+Y2xhc3NJbmZvKCkpOworICAgICAgICBmaWx0ZXJDbGFzc0luZm8odmFsdWUs
IGNsYXNzSW5mbyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIENhbGxET01HZXR0
ZXI6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RW
YWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3Bw
CmluZGV4IGVlZTBlNGQ5MjkyZDk5YTFmMjk5MTFlNzI2ZDU1NzhhYmUzN2QwNzEuLjA5NDg5NDc4
YjVmMDU2Mjk2OGY3NDNjMTE1N2I5NWJmMTcyODBjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmNwcApAQCAtMjg2LDcgKzI4Niw3IEBAIEZpbHRy
YXRpb25SZXN1bHQgQWJzdHJhY3RWYWx1ZTo6ZmlsdGVyQ2xhc3NJbmZvKEdyYXBoJiBncmFwaCwg
Y29uc3QgQ2xhc3NJbmZvKiBjCiAgICAgaWYgKGlzQ2xlYXIoKSkKICAgICAgICAgcmV0dXJuIEZp
bHRyYXRpb25PSzsKIAotICAgIG1fdHlwZSAmPSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY2xh
c3NJbmZvKTsKKyAgICBtX3R5cGUgJj0gc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvSW5oZXJpdGFu
Y2UoY2xhc3NJbmZvKTsKICAgICBtX3N0cnVjdHVyZS5maWx0ZXJDbGFzc0luZm8oY2xhc3NJbmZv
KTsKIAogICAgIG1fc3RydWN0dXJlLmZpbHRlcihtX3R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBjZGVjMTg2ZjE1OTVkMDEx
MjhiYTAwMDM0NjFiYmRlM2YyYjA5ZTJlLi43ZDFlNDM2MWNiMzA3ZGIxNGFlYWVlOWQ2MmFkMDQ0
ZDZkMzliOTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcApAQCAtMzg3Miw3ICszODcyLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlRE9NSklUR2V0dGVyKE9wZXJhbmQgcmVzdWx0LCBjb25zdCBHZXRCeUlkVmFyaWFudCYgdmEK
ICAgICBhZGRUb0dyYXBoKENoZWNrU3RydWN0dXJlLCBPcEluZm8obV9ncmFwaC5hZGRTdHJ1Y3R1
cmVTZXQodmFyaWFudC5zdHJ1Y3R1cmVTZXQoKSkpLCB0aGlzTm9kZSk7CiAgICAgCiAgICAgLy8g
V2UgZG8gbm90IG5lZWQgdG8gZW1pdCBDaGVja0lzQ29uc3RhbnQgdGhpbmd5IGhlcmUuIFdoZW4g
dGhlIGN1c3RvbSBhY2Nlc3NvciBpcyByZXBsYWNlZCB0byBkaWZmZXJlbnQgb25lLCBTdHJ1Y3R1
cmUgdHJhbnNpdGlvbiBvY2N1cnMuCi0gICAgYWRkVG9HcmFwaChDaGVja1N1YkNsYXNzLCBPcElu
Zm8oZG9tQXR0cmlidXRlLT5jbGFzc0luZm8pLCB0aGlzTm9kZSk7CisgICAgYWRkVG9HcmFwaChD
aGVja0pTQ2FzdCwgT3BJbmZvKGRvbUF0dHJpYnV0ZS0+Y2xhc3NJbmZvKSwgdGhpc05vZGUpOwog
ICAgIAogICAgIGJvb2wgd2FzU2VlbkluSklUID0gdHJ1ZTsKICAgICBHZXRCeVN0YXR1cyogc3Rh
dHVzID0gbV9ncmFwaC5tX3BsYW4ucmVjb3JkZWRTdGF0dXNlcygpLmFkZEdldEJ5U3RhdHVzKGN1
cnJlbnRDb2RlT3JpZ2luKCksIEdldEJ5U3RhdHVzKEdldEJ5U3RhdHVzOjpDdXN0b20sIHdhc1Nl
ZW5JbkpJVCkpOwpAQCAtNjc0MSw5ICs2NzQxLDEwIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBh
cnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICAgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRShnbG9iYWxPYmplY3QtPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbkNvbmN1cnJlbnRseSgp
LCAiVGhlIG9ubHkgd2F5IHdlIGNvdWxkIGhhdmUgc2VlbiBGYXN0QXJyYXkgaXMgaWYgd2Ugc2F3
IHRoaXMgZnVuY3Rpb24gaW4gdGhlIExMSW50L0Jhc2VsaW5lIHNvIHRoZSBpdGVyYXRvciBmdW5j
dGlvbiBzaG91bGQgYmUgYWxsb2NhdGVkLiIpOwogICAgICAgICAgICAgICAgIEZyb3plblZhbHVl
KiBmcm96ZW5TeW1ib2xJdGVyYXRvckZ1bmN0aW9uID0gbV9ncmFwaC5mcmVlemUoZ2xvYmFsT2Jq
ZWN0LT5hcnJheVByb3RvVmFsdWVzRnVuY3Rpb25Db25jdXJyZW50bHkoKSk7CiAgICAgICAgICAg
ICAgICAgbnVtYmVyT2ZSZW1haW5pbmdNb2Rlcy0tOwotICAgICAgICAgICAgICAgIGlmICghbnVt
YmVyT2ZSZW1haW5pbmdNb2RlcykKKyAgICAgICAgICAgICAgICBpZiAoIW51bWJlck9mUmVtYWlu
aW5nTW9kZXMpIHsKICAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja0lzQ29uc3Rh
bnQsIE9wSW5mbyhmcm96ZW5TeW1ib2xJdGVyYXRvckZ1bmN0aW9uKSwgc3ltYm9sSXRlcmF0b3Ip
OwotICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBo
KENoZWNrSlNDYXN0LCBPcEluZm8oSlNBcnJheTo6aW5mbygpKSwgZ2V0KGJ5dGVjb2RlLm1faXRl
cmFibGUpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBC
YXNpY0Jsb2NrKiBmYXN0QXJyYXlCbG9jayA9IGFsbG9jYXRlVW50YXJnZXRhYmxlQmxvY2soKTsK
ICAgICAgICAgICAgICAgICAgICAgZ2VuZXJpY0Jsb2NrID0gYWxsb2NhdGVVbnRhcmdldGFibGVC
bG9jaygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2Ji
ZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4
IDA0MDFhYzFlMzZmYjc2ODBjNzJlYjdkNjg0YWFlNjg2MTk5ZWQxYmYuLjM1MWVjMmQ0NzY5Mzk3
Y2IwOTlhYzM5MjgwYjRlYzlkMzI1NDk2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2xvYmJlcml6ZS5oCkBAIC0xMTgwLDcgKzExODAsNyBAQCB2b2lkIGNsb2JiZXJpemUoR3Jh
cGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3Jp
dGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEJ1dHRlcmZseUxvYywgSlNPYmplY3RfYnV0
dGVyZmx5LCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJu
OwogCi0gICAgY2FzZSBDaGVja1N1YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAgICAg
ICAgIGRlZihQdXJlVmFsdWUobm9kZSwgbm9kZS0+Y2xhc3NJbmZvKCkpKTsKICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50
Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRG
b2xkaW5nUGhhc2UuY3BwCmluZGV4IDJkY2VlYmExMTA4OWRhMmU3MGQzN2NiZmU2YTUzYzlmNWY3
MjNmMTguLmFmMWQ0NDAwOGQ4NzI4YzdkNTcxNzJhOWEwNWRkZjUyNWViZmJmM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2Uu
Y3BwCkBAIC0xOTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgY2FzZSBDaGVja1N1YkNsYXNzOiB7CisgICAg
ICAgICAgICBjYXNlIENoZWNrSlNDYXN0OiB7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBjb25z
dGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAg
ICAgICAgICBpZiAoY29uc3RhbnQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnN0YW50
LmlzQ2VsbCgpICYmIGNvbnN0YW50LmFzQ2VsbCgpLT5pbmhlcml0cyhtX2dyYXBoLm1fdm0sIG5v
ZGUtPmNsYXNzSW5mbygpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
CmluZGV4IDRlZGJiMWY1ZmE0YWQ2NWY2MzFlNzhmYWQ0ZmM1MjAzMTk3OWM2ZmUuLjY5YzUwMTBl
OWEzMDJkNWJlMmM0MjAzMWQ0NmFmNTg1MWY5NTlmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTExNCw3ICsxMTQsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZUltbWVkaWF0ZToKICAg
ICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgY2FzZSBD
aGVja1N1YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAgICAgY2FzZSBDaGVja0FycmF5
OgogICAgIGNhc2UgQ2hlY2tBcnJheU9yRW1wdHk6CiAgICAgY2FzZSBDaGVja05ldXRlcmVkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggNTg1MmZj
MWI2MDhlMDAxOTJlMWMwMjUyZjc5NDM1ZDYxYjUwNTVkNC4uMzAwZDk1YzRkMDk5Y2Y5MDc2NTIy
YmU5MTJkZTk4ZGYwY2UyZjUxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCkBAIC0yNTQxLDggKzI1NDEsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBjYXNlIENoZWNrU3ViQ2xhc3M6IHsKLSAgICAg
ICAgICAgIGZpeHVwQ2hlY2tTdWJDbGFzcyhub2RlKTsKKyAgICAgICAgY2FzZSBDaGVja0pTQ2Fz
dDogeworICAgICAgICAgICAgZml4dXBDaGVja0pTQ2FzdChub2RlKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAKQEAgLTQwMzUsMTQgKzQwMzUsMTQgQEAgcHJpdmF0ZToKICAgICAg
ICAgfQogCiAgICAgICAgIE5vZGUqIHRoaXNOb2RlID0gbV9ncmFwaC52YXJBcmdDaGlsZChub2Rl
LCAxKS5ub2RlKCk7Ci0gICAgICAgIE5vZGUqIGNoZWNrU3ViQ2xhc3MgPSBtX2luc2VydGlvblNl
dC5pbnNlcnROb2RlKG1faW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgQ2hlY2tTdWJDbGFzcywgbm9k
ZS0+b3JpZ2luLCBPcEluZm8oc2lnbmF0dXJlLT5jbGFzc0luZm8pLCBFZGdlKHRoaXNOb2RlKSk7
CisgICAgICAgIE5vZGUqIGNoZWNrU3ViQ2xhc3MgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2Rl
KG1faW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgQ2hlY2tKU0Nhc3QsIG5vZGUtPm9yaWdpbiwgT3BJ
bmZvKHNpZ25hdHVyZS0+Y2xhc3NJbmZvKSwgRWRnZSh0aGlzTm9kZSkpOwogICAgICAgICBub2Rl
LT5jb252ZXJ0VG9DYWxsRE9NKG1fZ3JhcGgpOwotICAgICAgICBmaXh1cENoZWNrU3ViQ2xhc3Mo
Y2hlY2tTdWJDbGFzcyk7CisgICAgICAgIGZpeHVwQ2hlY2tKU0Nhc3QoY2hlY2tTdWJDbGFzcyk7
CiAgICAgICAgIGZpeHVwQ2FsbERPTShub2RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgdm9pZCBmaXh1cENoZWNrU3ViQ2xhc3MoTm9kZSogbm9kZSkKKyAgICB2b2lkIGZp
eHVwQ2hlY2tKU0Nhc3QoTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIGZpeEVkZ2U8Q2VsbFVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgK
aW5kZXggZDBhY2EwMWQzZGUwNzY5MmUyZWMyNjk5NGI2ZDE4NTVmZDFjNjAwMi4uMjI0NzM3NjVm
YjdmYWEyMmJmYjI3NWY5Yzc1ZDRlZmEyN2NlY2JkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmgKQEAgLTI5NDUsNyArMjk0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzQ2xh
c3NJbmZvKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBvcCgpID09IENoZWNrU3ViQ2xh
c3M7CisgICAgICAgIHJldHVybiBvcCgpID09IENoZWNrSlNDYXN0OwogICAgIH0KIAogICAgIGNv
bnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaAppbmRleCA0M2I1M2U2YTk0ZWM2ZWE5YzIyMDMzM2M3MjRiY2RmY2Y5Y2NlYjgwLi40
Nzg5NjI4NjI2NzY2NmM1ZGY0YTg5ODYwY2U2OGFjMjE4MDE5YTQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yODAsNyArMjgwLDcgQEAgbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2Vu
ZXJhdGUgfCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVzdEdl
bmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tUeXBlSW5mb0ZsYWdzLCBOb2RlTXVzdEdlbmVyYXRl
KSAvKiBUYWtlcyBhbiBPcEluZm8gd2l0aCB0aGUgZmxhZ3MgeW91IHdhbnQgdG8gdGVzdCBhcmUg
c2V0ICovXAotICAgIG1hY3JvKENoZWNrU3ViQ2xhc3MsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAg
ICBtYWNybyhDaGVja0pTQ2FzdCwgTm9kZU11c3RHZW5lcmF0ZSkgLyogVGhpcyBpcyB0aGUgc2Ft
ZSBhcyBqc0Nhc3QgYnV0IGFzIGEgc3BlY3VsYXRpb24gcmF0aGVyIHRoYW4gYXNzZXJ0aW9uICov
XAogICAgIG1hY3JvKFBhcnNlSW50LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpTKSBc
CiAgICAgbWFjcm8oR2V0UHJvdG90eXBlT2YsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0
SlMpIFwKICAgICBtYWNybyhPYmplY3RDcmVhdGUsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVz
dWx0SlMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggZjgwZmE4NjY0NGNlMzdlMTFkMTU1
NDgzODYxY2FkYjdmNTAyZWI5Zi4uM2RiMGRkMzYyMzliNTk0MTFlZDY0NTRhZTE4ZTk5ZjAxODFi
Mjc2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTEwNjAsNyArMTA2MCw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2UgQ2hlY2tT
dWJDbGFzczoKKyAgICAgICAgY2FzZSBDaGVja0pTQ2FzdDoKICAgICAgICAgICAgIGJyZWFrOwog
CiAgICAgICAgIGNhc2UgU2tpcFNjb3BlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NhZmVUb0V4ZWN1dGUuaAppbmRleCBiM2E4MDllNzJhNDUxMDNiMDQwZDkwZjI2YTQ0MTE4MzRi
ZTk2NjA5Li42NzA3OGZlODk0ZmIyOTY0Y2Q3N2JhYzIyYjAxZGQzNDY5NjcxODZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtMjM0LDcgKzIz
NCw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSwgYm9vbCBpZ25vCiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgog
ICAgIGNhc2UgQ2FsbERPTUdldHRlcjoKICAgICBjYXNlIENhbGxET006Ci0gICAgY2FzZSBDaGVj
a1N1YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAgICAgY2FzZSBDaGVja0FycmF5Ogog
ICAgIGNhc2UgQ2hlY2tBcnJheU9yRW1wdHk6CiAgICAgY2FzZSBHZXRTY29wZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggM2QyMjVk
Y2EyZDhiODA3Yzc4ZjIzMjdhYzIzZDgxNzFlN2YwZjIyOS4uZGVmMDM3ZGM1Y2NmMWMzNmUwNjBk
ZmZiM2E0ZGI1N2FiNzYyNmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjaGVja0FycmF5KE5vZGUqIG5vZGUpCiAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwg
bm9kZSwgYXJyYXlNb2RlLmlzU29tZVR5cGVkQXJyYXlWaWV3KCkpOwogCiAgICAgICAgIGlmIChh
cnJheU1vZGUudHlwZSgpID09IEFycmF5OjpBbnlUeXBlZEFycmF5KQotICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChiYXNlUmVn
KSwgbnVsbHB0ciwgbV9qaXQuYnJhbmNoSWZOb3RUeXBlKGJhc2VSZWcsIEpTVHlwZShGaXJzdFR5
cGVkQXJyYXlUeXBlKSwgSlNUeXBlKExhc3RUeXBlZEFycmF5VHlwZUV4Y2x1ZGluZ0RhdGFWaWV3
KSkpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNl
Ojp1bmJveGVkQ2VsbChiYXNlUmVnKSwgbnVsbHB0ciwgbV9qaXQuYnJhbmNoSWZOb3RUeXBlKGJh
c2VSZWcsIEpTVHlwZVJhbmdlIHsgSlNUeXBlKEZpcnN0VHlwZWRBcnJheVR5cGUpLCBKU1R5cGUo
TGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVkaW5nRGF0YVZpZXcpIH0pKTsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgc3BlY3VsYXRlQ2VsbFR5cGVXaXRob3V0VHlwZUZpbHRlcmluZyhub2RlLT5j
aGlsZDEoKSwgYmFzZVJlZywgdHlwZUZvclR5cGVkQXJyYXlUeXBlKGFycmF5TW9kZS50eXBlZEFy
cmF5VHlwZSgpKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtOTk5OSw5ICs5OTk5LDE5IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsRE9NR2V0dGVyKE5vZGUqIG5vZGUpCiAgICAganNW
YWx1ZVJlc3VsdChyZXN1bHQucmVncygpLCBub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MoTm9kZSogbm9kZSkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVDaGVja0pTQ2FzdChOb2RlKiBub2RlKQogewogICAgIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmZvID0gbm9kZS0+Y2xhc3NJbmZvKCk7CisgICAgaWYgKGNsYXNzSW5mby0+aW5oZXJp
dHNKU1R5cGVSYW5nZSkgeworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwor
CisgICAgICAgIGF1dG8gY2hlY2tGYWlsZWQgPSBtX2ppdC5icmFuY2hJZk5vdFR5cGUoYmFzZUdQ
UiwgY2xhc3NJbmZvLT5pbmhlcml0c0pTVHlwZVJhbmdlLnZhbHVlKCkpOworICAgICAgICBzcGVj
dWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VHUFIp
LCBub2RlLT5jaGlsZDEoKSwgY2hlY2tGYWlsZWQpOworICAgICAgICBub1Jlc3VsdChub2RlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICghY2xhc3NJbmZvLT5jaGVja1N1YkNs
YXNzU25pcHBldCkgewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IG90aGVyKHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IGFjYmIwM2Nm
ZWI4MDhlMjgwMjVhMmNmOWU4ZDEzZGJiNWFmNjk3YzkuLmQ5MzQ2YzY3YjhjZTMzM2I0MDE4ZTQ5
NWJiOTBlODBmNmM0YzkxYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKQEAgLTEyNDYsNyArMTI0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNv
bXBpbGVHZXRCdXR0ZXJmbHkoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNhbGxET01HZXR0ZXIo
Tm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNhbGxET00oTm9kZSopOwotICAgIHZvaWQgY29tcGls
ZUNoZWNrU3ViQ2xhc3MoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUNoZWNrSlNDYXN0KE5vZGUq
KTsKICAgICB2b2lkIGNvbXBpbGVOb3JtYWxpemVNYXBLZXkoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZUdldE1hcEJ1Y2tldEhlYWQoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldE1hcEJ1Y2tl
dE5leHQoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMTlkMGUyOGE0ZTc0ZWFiMGI5ZTM4YTkxOTdhMzM5
MmY4YWQ4ZDEzNC4uYTNjMDU5MTUzNWI3ODkzZTA4ZDAwNTVkNmIyZjE2ODlhMjQ0Njc1MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCkBAIC00MTc0LDggKzQxNzQsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVDYWxsRE9NR2V0dGVyKG5vZGUpOwogICAgICAg
ICBicmVhazsKIAotICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKLSAgICAgICAgY29tcGlsZUNoZWNr
U3ViQ2xhc3Mobm9kZSk7CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKKyAgICAgICAgY29tcGlsZUNo
ZWNrSlNDYXN0KG5vZGUpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgVW5yZWFjaGFibGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAppbmRleCA0ZDI2ZDM1NmI2ZjE2NzVmNzM1YjNjNTA2NTE2N2MzMjFmNGY5OGUzLi4xNDc1NDFh
M2I5ZDE5MmU1MDE3MWE5OGI2YmQzMGVlMWVhMjlkZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTUwNDYsOCArNTA0Niw4
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29t
cGlsZUNhbGxET01HZXR0ZXIobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBDaGVj
a1N1YkNsYXNzOgotICAgICAgICBjb21waWxlQ2hlY2tTdWJDbGFzcyhub2RlKTsKKyAgICBjYXNl
IENoZWNrSlNDYXN0OgorICAgICAgICBjb21waWxlQ2hlY2tKU0Nhc3Qobm9kZSk7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBFeHRyYWN0Q2F0Y2hMb2NhbDogewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGM1YTE2MDE0YjMwOTJkNTg1
ODg2N2EwZTNiMTc0NTcxODgxZmM2NjcuLmE0Zjk3ZDQ2MGIxODJjOGU0NTE0NDMzMDIyMGEyYzky
MWY5MzAxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFRvTG93ZXJDYXNlOgogICAgIGNhc2UgTnVtYmVyVG9T
dHJpbmdXaXRoUmFkaXg6CiAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29u
c3RhbnQ6Ci0gICAgY2FzZSBDaGVja1N1YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAg
ICAgY2FzZSBDYWxsRE9NOgogICAgIGNhc2UgQ2FsbERPTUdldHRlcjoKICAgICBjYXNlIEFycmF5
U2xpY2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
aW5kZXggZmI3ZmNlZWNiNDVjYjc5ZDk3MWI1MDM5ZjQwNjM2OGQzMzI0MTNmZi4uNDM2YmIyMTM5
Zjg3MWY3NTkwMmRjMTAyZWMxNTU3MGU3YmEwYjcyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTU4Niw4ICsxNTg2LDggQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQ6CiAg
ICAgICAgICAgICBjb21waWxlTnVtYmVyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeENvbnN0YW50KCk7
CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDaGVja1N1YkNsYXNzOgotICAgICAg
ICAgICAgY29tcGlsZUNoZWNrU3ViQ2xhc3MoKTsKKyAgICAgICAgY2FzZSBDaGVja0pTQ2FzdDoK
KyAgICAgICAgICAgIGNvbXBpbGVDaGVja0pTQ2FzdCgpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQ2FsbERPTToKICAgICAgICAgICAgIGNvbXBpbGVDYWxsRE9NKCk7CkBAIC0x
MzkzMSwxMSArMTM5MzEsMTggQEAgcHJpdmF0ZToKICAgICAgICAgY3Jhc2goKTsKICAgICB9CiAK
LSAgICB2b2lkIGNvbXBpbGVDaGVja1N1YkNsYXNzKCkKKyAgICB2b2lkIGNvbXBpbGVDaGVja0pT
Q2FzdCgpCiAgICAgewogICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGls
ZDEoKSk7CiAKICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8gPSBtX25vZGUtPmNs
YXNzSW5mbygpOworCisgICAgICAgIGlmIChjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2Up
IHsKKyAgICAgICAgICAgIExWYWx1ZSBoYXNUeXBlID0gaXNDZWxsV2l0aFR5cGUoY2VsbCwgY2xh
c3NJbmZvLT5pbmhlcml0c0pTVHlwZVJhbmdlLnZhbHVlKCksIHNwZWN1bGF0aW9uRnJvbUNsYXNz
SW5mb0luaGVyaXRhbmNlKGNsYXNzSW5mbykpOworICAgICAgICAgICAgc3BlY3VsYXRlKEJhZFR5
cGUsIGpzVmFsdWVWYWx1ZShjZWxsKSwgbV9ub2RlLT5jaGlsZDEoKS5ub2RlKCksIG1fb3V0LmJp
dE5vdChoYXNUeXBlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAg
ICBpZiAoIWNsYXNzSW5mby0+Y2hlY2tTdWJDbGFzc1NuaXBwZXQpIHsKICAgICAgICAgICAgIExC
YXNpY0Jsb2NrIGxvb3AgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2ljQmxv
Y2sgcGFyZW50Q2xhc3MgPSBtX291dC5uZXdCbG9jaygpOwpAQCAtMTc3MDAsMjcgKzE3NzA3LDMz
IEBAIHByaXZhdGU6CiAgICAgICAgIGpzVmFsdWVUb1N0cmljdEludDUyKGVkZ2UsIGxvd0pTVmFs
dWUoZWRnZSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKSk7CiAgICAgfQogCi0gICAgTFZhbHVl
IGlzQ2VsbFdpdGhUeXBlKExWYWx1ZSBjZWxsLCBKU1R5cGUgcXVlcmllZFR5cGUsIE9wdGlvbmFs
PFNwZWN1bGF0ZWRUeXBlPiBzcGVjdWxhdGVkVHlwZUZvclF1ZXJ5LCBTcGVjdWxhdGVkVHlwZSB0
eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgTFZhbHVlIGlzQ2VsbFdpdGhUeXBlKExWYWx1ZSBjZWxs
LCBKU1R5cGVSYW5nZSBxdWVyaWVkVHlwZVJhbmdlLCBPcHRpb25hbDxTcGVjdWxhdGVkVHlwZT4g
c3BlY3VsYXRlZFR5cGVGb3JRdWVyeSwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9w
KQogICAgIHsKICAgICAgICAgaWYgKHNwZWN1bGF0ZWRUeXBlRm9yUXVlcnkpIHsKICAgICAgICAg
ICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIHNw
ZWN1bGF0ZWRUeXBlRm9yUXVlcnkudmFsdWUoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHBy
b3ZlbjsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCisgICAgICAgIGlm
IChxdWVyaWVkVHlwZVJhbmdlLmZpcnN0ID09IHF1ZXJpZWRUeXBlUmFuZ2UubGFzdCkgeworICAg
ICAgICAgICAgcmV0dXJuIG1fb3V0LmVxdWFsKAorICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4
WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCisgICAgICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnQzMihxdWVyaWVkVHlwZVJhbmdlLmZpcnN0KSk7CisgICAgICAg
IH0KKworICAgICAgICBBU1NFUlQocXVlcmllZFR5cGVSYW5nZS5sYXN0ID4gcXVlcmllZFR5cGVS
YW5nZS5maXJzdCk7CisgICAgICAgIExWYWx1ZSBmaXJzdCA9IG1fb3V0LnN1YigKICAgICAgICAg
ICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlw
ZSksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDMyKHF1ZXJpZWRUeXBlKSk7CisgICAgICAg
ICAgICBtX291dC5jb25zdEludDMyKHF1ZXJpZWRUeXBlUmFuZ2UuZmlyc3QpKTsKKyAgICAgICAg
cmV0dXJuIG1fb3V0LmJlbG93T3JFcXVhbChmaXJzdCwgbV9vdXQuY29uc3RJbnQzMihxdWVyaWVk
VHlwZVJhbmdlLmxhc3QgLSBxdWVyaWVkVHlwZVJhbmdlLmZpcnN0KSk7CisgICAgfQorCisgICAg
TFZhbHVlIGlzQ2VsbFdpdGhUeXBlKExWYWx1ZSBjZWxsLCBKU1R5cGUgcXVlcmllZFR5cGUsIE9w
dGlvbmFsPFNwZWN1bGF0ZWRUeXBlPiBzcGVjdWxhdGVkVHlwZUZvclF1ZXJ5LCBTcGVjdWxhdGVk
VHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgeworICAgICAgICByZXR1cm4gaXNDZWxsV2l0
aFR5cGUoY2VsbCwgSlNUeXBlUmFuZ2UgeyBxdWVyaWVkVHlwZSwgcXVlcmllZFR5cGUgfSwgc3Bl
Y3VsYXRlZFR5cGVGb3JRdWVyeSwgdHlwZSk7CiAgICAgfQogCiAgICAgTFZhbHVlIGlzVHlwZWRB
cnJheVZpZXcoTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkK
ICAgICB7Ci0gICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYg
U3BlY0NlbGwsIFNwZWNUeXBlZEFycmF5VmlldykpCi0gICAgICAgICAgICByZXR1cm4gcHJvdmVu
OwotICAgICAgICBMVmFsdWUganNUeXBlID0gbV9vdXQuc3ViKAotICAgICAgICAgICAgbV9vdXQu
bG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKLSAgICAg
ICAgICAgIG1fb3V0LmNvbnN0SW50MzIoRmlyc3RUeXBlZEFycmF5VHlwZSkpOwotICAgICAgICBy
ZXR1cm4gbV9vdXQuYmVsb3coCi0gICAgICAgICAgICBqc1R5cGUsCi0gICAgICAgICAgICBtX291
dC5jb25zdEludDMyKE51bWJlck9mVHlwZWRBcnJheVR5cGVzRXhjbHVkaW5nRGF0YVZpZXcpKTsK
KyAgICAgICAgcmV0dXJuIGlzQ2VsbFdpdGhUeXBlKGNlbGwsIEpTVHlwZVJhbmdlIHsgc3RhdGlj
X2Nhc3Q8SlNUeXBlPihGaXJzdFR5cGVkQXJyYXlUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihM
YXN0VHlwZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldykgfSwgU3BlY1R5cGVkQXJyYXlWaWV3
LCB0eXBlKTsKICAgICB9CiAgICAgCiAgICAgTFZhbHVlIGlzT2JqZWN0KExWYWx1ZSBjZWxsLCBT
cGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCAxMDY0MTRjYmJkNGIzMWUyOTE3YmY5N2M2MTUy
ZmNiYzU2MGE1N2RkLi41YTMwMmRjNWUyNjFjYzY5NWY1YTMyZTZiYWMzZmM0ZDE4NzRkMjhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTk4MSwz
MCArOTgxLDM4IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiAgICAgLy8gTm90ZSB0aGF0IGZpcnN0
IGFuZCBsYXN0IGFyZSBpbmNsdXNpdmUuCi0gICAgSnVtcCBicmFuY2hJZlR5cGUoR1BSUmVnIGNl
bGxHUFIsIEpTVHlwZSBmaXJzdCwgT3B0aW9uYWw8SlNUeXBlPiBsYXN0ID0gV1RGOjpudWxsb3B0
KQotICAgIHsKLSAgICAgICAgaWYgKGxhc3QgJiYgKmxhc3QgIT0gZmlyc3QpIHsKLSAgICAgICAg
ICAgIEFTU0VSVCgqbGFzdCA+IGZpcnN0KTsKLSAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0g
c2NyYXRjaFJlZ2lzdGVyKCk7Ci0gICAgICAgICAgICBsb2FkOChBZGRyZXNzKGNlbGxHUFIsIEpT
Q2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBzY3JhdGNoKTsKLSAgICAgICAgICAgIHN1YjMy
KFRydXN0ZWRJbW0zMihmaXJzdCksIHNjcmF0Y2gpOwotICAgICAgICAgICAgcmV0dXJuIGJyYW5j
aDMyKEJlbG93T3JFcXVhbCwgc2NyYXRjaCwgVHJ1c3RlZEltbTMyKCpsYXN0IC0gZmlyc3QpKTsK
LSAgICAgICAgfQorICAgIEp1bXAgYnJhbmNoSWZUeXBlKEdQUlJlZyBjZWxsR1BSLCBKU1R5cGVS
YW5nZSByYW5nZSkKKyAgICB7CisgICAgICAgIGlmIChyYW5nZS5sYXN0ID09IHJhbmdlLmZpcnN0
KQorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaDgoRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlND
ZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihyYW5nZS5maXJzdCkpOwog
Ci0gICAgICAgIHJldHVybiBicmFuY2g4KEVxdWFsLCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6
dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoZmlyc3QpKTsKKyAgICAgICAgQVNT
RVJUKHJhbmdlLmxhc3QgPiByYW5nZS5maXJzdCk7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoID0g
c2NyYXRjaFJlZ2lzdGVyKCk7CisgICAgICAgIGxvYWQ4KEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxs
Ojp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIHNjcmF0Y2gpOworICAgICAgICBzdWIzMihUcnVzdGVk
SW1tMzIocmFuZ2UuZmlyc3QpLCBzY3JhdGNoKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKEJl
bG93T3JFcXVhbCwgc2NyYXRjaCwgVHJ1c3RlZEltbTMyKHJhbmdlLmxhc3QgLSByYW5nZS5maXJz
dCkpOwogICAgIH0KIAotICAgIEp1bXAgYnJhbmNoSWZOb3RUeXBlKEdQUlJlZyBjZWxsR1BSLCBK
U1R5cGUgZmlyc3QsIE9wdGlvbmFsPEpTVHlwZT4gbGFzdCA9IFdURjo6bnVsbG9wdCkKKyAgICBK
dW1wIGJyYW5jaElmVHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIHR5cGUpCiAgICAgewotICAg
ICAgICBpZiAobGFzdCAmJiAqbGFzdCAhPSBmaXJzdCkgewotICAgICAgICAgICAgQVNTRVJUKCps
YXN0ID4gZmlyc3QpOwotICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBzY3JhdGNoUmVnaXN0
ZXIoKTsKLSAgICAgICAgICAgIGxvYWQ4KEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5m
b1R5cGVPZmZzZXQoKSksIHNjcmF0Y2gpOwotICAgICAgICAgICAgc3ViMzIoVHJ1c3RlZEltbTMy
KGZpcnN0KSwgc2NyYXRjaCk7Ci0gICAgICAgICAgICByZXR1cm4gYnJhbmNoMzIoQWJvdmUsIHNj
cmF0Y2gsIFRydXN0ZWRJbW0zMigqbGFzdCAtIGZpcnN0KSk7Ci0gICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGJyYW5jaElmVHlwZShjZWxsR1BSLCBKU1R5cGVSYW5nZSB7IHR5cGUsIHR5cGUgfSk7
CisgICAgfQogCi0gICAgICAgIHJldHVybiBicmFuY2g4KE5vdEVxdWFsLCBBZGRyZXNzKGNlbGxH
UFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoZmlyc3QpKTsK
KyAgICBKdW1wIGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlUmFuZ2UgcmFu
Z2UpCisgICAgeworICAgICAgICBpZiAocmFuZ2UubGFzdCA9PSByYW5nZS5maXJzdCkKKyAgICAg
ICAgICAgIHJldHVybiBicmFuY2g4KE5vdEVxdWFsLCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6
dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIocmFuZ2UuZmlyc3QpKTsKKworICAg
ICAgICBBU1NFUlQocmFuZ2UubGFzdCA+IHJhbmdlLmZpcnN0KTsKKyAgICAgICAgR1BSUmVnIHNj
cmF0Y2ggPSBzY3JhdGNoUmVnaXN0ZXIoKTsKKyAgICAgICAgbG9hZDgoQWRkcmVzcyhjZWxsR1BS
LCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgc2NyYXRjaCk7CisgICAgICAgIHN1YjMy
KFRydXN0ZWRJbW0zMihyYW5nZS5maXJzdCksIHNjcmF0Y2gpOworICAgICAgICByZXR1cm4gYnJh
bmNoMzIoQWJvdmUsIHNjcmF0Y2gsIFRydXN0ZWRJbW0zMihyYW5nZS5sYXN0IC0gcmFuZ2UuZmly
c3QpKTsKKyAgICB9CisKKyAgICBKdW1wIGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQUiwg
SlNUeXBlIHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoSWZOb3RUeXBlKGNlbGxH
UFIsIEpTVHlwZVJhbmdlIHsgdHlwZSwgdHlwZSB9KTsKICAgICB9CiAKICAgICAvLyBGSVhNRTog
cmVuYW1lIHRoZXNlIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGV5IHJlcXVpcmUgdGhlaXIgaW5w
dXQgdG8gYmUgYSBjZWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ2xhc3NJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8u
aAppbmRleCBiMzJjOGZkYjVkNzY2ZDcwYmZlMWYwMDIxYWYyNjk2NjJlZTMyODU5Li4xMjM2ODEy
MGQ0N2JiZjk5M2JkZmJmY2Q1ZmJmYjA1NGY4ODdmMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9DbGFzc0luZm8uaApAQCAtMTUxLDcgKzE1MSw5IEBAIHN0cnVjdCBNZXRob2RU
YWJsZSB7CiAKICNkZWZpbmUgSEFTX01FTUJFUl9OQU1FRChrbGFzcywgbmFtZSkgKE1lbWJlckNo
ZWNrIyNuYW1lPGtsYXNzPjo6aGFzKQogCi0jZGVmaW5lIENSRUFURV9NRVRIT0RfVEFCTEUoQ2xh
c3NOYW1lKSB7IFwKKyNkZWZpbmUgQ1JFQVRFX01FVEhPRF9UQUJMRShDbGFzc05hbWUpIFwKKyAg
ICBKU0Nhc3RpbmdIZWxwZXJzOjpJbmhlcml0c1RyYWl0czxDbGFzc05hbWU+Ojp0eXBlUmFuZ2Us
IFwKKyAgICB7IFwKICAgICAgICAgJkNsYXNzTmFtZTo6ZGVzdHJveSwgXAogICAgICAgICAmQ2xh
c3NOYW1lOjp2aXNpdENoaWxkcmVuLCBcCiAgICAgICAgICZDbGFzc05hbWU6OmdldENhbGxEYXRh
LCBcCkBAIC0xODUsMTAgKzE4NywxMCBAQCBzdHJ1Y3QgTWV0aG9kVGFibGUgewogICAgICAgICAm
Q2xhc3NOYW1lOjp2aXNpdE91dHB1dENvbnN0cmFpbnRzLCBcCiAgICAgfSwgXAogICAgIENsYXNz
TmFtZTo6VHlwZWRBcnJheVN0b3JhZ2VUeXBlLCBcCi0gICAgc2l6ZW9mKENsYXNzTmFtZSkKKyAg
ICBzaXplb2YoQ2xhc3NOYW1lKSwKIAogc3RydWN0IENsYXNzSW5mbyB7Ci0gICAgdXNpbmcgQ2hl
Y2tTdWJDbGFzc1NuaXBwZXRGdW5jdGlvblB0ciA9IFJlZjxTbmlwcGV0PiAoKikodm9pZCk7Cisg
ICAgdXNpbmcgQ2hlY2tKU0Nhc3RTbmlwcGV0RnVuY3Rpb25QdHIgPSBSZWY8U25pcHBldD4gKCop
KHZvaWQpOwogCiAgICAgLy8gQSBzdHJpbmcgZGVub3RpbmcgdGhlIGNsYXNzIG5hbWUuIEV4YW1w
bGU6ICJXaW5kb3ciLgogICAgIGNvbnN0IGNoYXIqIGNsYXNzTmFtZTsKQEAgLTE5NiwxMCArMTk4
LDExIEBAIHN0cnVjdCBDbGFzc0luZm8gewogICAgIC8vIG51bGxwdHJpZiB0aGVyZSBpcyBub25l
LgogICAgIGNvbnN0IENsYXNzSW5mbyogcGFyZW50Q2xhc3M7CiAgICAgY29uc3QgSGFzaFRhYmxl
KiBzdGF0aWNQcm9wSGFzaFRhYmxlOwotICAgIENoZWNrU3ViQ2xhc3NTbmlwcGV0RnVuY3Rpb25Q
dHIgY2hlY2tTdWJDbGFzc1NuaXBwZXQ7CisgICAgQ2hlY2tKU0Nhc3RTbmlwcGV0RnVuY3Rpb25Q
dHIgY2hlY2tTdWJDbGFzc1NuaXBwZXQ7CisgICAgY29uc3QgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+
IGluaGVyaXRzSlNUeXBlUmFuZ2U7IC8vIFRoaXMgaXMgcmFuZ2Ugb2YgSlNUeXBlcyBmb3IgZG9p
bmcgaW5oZXJpdGFuY2UgY2hlY2tpbmcuIEhhcyB0aGUgZm9ybTogW2ZpcnN0SlNUeXBlLCBsYXN0
SlNUeXBlXSAoaW5jbHVzaXZlKS4KICAgICBNZXRob2RUYWJsZSBtZXRob2RUYWJsZTsKLSAgICBU
eXBlZEFycmF5VHlwZSB0eXBlZEFycmF5U3RvcmFnZVR5cGU7Ci0gICAgdW5zaWduZWQgc3RhdGlj
Q2xhc3NTaXplOworICAgIGNvbnN0IFR5cGVkQXJyYXlUeXBlIHR5cGVkQXJyYXlTdG9yYWdlVHlw
ZTsKKyAgICBjb25zdCB1bnNpZ25lZCBzdGF0aWNDbGFzc1NpemU7CiAKICAgICBzdGF0aWMgcHRy
ZGlmZl90IG9mZnNldE9mUGFyZW50Q2xhc3MoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2FzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDYXN0LmgKaW5kZXggYjI1MDM1NjljODQyMjU2MDExNDFhODBjZjU5ODQ4ZjVkNjcz
Yjc0Yi4uYjEyZWRhYmVmMzEzZWVlOGYwNjdiZWExYThjMzFlMDIzNzNkNmYxYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKQEAgLTU3LDYgKzU3LDE0IEBAIGlubGluZSBU
byBqc0Nhc3QoSlNWYWx1ZSBmcm9tKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUbz4oZnJvbS5h
c0NlbGwoKSk7CiB9CiAKKy8vIFRoZSBmaXJzdCBhbmQgbGFzdCBKU1R5cGUgYXJlIGluY2x1c2l2
ZQorc3RydWN0IEpTVHlwZVJhbmdlIHsKKyAgICBib29sIGNvbnRhaW5zKEpTVHlwZSB0eXBlKSBj
b25zdCB7IHJldHVybiBmaXJzdCA8PSB0eXBlICYmIHR5cGUgPD0gbGFzdDsgfQorCisgICAgSlNU
eXBlIGZpcnN0OworICAgIEpTVHlwZSBsYXN0OworfTsKKwogLy8gU3BlY2lmaWMgdHlwZSBvdmVy
bG9hZHMuCiAjZGVmaW5lIEZPUl9FQUNIX0pTX0RZTkFNSUNfQ0FTVF9KU19UWVBFX09WRVJMT0FE
KG1hY3JvKSBcCiAgICAgbWFjcm8oSlNJbW11dGFibGVCdXR0ZXJmbHksIEpTVHlwZTo6SlNJbW11
dGFibGVCdXR0ZXJmbHlUeXBlLCBKU1R5cGU6OkpTSW1tdXRhYmxlQnV0dGVyZmx5VHlwZSkgXApA
QCAtMTI2LDEwICsxMzQsMTAgQEAgc3RydWN0IEZpbmFsVHlwZURpc3BhdGNoZXI8LyogaXNGaW5h
bCAqLyB0cnVlPiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIEZy
b20+Ci1pbmxpbmUgYm9vbCBpbmhlcml0c0pTVHlwZUltcGwoVk0mIHZtLCBGcm9tKiBmcm9tLCBK
U1R5cGUgZmlyc3RUeXBlLCBKU1R5cGUgbGFzdFR5cGUpCitpbmxpbmUgYm9vbCBpbmhlcml0c0pT
VHlwZUltcGwoVk0mIHZtLCBGcm9tKiBmcm9tLCBKU1R5cGVSYW5nZSByYW5nZSkKIHsKICAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIFRhcmdldD46OnZhbHVlICYmIHN0
ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8RnJvbT46
OnR5cGU+Ojp2YWx1ZSwgIkpTIGNhc3RpbmcgZXhwZWN0cyB0aGF0IHRoZSB0eXBlcyB5b3UgYXJl
IGNhc3RpbmcgdG8vZnJvbSBhcmUgc3ViY2xhc3NlcyBvZiBKU0NlbGwiKTsKLSAgICBib29sIGNh
bkNhc3QgPSBmaXJzdFR5cGUgPD0gZnJvbS0+dHlwZSgpICYmIGZyb20tPnR5cGUoKSA8PSBsYXN0
VHlwZTsKKyAgICBib29sIGNhbkNhc3QgPSByYW5nZS5jb250YWlucyhmcm9tLT50eXBlKCkpOwog
ICAgIC8vIERvIG5vdCB1c2UgaW5oZXJpdHM8VGFyZ2V0Pih2bSkgc2luY2UgaW5oZXJpdHM8VD4g
ZGVwZW5kcyBvbiB0aGlzIGZ1bmN0aW9uLgogICAgIEFTU0VSVF9VTlVTRUQodm0sIGNhbkNhc3Qg
PT0gZnJvbS0+SlNDZWxsOjppbmhlcml0cyh2bSwgVGFyZ2V0OjppbmZvKCkpKTsKICAgICByZXR1
cm4gY2FuQ2FzdDsKQEAgLTEzOSw2ICsxNDcsNyBAQCBpbmxpbmUgYm9vbCBpbmhlcml0c0pTVHlw
ZUltcGwoVk0mIHZtLCBGcm9tKiBmcm9tLCBKU1R5cGUgZmlyc3RUeXBlLCBKU1R5cGUgbGFzdAog
Ly8gd2F5IHRvIHNheSB0aGF0IHdlIGFyZSBvdmVybG9hZGluZyBqdXN0IHRoZSBmaXJzdCB0eXBl
IGluIGEgdGVtcGxhdGUgbGlzdC4uLgogdGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0Pgogc3RydWN0
IEluaGVyaXRzVHJhaXRzIHsKKyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvbmFsPEpTVHlwZVJh
bmdlPiB0eXBlUmFuZ2UgeyBXVEY6Om51bGxvcHQgfTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBG
cm9tPgogICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20p
IHsgcmV0dXJuIEZpbmFsVHlwZURpc3BhdGNoZXI8c3RkOjppc19maW5hbDxUYXJnZXQ+Ojp2YWx1
ZT46OnRlbXBsYXRlIGluaGVyaXRzR2VuZXJpYzxUYXJnZXQ+KHZtLCBmcm9tKTsgfQogfTsKQEAg
LTE0Niw4ICsxNTUsOSBAQCBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHMgewogI2RlZmluZSBERUZJTkVf
VFJBSVRTX0ZPUl9KU19UWVBFX09WRVJMT0FEKGNsYXNzTmFtZSwgZmlyc3RKU1R5cGUsIGxhc3RK
U1R5cGUpIFwKICAgICB0ZW1wbGF0ZTw+IFwKICAgICBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHM8Y2xh
c3NOYW1lPiB7IFwKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25hbDxKU1R5cGVSYW5n
ZT4gdHlwZVJhbmdlIHsgeyBzdGF0aWNfY2FzdDxKU1R5cGU+KGZpcnN0SlNUeXBlKSwgc3RhdGlj
X2Nhc3Q8SlNUeXBlPihsYXN0SlNUeXBlKSB9IH07IFwKICAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRnJvbT4gXAotICAgICAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBG
cm9tKiBmcm9tKSB7IHJldHVybiBpbmhlcml0c0pTVHlwZUltcGw8Y2xhc3NOYW1lLCBGcm9tPih2
bSwgZnJvbSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihmaXJzdEpTVHlwZSksIHN0YXRpY19jYXN0PEpT
VHlwZT4obGFzdEpTVHlwZSkpOyB9IFwKKyAgICAgICAgc3RhdGljIGlubGluZSBib29sIGluaGVy
aXRzKFZNJiB2bSwgRnJvbSogZnJvbSkgeyByZXR1cm4gaW5oZXJpdHNKU1R5cGVJbXBsPGNsYXNz
TmFtZSwgRnJvbT4odm0sIGZyb20sICp0eXBlUmFuZ2UpOyB9IFwKICAgICB9OyBcCiAKIEZPUl9F
QUNIX0pTX0RZTkFNSUNfQ0FTVF9KU19UWVBFX09WRVJMT0FEKERFRklORV9UUkFJVFNfRk9SX0pT
X1RZUEVfT1ZFUkxPQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uY3BwCmluZGV4IDBlM2Y4NTgxZGZkNWUzNjEzYzdiNTNkOTk4NjYxZDg4MWEyNDQyNzkuLmQ1
NTZjZGVlNjI5OGU5OWUyMzY4OWU0NzU1NTYyN2QxZTdiN2IxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC05MTIsNyArOTEyLDcgQEAgSlNG
dW5jdGlvbjo6UHJvcGVydHlTdGF0dXMgSlNGdW5jdGlvbjo6cmVpZnlMYXp5Qm91bmROYW1lSWZO
ZWVkZWQoVk0mIHZtLCBKU0dsb2IKICNpZiBBU1NFUlRfRU5BQkxFRAogdm9pZCBKU0Z1bmN0aW9u
Ojphc3NlcnRUeXBlSW5mb0ZsYWdJbnZhcmlhbnRzKCkKIHsKLSAgICAvLyBJZiB5b3UgY2hhbmdl
IHRoaXMsIHlvdSdsbCBuZWVkIHRvIHVwZGF0ZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8uCisg
ICAgLy8gSWYgeW91IGNoYW5nZSB0aGlzLCB5b3UnbGwgbmVlZCB0byB1cGRhdGUgc3BlY3VsYXRp
b25Gcm9tQ2xhc3NJbmZvSW5oZXJpdGFuY2UuCiAgICAgY29uc3QgQ2xhc3NJbmZvKiBpbmZvID0g
Y2xhc3NJbmZvKHZtKCkpOwogICAgIGlmICghKGlubGluZVR5cGVGbGFncygpICYgSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSkpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGluZm8gPT0gSlNC
b3VuZEZ1bmN0aW9uOjppbmZvKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9s
bGFyVk0uY3BwCmluZGV4IGUzZWNlZjZlY2JhYmE3ZTE3MjYwZWE1NTE3YTJmNzZmYzUwMjFjNDUu
LjA5YWYwYjFjNmRiZmU1MDI4NzM2NWNkNjkyZTg4NjMzMGZmZjQ0ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKQEAgLTExMjUsOSArMTEyNSw5IEBAIHZv
aWQgRE9NSklURnVuY3Rpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xv
YmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlv
bldpdGhUeXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklURnVuY3Rpb25PYmplY3RTaWduYXR1
cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsK
IH0KIAotY2xhc3MgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCA6IHB1YmxpYyBET01KSVROb2Rl
IHsKK2NsYXNzIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewog
cHVibGljOgotICAgIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKKyAgICBET01KSVRDaGVja0pTQ2FzdE9iamVjdChWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQogICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKICAgICB7CiAgICAg
ICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CkBAIC0xMTQzLDEwICsxMTQzLDEw
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSlNDOjpKU1R5cGUoTGFzdEpTQ09iamVjdFR5cGUg
KyAxKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBET01K
SVRDaGVja1N1YkNsYXNzT2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICBzdGF0aWMgRE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3QqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKLSAgICAgICAgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCogb2JqZWN0
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8RE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdD4o
dm0uaGVhcCkpIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Qodm0sIHN0cnVjdHVyZSk7CisgICAg
ICAgIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0KiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9j
YXRlQ2VsbDxET01KSVRDaGVja0pTQ2FzdE9iamVjdD4odm0uaGVhcCkpIERPTUpJVENoZWNrSlND
YXN0T2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOwogICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9u
KHZtLCBnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KQEAgLTEx
NTcsNyArMTE1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAg
ICAgICAgYXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUQ2hlY2tTdWJDbGFz
c09iamVjdCo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICAgICAgYXV0byogdGhp
c09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QqPih2bSwgY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgICAgIGlmICghdGhpc09iamVjdCkKICAgICAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZhbHVlKCkpKTsK
QEAgLTExNzYsMTMgKzExNzYsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKLXN0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25h
dHVyZSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0U2lnbmF0dXJlKERPTUpJVENoZWNrU3ViQ2xh
c3NPYmplY3Q6OmZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjaywgRE9NSklUQ2hlY2tTdWJDbGFzc09i
amVjdDo6aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkhlYXBSYW5nZTo6
dG9wKCkpLCBTcGVjSW50MzJPbmx5KTsKK3N0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBE
T01KSVRDaGVja0pTQ2FzdE9iamVjdFNpZ25hdHVyZShET01KSVRDaGVja0pTQ2FzdE9iamVjdDo6
ZnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrLCBET01KSVRDaGVja0pTQ2FzdE9iamVjdDo6aW5mbygp
LCBET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkhlYXBSYW5nZTo6dG9wKCkpLCBTcGVj
SW50MzJPbmx5KTsKIAotdm9pZCBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIERPTUpJVENo
ZWNrSlNDYXN0T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24o
dm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMiKSwgMCwg
ZnVuY3Rpb25XaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRPTUpJVENoZWNrU3ViQ2xhc3NP
YmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkpKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlvbldpdGhUeXBl
Q2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RTaWduYXR1cmUsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAog
Y2xhc3MgRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewpAQCAt
MTQxNyw3ICsxNDE3LDcgQEAgY29uc3QgQ2xhc3NJbmZvIERPTUpJVEZ1bmN0aW9uT2JqZWN0Ojpz
X2luZm8gPSB7ICJET01KSVRGdW5jdGlvbk9iamVjdCIsICZCYXNlOjoKICNlbHNlCiBjb25zdCBD
bGFzc0luZm8gRE9NSklURnVuY3Rpb25PYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUpJVEZ1bmN0aW9u
T2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShET01KSVRGdW5jdGlvbk9iamVjdCkgfTsKICNlbmRpZgotY29uc3QgQ2xhc3NJbmZvIERP
TUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUpJVENoZWNrU3ViQ2xhc3NP
YmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QpIH07Citjb25zdCBDbGFzc0luZm8gRE9NSklU
Q2hlY2tKU0Nhc3RPYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUpJVENoZWNrSlNDYXN0T2JqZWN0Iiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01K
SVRDaGVja0pTQ2FzdE9iamVjdCkgfTsKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDdXN0b21HZXR0
ZXJTZXR0ZXI6OnNfaW5mbyA9IHsgIkpTVGVzdEN1c3RvbUdldHRlclNldHRlciIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q3VzdG9t
R2V0dGVyU2V0dGVyKSB9OwogCiBjb25zdCBDbGFzc0luZm8gU3RhdGljQ3VzdG9tQWNjZXNzb3I6
OnNfaW5mbyA9IHsgIlN0YXRpY0N1c3RvbUFjY2Vzc29yIiwgJkJhc2U6OnNfaW5mbywgJnN0YXRp
Y0N1c3RvbUFjY2Vzc29yVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoU3RhdGlj
Q3VzdG9tQWNjZXNzb3IpIH07CkBAIC0yMzQ5LDEzICsyMzQ5LDEzIEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3Qo
SlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNr
U3ViQ2xhc3NPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklU
Q2hlY2tKU0Nhc3RPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7Ci0gICAgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwganNOdWxsKCkpOwotICAgIERPTUpJVENoZWNrU3ViQ2xh
c3NPYmplY3QqIHJlc3VsdCA9IERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gRE9N
SklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBq
c051bGwoKSk7CisgICAgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QqIHJlc3VsdCA9IERPTUpJVENo
ZWNrSlNDYXN0T2JqZWN0OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTMwNTMsNyArMzA1Myw3
IEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIGFkZEZ1bmN0
aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRH
ZXR0ZXJPYmplY3QsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVy
Q29tcGxleE9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9iamVjdCwg
MCk7CiAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCIsIGZ1
bmN0aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZt
LCAiY3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklU
Q2hlY2tTdWJDbGFzc09iamVjdCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01K
SVRDaGVja0pTQ2FzdE9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmpl
Y3QsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyQmFzZUpTT2Jq
ZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJCYXNlSlNPYmplY3QsIDApOwogICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQnVpbHRpbiIsIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbiwgMik7
CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3B0
aW9uYWwuaCBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKaW5kZXggNzcxNmJhNDE4ZGRhZWQz
MzRmNDBiNTYwY2NhNzIzMzY5NWNmZTg3OC4uN2JmMGVjYTRiNzA3N2M4ZWM1ODE0NDdmYjU4NDI0
ZjY2ODFhZWYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9PcHRpb25hbC5oCkBAIC00MTEsMjAgKzQxMSwyNiBAQCBwdWJsaWM6CiAg
IGNvbnN0ZXhwciBPcHRpb25hbCgpIF9fTk9FWENFUFQgOiBPcHRpb25hbEJhc2U8VD4oKSAge307
CiAgIGNvbnN0ZXhwciBPcHRpb25hbChudWxsb3B0X3QpIF9fTk9FWENFUFQgOiBPcHRpb25hbEJh
c2U8VD4oKSB7fTsKIAotICBPcHRpb25hbChjb25zdCBPcHRpb25hbCYgcmhzKQorICBjb25zdGV4
cHIgT3B0aW9uYWwoY29uc3QgT3B0aW9uYWwmIHJocykKICAgOiBPcHRpb25hbEJhc2U8VD4oKQog
ICB7CiAgICAgaWYgKHJocy5pbml0aWFsaXplZCgpKSB7Ci0gICAgICAgIDo6bmV3IChzdGF0aWNf
Y2FzdDx2b2lkKj4oZGF0YXB0cigpKSkgVCgqcmhzKTsKKyAgICAgICAgaWYgY29uc3RleHByIChz
dGQ6OmlzX3RyaXZpYWxseV9jb3B5YWJsZV92PFQ+KQorICAgICAgICAgICAgT3B0aW9uYWxCYXNl
PFQ+OjpzdG9yYWdlXyA9ICpyaHM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIDo6bmV3IChz
dGF0aWNfY2FzdDx2b2lkKj4oZGF0YXB0cigpKSkgVCgqcmhzKTsKICAgICAgICAgT3B0aW9uYWxC
YXNlPFQ+Ojppbml0XyA9IHRydWU7CiAgICAgfQogICB9CiAKLSAgT3B0aW9uYWwoT3B0aW9uYWwm
JiByaHMpIF9fTk9FWENFUFRfKGRldGFpbF86OmlzX25vdGhyb3dfbW92ZV9jb25zdHJ1Y3RpYmxl
PFQ+Ojp2YWx1ZSkKKyAgY29uc3RleHByIE9wdGlvbmFsKE9wdGlvbmFsJiYgcmhzKSBfX05PRVhD
RVBUXyhkZXRhaWxfOjppc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZTxUPjo6dmFsdWUpCiAg
IDogT3B0aW9uYWxCYXNlPFQ+KCkKICAgewogICAgIGlmIChyaHMuaW5pdGlhbGl6ZWQoKSkgewot
ICAgICAgICA6Om5ldyAoc3RhdGljX2Nhc3Q8dm9pZCo+KGRhdGFwdHIoKSkpIFQoc3RkOjptb3Zl
KCpyaHMpKTsKKyAgICAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX3RyaXZpYWxseV9jb3B5YWJs
ZV92PFQ+KQorICAgICAgICAgICAgT3B0aW9uYWxCYXNlPFQ+OjpzdG9yYWdlXyA9ICpyaHM7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIDo6bmV3IChzdGF0aWNfY2FzdDx2b2lkKj4oZGF0YXB0
cigpKSkgVChzdGQ6Om1vdmUoKnJocykpOwogICAgICAgICBPcHRpb25hbEJhc2U8VD46OmluaXRf
ID0gdHJ1ZTsKICAgICAgICAgcmhzLmNsZWFyKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oCmluZGV4IGE1Mzk2MzY0ODRhZDNhNDE1Yzll
MzlmMGNjMjM3OTMyNDJkYWI1OTEuLjgxY2I5MTBmYWY2Nzk5YTI2ZTFlZTE0ZDRiNjQ1Y2I0OTc1
MDZhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRD
dXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9t
LmgKQEAgLTM0LDEwICszNCwxMSBAQCBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycyB7CiAKIHRl
bXBsYXRlPD4KIHN0cnVjdCBJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0RvY3VtZW50PiB7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25hbDxKU1R5cGVSYW5nZT4gdHlwZVJhbmdlIHsgSlNU
eXBlUmFuZ2UgeyBzdGF0aWNfY2FzdDxKU1R5cGU+KFdlYkNvcmU6OkpTRG9jdW1lbnRXcmFwcGVy
VHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNEb2N1bWVudFdyYXBwZXJUeXBl
KSB9IH07CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KLSAgICBzdGF0aWMgaW5saW5lIGJv
b2wgaW5oZXJpdHMoVk0mLCBGcm9tKiBmcm9tKQorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhl
cml0cyhWTSYgdm0sIEZyb20qIGZyb20pCiAgICAgewotICAgICAgICByZXR1cm4gZnJvbS0+dHlw
ZSgpID09IFdlYkNvcmU6OkpTRG9jdW1lbnRXcmFwcGVyVHlwZTsKKyAgICAgICAgcmV0dXJuIGlu
aGVyaXRzSlNUeXBlSW1wbDxXZWJDb3JlOjpKU0RvY3VtZW50Pih2bSwgZnJvbSwgKnR5cGVSYW5n
ZSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFbGVtZW50Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRD
dXN0b20uaAppbmRleCA1YzYxNDQ3N2Y2MzNiZTJkN2MxMzA1OGM2Nzk3NjY2ZTgzNzQ1Zjc0Li4y
NWE2ODNjOWVjOWJiNTUwNzViZmVjODA1MmFmYmI1ODlmMTA1OWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaApAQCAtMzQsMTAgKzM0LDExIEBAIG5h
bWVzcGFjZSBKU0Nhc3RpbmdIZWxwZXJzIHsKIAogdGVtcGxhdGU8Pgogc3RydWN0IEluaGVyaXRz
VHJhaXRzPFdlYkNvcmU6OkpTRWxlbWVudD4geworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9u
YWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7IEpTVHlwZVJhbmdlIHsgc3RhdGljX2Nhc3Q8SlNU
eXBlPihXZWJDb3JlOjpKU0VsZW1lbnRUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3Jl
OjpKU0VsZW1lbnRUeXBlKSB9IH07CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KLSAgICBz
dGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mLCBGcm9tKiBmcm9tKQorICAgIHN0YXRpYyBp
bmxpbmUgYm9vbCBpbmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20pCiAgICAgewotICAgICAgICBy
ZXR1cm4gZnJvbS0+dHlwZSgpID09IFdlYkNvcmU6OkpTRWxlbWVudFR5cGU7CisgICAgICAgIHJl
dHVybiBpbmhlcml0c0pTVHlwZUltcGw8V2ViQ29yZTo6SlNFbGVtZW50Pih2bSwgZnJvbSwgKnR5
cGVSYW5nZSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dEN1c3RvbS5oCmluZGV4IDJlNjVhMzEyMmFjYmQ2ZGNjNmNjZjA2NzAxNTJiYTU1M2U5NGU2NjEu
LmUwM2EwZGM1ZmRkMTVhN2ZmZjA5ZGM1YjIzMDU2Y2VjYWRhZDM3Y2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmgKQEAgLTM0LDEwICszNCwxMSBAQCBuYW1l
c3BhY2UgSlNDYXN0aW5nSGVscGVycyB7CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBJbmhlcml0c1Ry
YWl0czxXZWJDb3JlOjpKU0V2ZW50PiB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25hbDxK
U1R5cGVSYW5nZT4gdHlwZVJhbmdlIHsgeyBzdGF0aWNfY2FzdDxKU1R5cGU+KFdlYkNvcmU6OkpT
RXZlbnRUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpKU0V2ZW50VHlwZSkgfSB9
OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+Ci0gICAgc3RhdGljIGlubGluZSBib29sIGlu
aGVyaXRzKFZNJiwgRnJvbSogZnJvbSkKKyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMo
Vk0mIHZtLCBGcm9tKiBmcm9tKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9
PSBXZWJDb3JlOjpKU0V2ZW50VHlwZTsKKyAgICAgICAgcmV0dXJuIGluaGVyaXRzSlNUeXBlSW1w
bDxXZWJDb3JlOjpKU0V2ZW50Pih2bSwgZnJvbSwgKnR5cGVSYW5nZSk7CiAgICAgfQogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaAppbmRleCA1ODk1MGNiZTIw
YmI2MjExMWIxOGI2OWZiMDg2ZWYwMjQ5NmYyZDY4Li4zNDRjZTgxNWFiNjMxNDlmZmZlODA4MzUz
OWMyM2MxYWIyODhkNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uaApAQCAtMzQsMTAgKzM0LDEyIEBAIG5hbWVzcGFjZSBKU0Nhc3RpbmdIZWxwZXJzIHsKIAog
dGVtcGxhdGU8Pgogc3RydWN0IEluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTTm9kZT4geworICAg
IHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7IHsgc3Rh
dGljX2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpKU05vZGVUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBl
PihXZWJDb3JlOjpKU05vZGVUeXBlICsgV2ViQ29yZTo6SlNOb2RlVHlwZU1hc2spIH0gfTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDhfdD46Om1heCgpID09IHR5
cGVSYW5nZS0+bGFzdCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KLSAgICBzdGF0aWMg
aW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mLCBGcm9tKiBmcm9tKQorICAgIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpbmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20pCiAgICAgewotICAgICAgICByZXR1cm4g
ZnJvbS0+dHlwZSgpID49IFdlYkNvcmU6OkpTTm9kZVR5cGU7CisgICAgICAgIHJldHVybiBpbmhl
cml0c0pTVHlwZUltcGw8V2ViQ29yZTo6SlNOb2RlPih2bSwgZnJvbSwgKnR5cGVSYW5nZSk7CiAg
ICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQppbmRleCA2N2MzM2VmZDJiZjExZmRmODI4N2MzMjQwZDhhZTE0OGIwMzY4
MjM4Li43NWExNGEwMzQ1M2U1YmI3MGNhNjI0ZTBiMzNkMzcxODhjOTMzOGY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAt
MzAyMSw3ICszMDIxLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0KICAgICB9CiAK
LSAgICAjIENoZWNrU3ViQ2xhc3MgU25pcHBldCBmdW5jdGlvbi4KKyAgICAjIENoZWNrSlNDYXN0
IFNuaXBwZXQgZnVuY3Rpb24uCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0RPTUpJVH0pIHsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8SmF2YVNjcmlwdENvcmUv
U25pcHBldC5oPiJ9ID0gMTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpZiBFTkFC
TEUoSklUKVxuIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDAwNDM4MzcxODUzNGNlZmZmM2NjYzc3OTMzYjA5ODBiMDFmNGZhYmQuLmM5
NDhkYTc1N2M2ZDZiYWVlOWMzYTgwODQ5ZDAwMDgxMDgzMjViZjEgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjAtMDUtMjcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgZm9yLW9mIHNob3VsZCBjaGVjayB0aGUgaXRlcmFibGUgaXMgYSBKU0FycmF5IGZvciBGYXN0
QXJyYXkgaW4gREZHIGl0ZXJhdG9yX29wZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMjM4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2NoZWNrLXN1Yi1jbGFzcy5qczoKKyAgICAgICAg
KiBzdHJlc3MvZm9yLW9mLWl0ZXJhdG9yLW9wZW4tZmFzdC1hcnJheS1zaG91bGQtY2hlY2stanMt
dHlwZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAyMDIwLTA1LTI2ICBBbGV4ZXkgU2h2
YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBJdGVyYXRvckNsb3NlIHNo
b3VsZCBzdXBwcmVzcyBHZXRNZXRob2QgZXJyb3JzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9jaGVjay1zdWItY2xhc3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9jaGVjay1zdWItY2xhc3MuanMK
aW5kZXggNGI0YjFkNDY2Y2IyMDkxMzEyN2YzYzNmZGNhNjBiMTg3NGYwMDZlYy4uOTlkZThmYjM2
ZWQzMTYxM2M5ZjU0NmEyN2I3MmRiN2I5YjYwN2U4YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3MvY2hlY2stc3ViLWNsYXNzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2NoZWNrLXN1Yi1jbGFz
cy5qcwpAQCAtMSw1ICsxLDUgQEAKIHZhciBjcmVhdGVET01KSVROb2RlT2JqZWN0ID0gJHZtLmNy
ZWF0ZURPTUpJVE5vZGVPYmplY3Q7Ci12YXIgY3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVj
dCA9ICR2bS5jcmVhdGVET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OwordmFyIGNyZWF0ZURPTUpJ
VENoZWNrSlNDYXN0T2JqZWN0ID0gJHZtLmNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0Owog
CiBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiAgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCkBAIC0yMywxMSArMjMsMTEgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVu
YywgZXJyb3JNZXNzYWdlKSB7CiAKIHZhciBhcnJheSA9IFtdOwogZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDA7ICsraSkKLSAgICBhcnJheS5wdXNoKGNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmpl
Y3QoKSk7CisgICAgYXJyYXkucHVzaChjcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVjdCgpKTsK
IAotLy8gRE9NSklUTm9kZSBpcyBhbiBpbnN0YW5jZSBvZiBhIHN1cGVyIGNsYXNzIChET01KSVRO
b2RlKSBvZiBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0LgorLy8gRE9NSklUTm9kZSBpcyBhbiBp
bnN0YW5jZSBvZiBhIHN1cGVyIGNsYXNzIChET01KSVROb2RlKSBvZiBET01KSVRDaGVja0pTQ2Fz
dE9iamVjdC4KIHZhciBub2RlID0gY3JlYXRlRE9NSklUTm9kZU9iamVjdCgpOwotbm9kZS5mdW5j
ID0gY3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCgpLmZ1bmM7Citub2RlLmZ1bmMgPSBj
cmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVjdCgpLmZ1bmM7CiAKIGZ1bmN0aW9uIGNhbGxpbmco
ZG9tKQogewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZm9yLW9mLWl0ZXJhdG9yLW9wZW4t
ZmFzdC1hcnJheS1zaG91bGQtY2hlY2stanMtdHlwZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1v
Zi1pdGVyYXRvci1vcGVuLWZhc3QtYXJyYXktc2hvdWxkLWNoZWNrLWpzLXR5cGUuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmI4YjY5ZWIzMTFlMTJmNjg5ODExYzI0ZTZiZDEwYTk5OWRhYmM1YwotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1vZi1pdGVyYXRvci1vcGVuLWZhc3QtYXJyYXkt
c2hvdWxkLWNoZWNrLWpzLXR5cGUuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBmb28oYTAp
IHsKKyAgTnVtYmVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBbXTsKKyAgZm9yIChsZXQgaSA9IDA7
IGkgPCAxMDAwMDA7IGkrKykge30KKyAgZm9yIChsZXQgcSBvZiBhMCkge30KK30KKworZm9vKFtd
KTsKK2ZvbygwKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400423</attachid>
            <date>2020-05-27 19:58:44 -0700</date>
            <delta_ts>2020-05-28 11:08:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212383-20200527195843.patch</filename>
            <type>text/plain</type>
            <size>54469</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZDJlODIyZDViYTZmNmJmMGMyYzg4ZTBjNWM4NzdjNzM1MjM3NTZjLi45Y2QwOWM2YjgwMmI5MmQ2
N2I3MjcwYzBmMjJlMzlkMGJmZTcxNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4OSBAQAorMjAyMC0wNS0yNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBpcyBhIEpT
QXJyYXkgZm9yIEZhc3RBcnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1
ZSB3aGVyZSB3ZSBkaWRuJ3QgY2hlY2sgdGhhdCB0aGUgaXRlcmFibGUgb3BlcmFuZCB0bworICAg
ICAgICBpdGVyYXRvcl9vcGVuIHdhcyBhIEpTQXJyYXkgd2hlbiBsb3dlcmluZyB0aGUgRmFzdEFy
cmF5IG9ubHkgdmFyaWFudCBvZiB0aGUgYnl0ZWNvZGUgdG8gdGhlIERGRy4KKyAgICAgICAgVGhp
cyBtZWFudCB3ZSB3b3VsZCBPU1IgZXhpdCBhdCB0aGUgaXRlcmF0b3JfbmV4dCdzIGxvd2VyaW5n
IHRoZW4gYXNzZXJ0aW9uIGZhaWx1cmUgaW4gdGhlCisgICAgICAgIGNoZWNrcG9pbnQgT1NSIGV4
aXQgaGVscGVyLiBUbyBtYWtlIHRoaXMgd29yaywgdGhpcyBwYXRjaCBleHRlbmRzIChhbmQgcmVu
YW1lcyBmcm9tIENoZWNrU3ViQ2xhc3MpCisgICAgICAgIENoZWNrSlNDYXN0IHRvIHVzZSB0aGUg
c2FtZSBKU1R5cGUgaW5mb3JtYXRpb24gdGhhdCB3ZSB1c2UgZm9yIHRoZSBqc0Nhc3QgZnVuY3Rp
b24uIEluIG9yZGVyIHRvCisgICAgICAgIGdldCB0aGUgSlNUeXBlIHJhbmdlIGZyb20gYSBDbGFz
c0luZm8qIHRoZSBtYWNybyB0aGF0IGF1dG9nZW5lcmF0ZXMgTWV0aG9kVGFibGUgbm93IGFsc28g
ZmlsbHMKKyAgICAgICAgYSBPcHRpb25hbDxKU1R5cGVSYW5nZT4gaW50byB0aGUgQ2xhc3NJbmZv
IGFzIHdlbGwuCisKKyAgICAgICAgTGFzdGx5LCBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8gd2Fz
IG1pc3VzZWQgYnkgQUkuIFRoaXMgcGF0Y2gKKyAgICAgICAgcmVuYW1lcyBpdCB0byBzcGVjdWxh
dGlvbkZyb21DbGFzc0luZm9Jbmhlcml0YW5jZSB0byBiZXR0ZXIKKyAgICAgICAgcmVmbGVjdCBo
b3cgQUkgd2FzIHVzaW5nIGl0LiBUaGUgb25seSBvdGhlciB1c2VyIG9mCisgICAgICAgIHNwZWN1
bGF0aW9uRnJvbUNsYXNzSW5mbyB3YXMgc3BlY3VsYXRpb25Gcm9tU3RydWN0dXJlLiBBbnkgY2Fz
ZQorICAgICAgICB3aGVyZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm9JbnRlcml0YW5jZSB3b3Vs
ZCBkaWZmZXIgZnJvbSB3aGF0IGEKKyAgICAgICAgU3RydWN0dXJlIHdvdWxkIHRlbGwgeW91IGhh
cyBiZWVuIGhvaXN0ZWQgdG8KKyAgICAgICAgc3BlY3VsYXRpb25Gcm9tU3RydWN0dXJlLgorCisg
ICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6dGVzdEJyYW5j
aElmVHlwZSk6CisgICAgICAgIChKU0M6OnRlc3RCcmFuY2hJZk5vdFR5cGUpOgorICAgICAgICAq
IGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcDoKKyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25G
cm9tQ2xhc3NJbmZvSW5oZXJpdGFuY2UpOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21T
dHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8pOiBEZWxl
dGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RWYWx1ZTo6ZmlsdGVyQ2xhc3NJbmZvKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVET01K
SVRHZXR0ZXIpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2Nr
KToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNs
b2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xkaW5nUGhhc2U6OmZvbGRDb25zdGFudHMpOgor
ICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6
CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZp
eHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6YXR0
ZW1wdFRvTWFrZUNhbGxET00pOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVw
Q2hlY2tKU0Nhc3QpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwQ2hlY2tT
dWJDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpOb2RlOjpoYXNDbGFzc0luZm8gY29uc3QpOgorICAgICAgICAqIGRmZy9ERkdOb2Rl
VHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6
CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpz
YWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjaGVja0FycmF5KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSlNDYXN0KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrU3ViQ2xhc3MpOiBEZWxldGVkLgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAg
ICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjpjb21waWxlQ2hlY2tKU0Nhc3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjppc0NlbGxXaXRoVHlwZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmlzVHlwZWRBcnJheVZpZXcpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tTdWJDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgICogaml0
L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5j
aElmVHlwZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RUeXBl
KToKKyAgICAgICAgKiBydW50aW1lL0NsYXNzSW5mby5oOgorICAgICAgICAqIHJ1bnRpbWUvSlND
YXN0Lmg6CisgICAgICAgIChKU0M6OkpTVHlwZVJhbmdlOjpjb250YWlucyBjb25zdCk6CisgICAg
ICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmluaGVyaXRzSlNUeXBlSW1wbCk6CisgICAgICAg
ICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YXNz
ZXJ0VHlwZUluZm9GbGFnSW52YXJpYW50cyk6CisgICAgICAgICogdG9vbHMvSlNEb2xsYXJWTS5j
cHA6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Qp
OgorICAgICAgICAoSlNDOjpKU0RvbGxhclZNOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChK
U0M6OmZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCk6IERlbGV0ZWQuCisK
IDIwMjAtMDUtMjYgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBzb21lIG5ldyBlbWl0dGVycyB0byB0aGUgWDg2XzY0IGFuZCBBUk02NCBNYWNyb0Fzc2VtYmxl
cnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCmluZGV4IDJlNDZhODNmNzgyYjkzZWMzZDgwZjQ2ZjZlMjBmZTY3YTllNDIwYjcuLmU1ZWY5
NzAxMzIzZGFlZWJmMDljMTQ4NDIzMTZhYjBhMDg2ZWUxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMjAtMDUtMjcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgZm9yLW9mIHNob3VsZCBjaGVjayB0aGUgaXRlcmFibGUgaXMgYSBKU0FycmF5IGZvciBG
YXN0QXJyYXkgaW4gREZHIGl0ZXJhdG9yX29wZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjM4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9wdGlvbmFsIHNob3VsZCBiZSBhYmxlIHRvIGNvcHkvbW92
ZSBjb25zdHJ1Y3RvciBpdHNlbGYgYXMgbG9uZyBhcyA8VD4gaXMKKyAgICAgICAgdHJpdmlhbGx5
IGNvcHlhYmxlLiBUaGlzIGxldHMgdXMgY29weSBPcHRpb25hbHMgaW50byBjb25zdCBnbG9iYWxz
IHdpdGhvdXQKKyAgICAgICAgZ2xvYmFsIGNvbnN0cnVjdG9ycy4KKworICAgICAgICAqIHd0Zi9P
cHRpb25hbC5oOgorICAgICAgICAoV1RGOjpPcHRpb25hbDo6T3B0aW9uYWwpOgorICAgICAgICAo
V1RGOjpPcHRpb25hbDo6X19OT0VYQ0VQVF8pOgorCiAyMDIwLTA1LTI2ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVVRGLTggZW5jb2RlIHN0
cmluZ3Mgb2YgaW52YWxpZCBVUkxzIHdoZW4gY29udmVydGluZyBXVEY6OlVSTCB0byBOU1VSTCBp
bnN0ZWFkIG9mIHRydW5jYXRpbmcgdGhlIFVURi0xNiBlbmNvZGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE5
YzUyZjdhNGRhNTRkMGMxZjY1NzU2ZWI2YWI2NzY1YzRhZjUyNGEuLjRjM2M4ZDJkZDhmMTY0OWNm
YzllZGJkNGJhMTllZTczMmIyY2NiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAy
MC0wNS0yNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBmb3Itb2Ygc2hvdWxkIGNoZWNrIHRoZSBpdGVyYWJsZSBpcyBhIEpTQXJyYXkgZm9yIEZhc3RB
cnJheSBpbiBERkcgaXRlcmF0b3Jfb3BlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMzgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIHZhcmlvdXMgSW5oZXJpdHNUcmFpdHMgc3BlY2lhbGl6
YXRpb25zIHRvIGNvbnRhaW4gYSB0eXBlUmFuZ2UgbWVtYmVyLgorICAgICAgICBBbHNvLCBjaGFu
Z2UgdGhlIGluaGVyaXRzIGZ1bmN0aW9uIHRvIHVzZSBpbmhlcml0c0pTVHlwZUltcGwgbGlrZSB0
aGUgSlNDCisgICAgICAgIHZhcmlhbnRzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1
bWVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjpJbmhlcml0c1Ry
YWl0czxXZWJDb3JlOjpKU0RvY3VtZW50Pjo6aW5oZXJpdHMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRWxlbWVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjpJ
bmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0VsZW1lbnQ+Ojppbmhlcml0cyk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxw
ZXJzOjpJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0V2ZW50Pjo6aW5oZXJpdHMpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdI
ZWxwZXJzOjpJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU05vZGU+Ojppbmhlcml0cyk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5l
cmF0ZUhlYWRlcik6CisKIDIwMjAtMDUtMjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgQ2FuJ3Qgc2NydWIgdmlkZW8gb24gaHR0cHM6Ly93d3cuanVkaWNpYXJ5
LnNlbmF0ZS5nb3YKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
dGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5j
cHAKaW5kZXggZDM2OWEwMzdlZjcwMjM1MmViMmU2NWMxYjBhOTJkMDRjMGU5ZWJlNi4uYmVhM2Fm
OGY3OGVlYmM5Mjg2ZGQ3NmE4MWEwNGMxOWI5OGIxNDUzNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKQEAgLTIzNjUsNyArMjM2NSw3IEBAIHN0YXRp
YyB2b2lkIHRlc3RCcmFuY2hJZlR5cGUoKQogCiAgICAgYXV0byBpc1R5cGUgPSBjb21waWxlKFtd
IChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZShqaXQp
OwotICAgICAgICBhdXRvIGlzVHlwZSA9IGppdC5icmFuY2hJZlR5cGUoR1BSSW5mbzo6YXJndW1l
bnRHUFIwLCBKU1R5cGUoRmlyc3RUeXBlZEFycmF5VHlwZSksIEpTVHlwZShMYXN0VHlwZWRBcnJh
eVR5cGVFeGNsdWRpbmdEYXRhVmlldykpOworICAgICAgICBhdXRvIGlzVHlwZSA9IGppdC5icmFu
Y2hJZlR5cGUoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBKU0M6OkpTVHlwZVJhbmdlIHsgSlNUeXBl
KEZpcnN0VHlwZWRBcnJheVR5cGUpLCBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVkaW5n
RGF0YVZpZXcpIH0pOwogICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihmYWxzZSksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKICAgICAgICAgYXV0byBkb25lID0g
aml0Lmp1bXAoKTsKICAgICAgICAgaXNUeXBlLmxpbmsoJmppdCk7CkBAIC0yMzk5LDcgKzIzOTks
NyBAQCBzdGF0aWMgdm9pZCB0ZXN0QnJhbmNoSWZOb3RUeXBlKCkKIAogICAgIGF1dG8gaXNOb3RU
eXBlID0gY29tcGlsZShbXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKICAgICAgICAgZW1pdEZ1bmN0
aW9uUHJvbG9ndWUoaml0KTsKLSAgICAgICAgYXV0byBpc05vdFR5cGUgPSBqaXQuYnJhbmNoSWZO
b3RUeXBlKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgSlNUeXBlKEZpcnN0VHlwZWRBcnJheVR5cGUp
LCBKU1R5cGUoTGFzdFR5cGVkQXJyYXlUeXBlRXhjbHVkaW5nRGF0YVZpZXcpKTsKKyAgICAgICAg
YXV0byBpc05vdFR5cGUgPSBqaXQuYnJhbmNoSWZOb3RUeXBlKEdQUkluZm86OmFyZ3VtZW50R1BS
MCwgSlNDOjpKU1R5cGVSYW5nZSB7IEpTVHlwZShGaXJzdFR5cGVkQXJyYXlUeXBlKSwgSlNUeXBl
KExhc3RUeXBlZEFycmF5VHlwZUV4Y2x1ZGluZ0RhdGFWaWV3KSB9KTsKICAgICAgICAgaml0Lm1v
dmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoZmFsc2UpLCBHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUik7CiAgICAgICAgIGF1dG8gZG9uZSA9IGppdC5qdW1wKCk7CiAgICAgICAgIGlzTm90VHlw
ZS5saW5rKCZqaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1NwZWN1bGF0ZWRUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVj
dWxhdGVkVHlwZS5jcHAKaW5kZXggN2FlOWQ4YzdlNzRhNWFkOGExNjgwODk1MTFmY2Q2ZDg4YTQz
YTZmNy4uMDQ0NjU2MTJhYzYwOTFhOTgxYmVlNWM5MDI0YzJkOWZiZjQxYTZlMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCkBAIC00
MzIsNTYgKzQzMiw3MCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21UeXBlZEFycmF5
VHlwZShUeXBlZEFycmF5VHlwZSB0eXBlKQogICAgIHJldHVybiBTcGVjTm9uZTsKIH0KIAotU3Bl
Y3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKGNvbnN0IENsYXNzSW5mbyogY2xh
c3NJbmZvKQorU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvSW5oZXJpdGFu
Y2UoY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiB7Ci0gICAgaWYgKGNsYXNzSW5mbyA9PSBK
U1N0cmluZzo6aW5mbygpKQotICAgICAgICByZXR1cm4gU3BlY1N0cmluZzsKLQorICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc19maW5hbF92PFN5bWJvbD4pOwogICAgIGlmIChjbGFzc0luZm8gPT0g
U3ltYm9sOjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjU3ltYm9sOwotICAgIAorCisgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNCaWdJbnQ+KTsKICAgICBpZiAoY2xhc3NJ
bmZvID09IEpTQmlnSW50OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjSGVhcEJpZ0ludDsK
IAorICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PEpTRmluYWxPYmplY3Q+KTsKICAg
ICBpZiAoY2xhc3NJbmZvID09IEpTRmluYWxPYmplY3Q6OmluZm8oKSkKICAgICAgICAgcmV0dXJu
IFNwZWNGaW5hbE9iamVjdDsKICAgICAKLSAgICBpZiAoY2xhc3NJbmZvID09IEpTQXJyYXk6Omlu
Zm8oKSkKLSAgICAgICAgcmV0dXJuIFNwZWNBcnJheTsKLSAgICAKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfZmluYWxfdjxEaXJlY3RBcmd1bWVudHM+KTsKICAgICBpZiAoY2xhc3NJbmZvID09
IERpcmVjdEFyZ3VtZW50czo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY0RpcmVjdEFyZ3Vt
ZW50czsKICAgICAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxTY29wZWRBcmd1
bWVudHM+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IFNjb3BlZEFyZ3VtZW50czo6aW5mbygpKQog
ICAgICAgICByZXR1cm4gU3BlY1Njb3BlZEFyZ3VtZW50czsKLSAgICAKLSAgICBpZiAoY2xhc3NJ
bmZvID09IFN0cmluZ09iamVjdDo6aW5mbygpKQotICAgICAgICByZXR1cm4gU3BlY1N0cmluZ09i
amVjdDsKIAorICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PFJlZ0V4cE9iamVjdD4p
OwogICAgIGlmIChjbGFzc0luZm8gPT0gUmVnRXhwT2JqZWN0OjppbmZvKCkpCiAgICAgICAgIHJl
dHVybiBTcGVjUmVnRXhwT2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFs
X3Y8RGF0ZUluc3RhbmNlPik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBEYXRlSW5zdGFuY2U6Omlu
Zm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX2ZpbmFsX3Y8SlNNYXA+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpTTWFwOjpp
bmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjTWFwT2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX2ZpbmFsX3Y8SlNTZXQ+KTsKICAgICBpZiAoY2xhc3NJbmZvID09IEpTU2V0Ojpp
bmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjU2V0T2JqZWN0OwogCisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX2ZpbmFsX3Y8SlNXZWFrTWFwPik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBKU1dl
YWtNYXA6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNXZWFrTWFwT2JqZWN0OwogCisgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8SlNXZWFrU2V0Pik7CiAgICAgaWYgKGNsYXNz
SW5mbyA9PSBKU1dlYWtTZXQ6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNXZWFrU2V0T2Jq
ZWN0OwogCisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsX3Y8UHJveHlPYmplY3Q+KTsK
ICAgICBpZiAoY2xhc3NJbmZvID09IFByb3h5T2JqZWN0OjppbmZvKCkpCiAgICAgICAgIHJldHVy
biBTcGVjUHJveHlPYmplY3Q7CiAKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxK
U0RhdGFWaWV3Pik7CiAgICAgaWYgKGNsYXNzSW5mbyA9PSBKU0RhdGFWaWV3OjppbmZvKCkpCiAg
ICAgICAgIHJldHVybiBTcGVjRGF0YVZpZXdPYmplY3Q7Ci0gICAgCisKKworICAgIGlmIChjbGFz
c0luZm8tPmlzU3ViQ2xhc3NPZihKU1N0cmluZzo6aW5mbygpKSkKKyAgICAgICAgcmV0dXJuIFNw
ZWNTdHJpbmc7CisKKyAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNzT2YoU3RyaW5nT2JqZWN0
OjppbmZvKCkpKQorICAgICAgICByZXR1cm4gU3BlY1N0cmluZ09iamVjdCB8IFNwZWNPYmplY3RP
dGhlcjsKKworICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU0FycmF5OjppbmZvKCkp
KQorICAgICAgICByZXR1cm4gU3BlY0FycmF5IHwgU3BlY0Rlcml2ZWRBcnJheTsKKwogICAgIGlm
IChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU0Z1bmN0aW9uOjppbmZvKCkpKSB7CiAgICAgICAg
IGlmIChjbGFzc0luZm8gPT0gSlNCb3VuZEZ1bmN0aW9uOjppbmZvKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gU3BlY0Z1bmN0aW9uV2l0aE5vbkRlZmF1bHRIYXNJbnN0YW5jZTsKQEAgLTQ5Myw5ICs1
MDcsNiBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY29uc3QgQ2xh
c3NJbmZvKiBjbGFzc0luZm8pCiAgICAgCiAgICAgaWYgKGlzVHlwZWRWaWV3KGNsYXNzSW5mby0+
dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSkKICAgICAgICAgcmV0dXJuIHNwZWN1bGF0aW9uRnJvbVR5
cGVkQXJyYXlUeXBlKGNsYXNzSW5mby0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKTsKLQotICAgIGlm
IChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU0FycmF5OjppbmZvKCkpKQotICAgICAgICByZXR1
cm4gU3BlY0Rlcml2ZWRBcnJheTsKICAgICAKICAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNz
T2YoSlNPYmplY3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiBTcGVjT2JqZWN0T3RoZXI7CkBA
IC01MDUsMTUgKzUxNiwyNyBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21DbGFzc0lu
Zm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAKIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0
aW9uRnJvbVN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKLSAgICBpZiAoc3RydWN0
dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBTdHJpbmdUeXBlKQotICAgICAgICByZXR1cm4gU3Bl
Y1N0cmluZzsKLSAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBTeW1ib2xU
eXBlKQotICAgICAgICByZXR1cm4gU3BlY1N5bWJvbDsKLSAgICBpZiAoc3RydWN0dXJlLT50eXBl
SW5mbygpLnR5cGUoKSA9PSBIZWFwQmlnSW50VHlwZSkKLSAgICAgICAgcmV0dXJuIFNwZWNIZWFw
QmlnSW50OwotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IERlcml2ZWRB
cnJheVR5cGUpCi0gICAgICAgIHJldHVybiBTcGVjRGVyaXZlZEFycmF5OwotICAgIHJldHVybiBz
cGVjdWxhdGlvbkZyb21DbGFzc0luZm8oc3RydWN0dXJlLT5jbGFzc0luZm8oKSk7CisgICAgU3Bl
Y3VsYXRlZFR5cGUgZmlsdGVyZWRSZXN1bHQgPSAoWyZdIHsKKyAgICAgICAgaWYgKHN0cnVjdHVy
ZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gU3RyaW5nVHlwZSkKKyAgICAgICAgICAgIHJldHVybiBT
cGVjU3RyaW5nOworICAgICAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBT
eW1ib2xUeXBlKQorICAgICAgICAgICAgcmV0dXJuIFNwZWNTeW1ib2w7CisgICAgICAgIGlmIChz
dHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IEhlYXBCaWdJbnRUeXBlKQorICAgICAgICAg
ICAgcmV0dXJuIFNwZWNIZWFwQmlnSW50OworICAgICAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5m
bygpLnR5cGUoKSA9PSBEZXJpdmVkQXJyYXlUeXBlKQorICAgICAgICAgICAgcmV0dXJuIFNwZWNE
ZXJpdmVkQXJyYXk7CisgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09
IEFycmF5VHlwZSkKKyAgICAgICAgICAgIHJldHVybiBTcGVjQXJyYXk7CisgICAgICAgIGlmIChz
dHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IFN0cmluZ09iamVjdFR5cGUpCisgICAgICAg
ICAgICByZXR1cm4gU3BlY1N0cmluZ09iamVjdDsKKyAgICAgICAgcmV0dXJuIFNwZWNOb25lOwor
ICAgIH0pKCk7CisKKyAgICBTcGVjdWxhdGVkVHlwZSBjbGFzc0luZm9UeXBlcyA9IHNwZWN1bGF0
aW9uRnJvbUNsYXNzSW5mb0luaGVyaXRhbmNlKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkpOworICAg
IEFTU0VSVCghZmlsdGVyZWRSZXN1bHQgfHwgaXNTdWJ0eXBlU3BlY3VsYXRpb24oZmlsdGVyZWRS
ZXN1bHQsIGNsYXNzSW5mb1R5cGVzKSk7CisKKyAgICAvLyBGYWxsYmFjayB0byB3aGF0IENsYXNz
SW5mbyB0ZWxscyB1cyBpZiB3ZSBkb24ndCBoYXZlIHNvbWV0aGluZyBtb3JlIHJlZmluZWQuCisg
ICAgcmV0dXJuIGZpbHRlcmVkUmVzdWx0ID8gZmlsdGVyZWRSZXN1bHQgOiBjbGFzc0luZm9UeXBl
czsKIH0KIAogU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2VsbChKU0NlbGwqIGNlbGwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCmlu
ZGV4IDdiN2FhMjI1M2NlZTJiMzA5MzYxN2EyYzdhOTFkMmU4NzM3ZTljNTAuLjgzZTY4MzVjZDFj
MWNjOGM1YmZlYWZkMzg2MmQ1ZmQxNTUwNjQ4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC01MjMsNyArNTIzLDEwIEBAIGlubGlu
ZSBib29sIHNwZWN1bGF0aW9uQ2hlY2tlZChTcGVjdWxhdGVkVHlwZSBhY3R1YWwsIFNwZWN1bGF0
ZWRUeXBlIGRlc2lyZWQpCiAgICAgcmV0dXJuIChhY3R1YWwgfCBkZXNpcmVkKSA9PSBkZXNpcmVk
OwogfQogCi1TcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY29uc3QgQ2xh
c3NJbmZvKik7CisvLyBUaGUgU3BlY3VsYXRlZFR5cGUgcmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlv
biBmb3IgYW55IGNlbGwsIGMsIGhhcyB0aGUgZm9sbG93aW5nIGludmFyaWFudDoKKy8vIEFTU0VS
VCghYy0+aW5oZXJpdHMoY2xhc3NJbmZvKSB8fCBzcGVjdWxhdGlvbkNoZWNrZWQoc3BlY3VsYXRp
b25Gcm9tQ2VsbChjKSwgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvSW5oZXJpdGFuY2UoY2xhc3NJ
bmZvKSkpOworU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvSW5oZXJpdGFu
Y2UoY29uc3QgQ2xhc3NJbmZvKik7CisKIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbVN0
cnVjdHVyZShTdHJ1Y3R1cmUqKTsKIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUNlbGwo
SlNDZWxsKik7CiBKU19FWFBPUlRfUFJJVkFURSBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZy
b21WYWx1ZShKU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCA1ZmMxOTgzMDVjZjQ5ZDgw
NzUxNzhkZDE1NTNjZjRlZDg3NWIzMTM0Li5kYzM5NzA2MGEwM2E4ODRiZWQ2NjJjNjY3ZjM0N2Vm
NDY5NGJmYzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0zNTExLDEwICszNTExLDEyIEBAIGJv
b2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3Rz
KHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgICAgICBkaWRGb2xkQ2xvYmJlclN0cnVjdHVy
ZXMoKTsKICAgICAgICAgY2xlYXJGb3JOb2RlKG5vZGUpOyAvLyBUaGUgcmVzdWx0IGlzIG5vdCBh
IEpTIHZhbHVlLgogICAgICAgICBicmVhazsKLSAgICBjYXNlIENoZWNrU3ViQ2xhc3M6IHsKKyAg
ICBjYXNlIENoZWNrSlNDYXN0OiB7CisgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZv
ID0gbm9kZS0+Y2xhc3NJbmZvKCk7CiAgICAgICAgIEpTVmFsdWUgY29uc3RhbnQgPSBmb3JOb2Rl
KG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBpZiAoY29uc3RhbnQpIHsKLSAgICAg
ICAgICAgIGlmIChjb25zdGFudC5pc0NlbGwoKSAmJiBjb25zdGFudC5hc0NlbGwoKS0+aW5oZXJp
dHMobV92bSwgbm9kZS0+Y2xhc3NJbmZvKCkpKSB7CisgICAgICAgICAgICBpZiAoY29uc3RhbnQu
aXNDZWxsKCkgJiYgY29uc3RhbnQuYXNDZWxsKCktPmluaGVyaXRzKG1fdm0sIGNsYXNzSW5mbykp
IHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWNsYXNzSW5mby0+aW5oZXJpdHNKU1R5cGVSYW5n
ZSB8fCBjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UtPmNvbnRhaW5zKGNvbnN0YW50LmFz
Q2VsbCgpLT50eXBlKCkpKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNv
bnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoY29uc3RhbnQpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzUyMywxMCArMzUyNSwxMCBAQCBib29sIEFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25l
ZCBjbG9iYmVyTGltaQogCiAgICAgICAgIEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9kZShu
b2RlLT5jaGlsZDEoKSk7CiAKLSAgICAgICAgaWYgKHZhbHVlLm1fc3RydWN0dXJlLmlzU3ViQ2xh
c3NPZihub2RlLT5jbGFzc0luZm8oKSkpCisgICAgICAgIGlmICh2YWx1ZS5tX3N0cnVjdHVyZS5p
c1N1YkNsYXNzT2YoY2xhc3NJbmZvKSkKICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5
Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogCi0gICAgICAgIGZpbHRlckNsYXNzSW5mbyh2YWx1ZSwg
bm9kZS0+Y2xhc3NJbmZvKCkpOworICAgICAgICBmaWx0ZXJDbGFzc0luZm8odmFsdWUsIGNsYXNz
SW5mbyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIENhbGxET01HZXR0ZXI6IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCmluZGV4
IGVlZTBlNGQ5MjkyZDk5YTFmMjk5MTFlNzI2ZDU1NzhhYmUzN2QwNzEuLjA5NDg5NDc4YjVmMDU2
Mjk2OGY3NDNjMTE1N2I5NWJmMTcyODBjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdFZhbHVlLmNwcApAQCAtMjg2LDcgKzI4Niw3IEBAIEZpbHRyYXRpb25S
ZXN1bHQgQWJzdHJhY3RWYWx1ZTo6ZmlsdGVyQ2xhc3NJbmZvKEdyYXBoJiBncmFwaCwgY29uc3Qg
Q2xhc3NJbmZvKiBjCiAgICAgaWYgKGlzQ2xlYXIoKSkKICAgICAgICAgcmV0dXJuIEZpbHRyYXRp
b25PSzsKIAotICAgIG1fdHlwZSAmPSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY2xhc3NJbmZv
KTsKKyAgICBtX3R5cGUgJj0gc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvSW5oZXJpdGFuY2UoY2xh
c3NJbmZvKTsKICAgICBtX3N0cnVjdHVyZS5maWx0ZXJDbGFzc0luZm8oY2xhc3NJbmZvKTsKIAog
ICAgIG1fc3RydWN0dXJlLmZpbHRlcihtX3R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBjZGVjMTg2ZjE1OTVkMDExMjhiYTAw
MDM0NjFiYmRlM2YyYjA5ZTJlLi43ZDFlNDM2MWNiMzA3ZGIxNGFlYWVlOWQ2MmFkMDQ0ZDZkMzli
OTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcApAQCAtMzg3Miw3ICszODcyLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlRE9N
SklUR2V0dGVyKE9wZXJhbmQgcmVzdWx0LCBjb25zdCBHZXRCeUlkVmFyaWFudCYgdmEKICAgICBh
ZGRUb0dyYXBoKENoZWNrU3RydWN0dXJlLCBPcEluZm8obV9ncmFwaC5hZGRTdHJ1Y3R1cmVTZXQo
dmFyaWFudC5zdHJ1Y3R1cmVTZXQoKSkpLCB0aGlzTm9kZSk7CiAgICAgCiAgICAgLy8gV2UgZG8g
bm90IG5lZWQgdG8gZW1pdCBDaGVja0lzQ29uc3RhbnQgdGhpbmd5IGhlcmUuIFdoZW4gdGhlIGN1
c3RvbSBhY2Nlc3NvciBpcyByZXBsYWNlZCB0byBkaWZmZXJlbnQgb25lLCBTdHJ1Y3R1cmUgdHJh
bnNpdGlvbiBvY2N1cnMuCi0gICAgYWRkVG9HcmFwaChDaGVja1N1YkNsYXNzLCBPcEluZm8oZG9t
QXR0cmlidXRlLT5jbGFzc0luZm8pLCB0aGlzTm9kZSk7CisgICAgYWRkVG9HcmFwaChDaGVja0pT
Q2FzdCwgT3BJbmZvKGRvbUF0dHJpYnV0ZS0+Y2xhc3NJbmZvKSwgdGhpc05vZGUpOwogICAgIAog
ICAgIGJvb2wgd2FzU2VlbkluSklUID0gdHJ1ZTsKICAgICBHZXRCeVN0YXR1cyogc3RhdHVzID0g
bV9ncmFwaC5tX3BsYW4ucmVjb3JkZWRTdGF0dXNlcygpLmFkZEdldEJ5U3RhdHVzKGN1cnJlbnRD
b2RlT3JpZ2luKCksIEdldEJ5U3RhdHVzKEdldEJ5U3RhdHVzOjpDdXN0b20sIHdhc1NlZW5JbkpJ
VCkpOwpAQCAtNjc0MSw5ICs2NzQxLDEwIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxv
Y2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShn
bG9iYWxPYmplY3QtPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbkNvbmN1cnJlbnRseSgpLCAiVGhl
IG9ubHkgd2F5IHdlIGNvdWxkIGhhdmUgc2VlbiBGYXN0QXJyYXkgaXMgaWYgd2Ugc2F3IHRoaXMg
ZnVuY3Rpb24gaW4gdGhlIExMSW50L0Jhc2VsaW5lIHNvIHRoZSBpdGVyYXRvciBmdW5jdGlvbiBz
aG91bGQgYmUgYWxsb2NhdGVkLiIpOwogICAgICAgICAgICAgICAgIEZyb3plblZhbHVlKiBmcm96
ZW5TeW1ib2xJdGVyYXRvckZ1bmN0aW9uID0gbV9ncmFwaC5mcmVlemUoZ2xvYmFsT2JqZWN0LT5h
cnJheVByb3RvVmFsdWVzRnVuY3Rpb25Db25jdXJyZW50bHkoKSk7CiAgICAgICAgICAgICAgICAg
bnVtYmVyT2ZSZW1haW5pbmdNb2Rlcy0tOwotICAgICAgICAgICAgICAgIGlmICghbnVtYmVyT2ZS
ZW1haW5pbmdNb2RlcykKKyAgICAgICAgICAgICAgICBpZiAoIW51bWJlck9mUmVtYWluaW5nTW9k
ZXMpIHsKICAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja0lzQ29uc3RhbnQsIE9w
SW5mbyhmcm96ZW5TeW1ib2xJdGVyYXRvckZ1bmN0aW9uKSwgc3ltYm9sSXRlcmF0b3IpOwotICAg
ICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNr
SlNDYXN0LCBPcEluZm8oSlNBcnJheTo6aW5mbygpKSwgZ2V0KGJ5dGVjb2RlLm1faXRlcmFibGUp
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBCYXNpY0Js
b2NrKiBmYXN0QXJyYXlCbG9jayA9IGFsbG9jYXRlVW50YXJnZXRhYmxlQmxvY2soKTsKICAgICAg
ICAgICAgICAgICAgICAgZ2VuZXJpY0Jsb2NrID0gYWxsb2NhdGVVbnRhcmdldGFibGVCbG9jaygp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDA0MDFh
YzFlMzZmYjc2ODBjNzJlYjdkNjg0YWFlNjg2MTk5ZWQxYmYuLjM1MWVjMmQ0NzY5Mzk3Y2IwOTlh
YzM5MjgwYjRlYzlkMzI1NDk2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oCkBAIC0xMTgwLDcgKzExODAsNyBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdy
YXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQog
ICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEJ1dHRlcmZseUxvYywgSlNPYmplY3RfYnV0dGVyZmx5
LCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgY2FzZSBDaGVja1N1YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAgICAgICAgIGRl
ZihQdXJlVmFsdWUobm9kZSwgbm9kZS0+Y2xhc3NJbmZvKCkpKTsKICAgICAgICAgcmV0dXJuOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGlu
Z1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5n
UGhhc2UuY3BwCmluZGV4IDJkY2VlYmExMTA4OWRhMmU3MGQzN2NiZmU2YTUzYzlmNWY3MjNmMTgu
LmFmMWQ0NDAwOGQ4NzI4YzdkNTcxNzJhOWEwNWRkZjUyNWViZmJmM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBA
IC0xOTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgY2FzZSBDaGVja1N1YkNsYXNzOiB7CisgICAgICAgICAg
ICBjYXNlIENoZWNrSlNDYXN0OiB7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBjb25zdGFudCA9
IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAg
ICBpZiAoY29uc3RhbnQpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnN0YW50LmlzQ2Vs
bCgpICYmIGNvbnN0YW50LmFzQ2VsbCgpLT5pbmhlcml0cyhtX2dyYXBoLm1fdm0sIG5vZGUtPmNs
YXNzSW5mbygpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
b2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4
IDRlZGJiMWY1ZmE0YWQ2NWY2MzFlNzhmYWQ0ZmM1MjAzMTk3OWM2ZmUuLjY5YzUwMTBlOWEzMDJk
NWJlMmM0MjAzMWQ0NmFmNTg1MWY5NTlmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0RvZXNHQy5jcHAKQEAgLTExNCw3ICsxMTQsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgs
IE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZUltbWVkaWF0ZToKICAgICBjYXNl
IEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgY2FzZSBDaGVja1N1
YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAgICAgY2FzZSBDaGVja0FycmF5OgogICAg
IGNhc2UgQ2hlY2tBcnJheU9yRW1wdHk6CiAgICAgY2FzZSBDaGVja05ldXRlcmVkOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggNTg1MmZjMWI2MDhl
MDAxOTJlMWMwMjUyZjc5NDM1ZDYxYjUwNTVkNC4uMzAwZDk1YzRkMDk5Y2Y5MDc2NTIyYmU5MTJk
ZTk4ZGYwY2UyZjUxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCkBAIC0yNTQxLDggKzI1NDEsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIAotICAgICAgICBjYXNlIENoZWNrU3ViQ2xhc3M6IHsKLSAgICAgICAgICAg
IGZpeHVwQ2hlY2tTdWJDbGFzcyhub2RlKTsKKyAgICAgICAgY2FzZSBDaGVja0pTQ2FzdDogewor
ICAgICAgICAgICAgZml4dXBDaGVja0pTQ2FzdChub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAKQEAgLTQwMzUsMTQgKzQwMzUsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgfQog
CiAgICAgICAgIE5vZGUqIHRoaXNOb2RlID0gbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKS5u
b2RlKCk7Ci0gICAgICAgIE5vZGUqIGNoZWNrU3ViQ2xhc3MgPSBtX2luc2VydGlvblNldC5pbnNl
cnROb2RlKG1faW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgQ2hlY2tTdWJDbGFzcywgbm9kZS0+b3Jp
Z2luLCBPcEluZm8oc2lnbmF0dXJlLT5jbGFzc0luZm8pLCBFZGdlKHRoaXNOb2RlKSk7CisgICAg
ICAgIE5vZGUqIGNoZWNrU3ViQ2xhc3MgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKG1faW5k
ZXhJbkJsb2NrLCBTcGVjTm9uZSwgQ2hlY2tKU0Nhc3QsIG5vZGUtPm9yaWdpbiwgT3BJbmZvKHNp
Z25hdHVyZS0+Y2xhc3NJbmZvKSwgRWRnZSh0aGlzTm9kZSkpOwogICAgICAgICBub2RlLT5jb252
ZXJ0VG9DYWxsRE9NKG1fZ3JhcGgpOwotICAgICAgICBmaXh1cENoZWNrU3ViQ2xhc3MoY2hlY2tT
dWJDbGFzcyk7CisgICAgICAgIGZpeHVwQ2hlY2tKU0Nhc3QoY2hlY2tTdWJDbGFzcyk7CiAgICAg
ICAgIGZpeHVwQ2FsbERPTShub2RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0g
ICAgdm9pZCBmaXh1cENoZWNrU3ViQ2xhc3MoTm9kZSogbm9kZSkKKyAgICB2b2lkIGZpeHVwQ2hl
Y2tKU0Nhc3QoTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXgg
ZDBhY2EwMWQzZGUwNzY5MmUyZWMyNjk5NGI2ZDE4NTVmZDFjNjAwMi4uMjI0NzM3NjVmYjdmYWEy
MmJmYjI3NWY5Yzc1ZDRlZmEyN2NlY2JkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmgKQEAgLTI5NDUsNyArMjk0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzQ2xhc3NJbmZv
KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBvcCgpID09IENoZWNrU3ViQ2xhc3M7Cisg
ICAgICAgIHJldHVybiBvcCgpID09IENoZWNrSlNDYXN0OwogICAgIH0KIAogICAgIGNvbnN0IENs
YXNzSW5mbyogY2xhc3NJbmZvKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUu
aAppbmRleCA0M2I1M2U2YTk0ZWM2ZWE5YzIyMDMzM2M3MjRiY2RmY2Y5Y2NlYjgwLi40Nzg5NjI4
NjI2NzY2NmM1ZGY0YTg5ODYwY2U2OGFjMjE4MDE5YTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yODAsNyArMjgwLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBERkcgewogICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUg
fCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVzdEdlbmVyYXRl
KSBcCiAgICAgbWFjcm8oQ2hlY2tUeXBlSW5mb0ZsYWdzLCBOb2RlTXVzdEdlbmVyYXRlKSAvKiBU
YWtlcyBhbiBPcEluZm8gd2l0aCB0aGUgZmxhZ3MgeW91IHdhbnQgdG8gdGVzdCBhcmUgc2V0ICov
XAotICAgIG1hY3JvKENoZWNrU3ViQ2xhc3MsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNy
byhDaGVja0pTQ2FzdCwgTm9kZU11c3RHZW5lcmF0ZSkgLyogVGhpcyBpcyB0aGUgc2FtZSBhcyBq
c0Nhc3QgYnV0IGFzIGEgc3BlY3VsYXRpb24gcmF0aGVyIHRoYW4gYXNzZXJ0aW9uICovXAogICAg
IG1hY3JvKFBhcnNlSW50LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpTKSBcCiAgICAg
bWFjcm8oR2V0UHJvdG90eXBlT2YsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0SlMpIFwK
ICAgICBtYWNybyhPYmplY3RDcmVhdGUsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0SlMp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggZjgwZmE4NjY0NGNlMzdlMTFkMTU1NDgzODYx
Y2FkYjdmNTAyZWI5Zi4uM2RiMGRkMzYyMzliNTk0MTFlZDY0NTRhZTE4ZTk5ZjAxODFiMjc2NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTEwNjAsNyArMTA2MCw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2UgQ2hlY2tTdWJDbGFz
czoKKyAgICAgICAgY2FzZSBDaGVja0pTQ2FzdDoKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAg
ICAgIGNhc2UgU2tpcFNjb3BlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaAppbmRleCBiM2E4MDllNzJhNDUxMDNiMDQwZDkwZjI2YTQ0MTE4MzRiZTk2NjA5
Li42NzA3OGZlODk0ZmIyOTY0Y2Q3N2JhYzIyYjAxZGQzNDY5NjcxODZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtMjM0LDcgKzIzNCw3IEBA
IGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSwgYm9vbCBpZ25vCiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgIGNh
c2UgQ2FsbERPTUdldHRlcjoKICAgICBjYXNlIENhbGxET006Ci0gICAgY2FzZSBDaGVja1N1YkNs
YXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAgICAgY2FzZSBDaGVja0FycmF5OgogICAgIGNh
c2UgQ2hlY2tBcnJheU9yRW1wdHk6CiAgICAgY2FzZSBHZXRTY29wZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggM2QyMjVkY2EyZDhi
ODA3Yzc4ZjIzMjdhYzIzZDgxNzFlN2YwZjIyOS4uZGVmMDM3ZGM1Y2NmMWMzNmUwNjBkZmZiM2E0
ZGI1N2FiNzYyNmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
aGVja0FycmF5KE5vZGUqIG5vZGUpCiAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbm9kZSwg
YXJyYXlNb2RlLmlzU29tZVR5cGVkQXJyYXlWaWV3KCkpOwogCiAgICAgICAgIGlmIChhcnJheU1v
ZGUudHlwZSgpID09IEFycmF5OjpBbnlUeXBlZEFycmF5KQotICAgICAgICAgICAgc3BlY3VsYXRp
b25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChiYXNlUmVnKSwgbnVs
bHB0ciwgbV9qaXQuYnJhbmNoSWZOb3RUeXBlKGJhc2VSZWcsIEpTVHlwZShGaXJzdFR5cGVkQXJy
YXlUeXBlKSwgSlNUeXBlKExhc3RUeXBlZEFycmF5VHlwZUV4Y2x1ZGluZ0RhdGFWaWV3KSkpOwor
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlU291cmNlOjp1bmJv
eGVkQ2VsbChiYXNlUmVnKSwgbnVsbHB0ciwgbV9qaXQuYnJhbmNoSWZOb3RUeXBlKGJhc2VSZWcs
IEpTVHlwZVJhbmdlIHsgSlNUeXBlKEZpcnN0VHlwZWRBcnJheVR5cGUpLCBKU1R5cGUoTGFzdFR5
cGVkQXJyYXlUeXBlRXhjbHVkaW5nRGF0YVZpZXcpIH0pKTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgc3BlY3VsYXRlQ2VsbFR5cGVXaXRob3V0VHlwZUZpbHRlcmluZyhub2RlLT5jaGlsZDEo
KSwgYmFzZVJlZywgdHlwZUZvclR5cGVkQXJyYXlUeXBlKGFycmF5TW9kZS50eXBlZEFycmF5VHlw
ZSgpKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtOTk5OSw5ICs5OTk5LDE5IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVDYWxsRE9NR2V0dGVyKE5vZGUqIG5vZGUpCiAgICAganNWYWx1ZVJl
c3VsdChyZXN1bHQucmVncygpLCBub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUNoZWNrU3ViQ2xhc3MoTm9kZSogbm9kZSkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVDaGVja0pTQ2FzdChOb2RlKiBub2RlKQogewogICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJ
bmZvID0gbm9kZS0+Y2xhc3NJbmZvKCk7CisgICAgaWYgKGNsYXNzSW5mby0+aW5oZXJpdHNKU1R5
cGVSYW5nZSkgeworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworCisgICAg
ICAgIGF1dG8gY2hlY2tGYWlsZWQgPSBtX2ppdC5icmFuY2hJZk5vdFR5cGUoYmFzZUdQUiwgY2xh
c3NJbmZvLT5pbmhlcml0c0pTVHlwZVJhbmdlLnZhbHVlKCkpOworICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGJhc2VHUFIpLCBub2Rl
LT5jaGlsZDEoKSwgY2hlY2tGYWlsZWQpOworICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICghY2xhc3NJbmZvLT5jaGVja1N1YkNsYXNzU25p
cHBldCkgewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IG90aGVyKHRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IGFjYmIwM2NmZWI4MDhl
MjgwMjVhMmNmOWU4ZDEzZGJiNWFmNjk3YzkuLmQ5MzQ2YzY3YjhjZTMzM2I0MDE4ZTQ5NWJiOTBl
ODBmNmM0YzkxYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmgKQEAgLTEyNDYsNyArMTI0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVH
ZXRCdXR0ZXJmbHkoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNhbGxET01HZXR0ZXIoTm9kZSop
OwogICAgIHZvaWQgY29tcGlsZUNhbGxET00oTm9kZSopOwotICAgIHZvaWQgY29tcGlsZUNoZWNr
U3ViQ2xhc3MoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUNoZWNrSlNDYXN0KE5vZGUqKTsKICAg
ICB2b2lkIGNvbXBpbGVOb3JtYWxpemVNYXBLZXkoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdl
dE1hcEJ1Y2tldEhlYWQoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldE1hcEJ1Y2tldE5leHQo
Tm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKaW5kZXggMTlkMGUyOGE0ZTc0ZWFiMGI5ZTM4YTkxOTdhMzM5MmY4YWQ4
ZDEzNC4uYTNjMDU5MTUzNWI3ODkzZTA4ZDAwNTVkNmIyZjE2ODlhMjQ0Njc1MyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CkBAIC00MTc0LDggKzQxNzQsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgICAgIGNvbXBpbGVDYWxsRE9NR2V0dGVyKG5vZGUpOwogICAgICAgICBicmVh
azsKIAotICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKLSAgICAgICAgY29tcGlsZUNoZWNrU3ViQ2xh
c3Mobm9kZSk7CisgICAgY2FzZSBDaGVja0pTQ2FzdDoKKyAgICAgICAgY29tcGlsZUNoZWNrSlND
YXN0KG5vZGUpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgVW5yZWFjaGFibGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRl
eCA0ZDI2ZDM1NmI2ZjE2NzVmNzM1YjNjNTA2NTE2N2MzMjFmNGY5OGUzLi4xNDc1NDFhM2I5ZDE5
MmU1MDE3MWE5OGI2YmQzMGVlMWVhMjlkZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTUwNDYsOCArNTA0Niw4IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZUNh
bGxET01HZXR0ZXIobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBDaGVja1N1YkNs
YXNzOgotICAgICAgICBjb21waWxlQ2hlY2tTdWJDbGFzcyhub2RlKTsKKyAgICBjYXNlIENoZWNr
SlNDYXN0OgorICAgICAgICBjb21waWxlQ2hlY2tKU0Nhc3Qobm9kZSk7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBFeHRyYWN0Q2F0Y2hMb2NhbDogewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGM1YTE2MDE0YjMwOTJkNTg1ODg2N2Ew
ZTNiMTc0NTcxODgxZmM2NjcuLmE0Zjk3ZDQ2MGIxODJjOGU0NTE0NDMzMDIyMGEyYzkyMWY5MzAx
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAK
QEAgLTM2Myw3ICszNjMsNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICBjYXNlIFRvTG93ZXJDYXNlOgogICAgIGNhc2UgTnVtYmVyVG9TdHJpbmdX
aXRoUmFkaXg6CiAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQ6
Ci0gICAgY2FzZSBDaGVja1N1YkNsYXNzOgorICAgIGNhc2UgQ2hlY2tKU0Nhc3Q6CiAgICAgY2Fz
ZSBDYWxsRE9NOgogICAgIGNhc2UgQ2FsbERPTUdldHRlcjoKICAgICBjYXNlIEFycmF5U2xpY2U6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXgg
ZmI3ZmNlZWNiNDVjYjc5ZDk3MWI1MDM5ZjQwNjM2OGQzMzI0MTNmZi4uNDM2YmIyMTM5Zjg3MWY3
NTkwMmRjMTAyZWMxNTU3MGU3YmEwYjcyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTU4Niw4ICsxNTg2LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3RhbnQ6CiAgICAgICAg
ICAgICBjb21waWxlTnVtYmVyVG9TdHJpbmdXaXRoVmFsaWRSYWRpeENvbnN0YW50KCk7CiAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDaGVja1N1YkNsYXNzOgotICAgICAgICAgICAg
Y29tcGlsZUNoZWNrU3ViQ2xhc3MoKTsKKyAgICAgICAgY2FzZSBDaGVja0pTQ2FzdDoKKyAgICAg
ICAgICAgIGNvbXBpbGVDaGVja0pTQ2FzdCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQ2FsbERPTToKICAgICAgICAgICAgIGNvbXBpbGVDYWxsRE9NKCk7CkBAIC0xMzkzMSwx
MSArMTM5MzEsMTggQEAgcHJpdmF0ZToKICAgICAgICAgY3Jhc2goKTsKICAgICB9CiAKLSAgICB2
b2lkIGNvbXBpbGVDaGVja1N1YkNsYXNzKCkKKyAgICB2b2lkIGNvbXBpbGVDaGVja0pTQ2FzdCgp
CiAgICAgewogICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7
CiAKICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8gPSBtX25vZGUtPmNsYXNzSW5m
bygpOworCisgICAgICAgIGlmIChjbGFzc0luZm8tPmluaGVyaXRzSlNUeXBlUmFuZ2UpIHsKKyAg
ICAgICAgICAgIExWYWx1ZSBoYXNUeXBlID0gaXNDZWxsV2l0aFR5cGUoY2VsbCwgY2xhc3NJbmZv
LT5pbmhlcml0c0pTVHlwZVJhbmdlLnZhbHVlKCksIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mb0lu
aGVyaXRhbmNlKGNsYXNzSW5mbykpOworICAgICAgICAgICAgc3BlY3VsYXRlKEJhZFR5cGUsIGpz
VmFsdWVWYWx1ZShjZWxsKSwgbV9ub2RlLT5jaGlsZDEoKS5ub2RlKCksIG1fb3V0LmJpdE5vdCho
YXNUeXBlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBpZiAo
IWNsYXNzSW5mby0+Y2hlY2tTdWJDbGFzc1NuaXBwZXQpIHsKICAgICAgICAgICAgIExCYXNpY0Js
b2NrIGxvb3AgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgcGFy
ZW50Q2xhc3MgPSBtX291dC5uZXdCbG9jaygpOwpAQCAtMTc3MDAsMjcgKzE3NzA3LDMzIEBAIHBy
aXZhdGU6CiAgICAgICAgIGpzVmFsdWVUb1N0cmljdEludDUyKGVkZ2UsIGxvd0pTVmFsdWUoZWRn
ZSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKSk7CiAgICAgfQogCi0gICAgTFZhbHVlIGlzQ2Vs
bFdpdGhUeXBlKExWYWx1ZSBjZWxsLCBKU1R5cGUgcXVlcmllZFR5cGUsIE9wdGlvbmFsPFNwZWN1
bGF0ZWRUeXBlPiBzcGVjdWxhdGVkVHlwZUZvclF1ZXJ5LCBTcGVjdWxhdGVkVHlwZSB0eXBlID0g
U3BlY0Z1bGxUb3ApCisgICAgTFZhbHVlIGlzQ2VsbFdpdGhUeXBlKExWYWx1ZSBjZWxsLCBKU1R5
cGVSYW5nZSBxdWVyaWVkVHlwZVJhbmdlLCBPcHRpb25hbDxTcGVjdWxhdGVkVHlwZT4gc3BlY3Vs
YXRlZFR5cGVGb3JRdWVyeSwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQogICAg
IHsKICAgICAgICAgaWYgKHNwZWN1bGF0ZWRUeXBlRm9yUXVlcnkpIHsKICAgICAgICAgICAgIGlm
IChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIHNwZWN1bGF0
ZWRUeXBlRm9yUXVlcnkudmFsdWUoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsK
ICAgICAgICAgfQotICAgICAgICByZXR1cm4gbV9vdXQuZXF1YWwoCisgICAgICAgIGlmIChxdWVy
aWVkVHlwZVJhbmdlLmZpcnN0ID09IHF1ZXJpZWRUeXBlUmFuZ2UubGFzdCkgeworICAgICAgICAg
ICAgcmV0dXJuIG1fb3V0LmVxdWFsKAorICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4
dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCisgICAgICAgICAgICAgICAg
bV9vdXQuY29uc3RJbnQzMihxdWVyaWVkVHlwZVJhbmdlLmZpcnN0KSk7CisgICAgICAgIH0KKwor
ICAgICAgICBBU1NFUlQocXVlcmllZFR5cGVSYW5nZS5sYXN0ID4gcXVlcmllZFR5cGVSYW5nZS5m
aXJzdCk7CisgICAgICAgIExWYWx1ZSBmaXJzdCA9IG1fb3V0LnN1YigKICAgICAgICAgICAgIG1f
b3V0LmxvYWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCi0g
ICAgICAgICAgICBtX291dC5jb25zdEludDMyKHF1ZXJpZWRUeXBlKSk7CisgICAgICAgICAgICBt
X291dC5jb25zdEludDMyKHF1ZXJpZWRUeXBlUmFuZ2UuZmlyc3QpKTsKKyAgICAgICAgcmV0dXJu
IG1fb3V0LmJlbG93T3JFcXVhbChmaXJzdCwgbV9vdXQuY29uc3RJbnQzMihxdWVyaWVkVHlwZVJh
bmdlLmxhc3QgLSBxdWVyaWVkVHlwZVJhbmdlLmZpcnN0KSk7CisgICAgfQorCisgICAgTFZhbHVl
IGlzQ2VsbFdpdGhUeXBlKExWYWx1ZSBjZWxsLCBKU1R5cGUgcXVlcmllZFR5cGUsIE9wdGlvbmFs
PFNwZWN1bGF0ZWRUeXBlPiBzcGVjdWxhdGVkVHlwZUZvclF1ZXJ5LCBTcGVjdWxhdGVkVHlwZSB0
eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgeworICAgICAgICByZXR1cm4gaXNDZWxsV2l0aFR5cGUo
Y2VsbCwgSlNUeXBlUmFuZ2UgeyBxdWVyaWVkVHlwZSwgcXVlcmllZFR5cGUgfSwgc3BlY3VsYXRl
ZFR5cGVGb3JRdWVyeSwgdHlwZSk7CiAgICAgfQogCiAgICAgTFZhbHVlIGlzVHlwZWRBcnJheVZp
ZXcoTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKICAgICB7
Ci0gICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0Nl
bGwsIFNwZWNUeXBlZEFycmF5VmlldykpCi0gICAgICAgICAgICByZXR1cm4gcHJvdmVuOwotICAg
ICAgICBMVmFsdWUganNUeXBlID0gbV9vdXQuc3ViKAotICAgICAgICAgICAgbV9vdXQubG9hZDha
ZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKLSAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50MzIoRmlyc3RUeXBlZEFycmF5VHlwZSkpOwotICAgICAgICByZXR1cm4g
bV9vdXQuYmVsb3coCi0gICAgICAgICAgICBqc1R5cGUsCi0gICAgICAgICAgICBtX291dC5jb25z
dEludDMyKE51bWJlck9mVHlwZWRBcnJheVR5cGVzRXhjbHVkaW5nRGF0YVZpZXcpKTsKKyAgICAg
ICAgcmV0dXJuIGlzQ2VsbFdpdGhUeXBlKGNlbGwsIEpTVHlwZVJhbmdlIHsgc3RhdGljX2Nhc3Q8
SlNUeXBlPihGaXJzdFR5cGVkQXJyYXlUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihMYXN0VHlw
ZWRBcnJheVR5cGVFeGNsdWRpbmdEYXRhVmlldykgfSwgU3BlY1R5cGVkQXJyYXlWaWV3LCB0eXBl
KTsKICAgICB9CiAgICAgCiAgICAgTFZhbHVlIGlzT2JqZWN0KExWYWx1ZSBjZWxsLCBTcGVjdWxh
dGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaAppbmRleCAxMDY0MTRjYmJkNGIzMWUyOTE3YmY5N2M2MTUyZmNiYzU2
MGE1N2RkLi41YTMwMmRjNWUyNjFjYzY5NWY1YTMyZTZiYWMzZmM0ZDE4NzRkMjhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTk4MSwzMCArOTgx
LDM4IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiAgICAgLy8gTm90ZSB0aGF0IGZpcnN0IGFuZCBs
YXN0IGFyZSBpbmNsdXNpdmUuCi0gICAgSnVtcCBicmFuY2hJZlR5cGUoR1BSUmVnIGNlbGxHUFIs
IEpTVHlwZSBmaXJzdCwgT3B0aW9uYWw8SlNUeXBlPiBsYXN0ID0gV1RGOjpudWxsb3B0KQotICAg
IHsKLSAgICAgICAgaWYgKGxhc3QgJiYgKmxhc3QgIT0gZmlyc3QpIHsKLSAgICAgICAgICAgIEFT
U0VSVCgqbGFzdCA+IGZpcnN0KTsKLSAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gc2NyYXRj
aFJlZ2lzdGVyKCk7Ci0gICAgICAgICAgICBsb2FkOChBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6
dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBzY3JhdGNoKTsKLSAgICAgICAgICAgIHN1YjMyKFRydXN0
ZWRJbW0zMihmaXJzdCksIHNjcmF0Y2gpOwotICAgICAgICAgICAgcmV0dXJuIGJyYW5jaDMyKEJl
bG93T3JFcXVhbCwgc2NyYXRjaCwgVHJ1c3RlZEltbTMyKCpsYXN0IC0gZmlyc3QpKTsKLSAgICAg
ICAgfQorICAgIEp1bXAgYnJhbmNoSWZUeXBlKEdQUlJlZyBjZWxsR1BSLCBKU1R5cGVSYW5nZSBy
YW5nZSkKKyAgICB7CisgICAgICAgIGlmIChyYW5nZS5sYXN0ID09IHJhbmdlLmZpcnN0KQorICAg
ICAgICAgICAgcmV0dXJuIGJyYW5jaDgoRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0
eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihyYW5nZS5maXJzdCkpOwogCi0gICAg
ICAgIHJldHVybiBicmFuY2g4KEVxdWFsLCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUlu
Zm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoZmlyc3QpKTsKKyAgICAgICAgQVNTRVJUKHJh
bmdlLmxhc3QgPiByYW5nZS5maXJzdCk7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gc2NyYXRj
aFJlZ2lzdGVyKCk7CisgICAgICAgIGxvYWQ4KEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBl
SW5mb1R5cGVPZmZzZXQoKSksIHNjcmF0Y2gpOworICAgICAgICBzdWIzMihUcnVzdGVkSW1tMzIo
cmFuZ2UuZmlyc3QpLCBzY3JhdGNoKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKEJlbG93T3JF
cXVhbCwgc2NyYXRjaCwgVHJ1c3RlZEltbTMyKHJhbmdlLmxhc3QgLSByYW5nZS5maXJzdCkpOwog
ICAgIH0KIAotICAgIEp1bXAgYnJhbmNoSWZOb3RUeXBlKEdQUlJlZyBjZWxsR1BSLCBKU1R5cGUg
Zmlyc3QsIE9wdGlvbmFsPEpTVHlwZT4gbGFzdCA9IFdURjo6bnVsbG9wdCkKKyAgICBKdW1wIGJy
YW5jaElmVHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIHR5cGUpCiAgICAgewotICAgICAgICBp
ZiAobGFzdCAmJiAqbGFzdCAhPSBmaXJzdCkgewotICAgICAgICAgICAgQVNTRVJUKCpsYXN0ID4g
Zmlyc3QpOwotICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBzY3JhdGNoUmVnaXN0ZXIoKTsK
LSAgICAgICAgICAgIGxvYWQ4KEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVP
ZmZzZXQoKSksIHNjcmF0Y2gpOwotICAgICAgICAgICAgc3ViMzIoVHJ1c3RlZEltbTMyKGZpcnN0
KSwgc2NyYXRjaCk7Ci0gICAgICAgICAgICByZXR1cm4gYnJhbmNoMzIoQWJvdmUsIHNjcmF0Y2gs
IFRydXN0ZWRJbW0zMigqbGFzdCAtIGZpcnN0KSk7Ci0gICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IGJyYW5jaElmVHlwZShjZWxsR1BSLCBKU1R5cGVSYW5nZSB7IHR5cGUsIHR5cGUgfSk7CisgICAg
fQogCi0gICAgICAgIHJldHVybiBicmFuY2g4KE5vdEVxdWFsLCBBZGRyZXNzKGNlbGxHUFIsIEpT
Q2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoZmlyc3QpKTsKKyAgICBK
dW1wIGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlUmFuZ2UgcmFuZ2UpCisg
ICAgeworICAgICAgICBpZiAocmFuZ2UubGFzdCA9PSByYW5nZS5maXJzdCkKKyAgICAgICAgICAg
IHJldHVybiBicmFuY2g4KE5vdEVxdWFsLCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUlu
Zm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIocmFuZ2UuZmlyc3QpKTsKKworICAgICAgICBB
U1NFUlQocmFuZ2UubGFzdCA+IHJhbmdlLmZpcnN0KTsKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2gg
PSBzY3JhdGNoUmVnaXN0ZXIoKTsKKyAgICAgICAgbG9hZDgoQWRkcmVzcyhjZWxsR1BSLCBKU0Nl
bGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgc2NyYXRjaCk7CisgICAgICAgIHN1YjMyKFRydXN0
ZWRJbW0zMihyYW5nZS5maXJzdCksIHNjcmF0Y2gpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIo
QWJvdmUsIHNjcmF0Y2gsIFRydXN0ZWRJbW0zMihyYW5nZS5sYXN0IC0gcmFuZ2UuZmlyc3QpKTsK
KyAgICB9CisKKyAgICBKdW1wIGJyYW5jaElmTm90VHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBl
IHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoSWZOb3RUeXBlKGNlbGxHUFIsIEpT
VHlwZVJhbmdlIHsgdHlwZSwgdHlwZSB9KTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogcmVuYW1l
IHRoZXNlIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGV5IHJlcXVpcmUgdGhlaXIgaW5wdXQgdG8g
YmUgYSBjZWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xh
c3NJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaAppbmRl
eCBiMzJjOGZkYjVkNzY2ZDcwYmZlMWYwMDIxYWYyNjk2NjJlZTMyODU5Li4xMjM2ODEyMGQ0N2Ji
Zjk5M2JkZmJmY2Q1ZmJmYjA1NGY4ODdmMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DbGFzc0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DbGFzc0luZm8uaApAQCAtMTUxLDcgKzE1MSw5IEBAIHN0cnVjdCBNZXRob2RUYWJsZSB7
CiAKICNkZWZpbmUgSEFTX01FTUJFUl9OQU1FRChrbGFzcywgbmFtZSkgKE1lbWJlckNoZWNrIyNu
YW1lPGtsYXNzPjo6aGFzKQogCi0jZGVmaW5lIENSRUFURV9NRVRIT0RfVEFCTEUoQ2xhc3NOYW1l
KSB7IFwKKyNkZWZpbmUgQ1JFQVRFX01FVEhPRF9UQUJMRShDbGFzc05hbWUpIFwKKyAgICBKU0Nh
c3RpbmdIZWxwZXJzOjpJbmhlcml0c1RyYWl0czxDbGFzc05hbWU+Ojp0eXBlUmFuZ2UsIFwKKyAg
ICB7IFwKICAgICAgICAgJkNsYXNzTmFtZTo6ZGVzdHJveSwgXAogICAgICAgICAmQ2xhc3NOYW1l
Ojp2aXNpdENoaWxkcmVuLCBcCiAgICAgICAgICZDbGFzc05hbWU6OmdldENhbGxEYXRhLCBcCkBA
IC0xODUsMTAgKzE4NywxMCBAQCBzdHJ1Y3QgTWV0aG9kVGFibGUgewogICAgICAgICAmQ2xhc3NO
YW1lOjp2aXNpdE91dHB1dENvbnN0cmFpbnRzLCBcCiAgICAgfSwgXAogICAgIENsYXNzTmFtZTo6
VHlwZWRBcnJheVN0b3JhZ2VUeXBlLCBcCi0gICAgc2l6ZW9mKENsYXNzTmFtZSkKKyAgICBzaXpl
b2YoQ2xhc3NOYW1lKSwKIAogc3RydWN0IENsYXNzSW5mbyB7Ci0gICAgdXNpbmcgQ2hlY2tTdWJD
bGFzc1NuaXBwZXRGdW5jdGlvblB0ciA9IFJlZjxTbmlwcGV0PiAoKikodm9pZCk7CisgICAgdXNp
bmcgQ2hlY2tKU0Nhc3RTbmlwcGV0RnVuY3Rpb25QdHIgPSBSZWY8U25pcHBldD4gKCopKHZvaWQp
OwogCiAgICAgLy8gQSBzdHJpbmcgZGVub3RpbmcgdGhlIGNsYXNzIG5hbWUuIEV4YW1wbGU6ICJX
aW5kb3ciLgogICAgIGNvbnN0IGNoYXIqIGNsYXNzTmFtZTsKQEAgLTE5NiwxMCArMTk4LDExIEBA
IHN0cnVjdCBDbGFzc0luZm8gewogICAgIC8vIG51bGxwdHJpZiB0aGVyZSBpcyBub25lLgogICAg
IGNvbnN0IENsYXNzSW5mbyogcGFyZW50Q2xhc3M7CiAgICAgY29uc3QgSGFzaFRhYmxlKiBzdGF0
aWNQcm9wSGFzaFRhYmxlOwotICAgIENoZWNrU3ViQ2xhc3NTbmlwcGV0RnVuY3Rpb25QdHIgY2hl
Y2tTdWJDbGFzc1NuaXBwZXQ7CisgICAgQ2hlY2tKU0Nhc3RTbmlwcGV0RnVuY3Rpb25QdHIgY2hl
Y2tTdWJDbGFzc1NuaXBwZXQ7CisgICAgY29uc3QgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+IGluaGVy
aXRzSlNUeXBlUmFuZ2U7IC8vIFRoaXMgaXMgcmFuZ2Ugb2YgSlNUeXBlcyBmb3IgZG9pbmcgaW5o
ZXJpdGFuY2UgY2hlY2tpbmcuIEhhcyB0aGUgZm9ybTogW2ZpcnN0SlNUeXBlLCBsYXN0SlNUeXBl
XSAoaW5jbHVzaXZlKS4KICAgICBNZXRob2RUYWJsZSBtZXRob2RUYWJsZTsKLSAgICBUeXBlZEFy
cmF5VHlwZSB0eXBlZEFycmF5U3RvcmFnZVR5cGU7Ci0gICAgdW5zaWduZWQgc3RhdGljQ2xhc3NT
aXplOworICAgIGNvbnN0IFR5cGVkQXJyYXlUeXBlIHR5cGVkQXJyYXlTdG9yYWdlVHlwZTsKKyAg
ICBjb25zdCB1bnNpZ25lZCBzdGF0aWNDbGFzc1NpemU7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mUGFyZW50Q2xhc3MoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2FzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDYXN0LmgKaW5kZXggYjI1MDM1NjljODQyMjU2MDExNDFhODBjZjU5ODQ4ZjVkNjczYjc0Yi4u
YjEyZWRhYmVmMzEzZWVlOGYwNjdiZWExYThjMzFlMDIzNzNkNmYxYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKQEAgLTU3LDYgKzU3LDE0IEBAIGlubGluZSBUbyBqc0Nh
c3QoSlNWYWx1ZSBmcm9tKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxUbz4oZnJvbS5hc0NlbGwo
KSk7CiB9CiAKKy8vIFRoZSBmaXJzdCBhbmQgbGFzdCBKU1R5cGUgYXJlIGluY2x1c2l2ZQorc3Ry
dWN0IEpTVHlwZVJhbmdlIHsKKyAgICBib29sIGNvbnRhaW5zKEpTVHlwZSB0eXBlKSBjb25zdCB7
IHJldHVybiBmaXJzdCA8PSB0eXBlICYmIHR5cGUgPD0gbGFzdDsgfQorCisgICAgSlNUeXBlIGZp
cnN0OworICAgIEpTVHlwZSBsYXN0OworfTsKKwogLy8gU3BlY2lmaWMgdHlwZSBvdmVybG9hZHMu
CiAjZGVmaW5lIEZPUl9FQUNIX0pTX0RZTkFNSUNfQ0FTVF9KU19UWVBFX09WRVJMT0FEKG1hY3Jv
KSBcCiAgICAgbWFjcm8oSlNJbW11dGFibGVCdXR0ZXJmbHksIEpTVHlwZTo6SlNJbW11dGFibGVC
dXR0ZXJmbHlUeXBlLCBKU1R5cGU6OkpTSW1tdXRhYmxlQnV0dGVyZmx5VHlwZSkgXApAQCAtMTI2
LDEwICsxMzQsMTAgQEAgc3RydWN0IEZpbmFsVHlwZURpc3BhdGNoZXI8LyogaXNGaW5hbCAqLyB0
cnVlPiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIEZyb20+Ci1p
bmxpbmUgYm9vbCBpbmhlcml0c0pTVHlwZUltcGwoVk0mIHZtLCBGcm9tKiBmcm9tLCBKU1R5cGUg
Zmlyc3RUeXBlLCBKU1R5cGUgbGFzdFR5cGUpCitpbmxpbmUgYm9vbCBpbmhlcml0c0pTVHlwZUlt
cGwoVk0mIHZtLCBGcm9tKiBmcm9tLCBKU1R5cGVSYW5nZSByYW5nZSkKIHsKICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIFRhcmdldD46OnZhbHVlICYmIHN0ZDo6aXNf
YmFzZV9vZjxKU0NlbGwsIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8RnJvbT46OnR5cGU+
Ojp2YWx1ZSwgIkpTIGNhc3RpbmcgZXhwZWN0cyB0aGF0IHRoZSB0eXBlcyB5b3UgYXJlIGNhc3Rp
bmcgdG8vZnJvbSBhcmUgc3ViY2xhc3NlcyBvZiBKU0NlbGwiKTsKLSAgICBib29sIGNhbkNhc3Qg
PSBmaXJzdFR5cGUgPD0gZnJvbS0+dHlwZSgpICYmIGZyb20tPnR5cGUoKSA8PSBsYXN0VHlwZTsK
KyAgICBib29sIGNhbkNhc3QgPSByYW5nZS5jb250YWlucyhmcm9tLT50eXBlKCkpOwogICAgIC8v
IERvIG5vdCB1c2UgaW5oZXJpdHM8VGFyZ2V0Pih2bSkgc2luY2UgaW5oZXJpdHM8VD4gZGVwZW5k
cyBvbiB0aGlzIGZ1bmN0aW9uLgogICAgIEFTU0VSVF9VTlVTRUQodm0sIGNhbkNhc3QgPT0gZnJv
bS0+SlNDZWxsOjppbmhlcml0cyh2bSwgVGFyZ2V0OjppbmZvKCkpKTsKICAgICByZXR1cm4gY2Fu
Q2FzdDsKQEAgLTEzOSw2ICsxNDcsNyBAQCBpbmxpbmUgYm9vbCBpbmhlcml0c0pTVHlwZUltcGwo
Vk0mIHZtLCBGcm9tKiBmcm9tLCBKU1R5cGUgZmlyc3RUeXBlLCBKU1R5cGUgbGFzdAogLy8gd2F5
IHRvIHNheSB0aGF0IHdlIGFyZSBvdmVybG9hZGluZyBqdXN0IHRoZSBmaXJzdCB0eXBlIGluIGEg
dGVtcGxhdGUgbGlzdC4uLgogdGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0Pgogc3RydWN0IEluaGVy
aXRzVHJhaXRzIHsKKyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvbmFsPEpTVHlwZVJhbmdlPiB0
eXBlUmFuZ2UgeyBXVEY6Om51bGxvcHQgfTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGcm9tPgog
ICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20pIHsgcmV0
dXJuIEZpbmFsVHlwZURpc3BhdGNoZXI8c3RkOjppc19maW5hbDxUYXJnZXQ+Ojp2YWx1ZT46OnRl
bXBsYXRlIGluaGVyaXRzR2VuZXJpYzxUYXJnZXQ+KHZtLCBmcm9tKTsgfQogfTsKQEAgLTE0Niw4
ICsxNTUsOSBAQCBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHMgewogI2RlZmluZSBERUZJTkVfVFJBSVRT
X0ZPUl9KU19UWVBFX09WRVJMT0FEKGNsYXNzTmFtZSwgZmlyc3RKU1R5cGUsIGxhc3RKU1R5cGUp
IFwKICAgICB0ZW1wbGF0ZTw+IFwKICAgICBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHM8Y2xhc3NOYW1l
PiB7IFwKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25hbDxKU1R5cGVSYW5nZT4gdHlw
ZVJhbmdlIHsgeyBzdGF0aWNfY2FzdDxKU1R5cGU+KGZpcnN0SlNUeXBlKSwgc3RhdGljX2Nhc3Q8
SlNUeXBlPihsYXN0SlNUeXBlKSB9IH07IFwKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJv
bT4gXAotICAgICAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBm
cm9tKSB7IHJldHVybiBpbmhlcml0c0pTVHlwZUltcGw8Y2xhc3NOYW1lLCBGcm9tPih2bSwgZnJv
bSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihmaXJzdEpTVHlwZSksIHN0YXRpY19jYXN0PEpTVHlwZT4o
bGFzdEpTVHlwZSkpOyB9IFwKKyAgICAgICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZN
JiB2bSwgRnJvbSogZnJvbSkgeyByZXR1cm4gaW5oZXJpdHNKU1R5cGVJbXBsPGNsYXNzTmFtZSwg
RnJvbT4odm0sIGZyb20sICp0eXBlUmFuZ2UpOyB9IFwKICAgICB9OyBcCiAKIEZPUl9FQUNIX0pT
X0RZTkFNSUNfQ0FTVF9KU19UWVBFX09WRVJMT0FEKERFRklORV9UUkFJVFNfRk9SX0pTX1RZUEVf
T1ZFUkxPQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3Bw
CmluZGV4IDBlM2Y4NTgxZGZkNWUzNjEzYzdiNTNkOTk4NjYxZDg4MWEyNDQyNzkuLmQ1NTZjZGVl
NjI5OGU5OWUyMzY4OWU0NzU1NTYyN2QxZTdiN2IxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC05MTIsNyArOTEyLDcgQEAgSlNGdW5jdGlv
bjo6UHJvcGVydHlTdGF0dXMgSlNGdW5jdGlvbjo6cmVpZnlMYXp5Qm91bmROYW1lSWZOZWVkZWQo
Vk0mIHZtLCBKU0dsb2IKICNpZiBBU1NFUlRfRU5BQkxFRAogdm9pZCBKU0Z1bmN0aW9uOjphc3Nl
cnRUeXBlSW5mb0ZsYWdJbnZhcmlhbnRzKCkKIHsKLSAgICAvLyBJZiB5b3UgY2hhbmdlIHRoaXMs
IHlvdSdsbCBuZWVkIHRvIHVwZGF0ZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8uCisgICAgLy8g
SWYgeW91IGNoYW5nZSB0aGlzLCB5b3UnbGwgbmVlZCB0byB1cGRhdGUgc3BlY3VsYXRpb25Gcm9t
Q2xhc3NJbmZvSW5oZXJpdGFuY2UuCiAgICAgY29uc3QgQ2xhc3NJbmZvKiBpbmZvID0gY2xhc3NJ
bmZvKHZtKCkpOwogICAgIGlmICghKGlubGluZVR5cGVGbGFncygpICYgSW1wbGVtZW50c0RlZmF1
bHRIYXNJbnN0YW5jZSkpCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGluZm8gPT0gSlNCb3VuZEZ1
bmN0aW9uOjppbmZvKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0u
Y3BwCmluZGV4IGUzZWNlZjZlY2JhYmE3ZTE3MjYwZWE1NTE3YTJmNzZmYzUwMjFjNDUuLjA5YWYw
YjFjNmRiZmU1MDI4NzM2NWNkNjkyZTg4NjMzMGZmZjQ0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKQEAgLTExMjUsOSArMTEyNSw5IEBAIHZvaWQgRE9N
SklURnVuY3Rpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlvbldpdGhU
eXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklURnVuY3Rpb25PYmplY3RTaWduYXR1cmUsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAot
Y2xhc3MgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKK2Ns
YXNzIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewogcHVibGlj
OgotICAgIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKKyAgICBET01KSVRDaGVja0pTQ2FzdE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKICAgICB7CiAgICAgICAgIERv
bGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CkBAIC0xMTQzLDEwICsxMTQzLDEwIEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oSlNDOjpKU1R5cGUoTGFzdEpTQ09iamVjdFR5cGUgKyAxKSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBET01KSVRDaGVj
a1N1YkNsYXNzT2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICBzdGF0aWMgRE9NSklUQ2hlY2tKU0Nhc3RP
YmplY3QqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3Nl
cnRTY29wZTsKLSAgICAgICAgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCogb2JqZWN0ID0gbmV3
IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8RE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdD4odm0uaGVh
cCkpIERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Qodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIERP
TUpJVENoZWNrSlNDYXN0T2JqZWN0KiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2Vs
bDxET01KSVRDaGVja0pTQ2FzdE9iamVjdD4odm0uaGVhcCkpIERPTUpJVENoZWNrSlNDYXN0T2Jq
ZWN0KHZtLCBzdHJ1Y3R1cmUpOwogICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtLCBn
bG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KQEAgLTExNTcsNyAr
MTE1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUQ2hlY2tTdWJDbGFzc09iamVj
dCo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QqPih2bSwgY2FsbEZyYW1l
LT50aGlzVmFsdWUoKSk7CiAgICAgICAgIGlmICghdGhpc09iamVjdCkKICAgICAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZhbHVlKCkpKTsKQEAgLTEx
NzYsMTMgKzExNzYsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwg
SlNHbG9iYWxPYmplY3QqKTsKIH07CiAKLXN0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBE
T01KSVRDaGVja1N1YkNsYXNzT2JqZWN0U2lnbmF0dXJlKERPTUpJVENoZWNrU3ViQ2xhc3NPYmpl
Y3Q6OmZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjaywgRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdDo6
aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkhlYXBSYW5nZTo6dG9wKCkp
LCBTcGVjSW50MzJPbmx5KTsKK3N0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRD
aGVja0pTQ2FzdE9iamVjdFNpZ25hdHVyZShET01KSVRDaGVja0pTQ2FzdE9iamVjdDo6ZnVuY3Rp
b25XaXRob3V0VHlwZUNoZWNrLCBET01KSVRDaGVja0pTQ2FzdE9iamVjdDo6aW5mbygpLCBET01K
SVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkhlYXBSYW5nZTo6dG9wKCkpLCBTcGVjSW50MzJP
bmx5KTsKIAotdm9pZCBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIERPTUpJVENoZWNrSlND
YXN0T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rp
b25XaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3RT
aWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkpKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlvbldpdGhUeXBlQ2hlY2ss
IE5vSW50cmluc2ljLCAmRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RTaWduYXR1cmUsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAogY2xhc3Mg
RE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewpAQCAtMTQxNyw3
ICsxNDE3LDcgQEAgY29uc3QgQ2xhc3NJbmZvIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpzX2luZm8g
PSB7ICJET01KSVRGdW5jdGlvbk9iamVjdCIsICZCYXNlOjoKICNlbHNlCiBjb25zdCBDbGFzc0lu
Zm8gRE9NSklURnVuY3Rpb25PYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUpJVEZ1bmN0aW9uT2JqZWN0
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShE
T01KSVRGdW5jdGlvbk9iamVjdCkgfTsKICNlbmRpZgotY29uc3QgQ2xhc3NJbmZvIERPTUpJVENo
ZWNrU3ViQ2xhc3NPYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Qi
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKERP
TUpJVENoZWNrU3ViQ2xhc3NPYmplY3QpIH07Citjb25zdCBDbGFzc0luZm8gRE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUpJVENoZWNrSlNDYXN0T2JqZWN0IiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShET01KSVRDaGVj
a0pTQ2FzdE9iamVjdCkgfTsKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0
ZXI6OnNfaW5mbyA9IHsgIkpTVGVzdEN1c3RvbUdldHRlclNldHRlciIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q3VzdG9tR2V0dGVy
U2V0dGVyKSB9OwogCiBjb25zdCBDbGFzc0luZm8gU3RhdGljQ3VzdG9tQWNjZXNzb3I6OnNfaW5m
byA9IHsgIlN0YXRpY0N1c3RvbUFjY2Vzc29yIiwgJkJhc2U6OnNfaW5mbywgJnN0YXRpY0N1c3Rv
bUFjY2Vzc29yVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoU3RhdGljQ3VzdG9t
QWNjZXNzb3IpIH07CkBAIC0yMzQ5LDEzICsyMzQ5LDEzIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QoSlNHbG9i
YWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrU3ViQ2xh
c3NPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK3N0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKIHsK
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7Ci0gICAgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUgPSBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUo
dm0sIGdsb2JhbE9iamVjdCwganNOdWxsKCkpOwotICAgIERPTUpJVENoZWNrU3ViQ2xhc3NPYmpl
Y3QqIHJlc3VsdCA9IERPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3Q6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gRE9NSklUQ2hl
Y2tKU0Nhc3RPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBqc051bGwo
KSk7CisgICAgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QqIHJlc3VsdCA9IERPTUpJVENoZWNrSlND
YXN0T2JqZWN0OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTMwNTMsNyArMzA1Myw3IEBAIHZv
aWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIGFkZEZ1bmN0aW9uKHZt
LCAiY3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJP
YmplY3QsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyQ29tcGxl
eE9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9iamVjdCwgMCk7CiAg
ICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCIsIGZ1bmN0aW9u
Q3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QsIDApOwotICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3Jl
YXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tT
dWJDbGFzc09iamVjdCwgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRDaGVj
a0pTQ2FzdE9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QsIDAp
OwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0Iiwg
ZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJCYXNlSlNPYmplY3QsIDApOwogICAgIGFkZEZ1bmN0
aW9uKHZtLCAiY3JlYXRlQnVpbHRpbiIsIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbiwgMik7CiAjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwu
aCBiL1NvdXJjZS9XVEYvd3RmL09wdGlvbmFsLmgKaW5kZXggNzcxNmJhNDE4ZGRhZWQzMzRmNDBi
NTYwY2NhNzIzMzY5NWNmZTg3OC4uN2JmMGVjYTRiNzA3N2M4ZWM1ODE0NDdmYjU4NDI0ZjY2ODFh
ZWYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT3B0aW9uYWwuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9PcHRpb25hbC5oCkBAIC00MTEsMjAgKzQxMSwyNiBAQCBwdWJsaWM6CiAgIGNvbnN0
ZXhwciBPcHRpb25hbCgpIF9fTk9FWENFUFQgOiBPcHRpb25hbEJhc2U8VD4oKSAge307CiAgIGNv
bnN0ZXhwciBPcHRpb25hbChudWxsb3B0X3QpIF9fTk9FWENFUFQgOiBPcHRpb25hbEJhc2U8VD4o
KSB7fTsKIAotICBPcHRpb25hbChjb25zdCBPcHRpb25hbCYgcmhzKQorICBjb25zdGV4cHIgT3B0
aW9uYWwoY29uc3QgT3B0aW9uYWwmIHJocykKICAgOiBPcHRpb25hbEJhc2U8VD4oKQogICB7CiAg
ICAgaWYgKHJocy5pbml0aWFsaXplZCgpKSB7Ci0gICAgICAgIDo6bmV3IChzdGF0aWNfY2FzdDx2
b2lkKj4oZGF0YXB0cigpKSkgVCgqcmhzKTsKKyAgICAgICAgaWYgY29uc3RleHByIChzdGQ6Omlz
X3RyaXZpYWxseV9jb3B5YWJsZV92PFQ+KQorICAgICAgICAgICAgT3B0aW9uYWxCYXNlPFQ+Ojpz
dG9yYWdlXyA9ICpyaHM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIDo6bmV3IChzdGF0aWNf
Y2FzdDx2b2lkKj4oZGF0YXB0cigpKSkgVCgqcmhzKTsKICAgICAgICAgT3B0aW9uYWxCYXNlPFQ+
Ojppbml0XyA9IHRydWU7CiAgICAgfQogICB9CiAKLSAgT3B0aW9uYWwoT3B0aW9uYWwmJiByaHMp
IF9fTk9FWENFUFRfKGRldGFpbF86OmlzX25vdGhyb3dfbW92ZV9jb25zdHJ1Y3RpYmxlPFQ+Ojp2
YWx1ZSkKKyAgY29uc3RleHByIE9wdGlvbmFsKE9wdGlvbmFsJiYgcmhzKSBfX05PRVhDRVBUXyhk
ZXRhaWxfOjppc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZTxUPjo6dmFsdWUpCiAgIDogT3B0
aW9uYWxCYXNlPFQ+KCkKICAgewogICAgIGlmIChyaHMuaW5pdGlhbGl6ZWQoKSkgewotICAgICAg
ICA6Om5ldyAoc3RhdGljX2Nhc3Q8dm9pZCo+KGRhdGFwdHIoKSkpIFQoc3RkOjptb3ZlKCpyaHMp
KTsKKyAgICAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX3RyaXZpYWxseV9jb3B5YWJsZV92PFQ+
KQorICAgICAgICAgICAgT3B0aW9uYWxCYXNlPFQ+OjpzdG9yYWdlXyA9ICpyaHM7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIDo6bmV3IChzdGF0aWNfY2FzdDx2b2lkKj4oZGF0YXB0cigpKSkg
VChzdGQ6Om1vdmUoKnJocykpOwogICAgICAgICBPcHRpb25hbEJhc2U8VD46OmluaXRfID0gdHJ1
ZTsKICAgICAgICAgcmhzLmNsZWFyKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEb2N1bWVudEN1c3RvbS5oCmluZGV4IGE1Mzk2MzY0ODRhZDNhNDE1YzllMzlmMGNj
MjM3OTMyNDJkYWI1OTEuLjgxY2I5MTBmYWY2Nzk5YTI2ZTFlZTE0ZDRiNjQ1Y2I0OTc1MDZhMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmgKQEAg
LTM0LDEwICszNCwxMSBAQCBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycyB7CiAKIHRlbXBsYXRl
PD4KIHN0cnVjdCBJbmhlcml0c1RyYWl0czxXZWJDb3JlOjpKU0RvY3VtZW50PiB7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBPcHRpb25hbDxKU1R5cGVSYW5nZT4gdHlwZVJhbmdlIHsgSlNUeXBlUmFu
Z2UgeyBzdGF0aWNfY2FzdDxKU1R5cGU+KFdlYkNvcmU6OkpTRG9jdW1lbnRXcmFwcGVyVHlwZSks
IHN0YXRpY19jYXN0PEpTVHlwZT4oV2ViQ29yZTo6SlNEb2N1bWVudFdyYXBwZXJUeXBlKSB9IH07
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KLSAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5o
ZXJpdHMoVk0mLCBGcm9tKiBmcm9tKQorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0cyhW
TSYgdm0sIEZyb20qIGZyb20pCiAgICAgewotICAgICAgICByZXR1cm4gZnJvbS0+dHlwZSgpID09
IFdlYkNvcmU6OkpTRG9jdW1lbnRXcmFwcGVyVHlwZTsKKyAgICAgICAgcmV0dXJuIGluaGVyaXRz
SlNUeXBlSW1wbDxXZWJDb3JlOjpKU0RvY3VtZW50Pih2bSwgZnJvbSwgKnR5cGVSYW5nZSk7CiAg
ICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVt
ZW50Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20u
aAppbmRleCA1YzYxNDQ3N2Y2MzNiZTJkN2MxMzA1OGM2Nzk3NjY2ZTgzNzQ1Zjc0Li4yNWE2ODNj
OWVjOWJiNTUwNzViZmVjODA1MmFmYmI1ODlmMTA1OWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaApAQCAtMzQsMTAgKzM0LDExIEBAIG5hbWVzcGFj
ZSBKU0Nhc3RpbmdIZWxwZXJzIHsKIAogdGVtcGxhdGU8Pgogc3RydWN0IEluaGVyaXRzVHJhaXRz
PFdlYkNvcmU6OkpTRWxlbWVudD4geworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uYWw8SlNU
eXBlUmFuZ2U+IHR5cGVSYW5nZSB7IEpTVHlwZVJhbmdlIHsgc3RhdGljX2Nhc3Q8SlNUeXBlPihX
ZWJDb3JlOjpKU0VsZW1lbnRUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpKU0Vs
ZW1lbnRUeXBlKSB9IH07CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KLSAgICBzdGF0aWMg
aW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mLCBGcm9tKiBmcm9tKQorICAgIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpbmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20pCiAgICAgewotICAgICAgICByZXR1cm4g
ZnJvbS0+dHlwZSgpID09IFdlYkNvcmU6OkpTRWxlbWVudFR5cGU7CisgICAgICAgIHJldHVybiBp
bmhlcml0c0pTVHlwZUltcGw8V2ViQ29yZTo6SlNFbGVtZW50Pih2bSwgZnJvbSwgKnR5cGVSYW5n
ZSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3Rv
bS5oCmluZGV4IDJlNjVhMzEyMmFjYmQ2ZGNjNmNjZjA2NzAxNTJiYTU1M2U5NGU2NjEuLmUwM2Ew
ZGM1ZmRkMTVhN2ZmZjA5ZGM1YjIzMDU2Y2VjYWRhZDM3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmgKQEAgLTM0LDEwICszNCwxMSBAQCBuYW1lc3BhY2Ug
SlNDYXN0aW5nSGVscGVycyB7CiAKIHRlbXBsYXRlPD4KIHN0cnVjdCBJbmhlcml0c1RyYWl0czxX
ZWJDb3JlOjpKU0V2ZW50PiB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25hbDxKU1R5cGVS
YW5nZT4gdHlwZVJhbmdlIHsgeyBzdGF0aWNfY2FzdDxKU1R5cGU+KFdlYkNvcmU6OkpTRXZlbnRU
eXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJDb3JlOjpKU0V2ZW50VHlwZSkgfSB9OwogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+Ci0gICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRz
KFZNJiwgRnJvbSogZnJvbSkKKyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZt
LCBGcm9tKiBmcm9tKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGZyb20tPnR5cGUoKSA9PSBXZWJD
b3JlOjpKU0V2ZW50VHlwZTsKKyAgICAgICAgcmV0dXJuIGluaGVyaXRzSlNUeXBlSW1wbDxXZWJD
b3JlOjpKU0V2ZW50Pih2bSwgZnJvbSwgKnR5cGVSYW5nZSk7CiAgICAgfQogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaAppbmRleCA1ODk1MGNiZTIwYmI2MjEx
MWIxOGI2OWZiMDg2ZWYwMjQ5NmYyZDY4Li4zNDRjZTgxNWFiNjMxNDlmZmZlODA4MzUzOWMyM2Mx
YWIyODhkNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVD
dXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaApA
QCAtMzQsMTAgKzM0LDEyIEBAIG5hbWVzcGFjZSBKU0Nhc3RpbmdIZWxwZXJzIHsKIAogdGVtcGxh
dGU8Pgogc3RydWN0IEluaGVyaXRzVHJhaXRzPFdlYkNvcmU6OkpTTm9kZT4geworICAgIHN0YXRp
YyBjb25zdGV4cHIgT3B0aW9uYWw8SlNUeXBlUmFuZ2U+IHR5cGVSYW5nZSB7IHsgc3RhdGljX2Nh
c3Q8SlNUeXBlPihXZWJDb3JlOjpKU05vZGVUeXBlKSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihXZWJD
b3JlOjpKU05vZGVUeXBlICsgV2ViQ29yZTo6SlNOb2RlVHlwZU1hc2spIH0gfTsKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDhfdD46Om1heCgpID09IHR5cGVSYW5n
ZS0+bGFzdCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KLSAgICBzdGF0aWMgaW5saW5l
IGJvb2wgaW5oZXJpdHMoVk0mLCBGcm9tKiBmcm9tKQorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBp
bmhlcml0cyhWTSYgdm0sIEZyb20qIGZyb20pCiAgICAgewotICAgICAgICByZXR1cm4gZnJvbS0+
dHlwZSgpID49IFdlYkNvcmU6OkpTTm9kZVR5cGU7CisgICAgICAgIHJldHVybiBpbmhlcml0c0pT
VHlwZUltcGw8V2ViQ29yZTo6SlNOb2RlPih2bSwgZnJvbSwgKnR5cGVSYW5nZSk7CiAgICAgfQog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQppbmRleCA2N2MzM2VmZDJiZjExZmRmODI4N2MzMjQwZDhhZTE0OGIwMzY4MjM4Li43
NWExNGEwMzQ1M2U1YmI3MGNhNjI0ZTBiMzNkMzcxODhjOTMzOGY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzAyMSw3
ICszMDIxLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAj
IENoZWNrU3ViQ2xhc3MgU25pcHBldCBmdW5jdGlvbi4KKyAgICAjIENoZWNrSlNDYXN0IFNuaXBw
ZXQgZnVuY3Rpb24uCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RP
TUpJVH0pIHsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8SmF2YVNjcmlwdENvcmUvU25pcHBl
dC5oPiJ9ID0gMTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpZiBFTkFCTEUoSklU
KVxuIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDAwNDM4MzcxODUzNGNlZmZmM2NjYzc3OTMzYjA5ODBiMDFmNGZhYmQuLmM5NDhkYTc1
N2M2ZDZiYWVlOWMzYTgwODQ5ZDAwMDgxMDgzMjViZjEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDUt
MjcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgZm9y
LW9mIHNob3VsZCBjaGVjayB0aGUgaXRlcmFibGUgaXMgYSBKU0FycmF5IGZvciBGYXN0QXJyYXkg
aW4gREZHIGl0ZXJhdG9yX29wZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMjM4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogc3RyZXNzL2NoZWNrLXN1Yi1jbGFzcy5qczoKKyAgICAgICAgKiBzdHJl
c3MvZm9yLW9mLWl0ZXJhdG9yLW9wZW4tZmFzdC1hcnJheS1zaG91bGQtY2hlY2stanMtdHlwZS5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAyMDIwLTA1LTI2ICBBbGV4ZXkgU2h2YXlrYSAg
PHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBJdGVyYXRvckNsb3NlIHNob3VsZCBz
dXBwcmVzcyBHZXRNZXRob2QgZXJyb3JzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9jaGVj
ay1zdWItY2xhc3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9jaGVjay1zdWItY2xhc3MuanMKaW5kZXgg
NGI0YjFkNDY2Y2IyMDkxMzEyN2YzYzNmZGNhNjBiMTg3NGYwMDZlYy4uOTlkZThmYjM2ZWQzMTYx
M2M5ZjU0NmEyN2I3MmRiN2I5YjYwN2U4YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvY2hl
Y2stc3ViLWNsYXNzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2NoZWNrLXN1Yi1jbGFzcy5qcwpA
QCAtMSw1ICsxLDUgQEAKIHZhciBjcmVhdGVET01KSVROb2RlT2JqZWN0ID0gJHZtLmNyZWF0ZURP
TUpJVE5vZGVPYmplY3Q7Ci12YXIgY3JlYXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCA9ICR2
bS5jcmVhdGVET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0OwordmFyIGNyZWF0ZURPTUpJVENoZWNr
SlNDYXN0T2JqZWN0ID0gJHZtLmNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0OwogCiBmdW5j
dGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiAgICAgaWYgKGFjdHVhbCAhPT0gZXhw
ZWN0ZWQpCkBAIC0yMywxMSArMjMsMTEgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJy
b3JNZXNzYWdlKSB7CiAKIHZhciBhcnJheSA9IFtdOwogZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7
ICsraSkKLSAgICBhcnJheS5wdXNoKGNyZWF0ZURPTUpJVENoZWNrU3ViQ2xhc3NPYmplY3QoKSk7
CisgICAgYXJyYXkucHVzaChjcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVjdCgpKTsKIAotLy8g
RE9NSklUTm9kZSBpcyBhbiBpbnN0YW5jZSBvZiBhIHN1cGVyIGNsYXNzIChET01KSVROb2RlKSBv
ZiBET01KSVRDaGVja1N1YkNsYXNzT2JqZWN0LgorLy8gRE9NSklUTm9kZSBpcyBhbiBpbnN0YW5j
ZSBvZiBhIHN1cGVyIGNsYXNzIChET01KSVROb2RlKSBvZiBET01KSVRDaGVja0pTQ2FzdE9iamVj
dC4KIHZhciBub2RlID0gY3JlYXRlRE9NSklUTm9kZU9iamVjdCgpOwotbm9kZS5mdW5jID0gY3Jl
YXRlRE9NSklUQ2hlY2tTdWJDbGFzc09iamVjdCgpLmZ1bmM7Citub2RlLmZ1bmMgPSBjcmVhdGVE
T01KSVRDaGVja0pTQ2FzdE9iamVjdCgpLmZ1bmM7CiAKIGZ1bmN0aW9uIGNhbGxpbmcoZG9tKQog
ewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZm9yLW9mLWl0ZXJhdG9yLW9wZW4tZmFzdC1h
cnJheS1zaG91bGQtY2hlY2stanMtdHlwZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1vZi1pdGVy
YXRvci1vcGVuLWZhc3QtYXJyYXktc2hvdWxkLWNoZWNrLWpzLXR5cGUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmI4YjY5ZWIzMTFlMTJmNjg5ODExYzI0ZTZiZDEwYTk5OWRhYmM1YwotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2Zvci1vZi1pdGVyYXRvci1vcGVuLWZhc3QtYXJyYXktc2hvdWxk
LWNoZWNrLWpzLXR5cGUuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBmb28oYTApIHsKKyAg
TnVtYmVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBbXTsKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCAx
MDAwMDA7IGkrKykge30KKyAgZm9yIChsZXQgcSBvZiBhMCkge30KK30KKworZm9vKFtdKTsKK2Zv
bygwKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="415836"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>