<?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>148860</bug_id>
          
          <creation_ts>2015-09-04 17:37:08 -0700</creation_ts>
          <short_desc>[ES6] Add DFG/FTL support for accessor put operations</short_desc>
          <delta_ts>2015-10-27 00:02:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>147883</dependson>
    
    <dependson>150526</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1123775</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-04 17:37:08 -0700</bug_when>
    <thetext>Currently, accessor put operations (like op_put_getter_by_id) are not compiled in DFG / FTL backend.
We should add them even if the implementation in DFG becomes just calling the runtime function,
since the code including these operations is not compiled in DFG even if the operation is not executed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134329</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-18 01:02:43 -0700</bug_when>
    <thetext>Working on it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134514</commentid>
    <comment_count>2</comment_count>
      <attachid>263458</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-19 02:17:43 -0700</bug_when>
    <thetext>Created attachment 263458
Patch

WIP: DFG part is done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134519</commentid>
    <comment_count>3</comment_count>
      <attachid>263461</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-19 02:46:33 -0700</bug_when>
    <thetext>Created attachment 263461
Patch

WIP: DFG / FTL. Tests are not added yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134529</commentid>
    <comment_count>4</comment_count>
      <attachid>263464</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-19 03:04:32 -0700</bug_when>
    <thetext>Created attachment 263464
Patch

WIP: fixing 32bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134557</commentid>
    <comment_count>5</comment_count>
      <attachid>263474</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-19 05:34:41 -0700</bug_when>
    <thetext>Created attachment 263474
Patch

WIP: fixing 32bit, part2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134558</commentid>
    <comment_count>6</comment_count>
      <attachid>263475</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-19 05:46:16 -0700</bug_when>
    <thetext>Created attachment 263475
Patch

WIP: fixing 32bit, part3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134564</commentid>
    <comment_count>7</comment_count>
      <attachid>263478</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-19 06:28:05 -0700</bug_when>
    <thetext>Created attachment 263478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134636</commentid>
    <comment_count>8</comment_count>
      <attachid>263495</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-19 11:25:27 -0700</bug_when>
    <thetext>Created attachment 263495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134645</commentid>
    <comment_count>9</comment_count>
      <attachid>263495</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-19 11:40:54 -0700</bug_when>
    <thetext>Comment on attachment 263495
Patch

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

Added comments :)

&gt; Source/JavaScriptCore/dfg/DFGStoreBarrierInsertionPhase.cpp:280
&gt; +                considerBarrier(m_node-&gt;child1());

They store a new property to a base object.

&gt; Source/JavaScriptCore/jit/JITOperations.h:-204
&gt; -typedef void JIT_OPERATION (*V_JITOperation_EJIdZJJ)(ExecState*, EncodedJSValue, Identifier*, int32_t, EncodedJSValue, EncodedJSValue);

Change Identifier* to UniquedStringImpl* to use these operations in DFG / FTL.

&gt; Source/JavaScriptCore/jit/JITOperations.h:315
&gt; +void JIT_OPERATION operationPutSetterById(ExecState*, JSCell*, UniquedStringImpl*, int32_t options, JSCell*) WTF_INTERNAL;

These operations require some of arguments are JSObject.
Since the representation of EncodedJSValue containing JSCell* in JSVALUE64 environment is the same to JSCell*, we take JSCell* directly instead of EncodedJSValue.
It unifies operationPut{Getter,Setter}By{Id, Val} for JSVALUE64 and JSVALUE32_64.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136051</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-23 09:13:06 -0700</bug_when>
    <thetext>Could anyone take a look? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136064</commentid>
    <comment_count>11</comment_count>
      <attachid>263495</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-23 10:28:40 -0700</bug_when>
    <thetext>Comment on attachment 263495
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGNodeType.h:186
&gt; +    macro(PutAccessorsById, NodeMustGenerate) \

I would call this &quot;PutGetterSetterById&quot; to match the opcode name.

If you want to rename the opcode in a separate patch, I&apos;m OK with that. I would say &quot;accessor&quot; instead of &quot;accessors&quot; because there is only one accessor property descriptor, which holds both a getter and a setter.

&gt;&gt; Source/JavaScriptCore/dfg/DFGStoreBarrierInsertionPhase.cpp:280
&gt;&gt; +                considerBarrier(m_node-&gt;child1());
&gt; 
&gt; They store a new property to a base object.

I don&apos;t think we need a barrier in JIT code since we&apos;ll do the barrier in C++ code. We only need a barrier in JIT code if we emit JIT code to perform a write.

If we had a way to express it, we might want to tell this phase &quot;I did a store barrier, so you can eliminate others&quot;. But I don&apos;t think we have that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136067</commentid>
    <comment_count>12</comment_count>
      <attachid>263495</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-23 10:45:22 -0700</bug_when>
    <thetext>Comment on attachment 263495
Patch

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

Thank you!

&gt;&gt; Source/JavaScriptCore/dfg/DFGNodeType.h:186
&gt;&gt; +    macro(PutAccessorsById, NodeMustGenerate) \
&gt; 
&gt; I would call this &quot;PutGetterSetterById&quot; to match the opcode name.
&gt; 
&gt; If you want to rename the opcode in a separate patch, I&apos;m OK with that. I would say &quot;accessor&quot; instead of &quot;accessors&quot; because there is only one accessor property descriptor, which holds both a getter and a setter.

Thanks. Right.
Your pointing has changed my mind :). &quot;PutGetterSetterById&quot; seems better because we actually stores &quot;GetterSetter&quot; object as a property.
BTW, I think renaming current opcode &quot;op_put_getter_setter&quot; to &quot;op_put_getter_setter_by_id&quot; is nice. I&apos;ll upload this as a separate patch.

&gt;&gt;&gt; Source/JavaScriptCore/dfg/DFGStoreBarrierInsertionPhase.cpp:280
&gt;&gt;&gt; +                considerBarrier(m_node-&gt;child1());
&gt;&gt; 
&gt;&gt; They store a new property to a base object.
&gt; 
&gt; I don&apos;t think we need a barrier in JIT code since we&apos;ll do the barrier in C++ code. We only need a barrier in JIT code if we emit JIT code to perform a write.
&gt; 
&gt; If we had a way to express it, we might want to tell this phase &quot;I did a store barrier, so you can eliminate others&quot;. But I don&apos;t think we have that.

Nice catch! You&apos;re right. These barriers are not necessary. Dropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136075</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-23 11:06:42 -0700</bug_when>
    <thetext>Committed r191500: &lt;http://trac.webkit.org/changeset/191500&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136180</commentid>
    <comment_count>14</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2015-10-23 16:56:08 -0700</bug_when>
    <thetext>This change may have introduced 2 new JSC failures:
	stress/try-catch-stub-routine-replaced.js.dfg-eager-no-cjit-validate
	stress/try-catch-stub-routine-replaced.js.ftl-eager-no-cjit

https://build.webkit.org/builders/Apple%20El%20Capitan%20Debug%20JSC%20%28Tests%29/builds/354/steps/jscore-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136252</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-24 05:15:45 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; This change may have introduced 2 new JSC failures:
&gt; 	stress/try-catch-stub-routine-replaced.js.dfg-eager-no-cjit-validate
&gt; 	stress/try-catch-stub-routine-replaced.js.ftl-eager-no-cjit
&gt; 
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20Debug%20JSC%20%28Tests%29/builds/354/steps/jscore-
&gt; test/logs/stdio

Thanks! I&apos;m investigating it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136253</commentid>
    <comment_count>16</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-24 05:41:40 -0700</bug_when>
    <thetext>After inserting barriers, the failure is removed.
I&apos;ll check what happens and barrier is necessary or not when calling the operations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136254</commentid>
    <comment_count>17</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-24 06:04:28 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; After inserting barriers, the failure is removed.
&gt; I&apos;ll check what happens and barrier is necessary or not when calling the
&gt; operations.

Barrier is not necessary, but I guess referencing this node may have any effect, still investigating...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136399</commentid>
    <comment_count>18</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-25 10:04:27 -0700</bug_when>
    <thetext>Ah, I misunderstood callOperation in DFG. I&apos;ll fix the patch and update it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136596</commentid>
    <comment_count>19</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-26 12:34:50 -0700</bug_when>
    <thetext>OK, i&apos;ve found the issue!
Before calling flushRegisters(), we should fill gprs by calling such as base.gpr() manually.

Wrong case:
flushRegister();
callOperation(..., base.gpr());  // No! base.gpr() may be filled right now! (After calling flushRegister())

Correct case:
GPRReg baseGPR = base.gpr();
flushRegister();
callOperation(..., baseGPR);  // OK!


In the wrong case, since we fill a register after calling flushRegister(), after calling callOperation(...), we may misdecide that a VirtualRegister is in a machine register in spite of callOperation&apos;s C call breaks caller save registers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136598</commentid>
    <comment_count>20</comment_count>
      <attachid>264063</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-26 12:42:29 -0700</bug_when>
    <thetext>Created attachment 264063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136599</commentid>
    <comment_count>21</comment_count>
      <attachid>264063</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-26 12:45:08 -0700</bug_when>
    <thetext>Comment on attachment 264063
Patch

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

OK, updated the patch. Could you take an another look?

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6743
&gt;  

Differences are these parts.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6752
&gt; +    flushRegisters();

Before calling flushRegisters(), we should call such as `base.gpr()` to fill registers.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6770
&gt; +    flushRegisters();

Ditto.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6780
&gt; +    JSValueRegs setterRegs = setter.jsValueRegs();

Note that JSValueRegs fills pair of registers correctly.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6782
&gt; +    flushRegisters();

Ditto.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6802
&gt; +    flushRegisters();

Ditto.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:6809
&gt; +    flushRegisters();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136644</commentid>
    <comment_count>22</comment_count>
      <attachid>264063</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-10-26 15:00:26 -0700</bug_when>
    <thetext>Comment on attachment 264063
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136779</commentid>
    <comment_count>23</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-27 00:01:57 -0700</bug_when>
    <thetext>Committed r191621: &lt;http://trac.webkit.org/changeset/191621&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136780</commentid>
    <comment_count>24</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-10-27 00:02:34 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Comment on attachment 264063 [details]
&gt; Patch
&gt; 
&gt; r=me

Thank you so much!!! :D</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263458</attachid>
            <date>2015-10-19 02:17:43 -0700</date>
            <delta_ts>2015-10-19 02:46:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148860-20151019181701.patch</filename>
            <type>text/plain</type>
            <size>41345</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
Y2JlOWVkMDZkYTAwNmYxOGU1ODE2YjkyOWQ0NWUzNTQwYmYwN2JkLi45OTgxMWFiOGY2YmNmYTE4
YjFhZmRiYmRiZjBlOTg5MjYwNTgyZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAxNS0xMC0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBBZGQgREZHL0ZUTCBzdXBwb3J0IGZvciBhY2Nlc3NvciBw
dXQgb3BlcmF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzSWRlbnRpZmllcik6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6aGFzQWNjZXNzb3JBdHRyaWJ1dGVzKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjphY2Nlc3NvckF0dHJpYnV0ZXMpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVj
dXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yc0J5SWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcDoKKyAg
ICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5j
cHA6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBqaXQvSklUUHJv
cGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9i
eV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfc2V0dGVyX2J5X2lkKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKToKKwogMjAxNS0xMC0x
OCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBQcm9t
aXNlIGNvbnN0cnVjdG9yIHNob3VsZCB0aHJvdyB3aGVuIG5vdCBjYWxsZWQgd2l0aCAibmV3Igpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCmluZGV4IGYyOGNjN2FmZjA2Yjk5MzMzNTA0ZmZhNTY0YTRjM2M3ZDFl
NTI2YTIuLmE3MDE4MDZhMTNkOTE3ODk5ZDY3MjEyZDAxNTc4NDkxOWZlNGYzNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmgKQEAgLTIzNjMsNiArMjM2MywxNSBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0
ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGlt
aQogICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBjbG9iYmVyTGlt
aXQpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6Cisg
ICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICBj
YXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6IHsKKyAgICAgICAg
Y2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJlckxpbWl0KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQogICAgICAgICAKICAgICBjYXNlIEluOiB7CiAgICAgICAgIC8vIEZJ
WE1FOiBXZSBjYW4gZGV0ZXJtaW5lIHdoZW4gdGhlIHByb3BlcnR5IGRlZmluaXRlbHkgZXhpc3Rz
IGJhc2VkIG9uIGFic3RyYWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDY5ZjU0ZjFkMzUxMDUwNjcwYTUwN2IyNGYzZjc2OTQ1YWQ2
YjZhMDYuLjNhZWU3ODE2MGQ1Y2E5ZDAyZWY1YjBkZjA4OTQ0MjlkZGU3ZTY4OWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zNzQ5
LDYgKzM3NDksMzggQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBs
aW1pdCkKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9ieV9pZCk7CiAgICAgICAgIH0K
IAorICAgICAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6CisgICAgICAgIGNhc2Ugb3BfcHV0
X3NldHRlcl9ieV9pZDogeworICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgdW5z
aWduZWQgaWRlbnRpZmllck51bWJlciA9IG1faW5saW5lU3RhY2tUb3AtPm1faWRlbnRpZmllclJl
bWFwW2N1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmRdOworICAgICAgICAgICAgdW5zaWdu
ZWQgYXR0cmlidXRlcyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgICAg
ICAgICBOb2RlKiBhY2Nlc3NvciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzRdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZVR5cGUgb3AgPSAob3Bjb2RlSUQg
PT0gb3BfcHV0X2dldHRlcl9ieV9pZCkgPyBQdXRHZXR0ZXJCeUlkIDogUHV0U2V0dGVyQnlJZDsK
KyAgICAgICAgICAgIGFkZFRvR3JhcGgob3AsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVyKSwgT3BJ
bmZvKGF0dHJpYnV0ZXMpLCBiYXNlLCBhY2Nlc3Nvcik7CisgICAgICAgICAgICBORVhUX09QQ09E
RShvcF9wdXRfZ2V0dGVyX2J5X2lkKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2Ugb3BfcHV0
X2dldHRlcl9zZXR0ZXI6IHsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIHVu
c2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZpZXJS
ZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kXTsKKyAgICAgICAgICAgIHVuc2ln
bmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgICAg
ICAgICAgTm9kZSogZ2V0dGVyID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBzZXR0ZXIgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls1XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAg
IGFkZFRvR3JhcGgoUHV0QWNjZXNzb3JzQnlJZCwgT3BJbmZvKGlkZW50aWZpZXJOdW1iZXIpLCBP
cEluZm8oYXR0cmlidXRlcyksIGJhc2UsIGdldHRlciwgc2V0dGVyKTsKKyAgICAgICAgICAgIE5F
WFRfT1BDT0RFKG9wX3B1dF9nZXR0ZXJfc2V0dGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGNh
c2Ugb3BfcHV0X2dldHRlcl9ieV92YWw6CisgICAgICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9ieV92
YWw6IHsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIHN1YnNjcmlw
dCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkp
OworICAgICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9IGN1cnJlbnRJbnN0cnVjdGlvblsz
XS51Lm9wZXJhbmQ7CisgICAgICAgICAgICBOb2RlKiBhY2Nlc3NvciA9IGdldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9k
ZVR5cGUgb3AgPSAob3Bjb2RlSUQgPT0gb3BfcHV0X2dldHRlcl9ieV92YWwpID8gUHV0R2V0dGVy
QnlWYWwgOiBQdXRTZXR0ZXJCeVZhbDsKKyAgICAgICAgICAgIGFkZFRvR3JhcGgob3AsIE9wSW5m
byhhdHRyaWJ1dGVzKSwgYmFzZSwgc3Vic2NyaXB0LCBhY2Nlc3Nvcik7CisgICAgICAgICAgICBO
RVhUX09QQ09ERShvcF9wdXRfZ2V0dGVyX2J5X3ZhbCk7CisgICAgICAgIH0KKwogICAgICAgICBj
YXNlIG9wX3Byb2ZpbGVfdHlwZTogewogICAgICAgICAgICAgTm9kZSogdmFsdWVUb1Byb2ZpbGUg
PSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsK
ICAgICAgICAgICAgIGFkZFRvR3JhcGgoUHJvZmlsZVR5cGUsIE9wSW5mbyhjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5sb2NhdGlvbiksIHZhbHVlVG9Qcm9maWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBkYWZlNWU4MjNjOGM5MGE4NDJm
ZjQ5YTJhZmM5Y2JiMDU5ZmU2M2E2Li45Nzg4YTQ4NGExM2FiYTJmOTFlZTExMzA1MGU2ZTU5YWM2
YWI4NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxp
dGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMu
Y3BwCkBAIC0xNTQsNiArMTU0LDExIEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwo
T3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVjCiAgICAgY2Fz
ZSBvcF9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgIGNhc2Ug
b3BfcHV0X2J5X2lkOgorICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV9pZDoKKyAgICBjYXNlIG9w
X3B1dF9zZXR0ZXJfYnlfaWQ6CisgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX3NldHRlcjoKKyAgICBj
YXNlIG9wX3B1dF9nZXR0ZXJfYnlfdmFsOgorICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9ieV92YWw6
CiAgICAgY2FzZSBvcF9qbXA6CiAgICAgY2FzZSBvcF9qdHJ1ZToKICAgICBjYXNlIG9wX2pmYWxz
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggNmM4NWQ1
OWUzMTA1MzljOWFhYmI0MmNmMWRhMWVjMWNlY2VmMmU5OC4uMTg3NDc3MDU5Y2FkYWE4ZjQxOTM2
MjJlYWM0ZWY2ZmU3M2RkYTNlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmgKQEAgLTM3OSw2ICszNzksMTEgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAg
ICBjYXNlIFB1dEJ5SWQ6CiAgICAgY2FzZSBQdXRCeUlkRmx1c2g6CiAgICAgY2FzZSBQdXRCeUlk
RGlyZWN0OgorICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dFNldHRlckJ5SWQ6
CisgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgorICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6Cisg
ICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKICAgICBjYXNlIEFycmF5UHVzaDoKICAgICBjYXNlIEFy
cmF5UG9wOgogICAgIGNhc2UgQ2FsbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcAppbmRleCA1YzU3ZTAyMmEwZGJiZDMzZjFkZTY0ODViZDUwMTZhZDc5NDBmYzk1Li5jNTA2
M2YxNGM5YTRkNGNmYWMzN2U5Y2I2OGY5NDY0YWY4ZmM3YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC05NSw2ICs5NSwxMSBAQCBib29sIGRvZXNHQyhHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRCeUlkOgogICAgIGNhc2UgUHV0QnlJ
ZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6
CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAg
ICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAgY2Fz
ZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRC
dXR0ZXJmbHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApp
bmRleCBlYjY0MTViM2Y0Y2Q2ZGUwMjZhYTlhOTZiNDY2YTNhMTU1MDUxZmViLi5iNzM2MDQzNWYx
ZjMwOTIxYjkyNTM2YWQ4OWJmYzYxM2IyNDgzOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTEwNTcsNiArMTA1NywyNSBAQCBjbGFzcyBGaXh1
cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAK
KyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6
IHsKKyAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOiB7Cisg
ICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICAg
ICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDogeworICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihu
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+
Y2hpbGQzKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICBjYXNl
IEdldEV4ZWN1dGFibGU6IHsKICAgICAgICAgICAgIGZpeEVkZ2U8RnVuY3Rpb25Vc2U+KG5vZGUt
PmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAppbmRleCBhYzFhNzU3Y2U0NzUxOTNiMzNjMzkyMzFmNTY0N2Y2OGViZGNjNTZjLi43OTA1
OTNiOTg0YmJmODE1MzVmMzIwNmZlMWVkZDNiYWUyNjdlZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGUuaApAQCAtODUzLDYgKzg1Myw5IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAg
Y2FzZSBQdXRCeUlkOgogICAgICAgICBjYXNlIFB1dEJ5SWRGbHVzaDoKICAgICAgICAgY2FzZSBQ
dXRCeUlkRGlyZWN0OgorICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2Ug
UHV0U2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC04NjQsNiArODY3LDM3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgQVNTRVJUKGhh
c0lkZW50aWZpZXIoKSk7CiAgICAgICAgIHJldHVybiBtX29wSW5mbzsKICAgICB9CisKKyAgICBi
b29sIGhhc0FjY2Vzc29yQXR0cmlidXRlcygpCisgICAgeworICAgICAgICBzd2l0Y2ggKG9wKCkp
IHsKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5
SWQ6CisgICAgICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICAgICAgY2FzZSBQdXRHZXR0
ZXJCeVZhbDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgfQorCisgICAgaW50MzJfdCBhY2Nlc3NvckF0dHJpYnV0ZXMoKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKGhhc0FjY2Vzc29yQXR0cmlidXRlcygpKTsKKyAgICAgICAgc3dpdGNo
IChvcCgpKSB7CisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRT
ZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgICAgICAgICBy
ZXR1cm4gbV9vcEluZm8yOworICAgICAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgICAgICBj
YXNlIFB1dFNldHRlckJ5VmFsOgorICAgICAgICAgICAgcmV0dXJuIG1fb3BJbmZvOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQogICAgIAogICAgIGJvb2wgaGFz
UHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAppbmRleCAxMzQ5YTVkZjllZWJhNTEwOTU0YTExMDc0M2U0NTA2NmZi
MzMzYTBhLi5hMGZmZGU5ZjZjMjAyZGM2OWVmYWNmNDMzYmQ1YzRlZmYyMmQ2Y2I1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0xNzksOCArMTc5LDEzIEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhHZXRCeUlkLCBOb2RlUmVz
dWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oR2V0QnlJZEZsdXNoLCBOb2Rl
UmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHV0QnlJZCwgTm9kZU11
c3RHZW5lcmF0ZSkgXAotICAgIG1hY3JvKFB1dEJ5SWRGbHVzaCwgTm9kZU11c3RHZW5lcmF0ZSB8
IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhQdXRCeUlkRmx1c2gsIE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKICAgICBtYWNybyhQdXRCeUlkRGlyZWN0LCBOb2RlTXVzdEdlbmVyYXRlKSBcCisg
ICAgbWFjcm8oUHV0R2V0dGVyQnlJZCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1
dFNldHRlckJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhQdXRBY2Nlc3NvcnNC
eUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0R2V0dGVyQnlWYWwsIE5vZGVN
dXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhQdXRTZXR0ZXJCeVZhbCwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIG1hY3JvKENoZWNrU3RydWN0dXJlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAg
bWFjcm8oR2V0RXhlY3V0YWJsZSwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oUHV0U3RydWN0
dXJlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGE0MTUw
NzUxYTdmYTUwMTJiZGQ3NjNmMTA1YWM3ODAxNmE0NTM3MDMuLjgyY2UzNTRkYzY0YmZhNTgyZDhm
ZTM5MmYzMGU3YzMxZTA2ZmM5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC02NTEsNiAr
NjUxLDExIEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNl
IHsKICAgICAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgogICAgICAgICBjYXNlIFB1dEJ5T2Zmc2V0
OgogICAgICAgICBjYXNlIE11bHRpUHV0QnlPZmZzZXQ6CisgICAgICAgIGNhc2UgUHV0R2V0dGVy
QnlJZDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dEFjY2Vz
c29yc0J5SWQ6CisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0
U2V0dGVyQnlWYWw6CiAgICAgICAgIGNhc2UgREZHOjpKdW1wOgogICAgICAgICBjYXNlIEJyYW5j
aDoKICAgICAgICAgY2FzZSBTd2l0Y2g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCmluZGV4IDllMzU4MGVjNDQ0NWJiZDZhZGZiYzllNWUwOGI4MzY3NmNk
NTM0ODIuLjIyMTM5NmYzNTdiNjhlYWI4NGI1NjBmZGE5YjlkOTJiOThjMjgxODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0xODgsNiArMTg4
LDExIEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgY2FzZSBQdXRCeUlk
Rmx1c2g6CiAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgorICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoK
KyAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgorICAg
IGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKICAgICBjYXNl
IENoZWNrU3RydWN0dXJlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNlIEdldEJ1
dHRlcmZseToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKaW5kZXggMjMxYWI5N2QwY2YxN2Y2NGU2YjVjODA1OTk3ODRjNzA2OTAzNzU5Yi4uOGYy
MWM5M2M2ZmQzMTFkYzdjYWMzM2JlZjkwYWFlMjVkMmI1OTRhYSAxMDA3NTUKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTY3MzksNiArNjczOSw2
MSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjp3cml0ZUJhcnJpZXIoR1BSUmVnIG93bmVyR1BSLCBH
UFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdAogICAgIG93bmVySXNSZW1lbWJlcmVkT3JJbkVk
ZW4ubGluaygmbV9qaXQpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNj
ZXNzb3JCeUlkKE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYWNjZXNzb3Io
dGhpcywgbm9kZS0+Y2hpbGQyKCkpOworCisgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICBjYWxs
T3BlcmF0aW9uKG5vZGUtPm9wKCkgPT0gUHV0R2V0dGVyQnlJZCA/IG9wZXJhdGlvblB1dEdldHRl
ckJ5SWQgOiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRl
bnRpZmllclVJRChub2RlLT5pZGVudGlmaWVyTnVtYmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJp
YnV0ZXMoKSwgYWNjZXNzb3IuZ3ByKCkpOworICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisK
KyAgICBub1Jlc3VsdChub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1
dEFjY2Vzc29yc0J5SWQoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBi
YXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCBnZXR0ZXIodGhp
cywgbm9kZS0+Y2hpbGQyKCkpOworICAgIEpTVmFsdWVPcGVyYW5kIHNldHRlcih0aGlzLCBub2Rl
LT5jaGlsZDMoKSk7CisKKyAgICBmbHVzaFJlZ2lzdGVycygpOworI2lmIFVTRShKU1ZBTFVFNjQp
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIE5vUmVzdWx0LCBi
YXNlLmdwcigpLCBpZGVudGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1iZXIoKSksIG5vZGUt
PmFjY2Vzc29yQXR0cmlidXRlcygpLCBnZXR0ZXIuZ3ByKCksIHNldHRlci5ncHIoKSk7CisjZWxz
ZQorICAgIC8vIFRoZXNlIEpTVmFsdWVzIG1heSBiZSBKU1VuZGVmaW5lZCBPUiBKU0Z1bmN0aW9u
Ki4KKyAgICAvLyBBdCB0aGF0IHRpbWUsCisgICAgLy8gMS4gSWYgdGhlIEpTVmFsdWUgaXMgSlNV
bmRlZmluZWQsIGl0cyBwYXlsb2FkIGJlY29tZXMgbnVsbHB0ci4KKyAgICAvLyAyLiBJZiB0aGUg
SlNWYWx1ZSBpcyBKU0Z1bmN0aW9uKiwgaXRzIHBheWxvYWQgYmVjb21lcyBKU0Z1bmN0aW9uKi4K
KyAgICAvLyBTbyBleHRyYWN0IHBheWxvYWQgYW5kIHBhc3MgaXQgdG8gb3BlcmF0aW9uUHV0R2V0
dGVyU2V0dGVyLiBUaGlzIGhhY2sgaXMgdXNlZCBhcyB0aGUgc2FtZSB3YXkgaW4gYmFzZWxpbmUg
SklULgorICAgIEpTVmFsdWVSZWdzIGdldHRlclJlZ3MgPSBnZXR0ZXIuanNWYWx1ZVJlZ3MoKTsK
KyAgICBKU1ZhbHVlUmVncyBzZXR0ZXJSZWdzID0gc2V0dGVyLmpzVmFsdWVSZWdzKCk7CisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIE5vUmVzdWx0LCBiYXNlLmdw
cigpLCBpZGVudGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1iZXIoKSksIG5vZGUtPmFjY2Vz
c29yQXR0cmlidXRlcygpLCBnZXR0ZXJSZWdzLnBheWxvYWRHUFIoKSwgc2V0dGVyUmVncy5wYXls
b2FkR1BSKCkpOworI2VuZGlmCisgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKworICAgIG5v
UmVzdWx0KG5vZGUpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNz
b3JCeVZhbChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhp
cywgbm9kZS0+Y2hpbGQxKCkpOworICAgIEpTVmFsdWVPcGVyYW5kIHN1YnNjcmlwdCh0aGlzLCBu
b2RlLT5jaGlsZDIoKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYWNjZXNzb3IodGhpcywg
bm9kZS0+Y2hpbGQzKCkpOworCisgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICBhdXRvIG9wZXJh
dGlvbiA9IG5vZGUtPm9wKCkgPT0gUHV0R2V0dGVyQnlWYWwgPyBvcGVyYXRpb25QdXRHZXR0ZXJC
eVZhbCA6IG9wZXJhdGlvblB1dFNldHRlckJ5VmFsOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIE5vUmVzdWx0LCBiYXNlLmdwcigpLCBzdWJzY3JpcHQu
Z3ByKCksIG5vZGUtPmFjY2Vzc29yQXR0cmlidXRlcygpLCBhY2Nlc3Nvci5ncHIoKSk7CisjZWxz
ZQorICAgIEpTVmFsdWVSZWdzIHN1YnNjcmlwdFJlZ3MgPSBzdWJzY3JpcHQuanNWYWx1ZVJlZ3Mo
KTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgTm9SZXN1bHQsIGJhc2UuZ3ByKCksIHN1
YnNjcmlwdFJlZ3MudGFnR1BSKCksIHN1YnNjcmlwdFJlZ3MucGF5bG9hZEdQUigpLCBub2RlLT5h
Y2Nlc3NvckF0dHJpYnV0ZXMoKSwgYWNjZXNzb3IuZ3ByKCkpOworI2VuZGlmCisgICAgbV9qaXQu
ZXhjZXB0aW9uQ2hlY2soKTsKKworICAgIG5vUmVzdWx0KG5vZGUpOworfQorCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDQ1ODhiNWNmZDkyNDFjMmYyNzFhNDA1ZjcwMzViZjc3
OTAzYWMwNzYuLjVmMzE5Y2Q5YTk4YWVmOWQzZWZmNmRmNjU4MTMxODE0ZDBhYWRmNTggMTAwNzU1
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTExNTUs
NiArMTE1NSwxMiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CiAKKyAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDIG9wZXJhdGlvbiwg
R1BSUmVnIHJlZ09wMSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywg
R1BSUmVnIHJlZ09wNCkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3Az
KSwgcmVnT3A0KTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyAgICB9
CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+CiAgICAgSklUQ29tcGlsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0aW9uLCBOb1Jlc3VsdFRhZykK
ICAgICB7CkBAIC0xNTM0LDYgKzE1NDAsMTYgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKGFyZzEp
LCBhcmcyLCBUcnVzdGVkSW1tMzIoYXJnMyksIGFyZzQsIFRydXN0ZWRJbW0zMihhcmc1KSk7CiAg
ICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAgICAgfQorICAgIEpJVENvbXBp
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMgb3BlcmF0aW9uLCBH
UFJSZWcgcmVnT3AxLCBHUFJSZWcgcmVnT3AyLCBpbnQzMl90IG9wMywgR1BSUmVnIHJlZ09wNCkK
KyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEs
IHJlZ09wMiwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7CisgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsKG9wZXJhdGlvbik7CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkpKIG9wZXJhdGlvbiwgR1BSUmVnIHJlZ09wMSwgVW5p
cXVlZFN0cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgR1BSUmVnIHJlZ09wNCwgR1BS
UmVnIHJlZ09wNSkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwg
cmVnT3A0LCByZWdPcDUpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOwor
ICAgIH0KICNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKIC8vIEVuY29kZWRKU1ZhbHVlIGlu
IEpTVkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBpbGVkIGlu
IEFSTSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgZXZlbi1udW1iZXJlZCByZWdpc3RlciAocjAs
IHIyIG9yIFtzcF0pLgpAQCAtMTg1NSw2ICsxODcxLDExIEBAIGNsYXNzIFNwZWN1bGF0aXZlSklU
IHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0z
MihhcmcxKSwgYXJnMlBheWxvYWQsIGFyZzJUYWcsIFRydXN0ZWRJbW0zMihhcmczKSwgYXJnNCwg
VHJ1c3RlZEltbTMyKGFyZzUpKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9u
KTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FQ0paQyBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVn
IGFyZzJQYXlsb2FkLCBpbnQzMl90IGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAgICAgICAg
bV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2FkLCBhcmcy
VGFnLCBUcnVzdGVkSW1tMzIoYXJnMyksIGFyZzQpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2Fs
bChvcGVyYXRpb24pOworICAgIH0KICN1bmRlZiBFQUJJXzMyQklUX0RVTU1ZX0FSRwogI3VuZGVm
IFNINF8zMkJJVF9EVU1NWV9BUkcKICAgICAKQEAgLTIyNDMsNiArMjI2NCw5IEBAIGNsYXNzIFNw
ZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIGNvbXBpbGVUeXBlT2YoTm9kZSopOwogICAgIHZvaWQg
Y29tcGlsZUNoZWNrU3RydWN0dXJlKE5vZGUqLCBHUFJSZWcgY2VsbEdQUiwgR1BSUmVnIHRlbXBH
UFIpOwogICAgIHZvaWQgY29tcGlsZUNoZWNrU3RydWN0dXJlKE5vZGUqKTsKKyAgICB2b2lkIGNv
bXBpbGVQdXRBY2Nlc3NvckJ5SWQoTm9kZSopOworICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29y
c0J5SWQoTm9kZSopOworICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29yQnlWYWwoTm9kZSopOwog
ICAgIAogICAgIHZvaWQgbW92ZVRydWVUbyhHUFJSZWcpOwogICAgIHZvaWQgbW92ZUZhbHNlVG8o
R1BSUmVnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCmluZGV4IGNiMDgwNmNkZDVhNmEyNzMwYzBkMzEyNjEwZjBkNzMxMmQ4MjFmOWUu
LmQ4ZTJkMWI1NTA0NGZiOWEzNDQ3NTlmYzc0Yzk2NGZhYmZlYWY2MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNDE2NCw2
ICs0MTY0LDIzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgIGNhc2Ug
UHV0U2V0dGVyQnlJZDogeworICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JCeUlkKG5vZGUpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6IHsKKyAg
ICAgICAgY29tcGlsZVB1dEFjY2Vzc29yc0J5SWQobm9kZSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDog
eworICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JCeVZhbChub2RlKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorCiAgICAgY2FzZSBHZXRHbG9iYWxMZXhpY2FsVmFyaWFibGU6CiAgICAgY2FzZSBH
ZXRHbG9iYWxWYXI6IHsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9u
UGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNl
cnRpb25QaGFzZS5jcHAKaW5kZXggZDczNmVmZWJiYWM3ZTM4MWIwOTkwNzUwM2ExNjE3OWEzNWQ5
OTFhNy4uNTkwZGE3MmE4Yzk0M2U3MzFjMDdjNWQyZWJiNWRhZjk5MjdjNWFmMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNl
cnRpb25QaGFzZS5jcHAKQEAgLTI3Miw2ICsyNzIsMTUgQEAgY2xhc3MgU3RvcmVCYXJyaWVySW5z
ZXJ0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQogCisgICAgICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgICAg
ICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6
CisgICAgICAgICAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgICAgICAgICAgY2FzZSBQdXRT
ZXR0ZXJCeVZhbDogeworICAgICAgICAgICAgICAgIGNvbnNpZGVyQmFycmllcihtX25vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAg
ICAgICAgY2FzZSBQdXRCeU9mZnNldDogewogICAgICAgICAgICAgICAgIGNvbnNpZGVyQmFycmll
cihtX25vZGUtPmNoaWxkMigpLCBtX25vZGUtPmNoaWxkMygpKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDkyMGRhZTIyY2Y5ZTZjMzNhYTZkY2Fm
ZThjZmYxZWEyMGU1ZDFhMWQuLjQxMGE4Y2JiYTRjY2NjMWU0ZDYxZGQyZDg4M2M0ZjAzYjY2OTQ3
ZWEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNzYyLDkgKzc2MiwxMyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihWX0pJVE9wZXJhdGlvbl9FQywgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNDLCBSZWdpc3RlcklELCBSZWdp
c3RlcklEKTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FQ0laQywgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIGludDMyX3Qs
IFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VDSVpDQywgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIGlu
dDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDLCBSZWdpc3RlcklELCBVbmlx
dWVkU3RyaW5nSW1wbCosIGludDMyX3QsIFJlZ2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDQywgUmVnaXN0ZXJJ
RCwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsK
KyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSlpDLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQz
Ml90LCBSZWdpc3RlcklEKTsKKyNlbHNlCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQs
IFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOworI2VuZGlmCiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUUsIFJlZ2lzdGVy
SUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3Bl
cmF0aW9uX0VaU3ltdGFiSiwgaW50LCBTeW1ib2xUYWJsZSosIFJlZ2lzdGVySUQpOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VaU3lt
dGFiSiwgaW50LCBTeW1ib2xUYWJsZSosIFJlZ2lzdGVySUQpOwpAQCAtNzc1LDEyICs3NzksMTAg
QEAgbmFtZXNwYWNlIEpTQyB7CiAjZWxzZQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiwgUmVnaXN0ZXJJ
RCwgUmVnaXN0ZXJJRCk7CiAjZW5kaWYKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkosIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50
aWZpZXIqLCBpbnQzMl90LCBSZWdpc3RlcklEKTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkpKLCBSZWdpc3RlcklELCBjb25z
dCBJZGVudGlmaWVyKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7Ci0gICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKWkos
IFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOwogI2lmIFVTRShK
U1ZBTFVFNjQpCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRl9K
SVRPcGVyYXRpb25fRUZKWlosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lz
dGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VTc2lKSkksIFN0cnVjdHVyZVN0dWJJbmZvKiwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laSkosIFJlZ2lzdGVySUQsIFVuaXF1ZWRT
dHJpbmdJbXBsKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAjZWxzZQogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VT
c2lKSkksIFN0cnVjdHVyZVN0dWJJbmZvKiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCBhMzRiN2EwYzlkZGY1ZWZmOTY2NjRlOTM0
MWMyNmY0NDk1NjQxZDU2Li5iNWVhMDgxMzRiODQ0ODJmOTVhNmE0NzgxNjYwZDIzNDE3YzhhMWUy
IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtNDA2LDYgKzQwNiwx
MSBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZQogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aENh
bGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RUNJWkMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlk
ZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQpCit7CisgICAgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0
ZWRJbW0zMihvcDMpLCByZWdPcDQpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKG9wZXJhdGlvbik7Cit9CiAKICNpZiBVU0UoSlNWQUxVRTY0KQogQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25f
RUpaWiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBpbnQzMl90IGFyZzIsIGludDMyX3QgYXJnMykK
QEAgLTU0MSwxOSArNTQ2LDEzIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
SklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvCiAgICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lO
TElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRUpJZFpKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIq
IGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQpCi17Ci0gICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRy
dXN0ZWRJbW0zMihvcDMpLCByZWdPcDQpOwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrKG9wZXJhdGlvbik7Ci19Ci0KLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSkogb3BlcmF0aW9u
LCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGludDMyX3Qg
b3AzLCBSZWdpc3RlcklEIHJlZ09wNCwgUmVnaXN0ZXJJRCByZWdPcDUpCitBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
Q0laSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlk
ZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1
KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1Q
dHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0LCByZWdPcDUpOwogICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3Bl
cmF0aW9uX0VKSlpKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVn
T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQpCitBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQyBv
cGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMiwgaW50MzJfdCBv
cDMsIFJlZ2lzdGVySUQgcmVnT3A0KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShyZWdPcDEsIHJlZ09wMiwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7CiAgICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKQEAgLTY3NSwxMyArNjc0
LDcgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oU19KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGkKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQyBvcGVyYXRp
b24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9wMiwgaW50MzJf
dCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQotewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwg
cmVnT3A0KTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b24pOwotfQotCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09w
MSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJl
Z09wNCwgUmVnaXN0ZXJJRCByZWdPcDUpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0Mgb3BlcmF0aW9uLCBS
ZWdpc3RlcklEIHJlZ09wMSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9w
MywgUmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQogewogICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVz
dGVkSW1tMzIob3AzKSwgcmVnT3A0LCByZWdPcDUpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0
aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAppbmRleCAyYjUzMGY1Zjc4YzlmNGY3NDlkZWJiMDQ3OGRiMTZmMTI4
YjI4NzFhLi5iYmU3MDdiZTNlMzIwYzIzNzU1NGQ1MzM3MTUxZTMwNTU0YTYyMjY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTEzNTMsMTA5ICsx
MzUzLDc5IEBAIHN0YXRpYyB2b2lkIHB1dEFjY2Vzc29yQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogYmFzZSwgSlNWYWx1ZSBzdWJzY3JpcHQsCiAgICAgICAgIGJhc2UtPnB1dFNldHRl
cihleGVjLCBwcm9wZXJ0eUtleSwgYWNjZXNzb3IsIGF0dHJpYnV0ZSk7CiB9CiAKLSNpZiBVU0Uo
SlNWQUxVRTY0KQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZp
ZXIqIGlkZW50aWZpZXIsIGludDMyX3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdl
dHRlclZhbHVlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhl
Y1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50
MzJfdCBvcHRpb25zLCBKU0NlbGwqIGdldHRlcikKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKIAotICAgIEFT
U0VSVChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZhbHVlKS5pc09iamVjdCgpKTsKLSAg
ICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT2Jq
ZWN0VmFsdWUpKTsKKyAgICBBU1NFUlQob2JqZWN0ICYmIG9iamVjdC0+aXNPYmplY3QoKSk7Cisg
ICAgSlNPYmplY3QqIGJhc2VPYmogPSBvYmplY3QtPmdldE9iamVjdCgpOwogCi0gICAgSlNWYWx1
ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEdldHRlclZhbHVlKTsKLSAgICBBU1NF
UlQoZ2V0dGVyLmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCAqaWRl
bnRpZmllciwgYXNPYmplY3QoZ2V0dGVyKSwgb3B0aW9ucyk7CisgICAgQVNTRVJUKGdldHRlci0+
aXNPYmplY3QoKSk7CisgICAgYmFzZU9iai0+cHV0R2V0dGVyKGV4ZWMsIHVpZCwgZ2V0dGVyLCBv
cHRpb25zKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50
aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFNldHRlclZhbHVlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQo
RXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwg
aW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikKIHsKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKIAotICAg
IEFTU0VSVChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZhbHVlKS5pc09iamVjdCgpKTsK
LSAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
T2JqZWN0VmFsdWUpKTsKKyAgICBBU1NFUlQob2JqZWN0ICYmIG9iamVjdC0+aXNPYmplY3QoKSk7
CisgICAgSlNPYmplY3QqIGJhc2VPYmogPSBvYmplY3QtPmdldE9iamVjdCgpOwogCi0gICAgSlNW
YWx1ZSBzZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNldHRlclZhbHVlKTsKLSAgICBB
U1NFUlQoc2V0dGVyLmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVjLCAq
aWRlbnRpZmllciwgYXNPYmplY3Qoc2V0dGVyKSwgb3B0aW9ucyk7CisgICAgQVNTRVJUKHNldHRl
ci0+aXNPYmplY3QoKSk7CisgICAgYmFzZU9iai0+cHV0U2V0dGVyKGV4ZWMsIHVpZCwgc2V0dGVy
LCBvcHRpb25zKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPYmplY3RWYWx1ZSwg
SWRlbnRpZmllciogaWRlbnRpZmllciwgaW50MzJfdCBhdHRyaWJ1dGUsCi0gICAgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEdldHRlclZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyVmFs
dWUpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoRXhlY1N0YXRl
KiBleGVjLCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGlu
dDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdldHRlcikKIHsKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKIAotICAg
IEFTU0VSVChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZhbHVlKS5pc09iamVjdCgpKTsK
LSAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
T2JqZWN0VmFsdWUpKTsKLQotICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0
ZXI6OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLQotICAgIEpTVmFs
dWUgZ2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRHZXR0ZXJWYWx1ZSk7Ci0gICAgSlNW
YWx1ZSBzZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNldHRlclZhbHVlKTsKLSAgICBB
U1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkgfHwgZ2V0dGVyLmlzVW5kZWZpbmVkKCkpOwotICAgIEFT
U0VSVChzZXR0ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNVbmRlZmluZWQoKSk7Ci0gICAgQVNT
RVJUKGdldHRlci5pc09iamVjdCgpIHx8IHNldHRlci5pc09iamVjdCgpKTsKLQotICAgIGlmICgh
Z2V0dGVyLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIGFjY2Vzc29yLT5zZXRHZXR0ZXIodm0sIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXNPYmplY3QoZ2V0dGVyKSk7Ci0gICAgaWYgKCFz
ZXR0ZXIuaXNVbmRlZmluZWQoKSkKLSAgICAgICAgYWNjZXNzb3ItPnNldFNldHRlcih2bSwgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhc09iamVjdChzZXR0ZXIpKTsKLSAgICBiYXNlT2Jq
LT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCAqaWRlbnRpZmllciwgYWNjZXNzb3IsIGF0dHJpYnV0
ZSk7CisgICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBhc09iamVjdChiYXNlKSwgSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1dGUsIGFzT2JqZWN0KGdldHRlciksIEFj
Y2Vzc29yVHlwZTo6R2V0dGVyKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEdldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVyKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dFNldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIpCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKCZ2bSwgZXhlYyk7Ci0gICAgSlNPYmplY3QqIGJhc2UgPSBhc09iamVjdChKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZEJhc2UpKTsKLSAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkU3Vic2NyaXB0KTsKLSAgICBKU09iamVjdCogZ2V0dGVyID0gYXNPYmplY3Qo
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRHZXR0ZXIpKTsKLSAgICBwdXRBY2Nlc3NvckJ5VmFsKGV4
ZWMsIGJhc2UsIHN1YnNjcmlwdCwgYXR0cmlidXRlLCBnZXR0ZXIsIEFjY2Vzc29yVHlwZTo6R2V0
dGVyKTsKLX0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU2V0dGVyKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwotICAgIEpTT2JqZWN0KiBiYXNlID0gYXNPYmpl
Y3QoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKSk7Ci0gICAgSlNWYWx1ZSBzdWJzY3JpcHQg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7Ci0gICAgSlNPYmplY3QqIHNldHRl
ciA9IGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU2V0dGVyKSk7Ci0gICAgcHV0QWNj
ZXNzb3JCeVZhbChleGVjLCBiYXNlLCBzdWJzY3JpcHQsIGF0dHJpYnV0ZSwgc2V0dGVyLCBBY2Nl
c3NvclR5cGU6OlNldHRlcik7CisgICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBhc09iamVjdChi
YXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1dGUsIGFzT2Jq
ZWN0KHNldHRlciksIEFjY2Vzc29yVHlwZTo6U2V0dGVyKTsKIH0KIAotI2Vsc2UKLXZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxs
KiBvYmplY3QsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3Qgb3B0aW9ucywgSlNDZWxs
KiBnZXR0ZXIpCisjaWYgVVNFKEpTVkFMVUU2NCkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgVW5pcXVl
ZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBhdHRyaWJ1dGUsCisgICAgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEdldHRlclZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKCZ2bSwgZXhlYyk7CiAKICAgICBBU1NFUlQob2JqZWN0ICYmIG9iamVjdC0+aXNPYmplY3Qo
KSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBvYmplY3QtPmdldE9iamVjdCgpOworICAgIEpT
T2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3Qob2JqZWN0KTsKIAotICAgIEFTU0VSVChnZXR0ZXIt
PmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCAqaWRlbnRpZmllciwg
Z2V0dGVyLCBvcHRpb25zKTsKLX0KLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNl
dHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlbnRpZmllciogaWRl
bnRpZmllciwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikKLXsKLSAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVj
KTsKKyAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0s
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CiAKLSAgICBBU1NFUlQob2JqZWN0ICYmIG9i
amVjdC0+aXNPYmplY3QoKSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBvYmplY3QtPmdldE9i
amVjdCgpOworICAgIEpTVmFsdWUgZ2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRHZXR0
ZXJWYWx1ZSk7CisgICAgSlNWYWx1ZSBzZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNl
dHRlclZhbHVlKTsKKyAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkgfHwgZ2V0dGVyLmlzVW5k
ZWZpbmVkKCkpOworICAgIEFTU0VSVChzZXR0ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNVbmRl
ZmluZWQoKSk7CisgICAgQVNTRVJUKGdldHRlci5pc09iamVjdCgpIHx8IHNldHRlci5pc09iamVj
dCgpKTsKIAotICAgIEFTU0VSVChzZXR0ZXItPmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1
dFNldHRlcihleGVjLCAqaWRlbnRpZmllciwgc2V0dGVyLCBvcHRpb25zKTsKKyAgICBpZiAoIWdl
dHRlci5pc1VuZGVmaW5lZCgpKQorICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGFzT2JqZWN0KGdldHRlcikpOworICAgIGlmICghc2V0
dGVyLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXNPYmplY3Qoc2V0dGVyKSk7CisgICAgYmFzZU9iai0+
cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgdWlkLCBhY2Nlc3NvciwgYXR0cmlidXRlKTsKIH0KIAor
I2Vsc2UKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlbnRpZmllciogaWRlbnRpZmllciwgaW50MzJf
dCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVyLCBKU0NlbGwqIHNldHRlcikKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBl
eGVjKTsKIAogICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09iamVjdCgpKTsKLSAgICBK
U09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7CisgICAgSlNPYmplY3QqIGJh
c2VPYmogPSBhc09iamVjdChvYmplY3QpOwogCiAgICAgR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9
IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwog
CkBAIC0xNDY5LDIzICsxNDM5LDYgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdl
dHRlclNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGUKICAgICAgICAg
YWNjZXNzb3ItPnNldFNldHRlcih2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzZXR0
ZXItPmdldE9iamVjdCgpKTsKICAgICBiYXNlT2JqLT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCAq
aWRlbnRpZmllciwgYWNjZXNzb3IsIGF0dHJpYnV0ZSk7CiB9Ci0KLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2Vs
bCogZ2V0dGVyKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwotCi0gICAgcHV0QWNjZXNzb3JCeVZhbChleGVj
LCBhc09iamVjdChiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRy
aWJ1dGUsIGFzT2JqZWN0KGdldHRlciksIEFjY2Vzc29yVHlwZTo6R2V0dGVyKTsKLX0KLQotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywg
SlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0
dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7Ci0KLSAgICBwdXRBY2Nl
c3NvckJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1
YnNjcmlwdCksIGF0dHJpYnV0ZSwgYXNPYmplY3Qoc2V0dGVyKSwgQWNjZXNzb3JUeXBlOjpTZXR0
ZXIpOwotfQotCiAjZW5kaWYKIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcFNjb3Bl
KEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBzY29wZVJlZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggYWFjYTM1YTIxZDA5N2E2NmI0ODFmYTUyMDVjNjg1
MTMyMzNjZDU2Yi4uZjZjNTdmM2QxY2I3ZTQ1NjIyNjM2MmE5MmEwZmQwOTk0MDU5OWQ0NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTE4OSw4ICsxODks
OSBAQCB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDKShFeGVj
U3RhdGUqLCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVy
YXRpb25fRUNiKShFeGVjU3RhdGUqLCBDb2RlQmxvY2sqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BF
UkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwq
KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJY2YpKEV4
ZWNTdGF0ZSosIEpTQ2VsbCosIElubGluZUNhbGxGcmFtZSopOwotdHlwZWRlZiB2b2lkIEpJVF9P
UEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0laQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRl
bnRpZmllciosIGludDMyX3QsIEpTQ2VsbCopOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FQ0laQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIq
LCBpbnQzMl90LCBKU0NlbGwqLCBKU0NlbGwqKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9O
ICgqVl9KSVRPcGVyYXRpb25fRUNJWkMpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJp
bmdJbXBsKiwgaW50MzJfdCwgSlNDZWxsKik7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAo
KlZfSklUT3BlcmF0aW9uX0VDSVpDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmlu
Z0ltcGwqLCBpbnQzMl90LCBKU0NlbGwqLCBKU0NlbGwqKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BF
UkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJWkpKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlx
dWVkU3RyaW5nSW1wbCosIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7
CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSlpDKShFeGVj
U3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgSlNDZWxsKik7CiB0eXBl
ZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDQ0ljZikoRXhlY1N0YXRl
KiwgSlNDZWxsKiwgSlNDZWxsKiwgSW5saW5lQ2FsbEZyYW1lKik7CiB0eXBlZGVmIHZvaWQgSklU
X09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSkopKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CkBAIC0yMDAsOSArMjAxLDYgQEAgdHlwZWRl
ZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIEpTQ2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJh
dGlvbl9FWlN5bXRhYkopKEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5bWJvbFRhYmxlKiwgRW5jb2Rl
ZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9F
SikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJ
T04gKCpWX0pJVE9wZXJhdGlvbl9FSkNJKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSlND
ZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgq
Vl9KSVRPcGVyYXRpb25fRUpJZFpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRp
ZmllciosIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUpJZFpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IElkZW50aWZpZXIqLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwot
dHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpaSikoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNW
YWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkop
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpKQXAp
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIEFycmF5UHJvZmlsZSopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9w
ZXJhdGlvbl9FSkpKQnkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwpAQCAtMzEzLDE4ICszMTEsMTQgQEAgdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlYnVnKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9J
TlRFUk5BTDsKIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGlt
aXplKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKICNlbmRpZgogdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SW5kZXgoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IGludDMyX3QsIEVuY29kZWRKU1ZhbHVlKTsKLSNpZiBVU0UoSlNWQUxVRTY0KQotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIElkZW50aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5U
RVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRH
ZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQz
Ml90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5j
b2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotI2Vsc2UK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIElkZW50aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5B
TDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSos
IEpTQ2VsbCosIElkZW50aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRF
Uk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0
YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqLCBK
U0NlbGwqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0
dGVyQnlJZChFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3Qg
b3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwq
LCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbChFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVk
SlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqLCBKU0NlbGwq
LCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCopIFdURl9JTlRFUk5B
TDsKKyNpZiBVU0UoSlNWQUxVRTY0KQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdl
dHRlclNldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMy
X3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5B
TDsKKyNlbHNlCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4
ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1dGUs
IEpTQ2VsbCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKICNlbmRpZgogdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1c2hGdW5jdGlvbk5hbWVTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90LCBT
eW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFM
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApp
bmRleCBiMTQ2YjIwOTg3NjhiMmE4ZmM2YTk5MWQ0M2RlYjQ1MTU0NjRlMjFiLi4zMTc5Zjk4ZTU4
MDMwZDYxZjBlYjZjYTE0ZjliMzI0ODZhNDQ0NGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtNDkyLDcgKzQ5Miw3IEBAIHZvaWQg
SklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQsIHJlZ1QwKTsKICAgICBpbnQzMl90IG9wdGlvbnMgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3Ry
dWN0aW9uWzRdLnUub3BlcmFuZCwgcmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
UHV0R2V0dGVyQnlJZCwgcmVnVDAsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwgb3B0aW9ucywgcmVnVDEpOworICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgcmVnVDAsIG1fY29kZUJsb2NrLT5pZGVudGlmaWVy
KGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLmltcGwoKSwgb3B0aW9ucywgcmVnVDEp
OwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfc2V0dGVyX2J5X2lkKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
cHV0X3NldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVt
aXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVn
VDApOwogICAgIGludDMyX3Qgb3B0aW9ucyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQ7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5v
cGVyYW5kLCByZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRTZXR0ZXJCeUlk
LCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQpLCBvcHRpb25zLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Q
dXRTZXR0ZXJCeUlkLCByZWdUMCwgbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZCkuaW1wbCgpLCBvcHRpb25zLCByZWdUMSk7CiB9CiAKIHZvaWQg
SklUOjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCkBAIC01MDksNyArNTA5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9z
ZXR0ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQzMl90IGF0dHJp
YnV0ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMSk7CiAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kLCBy
ZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1Qw
LCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZCksIGF0dHJpYnV0ZSwgcmVnVDEsIHJlZ1QyKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blB1dEdldHRlclNldHRlciwgcmVnVDAsIG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLmltcGwoKSwgYXR0cmlidXRlLCByZWdUMSwgcmVnVDIp
OwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263461</attachid>
            <date>2015-10-19 02:46:33 -0700</date>
            <delta_ts>2015-10-19 03:04:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148860-20151019184551.patch</filename>
            <type>text/plain</type>
            <size>45841</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
Y2JlOWVkMDZkYTAwNmYxOGU1ODE2YjkyOWQ0NWUzNTQwYmYwN2JkLi5hNmFiNGZjODQ0MzE4NDEx
OGI2M2E1ZjkzNDY3NDQwNWJlMjQwZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAxNS0xMC0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBBZGQgREZHL0ZUTCBzdXBwb3J0IGZvciBhY2Nlc3NvciBw
dXQgb3BlcmF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzSWRlbnRpZmllcik6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6aGFzQWNjZXNzb3JBdHRyaWJ1dGVzKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjphY2Nlc3NvckF0dHJpYnV0ZXMpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVj
dXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yc0J5SWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcDoKKyAg
ICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5D
b21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6
CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlv
bnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0
ZXJfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX3NldHRlcik6CisKIDIwMTUt
MTAtMTggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
UHJvbWlzZSBjb25zdHJ1Y3RvciBzaG91bGQgdGhyb3cgd2hlbiBub3QgY2FsbGVkIHdpdGggIm5l
dyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaAppbmRleCBmMjhjYzdhZmYwNmI5OTMzMzUwNGZmYTU2NGE0YzNj
N2QxZTUyNmEyLi5hNzAxODA2YTEzZDkxNzg5OWQ2NzIxMmQwMTU3ODQ5MTlmZTRmMzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCkBAIC0yMzYzLDYgKzIzNjMsMTUgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKICAgICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJl
ckxpbWl0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAgY2FzZSBQdXRHZXR0ZXJCeUlk
OgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6Cisg
ICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAg
ICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBJbjogewogICAgICAgICAv
LyBGSVhNRTogV2UgY2FuIGRldGVybWluZSB3aGVuIHRoZSBwcm9wZXJ0eSBkZWZpbml0ZWx5IGV4
aXN0cyBiYXNlZCBvbiBhYnN0cmFjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA2OWY1NGYxZDM1MTA1MDY3MGE1MDdiMjRmM2Y3Njk0
NWFkNmI2YTA2Li4zYWVlNzgxNjBkNWNhOWQwMmVmNWIwZGYwODk0NDI5ZGRlN2U2ODllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAt
Mzc0OSw2ICszNzQ5LDM4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWdu
ZWQgbGltaXQpCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9wdXRfYnlfaWQpOwogICAgICAg
ICB9CiAKKyAgICAgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X2lkOgorICAgICAgICBjYXNlIG9w
X3B1dF9zZXR0ZXJfYnlfaWQ6IHsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZp
ZXJSZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kXTsKKyAgICAgICAgICAgIHVu
c2lnbmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAg
ICAgICAgICAgTm9kZSogYWNjZXNzb3IgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGVUeXBlIG9wID0gKG9wY29k
ZUlEID09IG9wX3B1dF9nZXR0ZXJfYnlfaWQpID8gUHV0R2V0dGVyQnlJZCA6IFB1dFNldHRlckJ5
SWQ7CisgICAgICAgICAgICBhZGRUb0dyYXBoKG9wLCBPcEluZm8oaWRlbnRpZmllck51bWJlciks
IE9wSW5mbyhhdHRyaWJ1dGVzKSwgYmFzZSwgYWNjZXNzb3IpOworICAgICAgICAgICAgTkVYVF9P
UENPREUob3BfcHV0X2dldHRlcl9ieV9pZCk7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIG9w
X3B1dF9nZXR0ZXJfc2V0dGVyOiB7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgICAgICAg
ICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9pbmxpbmVTdGFja1RvcC0+bV9pZGVudGlm
aWVyUmVtYXBbY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZF07CisgICAgICAgICAgICB1
bnNpZ25lZCBhdHRyaWJ1dGVzID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAg
ICAgICAgICAgIE5vZGUqIGdldHRlciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3Ry
dWN0aW9uWzRdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZSogc2V0dGVyID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kKSk7CisgICAgICAg
ICAgICBhZGRUb0dyYXBoKFB1dEFjY2Vzc29yc0J5SWQsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVy
KSwgT3BJbmZvKGF0dHJpYnV0ZXMpLCBiYXNlLCBnZXR0ZXIsIHNldHRlcik7CisgICAgICAgICAg
ICBORVhUX09QQ09ERShvcF9wdXRfZ2V0dGVyX3NldHRlcik7CisgICAgICAgIH0KKworICAgICAg
ICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfdmFsOgorICAgICAgICBjYXNlIG9wX3B1dF9zZXR0ZXJf
YnlfdmFsOiB7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBzdWJz
Y3JpcHQgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJh
bmQpKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kOworICAgICAgICAgICAgTm9kZSogYWNjZXNzb3IgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAg
IE5vZGVUeXBlIG9wID0gKG9wY29kZUlEID09IG9wX3B1dF9nZXR0ZXJfYnlfdmFsKSA/IFB1dEdl
dHRlckJ5VmFsIDogUHV0U2V0dGVyQnlWYWw7CisgICAgICAgICAgICBhZGRUb0dyYXBoKG9wLCBP
cEluZm8oYXR0cmlidXRlcyksIGJhc2UsIHN1YnNjcmlwdCwgYWNjZXNzb3IpOworICAgICAgICAg
ICAgTkVYVF9PUENPREUob3BfcHV0X2dldHRlcl9ieV92YWwpOworICAgICAgICB9CisKICAgICAg
ICAgY2FzZSBvcF9wcm9maWxlX3R5cGU6IHsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlVG9Qcm9m
aWxlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
KSk7CiAgICAgICAgICAgICBhZGRUb0dyYXBoKFByb2ZpbGVUeXBlLCBPcEluZm8oY3VycmVudElu
c3RydWN0aW9uWzJdLnUubG9jYXRpb24pLCB2YWx1ZVRvUHJvZmlsZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggZGFmZTVlODIzYzhjOTBh
ODQyZmY0OWEyYWZjOWNiYjA1OWZlNjNhNi4uOTc4OGE0ODRhMTNhYmEyZjkxZWUxMTMwNTBlNmU1
OWFjNmFiODQzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMTU0LDYgKzE1NCwxMSBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxl
dmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAg
IGNhc2Ugb3BfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICBj
YXNlIG9wX3B1dF9ieV9pZDoKKyAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6CisgICAgY2Fz
ZSBvcF9wdXRfc2V0dGVyX2J5X2lkOgorICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9zZXR0ZXI6Cisg
ICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X3ZhbDoKKyAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlf
dmFsOgogICAgIGNhc2Ugb3Bfam1wOgogICAgIGNhc2Ugb3BfanRydWU6CiAgICAgY2FzZSBvcF9q
ZmFsc2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJp
emUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDZj
ODVkNTllMzEwNTM5YzlhYWJiNDJjZjFkYTFlYzFjZWNlZjJlOTguLjE4NzQ3NzA1OWNhZGFhOGY0
MTkzNjIyZWFjNGVmNmZlNzNkZGEzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCkBAIC0zNzksNiArMzc5LDExIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1
CiAgICAgY2FzZSBQdXRCeUlkOgogICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0
QnlJZERpcmVjdDoKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJC
eUlkOgorICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFs
OgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAgY2FzZSBBcnJheVB1c2g6CiAgICAgY2Fz
ZSBBcnJheVBvcDoKICAgICBjYXNlIENhbGw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAKaW5kZXggNWM1N2UwMjJhMGRiYmQzM2YxZGU2NDg1YmQ1MDE2YWQ3OTQwZmM5NS4u
YzUwNjNmMTRjOWE0ZDRjZmFjMzdlOWNiNjhmOTQ2NGFmOGZjN2I1MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtOTUsNiArOTUsMTEgQEAgYm9vbCBkb2VzR0Mo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgUHV0QnlJZDoKICAgICBjYXNlIFB1
dEJ5SWRGbHVzaDoKICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CisgICAgY2FzZSBQdXRHZXR0ZXJC
eUlkOgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6
CisgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAg
IGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgIGNhc2Ug
R2V0QnV0dGVyZmx5OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKaW5kZXggZWI2NDE1YjNmNGNkNmRlMDI2YWE5YTk2YjQ2NmEzYTE1NTA1MWZlYi4uYmU1ZmQ1
M2FmMjFmYTNlODRiM2ZiM2Q5NGY2Mzc1OTJjMzBlMGM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMDU3LDYgKzEwNTcsMjUgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJC
eUlkOiB7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNC
eUlkOiB7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFB1dEdldHRl
ckJ5VmFsOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAgICAgICAgICBmaXhF
ZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4RWRnZTxL
bm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisKICAgICAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgICAgICBmaXhFZGdl
PEZ1bmN0aW9uVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggYWMxYTc1N2NlNDc1MTkzYjMzYzM5MjMxZjU2
NDdmNjhlYmRjYzU2Yy4uNzkwNTkzYjk4NGJiZjgxNTM1ZjMyMDZmZTFlZGQzYmFlMjY3ZWU1YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTg1Myw2ICs4NTMsOSBAQCBzdHJ1
Y3QgTm9kZSB7CiAgICAgICAgIGNhc2UgUHV0QnlJZDoKICAgICAgICAgY2FzZSBQdXRCeUlkRmx1
c2g6CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJC
eUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0QWNjZXNz
b3JzQnlJZDoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODY0LDYgKzg2NywzNyBAQCBzdHJ1Y3QgTm9kZSB7
CiAgICAgICAgIEFTU0VSVChoYXNJZGVudGlmaWVyKCkpOwogICAgICAgICByZXR1cm4gbV9vcElu
Zm87CiAgICAgfQorCisgICAgYm9vbCBoYXNBY2Nlc3NvckF0dHJpYnV0ZXMoKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoIChvcCgpKSB7CisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAg
ICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6Cisg
ICAgICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludDMyX3QgYWNjZXNzb3JB
dHRyaWJ1dGVzKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChoYXNBY2Nlc3NvckF0dHJpYnV0ZXMo
KSk7CisgICAgICAgIHN3aXRjaCAob3AoKSkgeworICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6
CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNC
eUlkOgorICAgICAgICAgICAgcmV0dXJuIG1fb3BJbmZvMjsKKyAgICAgICAgY2FzZSBQdXRHZXR0
ZXJCeVZhbDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKKyAgICAgICAgICAgIHJldHVy
biBtX29wSW5mbzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0K
ICAgICAKICAgICBib29sIGhhc1Byb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKCkKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggMTM0OWE1ZGY5ZWViYTUx
MDk1NGExMTA3NDNlNDUwNjZmYjMzM2EwYS4uYTBmZmRlOWY2YzIwMmRjNjllZmFjZjQzM2JkNWM0
ZWZmMjJkNmNiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAt
MTc5LDggKzE3OSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFj
cm8oR2V0QnlJZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KEdldEJ5SWRGbHVzaCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1h
Y3JvKFB1dEJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhQdXRCeUlkRmx1c2gs
IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0QnlJ
ZEZsdXNoLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHV0QnlJZERpcmVjdCwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1dEdldHRlckJ5SWQsIE5vZGVNdXN0R2VuZXJh
dGUpIFwKKyAgICBtYWNybyhQdXRTZXR0ZXJCeUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAg
bWFjcm8oUHV0QWNjZXNzb3JzQnlJZCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1
dEdldHRlckJ5VmFsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0U2V0dGVyQnlW
YWwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1N0cnVjdHVyZSwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldEV4ZWN1dGFibGUsIE5vZGVSZXN1bHRKUykgXAog
ICAgIG1hY3JvKFB1dFN0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0ZSkgXApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcAppbmRleCBhNDE1MDc1MWE3ZmE1MDEyYmRkNzYzZjEwNWFjNzgwMTZhNDUzNzAzLi44
MmNlMzU0ZGM2NGJmYTU4MmQ4ZmUzOTJmMzBlN2MzMWUwNmZjOTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcApAQCAtNjUxLDYgKzY1MSwxMSBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICAg
ICAgY2FzZSBQdXRCeU9mZnNldDoKICAgICAgICAgY2FzZSBNdWx0aVB1dEJ5T2Zmc2V0OgorICAg
ICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAg
ICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgorICAgICAgICBjYXNlIFB1dEdldHRlckJ5VmFs
OgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAgICAgICBjYXNlIERGRzo6SnVtcDoK
ICAgICAgICAgY2FzZSBCcmFuY2g6CiAgICAgICAgIGNhc2UgU3dpdGNoOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA5ZTM1ODBlYzQ0NDViYmQ2
YWRmYmM5ZTVlMDhiODM2NzZjZDUzNDgyLi4yMjEzOTZmMzU3YjY4ZWFiODRiNTYwZmRhOWI5ZDky
Yjk4YzI4MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaApAQCAtMTg4LDYgKzE4OCwxMSBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0
ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRCeUlk
OgogICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICBj
YXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0
QWNjZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0
dGVyQnlWYWw6CiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFi
bGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDIzMWFiOTdkMGNmMTdmNjRlNmI1YzgwNTk5
Nzg0YzcwNjkwMzc1OWIuLjhmMjFjOTNjNmZkMzExZGM3Y2FjMzNiZWY5MGFhZTI1ZDJiNTk0YWEg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CkBAIC02NzM5LDYgKzY3MzksNjEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6d3JpdGVCYXJyaWVy
KEdQUlJlZyBvd25lckdQUiwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXQKICAgICBvd25l
cklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlJZChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0
ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGFjY2Vzc29yKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKworICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CisgICAgY2FsbE9wZXJhdGlvbihub2RlLT5vcCgpID09IFB1dEdldHRlckJ5SWQg
PyBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkIDogb3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgTm9SZXN1
bHQsIGJhc2UuZ3ByKCksIGlkZW50aWZpZXJVSUQobm9kZS0+aWRlbnRpZmllck51bWJlcigpKSwg
bm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yLmdwcigpKTsKKyAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKE5vZGUqIG5vZGUpCit7CisgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgSlNWYWx1
ZU9wZXJhbmQgZ2V0dGVyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICBKU1ZhbHVlT3BlcmFu
ZCBzZXR0ZXIodGhpcywgbm9kZS0+Y2hpbGQzKCkpOworCisgICAgZmx1c2hSZWdpc3RlcnMoKTsK
KyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVy
U2V0dGVyLCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRlbnRpZmllclVJRChub2RlLT5pZGVudGlm
aWVyTnVtYmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgZ2V0dGVyLmdwcigpLCBz
ZXR0ZXIuZ3ByKCkpOworI2Vsc2UKKyAgICAvLyBUaGVzZSBKU1ZhbHVlcyBtYXkgYmUgSlNVbmRl
ZmluZWQgT1IgSlNGdW5jdGlvbiouCisgICAgLy8gQXQgdGhhdCB0aW1lLAorICAgIC8vIDEuIElm
IHRoZSBKU1ZhbHVlIGlzIEpTVW5kZWZpbmVkLCBpdHMgcGF5bG9hZCBiZWNvbWVzIG51bGxwdHIu
CisgICAgLy8gMi4gSWYgdGhlIEpTVmFsdWUgaXMgSlNGdW5jdGlvbiosIGl0cyBwYXlsb2FkIGJl
Y29tZXMgSlNGdW5jdGlvbiouCisgICAgLy8gU28gZXh0cmFjdCBwYXlsb2FkIGFuZCBwYXNzIGl0
IHRvIG9wZXJhdGlvblB1dEdldHRlclNldHRlci4gVGhpcyBoYWNrIGlzIHVzZWQgYXMgdGhlIHNh
bWUgd2F5IGluIGJhc2VsaW5lIEpJVC4KKyAgICBKU1ZhbHVlUmVncyBnZXR0ZXJSZWdzID0gZ2V0
dGVyLmpzVmFsdWVSZWdzKCk7CisgICAgSlNWYWx1ZVJlZ3Mgc2V0dGVyUmVncyA9IHNldHRlci5q
c1ZhbHVlUmVncygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVy
LCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRlbnRpZmllclVJRChub2RlLT5pZGVudGlmaWVyTnVt
YmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgZ2V0dGVyUmVncy5wYXlsb2FkR1BS
KCksIHNldHRlclJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbmRpZgorICAgIG1faml0LmV4Y2VwdGlv
bkNoZWNrKCk7CisKKyAgICBub1Jlc3VsdChub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlT3BlcmFu
ZCBzdWJzY3JpcHQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGFjY2Vzc29yKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKKworICAgIGZsdXNoUmVnaXN0ZXJz
KCk7CisgICAgYXV0byBvcGVyYXRpb24gPSBub2RlLT5vcCgpID09IFB1dEdldHRlckJ5VmFsID8g
b3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwgOiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbDsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBOb1Jlc3VsdCwgYmFz
ZS5ncHIoKSwgc3Vic2NyaXB0LmdwcigpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgYWNj
ZXNzb3IuZ3ByKCkpOworI2Vsc2UKKyAgICBKU1ZhbHVlUmVncyBzdWJzY3JpcHRSZWdzID0gc3Vi
c2NyaXB0LmpzVmFsdWVSZWdzKCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIE5vUmVz
dWx0LCBiYXNlLmdwcigpLCBzdWJzY3JpcHRSZWdzLnRhZ0dQUigpLCBzdWJzY3JpcHRSZWdzLnBh
eWxvYWRHUFIoKSwgbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yLmdwcigpKTsK
KyNlbmRpZgorICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisKKyAgICBub1Jlc3VsdChub2Rl
KTsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCA0NTg4YjVjZmQ5MjQx
YzJmMjcxYTQwNWY3MDM1YmY3NzkwM2FjMDc2Li41ZjMxOWNkOWE5OGFlZjlkM2VmZjZkZjY1ODEz
MTgxNGQwYWFkZjU4IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCkBAIC0xMTU1LDYgKzExNTUsMTIgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewog
ICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAg
ICAgfQogCisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FQ0laQyBvcGVyYXRpb24sIEdQUlJlZyByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVu
dE9wMiwgaW50MzJfdCBvcDMsIEdQUlJlZyByZWdPcDQpCisgICAgeworICAgICAgICBtX2ppdC5z
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3Ay
KSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxs
KG9wZXJhdGlvbik7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBl
PgogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBlIG9wZXJh
dGlvbiwgTm9SZXN1bHRUYWcpCiAgICAgewpAQCAtMTUzNCw2ICsxNTQwLDE2IEBAIGNsYXNzIFNw
ZWN1bGF0aXZlSklUIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KFRydXN0ZWRJbW0zMihhcmcxKSwgYXJnMiwgVHJ1c3RlZEltbTMyKGFyZzMpLCBhcmc0LCBUcnVz
dGVkSW1tMzIoYXJnNSkpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOwog
ICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VDSlpDIG9wZXJhdGlvbiwgR1BSUmVnIHJlZ09wMSwgR1BSUmVnIHJlZ09wMiwgaW50MzJfdCBv
cDMsIEdQUlJlZyByZWdPcDQpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIsIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQpOwor
ICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgIH0KKyAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpKSiBvcGVyYXRpb24s
IEdQUlJlZyByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50MzJfdCBvcDMs
IEdQUlJlZyByZWdPcDQsIEdQUlJlZyByZWdPcDUpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwg
VHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCwgcmVnT3A1KTsKKyAgICAgICAgcmV0dXJuIGFwcGVu
ZENhbGwob3BlcmF0aW9uKTsKKyAgICB9CiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCiAv
LyBFbmNvZGVkSlNWYWx1ZSBpbiBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlci4gV2hl
biBiZWluZyBjb21waWxlZCBpbiBBUk0gRUFCSSwgaXQgbXVzdCBiZSBhbGlnbmVkIGV2ZW4tbnVt
YmVyZWQgcmVnaXN0ZXIgKHIwLCByMiBvciBbc3BdKS4KQEAgLTE4NTUsNiArMTg3MSwxMSBAQCBj
bGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShUcnVzdGVkSW1tMzIoYXJnMSksIGFyZzJQYXlsb2FkLCBhcmcyVGFnLCBUcnVzdGVk
SW1tMzIoYXJnMyksIGFyZzQsIFRydXN0ZWRJbW0zMihhcmc1KSk7CiAgICAgICAgIHJldHVybiBh
cHBlbmRDYWxsKG9wZXJhdGlvbik7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BS
UmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCwgaW50MzJfdCBhcmczLCBHUFJSZWcgYXJn
NCkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
LCBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbTMyKGFyZzMpLCBhcmc0KTsKKyAgICAg
ICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyAgICB9CiAjdW5kZWYgRUFCSV8zMkJJ
VF9EVU1NWV9BUkcKICN1bmRlZiBTSDRfMzJCSVRfRFVNTVlfQVJHCiAgICAgCkBAIC0yMjQzLDYg
KzIyNjQsOSBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlVHlwZU9m
KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDaGVja1N0cnVjdHVyZShOb2RlKiwgR1BSUmVnIGNl
bGxHUFIsIEdQUlJlZyB0ZW1wR1BSKTsKICAgICB2b2lkIGNvbXBpbGVDaGVja1N0cnVjdHVyZShO
b2RlKik7CisgICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JCeUlkKE5vZGUqKTsKKyAgICB2b2lk
IGNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVQdXRBY2Nl
c3NvckJ5VmFsKE5vZGUqKTsKICAgICAKICAgICB2b2lkIG1vdmVUcnVlVG8oR1BSUmVnKTsKICAg
ICB2b2lkIG1vdmVGYWxzZVRvKEdQUlJlZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBjYjA4MDZjZGQ1YTZhMjczMGMwZDMx
MjYxMGYwZDczMTJkODIxZjllLi5kOGUyZDFiNTUwNDRmYjlhMzQ0NzU5ZmM3NGM5NjRmYWJmZWFm
NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKQEAgLTQxNjQsNiArNDE2NCwyMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgUHV0R2V0
dGVyQnlJZDoKKyAgICBjYXNlIFB1dFNldHRlckJ5SWQ6IHsKKyAgICAgICAgY29tcGlsZVB1dEFj
Y2Vzc29yQnlJZChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBQdXRB
Y2Nlc3NvcnNCeUlkOiB7CisgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKG5vZGUpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNh
c2UgUHV0U2V0dGVyQnlWYWw6IHsKKyAgICAgICAgY29tcGlsZVB1dEFjY2Vzc29yQnlWYWwobm9k
ZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgR2V0R2xvYmFsTGV4aWNhbFZh
cmlhYmxlOgogICAgIGNhc2UgR2V0R2xvYmFsVmFyOiB7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0
b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwCmluZGV4IGQ3MzZlZmViYmFjN2UzODFi
MDk5MDc1MDNhMTYxNzlhMzVkOTkxYTcuLjU5MGRhNzJhOGM5NDNlNzMxYzA3YzVkMmViYjVkYWY5
OTI3YzVhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RvcmVC
YXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwCkBAIC0yNzIsNiArMjcyLDE1IEBAIGNs
YXNzIFN0b3JlQmFycmllckluc2VydGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgY2FzZSBQdXRHZXR0
ZXJCeUlkOgorICAgICAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICAgICAgY2Fz
ZSBQdXRBY2Nlc3NvcnNCeUlkOgorICAgICAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAg
ICAgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6IHsKKyAgICAgICAgICAgICAgICBjb25zaWRl
ckJhcnJpZXIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisKICAgICAgICAgICAgIGNhc2UgUHV0QnlPZmZzZXQ6IHsKICAgICAgICAgICAg
ICAgICBjb25zaWRlckJhcnJpZXIobV9ub2RlLT5jaGlsZDIoKSwgbV9ub2RlLT5jaGlsZDMoKSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHAKaW5kZXggNTM3ZjhmNjVhNTFhMzMzMWQyNTIwMjU2NjEwYWQ0ZjFm
MjFiOTRlOS4uMWY0Yzg2NDY2OGFlNTE3Njc4YWQ1ZGM4MjZkODU3ZTc4N2E1MjQ5YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMjAzLDYg
KzIwMywxMSBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICBjYXNlIEZvcndhcmRWYXJhcmdzOgogICAgIGNhc2UgU3dpdGNoOgogICAgIGNhc2UgVHlw
ZU9mOgorICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dFNldHRlckJ5SWQ6Cisg
ICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgorICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAg
Y2FzZSBQdXRTZXR0ZXJCeVZhbDoKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEFyaXRoU3ViOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAppbmRleCA0M2RkZmMzOTQzYzQ1NzM0NzlhYzY2
NzA2ODFlNzkyMTI3MjM1MWFhLi44ZTMzNTIyYTVjNzk3ZjQ0YTg2MjZhYzU0NjBlYTE3Njc4MWMy
NTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1Jl
cG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1Jl
cG9zaXRvcnkuaApAQCAtMTE4LDYgKzExOCw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RlRMIHsKICAgICBtYWNybyhWX0pJVE9wZXJhdGlvbl9KLCBmdW5jdGlvblR5cGUodm9pZFR5cGUs
IGludDY0KSkgXAogICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX1osIGZ1bmN0aW9uVHlwZSh2b2lk
VHlwZSwgaW50MzIpKSBcCiAgICAgbWFjcm8oVl9KSVRPcGVyYXRpb25fRSwgZnVuY3Rpb25UeXBl
KHZvaWRUeXBlLCBpbnRQdHIpKSBcCisgICAgbWFjcm8oVl9KSVRPcGVyYXRpb25fRUNJWkMsIGZ1
bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50MzIsIGludFB0
cikpIFwKKyAgICBtYWNybyhWX0pJVE9wZXJhdGlvbl9FQ0laSkosIGZ1bmN0aW9uVHlwZSh2b2lk
VHlwZSwgaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50MzIsIGludDY0LCBpbnQ2NCkpIFwKKyAg
ICBtYWNybyhWX0pJVE9wZXJhdGlvbl9FQ0paQywgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnRQ
dHIsIGludFB0ciwgaW50NjQsIGludDMyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oWl9KSVRPcGVy
YXRpb25fRCwgZnVuY3Rpb25UeXBlKGludDMyLCBkb3VibGVUeXBlKSkgXAogICAgIG1hY3JvKFpf
SklUT3BlcmF0aW9uX0VDLCBmdW5jdGlvblR5cGUoaW50MzIsIGludFB0ciwgaW50UHRyKSkgXAog
ICAgIG1hY3JvKFpfSklUT3BlcmF0aW9uX0VHQywgZnVuY3Rpb25UeXBlKGludDMyLCBpbnRQdHIs
IGludFB0ciwgaW50UHRyKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvTExWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9MTFZNLmNwcAppbmRleCBiOWE2Yzk4N2JmYTZkY2JkYjVlMmM1ZTljM2JlZWVhMjA4
ZmVkNmRjLi40ZDM5NjQ1NzRmOGZhZjk3YjgzNTU5NjI4YjA3M2RhNzIwZWJmMjNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNTYz
LDYgKzU2MywxNyBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgIGNhc2UgUHV0QnlJ
ZERpcmVjdDoKICAgICAgICAgICAgIGNvbXBpbGVQdXRCeUlkKCk7CiAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5
SWQ6CisgICAgICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JCeUlkKCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgorICAgICAgICAgICAgY29tcGls
ZVB1dEFjY2Vzc29yc0J5SWQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFB1
dEdldHRlckJ5VmFsOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgorICAgICAgICAgICAg
Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEdldEJ1dHRlcmZseToKICAgICAgICAgICAgIGNvbXBpbGVHZXRCdXR0ZXJmbHkoKTsKICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMzAwMCw2ICszMDExLDM4IEBAIGNsYXNzIExvd2VyREZHVG9M
TFZNIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorCisgICAgdm9pZCBj
b21waWxlUHV0QWNjZXNzb3JCeUlkKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93
Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGFjY2Vzc29yID0gbG93Q2Vs
bChtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgYXV0byB1aWQgPSBtX2dyYXBoLmlkZW50aWZp
ZXJzKClbbV9ub2RlLT5pZGVudGlmaWVyTnVtYmVyKCldOworICAgICAgICB2bUNhbGwoCisgICAg
ICAgICAgICBtX291dC5vcGVyYXRpb24obV9ub2RlLT5vcCgpID09IFB1dEdldHRlckJ5SWQgPyBv
cGVyYXRpb25QdXRHZXR0ZXJCeUlkIDogb3BlcmF0aW9uUHV0U2V0dGVyQnlJZCksCisgICAgICAg
ICAgICBtX2NhbGxGcmFtZSwgYmFzZSwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSwgbV9vdXQuY29u
c3RJbnQzMihtX25vZGUtPmFjY2Vzc29yQXR0cmlidXRlcygpKSwgYWNjZXNzb3IpOworICAgIH0K
KworICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29yc0J5SWQoKQorICAgIHsKKyAgICAgICAgTFZh
bHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgZ2V0
dGVyID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIHNldHRl
ciA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDMoKSk7CisgICAgICAgIGF1dG8gdWlkID0gbV9n
cmFwaC5pZGVudGlmaWVycygpW21fbm9kZS0+aWRlbnRpZmllck51bWJlcigpXTsKKyAgICAgICAg
dm1DYWxsKAorICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNl
dHRlciksCisgICAgICAgICAgICBtX2NhbGxGcmFtZSwgYmFzZSwgbV9vdXQuY29uc3RJbnRQdHIo
dWlkKSwgbV9vdXQuY29uc3RJbnQzMihtX25vZGUtPmFjY2Vzc29yQXR0cmlidXRlcygpKSwgZ2V0
dGVyLCBzZXR0ZXIpOworCisgICAgfQorCisgICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JCeVZh
bCgpCisgICAgeworICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEo
KSk7CisgICAgICAgIExWYWx1ZSBzdWJzY3JpcHQgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQy
KCkpOworICAgICAgICBMVmFsdWUgYWNjZXNzb3IgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQzKCkp
OworICAgICAgICB2bUNhbGwoCisgICAgICAgICAgICBtX291dC5vcGVyYXRpb24obV9ub2RlLT5v
cCgpID09IFB1dEdldHRlckJ5VmFsID8gb3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwgOiBvcGVyYXRp
b25QdXRTZXR0ZXJCeVZhbCksCisgICAgICAgICAgICBtX2NhbGxGcmFtZSwgYmFzZSwgc3Vic2Ny
aXB0LCBtX291dC5jb25zdEludDMyKG1fbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCkpLCBhY2Nl
c3Nvcik7CisgICAgfQogICAgIAogICAgIHZvaWQgY29tcGlsZUFycmF5UHVzaCgpCiAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggOTIwZGFlMjJjZjllNmMzM2FhNmRjYWZlOGNmZjFl
YTIwZTVkMWExZC4uNDEwYThjYmJhNGNjY2MxZTRkNjFkZDJkODgzYzRmMDNiNjY5NDdlYSAxMDA3
NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC03NjIsOSArNzYyLDEzIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0UpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VDLCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQp
OwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VDSVpDLCBSZWdpc3RlcklELCBjb25zdCBJZGVudGlmaWVyKiwgaW50MzJfdCwgUmVnaXN0
ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRUNJWkNDLCBSZWdpc3RlcklELCBjb25zdCBJZGVudGlmaWVyKiwgaW50MzJfdCwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkMsIFJlZ2lzdGVySUQsIFVuaXF1ZWRTdHJp
bmdJbXBsKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkNDLCBSZWdpc3RlcklELCBVbmlx
dWVkU3RyaW5nSW1wbCosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOworI2lmIFVT
RShKU1ZBTFVFNjQpCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUNKWkMsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJl
Z2lzdGVySUQpOworI2Vsc2UKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7CisjZW5kaWYKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FRSwgUmVnaXN0ZXJJRCk7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RVpTeW10YWJKLCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVpTeW10YWJKLCBp
bnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJRCk7CkBAIC03NzUsMTIgKzc3OSwxMCBAQCBuYW1l
c3BhY2UgSlNDIHsKICNlbHNlCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb25Ob0V4Y2VwdGlvbkNoZWNrKFZfSklUT3BlcmF0aW9uX0VKLCBSZWdpc3RlcklELCBSZWdp
c3RlcklEKTsKICNlbmRpZgotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllcios
IGludDMyX3QsIFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSkosIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50
aWZpZXIqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKLSAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpaSiwgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGX0pJVE9wZXJh
dGlvbl9FRkpaWiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRVNzaUpKSSwgU3RydWN0dXJlU3R1YkluZm8qLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBV
bmlxdWVkU3RyaW5nSW1wbCopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpKSiwgUmVnaXN0ZXJJRCwgVW5pcXVlZFN0cmluZ0lt
cGwqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICNlbHNlCiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVNzaUpKSSwg
U3RydWN0dXJlU3R1YkluZm8qLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBS
ZWdpc3RlcklELCBVbmlxdWVkU3RyaW5nSW1wbCopOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IGEzNGI3YTBjOWRkZjVlZmY5NjY2NGU5MzQxYzI2ZjQ0
OTU2NDFkNTYuLmI1ZWEwODEzNGI4NDQ4MmY5NWE2YTQ3ODE2NjBkMjM0MTdjOGExZTIgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC00MDYsNiArNDA2LDExIEBAIEFM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uV2l0aENh
bGxGcmFtZVJvbGxiYWNrT25FeGNlCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoQ2FsbEZyYW1l
Um9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb24pOwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQyBv
cGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRPcDIs
IGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMy
KG9wMyksIHJlZ09wNCk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2so
b3BlcmF0aW9uKTsKK30KIAogI2lmIFVTRShKU1ZBTFVFNjQpCiBBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSlpaIG9w
ZXJhdGlvbiwgR1BSUmVnIGFyZzEsIGludDMyX3QgYXJnMiwgaW50MzJfdCBhcmczKQpAQCAtNTQx
LDE5ICs1NDYsMTMgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW8KICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklk
Wkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRP
cDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKLXsKLSAgICBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZElt
bTMyKG9wMyksIHJlZ09wNCk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2sob3BlcmF0aW9uKTsKLX0KLQotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKSiBvcGVyYXRpb24sIFJlZ2lz
dGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJl
Z2lzdGVySUQgcmVnT3A0LCBSZWdpc3RlcklEIHJlZ09wNSkKK0FMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpKSiBv
cGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRPcDIs
IGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCwgUmVnaXN0ZXJJRCByZWdPcDUpCiB7CiAg
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVu
dE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQsIHJlZ09wNSk7CiAgICAgcmV0dXJuIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RUpKWkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIsIGlu
dDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSlpDIG9wZXJhdGlv
biwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBpbnQzMl90IG9wMywgUmVn
aXN0ZXJJRCByZWdPcDQpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09w
MSwgcmVnT3AyLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwpAQCAtNjc1LDEzICs2NzQsNyBAQCBB
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJ
VE9wZXJhdGlvbl9FSkogb3BlcmF0aQogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDIG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywg
UmVnaXN0ZXJJRCByZWdPcDQpCi17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQp
OwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Ci19
Ci0KLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VDSVpDQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25z
dCBJZGVudGlmaWVyKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0LCBS
ZWdpc3RlcklEIHJlZ09wNSkKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDQyBvcGVyYXRpb24sIFJlZ2lzdGVy
SUQgcmVnT3AxLCBVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdp
c3RlcklEIHJlZ09wNCwgUmVnaXN0ZXJJRCByZWdPcDUpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0z
MihvcDMpLCByZWdPcDQsIHJlZ09wNSk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCmluZGV4IDJiNTMwZjVmNzhjOWY0Zjc0OWRlYmIwNDc4ZGIxNmYxMjhiMjg3MWEu
LmJiZTcwN2JlM2UzMjBjMjM3NTU0ZDUzMzcxNTFlMzA1NTRhNjIyNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMTM1MywxMDkgKzEzNTMsNzkg
QEAgc3RhdGljIHZvaWQgcHV0QWNjZXNzb3JCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBiYXNlLCBKU1ZhbHVlIHN1YnNjcmlwdCwKICAgICAgICAgYmFzZS0+cHV0U2V0dGVyKGV4ZWMs
IHByb3BlcnR5S2V5LCBhY2Nlc3NvciwgYXR0cmlidXRlKTsKIH0KIAotI2lmIFVTRShKU1ZBTFVF
NjQpCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPYmplY3RWYWx1ZSwgSWRlbnRpZmllciogaWRl
bnRpZmllciwgaW50MzJfdCBvcHRpb25zLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVyVmFs
dWUpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUq
IGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IG9w
dGlvbnMsIEpTQ2VsbCogZ2V0dGVyKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCi0gICAgQVNTRVJUKEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkT2JqZWN0VmFsdWUpLmlzT2JqZWN0KCkpOwotICAgIEpTT2Jq
ZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1
ZSkpOworICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09iamVjdCgpKTsKKyAgICBKU09i
amVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7CiAKLSAgICBKU1ZhbHVlIGdldHRl
ciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkR2V0dGVyVmFsdWUpOwotICAgIEFTU0VSVChnZXR0
ZXIuaXNPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0R2V0dGVyKGV4ZWMsICppZGVudGlmaWVy
LCBhc09iamVjdChnZXR0ZXIpLCBvcHRpb25zKTsKKyAgICBBU1NFUlQoZ2V0dGVyLT5pc09iamVj
dCgpKTsKKyAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywgdWlkLCBnZXR0ZXIsIG9wdGlvbnMp
OwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPYmplY3RWYWx1ZSwgSWRlbnRpZmllciog
aWRlbnRpZmllciwgaW50MzJfdCBvcHRpb25zLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVy
VmFsdWUpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3Rh
dGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90
IG9wdGlvbnMsIEpTQ2VsbCogc2V0dGVyKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAg
ICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCi0gICAgQVNTRVJU
KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT2JqZWN0VmFsdWUpLmlzT2JqZWN0KCkpOwotICAgIEpT
T2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RW
YWx1ZSkpOworICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09iamVjdCgpKTsKKyAgICBK
U09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7CiAKLSAgICBKU1ZhbHVlIHNl
dHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU2V0dGVyVmFsdWUpOwotICAgIEFTU0VSVChz
ZXR0ZXIuaXNPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0U2V0dGVyKGV4ZWMsICppZGVudGlm
aWVyLCBhc09iamVjdChzZXR0ZXIpLCBvcHRpb25zKTsKKyAgICBBU1NFUlQoc2V0dGVyLT5pc09i
amVjdCgpKTsKKyAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywgdWlkLCBzZXR0ZXIsIG9wdGlv
bnMpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlm
aWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IGF0dHJpYnV0ZSwKLSAgICBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkR2V0dGVyVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKK3Zv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMs
IEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBh
dHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVyKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAg
ICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCi0gICAgQVNTRVJU
KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT2JqZWN0VmFsdWUpLmlzT2JqZWN0KCkpOwotICAgIEpT
T2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RW
YWx1ZSkpOwotCi0gICAgR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9IEdldHRlclNldHRlcjo6Y3Jl
YXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwotCi0gICAgSlNWYWx1ZSBnZXR0
ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEdldHRlclZhbHVlKTsKLSAgICBKU1ZhbHVlIHNl
dHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU2V0dGVyVmFsdWUpOwotICAgIEFTU0VSVChn
ZXR0ZXIuaXNPYmplY3QoKSB8fCBnZXR0ZXIuaXNVbmRlZmluZWQoKSk7Ci0gICAgQVNTRVJUKHNl
dHRlci5pc09iamVjdCgpIHx8IHNldHRlci5pc1VuZGVmaW5lZCgpKTsKLSAgICBBU1NFUlQoZ2V0
dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzT2JqZWN0KCkpOwotCi0gICAgaWYgKCFnZXR0ZXIu
aXNVbmRlZmluZWQoKSkKLSAgICAgICAgYWNjZXNzb3ItPnNldEdldHRlcih2bSwgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLCBhc09iamVjdChnZXR0ZXIpKTsKLSAgICBpZiAoIXNldHRlci5p
c1VuZGVmaW5lZCgpKQotICAgICAgICBhY2Nlc3Nvci0+c2V0U2V0dGVyKHZtLCBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCksIGFzT2JqZWN0KHNldHRlcikpOwotICAgIGJhc2VPYmotPnB1dERp
cmVjdEFjY2Vzc29yKGV4ZWMsICppZGVudGlmaWVyLCBhY2Nlc3NvciwgYXR0cmlidXRlKTsKKyAg
ICBwdXRBY2Nlc3NvckJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFN1YnNjcmlwdCksIGF0dHJpYnV0ZSwgYXNPYmplY3QoZ2V0dGVyKSwgQWNjZXNzb3JU
eXBlOjpHZXR0ZXIpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVy
QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRHZXR0ZXIpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVy
QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIHNldHRlcikKIHsKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZt
LCBleGVjKTsKLSAgICBKU09iamVjdCogYmFzZSA9IGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkQmFzZSkpOwotICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRTdWJzY3JpcHQpOwotICAgIEpTT2JqZWN0KiBnZXR0ZXIgPSBhc09iamVjdChKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZEdldHRlcikpOwotICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYmFz
ZSwgc3Vic2NyaXB0LCBhdHRyaWJ1dGUsIGdldHRlciwgQWNjZXNzb3JUeXBlOjpHZXR0ZXIpOwot
fQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0
ZXIpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKCZ2bSwgZXhlYyk7Ci0gICAgSlNPYmplY3QqIGJhc2UgPSBhc09iamVjdChKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpKTsKLSAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KTsKLSAgICBKU09iamVjdCogc2V0dGVyID0gYXNP
YmplY3QoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXIpKTsKLSAgICBwdXRBY2Nlc3NvckJ5
VmFsKGV4ZWMsIGJhc2UsIHN1YnNjcmlwdCwgYXR0cmlidXRlLCBzZXR0ZXIsIEFjY2Vzc29yVHlw
ZTo6U2V0dGVyKTsKKyAgICBwdXRBY2Nlc3NvckJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2UpLCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCksIGF0dHJpYnV0ZSwgYXNPYmplY3Qoc2V0
dGVyKSwgQWNjZXNzb3JUeXBlOjpTZXR0ZXIpOwogfQogCi0jZWxzZQotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVj
dCwgSWRlbnRpZmllciogaWRlbnRpZmllciwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIGdldHRl
cikKKyNpZiBVU0UoSlNWQUxVRTY0KQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdl
dHRlclNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkLCBpbnQzMl90IGF0dHJpYnV0ZSwKKyAgICBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
R2V0dGVyVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKIHsKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZt
LCBleGVjKTsKIAogICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09iamVjdCgpKTsKLSAg
ICBKU09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7CisgICAgSlNPYmplY3Qq
IGJhc2VPYmogPSBhc09iamVjdChvYmplY3QpOwogCi0gICAgQVNTRVJUKGdldHRlci0+aXNPYmpl
Y3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0R2V0dGVyKGV4ZWMsICppZGVudGlmaWVyLCBnZXR0ZXIs
IG9wdGlvbnMpOwotfQotCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJ
ZChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlmaWVy
LCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCogc2V0dGVyKQotewotICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOworICAg
IEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKIAotICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5p
c09iamVjdCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7
CisgICAgSlNWYWx1ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEdldHRlclZhbHVl
KTsKKyAgICBKU1ZhbHVlIHNldHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU2V0dGVyVmFs
dWUpOworICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBnZXR0ZXIuaXNVbmRlZmluZWQo
KSk7CisgICAgQVNTRVJUKHNldHRlci5pc09iamVjdCgpIHx8IHNldHRlci5pc1VuZGVmaW5lZCgp
KTsKKyAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzT2JqZWN0KCkpOwog
Ci0gICAgQVNTRVJUKHNldHRlci0+aXNPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0U2V0dGVy
KGV4ZWMsICppZGVudGlmaWVyLCBzZXR0ZXIsIG9wdGlvbnMpOworICAgIGlmICghZ2V0dGVyLmlz
VW5kZWZpbmVkKCkpCisgICAgICAgIGFjY2Vzc29yLT5zZXRHZXR0ZXIodm0sIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSwgYXNPYmplY3QoZ2V0dGVyKSk7CisgICAgaWYgKCFzZXR0ZXIuaXNV
bmRlZmluZWQoKSkKKyAgICAgICAgYWNjZXNzb3ItPnNldFNldHRlcih2bSwgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLCBhc09iamVjdChzZXR0ZXIpKTsKKyAgICBiYXNlT2JqLT5wdXREaXJl
Y3RBY2Nlc3NvcihleGVjLCB1aWQsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCisjZWxzZQog
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IGF0dHJp
YnV0ZSwgSlNDZWxsKiBnZXR0ZXIsIEpTQ2VsbCogc2V0dGVyKQogewogICAgIFZNJiB2bSA9IGV4
ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwog
CiAgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0
KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKKyAgICBKU09iamVjdCogYmFzZU9iaiA9
IGFzT2JqZWN0KG9iamVjdCk7CiAKICAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CiAKQEAgLTE0
NjksMjMgKzE0MzksNiBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElkZQogICAgICAgICBhY2Nlc3Nv
ci0+c2V0U2V0dGVyKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHNldHRlci0+Z2V0
T2JqZWN0KCkpOwogICAgIGJhc2VPYmotPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsICppZGVudGlm
aWVyLCBhY2Nlc3NvciwgYXR0cmlidXRlKTsKIH0KLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEdldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0
ZXIpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKCZ2bSwgZXhlYyk7Ci0KLSAgICBwdXRBY2Nlc3NvckJ5VmFsKGV4ZWMsIGFzT2Jq
ZWN0KGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCksIGF0dHJpYnV0ZSwg
YXNPYmplY3QoZ2V0dGVyKSwgQWNjZXNzb3JUeXBlOjpHZXR0ZXIpOwotfQotCi12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwq
IGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRl
LCBKU0NlbGwqIHNldHRlcikKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLQotICAgIHB1dEFjY2Vzc29yQnlW
YWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0
KSwgYXR0cmlidXRlLCBhc09iamVjdChzZXR0ZXIpLCBBY2Nlc3NvclR5cGU6OlNldHRlcik7Ci19
Ci0KICNlbmRpZgogCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0
YXRlKiBleGVjLCBpbnQzMl90IHNjb3BlUmVnKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAppbmRleCBhYWNhMzVhMjFkMDk3YTY2YjQ4MWZhNTIwNWM2ODUxMzIzM2Nk
NTZiLi5mNmM1N2YzZDFjYjdlNDU2MjI2MzYyYTkyYTBmZDA5OTQwNTk5ZDQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTg5LDggKzE4OSw5IEBAIHR5
cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUMpKEV4ZWNTdGF0ZSos
IEpTQ2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9F
Q2IpKEV4ZWNTdGF0ZSosIENvZGVCbG9jayopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopOwogdHlw
ZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0ljZikoRXhlY1N0YXRl
KiwgSlNDZWxsKiwgSW5saW5lQ2FsbEZyYW1lKik7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElP
TiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlmaWVy
KiwgaW50MzJfdCwgSlNDZWxsKik7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklU
T3BlcmF0aW9uX0VDSVpDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIGludDMy
X3QsIEpTQ2VsbCosIEpTQ2VsbCopOwordHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJ
VE9wZXJhdGlvbl9FQ0laQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwq
LCBpbnQzMl90LCBKU0NlbGwqKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRP
cGVyYXRpb25fRUNJWkNDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCos
IGludDMyX3QsIEpTQ2VsbCosIEpTQ2VsbCopOwordHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FQ0laSkopKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJp
bmdJbXBsKiwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNKWkMpKEV4ZWNTdGF0ZSos
IEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9p
ZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNDSWNmKShFeGVjU3RhdGUqLCBKU0Nl
bGwqLCBKU0NlbGwqLCBJbmxpbmVDYWxsRnJhbWUqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUNKSikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKQEAgLTIwMCw5ICsyMDEsNiBAQCB0eXBlZGVmIHZvaWQg
SklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwg
SlNDZWxsKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0Va
U3ltdGFiSikoRXhlY1N0YXRlKiwgaW50MzJfdCwgU3ltYm9sVGFibGUqLCBFbmNvZGVkSlNWYWx1
ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKKShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VKQ0kpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU0NlbGwqLCBV
bmlxdWVkU3RyaW5nSW1wbCopOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9w
ZXJhdGlvbl9FSklkWkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwg
aW50MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpW
X0pJVE9wZXJhdGlvbl9FSklkWkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRp
ZmllciosIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Ci10eXBlZGVm
IHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSlpKKShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlKTsK
IHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0
eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpBcCkoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJy
YXlQcm9maWxlKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9u
X0VKSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKik7CkBAIC0zMTMsMTggKzMxMSwxNCBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGVidWcoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFM
OwogU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhl
Y1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogI2VuZGlmCiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlJbmRleChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJf
dCwgRW5jb2RlZEpTVmFsdWUpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRl
bnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50MzJfdCBvcHRpb25zLCBFbmNvZGVkSlNWYWx1
ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNl
dHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIGludDMyX3QgYXR0
cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbChFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNW
YWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRl
ckJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJf
dCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci0jZWxzZQotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwg
SWRlbnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxs
KiwgSWRlbnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBK
U0NlbGwqLCBJZGVudGlmaWVyKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpTQ2VsbCop
IFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlk
KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBvcHRpb25z
LCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
U2V0dGVyQnlJZChFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMy
X3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVl
LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29k
ZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOworI2lm
IFVTRShKU1ZBTFVFNjQpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0
dGVyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRy
aWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOworI2Vs
c2UKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRl
KiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxs
KiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogI2VuZGlmCiB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHVzaEZ1bmN0aW9uTmFtZVNjb3BlKEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5bWJvbFRh
YmxlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IGIx
NDZiMjA5ODc2OGIyYThmYzZhOTkxZDQzZGViNDUxNTQ2NGUyMWIuLjMxNzlmOThlNTgwMzBkNjFm
MGViNmNhMTRmOWIzMjQ4NmE0NDQ0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC00OTIsNyArNDkyLDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfcHV0X2dldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZCwgcmVnVDApOwogICAgIGludDMyX3Qgb3B0aW9ucyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25b
NF0udS5vcGVyYW5kLCByZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0
ZXJCeUlkLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQpLCBvcHRpb25zLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25QdXRHZXR0ZXJCeUlkLCByZWdUMCwgbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVu
dEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkuaW1wbCgpLCBvcHRpb25zLCByZWdUMSk7CiB9CiAK
IHZvaWQgSklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKQEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfc2V0
dGVyX2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7CiAg
ICAgaW50MzJfdCBvcHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQs
IHJlZ1QxKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dFNldHRlckJ5SWQsIHJlZ1Qw
LCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZCksIG9wdGlvbnMsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dFNldHRl
ckJ5SWQsIHJlZ1QwLCBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kKS5pbXBsKCksIG9wdGlvbnMsIHJlZ1QxKTsKIH0KIAogdm9pZCBKSVQ6OmVt
aXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
QEAgLTUwOSw3ICs1MDksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX3NldHRlcihJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludDMyX3QgYXR0cmlidXRlID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQsIHJlZ1QxKTsKICAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls1XS51Lm9wZXJhbmQsIHJlZ1QyKTsK
LSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVnVDAsICZtX2Nv
ZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwgYXR0
cmlidXRlLCByZWdUMSwgcmVnVDIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0
dGVyU2V0dGVyLCByZWdUMCwgbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0
aW9uWzJdLnUub3BlcmFuZCkuaW1wbCgpLCBhdHRyaWJ1dGUsIHJlZ1QxLCByZWdUMik7CiB9CiAK
IHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263464</attachid>
            <date>2015-10-19 03:04:32 -0700</date>
            <delta_ts>2015-10-19 05:34:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148860-20151019190349.patch</filename>
            <type>text/plain</type>
            <size>47760</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
Y2JlOWVkMDZkYTAwNmYxOGU1ODE2YjkyOWQ0NWUzNTQwYmYwN2JkLi5hNmFiNGZjODQ0MzE4NDEx
OGI2M2E1ZjkzNDY3NDQwNWJlMjQwZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAxNS0xMC0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBBZGQgREZHL0ZUTCBzdXBwb3J0IGZvciBhY2Nlc3NvciBw
dXQgb3BlcmF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzSWRlbnRpZmllcik6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6aGFzQWNjZXNzb3JBdHRyaWJ1dGVzKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjphY2Nlc3NvckF0dHJpYnV0ZXMpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVj
dXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yc0J5SWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcDoKKyAg
ICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5D
b21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6
CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlv
bnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0
ZXJfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX3NldHRlcik6CisKIDIwMTUt
MTAtMTggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
UHJvbWlzZSBjb25zdHJ1Y3RvciBzaG91bGQgdGhyb3cgd2hlbiBub3QgY2FsbGVkIHdpdGggIm5l
dyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaAppbmRleCBmMjhjYzdhZmYwNmI5OTMzMzUwNGZmYTU2NGE0YzNj
N2QxZTUyNmEyLi5hNzAxODA2YTEzZDkxNzg5OWQ2NzIxMmQwMTU3ODQ5MTlmZTRmMzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCkBAIC0yMzYzLDYgKzIzNjMsMTUgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKICAgICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJl
ckxpbWl0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAgY2FzZSBQdXRHZXR0ZXJCeUlk
OgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6Cisg
ICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAg
ICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBJbjogewogICAgICAgICAv
LyBGSVhNRTogV2UgY2FuIGRldGVybWluZSB3aGVuIHRoZSBwcm9wZXJ0eSBkZWZpbml0ZWx5IGV4
aXN0cyBiYXNlZCBvbiBhYnN0cmFjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA2OWY1NGYxZDM1MTA1MDY3MGE1MDdiMjRmM2Y3Njk0
NWFkNmI2YTA2Li4zYWVlNzgxNjBkNWNhOWQwMmVmNWIwZGYwODk0NDI5ZGRlN2U2ODllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAt
Mzc0OSw2ICszNzQ5LDM4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWdu
ZWQgbGltaXQpCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9wdXRfYnlfaWQpOwogICAgICAg
ICB9CiAKKyAgICAgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X2lkOgorICAgICAgICBjYXNlIG9w
X3B1dF9zZXR0ZXJfYnlfaWQ6IHsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZp
ZXJSZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kXTsKKyAgICAgICAgICAgIHVu
c2lnbmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAg
ICAgICAgICAgTm9kZSogYWNjZXNzb3IgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGVUeXBlIG9wID0gKG9wY29k
ZUlEID09IG9wX3B1dF9nZXR0ZXJfYnlfaWQpID8gUHV0R2V0dGVyQnlJZCA6IFB1dFNldHRlckJ5
SWQ7CisgICAgICAgICAgICBhZGRUb0dyYXBoKG9wLCBPcEluZm8oaWRlbnRpZmllck51bWJlciks
IE9wSW5mbyhhdHRyaWJ1dGVzKSwgYmFzZSwgYWNjZXNzb3IpOworICAgICAgICAgICAgTkVYVF9P
UENPREUob3BfcHV0X2dldHRlcl9ieV9pZCk7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIG9w
X3B1dF9nZXR0ZXJfc2V0dGVyOiB7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgICAgICAg
ICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9pbmxpbmVTdGFja1RvcC0+bV9pZGVudGlm
aWVyUmVtYXBbY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZF07CisgICAgICAgICAgICB1
bnNpZ25lZCBhdHRyaWJ1dGVzID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAg
ICAgICAgICAgIE5vZGUqIGdldHRlciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3Ry
dWN0aW9uWzRdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZSogc2V0dGVyID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kKSk7CisgICAgICAg
ICAgICBhZGRUb0dyYXBoKFB1dEFjY2Vzc29yc0J5SWQsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVy
KSwgT3BJbmZvKGF0dHJpYnV0ZXMpLCBiYXNlLCBnZXR0ZXIsIHNldHRlcik7CisgICAgICAgICAg
ICBORVhUX09QQ09ERShvcF9wdXRfZ2V0dGVyX3NldHRlcik7CisgICAgICAgIH0KKworICAgICAg
ICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfdmFsOgorICAgICAgICBjYXNlIG9wX3B1dF9zZXR0ZXJf
YnlfdmFsOiB7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBzdWJz
Y3JpcHQgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJh
bmQpKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kOworICAgICAgICAgICAgTm9kZSogYWNjZXNzb3IgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAg
IE5vZGVUeXBlIG9wID0gKG9wY29kZUlEID09IG9wX3B1dF9nZXR0ZXJfYnlfdmFsKSA/IFB1dEdl
dHRlckJ5VmFsIDogUHV0U2V0dGVyQnlWYWw7CisgICAgICAgICAgICBhZGRUb0dyYXBoKG9wLCBP
cEluZm8oYXR0cmlidXRlcyksIGJhc2UsIHN1YnNjcmlwdCwgYWNjZXNzb3IpOworICAgICAgICAg
ICAgTkVYVF9PUENPREUob3BfcHV0X2dldHRlcl9ieV92YWwpOworICAgICAgICB9CisKICAgICAg
ICAgY2FzZSBvcF9wcm9maWxlX3R5cGU6IHsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlVG9Qcm9m
aWxlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
KSk7CiAgICAgICAgICAgICBhZGRUb0dyYXBoKFByb2ZpbGVUeXBlLCBPcEluZm8oY3VycmVudElu
c3RydWN0aW9uWzJdLnUubG9jYXRpb24pLCB2YWx1ZVRvUHJvZmlsZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggZGFmZTVlODIzYzhjOTBh
ODQyZmY0OWEyYWZjOWNiYjA1OWZlNjNhNi4uOTc4OGE0ODRhMTNhYmEyZjkxZWUxMTMwNTBlNmU1
OWFjNmFiODQzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMTU0LDYgKzE1NCwxMSBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxl
dmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAg
IGNhc2Ugb3BfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICBj
YXNlIG9wX3B1dF9ieV9pZDoKKyAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6CisgICAgY2Fz
ZSBvcF9wdXRfc2V0dGVyX2J5X2lkOgorICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9zZXR0ZXI6Cisg
ICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X3ZhbDoKKyAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlf
dmFsOgogICAgIGNhc2Ugb3Bfam1wOgogICAgIGNhc2Ugb3BfanRydWU6CiAgICAgY2FzZSBvcF9q
ZmFsc2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJp
emUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDZj
ODVkNTllMzEwNTM5YzlhYWJiNDJjZjFkYTFlYzFjZWNlZjJlOTguLjE4NzQ3NzA1OWNhZGFhOGY0
MTkzNjIyZWFjNGVmNmZlNzNkZGEzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCkBAIC0zNzksNiArMzc5LDExIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1
CiAgICAgY2FzZSBQdXRCeUlkOgogICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0
QnlJZERpcmVjdDoKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJC
eUlkOgorICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFs
OgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAgY2FzZSBBcnJheVB1c2g6CiAgICAgY2Fz
ZSBBcnJheVBvcDoKICAgICBjYXNlIENhbGw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAKaW5kZXggNWM1N2UwMjJhMGRiYmQzM2YxZGU2NDg1YmQ1MDE2YWQ3OTQwZmM5NS4u
YzUwNjNmMTRjOWE0ZDRjZmFjMzdlOWNiNjhmOTQ2NGFmOGZjN2I1MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtOTUsNiArOTUsMTEgQEAgYm9vbCBkb2VzR0Mo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgUHV0QnlJZDoKICAgICBjYXNlIFB1
dEJ5SWRGbHVzaDoKICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CisgICAgY2FzZSBQdXRHZXR0ZXJC
eUlkOgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6
CisgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAg
IGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgIGNhc2Ug
R2V0QnV0dGVyZmx5OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKaW5kZXggZWI2NDE1YjNmNGNkNmRlMDI2YWE5YTk2YjQ2NmEzYTE1NTA1MWZlYi4uYmU1ZmQ1
M2FmMjFmYTNlODRiM2ZiM2Q5NGY2Mzc1OTJjMzBlMGM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMDU3LDYgKzEwNTcsMjUgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJC
eUlkOiB7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNC
eUlkOiB7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFB1dEdldHRl
ckJ5VmFsOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAgICAgICAgICBmaXhF
ZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4RWRnZTxL
bm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisKICAgICAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgICAgICBmaXhFZGdl
PEZ1bmN0aW9uVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggYWMxYTc1N2NlNDc1MTkzYjMzYzM5MjMxZjU2
NDdmNjhlYmRjYzU2Yy4uNzkwNTkzYjk4NGJiZjgxNTM1ZjMyMDZmZTFlZGQzYmFlMjY3ZWU1YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTg1Myw2ICs4NTMsOSBAQCBzdHJ1
Y3QgTm9kZSB7CiAgICAgICAgIGNhc2UgUHV0QnlJZDoKICAgICAgICAgY2FzZSBQdXRCeUlkRmx1
c2g6CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJC
eUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0QWNjZXNz
b3JzQnlJZDoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODY0LDYgKzg2NywzNyBAQCBzdHJ1Y3QgTm9kZSB7
CiAgICAgICAgIEFTU0VSVChoYXNJZGVudGlmaWVyKCkpOwogICAgICAgICByZXR1cm4gbV9vcElu
Zm87CiAgICAgfQorCisgICAgYm9vbCBoYXNBY2Nlc3NvckF0dHJpYnV0ZXMoKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoIChvcCgpKSB7CisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAg
ICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6Cisg
ICAgICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludDMyX3QgYWNjZXNzb3JB
dHRyaWJ1dGVzKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChoYXNBY2Nlc3NvckF0dHJpYnV0ZXMo
KSk7CisgICAgICAgIHN3aXRjaCAob3AoKSkgeworICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6
CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNC
eUlkOgorICAgICAgICAgICAgcmV0dXJuIG1fb3BJbmZvMjsKKyAgICAgICAgY2FzZSBQdXRHZXR0
ZXJCeVZhbDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKKyAgICAgICAgICAgIHJldHVy
biBtX29wSW5mbzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0K
ICAgICAKICAgICBib29sIGhhc1Byb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKCkKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggMTM0OWE1ZGY5ZWViYTUx
MDk1NGExMTA3NDNlNDUwNjZmYjMzM2EwYS4uYTBmZmRlOWY2YzIwMmRjNjllZmFjZjQzM2JkNWM0
ZWZmMjJkNmNiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAt
MTc5LDggKzE3OSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFj
cm8oR2V0QnlJZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KEdldEJ5SWRGbHVzaCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1h
Y3JvKFB1dEJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhQdXRCeUlkRmx1c2gs
IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0QnlJ
ZEZsdXNoLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHV0QnlJZERpcmVjdCwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1dEdldHRlckJ5SWQsIE5vZGVNdXN0R2VuZXJh
dGUpIFwKKyAgICBtYWNybyhQdXRTZXR0ZXJCeUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAg
bWFjcm8oUHV0QWNjZXNzb3JzQnlJZCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1
dEdldHRlckJ5VmFsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0U2V0dGVyQnlW
YWwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1N0cnVjdHVyZSwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldEV4ZWN1dGFibGUsIE5vZGVSZXN1bHRKUykgXAog
ICAgIG1hY3JvKFB1dFN0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0ZSkgXApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcAppbmRleCBhNDE1MDc1MWE3ZmE1MDEyYmRkNzYzZjEwNWFjNzgwMTZhNDUzNzAzLi44
MmNlMzU0ZGM2NGJmYTU4MmQ4ZmUzOTJmMzBlN2MzMWUwNmZjOTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcApAQCAtNjUxLDYgKzY1MSwxMSBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICAg
ICAgY2FzZSBQdXRCeU9mZnNldDoKICAgICAgICAgY2FzZSBNdWx0aVB1dEJ5T2Zmc2V0OgorICAg
ICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAg
ICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgorICAgICAgICBjYXNlIFB1dEdldHRlckJ5VmFs
OgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAgICAgICBjYXNlIERGRzo6SnVtcDoK
ICAgICAgICAgY2FzZSBCcmFuY2g6CiAgICAgICAgIGNhc2UgU3dpdGNoOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA5ZTM1ODBlYzQ0NDViYmQ2
YWRmYmM5ZTVlMDhiODM2NzZjZDUzNDgyLi4yMjEzOTZmMzU3YjY4ZWFiODRiNTYwZmRhOWI5ZDky
Yjk4YzI4MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaApAQCAtMTg4LDYgKzE4OCwxMSBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0
ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRCeUlk
OgogICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICBj
YXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0
QWNjZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0
dGVyQnlWYWw6CiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFi
bGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDIzMWFiOTdkMGNmMTdmNjRlNmI1YzgwNTk5
Nzg0YzcwNjkwMzc1OWIuLjhmMjFjOTNjNmZkMzExZGM3Y2FjMzNiZWY5MGFhZTI1ZDJiNTk0YWEg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CkBAIC02NzM5LDYgKzY3MzksNjEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6d3JpdGVCYXJyaWVy
KEdQUlJlZyBvd25lckdQUiwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXQKICAgICBvd25l
cklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlJZChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0
ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGFjY2Vzc29yKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKworICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CisgICAgY2FsbE9wZXJhdGlvbihub2RlLT5vcCgpID09IFB1dEdldHRlckJ5SWQg
PyBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkIDogb3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgTm9SZXN1
bHQsIGJhc2UuZ3ByKCksIGlkZW50aWZpZXJVSUQobm9kZS0+aWRlbnRpZmllck51bWJlcigpKSwg
bm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yLmdwcigpKTsKKyAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKE5vZGUqIG5vZGUpCit7CisgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgSlNWYWx1
ZU9wZXJhbmQgZ2V0dGVyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICBKU1ZhbHVlT3BlcmFu
ZCBzZXR0ZXIodGhpcywgbm9kZS0+Y2hpbGQzKCkpOworCisgICAgZmx1c2hSZWdpc3RlcnMoKTsK
KyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVy
U2V0dGVyLCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRlbnRpZmllclVJRChub2RlLT5pZGVudGlm
aWVyTnVtYmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgZ2V0dGVyLmdwcigpLCBz
ZXR0ZXIuZ3ByKCkpOworI2Vsc2UKKyAgICAvLyBUaGVzZSBKU1ZhbHVlcyBtYXkgYmUgSlNVbmRl
ZmluZWQgT1IgSlNGdW5jdGlvbiouCisgICAgLy8gQXQgdGhhdCB0aW1lLAorICAgIC8vIDEuIElm
IHRoZSBKU1ZhbHVlIGlzIEpTVW5kZWZpbmVkLCBpdHMgcGF5bG9hZCBiZWNvbWVzIG51bGxwdHIu
CisgICAgLy8gMi4gSWYgdGhlIEpTVmFsdWUgaXMgSlNGdW5jdGlvbiosIGl0cyBwYXlsb2FkIGJl
Y29tZXMgSlNGdW5jdGlvbiouCisgICAgLy8gU28gZXh0cmFjdCBwYXlsb2FkIGFuZCBwYXNzIGl0
IHRvIG9wZXJhdGlvblB1dEdldHRlclNldHRlci4gVGhpcyBoYWNrIGlzIHVzZWQgYXMgdGhlIHNh
bWUgd2F5IGluIGJhc2VsaW5lIEpJVC4KKyAgICBKU1ZhbHVlUmVncyBnZXR0ZXJSZWdzID0gZ2V0
dGVyLmpzVmFsdWVSZWdzKCk7CisgICAgSlNWYWx1ZVJlZ3Mgc2V0dGVyUmVncyA9IHNldHRlci5q
c1ZhbHVlUmVncygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVy
LCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRlbnRpZmllclVJRChub2RlLT5pZGVudGlmaWVyTnVt
YmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgZ2V0dGVyUmVncy5wYXlsb2FkR1BS
KCksIHNldHRlclJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbmRpZgorICAgIG1faml0LmV4Y2VwdGlv
bkNoZWNrKCk7CisKKyAgICBub1Jlc3VsdChub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlT3BlcmFu
ZCBzdWJzY3JpcHQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGFjY2Vzc29yKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKKworICAgIGZsdXNoUmVnaXN0ZXJz
KCk7CisgICAgYXV0byBvcGVyYXRpb24gPSBub2RlLT5vcCgpID09IFB1dEdldHRlckJ5VmFsID8g
b3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwgOiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbDsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBOb1Jlc3VsdCwgYmFz
ZS5ncHIoKSwgc3Vic2NyaXB0LmdwcigpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgYWNj
ZXNzb3IuZ3ByKCkpOworI2Vsc2UKKyAgICBKU1ZhbHVlUmVncyBzdWJzY3JpcHRSZWdzID0gc3Vi
c2NyaXB0LmpzVmFsdWVSZWdzKCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIE5vUmVz
dWx0LCBiYXNlLmdwcigpLCBzdWJzY3JpcHRSZWdzLnRhZ0dQUigpLCBzdWJzY3JpcHRSZWdzLnBh
eWxvYWRHUFIoKSwgbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yLmdwcigpKTsK
KyNlbmRpZgorICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisKKyAgICBub1Jlc3VsdChub2Rl
KTsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCA0NTg4YjVjZmQ5MjQx
YzJmMjcxYTQwNWY3MDM1YmY3NzkwM2FjMDc2Li4yM2JkYWE1MWY0N2U2YjA5NTczYmVhNzA5ZmI0
ODQ4NDQ2M2NhNDI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCkBAIC0xMTU1LDM1ICsxMTU1LDE2IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsK
ICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwog
ICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KLSAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0
VGFnKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uKTsKLSAg
ICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVu
dFR5cGUxPgotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBl
IG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSk7Ci0gICAgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMSwgdHlw
ZW5hbWUgQXJndW1lbnRUeXBlMj4KLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0VGFnLCBBcmd1bWVudFR5cGUxIGFyZzEs
IEFyZ3VtZW50VHlwZTIgYXJnMikKLSAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbiwgYXJnMSwgYXJnMik7Ci0gICAgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0aW9uVHlwZSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMSwgdHlwZW5hbWUgQXJndW1lbnRUeXBl
MiwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMz4KLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0VGFnLCBBcmd1bWVudFR5cGUx
IGFyZzEsIEFyZ3VtZW50VHlwZTIgYXJnMiwgQXJndW1lbnRUeXBlMyBhcmczKQorICAgIEpJVENv
bXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkMgb3BlcmF0aW9u
LCBHUFJSZWcgcmVnT3AxLCBVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRPcDIsIGludDMyX3Qgb3Az
LCBHUFJSZWcgcmVnT3A0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uLCBhcmcxLCBhcmcyLCBhcmczKTsKLSAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
RnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1bWVudFR5
cGUyLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUzLCB0eXBlbmFtZSBBcmd1bWVudFR5cGU0PgotICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBlIG9wZXJhdGlvbiwg
Tm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSwgQXJndW1lbnRUeXBlMiBhcmcyLCBBcmd1
bWVudFR5cGUzIGFyZzMsIEFyZ3VtZW50VHlwZTQgYXJnNCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCk7CisgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1Q
dHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVu
Y3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUy
LCB0eXBlbmFtZSBBcmd1bWVudFR5cGUzLCB0eXBlbmFtZSBBcmd1bWVudFR5cGU0LCB0eXBlbmFt
ZSBBcmd1bWVudFR5cGU1PgotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVu
Y3Rpb25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSwgQXJn
dW1lbnRUeXBlMiBhcmcyLCBBcmd1bWVudFR5cGUzIGFyZzMsIEFyZ3VtZW50VHlwZTQgYXJnNCwg
QXJndW1lbnRUeXBlNSBhcmc1KQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBl
LCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
RnVuY3Rpb25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3MuLi4gYXJncykKICAgICB7
Ci0gICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSwgYXJnMiwgYXJn
MywgYXJnNCwgYXJnNSk7CisgICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwg
YXJncy4uLik7CiAgICAgfQogCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihE
X0pJVE9wZXJhdGlvbl9aWiBvcGVyYXRpb24sIEZQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBH
UFJSZWcgYXJnMikKQEAgLTE1MzQsNiArMTUxNSwxNiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7
CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIo
YXJnMSksIGFyZzIsIFRydXN0ZWRJbW0zMihhcmczKSwgYXJnNCwgVHJ1c3RlZEltbTMyKGFyZzUp
KTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9CisgICAgSklU
Q29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQyBvcGVyYXRp
b24sIEdQUlJlZyByZWdPcDEsIEdQUlJlZyByZWdPcDIsIGludDMyX3Qgb3AzLCBHUFJSZWcgcmVn
T3A0KQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgcmVnT3AyLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVnT3Ax
LCBVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBHUFJSZWcgcmVnT3A0
LCBHUFJSZWcgcmVnT3A1KQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihv
cDMpLCByZWdPcDQsIHJlZ09wNSk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlv
bik7CisgICAgfQogI2Vsc2UgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAogLy8gRW5jb2RlZEpTVmFs
dWUgaW4gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIuIFdoZW4gYmVpbmcgY29tcGls
ZWQgaW4gQVJNIEVBQkksIGl0IG11c3QgYmUgYWxpZ25lZCBldmVuLW51bWJlcmVkIHJlZ2lzdGVy
IChyMCwgcjIgb3IgW3NwXSkuCkBAIC0xODU1LDYgKzE4NDYsMTEgQEAgY2xhc3MgU3BlY3VsYXRp
dmVKSVQgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3Rl
ZEltbTMyKGFyZzEpLCBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbTMyKGFyZzMpLCBh
cmc0LCBUcnVzdGVkSW1tMzIoYXJnNSkpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVy
YXRpb24pOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VDSlpDIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBH
UFJSZWcgYXJnMlBheWxvYWQsIGludDMyX3QgYXJnMywgR1BSUmVnIGFyZzQpCisgICAgeworICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMlBheWxvYWQs
IGFyZzJUYWcsIFRydXN0ZWRJbW0zMihhcmczKSwgYXJnNCk7CisgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsKG9wZXJhdGlvbik7CisgICAgfQogI3VuZGVmIEVBQklfMzJCSVRfRFVNTVlfQVJHCiAj
dW5kZWYgU0g0XzMyQklUX0RVTU1ZX0FSRwogICAgIApAQCAtMjI0Myw2ICsyMjM5LDkgQEAgY2xh
c3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgY29tcGlsZVR5cGVPZihOb2RlKik7CiAgICAg
dm9pZCBjb21waWxlQ2hlY2tTdHJ1Y3R1cmUoTm9kZSosIEdQUlJlZyBjZWxsR1BSLCBHUFJSZWcg
dGVtcEdQUik7CiAgICAgdm9pZCBjb21waWxlQ2hlY2tTdHJ1Y3R1cmUoTm9kZSopOworICAgIHZv
aWQgY29tcGlsZVB1dEFjY2Vzc29yQnlJZChOb2RlKik7CisgICAgdm9pZCBjb21waWxlUHV0QWNj
ZXNzb3JzQnlJZChOb2RlKik7CisgICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JCeVZhbChOb2Rl
Kik7CiAgICAgCiAgICAgdm9pZCBtb3ZlVHJ1ZVRvKEdQUlJlZyk7CiAgICAgdm9pZCBtb3ZlRmFs
c2VUbyhHUFJSZWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKaW5kZXggY2IwODA2Y2RkNWE2YTI3MzBjMGQzMTI2MTBmMGQ3MzEyZDgy
MWY5ZS4uZDhlMmQxYjU1MDQ0ZmI5YTM0NDc1OWZjNzRjOTY0ZmFiZmVhZjYxNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC00
MTY0LDYgKzQxNjQsMjMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAg
Y2FzZSBQdXRTZXR0ZXJCeUlkOiB7CisgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQobm9k
ZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDog
eworICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JzQnlJZChub2RlKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorCisgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5
VmFsOiB7CisgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKG5vZGUpOworICAgICAgICBi
cmVhazsKKyAgICB9CisKICAgICBjYXNlIEdldEdsb2JhbExleGljYWxWYXJpYWJsZToKICAgICBj
YXNlIEdldEdsb2JhbFZhcjogewogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNl
cnRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmll
ckluc2VydGlvblBoYXNlLmNwcAppbmRleCBkNzM2ZWZlYmJhYzdlMzgxYjA5OTA3NTAzYTE2MTc5
YTM1ZDk5MWE3Li41OTBkYTcyYThjOTQzZTczMWMwN2M1ZDJlYmI1ZGFmOTkyN2M1YWYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlv
blBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmll
ckluc2VydGlvblBoYXNlLmNwcApAQCAtMjcyLDYgKzI3MiwxNSBAQCBjbGFzcyBTdG9yZUJhcnJp
ZXJJbnNlcnRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAg
ICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICAgICAgICAgIGNhc2UgUHV0QWNjZXNzb3Jz
QnlJZDoKKyAgICAgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgICAgICBjYXNl
IFB1dFNldHRlckJ5VmFsOiB7CisgICAgICAgICAgICAgICAgY29uc2lkZXJCYXJyaWVyKG1fbm9k
ZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAg
ICAgICAgICAgICBjYXNlIFB1dEJ5T2Zmc2V0OiB7CiAgICAgICAgICAgICAgICAgY29uc2lkZXJC
YXJyaWVyKG1fbm9kZS0+Y2hpbGQyKCksIG1fbm9kZS0+Y2hpbGQzKCkpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBh
YmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwCmluZGV4IDUzN2Y4ZjY1YTUxYTMzMzFkMjUyMDI1NjYxMGFkNGYxZjIxYjk0ZTkuLjFmNGM4
NjQ2NjhhZTUxNzY3OGFkNWRjODI2ZDg1N2U3ODdhNTI0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTIwMyw2ICsyMDMsMTEgQEAgaW5s
aW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBGb3J3
YXJkVmFyYXJnczoKICAgICBjYXNlIFN3aXRjaDoKICAgICBjYXNlIFR5cGVPZjoKKyAgICBjYXNl
IFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0QWNj
ZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0dGVy
QnlWYWw6CiAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBBcml0aFN1YjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50
cmluc2ljUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5z
aWNSZXBvc2l0b3J5LmgKaW5kZXggNDNkZGZjMzk0M2M0NTczNDc5YWM2NjcwNjgxZTc5MjEyNzIz
NTFhYS4uOGUzMzUyMmE1Yzc5N2Y0NGE4NjI2YWM1NDYwZWExNzY3ODFjMjUzYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKQEAg
LTExOCw2ICsxMTgsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFj
cm8oVl9KSVRPcGVyYXRpb25fSiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQ2NCkpIFwKICAg
ICBtYWNybyhWX0pJVE9wZXJhdGlvbl9aLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludDMyKSkg
XAogICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0UsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50
UHRyKSkgXAorICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0VDSVpDLCBmdW5jdGlvblR5cGUodm9p
ZFR5cGUsIGludFB0ciwgaW50UHRyLCBpbnRQdHIsIGludDMyLCBpbnRQdHIpKSBcCisgICAgbWFj
cm8oVl9KSVRPcGVyYXRpb25fRUNJWkpKLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0ciwg
aW50UHRyLCBpbnRQdHIsIGludDMyLCBpbnQ2NCwgaW50NjQpKSBcCisgICAgbWFjcm8oVl9KSVRP
cGVyYXRpb25fRUNKWkMsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50UHRyLCBpbnRQdHIsIGlu
dDY0LCBpbnQzMiwgaW50UHRyKSkgXAogICAgIG1hY3JvKFpfSklUT3BlcmF0aW9uX0QsIGZ1bmN0
aW9uVHlwZShpbnQzMiwgZG91YmxlVHlwZSkpIFwKICAgICBtYWNybyhaX0pJVE9wZXJhdGlvbl9F
QywgZnVuY3Rpb25UeXBlKGludDMyLCBpbnRQdHIsIGludFB0cikpIFwKICAgICBtYWNybyhaX0pJ
VE9wZXJhdGlvbl9FR0MsIGZ1bmN0aW9uVHlwZShpbnQzMiwgaW50UHRyLCBpbnRQdHIsIGludFB0
cikpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5j
cHAKaW5kZXggYjlhNmM5ODdiZmE2ZGNiZGI1ZTJjNWU5YzNiZWVlYTIwOGZlZDZkYy4uNGQzOTY0
NTc0ZjhmYWY5N2I4MzU1OTYyOGIwNzNkYTcyMGViZjIzZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTU2Myw2ICs1NjMsMTcgQEAg
Y2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CiAgICAg
ICAgICAgICBjb21waWxlUHV0QnlJZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgUHV0R2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICAg
ICAgY29tcGlsZVB1dEFjY2Vzc29yQnlJZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICAgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvcnNC
eUlkKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoK
KyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKKyAgICAgICAgICAgIGNvbXBpbGVQdXRBY2Nl
c3NvckJ5VmFsKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHZXRCdXR0ZXJm
bHk6CiAgICAgICAgICAgICBjb21waWxlR2V0QnV0dGVyZmx5KCk7CiAgICAgICAgICAgICBicmVh
azsKQEAgLTMwMDAsNiArMzAxMSwzOCBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKworICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vz
c29yQnlJZCgpCisgICAgeworICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBhY2Nlc3NvciA9IGxvd0NlbGwobV9ub2RlLT5jaGls
ZDIoKSk7CisgICAgICAgIGF1dG8gdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW21fbm9kZS0+
aWRlbnRpZmllck51bWJlcigpXTsKKyAgICAgICAgdm1DYWxsKAorICAgICAgICAgICAgbV9vdXQu
b3BlcmF0aW9uKG1fbm9kZS0+b3AoKSA9PSBQdXRHZXR0ZXJCeUlkID8gb3BlcmF0aW9uUHV0R2V0
dGVyQnlJZCA6IG9wZXJhdGlvblB1dFNldHRlckJ5SWQpLAorICAgICAgICAgICAgbV9jYWxsRnJh
bWUsIGJhc2UsIG1fb3V0LmNvbnN0SW50UHRyKHVpZCksIG1fb3V0LmNvbnN0SW50MzIobV9ub2Rl
LT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSksIGFjY2Vzc29yKTsKKyAgICB9CisKKyAgICB2b2lkIGNv
bXBpbGVQdXRBY2Nlc3NvcnNCeUlkKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93
Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGdldHRlciA9IGxvd0pTVmFs
dWUobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIExWYWx1ZSBzZXR0ZXIgPSBsb3dKU1ZhbHVl
KG1fbm9kZS0+Y2hpbGQzKCkpOworICAgICAgICBhdXRvIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmll
cnMoKVttX25vZGUtPmlkZW50aWZpZXJOdW1iZXIoKV07CisgICAgICAgIHZtQ2FsbCgKKyAgICAg
ICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIpLAorICAgICAg
ICAgICAgbV9jYWxsRnJhbWUsIGJhc2UsIG1fb3V0LmNvbnN0SW50UHRyKHVpZCksIG1fb3V0LmNv
bnN0SW50MzIobV9ub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSksIGdldHRlciwgc2V0dGVyKTsK
KworICAgIH0KKworICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29yQnlWYWwoKQorICAgIHsKKyAg
ICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBM
VmFsdWUgc3Vic2NyaXB0ID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAg
TFZhbHVlIGFjY2Vzc29yID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgdm1D
YWxsKAorICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG1fbm9kZS0+b3AoKSA9PSBQdXRHZXR0
ZXJCeVZhbCA/IG9wZXJhdGlvblB1dEdldHRlckJ5VmFsIDogb3BlcmF0aW9uUHV0U2V0dGVyQnlW
YWwpLAorICAgICAgICAgICAgbV9jYWxsRnJhbWUsIGJhc2UsIHN1YnNjcmlwdCwgbV9vdXQuY29u
c3RJbnQzMihtX25vZGUtPmFjY2Vzc29yQXR0cmlidXRlcygpKSwgYWNjZXNzb3IpOworICAgIH0K
ICAgICAKICAgICB2b2lkIGNvbXBpbGVBcnJheVB1c2goKQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oCmluZGV4IDkyMGRhZTIyY2Y5ZTZjMzNhYTZkY2FmZThjZmYxZWEyMGU1ZDFhMWQuLjQx
MGE4Y2JiYTRjY2NjMWU0ZDYxZGQyZDg4M2M0ZjAzYjY2OTQ3ZWEgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaApAQCAtNzYyLDkgKzc2MiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQywg
UmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUNDLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQywgUmVn
aXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQpOwotICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpD
QywgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZf
SklUT3BlcmF0aW9uX0VDSVpDLCBSZWdpc3RlcklELCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMy
X3QsIFJlZ2lzdGVySUQpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDQywgUmVnaXN0ZXJJRCwgVW5pcXVlZFN0cmluZ0ltcGwq
LCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VDSlpDLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKKyNl
bHNlCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRUNKWkMsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3Qs
IFJlZ2lzdGVySUQpOworI2VuZGlmCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUUsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VaU3ltdGFiSiwgaW50
LCBTeW1ib2xUYWJsZSosIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VaU3ltdGFiSiwgaW50LCBTeW1ib2xUYWJs
ZSosIFJlZ2lzdGVySUQpOwpAQCAtNzc1LDEyICs3NzksMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAj
ZWxzZQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uTm9FeGNlcHRp
b25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAjZW5k
aWYKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FSklkWkosIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBpbnQzMl90LCBSZWdp
c3RlcklEKTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSklkWkpKLCBSZWdpc3RlcklELCBjb25zdCBJZGVudGlmaWVyKiwgaW50MzJf
dCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKWkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRl9KSVRPcGVyYXRpb25fRUZKWlosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VTc2lKSkksIFN0
cnVjdHVyZVN0dWJJbmZvKiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgVW5pcXVlZFN0cmluZ0lt
cGwqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9w
ZXJhdGlvbl9FQ0laSkosIFJlZ2lzdGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAjZWxzZQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VTc2lKSkksIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgVW5p
cXVlZFN0cmluZ0ltcGwqKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZXMuaAppbmRleCBhMzRiN2EwYzlkZGY1ZWZmOTY2NjRlOTM0MWMyNmY0NDk1NjQxZDU2Li5iNWVh
MDgxMzRiODQ0ODJmOTVhNmE0NzgxNjYwZDIzNDE3YzhhMWUyIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZXMuaApAQCAtNDA2LDYgKzQwNiwxMSBAQCBBTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFj
a09uRXhjZQogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNl
cHRpb24ob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkMgb3BlcmF0aW9uLCBSZWdp
c3RlcklEIHJlZ09wMSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywg
UmVnaXN0ZXJJRCByZWdPcDQpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQp
OworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Cit9
CiAKICNpZiBVU0UoSlNWQUxVRTY0KQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpaWiBvcGVyYXRpb24sIEdQUlJl
ZyBhcmcxLCBpbnQzMl90IGFyZzIsIGludDMyX3QgYXJnMykKQEAgLTU0MSwxOSArNTQ2LDEzIEBA
IEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZf
SklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKIG9wZXJhdGlvbiwg
UmVnaXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9w
MywgUmVnaXN0ZXJJRCByZWdPcDQpCi17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdP
cDQpOwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7
Ci19Ci0KLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwg
Y29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09w
NCwgUmVnaXN0ZXJJRCByZWdPcDUpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laSkogb3BlcmF0aW9uLCBSZWdp
c3RlcklEIHJlZ09wMSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywg
UmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQogewogICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVk
SW1tMzIob3AzKSwgcmVnT3A0LCByZWdPcDUpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSlpKIG9wZXJhdGlv
biwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBpbnQzMl90IG9wMywgUmVn
aXN0ZXJJRCByZWdPcDQpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQg
cmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0
KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMiwgVHJ1
c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uKTsKQEAgLTY3NSwxMyArNjc0LDcgQEAgQUxXQVlTX0lOTElORSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUpK
IG9wZXJhdGkKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3Ax
LCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVn
T3A0KQotewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJ
bW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKLSAgICByZXR1cm4g
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwotfQotCi1BTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FQ0laQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciog
aWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCwgUmVnaXN0ZXJJRCByZWdP
cDUpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihWX0pJVE9wZXJhdGlvbl9FQ0laQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgVW5p
cXVlZFN0cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQs
IFJlZ2lzdGVySUQgcmVnT3A1KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShy
ZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0
LCByZWdPcDUpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJh
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRl
eCAyYjUzMGY1Zjc4YzlmNGY3NDlkZWJiMDQ3OGRiMTZmMTI4YjI4NzFhLi43M2Q3Njc5ODk1YjQ2
NTI2ODI1NmI4ODVhNTNhNzFhYTc2ZTNhOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTEzNTMsMTA5ICsxMzUzLDc4IEBAIHN0YXRpYyB2b2lk
IHB1dEFjY2Vzc29yQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZSwgSlNWYWx1
ZSBzdWJzY3JpcHQsCiAgICAgICAgIGJhc2UtPnB1dFNldHRlcihleGVjLCBwcm9wZXJ0eUtleSwg
YWNjZXNzb3IsIGF0dHJpYnV0ZSk7CiB9CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMy
X3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRlclZhbHVlKQordm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwq
IG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwq
IGdldHRlcikKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKIAotICAgIEFTU0VSVChKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9iamVjdFZhbHVlKS5pc09iamVjdCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9
IGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT2JqZWN0VmFsdWUpKTsKKyAgICBBU1NF
UlQob2JqZWN0ICYmIG9iamVjdC0+aXNPYmplY3QoKSk7CisgICAgSlNPYmplY3QqIGJhc2VPYmog
PSBvYmplY3QtPmdldE9iamVjdCgpOwogCi0gICAgSlNWYWx1ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZEdldHRlclZhbHVlKTsKLSAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkp
OwotICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCAqaWRlbnRpZmllciwgYXNPYmplY3QoZ2V0
dGVyKSwgb3B0aW9ucyk7CisgICAgQVNTRVJUKGdldHRlci0+aXNPYmplY3QoKSk7CisgICAgYmFz
ZU9iai0+cHV0R2V0dGVyKGV4ZWMsIHVpZCwgZ2V0dGVyLCBvcHRpb25zKTsKIH0KIAotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGlu
dDMyX3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNldHRlclZhbHVlKQordm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0Nl
bGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBvcHRpb25zLCBKU0Nl
bGwqIHNldHRlcikKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKIAotICAgIEFTU0VSVChKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9iamVjdFZhbHVlKS5pc09iamVjdCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9i
aiA9IGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT2JqZWN0VmFsdWUpKTsKKyAgICBB
U1NFUlQob2JqZWN0ICYmIG9iamVjdC0+aXNPYmplY3QoKSk7CisgICAgSlNPYmplY3QqIGJhc2VP
YmogPSBvYmplY3QtPmdldE9iamVjdCgpOwogCi0gICAgSlNWYWx1ZSBzZXR0ZXIgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFNldHRlclZhbHVlKTsKLSAgICBBU1NFUlQoc2V0dGVyLmlzT2JqZWN0
KCkpOwotICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVjLCAqaWRlbnRpZmllciwgYXNPYmplY3Qo
c2V0dGVyKSwgb3B0aW9ucyk7CisgICAgQVNTRVJUKHNldHRlci0+aXNPYmplY3QoKSk7CisgICAg
YmFzZU9iai0+cHV0U2V0dGVyKGV4ZWMsIHVpZCwgc2V0dGVyLCBvcHRpb25zKTsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPYmplY3RWYWx1ZSwgSWRlbnRpZmllciogaWRlbnRpZmll
ciwgaW50MzJfdCBhdHRyaWJ1dGUsCi0gICAgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRlclZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyVmFsdWUpCit2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBKU0Nl
bGwqIGdldHRlcikKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKIAotICAgIEFTU0VSVChKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9iamVjdFZhbHVlKS5pc09iamVjdCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9i
aiA9IGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT2JqZWN0VmFsdWUpKTsKLQotICAg
IEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLQotICAgIEpTVmFsdWUgZ2V0dGVyID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRHZXR0ZXJWYWx1ZSk7Ci0gICAgSlNWYWx1ZSBzZXR0ZXIgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFNldHRlclZhbHVlKTsKLSAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0
KCkgfHwgZ2V0dGVyLmlzVW5kZWZpbmVkKCkpOwotICAgIEFTU0VSVChzZXR0ZXIuaXNPYmplY3Qo
KSB8fCBzZXR0ZXIuaXNVbmRlZmluZWQoKSk7Ci0gICAgQVNTRVJUKGdldHRlci5pc09iamVjdCgp
IHx8IHNldHRlci5pc09iamVjdCgpKTsKLQotICAgIGlmICghZ2V0dGVyLmlzVW5kZWZpbmVkKCkp
Ci0gICAgICAgIGFjY2Vzc29yLT5zZXRHZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKSwgYXNPYmplY3QoZ2V0dGVyKSk7Ci0gICAgaWYgKCFzZXR0ZXIuaXNVbmRlZmluZWQoKSkK
LSAgICAgICAgYWNjZXNzb3ItPnNldFNldHRlcih2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLCBhc09iamVjdChzZXR0ZXIpKTsKLSAgICBiYXNlT2JqLT5wdXREaXJlY3RBY2Nlc3Nvcihl
eGVjLCAqaWRlbnRpZmllciwgYWNjZXNzb3IsIGF0dHJpYnV0ZSk7CisgICAgcHV0QWNjZXNzb3JC
eVZhbChleGVjLCBhc09iamVjdChiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3Jp
cHQpLCBhdHRyaWJ1dGUsIGFzT2JqZWN0KGdldHRlciksIEFjY2Vzc29yVHlwZTo6R2V0dGVyKTsK
IH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0
dGVyKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKEV4ZWNTdGF0
ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBp
bnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7Ci0gICAg
SlNPYmplY3QqIGJhc2UgPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpKTsK
LSAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0
KTsKLSAgICBKU09iamVjdCogZ2V0dGVyID0gYXNPYmplY3QoSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRHZXR0ZXIpKTsKLSAgICBwdXRBY2Nlc3NvckJ5VmFsKGV4ZWMsIGJhc2UsIHN1YnNjcmlwdCwg
YXR0cmlidXRlLCBnZXR0ZXIsIEFjY2Vzc29yVHlwZTo6R2V0dGVyKTsKLX0KIAotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGlu
dDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyKQotewotICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0s
IGV4ZWMpOwotICAgIEpTT2JqZWN0KiBiYXNlID0gYXNPYmplY3QoSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRCYXNlKSk7Ci0gICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFN1YnNjcmlwdCk7Ci0gICAgSlNPYmplY3QqIHNldHRlciA9IGFzT2JqZWN0KEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkU2V0dGVyKSk7Ci0gICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBiYXNl
LCBzdWJzY3JpcHQsIGF0dHJpYnV0ZSwgc2V0dGVyLCBBY2Nlc3NvclR5cGU6OlNldHRlcik7Cisg
ICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBhc09iamVjdChiYXNlKSwgSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1dGUsIGFzT2JqZWN0KHNldHRlciksIEFjY2Vzc29y
VHlwZTo6U2V0dGVyKTsKIH0KIAotI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElkZW50aWZpZXIq
IGlkZW50aWZpZXIsIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKiBnZXR0ZXIpCisjaWYgVVNFKEpT
VkFMVUU2NCkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50
MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFNldHRlclZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCiAgICAgQVNT
RVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0KiBiYXNlT2Jq
ID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKLQotICAgIEFTU0VSVChnZXR0ZXItPmlzT2JqZWN0KCkp
OwotICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCAqaWRlbnRpZmllciwgZ2V0dGVyLCBvcHRp
b25zKTsKLX0KKyAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KG9iamVjdCk7CiAKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhlYywg
SlNDZWxsKiBvYmplY3QsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3Qgb3B0aW9ucywg
SlNDZWxsKiBzZXR0ZXIpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CisgICAgR2V0dGVyU2V0dGVyKiBhY2Nl
c3NvciA9IEdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCkpOwogCi0gICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOwotICAgIEpT
T2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKKyAgICBKU1ZhbHVlIGdldHRl
ciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkR2V0dGVyVmFsdWUpOworICAgIEpTVmFsdWUgc2V0
dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7CisgICAgQVNTRVJUKGdl
dHRlci5pc09iamVjdCgpIHx8IGdldHRlci5pc1VuZGVmaW5lZCgpKTsKKyAgICBBU1NFUlQoc2V0
dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzVW5kZWZpbmVkKCkpOworICAgIEFTU0VSVChnZXR0
ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNPYmplY3QoKSk7CiAKLSAgICBBU1NFUlQoc2V0dGVy
LT5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIs
IHNldHRlciwgb3B0aW9ucyk7CisgICAgaWYgKCFnZXR0ZXIuaXNVbmRlZmluZWQoKSkKKyAgICAg
ICAgYWNjZXNzb3ItPnNldEdldHRlcih2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBh
c09iamVjdChnZXR0ZXIpKTsKKyAgICBpZiAoIXNldHRlci5pc1VuZGVmaW5lZCgpKQorICAgICAg
ICBhY2Nlc3Nvci0+c2V0U2V0dGVyKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGFz
T2JqZWN0KHNldHRlcikpOworICAgIGJhc2VPYmotPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHVp
ZCwgYWNjZXNzb3IsIGF0dHJpYnV0ZSk7CiB9CiAKKyNlbHNlCiB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3Qs
IElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdldHRl
ciwgSlNDZWxsKiBzZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKICAgICBBU1NFUlQob2JqZWN0
ICYmIG9iamVjdC0+aXNPYmplY3QoKSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBvYmplY3Qt
PmdldE9iamVjdCgpOworICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3Qob2JqZWN0KTsK
IAogICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKIApAQCAtMTQ2OSwyMyArMTQzOCw2IEBAIHZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBKU0NlbGwqIG9iamVjdCwgSWRlCiAgICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgc2V0dGVyLT5nZXRPYmplY3QoKSk7CiAgICAgYmFz
ZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRy
aWJ1dGUpOwogfQotCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwo
RXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdldHRlcikKLXsKLSAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVj
KTsKLQotICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIpLCBB
Y2Nlc3NvclR5cGU6OkdldHRlcik7Ci19Ci0KLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogc2V0dGVyKQot
ewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcigmdm0sIGV4ZWMpOwotCi0gICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBhc09iamVjdChi
YXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1dGUsIGFzT2Jq
ZWN0KHNldHRlciksIEFjY2Vzc29yVHlwZTo6U2V0dGVyKTsKLX0KLQogI2VuZGlmCiAKIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3Qg
c2NvcGVSZWcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4
IGFhY2EzNWEyMWQwOTdhNjZiNDgxZmE1MjA1YzY4NTEzMjMzY2Q1NmIuLmY2YzU3ZjNkMWNiN2U0
NTYyMjYzNjJhOTJhMGZkMDk5NDA1OTlkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5oCkBAIC0xODksOCArMTg5LDkgQEAgdHlwZWRlZiB2b2lkIEpJVF9PUEVS
QVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQykoRXhlY1N0YXRlKiwgSlNDZWxsKik7CiB0eXBlZGVm
IHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDYikoRXhlY1N0YXRlKiwgQ29k
ZUJsb2NrKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VD
QykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJB
VElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSWNmKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBJbmxpbmVD
YWxsRnJhbWUqKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25f
RUNJWkMpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBpbnQzMl90LCBKU0NlbGwq
KTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJWkNDKShF
eGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlmaWVyKiwgaW50MzJfdCwgSlNDZWxsKiwgSlNDZWxs
Kik7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDKShF
eGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QsIEpTQ2VsbCop
OwordHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0laQ0MpKEV4
ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCwgSlNDZWxsKiwg
SlNDZWxsKik7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VD
SVpKSikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJ
T04gKCpWX0pJVE9wZXJhdGlvbl9FQ0paQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpT
VmFsdWUsIGludDMyX3QsIEpTQ2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpW
X0pJVE9wZXJhdGlvbl9FQ0NJY2YpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCosIElubGlu
ZUNhbGxGcmFtZSopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlv
bl9FQ0pKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpOwpAQCAtMjAwLDkgKzIwMSw2IEBAIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9K
SVRPcGVyYXRpb25fRUNDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqKTsKIHR5cGVkZWYg
dm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRVpTeW10YWJKKShFeGVjU3RhdGUq
LCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBK
SVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpDSSko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKik7
Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSWRaSikoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90LCBFbmNvZGVkSlNW
YWx1ZSk7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSWRa
SkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50MzJfdCwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9O
ICgqVl9KSVRPcGVyYXRpb25fRUpKWkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9P
UEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BF
UkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSkFwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSkJ5KShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbElu
Zm8qKTsKQEAgLTMxMywxOCArMzExLDE0IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25E
ZWJ1ZyhFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiBTbG93UGF0aFJldHVyblR5
cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBpbnQzMl90KSBX
VEZfSU5URVJOQUw7CiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlu
ZGV4KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7
Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0
ZXJCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50MzJfdCBv
cHRpb25zLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50
aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7
Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLSNlbHNlCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlmaWVyKiwgaW50MzJf
dCBvcHRpb25zLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlmaWVyKiwgaW50
MzJfdCBvcHRpb25zLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIq
LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxs
KiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0
ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwq
KSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlW
YWwoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRl
LCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
U2V0dGVyQnlWYWwoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3Qg
YXR0cmlidXRlLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7CisjaWYgVVNFKEpTVkFMVUU2NCkKK3Zv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgSlND
ZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CisjZWxzZQordm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVk
U3RyaW5nSW1wbCosIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqLCBKU0NlbGwqKSBXVEZfSU5U
RVJOQUw7CiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXNoRnVuY3Rpb25O
YW1lU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCwgU3ltYm9sVGFibGUqLCBFbmNvZGVkSlNWYWx1
ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcFNjb3BlKEV4
ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggYjE0NmIyMDk4NzY4YjJhOGZjNmE5
OTFkNDNkZWI0NTE1NDY0ZTIxYi4uMzE3OWY5OGU1ODAzMGQ2MWYwZWI2Y2ExNGY5YjMyNDg2YTQ0
NDRiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
cy5jcHAKQEAgLTQ5Miw3ICs0OTIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX2J5
X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7CiAgICAgaW50
MzJfdCBvcHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBlbWl0
R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQsIHJlZ1Qx
KTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHJlZ1QwLCAmbV9j
b2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCksIG9w
dGlvbnMsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlckJ5SWQs
IHJlZ1QwLCBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKS5pbXBsKCksIG9wdGlvbnMsIHJlZ1QxKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3Bf
cHV0X3NldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtNTAw
LDcgKzUwMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKICAgICBpbnQzMl90IG9wdGlvbnMg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCwgcmVnVDEpOwotICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgcmVnVDAsICZtX2NvZGVCbG9jay0+aWRl
bnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwgb3B0aW9ucywgcmVnVDEp
OworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgcmVnVDAsIG1fY29k
ZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLmltcGwo
KSwgb3B0aW9ucywgcmVnVDEpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX3Nl
dHRlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtNTA5LDcgKzUwOSw3IEBA
IHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgaW50MzJfdCBhdHRyaWJ1dGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
M10udS5vcGVyYW5kOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzRdLnUub3BlcmFuZCwgcmVnVDEpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzVdLnUub3BlcmFuZCwgcmVnVDIpOwotICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVy
KGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLCBhdHRyaWJ1dGUsIHJlZ1QxLCByZWdU
Mik7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QwLCBt
X2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKS5p
bXBsKCksIGF0dHJpYnV0ZSwgcmVnVDEsIHJlZ1QyKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3Bf
cHV0X2dldHRlcl9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263474</attachid>
            <date>2015-10-19 05:34:41 -0700</date>
            <delta_ts>2015-10-19 05:46:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148860-20151019213358.patch</filename>
            <type>text/plain</type>
            <size>48070</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
Y2JlOWVkMDZkYTAwNmYxOGU1ODE2YjkyOWQ0NWUzNTQwYmYwN2JkLi5hNmFiNGZjODQ0MzE4NDEx
OGI2M2E1ZjkzNDY3NDQwNWJlMjQwZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAxNS0xMC0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBBZGQgREZHL0ZUTCBzdXBwb3J0IGZvciBhY2Nlc3NvciBw
dXQgb3BlcmF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzSWRlbnRpZmllcik6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6aGFzQWNjZXNzb3JBdHRyaWJ1dGVzKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjphY2Nlc3NvckF0dHJpYnV0ZXMpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVj
dXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yc0J5SWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcDoKKyAg
ICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5D
b21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6
CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlv
bnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0
ZXJfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX3NldHRlcik6CisKIDIwMTUt
MTAtMTggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
UHJvbWlzZSBjb25zdHJ1Y3RvciBzaG91bGQgdGhyb3cgd2hlbiBub3QgY2FsbGVkIHdpdGggIm5l
dyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaAppbmRleCBmMjhjYzdhZmYwNmI5OTMzMzUwNGZmYTU2NGE0YzNj
N2QxZTUyNmEyLi5hNzAxODA2YTEzZDkxNzg5OWQ2NzIxMmQwMTU3ODQ5MTlmZTRmMzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCkBAIC0yMzYzLDYgKzIzNjMsMTUgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKICAgICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJl
ckxpbWl0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAgY2FzZSBQdXRHZXR0ZXJCeUlk
OgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6Cisg
ICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAg
ICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBJbjogewogICAgICAgICAv
LyBGSVhNRTogV2UgY2FuIGRldGVybWluZSB3aGVuIHRoZSBwcm9wZXJ0eSBkZWZpbml0ZWx5IGV4
aXN0cyBiYXNlZCBvbiBhYnN0cmFjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA2OWY1NGYxZDM1MTA1MDY3MGE1MDdiMjRmM2Y3Njk0
NWFkNmI2YTA2Li4zYWVlNzgxNjBkNWNhOWQwMmVmNWIwZGYwODk0NDI5ZGRlN2U2ODllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAt
Mzc0OSw2ICszNzQ5LDM4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWdu
ZWQgbGltaXQpCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9wdXRfYnlfaWQpOwogICAgICAg
ICB9CiAKKyAgICAgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X2lkOgorICAgICAgICBjYXNlIG9w
X3B1dF9zZXR0ZXJfYnlfaWQ6IHsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZp
ZXJSZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kXTsKKyAgICAgICAgICAgIHVu
c2lnbmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAg
ICAgICAgICAgTm9kZSogYWNjZXNzb3IgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGVUeXBlIG9wID0gKG9wY29k
ZUlEID09IG9wX3B1dF9nZXR0ZXJfYnlfaWQpID8gUHV0R2V0dGVyQnlJZCA6IFB1dFNldHRlckJ5
SWQ7CisgICAgICAgICAgICBhZGRUb0dyYXBoKG9wLCBPcEluZm8oaWRlbnRpZmllck51bWJlciks
IE9wSW5mbyhhdHRyaWJ1dGVzKSwgYmFzZSwgYWNjZXNzb3IpOworICAgICAgICAgICAgTkVYVF9P
UENPREUob3BfcHV0X2dldHRlcl9ieV9pZCk7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIG9w
X3B1dF9nZXR0ZXJfc2V0dGVyOiB7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgICAgICAg
ICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9pbmxpbmVTdGFja1RvcC0+bV9pZGVudGlm
aWVyUmVtYXBbY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZF07CisgICAgICAgICAgICB1
bnNpZ25lZCBhdHRyaWJ1dGVzID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAg
ICAgICAgICAgIE5vZGUqIGdldHRlciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3Ry
dWN0aW9uWzRdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZSogc2V0dGVyID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kKSk7CisgICAgICAg
ICAgICBhZGRUb0dyYXBoKFB1dEFjY2Vzc29yc0J5SWQsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVy
KSwgT3BJbmZvKGF0dHJpYnV0ZXMpLCBiYXNlLCBnZXR0ZXIsIHNldHRlcik7CisgICAgICAgICAg
ICBORVhUX09QQ09ERShvcF9wdXRfZ2V0dGVyX3NldHRlcik7CisgICAgICAgIH0KKworICAgICAg
ICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfdmFsOgorICAgICAgICBjYXNlIG9wX3B1dF9zZXR0ZXJf
YnlfdmFsOiB7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBzdWJz
Y3JpcHQgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJh
bmQpKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kOworICAgICAgICAgICAgTm9kZSogYWNjZXNzb3IgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAg
IE5vZGVUeXBlIG9wID0gKG9wY29kZUlEID09IG9wX3B1dF9nZXR0ZXJfYnlfdmFsKSA/IFB1dEdl
dHRlckJ5VmFsIDogUHV0U2V0dGVyQnlWYWw7CisgICAgICAgICAgICBhZGRUb0dyYXBoKG9wLCBP
cEluZm8oYXR0cmlidXRlcyksIGJhc2UsIHN1YnNjcmlwdCwgYWNjZXNzb3IpOworICAgICAgICAg
ICAgTkVYVF9PUENPREUob3BfcHV0X2dldHRlcl9ieV92YWwpOworICAgICAgICB9CisKICAgICAg
ICAgY2FzZSBvcF9wcm9maWxlX3R5cGU6IHsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlVG9Qcm9m
aWxlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
KSk7CiAgICAgICAgICAgICBhZGRUb0dyYXBoKFByb2ZpbGVUeXBlLCBPcEluZm8oY3VycmVudElu
c3RydWN0aW9uWzJdLnUubG9jYXRpb24pLCB2YWx1ZVRvUHJvZmlsZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggZGFmZTVlODIzYzhjOTBh
ODQyZmY0OWEyYWZjOWNiYjA1OWZlNjNhNi4uOTc4OGE0ODRhMTNhYmEyZjkxZWUxMTMwNTBlNmU1
OWFjNmFiODQzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMTU0LDYgKzE1NCwxMSBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxl
dmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAg
IGNhc2Ugb3BfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICBj
YXNlIG9wX3B1dF9ieV9pZDoKKyAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6CisgICAgY2Fz
ZSBvcF9wdXRfc2V0dGVyX2J5X2lkOgorICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9zZXR0ZXI6Cisg
ICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X3ZhbDoKKyAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlf
dmFsOgogICAgIGNhc2Ugb3Bfam1wOgogICAgIGNhc2Ugb3BfanRydWU6CiAgICAgY2FzZSBvcF9q
ZmFsc2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJp
emUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDZj
ODVkNTllMzEwNTM5YzlhYWJiNDJjZjFkYTFlYzFjZWNlZjJlOTguLjE4NzQ3NzA1OWNhZGFhOGY0
MTkzNjIyZWFjNGVmNmZlNzNkZGEzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCkBAIC0zNzksNiArMzc5LDExIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1
CiAgICAgY2FzZSBQdXRCeUlkOgogICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0
QnlJZERpcmVjdDoKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJC
eUlkOgorICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFs
OgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAgY2FzZSBBcnJheVB1c2g6CiAgICAgY2Fz
ZSBBcnJheVBvcDoKICAgICBjYXNlIENhbGw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAKaW5kZXggNWM1N2UwMjJhMGRiYmQzM2YxZGU2NDg1YmQ1MDE2YWQ3OTQwZmM5NS4u
YzUwNjNmMTRjOWE0ZDRjZmFjMzdlOWNiNjhmOTQ2NGFmOGZjN2I1MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtOTUsNiArOTUsMTEgQEAgYm9vbCBkb2VzR0Mo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgUHV0QnlJZDoKICAgICBjYXNlIFB1
dEJ5SWRGbHVzaDoKICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CisgICAgY2FzZSBQdXRHZXR0ZXJC
eUlkOgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6
CisgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAg
IGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgIGNhc2Ug
R2V0QnV0dGVyZmx5OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKaW5kZXggZWI2NDE1YjNmNGNkNmRlMDI2YWE5YTk2YjQ2NmEzYTE1NTA1MWZlYi4uYmU1ZmQ1
M2FmMjFmYTNlODRiM2ZiM2Q5NGY2Mzc1OTJjMzBlMGM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMDU3LDYgKzEwNTcsMjUgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJC
eUlkOiB7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNC
eUlkOiB7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFB1dEdldHRl
ckJ5VmFsOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAgICAgICAgICBmaXhF
ZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4RWRnZTxL
bm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisKICAgICAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgICAgICBmaXhFZGdl
PEZ1bmN0aW9uVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggYWMxYTc1N2NlNDc1MTkzYjMzYzM5MjMxZjU2
NDdmNjhlYmRjYzU2Yy4uNzkwNTkzYjk4NGJiZjgxNTM1ZjMyMDZmZTFlZGQzYmFlMjY3ZWU1YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTg1Myw2ICs4NTMsOSBAQCBzdHJ1
Y3QgTm9kZSB7CiAgICAgICAgIGNhc2UgUHV0QnlJZDoKICAgICAgICAgY2FzZSBQdXRCeUlkRmx1
c2g6CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJC
eUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0QWNjZXNz
b3JzQnlJZDoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODY0LDYgKzg2NywzNyBAQCBzdHJ1Y3QgTm9kZSB7
CiAgICAgICAgIEFTU0VSVChoYXNJZGVudGlmaWVyKCkpOwogICAgICAgICByZXR1cm4gbV9vcElu
Zm87CiAgICAgfQorCisgICAgYm9vbCBoYXNBY2Nlc3NvckF0dHJpYnV0ZXMoKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoIChvcCgpKSB7CisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAg
ICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6Cisg
ICAgICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludDMyX3QgYWNjZXNzb3JB
dHRyaWJ1dGVzKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChoYXNBY2Nlc3NvckF0dHJpYnV0ZXMo
KSk7CisgICAgICAgIHN3aXRjaCAob3AoKSkgeworICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6
CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNC
eUlkOgorICAgICAgICAgICAgcmV0dXJuIG1fb3BJbmZvMjsKKyAgICAgICAgY2FzZSBQdXRHZXR0
ZXJCeVZhbDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKKyAgICAgICAgICAgIHJldHVy
biBtX29wSW5mbzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0K
ICAgICAKICAgICBib29sIGhhc1Byb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKCkKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggMTM0OWE1ZGY5ZWViYTUx
MDk1NGExMTA3NDNlNDUwNjZmYjMzM2EwYS4uYTBmZmRlOWY2YzIwMmRjNjllZmFjZjQzM2JkNWM0
ZWZmMjJkNmNiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAt
MTc5LDggKzE3OSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFj
cm8oR2V0QnlJZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KEdldEJ5SWRGbHVzaCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1h
Y3JvKFB1dEJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhQdXRCeUlkRmx1c2gs
IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0QnlJ
ZEZsdXNoLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHV0QnlJZERpcmVjdCwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1dEdldHRlckJ5SWQsIE5vZGVNdXN0R2VuZXJh
dGUpIFwKKyAgICBtYWNybyhQdXRTZXR0ZXJCeUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAg
bWFjcm8oUHV0QWNjZXNzb3JzQnlJZCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1
dEdldHRlckJ5VmFsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0U2V0dGVyQnlW
YWwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1N0cnVjdHVyZSwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldEV4ZWN1dGFibGUsIE5vZGVSZXN1bHRKUykgXAog
ICAgIG1hY3JvKFB1dFN0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0ZSkgXApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcAppbmRleCBhNDE1MDc1MWE3ZmE1MDEyYmRkNzYzZjEwNWFjNzgwMTZhNDUzNzAzLi44
MmNlMzU0ZGM2NGJmYTU4MmQ4ZmUzOTJmMzBlN2MzMWUwNmZjOTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcApAQCAtNjUxLDYgKzY1MSwxMSBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICAg
ICAgY2FzZSBQdXRCeU9mZnNldDoKICAgICAgICAgY2FzZSBNdWx0aVB1dEJ5T2Zmc2V0OgorICAg
ICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAg
ICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgorICAgICAgICBjYXNlIFB1dEdldHRlckJ5VmFs
OgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAgICAgICBjYXNlIERGRzo6SnVtcDoK
ICAgICAgICAgY2FzZSBCcmFuY2g6CiAgICAgICAgIGNhc2UgU3dpdGNoOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA5ZTM1ODBlYzQ0NDViYmQ2
YWRmYmM5ZTVlMDhiODM2NzZjZDUzNDgyLi4yMjEzOTZmMzU3YjY4ZWFiODRiNTYwZmRhOWI5ZDky
Yjk4YzI4MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaApAQCAtMTg4LDYgKzE4OCwxMSBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0
ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRCeUlk
OgogICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICBj
YXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0
QWNjZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0
dGVyQnlWYWw6CiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFi
bGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDIzMWFiOTdkMGNmMTdmNjRlNmI1YzgwNTk5
Nzg0YzcwNjkwMzc1OWIuLjhmMjFjOTNjNmZkMzExZGM3Y2FjMzNiZWY5MGFhZTI1ZDJiNTk0YWEg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CkBAIC02NzM5LDYgKzY3MzksNjEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6d3JpdGVCYXJyaWVy
KEdQUlJlZyBvd25lckdQUiwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXQKICAgICBvd25l
cklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlJZChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0
ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGFjY2Vzc29yKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKworICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CisgICAgY2FsbE9wZXJhdGlvbihub2RlLT5vcCgpID09IFB1dEdldHRlckJ5SWQg
PyBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkIDogb3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgTm9SZXN1
bHQsIGJhc2UuZ3ByKCksIGlkZW50aWZpZXJVSUQobm9kZS0+aWRlbnRpZmllck51bWJlcigpKSwg
bm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yLmdwcigpKTsKKyAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKE5vZGUqIG5vZGUpCit7CisgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgSlNWYWx1
ZU9wZXJhbmQgZ2V0dGVyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICBKU1ZhbHVlT3BlcmFu
ZCBzZXR0ZXIodGhpcywgbm9kZS0+Y2hpbGQzKCkpOworCisgICAgZmx1c2hSZWdpc3RlcnMoKTsK
KyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVy
U2V0dGVyLCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRlbnRpZmllclVJRChub2RlLT5pZGVudGlm
aWVyTnVtYmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgZ2V0dGVyLmdwcigpLCBz
ZXR0ZXIuZ3ByKCkpOworI2Vsc2UKKyAgICAvLyBUaGVzZSBKU1ZhbHVlcyBtYXkgYmUgSlNVbmRl
ZmluZWQgT1IgSlNGdW5jdGlvbiouCisgICAgLy8gQXQgdGhhdCB0aW1lLAorICAgIC8vIDEuIElm
IHRoZSBKU1ZhbHVlIGlzIEpTVW5kZWZpbmVkLCBpdHMgcGF5bG9hZCBiZWNvbWVzIG51bGxwdHIu
CisgICAgLy8gMi4gSWYgdGhlIEpTVmFsdWUgaXMgSlNGdW5jdGlvbiosIGl0cyBwYXlsb2FkIGJl
Y29tZXMgSlNGdW5jdGlvbiouCisgICAgLy8gU28gZXh0cmFjdCBwYXlsb2FkIGFuZCBwYXNzIGl0
IHRvIG9wZXJhdGlvblB1dEdldHRlclNldHRlci4gVGhpcyBoYWNrIGlzIHVzZWQgYXMgdGhlIHNh
bWUgd2F5IGluIGJhc2VsaW5lIEpJVC4KKyAgICBKU1ZhbHVlUmVncyBnZXR0ZXJSZWdzID0gZ2V0
dGVyLmpzVmFsdWVSZWdzKCk7CisgICAgSlNWYWx1ZVJlZ3Mgc2V0dGVyUmVncyA9IHNldHRlci5q
c1ZhbHVlUmVncygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVy
LCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRlbnRpZmllclVJRChub2RlLT5pZGVudGlmaWVyTnVt
YmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgZ2V0dGVyUmVncy5wYXlsb2FkR1BS
KCksIHNldHRlclJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbmRpZgorICAgIG1faml0LmV4Y2VwdGlv
bkNoZWNrKCk7CisKKyAgICBub1Jlc3VsdChub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlT3BlcmFu
ZCBzdWJzY3JpcHQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGFjY2Vzc29yKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKKworICAgIGZsdXNoUmVnaXN0ZXJz
KCk7CisgICAgYXV0byBvcGVyYXRpb24gPSBub2RlLT5vcCgpID09IFB1dEdldHRlckJ5VmFsID8g
b3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwgOiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbDsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBOb1Jlc3VsdCwgYmFz
ZS5ncHIoKSwgc3Vic2NyaXB0LmdwcigpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgYWNj
ZXNzb3IuZ3ByKCkpOworI2Vsc2UKKyAgICBKU1ZhbHVlUmVncyBzdWJzY3JpcHRSZWdzID0gc3Vi
c2NyaXB0LmpzVmFsdWVSZWdzKCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIE5vUmVz
dWx0LCBiYXNlLmdwcigpLCBzdWJzY3JpcHRSZWdzLnRhZ0dQUigpLCBzdWJzY3JpcHRSZWdzLnBh
eWxvYWRHUFIoKSwgbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yLmdwcigpKTsK
KyNlbmRpZgorICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisKKyAgICBub1Jlc3VsdChub2Rl
KTsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCA0NTg4YjVjZmQ5MjQx
YzJmMjcxYTQwNWY3MDM1YmY3NzkwM2FjMDc2Li4xMzFiNDlkNjI4NGIxMWMwNWY4MmEyOTQ5N2E3
MjA2YmYxMjFlN2Q4IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCkBAIC0xMTU1LDM1ICsxMTU1LDE2IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsK
ICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwog
ICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KLSAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0
VGFnKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uKTsKLSAg
ICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVu
dFR5cGUxPgotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBl
IG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSk7Ci0gICAgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMSwgdHlw
ZW5hbWUgQXJndW1lbnRUeXBlMj4KLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0VGFnLCBBcmd1bWVudFR5cGUxIGFyZzEs
IEFyZ3VtZW50VHlwZTIgYXJnMikKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VDSVpDIG9wZXJhdGlvbiwgR1BSUmVnIHJlZ09wMSwgVW5pcXVlZFN0
cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgR1BSUmVnIHJlZ09wNCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSwgYXJnMik7Ci0gICAg
fQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgQXJndW1lbnRU
eXBlMSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMiwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMz4KLSAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24s
IE5vUmVzdWx0VGFnLCBBcmd1bWVudFR5cGUxIGFyZzEsIEFyZ3VtZW50VHlwZTIgYXJnMiwgQXJn
dW1lbnRUeXBlMyBhcmczKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uLCBhcmcxLCBhcmcyLCBhcmczKTsKLSAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
RnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1bWVudFR5
cGUyLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUzLCB0eXBlbmFtZSBBcmd1bWVudFR5cGU0PgotICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBlIG9wZXJhdGlvbiwg
Tm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSwgQXJndW1lbnRUeXBlMiBhcmcyLCBBcmd1
bWVudFR5cGUzIGFyZzMsIEFyZ3VtZW50VHlwZTQgYXJnNCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCk7CisgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1Q
dHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVu
Y3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUy
LCB0eXBlbmFtZSBBcmd1bWVudFR5cGUzLCB0eXBlbmFtZSBBcmd1bWVudFR5cGU0LCB0eXBlbmFt
ZSBBcmd1bWVudFR5cGU1PgotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVu
Y3Rpb25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSwgQXJn
dW1lbnRUeXBlMiBhcmcyLCBBcmd1bWVudFR5cGUzIGFyZzMsIEFyZ3VtZW50VHlwZTQgYXJnNCwg
QXJndW1lbnRUeXBlNSBhcmc1KQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBl
LCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
RnVuY3Rpb25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3MuLi4gYXJncykKICAgICB7
Ci0gICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSwgYXJnMiwgYXJn
MywgYXJnNCwgYXJnNSk7CisgICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwg
YXJncy4uLik7CiAgICAgfQogCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihE
X0pJVE9wZXJhdGlvbl9aWiBvcGVyYXRpb24sIEZQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBH
UFJSZWcgYXJnMikKQEAgLTE1MzQsNiArMTUxNSwxNiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7
CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIo
YXJnMSksIGFyZzIsIFRydXN0ZWRJbW0zMihhcmczKSwgYXJnNCwgVHJ1c3RlZEltbTMyKGFyZzUp
KTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9CisgICAgSklU
Q29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQyBvcGVyYXRp
b24sIEdQUlJlZyByZWdPcDEsIEdQUlJlZyByZWdPcDIsIGludDMyX3Qgb3AzLCBHUFJSZWcgcmVn
T3A0KQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgcmVnT3AyLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVnT3Ax
LCBVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBHUFJSZWcgcmVnT3A0
LCBHUFJSZWcgcmVnT3A1KQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihv
cDMpLCByZWdPcDQsIHJlZ09wNSk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlv
bik7CisgICAgfQogI2Vsc2UgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAogLy8gRW5jb2RlZEpTVmFs
dWUgaW4gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIuIFdoZW4gYmVpbmcgY29tcGls
ZWQgaW4gQVJNIEVBQkksIGl0IG11c3QgYmUgYWxpZ25lZCBldmVuLW51bWJlcmVkIHJlZ2lzdGVy
IChyMCwgcjIgb3IgW3NwXSkuCkBAIC0xODU1LDYgKzE4NDYsMTYgQEAgY2xhc3MgU3BlY3VsYXRp
dmVKSVQgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3Rl
ZEltbTMyKGFyZzEpLCBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbTMyKGFyZzMpLCBh
cmc0LCBUcnVzdGVkSW1tMzIoYXJnNSkpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVy
YXRpb24pOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VDSlpDIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBH
UFJSZWcgYXJnMlBheWxvYWQsIGludDMyX3QgYXJnMywgR1BSUmVnIGFyZzQpCisgICAgeworICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMlBheWxvYWQs
IGFyZzJUYWcsIFRydXN0ZWRJbW0zMihhcmczKSwgYXJnNCk7CisgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsKG9wZXJhdGlvbik7CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkNDIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIFVuaXF1
ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIEdQUlJlZyBhcmc0LCBHUFJSZWcg
YXJnNSkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShh
cmcxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIGFyZzQsIGFy
ZzUpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgIH0KICN1bmRl
ZiBFQUJJXzMyQklUX0RVTU1ZX0FSRwogI3VuZGVmIFNINF8zMkJJVF9EVU1NWV9BUkcKICAgICAK
QEAgLTIyNDMsNiArMjI0NCw5IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIGNv
bXBpbGVUeXBlT2YoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNoZWNrU3RydWN0dXJlKE5vZGUq
LCBHUFJSZWcgY2VsbEdQUiwgR1BSUmVnIHRlbXBHUFIpOwogICAgIHZvaWQgY29tcGlsZUNoZWNr
U3RydWN0dXJlKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQoTm9kZSop
OworICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29yc0J5SWQoTm9kZSopOworICAgIHZvaWQgY29t
cGlsZVB1dEFjY2Vzc29yQnlWYWwoTm9kZSopOwogICAgIAogICAgIHZvaWQgbW92ZVRydWVUbyhH
UFJSZWcpOwogICAgIHZvaWQgbW92ZUZhbHNlVG8oR1BSUmVnKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGNiMDgwNmNkZDVh
NmEyNzMwYzBkMzEyNjEwZjBkNzMxMmQ4MjFmOWUuLmQ4ZTJkMWI1NTA0NGZiOWEzNDQ3NTlmYzc0
Yzk2NGZhYmZlYWY2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNDE2NCw2ICs0MTY0LDIzIEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAg
Y2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDogeworICAgICAgICBj
b21waWxlUHV0QWNjZXNzb3JCeUlkKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6IHsKKyAgICAgICAgY29tcGlsZVB1dEFjY2Vzc29yc0J5
SWQobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgUHV0R2V0dGVyQnlW
YWw6CisgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDogeworICAgICAgICBjb21waWxlUHV0QWNjZXNz
b3JCeVZhbChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBHZXRHbG9i
YWxMZXhpY2FsVmFyaWFibGU6CiAgICAgY2FzZSBHZXRHbG9iYWxWYXI6IHsKICAgICAgICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAKaW5kZXggZDczNmVm
ZWJiYWM3ZTM4MWIwOTkwNzUwM2ExNjE3OWEzNWQ5OTFhNy4uNTkwZGE3MmE4Yzk0M2U3MzFjMDdj
NWQyZWJiNWRhZjk5MjdjNWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAKQEAgLTI3Miw2ICsy
NzIsMTUgQEAgY2xhc3MgU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2Ug
ewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBj
YXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAg
ICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgICAgICAgICBjYXNlIFB1dEdldHRl
ckJ5VmFsOgorICAgICAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDogeworICAgICAgICAgICAg
ICAgIGNvbnNpZGVyQmFycmllcihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgY2FzZSBQdXRCeU9mZnNldDogewog
ICAgICAgICAgICAgICAgIGNvbnNpZGVyQmFycmllcihtX25vZGUtPmNoaWxkMigpLCBtX25vZGUt
PmNoaWxkMygpKTsKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA1MzdmOGY2NWE1MWEzMzMxZDI1MjAy
NTY2MTBhZDRmMWYyMWI5NGU5Li4xZjRjODY0NjY4YWU1MTc2NzhhZDVkYzgyNmQ4NTdlNzg3YTUy
NDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CkBAIC0yMDMsNiArMjAzLDExIEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShO
b2RlKiBub2RlKQogICAgIGNhc2UgRm9yd2FyZFZhcmFyZ3M6CiAgICAgY2FzZSBTd2l0Y2g6CiAg
ICAgY2FzZSBUeXBlT2Y6CisgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0U2V0
dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgY2FzZSBQdXRHZXR0ZXJC
eVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAgICAgICAvLyBUaGVzZSBhcmUgT0su
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXJpdGhTdWI6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCmluZGV4IDQzZGRmYzM5NDNj
NDU3MzQ3OWFjNjY3MDY4MWU3OTIxMjcyMzUxYWEuLjhlMzM1MjJhNWM3OTdmNDRhODYyNmFjNTQ2
MGVhMTc2NzgxYzI1M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW50cmluc2ljUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW50cmluc2ljUmVwb3NpdG9yeS5oCkBAIC0xMTgsNiArMTE4LDkgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0osIGZ1bmN0aW9uVHlw
ZSh2b2lkVHlwZSwgaW50NjQpKSBcCiAgICAgbWFjcm8oVl9KSVRPcGVyYXRpb25fWiwgZnVuY3Rp
b25UeXBlKHZvaWRUeXBlLCBpbnQzMikpIFwKICAgICBtYWNybyhWX0pJVE9wZXJhdGlvbl9FLCBm
dW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0cikpIFwKKyAgICBtYWNybyhWX0pJVE9wZXJhdGlv
bl9FQ0laQywgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnRQdHIsIGludFB0ciwgaW50UHRyLCBp
bnQzMiwgaW50UHRyKSkgXAorICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0VDSVpKSiwgZnVuY3Rp
b25UeXBlKHZvaWRUeXBlLCBpbnRQdHIsIGludFB0ciwgaW50UHRyLCBpbnQzMiwgaW50NjQsIGlu
dDY0KSkgXAorICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0VDSlpDLCBmdW5jdGlvblR5cGUodm9p
ZFR5cGUsIGludFB0ciwgaW50UHRyLCBpbnQ2NCwgaW50MzIsIGludFB0cikpIFwKICAgICBtYWNy
byhaX0pJVE9wZXJhdGlvbl9ELCBmdW5jdGlvblR5cGUoaW50MzIsIGRvdWJsZVR5cGUpKSBcCiAg
ICAgbWFjcm8oWl9KSVRPcGVyYXRpb25fRUMsIGZ1bmN0aW9uVHlwZShpbnQzMiwgaW50UHRyLCBp
bnRQdHIpKSBcCiAgICAgbWFjcm8oWl9KSVRPcGVyYXRpb25fRUdDLCBmdW5jdGlvblR5cGUoaW50
MzIsIGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCmluZGV4IGI5YTZjOTg3YmZhNmRjYmRiNWUyYzVl
OWMzYmVlZWEyMDhmZWQ2ZGMuLjRkMzk2NDU3NGY4ZmFmOTdiODM1NTk2MjhiMDczZGE3MjBlYmYy
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xM
Vk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwCkBAIC01NjMsNiArNTYzLDE3IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAg
Y2FzZSBQdXRCeUlkRGlyZWN0OgogICAgICAgICAgICAgY29tcGlsZVB1dEJ5SWQoKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2Ug
UHV0U2V0dGVyQnlJZDoKKyAgICAgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQoKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgICAg
ICAgICBjb21waWxlUHV0QWNjZXNzb3JzQnlJZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6Cisg
ICAgICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JCeVZhbCgpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAgICAgICAgICAgY29tcGlsZUdldEJ1dHRl
cmZseSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMDAwLDYgKzMwMTEsMzggQEAgY2xhc3Mg
TG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisK
KyAgICB2b2lkIGNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQoKQorICAgIHsKKyAgICAgICAgTFZhbHVl
IGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgYWNjZXNz
b3IgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBhdXRvIHVpZCA9IG1fZ3Jh
cGguaWRlbnRpZmllcnMoKVttX25vZGUtPmlkZW50aWZpZXJOdW1iZXIoKV07CisgICAgICAgIHZt
Q2FsbCgKKyAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihtX25vZGUtPm9wKCkgPT0gUHV0R2V0
dGVyQnlJZCA/IG9wZXJhdGlvblB1dEdldHRlckJ5SWQgOiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlk
KSwKKyAgICAgICAgICAgIG1fY2FsbEZyYW1lLCBiYXNlLCBtX291dC5jb25zdEludFB0cih1aWQp
LCBtX291dC5jb25zdEludDMyKG1fbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCkpLCBhY2Nlc3Nv
cik7CisgICAgfQorCisgICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JzQnlJZCgpCisgICAgewor
ICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
IExWYWx1ZSBnZXR0ZXIgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBM
VmFsdWUgc2V0dGVyID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgYXV0
byB1aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJzKClbbV9ub2RlLT5pZGVudGlmaWVyTnVtYmVyKCld
OworICAgICAgICB2bUNhbGwoCisgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9u
UHV0R2V0dGVyU2V0dGVyKSwKKyAgICAgICAgICAgIG1fY2FsbEZyYW1lLCBiYXNlLCBtX291dC5j
b25zdEludFB0cih1aWQpLCBtX291dC5jb25zdEludDMyKG1fbm9kZS0+YWNjZXNzb3JBdHRyaWJ1
dGVzKCkpLCBnZXR0ZXIsIHNldHRlcik7CisKKyAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVQdXRB
Y2Nlc3NvckJ5VmFsKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIHN1YnNjcmlwdCA9IGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDIoKSk7CisgICAgICAgIExWYWx1ZSBhY2Nlc3NvciA9IGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDMoKSk7CisgICAgICAgIHZtQ2FsbCgKKyAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlv
bihtX25vZGUtPm9wKCkgPT0gUHV0R2V0dGVyQnlWYWwgPyBvcGVyYXRpb25QdXRHZXR0ZXJCeVZh
bCA6IG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKSwKKyAgICAgICAgICAgIG1fY2FsbEZyYW1lLCBi
YXNlLCBzdWJzY3JpcHQsIG1fb3V0LmNvbnN0SW50MzIobV9ub2RlLT5hY2Nlc3NvckF0dHJpYnV0
ZXMoKSksIGFjY2Vzc29yKTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlQXJyYXlQdXNo
KCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCA5MjBkYWUyMmNmOWU2YzMzYWE2
ZGNhZmU4Y2ZmMWVhMjBlNWQxYTFkLi40MTBhOGNiYmE0Y2NjYzFlNGQ2MWRkMmQ4ODNjNGYwM2I2
Njk0N2VhIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTc2Miw5ICs3NjIsMTMgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUMsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQywgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUNJWkMsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBpbnQz
Ml90LCBSZWdpc3RlcklEKTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0MsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIq
LCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQywgUmVnaXN0ZXJJRCwg
VW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0MsIFJlZ2lz
dGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJ
RCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwg
aW50MzJfdCwgUmVnaXN0ZXJJRCk7CisjZWxzZQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSlpDLCBSZWdpc3RlcklELCBSZWdpc3Rl
cklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKKyNlbmRpZgogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VFLCBSZWdp
c3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FWlN5bXRhYkosIGludCwgU3ltYm9sVGFibGUqLCBSZWdpc3RlcklEKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
WlN5bXRhYkosIGludCwgU3ltYm9sVGFibGUqLCBSZWdpc3RlcklEKTsKQEAgLTc3NSwxMiArNzc5
LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogI2Vsc2UKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUosIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQpOwogI2VuZGlmCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKLCBSZWdpc3RlcklELCBjb25zdCBJ
ZGVudGlmaWVyKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKSiwgUmVnaXN0ZXJJRCwg
Y29uc3QgSWRlbnRpZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwotICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VK
SlpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKICNpZiBV
U0UoSlNWQUxVRTY0KQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEZfSklUT3BlcmF0aW9uX0VGSlpaLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBS
ZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihW
X0pJVE9wZXJhdGlvbl9FU3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkpKLCBSZWdpc3RlcklELCBVbmlx
dWVkU3RyaW5nSW1wbCosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogI2Vsc2UK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FU3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKaW5kZXggYTM0YjdhMGM5ZGRmNWVmZjk2NjY0
ZTkzNDFjMjZmNDQ5NTY0MWQ1Ni4uYjVlYTA4MTM0Yjg0NDgyZjk1YTZhNDc4MTY2MGQyMzQxN2M4
YTFlMiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKQEAgLTQwNiw2ICs0
MDYsMTEgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2UKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VDSVpDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBs
KiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQoreworICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBU
cnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhvcGVyYXRpb24pOworfQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKIEFMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0
aW9uX0VKWlogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgaW50MzJfdCBhcmcyLCBpbnQzMl90IGFy
ZzMpCkBAIC01NDEsMTkgKzU0NiwxMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpbwogICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3Bl
cmF0aW9uX0VKSWRaSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlm
aWVyKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQotewotICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIp
LCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwotfQotCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkpKIG9wZXJh
dGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQz
Ml90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQorQUxXQVlTX0lO
TElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRUNJWkpKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBs
KiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0LCBSZWdpc3RlcklEIHJl
Z09wNSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVk
SW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCwgcmVnT3A1KTsKICAg
ICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1B
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSkpaSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklE
IHJlZ09wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQorQUxXQVlTX0lOTElORSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNK
WkMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIsIGludDMy
X3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUocmVnT3AxLCByZWdPcDIsIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQpOwogICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CkBAIC02NzUsMTMg
KzY3NCw3IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKSiBvcGVyYXRpCiAgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkMgb3Bl
cmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGlu
dDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9w
MyksIHJlZ09wNCk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uKTsKLX0KLQotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCBy
ZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJ
RCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkNDIG9wZXJhdGlv
biwgUmVnaXN0ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50MzJf
dCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0LCBSZWdpc3RlcklEIHJlZ09wNSkKIHsKICAgICBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwg
VHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCwgcmVnT3A1KTsKICAgICByZXR1cm4gYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggMmI1MzBmNWY3OGM5ZjRmNzQ5ZGViYjA0NzhkYjE2
ZjEyOGIyODcxYS4uNzNkNzY3OTg5NWI0NjUyNjgyNTZiODg1YTUzYTcxYWE3NmUzYTkyNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xMzUzLDEw
OSArMTM1Myw3OCBAQCBzdGF0aWMgdm9pZCBwdXRBY2Nlc3NvckJ5VmFsKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIGJhc2UsIEpTVmFsdWUgc3Vic2NyaXB0LAogICAgICAgICBiYXNlLT5wdXRT
ZXR0ZXIoZXhlYywgcHJvcGVydHlLZXksIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCi0jaWYg
VVNFKEpTVkFMVUU2NCkKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlk
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVu
dGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRHZXR0ZXJWYWx1ZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlk
KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQs
IGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKiBnZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKLSAg
ICBBU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7
Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZE9iamVjdFZhbHVlKSk7CisgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkp
OworICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAotICAgIEpT
VmFsdWUgZ2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRHZXR0ZXJWYWx1ZSk7Ci0gICAg
QVNTRVJUKGdldHRlci5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywg
KmlkZW50aWZpZXIsIGFzT2JqZWN0KGdldHRlciksIG9wdGlvbnMpOworICAgIEFTU0VSVChnZXR0
ZXItPmlzT2JqZWN0KCkpOworICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCB1aWQsIGdldHRl
ciwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJC
eUlkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJ
ZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTZXR0ZXJWYWx1ZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJC
eUlkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQsIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKiBzZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAK
LSAgICBBU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3Qo
KSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9iamVjdFZhbHVlKSk7CisgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0
KCkpOworICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAotICAg
IEpTVmFsdWUgc2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7Ci0g
ICAgQVNTRVJUKHNldHRlci5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhl
YywgKmlkZW50aWZpZXIsIGFzT2JqZWN0KHNldHRlciksIG9wdGlvbnMpOworICAgIEFTU0VSVChz
ZXR0ZXItPmlzT2JqZWN0KCkpOworICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVjLCB1aWQsIHNl
dHRlciwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0
ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFs
dWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3QgYXR0cmlidXRlLAotICAgIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNldHRl
clZhbHVlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4ZWNT
dGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAK
LSAgICBBU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3Qo
KSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9iamVjdFZhbHVlKSk7Ci0KLSAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0KLSAgICBK
U1ZhbHVlIGdldHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkR2V0dGVyVmFsdWUpOwotICAg
IEpTVmFsdWUgc2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7Ci0g
ICAgQVNTRVJUKGdldHRlci5pc09iamVjdCgpIHx8IGdldHRlci5pc1VuZGVmaW5lZCgpKTsKLSAg
ICBBU1NFUlQoc2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzVW5kZWZpbmVkKCkpOwotICAg
IEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNPYmplY3QoKSk7Ci0KLSAgICBp
ZiAoIWdldHRlci5pc1VuZGVmaW5lZCgpKQotICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZt
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGFzT2JqZWN0KGdldHRlcikpOwotICAgIGlm
ICghc2V0dGVyLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0s
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXNPYmplY3Qoc2V0dGVyKSk7Ci0gICAgYmFz
ZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRy
aWJ1dGUpOworICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIp
LCBBY2Nlc3NvclR5cGU6OkdldHRlcik7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRHZXR0ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRlcikKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogc2V0dGVy
KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcigmdm0sIGV4ZWMpOwotICAgIEpTT2JqZWN0KiBiYXNlID0gYXNPYmplY3QoSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKSk7Ci0gICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7Ci0gICAgSlNPYmplY3QqIGdldHRlciA9IGFzT2Jq
ZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkR2V0dGVyKSk7Ci0gICAgcHV0QWNjZXNzb3JCeVZh
bChleGVjLCBiYXNlLCBzdWJzY3JpcHQsIGF0dHJpYnV0ZSwgZ2V0dGVyLCBBY2Nlc3NvclR5cGU6
OkdldHRlcik7Ci19CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZh
bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFNldHRlcikKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLSAgICBKU09iamVjdCogYmFzZSA9IGFz
T2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSkpOwotICAgIEpTVmFsdWUgc3Vic2Ny
aXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwotICAgIEpTT2JqZWN0KiBz
ZXR0ZXIgPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNldHRlcikpOwotICAgIHB1
dEFjY2Vzc29yQnlWYWwoZXhlYywgYmFzZSwgc3Vic2NyaXB0LCBhdHRyaWJ1dGUsIHNldHRlciwg
QWNjZXNzb3JUeXBlOjpTZXR0ZXIpOworICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmpl
Y3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBh
c09iamVjdChzZXR0ZXIpLCBBY2Nlc3NvclR5cGU6OlNldHRlcik7CiB9CiAKLSNlbHNlCi12b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqIGV4ZWMsIEpT
Q2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEpT
Q2VsbCogZ2V0dGVyKQorI2lmIFVTRShKU1ZBTFVFNjQpCit2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIFVu
aXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkR2V0dGVyVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKIHsK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIoJnZtLCBleGVjKTsKIAogICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09iamVjdCgp
KTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7Ci0KLSAgICBB
U1NFUlQoZ2V0dGVyLT5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywg
KmlkZW50aWZpZXIsIGdldHRlciwgb3B0aW9ucyk7Ci19CisgICAgSlNPYmplY3QqIGJhc2VPYmog
PSBhc09iamVjdChvYmplY3QpOwogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0
dGVyQnlJZChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVu
dGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCogc2V0dGVyKQotewotICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMp
OworICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKIAotICAgIEFTU0VSVChvYmplY3QgJiYgb2Jq
ZWN0LT5pc09iamVjdCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2Jq
ZWN0KCk7CisgICAgSlNWYWx1ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEdldHRl
clZhbHVlKTsKKyAgICBKU1ZhbHVlIHNldHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU2V0
dGVyVmFsdWUpOworICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBnZXR0ZXIuaXNVbmRl
ZmluZWQoKSk7CisgICAgQVNTRVJUKHNldHRlci5pc09iamVjdCgpIHx8IHNldHRlci5pc1VuZGVm
aW5lZCgpKTsKKyAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzT2JqZWN0
KCkpOwogCi0gICAgQVNTRVJUKHNldHRlci0+aXNPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0
U2V0dGVyKGV4ZWMsICppZGVudGlmaWVyLCBzZXR0ZXIsIG9wdGlvbnMpOworICAgIGlmICghZ2V0
dGVyLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIGFjY2Vzc29yLT5zZXRHZXR0ZXIodm0sIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXNPYmplY3QoZ2V0dGVyKSk7CisgICAgaWYgKCFzZXR0
ZXIuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgYWNjZXNzb3ItPnNldFNldHRlcih2bSwgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhc09iamVjdChzZXR0ZXIpKTsKKyAgICBiYXNlT2JqLT5w
dXREaXJlY3RBY2Nlc3NvcihleGVjLCB1aWQsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCisj
ZWxzZQogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90
IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIsIEpTQ2VsbCogc2V0dGVyKQogewogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4
ZWMpOwogCiAgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOwotICAgIEpT
T2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKKyAgICBKU09iamVjdCogYmFz
ZU9iaiA9IGFzT2JqZWN0KG9iamVjdCk7CiAKICAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0g
R2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CiAK
QEAgLTE0NjksMjMgKzE0MzgsNiBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0
dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElkZQogICAgICAgICBh
Y2Nlc3Nvci0+c2V0U2V0dGVyKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHNldHRl
ci0+Z2V0T2JqZWN0KCkpOwogICAgIGJhc2VPYmotPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsICpp
ZGVudGlmaWVyLCBhY2Nlc3NvciwgYXR0cmlidXRlKTsKIH0KLQotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxs
KiBnZXR0ZXIpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7Ci0KLSAgICBwdXRBY2Nlc3NvckJ5VmFsKGV4ZWMs
IGFzT2JqZWN0KGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCksIGF0dHJp
YnV0ZSwgYXNPYmplY3QoZ2V0dGVyKSwgQWNjZXNzb3JUeXBlOjpHZXR0ZXIpOwotfQotCi12b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBK
U0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0
cmlidXRlLCBKU0NlbGwqIHNldHRlcikKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLQotICAgIHB1dEFjY2Vz
c29yQnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vi
c2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChzZXR0ZXIpLCBBY2Nlc3NvclR5cGU6OlNldHRl
cik7Ci19Ci0KICNlbmRpZgogCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUo
RXhlY1N0YXRlKiBleGVjLCBpbnQzMl90IHNjb3BlUmVnKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCBhYWNhMzVhMjFkMDk3YTY2YjQ4MWZhNTIwNWM2ODUx
MzIzM2NkNTZiLi5mNmM1N2YzZDFjYjdlNDU2MjI2MzYyYTkyYTBmZDA5OTQwNTk5ZDQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTg5LDggKzE4OSw5
IEBAIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUMpKEV4ZWNT
dGF0ZSosIEpTQ2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJh
dGlvbl9FQ2IpKEV4ZWNTdGF0ZSosIENvZGVCbG9jayopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVS
QVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCop
OwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0ljZikoRXhl
Y1N0YXRlKiwgSlNDZWxsKiwgSW5saW5lQ2FsbEZyYW1lKik7Ci10eXBlZGVmIHZvaWQgSklUX09Q
RVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVu
dGlmaWVyKiwgaW50MzJfdCwgSlNDZWxsKik7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAo
KlZfSklUT3BlcmF0aW9uX0VDSVpDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllcios
IGludDMyX3QsIEpTQ2VsbCosIEpTQ2VsbCopOwordHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FQ0laQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmlu
Z0ltcGwqLCBpbnQzMl90LCBKU0NlbGwqKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgq
Vl9KSVRPcGVyYXRpb25fRUNJWkNDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5n
SW1wbCosIGludDMyX3QsIEpTQ2VsbCosIEpTQ2VsbCopOwordHlwZWRlZiB2b2lkIEpJVF9PUEVS
QVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0laSkopKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1
ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsK
IHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNKWkMpKEV4ZWNT
dGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBKU0NlbGwqKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNDSWNmKShFeGVjU3RhdGUq
LCBKU0NlbGwqLCBKU0NlbGwqLCBJbmxpbmVDYWxsRnJhbWUqKTsKIHR5cGVkZWYgdm9pZCBKSVRf
T1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNKSikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKQEAgLTIwMCw5ICsyMDEsNiBAQCB0eXBlZGVm
IHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDQykoRXhlY1N0YXRlKiwgSlND
ZWxsKiwgSlNDZWxsKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0
aW9uX0VaU3ltdGFiSikoRXhlY1N0YXRlKiwgaW50MzJfdCwgU3ltYm9sVGFibGUqLCBFbmNvZGVk
SlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VK
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElP
TiAoKlZfSklUT3BlcmF0aW9uX0VKQ0kpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU0Nl
bGwqLCBVbmlxdWVkU3RyaW5nSW1wbCopOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpW
X0pJVE9wZXJhdGlvbl9FSklkWkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlm
aWVyKiwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJ
T04gKCpWX0pJVE9wZXJhdGlvbl9FSklkWkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
SWRlbnRpZmllciosIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Ci10
eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSlpKKShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIEVuY29kZWRKU1Zh
bHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSiko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpBcCko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQXJyYXlQcm9maWxlKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3Bl
cmF0aW9uX0VKSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKik7CkBAIC0zMTMsMTggKzMxMSwxNCBAQCB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVidWcoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lO
VEVSTkFMOwogU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1p
emUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogI2VuZGlmCiB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJbmRleChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
aW50MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgSWRlbnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRF
Uk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50MzJfdCBvcHRpb25zLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdl
dHRlclNldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIGludDMy
X3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5B
TDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBFbmNv
ZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dFNldHRlckJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
aW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci0jZWxzZQot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlND
ZWxsKiwgSWRlbnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFM
Owotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwg
SlNDZWxsKiwgSWRlbnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVS
TkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3Rh
dGUqLCBKU0NlbGwqLCBJZGVudGlmaWVyKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpT
Q2VsbCopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0
ZXJCeUlkKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBv
cHRpb25zLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0U2V0dGVyQnlJZChFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCos
IGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRK
U1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKEV4ZWNTdGF0ZSosIEpTQ2VsbCos
IEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikgV1RGX0lOVEVSTkFM
OworI2lmIFVTRShKU1ZBTFVFNjQpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0
dGVyU2V0dGVyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJf
dCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFM
OworI2Vsc2UKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhl
Y1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IGF0dHJpYnV0ZSwg
SlNDZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogI2VuZGlmCiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHVzaEZ1bmN0aW9uTmFtZVNjb3BlKEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5
bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmlu
ZGV4IGIxNDZiMjA5ODc2OGIyYThmYzZhOTkxZDQzZGViNDUxNTQ2NGUyMWIuLjMxNzlmOThlNTgw
MzBkNjFmMGViNmNhMTRmOWIzMjQ4NmE0NDQ0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC00OTIsNyArNDkyLDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCwgcmVnVDApOwogICAgIGludDMyX3Qgb3B0aW9ucyA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Q
dXRHZXR0ZXJCeUlkLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQpLCBvcHRpb25zLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCByZWdUMCwgbV9jb2RlQmxvY2stPmlkZW50aWZpZXIo
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkuaW1wbCgpLCBvcHRpb25zLCByZWdUMSk7
CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKQEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9w
dXRfc2V0dGVyX2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1p
dEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdU
MCk7CiAgICAgaW50MzJfdCBvcHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9w
ZXJhbmQsIHJlZ1QxKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dFNldHRlckJ5SWQs
IHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUu
b3BlcmFuZCksIG9wdGlvbnMsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1
dFNldHRlckJ5SWQsIHJlZ1QwLCBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kKS5pbXBsKCksIG9wdGlvbnMsIHJlZ1QxKTsKIH0KIAogdm9pZCBK
SVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKQEAgLTUwOSw3ICs1MDksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX3Nl
dHRlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludDMyX3QgYXR0cmli
dXRlID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQsIHJlZ1QxKTsKICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls1XS51Lm9wZXJhbmQsIHJl
Z1QyKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVnVDAs
ICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
KSwgYXR0cmlidXRlLCByZWdUMSwgcmVnVDIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
UHV0R2V0dGVyU2V0dGVyLCByZWdUMCwgbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZCkuaW1wbCgpLCBhdHRyaWJ1dGUsIHJlZ1QxLCByZWdUMik7
CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfdmFsKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263475</attachid>
            <date>2015-10-19 05:46:16 -0700</date>
            <delta_ts>2015-10-19 06:28:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148860-20151019214533.patch</filename>
            <type>text/plain</type>
            <size>48389</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
Y2JlOWVkMDZkYTAwNmYxOGU1ODE2YjkyOWQ0NWUzNTQwYmYwN2JkLi5hNmFiNGZjODQ0MzE4NDEx
OGI2M2E1ZjkzNDY3NDQwNWJlMjQwZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAxNS0xMC0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBBZGQgREZHL0ZUTCBzdXBwb3J0IGZvciBhY2Nlc3NvciBw
dXQgb3BlcmF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzSWRlbnRpZmllcik6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6aGFzQWNjZXNzb3JBdHRyaWJ1dGVzKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjphY2Nlc3NvckF0dHJpYnV0ZXMpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVj
dXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yc0J5SWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcDoKKyAg
ICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5D
b21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6
CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlv
bnMuY3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0
ZXJfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZCk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX3NldHRlcik6CisKIDIwMTUt
MTAtMTggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
UHJvbWlzZSBjb25zdHJ1Y3RvciBzaG91bGQgdGhyb3cgd2hlbiBub3QgY2FsbGVkIHdpdGggIm5l
dyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaAppbmRleCBmMjhjYzdhZmYwNmI5OTMzMzUwNGZmYTU2NGE0YzNj
N2QxZTUyNmEyLi5hNzAxODA2YTEzZDkxNzg5OWQ2NzIxMmQwMTU3ODQ5MTlmZTRmMzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCkBAIC0yMzYzLDYgKzIzNjMsMTUgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKICAgICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJl
ckxpbWl0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAgY2FzZSBQdXRHZXR0ZXJCeUlk
OgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6Cisg
ICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAg
ICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBJbjogewogICAgICAgICAv
LyBGSVhNRTogV2UgY2FuIGRldGVybWluZSB3aGVuIHRoZSBwcm9wZXJ0eSBkZWZpbml0ZWx5IGV4
aXN0cyBiYXNlZCBvbiBhYnN0cmFjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA2OWY1NGYxZDM1MTA1MDY3MGE1MDdiMjRmM2Y3Njk0
NWFkNmI2YTA2Li4zYWVlNzgxNjBkNWNhOWQwMmVmNWIwZGYwODk0NDI5ZGRlN2U2ODllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAt
Mzc0OSw2ICszNzQ5LDM4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWdu
ZWQgbGltaXQpCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9wdXRfYnlfaWQpOwogICAgICAg
ICB9CiAKKyAgICAgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X2lkOgorICAgICAgICBjYXNlIG9w
X3B1dF9zZXR0ZXJfYnlfaWQ6IHsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZp
ZXJSZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kXTsKKyAgICAgICAgICAgIHVu
c2lnbmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAg
ICAgICAgICAgTm9kZSogYWNjZXNzb3IgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGVUeXBlIG9wID0gKG9wY29k
ZUlEID09IG9wX3B1dF9nZXR0ZXJfYnlfaWQpID8gUHV0R2V0dGVyQnlJZCA6IFB1dFNldHRlckJ5
SWQ7CisgICAgICAgICAgICBhZGRUb0dyYXBoKG9wLCBPcEluZm8oaWRlbnRpZmllck51bWJlciks
IE9wSW5mbyhhdHRyaWJ1dGVzKSwgYmFzZSwgYWNjZXNzb3IpOworICAgICAgICAgICAgTkVYVF9P
UENPREUob3BfcHV0X2dldHRlcl9ieV9pZCk7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIG9w
X3B1dF9nZXR0ZXJfc2V0dGVyOiB7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgICAgICAg
ICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9pbmxpbmVTdGFja1RvcC0+bV9pZGVudGlm
aWVyUmVtYXBbY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZF07CisgICAgICAgICAgICB1
bnNpZ25lZCBhdHRyaWJ1dGVzID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAg
ICAgICAgICAgIE5vZGUqIGdldHRlciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3Ry
dWN0aW9uWzRdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZSogc2V0dGVyID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kKSk7CisgICAgICAg
ICAgICBhZGRUb0dyYXBoKFB1dEFjY2Vzc29yc0J5SWQsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVy
KSwgT3BJbmZvKGF0dHJpYnV0ZXMpLCBiYXNlLCBnZXR0ZXIsIHNldHRlcik7CisgICAgICAgICAg
ICBORVhUX09QQ09ERShvcF9wdXRfZ2V0dGVyX3NldHRlcik7CisgICAgICAgIH0KKworICAgICAg
ICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfdmFsOgorICAgICAgICBjYXNlIG9wX3B1dF9zZXR0ZXJf
YnlfdmFsOiB7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBzdWJz
Y3JpcHQgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJh
bmQpKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kOworICAgICAgICAgICAgTm9kZSogYWNjZXNzb3IgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAg
IE5vZGVUeXBlIG9wID0gKG9wY29kZUlEID09IG9wX3B1dF9nZXR0ZXJfYnlfdmFsKSA/IFB1dEdl
dHRlckJ5VmFsIDogUHV0U2V0dGVyQnlWYWw7CisgICAgICAgICAgICBhZGRUb0dyYXBoKG9wLCBP
cEluZm8oYXR0cmlidXRlcyksIGJhc2UsIHN1YnNjcmlwdCwgYWNjZXNzb3IpOworICAgICAgICAg
ICAgTkVYVF9PUENPREUob3BfcHV0X2dldHRlcl9ieV92YWwpOworICAgICAgICB9CisKICAgICAg
ICAgY2FzZSBvcF9wcm9maWxlX3R5cGU6IHsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlVG9Qcm9m
aWxlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
KSk7CiAgICAgICAgICAgICBhZGRUb0dyYXBoKFByb2ZpbGVUeXBlLCBPcEluZm8oY3VycmVudElu
c3RydWN0aW9uWzJdLnUubG9jYXRpb24pLCB2YWx1ZVRvUHJvZmlsZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggZGFmZTVlODIzYzhjOTBh
ODQyZmY0OWEyYWZjOWNiYjA1OWZlNjNhNi4uOTc4OGE0ODRhMTNhYmEyZjkxZWUxMTMwNTBlNmU1
OWFjNmFiODQzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMTU0LDYgKzE1NCwxMSBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxl
dmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAg
IGNhc2Ugb3BfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICBj
YXNlIG9wX3B1dF9ieV9pZDoKKyAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6CisgICAgY2Fz
ZSBvcF9wdXRfc2V0dGVyX2J5X2lkOgorICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9zZXR0ZXI6Cisg
ICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X3ZhbDoKKyAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlf
dmFsOgogICAgIGNhc2Ugb3Bfam1wOgogICAgIGNhc2Ugb3BfanRydWU6CiAgICAgY2FzZSBvcF9q
ZmFsc2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJp
emUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDZj
ODVkNTllMzEwNTM5YzlhYWJiNDJjZjFkYTFlYzFjZWNlZjJlOTguLjE4NzQ3NzA1OWNhZGFhOGY0
MTkzNjIyZWFjNGVmNmZlNzNkZGEzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCkBAIC0zNzksNiArMzc5LDExIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1
CiAgICAgY2FzZSBQdXRCeUlkOgogICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0
QnlJZERpcmVjdDoKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJC
eUlkOgorICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFs
OgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAgY2FzZSBBcnJheVB1c2g6CiAgICAgY2Fz
ZSBBcnJheVBvcDoKICAgICBjYXNlIENhbGw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAKaW5kZXggNWM1N2UwMjJhMGRiYmQzM2YxZGU2NDg1YmQ1MDE2YWQ3OTQwZmM5NS4u
YzUwNjNmMTRjOWE0ZDRjZmFjMzdlOWNiNjhmOTQ2NGFmOGZjN2I1MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtOTUsNiArOTUsMTEgQEAgYm9vbCBkb2VzR0Mo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgUHV0QnlJZDoKICAgICBjYXNlIFB1
dEJ5SWRGbHVzaDoKICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CisgICAgY2FzZSBQdXRHZXR0ZXJC
eUlkOgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6
CisgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAg
IGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgIGNhc2Ug
R2V0QnV0dGVyZmx5OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKaW5kZXggZWI2NDE1YjNmNGNkNmRlMDI2YWE5YTk2YjQ2NmEzYTE1NTA1MWZlYi4uYmU1ZmQ1
M2FmMjFmYTNlODRiM2ZiM2Q5NGY2Mzc1OTJjMzBlMGM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMDU3LDYgKzEwNTcsMjUgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJC
eUlkOiB7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNC
eUlkOiB7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFB1dEdldHRl
ckJ5VmFsOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAgICAgICAgICBmaXhF
ZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4RWRnZTxL
bm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisKICAgICAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgICAgICBmaXhFZGdl
PEZ1bmN0aW9uVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggYWMxYTc1N2NlNDc1MTkzYjMzYzM5MjMxZjU2
NDdmNjhlYmRjYzU2Yy4uNzkwNTkzYjk4NGJiZjgxNTM1ZjMyMDZmZTFlZGQzYmFlMjY3ZWU1YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTg1Myw2ICs4NTMsOSBAQCBzdHJ1
Y3QgTm9kZSB7CiAgICAgICAgIGNhc2UgUHV0QnlJZDoKICAgICAgICAgY2FzZSBQdXRCeUlkRmx1
c2g6CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJC
eUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0QWNjZXNz
b3JzQnlJZDoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODY0LDYgKzg2NywzNyBAQCBzdHJ1Y3QgTm9kZSB7
CiAgICAgICAgIEFTU0VSVChoYXNJZGVudGlmaWVyKCkpOwogICAgICAgICByZXR1cm4gbV9vcElu
Zm87CiAgICAgfQorCisgICAgYm9vbCBoYXNBY2Nlc3NvckF0dHJpYnV0ZXMoKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoIChvcCgpKSB7CisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAg
ICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6Cisg
ICAgICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludDMyX3QgYWNjZXNzb3JB
dHRyaWJ1dGVzKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChoYXNBY2Nlc3NvckF0dHJpYnV0ZXMo
KSk7CisgICAgICAgIHN3aXRjaCAob3AoKSkgeworICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6
CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNC
eUlkOgorICAgICAgICAgICAgcmV0dXJuIG1fb3BJbmZvMjsKKyAgICAgICAgY2FzZSBQdXRHZXR0
ZXJCeVZhbDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKKyAgICAgICAgICAgIHJldHVy
biBtX29wSW5mbzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0K
ICAgICAKICAgICBib29sIGhhc1Byb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKCkKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggMTM0OWE1ZGY5ZWViYTUx
MDk1NGExMTA3NDNlNDUwNjZmYjMzM2EwYS4uYTBmZmRlOWY2YzIwMmRjNjllZmFjZjQzM2JkNWM0
ZWZmMjJkNmNiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAt
MTc5LDggKzE3OSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFj
cm8oR2V0QnlJZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KEdldEJ5SWRGbHVzaCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1h
Y3JvKFB1dEJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhQdXRCeUlkRmx1c2gs
IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0QnlJ
ZEZsdXNoLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHV0QnlJZERpcmVjdCwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1dEdldHRlckJ5SWQsIE5vZGVNdXN0R2VuZXJh
dGUpIFwKKyAgICBtYWNybyhQdXRTZXR0ZXJCeUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAg
bWFjcm8oUHV0QWNjZXNzb3JzQnlJZCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1
dEdldHRlckJ5VmFsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0U2V0dGVyQnlW
YWwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1N0cnVjdHVyZSwgTm9kZU11
c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldEV4ZWN1dGFibGUsIE5vZGVSZXN1bHRKUykgXAog
ICAgIG1hY3JvKFB1dFN0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0ZSkgXApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcAppbmRleCBhNDE1MDc1MWE3ZmE1MDEyYmRkNzYzZjEwNWFjNzgwMTZhNDUzNzAzLi44
MmNlMzU0ZGM2NGJmYTU4MmQ4ZmUzOTJmMzBlN2MzMWUwNmZjOTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcApAQCAtNjUxLDYgKzY1MSwxMSBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICAg
ICAgY2FzZSBQdXRCeU9mZnNldDoKICAgICAgICAgY2FzZSBNdWx0aVB1dEJ5T2Zmc2V0OgorICAg
ICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAg
ICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgorICAgICAgICBjYXNlIFB1dEdldHRlckJ5VmFs
OgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAgICAgICBjYXNlIERGRzo6SnVtcDoK
ICAgICAgICAgY2FzZSBCcmFuY2g6CiAgICAgICAgIGNhc2UgU3dpdGNoOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA5ZTM1ODBlYzQ0NDViYmQ2
YWRmYmM5ZTVlMDhiODM2NzZjZDUzNDgyLi4yMjEzOTZmMzU3YjY4ZWFiODRiNTYwZmRhOWI5ZDky
Yjk4YzI4MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaApAQCAtMTg4LDYgKzE4OCwxMSBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0
ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRCeUlk
OgogICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICBj
YXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0
QWNjZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0
dGVyQnlWYWw6CiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFi
bGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDIzMWFiOTdkMGNmMTdmNjRlNmI1YzgwNTk5
Nzg0YzcwNjkwMzc1OWIuLjhmMjFjOTNjNmZkMzExZGM3Y2FjMzNiZWY5MGFhZTI1ZDJiNTk0YWEg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CkBAIC02NzM5LDYgKzY3MzksNjEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6d3JpdGVCYXJyaWVy
KEdQUlJlZyBvd25lckdQUiwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXQKICAgICBvd25l
cklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlJZChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0
ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGFjY2Vzc29yKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKworICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CisgICAgY2FsbE9wZXJhdGlvbihub2RlLT5vcCgpID09IFB1dEdldHRlckJ5SWQg
PyBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkIDogb3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgTm9SZXN1
bHQsIGJhc2UuZ3ByKCksIGlkZW50aWZpZXJVSUQobm9kZS0+aWRlbnRpZmllck51bWJlcigpKSwg
bm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yLmdwcigpKTsKKyAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKE5vZGUqIG5vZGUpCit7CisgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgSlNWYWx1
ZU9wZXJhbmQgZ2V0dGVyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICBKU1ZhbHVlT3BlcmFu
ZCBzZXR0ZXIodGhpcywgbm9kZS0+Y2hpbGQzKCkpOworCisgICAgZmx1c2hSZWdpc3RlcnMoKTsK
KyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVy
U2V0dGVyLCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRlbnRpZmllclVJRChub2RlLT5pZGVudGlm
aWVyTnVtYmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgZ2V0dGVyLmdwcigpLCBz
ZXR0ZXIuZ3ByKCkpOworI2Vsc2UKKyAgICAvLyBUaGVzZSBKU1ZhbHVlcyBtYXkgYmUgSlNVbmRl
ZmluZWQgT1IgSlNGdW5jdGlvbiouCisgICAgLy8gQXQgdGhhdCB0aW1lLAorICAgIC8vIDEuIElm
IHRoZSBKU1ZhbHVlIGlzIEpTVW5kZWZpbmVkLCBpdHMgcGF5bG9hZCBiZWNvbWVzIG51bGxwdHIu
CisgICAgLy8gMi4gSWYgdGhlIEpTVmFsdWUgaXMgSlNGdW5jdGlvbiosIGl0cyBwYXlsb2FkIGJl
Y29tZXMgSlNGdW5jdGlvbiouCisgICAgLy8gU28gZXh0cmFjdCBwYXlsb2FkIGFuZCBwYXNzIGl0
IHRvIG9wZXJhdGlvblB1dEdldHRlclNldHRlci4gVGhpcyBoYWNrIGlzIHVzZWQgYXMgdGhlIHNh
bWUgd2F5IGluIGJhc2VsaW5lIEpJVC4KKyAgICBKU1ZhbHVlUmVncyBnZXR0ZXJSZWdzID0gZ2V0
dGVyLmpzVmFsdWVSZWdzKCk7CisgICAgSlNWYWx1ZVJlZ3Mgc2V0dGVyUmVncyA9IHNldHRlci5q
c1ZhbHVlUmVncygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVy
LCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRlbnRpZmllclVJRChub2RlLT5pZGVudGlmaWVyTnVt
YmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgZ2V0dGVyUmVncy5wYXlsb2FkR1BS
KCksIHNldHRlclJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbmRpZgorICAgIG1faml0LmV4Y2VwdGlv
bkNoZWNrKCk7CisKKyAgICBub1Jlc3VsdChub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlT3BlcmFu
ZCBzdWJzY3JpcHQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGFjY2Vzc29yKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKKworICAgIGZsdXNoUmVnaXN0ZXJz
KCk7CisgICAgYXV0byBvcGVyYXRpb24gPSBub2RlLT5vcCgpID09IFB1dEdldHRlckJ5VmFsID8g
b3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwgOiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbDsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBOb1Jlc3VsdCwgYmFz
ZS5ncHIoKSwgc3Vic2NyaXB0LmdwcigpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgYWNj
ZXNzb3IuZ3ByKCkpOworI2Vsc2UKKyAgICBKU1ZhbHVlUmVncyBzdWJzY3JpcHRSZWdzID0gc3Vi
c2NyaXB0LmpzVmFsdWVSZWdzKCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIE5vUmVz
dWx0LCBiYXNlLmdwcigpLCBzdWJzY3JpcHRSZWdzLnRhZ0dQUigpLCBzdWJzY3JpcHRSZWdzLnBh
eWxvYWRHUFIoKSwgbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yLmdwcigpKTsK
KyNlbmRpZgorICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisKKyAgICBub1Jlc3VsdChub2Rl
KTsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCA0NTg4YjVjZmQ5MjQx
YzJmMjcxYTQwNWY3MDM1YmY3NzkwM2FjMDc2Li4xMzFiNDlkNjI4NGIxMWMwNWY4MmEyOTQ5N2E3
MjA2YmYxMjFlN2Q4IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCkBAIC0xMTU1LDM1ICsxMTU1LDE2IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsK
ICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwog
ICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KLSAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0
VGFnKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uKTsKLSAg
ICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVu
dFR5cGUxPgotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBl
IG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSk7Ci0gICAgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMSwgdHlw
ZW5hbWUgQXJndW1lbnRUeXBlMj4KLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0VGFnLCBBcmd1bWVudFR5cGUxIGFyZzEs
IEFyZ3VtZW50VHlwZTIgYXJnMikKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VDSVpDIG9wZXJhdGlvbiwgR1BSUmVnIHJlZ09wMSwgVW5pcXVlZFN0
cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgR1BSUmVnIHJlZ09wNCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSwgYXJnMik7Ci0gICAg
fQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgQXJndW1lbnRU
eXBlMSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMiwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMz4KLSAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24s
IE5vUmVzdWx0VGFnLCBBcmd1bWVudFR5cGUxIGFyZzEsIEFyZ3VtZW50VHlwZTIgYXJnMiwgQXJn
dW1lbnRUeXBlMyBhcmczKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uLCBhcmcxLCBhcmcyLCBhcmczKTsKLSAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
RnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1bWVudFR5
cGUyLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUzLCB0eXBlbmFtZSBBcmd1bWVudFR5cGU0PgotICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBlIG9wZXJhdGlvbiwg
Tm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSwgQXJndW1lbnRUeXBlMiBhcmcyLCBBcmd1
bWVudFR5cGUzIGFyZzMsIEFyZ3VtZW50VHlwZTQgYXJnNCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCk7CisgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1Q
dHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVu
Y3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUy
LCB0eXBlbmFtZSBBcmd1bWVudFR5cGUzLCB0eXBlbmFtZSBBcmd1bWVudFR5cGU0LCB0eXBlbmFt
ZSBBcmd1bWVudFR5cGU1PgotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVu
Y3Rpb25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSwgQXJn
dW1lbnRUeXBlMiBhcmcyLCBBcmd1bWVudFR5cGUzIGFyZzMsIEFyZ3VtZW50VHlwZTQgYXJnNCwg
QXJndW1lbnRUeXBlNSBhcmc1KQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBl
LCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
RnVuY3Rpb25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3MuLi4gYXJncykKICAgICB7
Ci0gICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSwgYXJnMiwgYXJn
MywgYXJnNCwgYXJnNSk7CisgICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwg
YXJncy4uLik7CiAgICAgfQogCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihE
X0pJVE9wZXJhdGlvbl9aWiBvcGVyYXRpb24sIEZQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBH
UFJSZWcgYXJnMikKQEAgLTE1MzQsNiArMTUxNSwxNiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7
CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIo
YXJnMSksIGFyZzIsIFRydXN0ZWRJbW0zMihhcmczKSwgYXJnNCwgVHJ1c3RlZEltbTMyKGFyZzUp
KTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9CisgICAgSklU
Q29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQyBvcGVyYXRp
b24sIEdQUlJlZyByZWdPcDEsIEdQUlJlZyByZWdPcDIsIGludDMyX3Qgb3AzLCBHUFJSZWcgcmVn
T3A0KQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgcmVnT3AyLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVnT3Ax
LCBVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBHUFJSZWcgcmVnT3A0
LCBHUFJSZWcgcmVnT3A1KQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihv
cDMpLCByZWdPcDQsIHJlZ09wNSk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlv
bik7CisgICAgfQogI2Vsc2UgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAogLy8gRW5jb2RlZEpTVmFs
dWUgaW4gSlNWQUxVRTMyXzY0IGlzIGEgNjQtYml0IGludGVnZXIuIFdoZW4gYmVpbmcgY29tcGls
ZWQgaW4gQVJNIEVBQkksIGl0IG11c3QgYmUgYWxpZ25lZCBldmVuLW51bWJlcmVkIHJlZ2lzdGVy
IChyMCwgcjIgb3IgW3NwXSkuCkBAIC0xODU1LDYgKzE4NDYsMTYgQEAgY2xhc3MgU3BlY3VsYXRp
dmVKSVQgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3Rl
ZEltbTMyKGFyZzEpLCBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbTMyKGFyZzMpLCBh
cmc0LCBUcnVzdGVkSW1tMzIoYXJnNSkpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVy
YXRpb24pOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VDSlpDIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBH
UFJSZWcgYXJnMlBheWxvYWQsIGludDMyX3QgYXJnMywgR1BSUmVnIGFyZzQpCisgICAgeworICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMlBheWxvYWQs
IGFyZzJUYWcsIFRydXN0ZWRJbW0zMihhcmczKSwgYXJnNCk7CisgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsKG9wZXJhdGlvbik7CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkNDIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIFVuaXF1
ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIEdQUlJlZyBhcmc0LCBHUFJSZWcg
YXJnNSkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShh
cmcxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIGFyZzQsIGFy
ZzUpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgIH0KICN1bmRl
ZiBFQUJJXzMyQklUX0RVTU1ZX0FSRwogI3VuZGVmIFNINF8zMkJJVF9EVU1NWV9BUkcKICAgICAK
QEAgLTIyNDMsNiArMjI0NCw5IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIGNv
bXBpbGVUeXBlT2YoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNoZWNrU3RydWN0dXJlKE5vZGUq
LCBHUFJSZWcgY2VsbEdQUiwgR1BSUmVnIHRlbXBHUFIpOwogICAgIHZvaWQgY29tcGlsZUNoZWNr
U3RydWN0dXJlKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQoTm9kZSop
OworICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29yc0J5SWQoTm9kZSopOworICAgIHZvaWQgY29t
cGlsZVB1dEFjY2Vzc29yQnlWYWwoTm9kZSopOwogICAgIAogICAgIHZvaWQgbW92ZVRydWVUbyhH
UFJSZWcpOwogICAgIHZvaWQgbW92ZUZhbHNlVG8oR1BSUmVnKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGNiMDgwNmNkZDVh
NmEyNzMwYzBkMzEyNjEwZjBkNzMxMmQ4MjFmOWUuLmQ4ZTJkMWI1NTA0NGZiOWEzNDQ3NTlmYzc0
Yzk2NGZhYmZlYWY2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNDE2NCw2ICs0MTY0LDIzIEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAg
Y2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDogeworICAgICAgICBj
b21waWxlUHV0QWNjZXNzb3JCeUlkKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6IHsKKyAgICAgICAgY29tcGlsZVB1dEFjY2Vzc29yc0J5
SWQobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgUHV0R2V0dGVyQnlW
YWw6CisgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDogeworICAgICAgICBjb21waWxlUHV0QWNjZXNz
b3JCeVZhbChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBHZXRHbG9i
YWxMZXhpY2FsVmFyaWFibGU6CiAgICAgY2FzZSBHZXRHbG9iYWxWYXI6IHsKICAgICAgICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAKaW5kZXggZDczNmVm
ZWJiYWM3ZTM4MWIwOTkwNzUwM2ExNjE3OWEzNWQ5OTFhNy4uNTkwZGE3MmE4Yzk0M2U3MzFjMDdj
NWQyZWJiNWRhZjk5MjdjNWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAKQEAgLTI3Miw2ICsy
NzIsMTUgQEAgY2xhc3MgU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2Ug
ewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBj
YXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAg
ICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgICAgICAgICBjYXNlIFB1dEdldHRl
ckJ5VmFsOgorICAgICAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDogeworICAgICAgICAgICAg
ICAgIGNvbnNpZGVyQmFycmllcihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgY2FzZSBQdXRCeU9mZnNldDogewog
ICAgICAgICAgICAgICAgIGNvbnNpZGVyQmFycmllcihtX25vZGUtPmNoaWxkMigpLCBtX25vZGUt
PmNoaWxkMygpKTsKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA1MzdmOGY2NWE1MWEzMzMxZDI1MjAy
NTY2MTBhZDRmMWYyMWI5NGU5Li4xZjRjODY0NjY4YWU1MTc2NzhhZDVkYzgyNmQ4NTdlNzg3YTUy
NDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CkBAIC0yMDMsNiArMjAzLDExIEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShO
b2RlKiBub2RlKQogICAgIGNhc2UgRm9yd2FyZFZhcmFyZ3M6CiAgICAgY2FzZSBTd2l0Y2g6CiAg
ICAgY2FzZSBUeXBlT2Y6CisgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0U2V0
dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgY2FzZSBQdXRHZXR0ZXJC
eVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAgICAgICAvLyBUaGVzZSBhcmUgT0su
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXJpdGhTdWI6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCmluZGV4IDQzZGRmYzM5NDNj
NDU3MzQ3OWFjNjY3MDY4MWU3OTIxMjcyMzUxYWEuLjhlMzM1MjJhNWM3OTdmNDRhODYyNmFjNTQ2
MGVhMTc2NzgxYzI1M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW50cmluc2ljUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW50cmluc2ljUmVwb3NpdG9yeS5oCkBAIC0xMTgsNiArMTE4LDkgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0osIGZ1bmN0aW9uVHlw
ZSh2b2lkVHlwZSwgaW50NjQpKSBcCiAgICAgbWFjcm8oVl9KSVRPcGVyYXRpb25fWiwgZnVuY3Rp
b25UeXBlKHZvaWRUeXBlLCBpbnQzMikpIFwKICAgICBtYWNybyhWX0pJVE9wZXJhdGlvbl9FLCBm
dW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0cikpIFwKKyAgICBtYWNybyhWX0pJVE9wZXJhdGlv
bl9FQ0laQywgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnRQdHIsIGludFB0ciwgaW50UHRyLCBp
bnQzMiwgaW50UHRyKSkgXAorICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0VDSVpKSiwgZnVuY3Rp
b25UeXBlKHZvaWRUeXBlLCBpbnRQdHIsIGludFB0ciwgaW50UHRyLCBpbnQzMiwgaW50NjQsIGlu
dDY0KSkgXAorICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0VDSlpDLCBmdW5jdGlvblR5cGUodm9p
ZFR5cGUsIGludFB0ciwgaW50UHRyLCBpbnQ2NCwgaW50MzIsIGludFB0cikpIFwKICAgICBtYWNy
byhaX0pJVE9wZXJhdGlvbl9ELCBmdW5jdGlvblR5cGUoaW50MzIsIGRvdWJsZVR5cGUpKSBcCiAg
ICAgbWFjcm8oWl9KSVRPcGVyYXRpb25fRUMsIGZ1bmN0aW9uVHlwZShpbnQzMiwgaW50UHRyLCBp
bnRQdHIpKSBcCiAgICAgbWFjcm8oWl9KSVRPcGVyYXRpb25fRUdDLCBmdW5jdGlvblR5cGUoaW50
MzIsIGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCmluZGV4IGI5YTZjOTg3YmZhNmRjYmRiNWUyYzVl
OWMzYmVlZWEyMDhmZWQ2ZGMuLjRkMzk2NDU3NGY4ZmFmOTdiODM1NTk2MjhiMDczZGE3MjBlYmYy
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xM
Vk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwCkBAIC01NjMsNiArNTYzLDE3IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAg
Y2FzZSBQdXRCeUlkRGlyZWN0OgogICAgICAgICAgICAgY29tcGlsZVB1dEJ5SWQoKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2Ug
UHV0U2V0dGVyQnlJZDoKKyAgICAgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQoKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgICAg
ICAgICBjb21waWxlUHV0QWNjZXNzb3JzQnlJZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6Cisg
ICAgICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JCeVZhbCgpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAgICAgICAgICAgY29tcGlsZUdldEJ1dHRl
cmZseSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMDAwLDYgKzMwMTEsMzggQEAgY2xhc3Mg
TG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisK
KyAgICB2b2lkIGNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQoKQorICAgIHsKKyAgICAgICAgTFZhbHVl
IGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgYWNjZXNz
b3IgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBhdXRvIHVpZCA9IG1fZ3Jh
cGguaWRlbnRpZmllcnMoKVttX25vZGUtPmlkZW50aWZpZXJOdW1iZXIoKV07CisgICAgICAgIHZt
Q2FsbCgKKyAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihtX25vZGUtPm9wKCkgPT0gUHV0R2V0
dGVyQnlJZCA/IG9wZXJhdGlvblB1dEdldHRlckJ5SWQgOiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlk
KSwKKyAgICAgICAgICAgIG1fY2FsbEZyYW1lLCBiYXNlLCBtX291dC5jb25zdEludFB0cih1aWQp
LCBtX291dC5jb25zdEludDMyKG1fbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCkpLCBhY2Nlc3Nv
cik7CisgICAgfQorCisgICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JzQnlJZCgpCisgICAgewor
ICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
IExWYWx1ZSBnZXR0ZXIgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBM
VmFsdWUgc2V0dGVyID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgYXV0
byB1aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJzKClbbV9ub2RlLT5pZGVudGlmaWVyTnVtYmVyKCld
OworICAgICAgICB2bUNhbGwoCisgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9u
UHV0R2V0dGVyU2V0dGVyKSwKKyAgICAgICAgICAgIG1fY2FsbEZyYW1lLCBiYXNlLCBtX291dC5j
b25zdEludFB0cih1aWQpLCBtX291dC5jb25zdEludDMyKG1fbm9kZS0+YWNjZXNzb3JBdHRyaWJ1
dGVzKCkpLCBnZXR0ZXIsIHNldHRlcik7CisKKyAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVQdXRB
Y2Nlc3NvckJ5VmFsKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIHN1YnNjcmlwdCA9IGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDIoKSk7CisgICAgICAgIExWYWx1ZSBhY2Nlc3NvciA9IGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDMoKSk7CisgICAgICAgIHZtQ2FsbCgKKyAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlv
bihtX25vZGUtPm9wKCkgPT0gUHV0R2V0dGVyQnlWYWwgPyBvcGVyYXRpb25QdXRHZXR0ZXJCeVZh
bCA6IG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKSwKKyAgICAgICAgICAgIG1fY2FsbEZyYW1lLCBi
YXNlLCBzdWJzY3JpcHQsIG1fb3V0LmNvbnN0SW50MzIobV9ub2RlLT5hY2Nlc3NvckF0dHJpYnV0
ZXMoKSksIGFjY2Vzc29yKTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlQXJyYXlQdXNo
KCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCA5MjBkYWUyMmNmOWU2YzMzYWE2
ZGNhZmU4Y2ZmMWVhMjBlNWQxYTFkLi40MTBhOGNiYmE0Y2NjYzFlNGQ2MWRkMmQ4ODNjNGYwM2I2
Njk0N2VhIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTc2Miw5ICs3NjIsMTMgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUMsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQywgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUNJWkMsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBpbnQz
Ml90LCBSZWdpc3RlcklEKTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0MsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIq
LCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQywgUmVnaXN0ZXJJRCwg
VW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0MsIFJlZ2lz
dGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJ
RCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwg
aW50MzJfdCwgUmVnaXN0ZXJJRCk7CisjZWxzZQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSlpDLCBSZWdpc3RlcklELCBSZWdpc3Rl
cklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKKyNlbmRpZgogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VFLCBSZWdp
c3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FWlN5bXRhYkosIGludCwgU3ltYm9sVGFibGUqLCBSZWdpc3RlcklEKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
WlN5bXRhYkosIGludCwgU3ltYm9sVGFibGUqLCBSZWdpc3RlcklEKTsKQEAgLTc3NSwxMiArNzc5
LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogI2Vsc2UKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUosIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQpOwogI2VuZGlmCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKLCBSZWdpc3RlcklELCBjb25zdCBJ
ZGVudGlmaWVyKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKSiwgUmVnaXN0ZXJJRCwg
Y29uc3QgSWRlbnRpZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwotICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VK
SlpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKICNpZiBV
U0UoSlNWQUxVRTY0KQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEZfSklUT3BlcmF0aW9uX0VGSlpaLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBS
ZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihW
X0pJVE9wZXJhdGlvbl9FU3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkpKLCBSZWdpc3RlcklELCBVbmlx
dWVkU3RyaW5nSW1wbCosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogI2Vsc2UK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FU3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKaW5kZXggYTM0YjdhMGM5ZGRmNWVmZjk2NjY0
ZTkzNDFjMjZmNDQ5NTY0MWQ1Ni4uYjVlYTA4MTM0Yjg0NDgyZjk1YTZhNDc4MTY2MGQyMzQxN2M4
YTFlMiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKQEAgLTQwNiw2ICs0
MDYsMTEgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2UKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VDSVpDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBs
KiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQoreworICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBU
cnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhvcGVyYXRpb24pOworfQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKIEFMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0
aW9uX0VKWlogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgaW50MzJfdCBhcmcyLCBpbnQzMl90IGFy
ZzMpCkBAIC01NDEsMTkgKzU0NiwxMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpbwogICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3Bl
cmF0aW9uX0VKSWRaSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlm
aWVyKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQotewotICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIp
LCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwotfQotCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkpKIG9wZXJh
dGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQz
Ml90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQorQUxXQVlTX0lO
TElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRUNJWkpKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBs
KiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0LCBSZWdpc3RlcklEIHJl
Z09wNSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVk
SW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCwgcmVnT3A1KTsKICAg
ICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1B
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSkpaSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklE
IHJlZ09wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQorQUxXQVlTX0lOTElORSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNK
WkMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIsIGludDMy
X3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUocmVnT3AxLCByZWdPcDIsIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQpOwogICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CkBAIC02NzUsMTMg
KzY3NCw3IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKSiBvcGVyYXRpCiAgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkMgb3Bl
cmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGlu
dDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9w
MyksIHJlZ09wNCk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uKTsKLX0KLQotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCBy
ZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJ
RCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkNDIG9wZXJhdGlv
biwgUmVnaXN0ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50MzJf
dCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0LCBSZWdpc3RlcklEIHJlZ09wNSkKIHsKICAgICBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwg
VHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCwgcmVnT3A1KTsKICAgICByZXR1cm4gYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggMmI1MzBmNWY3OGM5ZjRmNzQ5ZGViYjA0NzhkYjE2
ZjEyOGIyODcxYS4uMWY4NGQ2NjMzMmFhMmZjZDAwNTRhZmVjODgyMDRhN2ZjMjgzYmIwZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xMzUzLDEw
OSArMTM1Myw3OCBAQCBzdGF0aWMgdm9pZCBwdXRBY2Nlc3NvckJ5VmFsKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIGJhc2UsIEpTVmFsdWUgc3Vic2NyaXB0LAogICAgICAgICBiYXNlLT5wdXRT
ZXR0ZXIoZXhlYywgcHJvcGVydHlLZXksIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCi0jaWYg
VVNFKEpTVkFMVUU2NCkKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlk
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVu
dGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRHZXR0ZXJWYWx1ZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlk
KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQs
IGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKiBnZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKLSAg
ICBBU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7
Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZE9iamVjdFZhbHVlKSk7CisgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkp
OworICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAotICAgIEpT
VmFsdWUgZ2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRHZXR0ZXJWYWx1ZSk7Ci0gICAg
QVNTRVJUKGdldHRlci5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywg
KmlkZW50aWZpZXIsIGFzT2JqZWN0KGdldHRlciksIG9wdGlvbnMpOworICAgIEFTU0VSVChnZXR0
ZXItPmlzT2JqZWN0KCkpOworICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCB1aWQsIGdldHRl
ciwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJC
eUlkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJ
ZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTZXR0ZXJWYWx1ZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJC
eUlkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQsIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKiBzZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAK
LSAgICBBU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3Qo
KSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9iamVjdFZhbHVlKSk7CisgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0
KCkpOworICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAotICAg
IEpTVmFsdWUgc2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7Ci0g
ICAgQVNTRVJUKHNldHRlci5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhl
YywgKmlkZW50aWZpZXIsIGFzT2JqZWN0KHNldHRlciksIG9wdGlvbnMpOworICAgIEFTU0VSVChz
ZXR0ZXItPmlzT2JqZWN0KCkpOworICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVjLCB1aWQsIHNl
dHRlciwgb3B0aW9ucyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0
ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFs
dWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3QgYXR0cmlidXRlLAotICAgIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNldHRl
clZhbHVlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4ZWNT
dGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAK
LSAgICBBU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3Qo
KSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZE9iamVjdFZhbHVlKSk7Ci0KLSAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0KLSAgICBK
U1ZhbHVlIGdldHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkR2V0dGVyVmFsdWUpOwotICAg
IEpTVmFsdWUgc2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7Ci0g
ICAgQVNTRVJUKGdldHRlci5pc09iamVjdCgpIHx8IGdldHRlci5pc1VuZGVmaW5lZCgpKTsKLSAg
ICBBU1NFUlQoc2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzVW5kZWZpbmVkKCkpOwotICAg
IEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNPYmplY3QoKSk7Ci0KLSAgICBp
ZiAoIWdldHRlci5pc1VuZGVmaW5lZCgpKQotICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZt
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGFzT2JqZWN0KGdldHRlcikpOwotICAgIGlm
ICghc2V0dGVyLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0s
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXNPYmplY3Qoc2V0dGVyKSk7Ci0gICAgYmFz
ZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRy
aWJ1dGUpOworICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIp
LCBBY2Nlc3NvclR5cGU6OkdldHRlcik7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRHZXR0ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRlcikKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogc2V0dGVy
KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcigmdm0sIGV4ZWMpOwotICAgIEpTT2JqZWN0KiBiYXNlID0gYXNPYmplY3QoSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKSk7Ci0gICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7Ci0gICAgSlNPYmplY3QqIGdldHRlciA9IGFzT2Jq
ZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkR2V0dGVyKSk7Ci0gICAgcHV0QWNjZXNzb3JCeVZh
bChleGVjLCBiYXNlLCBzdWJzY3JpcHQsIGF0dHJpYnV0ZSwgZ2V0dGVyLCBBY2Nlc3NvclR5cGU6
OkdldHRlcik7Ci19CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZh
bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFNldHRlcikKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLSAgICBKU09iamVjdCogYmFzZSA9IGFz
T2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSkpOwotICAgIEpTVmFsdWUgc3Vic2Ny
aXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwotICAgIEpTT2JqZWN0KiBz
ZXR0ZXIgPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNldHRlcikpOwotICAgIHB1
dEFjY2Vzc29yQnlWYWwoZXhlYywgYmFzZSwgc3Vic2NyaXB0LCBhdHRyaWJ1dGUsIHNldHRlciwg
QWNjZXNzb3JUeXBlOjpTZXR0ZXIpOworICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmpl
Y3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBh
c09iamVjdChzZXR0ZXIpLCBBY2Nlc3NvclR5cGU6OlNldHRlcik7CiB9CiAKLSNlbHNlCi12b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqIGV4ZWMsIEpT
Q2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEpT
Q2VsbCogZ2V0dGVyKQorI2lmIFVTRShKU1ZBTFVFNjQpCit2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIFVu
aXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkR2V0dGVyVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKIHsK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIoJnZtLCBleGVjKTsKIAogICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09iamVjdCgp
KTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7CisgICAgSlNP
YmplY3QqIGJhc2VPYmogPSBhc09iamVjdChvYmplY3QpOwogCi0gICAgQVNTRVJUKGdldHRlci0+
aXNPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0R2V0dGVyKGV4ZWMsICppZGVudGlmaWVyLCBn
ZXR0ZXIsIG9wdGlvbnMpOwotfQotCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0
dGVyQnlJZChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVu
dGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCogc2V0dGVyKQotewotICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMp
OworICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKIAotICAgIEFTU0VSVChvYmplY3QgJiYgb2Jq
ZWN0LT5pc09iamVjdCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2Jq
ZWN0KCk7CisgICAgSlNWYWx1ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEdldHRl
clZhbHVlKTsKKyAgICBKU1ZhbHVlIHNldHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU2V0
dGVyVmFsdWUpOworICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBnZXR0ZXIuaXNVbmRl
ZmluZWQoKSk7CisgICAgQVNTRVJUKHNldHRlci5pc09iamVjdCgpIHx8IHNldHRlci5pc1VuZGVm
aW5lZCgpKTsKKyAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzT2JqZWN0
KCkpOwogCi0gICAgQVNTRVJUKHNldHRlci0+aXNPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0
U2V0dGVyKGV4ZWMsICppZGVudGlmaWVyLCBzZXR0ZXIsIG9wdGlvbnMpOworICAgIGlmICghZ2V0
dGVyLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIGFjY2Vzc29yLT5zZXRHZXR0ZXIodm0sIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXNPYmplY3QoZ2V0dGVyKSk7CisgICAgaWYgKCFzZXR0
ZXIuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgYWNjZXNzb3ItPnNldFNldHRlcih2bSwgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhc09iamVjdChzZXR0ZXIpKTsKKyAgICBiYXNlT2JqLT5w
dXREaXJlY3RBY2Nlc3NvcihleGVjLCB1aWQsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCi12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgSlNDZWxsKiBvYmplY3QsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3QgYXR0cmli
dXRlLCBKU0NlbGwqIGdldHRlciwgSlNDZWxsKiBzZXR0ZXIpCisjZWxzZQordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCog
b2JqZWN0LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxs
KiBnZXR0ZXIsIEpTQ2VsbCogc2V0dGVyKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAg
ICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCiAgICAgQVNTRVJU
KG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0KiBiYXNlT2JqID0g
b2JqZWN0LT5nZXRPYmplY3QoKTsKKyAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KG9i
amVjdCk7CiAKICAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVh
dGUodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CiAKQEAgLTE0NjcsMjUgKzE0MzYs
OCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElkZQogICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVy
KHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGdldHRlci0+Z2V0T2JqZWN0KCkpOwog
ICAgIGlmIChzZXR0ZXIpCiAgICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSwgc2V0dGVyLT5nZXRPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+
cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRyaWJ1dGUp
OwotfQotCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoRXhlY1N0
YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdldHRlcikKLXsKLSAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLQot
ICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIpLCBBY2Nlc3Nv
clR5cGU6OkdldHRlcik7CisgICAgYmFzZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgdWlk
LCBhY2Nlc3NvciwgYXR0cmlidXRlKTsKIH0KLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dFNldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIp
Ci17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKCZ2bSwgZXhlYyk7Ci0KLSAgICBwdXRBY2Nlc3NvckJ5VmFsKGV4ZWMsIGFzT2JqZWN0
KGJhc2UpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCksIGF0dHJpYnV0ZSwgYXNP
YmplY3Qoc2V0dGVyKSwgQWNjZXNzb3JUeXBlOjpTZXR0ZXIpOwotfQotCiAjZW5kaWYKIAogdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcFNjb3BlKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJf
dCBzY29wZVJlZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5k
ZXggYWFjYTM1YTIxZDA5N2E2NmI0ODFmYTUyMDVjNjg1MTMyMzNjZDU2Yi4uZjZjNTdmM2QxY2I3
ZTQ1NjIyNjM2MmE5MmEwZmQwOTk0MDU5OWQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmgKQEAgLTE4OSw4ICsxODksOSBAQCB0eXBlZGVmIHZvaWQgSklUX09Q
RVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDKShFeGVjU3RhdGUqLCBKU0NlbGwqKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNiKShFeGVjU3RhdGUqLCBD
b2RlQmxvY2sqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25f
RUNDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BF
UkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJY2YpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElubGlu
ZUNhbGxGcmFtZSopOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlv
bl9FQ0laQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIGludDMyX3QsIEpTQ2Vs
bCopOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0laQ0Mp
KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBpbnQzMl90LCBKU0NlbGwqLCBKU0Nl
bGwqKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJWkMp
KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCwgSlNDZWxs
Kik7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDQyko
RXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBKU0NlbGwq
LCBKU0NlbGwqKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25f
RUNJWkpKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3Qs
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJB
VElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSlpDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVk
SlNWYWx1ZSwgaW50MzJfdCwgSlNDZWxsKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAo
KlZfSklUT3BlcmF0aW9uX0VDQ0ljZikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKiwgSW5s
aW5lQ2FsbEZyYW1lKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0
aW9uX0VDSkopKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSk7CkBAIC0yMDAsOSArMjAxLDYgQEAgdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpW
X0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopOwogdHlwZWRl
ZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FWlN5bXRhYkopKEV4ZWNTdGF0
ZSosIGludDMyX3QsIFN5bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lk
IEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkNJ
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwq
KTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpJZFpKKShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIGludDMyX3QsIEVuY29kZWRK
U1ZhbHVlKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpJ
ZFpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90LCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJ
T04gKCpWX0pJVE9wZXJhdGlvbl9FSkpaSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklU
X09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9P
UEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpKQXApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopOwogdHlw
ZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpKQnkpKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFs
SW5mbyopOwpAQCAtMzEzLDE4ICszMTEsMTQgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRlYnVnKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKIFNsb3dQYXRoUmV0dXJu
VHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSosIGludDMyX3Qp
IFdURl9JTlRFUk5BTDsKICNlbmRpZgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5
SW5kZXgoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIEVuY29kZWRKU1ZhbHVl
KTsKLSNpZiBVU0UoSlNWQUxVRTY0KQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdl
dHRlckJ5SWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90
IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRl
bnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5B
TDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBFbmNv
ZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBpbnQz
Ml90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBp
bnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmll
ciosIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Cit2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqLCBKU0Nl
bGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lO
VEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0
YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2Vs
bCopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJC
eVZhbChFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1
dGUsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJf
dCBhdHRyaWJ1dGUsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKKyNpZiBVU0UoSlNWQUxVRTY0KQor
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBK
U0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKKyNlbHNlCit2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1
ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpTQ2VsbCopIFdURl9J
TlRFUk5BTDsKICNlbmRpZgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hGdW5jdGlv
bk5hbWVTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1Zh
bHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUo
RXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBiMTQ2YjIwOTg3NjhiMmE4ZmM2
YTk5MWQ0M2RlYjQ1MTU0NjRlMjFiLi4zMTc5Zjk4ZTU4MDMwZDYxZjBlYjZjYTE0ZjliMzI0ODZh
NDQ0NGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcApAQCAtNDkyLDcgKzQ5Miw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJf
YnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKICAgICBp
bnQzMl90IG9wdGlvbnMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIGVt
aXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCwgcmVn
VDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgcmVnVDAsICZt
X2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwg
b3B0aW9ucywgcmVnVDEpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyQnlJ
ZCwgcmVnVDAsIG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQpLmltcGwoKSwgb3B0aW9ucywgcmVnVDEpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9v
cF9wdXRfc2V0dGVyX2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC01
MDAsNyArNTAwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDApOwogICAgIGludDMyX3Qgb3B0aW9u
cyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMSk7Ci0gICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCByZWdUMCwgJm1fY29kZUJsb2NrLT5p
ZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLCBvcHRpb25zLCByZWdU
MSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCByZWdUMCwgbV9j
b2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkuaW1w
bCgpLCBvcHRpb25zLCByZWdUMSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJf
c2V0dGVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC01MDksNyArNTA5LDcg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICBpbnQzMl90IGF0dHJpYnV0ZSA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMSk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kLCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZp
ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCksIGF0dHJpYnV0ZSwgcmVnVDEsIHJl
Z1QyKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVnVDAs
IG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
LmltcGwoKSwgYXR0cmlidXRlLCByZWdUMSwgcmVnVDIpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9v
cF9wdXRfZ2V0dGVyX2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263478</attachid>
            <date>2015-10-19 06:28:05 -0700</date>
            <delta_ts>2015-10-19 11:25:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148860-20151019222731.patch</filename>
            <type>text/plain</type>
            <size>51304</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YjRhY2ZkMTdiYjg1OTJiMTc1N2U4YTExMzM1MDAyNWQ1MzUxMTM0Li4zNTQxMGU4MDFmODI3ZDgz
ZDM2NDU5NGZlNTdkNzlkZDY4MGVlNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw2NiBAQAogMjAxNS0xMC0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbRVM2XSBBZGQgREZHL0ZUTCBzdXBwb3J0IGZvciBhY2Nlc3NvciBw
dXQgb3BlcmF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzSWRlbnRpZmllcik6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6aGFzQWNjZXNzb3JBdHRyaWJ1dGVzKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjphY2Nlc3NvckF0dHJpYnV0ZXMpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVj
dXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeUlkKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEFjY2Vzc29yc0J5SWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbCk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3Rv
cmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9G
VExJbnRyaW5zaWNSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZN
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTm9k
ZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVB1dEFj
Y2Vzc29yQnlJZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29t
cGlsZVB1dEFjY2Vzc29yc0J5SWQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKToKKyAgICAgICAgKiBqaXQvSklULmg6Cisg
ICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0
aW9uKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJ
VE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9ieV9pZCk6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9wdXRfc2V0dGVyX2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX3B1dF9nZXR0ZXJfc2V0dGVyKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX2J5X2lkKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIpOgorCisyMDE1LTEwLTE5ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIERyb3AgIW5ld1Rh
cmdldCBjaGVjayBzaW5jZSBpdCBhbHdheXMgYmVjb21lcyB0cnVlCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAzMDgKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
CmluZGV4IGYyOGNjN2FmZjA2Yjk5MzMzNTA0ZmZhNTY0YTRjM2M3ZDFlNTI2YTIuLmE3MDE4MDZh
MTNkOTE3ODk5ZDY3MjEyZDAxNTc4NDkxOWZlNGYzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAg
LTIzNjMsNiArMjM2MywxNSBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBjbG9i
YmVyV29ybGQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBjbG9iYmVyTGltaXQpOwogICAgICAgICBi
cmVhazsKICAgICB9CisKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0
ZXJCeUlkOgorICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5
VmFsOgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6IHsKKyAgICAgICAgY2xvYmJlcldvcmxkKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJlckxpbWl0KTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQogICAgICAgICAKICAgICBjYXNlIEluOiB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBjYW4gZGV0
ZXJtaW5lIHdoZW4gdGhlIHByb3BlcnR5IGRlZmluaXRlbHkgZXhpc3RzIGJhc2VkIG9uIGFic3Ry
YWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
CmluZGV4IDY5ZjU0ZjFkMzUxMDUwNjcwYTUwN2IyNGYzZjc2OTQ1YWQ2YjZhMDYuLjNhZWU3ODE2
MGQ1Y2E5ZDAyZWY1YjBkZjA4OTQ0MjlkZGU3ZTY4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zNzQ5LDYgKzM3NDksMzggQEAg
Ym9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAg
ICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9ieV9pZCk7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNl
IG9wX3B1dF9nZXR0ZXJfYnlfaWQ6CisgICAgICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9ieV9pZDog
eworICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmll
ck51bWJlciA9IG1faW5saW5lU3RhY2tUb3AtPm1faWRlbnRpZmllclJlbWFwW2N1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmRdOworICAgICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9
IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgICAgICAgICBOb2RlKiBhY2Nl
c3NvciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFu
ZCkpOworICAgICAgICAgICAgTm9kZVR5cGUgb3AgPSAob3Bjb2RlSUQgPT0gb3BfcHV0X2dldHRl
cl9ieV9pZCkgPyBQdXRHZXR0ZXJCeUlkIDogUHV0U2V0dGVyQnlJZDsKKyAgICAgICAgICAgIGFk
ZFRvR3JhcGgob3AsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVyKSwgT3BJbmZvKGF0dHJpYnV0ZXMp
LCBiYXNlLCBhY2Nlc3Nvcik7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF9wdXRfZ2V0dGVy
X2J5X2lkKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9zZXR0ZXI6
IHsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50aWZp
ZXJOdW1iZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZpZXJSZW1hcFtjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kXTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgICAgICAgICAgTm9kZSogZ2V0
dGVyID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5k
KSk7CisgICAgICAgICAgICBOb2RlKiBzZXR0ZXIgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvbls1XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIGFkZFRvR3JhcGgoUHV0
QWNjZXNzb3JzQnlJZCwgT3BJbmZvKGlkZW50aWZpZXJOdW1iZXIpLCBPcEluZm8oYXR0cmlidXRl
cyksIGJhc2UsIGdldHRlciwgc2V0dGVyKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1
dF9nZXR0ZXJfc2V0dGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2Ugb3BfcHV0X2dldHRl
cl9ieV92YWw6CisgICAgICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9ieV92YWw6IHsKKyAgICAgICAg
ICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIHN1YnNjcmlwdCA9IGdldChWaXJ0dWFs
UmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOworICAgICAgICAgICAg
dW5zaWduZWQgYXR0cmlidXRlcyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Cisg
ICAgICAgICAgICBOb2RlKiBhY2Nlc3NvciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZVR5cGUgb3AgPSAob3Bj
b2RlSUQgPT0gb3BfcHV0X2dldHRlcl9ieV92YWwpID8gUHV0R2V0dGVyQnlWYWwgOiBQdXRTZXR0
ZXJCeVZhbDsKKyAgICAgICAgICAgIGFkZFRvR3JhcGgob3AsIE9wSW5mbyhhdHRyaWJ1dGVzKSwg
YmFzZSwgc3Vic2NyaXB0LCBhY2Nlc3Nvcik7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF9w
dXRfZ2V0dGVyX2J5X3ZhbCk7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIG9wX3Byb2ZpbGVf
dHlwZTogewogICAgICAgICAgICAgTm9kZSogdmFsdWVUb1Byb2ZpbGUgPSBnZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKICAgICAgICAgICAgIGFk
ZFRvR3JhcGgoUHJvZmlsZVR5cGUsIE9wSW5mbyhjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5sb2Nh
dGlvbiksIHZhbHVlVG9Qcm9maWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2FwYWJpbGl0aWVzLmNwcAppbmRleCBkYWZlNWU4MjNjOGM5MGE4NDJmZjQ5YTJhZmM5Y2JiMDU5
ZmU2M2E2Li45Nzg4YTQ4NGExM2FiYTJmOTFlZTExMzA1MGU2ZTU5YWM2YWI4NDMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0xNTQsNiAr
MTU0LDExIEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2Rl
SUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVjCiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6
CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgIGNhc2Ugb3BfcHV0X2J5X2lkOgor
ICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV9pZDoKKyAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlf
aWQ6CisgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX3NldHRlcjoKKyAgICBjYXNlIG9wX3B1dF9nZXR0
ZXJfYnlfdmFsOgorICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9ieV92YWw6CiAgICAgY2FzZSBvcF9q
bXA6CiAgICAgY2FzZSBvcF9qdHJ1ZToKICAgICBjYXNlIG9wX2pmYWxzZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggNmM4NWQ1OWUzMTA1MzljOWFhYmI0
MmNmMWRhMWVjMWNlY2VmMmU5OC4uMTg3NDc3MDU5Y2FkYWE4ZjQxOTM2MjJlYWM0ZWY2ZmU3M2Rk
YTNlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTM3
OSw2ICszNzksMTEgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwg
Y29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICBjYXNlIFB1dEJ5SWQ6
CiAgICAgY2FzZSBQdXRCeUlkRmx1c2g6CiAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgorICAgIGNh
c2UgUHV0R2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRB
Y2Nlc3NvcnNCeUlkOgorICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgY2FzZSBQdXRTZXR0
ZXJCeVZhbDoKICAgICBjYXNlIEFycmF5UHVzaDoKICAgICBjYXNlIEFycmF5UG9wOgogICAgIGNh
c2UgQ2FsbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCA1YzU3
ZTAyMmEwZGJiZDMzZjFkZTY0ODViZDUwMTZhZDc5NDBmYzk1Li5jNTA2M2YxNGM5YTRkNGNmYWMz
N2U5Y2I2OGY5NDY0YWY4ZmM3YjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0MuY3BwCkBAIC05NSw2ICs5NSwxMSBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUpCiAgICAgY2FzZSBQdXRCeUlkOgogICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNh
c2UgUHV0QnlJZERpcmVjdDoKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRT
ZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICBjYXNlIFB1dEdldHRl
ckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAgY2FzZSBDaGVja1N0cnVjdHVy
ZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCBlYjY0MTViM2Y0
Y2Q2ZGUwMjZhYTlhOTZiNDY2YTNhMTU1MDUxZmViLi5iZTVmZDUzYWYyMWZhM2U4NGIzZmIzZDk0
ZjYzNzU5MmMzMGUwYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAKQEAgLTEwNTcsNiArMTA1NywyNSBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGlj
IFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBQ
dXRHZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6IHsKKyAgICAgICAgICAg
IGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhF
ZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKworICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6IHsKKyAgICAgICAgICAg
IGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNh
c2UgUHV0U2V0dGVyQnlWYWw6IHsKKyAgICAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihu
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+
Y2hpbGQzKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICBjYXNl
IEdldEV4ZWN1dGFibGU6IHsKICAgICAgICAgICAgIGZpeEVkZ2U8RnVuY3Rpb25Vc2U+KG5vZGUt
PmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAppbmRleCBhYzFhNzU3Y2U0NzUxOTNiMzNjMzkyMzFmNTY0N2Y2OGViZGNjNTZjLi43OTA1
OTNiOTg0YmJmODE1MzVmMzIwNmZlMWVkZDNiYWUyNjdlZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGUuaApAQCAtODUzLDYgKzg1Myw5IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAg
Y2FzZSBQdXRCeUlkOgogICAgICAgICBjYXNlIFB1dEJ5SWRGbHVzaDoKICAgICAgICAgY2FzZSBQ
dXRCeUlkRGlyZWN0OgorICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2Ug
UHV0U2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC04NjQsNiArODY3LDM3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgQVNTRVJUKGhh
c0lkZW50aWZpZXIoKSk7CiAgICAgICAgIHJldHVybiBtX29wSW5mbzsKICAgICB9CisKKyAgICBi
b29sIGhhc0FjY2Vzc29yQXR0cmlidXRlcygpCisgICAgeworICAgICAgICBzd2l0Y2ggKG9wKCkp
IHsKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5
SWQ6CisgICAgICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICAgICAgY2FzZSBQdXRHZXR0
ZXJCeVZhbDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgfQorCisgICAgaW50MzJfdCBhY2Nlc3NvckF0dHJpYnV0ZXMoKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKGhhc0FjY2Vzc29yQXR0cmlidXRlcygpKTsKKyAgICAgICAgc3dpdGNo
IChvcCgpKSB7CisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRT
ZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgICAgICAgICBy
ZXR1cm4gbV9vcEluZm8yOworICAgICAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgICAgICBj
YXNlIFB1dFNldHRlckJ5VmFsOgorICAgICAgICAgICAgcmV0dXJuIG1fb3BJbmZvOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQogICAgIAogICAgIGJvb2wgaGFz
UHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAppbmRleCAxMzQ5YTVkZjllZWJhNTEwOTU0YTExMDc0M2U0NTA2NmZi
MzMzYTBhLi5hMGZmZGU5ZjZjMjAyZGM2OWVmYWNmNDMzYmQ1YzRlZmYyMmQ2Y2I1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0xNzksOCArMTc5LDEzIEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhHZXRCeUlkLCBOb2RlUmVz
dWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oR2V0QnlJZEZsdXNoLCBOb2Rl
UmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHV0QnlJZCwgTm9kZU11
c3RHZW5lcmF0ZSkgXAotICAgIG1hY3JvKFB1dEJ5SWRGbHVzaCwgTm9kZU11c3RHZW5lcmF0ZSB8
IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhQdXRCeUlkRmx1c2gsIE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKICAgICBtYWNybyhQdXRCeUlkRGlyZWN0LCBOb2RlTXVzdEdlbmVyYXRlKSBcCisg
ICAgbWFjcm8oUHV0R2V0dGVyQnlJZCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1
dFNldHRlckJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhQdXRBY2Nlc3NvcnNC
eUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0R2V0dGVyQnlWYWwsIE5vZGVN
dXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhQdXRTZXR0ZXJCeVZhbCwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIG1hY3JvKENoZWNrU3RydWN0dXJlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAg
bWFjcm8oR2V0RXhlY3V0YWJsZSwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oUHV0U3RydWN0
dXJlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGE0MTUw
NzUxYTdmYTUwMTJiZGQ3NjNmMTA1YWM3ODAxNmE0NTM3MDMuLjgyY2UzNTRkYzY0YmZhNTgyZDhm
ZTM5MmYzMGU3YzMxZTA2ZmM5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC02NTEsNiAr
NjUxLDExIEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNl
IHsKICAgICAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgogICAgICAgICBjYXNlIFB1dEJ5T2Zmc2V0
OgogICAgICAgICBjYXNlIE11bHRpUHV0QnlPZmZzZXQ6CisgICAgICAgIGNhc2UgUHV0R2V0dGVy
QnlJZDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dEFjY2Vz
c29yc0J5SWQ6CisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0
U2V0dGVyQnlWYWw6CiAgICAgICAgIGNhc2UgREZHOjpKdW1wOgogICAgICAgICBjYXNlIEJyYW5j
aDoKICAgICAgICAgY2FzZSBTd2l0Y2g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCmluZGV4IDllMzU4MGVjNDQ0NWJiZDZhZGZiYzllNWUwOGI4MzY3NmNk
NTM0ODIuLjIyMTM5NmYzNTdiNjhlYWI4NGI1NjBmZGE5YjlkOTJiOThjMjgxODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0xODgsNiArMTg4
LDExIEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgY2FzZSBQdXRCeUlk
Rmx1c2g6CiAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgorICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoK
KyAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOgorICAg
IGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKICAgICBjYXNl
IENoZWNrU3RydWN0dXJlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNlIEdldEJ1
dHRlcmZseToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKaW5kZXggMjMxYWI5N2QwY2YxN2Y2NGU2YjVjODA1OTk3ODRjNzA2OTAzNzU5Yi4uOGYy
MWM5M2M2ZmQzMTFkYzdjYWMzM2JlZjkwYWFlMjVkMmI1OTRhYSAxMDA3NTUKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTY3MzksNiArNjczOSw2
MSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjp3cml0ZUJhcnJpZXIoR1BSUmVnIG93bmVyR1BSLCBH
UFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdAogICAgIG93bmVySXNSZW1lbWJlcmVkT3JJbkVk
ZW4ubGluaygmbV9qaXQpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNj
ZXNzb3JCeUlkKE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYWNjZXNzb3Io
dGhpcywgbm9kZS0+Y2hpbGQyKCkpOworCisgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICBjYWxs
T3BlcmF0aW9uKG5vZGUtPm9wKCkgPT0gUHV0R2V0dGVyQnlJZCA/IG9wZXJhdGlvblB1dEdldHRl
ckJ5SWQgOiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRl
bnRpZmllclVJRChub2RlLT5pZGVudGlmaWVyTnVtYmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJp
YnV0ZXMoKSwgYWNjZXNzb3IuZ3ByKCkpOworICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisK
KyAgICBub1Jlc3VsdChub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1
dEFjY2Vzc29yc0J5SWQoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBi
YXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCBnZXR0ZXIodGhp
cywgbm9kZS0+Y2hpbGQyKCkpOworICAgIEpTVmFsdWVPcGVyYW5kIHNldHRlcih0aGlzLCBub2Rl
LT5jaGlsZDMoKSk7CisKKyAgICBmbHVzaFJlZ2lzdGVycygpOworI2lmIFVTRShKU1ZBTFVFNjQp
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIE5vUmVzdWx0LCBi
YXNlLmdwcigpLCBpZGVudGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1iZXIoKSksIG5vZGUt
PmFjY2Vzc29yQXR0cmlidXRlcygpLCBnZXR0ZXIuZ3ByKCksIHNldHRlci5ncHIoKSk7CisjZWxz
ZQorICAgIC8vIFRoZXNlIEpTVmFsdWVzIG1heSBiZSBKU1VuZGVmaW5lZCBPUiBKU0Z1bmN0aW9u
Ki4KKyAgICAvLyBBdCB0aGF0IHRpbWUsCisgICAgLy8gMS4gSWYgdGhlIEpTVmFsdWUgaXMgSlNV
bmRlZmluZWQsIGl0cyBwYXlsb2FkIGJlY29tZXMgbnVsbHB0ci4KKyAgICAvLyAyLiBJZiB0aGUg
SlNWYWx1ZSBpcyBKU0Z1bmN0aW9uKiwgaXRzIHBheWxvYWQgYmVjb21lcyBKU0Z1bmN0aW9uKi4K
KyAgICAvLyBTbyBleHRyYWN0IHBheWxvYWQgYW5kIHBhc3MgaXQgdG8gb3BlcmF0aW9uUHV0R2V0
dGVyU2V0dGVyLiBUaGlzIGhhY2sgaXMgdXNlZCBhcyB0aGUgc2FtZSB3YXkgaW4gYmFzZWxpbmUg
SklULgorICAgIEpTVmFsdWVSZWdzIGdldHRlclJlZ3MgPSBnZXR0ZXIuanNWYWx1ZVJlZ3MoKTsK
KyAgICBKU1ZhbHVlUmVncyBzZXR0ZXJSZWdzID0gc2V0dGVyLmpzVmFsdWVSZWdzKCk7CisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIE5vUmVzdWx0LCBiYXNlLmdw
cigpLCBpZGVudGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1iZXIoKSksIG5vZGUtPmFjY2Vz
c29yQXR0cmlidXRlcygpLCBnZXR0ZXJSZWdzLnBheWxvYWRHUFIoKSwgc2V0dGVyUmVncy5wYXls
b2FkR1BSKCkpOworI2VuZGlmCisgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKworICAgIG5v
UmVzdWx0KG5vZGUpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNz
b3JCeVZhbChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhp
cywgbm9kZS0+Y2hpbGQxKCkpOworICAgIEpTVmFsdWVPcGVyYW5kIHN1YnNjcmlwdCh0aGlzLCBu
b2RlLT5jaGlsZDIoKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYWNjZXNzb3IodGhpcywg
bm9kZS0+Y2hpbGQzKCkpOworCisgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICBhdXRvIG9wZXJh
dGlvbiA9IG5vZGUtPm9wKCkgPT0gUHV0R2V0dGVyQnlWYWwgPyBvcGVyYXRpb25QdXRHZXR0ZXJC
eVZhbCA6IG9wZXJhdGlvblB1dFNldHRlckJ5VmFsOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIE5vUmVzdWx0LCBiYXNlLmdwcigpLCBzdWJzY3JpcHQu
Z3ByKCksIG5vZGUtPmFjY2Vzc29yQXR0cmlidXRlcygpLCBhY2Nlc3Nvci5ncHIoKSk7CisjZWxz
ZQorICAgIEpTVmFsdWVSZWdzIHN1YnNjcmlwdFJlZ3MgPSBzdWJzY3JpcHQuanNWYWx1ZVJlZ3Mo
KTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgTm9SZXN1bHQsIGJhc2UuZ3ByKCksIHN1
YnNjcmlwdFJlZ3MudGFnR1BSKCksIHN1YnNjcmlwdFJlZ3MucGF5bG9hZEdQUigpLCBub2RlLT5h
Y2Nlc3NvckF0dHJpYnV0ZXMoKSwgYWNjZXNzb3IuZ3ByKCkpOworI2VuZGlmCisgICAgbV9qaXQu
ZXhjZXB0aW9uQ2hlY2soKTsKKworICAgIG5vUmVzdWx0KG5vZGUpOworfQorCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDQ1ODhiNWNmZDkyNDFjMmYyNzFhNDA1ZjcwMzViZjc3
OTAzYWMwNzYuLjEzMWI0OWQ2Mjg0YjExYzA1ZjgyYTI5NDk3YTcyMDZiZjEyMWU3ZDggMTAwNzU1
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTExNTUs
MzUgKzExNTUsMTYgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgICAgICByZXR1cm4gYXBw
ZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAgICAgfQogCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlPgotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oRnVuY3Rpb25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcpCi0gICAgewotICAgICAg
ICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24pOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTE+Ci0gICAgSklUQ29t
cGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0aW9uLCBOb1Jlc3Vs
dFRhZywgQXJndW1lbnRUeXBlMSBhcmcxKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uLCBhcmcxKTsKLSAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVu
Y3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUy
PgotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBlIG9wZXJh
dGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSwgQXJndW1lbnRUeXBlMiBhcmcy
KQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJ
WkMgb3BlcmF0aW9uLCBHUFJSZWcgcmVnT3AxLCBVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRPcDIs
IGludDMyX3Qgb3AzLCBHUFJSZWcgcmVnT3A0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uLCBhcmcxLCBhcmcyKTsKLSAgICB9Ci0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1
bWVudFR5cGUyLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUzPgotICAgIEpJVENvbXBpbGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3Vt
ZW50VHlwZTEgYXJnMSwgQXJndW1lbnRUeXBlMiBhcmcyLCBBcmd1bWVudFR5cGUzIGFyZzMpCi0g
ICAgewotICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIGFyZzEsIGFyZzIs
IGFyZzMpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVu
YW1lIEFyZ3VtZW50VHlwZTEsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTIsIHR5cGVuYW1lIEFyZ3Vt
ZW50VHlwZTMsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTQ+Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0aW9uLCBOb1Jlc3VsdFRhZywgQXJndW1l
bnRUeXBlMSBhcmcxLCBBcmd1bWVudFR5cGUyIGFyZzIsIEFyZ3VtZW50VHlwZTMgYXJnMywgQXJn
dW1lbnRUeXBlNCBhcmc0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KTsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0
ZWRJbW0zMihvcDMpLCByZWdPcDQpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRp
b24pOwogICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1l
IEFyZ3VtZW50VHlwZTEsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTIsIHR5cGVuYW1lIEFyZ3VtZW50
VHlwZTMsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTQsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTU+Ci0g
ICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0aW9u
LCBOb1Jlc3VsdFRhZywgQXJndW1lbnRUeXBlMSBhcmcxLCBBcmd1bWVudFR5cGUyIGFyZzIsIEFy
Z3VtZW50VHlwZTMgYXJnMywgQXJndW1lbnRUeXBlNCBhcmc0LCBBcmd1bWVudFR5cGU1IGFyZzUp
CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lLi4uIEFyZ3M+
CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0
aW9uLCBOb1Jlc3VsdFRhZywgQXJncy4uLiBhcmdzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1KTsKKyAg
ICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBhcmdzLi4uKTsKICAgICB9CiAK
ICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKERfSklUT3BlcmF0aW9uX1paIG9w
ZXJhdGlvbiwgRlBSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQpAQCAtMTUz
NCw2ICsxNTE1LDE2IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICAgICAgbV9qaXQuc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihhcmcxKSwgYXJnMiwgVHJ1c3Rl
ZEltbTMyKGFyZzMpLCBhcmc0LCBUcnVzdGVkSW1tMzIoYXJnNSkpOwogICAgICAgICByZXR1cm4g
YXBwZW5kQ2FsbChvcGVyYXRpb24pOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSlpDIG9wZXJhdGlvbiwgR1BSUmVnIHJlZ09wMSwg
R1BSUmVnIHJlZ09wMiwgaW50MzJfdCBvcDMsIEdQUlJlZyByZWdPcDQpCisgICAgeworICAgICAg
ICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIsIFRydXN0
ZWRJbW0zMihvcDMpLCByZWdPcDQpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRp
b24pOworICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3Bl
cmF0aW9uX0VDSVpKSiBvcGVyYXRpb24sIEdQUlJlZyByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBs
KiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIEdQUlJlZyByZWdPcDQsIEdQUlJlZyByZWdPcDUpCisg
ICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBU
cnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCwgcmVnT3A1
KTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyAgICB9CiAjZWxzZSAv
LyBVU0UoSlNWQUxVRTMyXzY0KQogCiAvLyBFbmNvZGVkSlNWYWx1ZSBpbiBKU1ZBTFVFMzJfNjQg
aXMgYSA2NC1iaXQgaW50ZWdlci4gV2hlbiBiZWluZyBjb21waWxlZCBpbiBBUk0gRUFCSSwgaXQg
bXVzdCBiZSBhbGlnbmVkIGV2ZW4tbnVtYmVyZWQgcmVnaXN0ZXIgKHIwLCByMiBvciBbc3BdKS4K
QEAgLTE4NTUsNiArMTg0NiwxNiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgICAgIG1f
aml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIoYXJnMSksIGFyZzJQ
YXlsb2FkLCBhcmcyVGFnLCBUcnVzdGVkSW1tMzIoYXJnMyksIGFyZzQsIFRydXN0ZWRJbW0zMihh
cmc1KSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAgICAgfQorICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMgb3Bl
cmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCwg
aW50MzJfdCBhcmczLCBHUFJSZWcgYXJnNCkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZElt
bTMyKGFyZzMpLCBhcmc0KTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsK
KyAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FQ0laQ0Mgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50
T3AyLCBpbnQzMl90IG9wMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1KQorICAgIHsKKyAgICAg
ICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIo
aWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgYXJnNCwgYXJnNSk7CisgICAgICAgIHJldHVy
biBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CisgICAgfQogI3VuZGVmIEVBQklfMzJCSVRfRFVNTVlf
QVJHCiAjdW5kZWYgU0g0XzMyQklUX0RVTU1ZX0FSRwogICAgIApAQCAtMjI0Myw2ICsyMjQ0LDkg
QEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgY29tcGlsZVR5cGVPZihOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlQ2hlY2tTdHJ1Y3R1cmUoTm9kZSosIEdQUlJlZyBjZWxsR1BSLCBH
UFJSZWcgdGVtcEdQUik7CiAgICAgdm9pZCBjb21waWxlQ2hlY2tTdHJ1Y3R1cmUoTm9kZSopOwor
ICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29yQnlJZChOb2RlKik7CisgICAgdm9pZCBjb21waWxl
UHV0QWNjZXNzb3JzQnlJZChOb2RlKik7CisgICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JCeVZh
bChOb2RlKik7CiAgICAgCiAgICAgdm9pZCBtb3ZlVHJ1ZVRvKEdQUlJlZyk7CiAgICAgdm9pZCBt
b3ZlRmFsc2VUbyhHUFJSZWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggYTQ0MTU3YmJiNzhlMmNjN2RhNzA3OTcy
YWY4NmFmZGM4MmRkZTA4Ny4uOGJmYjdiN2Y0ZjBlZDMzMzg0M2IyNGFmZDRjZGUzYjM2ZGM5ODI2
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCkBAIC00MTcwLDYgKzQxNzAsMjMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFB1
dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOiB7CisgICAgICAgIGNvbXBpbGVQ
dXRBY2Nlc3NvckJ5SWQobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2Ug
UHV0QWNjZXNzb3JzQnlJZDogeworICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JzQnlJZChub2Rl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAg
ICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFs
KG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIEdldEdsb2JhbExleGlj
YWxWYXJpYWJsZToKICAgICBjYXNlIEdldEdsb2JhbFZhcjogewogICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0UGF5bG9hZCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGNiMDgwNmNkZDVhNmEyNzMwYzBkMzEyNjEw
ZjBkNzMxMmQ4MjFmOWUuLmQ4ZTJkMWI1NTA0NGZiOWEzNDQ3NTlmYzc0Yzk2NGZhYmZlYWY2MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcApAQCAtNDE2NCw2ICs0MTY0LDIzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBQdXRHZXR0ZXJC
eUlkOgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDogeworICAgICAgICBjb21waWxlUHV0QWNjZXNz
b3JCeUlkKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIFB1dEFjY2Vz
c29yc0J5SWQ6IHsKKyAgICAgICAgY29tcGlsZVB1dEFjY2Vzc29yc0J5SWQobm9kZSk7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgY2FzZSBQ
dXRTZXR0ZXJCeVZhbDogeworICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JCeVZhbChub2RlKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBHZXRHbG9iYWxMZXhpY2FsVmFyaWFi
bGU6CiAgICAgY2FzZSBHZXRHbG9iYWxWYXI6IHsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3Vs
dCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RvcmVC
YXJyaWVySW5zZXJ0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
dG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAKaW5kZXggZDczNmVmZWJiYWM3ZTM4MWIwOTkw
NzUwM2ExNjE3OWEzNWQ5OTFhNy4uNTkwZGE3MmE4Yzk0M2U3MzFjMDdjNWQyZWJiNWRhZjk5Mjdj
NWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJp
ZXJJbnNlcnRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
dG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAKQEAgLTI3Miw2ICsyNzIsMTUgQEAgY2xhc3Mg
U3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBjYXNlIFB1dEdldHRlckJ5
SWQ6CisgICAgICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgICAgICAgICBjYXNlIFB1
dEFjY2Vzc29yc0J5SWQ6CisgICAgICAgICAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgICAg
ICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDogeworICAgICAgICAgICAgICAgIGNvbnNpZGVyQmFy
cmllcihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKwogICAgICAgICAgICAgY2FzZSBQdXRCeU9mZnNldDogewogICAgICAgICAgICAgICAg
IGNvbnNpZGVyQmFycmllcihtX25vZGUtPmNoaWxkMigpLCBtX25vZGUtPmNoaWxkMygpKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcAppbmRleCA1MzdmOGY2NWE1MWEzMzMxZDI1MjAyNTY2MTBhZDRmMWYyMWI5
NGU5Li4xZjRjODY0NjY4YWU1MTc2NzhhZDVkYzgyNmQ4NTdlNzg3YTUyNDliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0yMDMsNiArMjAz
LDExIEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAg
IGNhc2UgRm9yd2FyZFZhcmFyZ3M6CiAgICAgY2FzZSBTd2l0Y2g6CiAgICAgY2FzZSBUeXBlT2Y6
CisgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICBj
YXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNl
IFB1dFNldHRlckJ5VmFsOgogICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQXJpdGhTdWI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCmluZGV4IDQzZGRmYzM5NDNjNDU3MzQ3OWFjNjY3MDY4
MWU3OTIxMjcyMzUxYWEuLjhlMzM1MjJhNWM3OTdmNDRhODYyNmFjNTQ2MGVhMTc2NzgxYzI1M2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3Np
dG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3Np
dG9yeS5oCkBAIC0xMTgsNiArMTE4LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwg
ewogICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0osIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50
NjQpKSBcCiAgICAgbWFjcm8oVl9KSVRPcGVyYXRpb25fWiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBl
LCBpbnQzMikpIFwKICAgICBtYWNybyhWX0pJVE9wZXJhdGlvbl9FLCBmdW5jdGlvblR5cGUodm9p
ZFR5cGUsIGludFB0cikpIFwKKyAgICBtYWNybyhWX0pJVE9wZXJhdGlvbl9FQ0laQywgZnVuY3Rp
b25UeXBlKHZvaWRUeXBlLCBpbnRQdHIsIGludFB0ciwgaW50UHRyLCBpbnQzMiwgaW50UHRyKSkg
XAorICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0VDSVpKSiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBl
LCBpbnRQdHIsIGludFB0ciwgaW50UHRyLCBpbnQzMiwgaW50NjQsIGludDY0KSkgXAorICAgIG1h
Y3JvKFZfSklUT3BlcmF0aW9uX0VDSlpDLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0ciwg
aW50UHRyLCBpbnQ2NCwgaW50MzIsIGludFB0cikpIFwKICAgICBtYWNybyhaX0pJVE9wZXJhdGlv
bl9ELCBmdW5jdGlvblR5cGUoaW50MzIsIGRvdWJsZVR5cGUpKSBcCiAgICAgbWFjcm8oWl9KSVRP
cGVyYXRpb25fRUMsIGZ1bmN0aW9uVHlwZShpbnQzMiwgaW50UHRyLCBpbnRQdHIpKSBcCiAgICAg
bWFjcm8oWl9KSVRPcGVyYXRpb25fRUdDLCBmdW5jdGlvblR5cGUoaW50MzIsIGludFB0ciwgaW50
UHRyLCBpbnRQdHIpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0xMVk0uY3BwCmluZGV4IGI5YTZjOTg3YmZhNmRjYmRiNWUyYzVlOWMzYmVlZWEyMDhmZWQ2
ZGMuLjRkMzk2NDU3NGY4ZmFmOTdiODM1NTk2MjhiMDczZGE3MjBlYmYyM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC01NjMsNiAr
NTYzLDE3IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBQdXRCeUlkRGly
ZWN0OgogICAgICAgICAgICAgY29tcGlsZVB1dEJ5SWQoKTsKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoK
KyAgICAgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQoKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgICAgICAgICBjb21waWxlUHV0
QWNjZXNzb3JzQnlJZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHV0R2V0
dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CisgICAgICAgICAgICBjb21w
aWxlUHV0QWNjZXNzb3JCeVZhbCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
R2V0QnV0dGVyZmx5OgogICAgICAgICAgICAgY29tcGlsZUdldEJ1dHRlcmZseSgpOwogICAgICAg
ICAgICAgYnJlYWs7CkBAIC0zMDAwLDYgKzMwMTEsMzggQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0g
ewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisKKyAgICB2b2lkIGNvbXBp
bGVQdXRBY2Nlc3NvckJ5SWQoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxs
KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgYWNjZXNzb3IgPSBsb3dDZWxsKG1f
bm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBhdXRvIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmllcnMo
KVttX25vZGUtPmlkZW50aWZpZXJOdW1iZXIoKV07CisgICAgICAgIHZtQ2FsbCgKKyAgICAgICAg
ICAgIG1fb3V0Lm9wZXJhdGlvbihtX25vZGUtPm9wKCkgPT0gUHV0R2V0dGVyQnlJZCA/IG9wZXJh
dGlvblB1dEdldHRlckJ5SWQgOiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKSwKKyAgICAgICAgICAg
IG1fY2FsbEZyYW1lLCBiYXNlLCBtX291dC5jb25zdEludFB0cih1aWQpLCBtX291dC5jb25zdElu
dDMyKG1fbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCkpLCBhY2Nlc3Nvcik7CisgICAgfQorCisg
ICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JzQnlJZCgpCisgICAgeworICAgICAgICBMVmFsdWUg
YmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBnZXR0ZXIg
PSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBMVmFsdWUgc2V0dGVyID0g
bG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgYXV0byB1aWQgPSBtX2dyYXBo
LmlkZW50aWZpZXJzKClbbV9ub2RlLT5pZGVudGlmaWVyTnVtYmVyKCldOworICAgICAgICB2bUNh
bGwoCisgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVy
KSwKKyAgICAgICAgICAgIG1fY2FsbEZyYW1lLCBiYXNlLCBtX291dC5jb25zdEludFB0cih1aWQp
LCBtX291dC5jb25zdEludDMyKG1fbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCkpLCBnZXR0ZXIs
IHNldHRlcik7CisKKyAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKCkK
KyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgTFZhbHVlIHN1YnNjcmlwdCA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSk7
CisgICAgICAgIExWYWx1ZSBhY2Nlc3NvciA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDMoKSk7Cisg
ICAgICAgIHZtQ2FsbCgKKyAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihtX25vZGUtPm9wKCkg
PT0gUHV0R2V0dGVyQnlWYWwgPyBvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbCA6IG9wZXJhdGlvblB1
dFNldHRlckJ5VmFsKSwKKyAgICAgICAgICAgIG1fY2FsbEZyYW1lLCBiYXNlLCBzdWJzY3JpcHQs
IG1fb3V0LmNvbnN0SW50MzIobV9ub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSksIGFjY2Vzc29y
KTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlQXJyYXlQdXNoKCkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaAppbmRleCA5MjBkYWUyMmNmOWU2YzMzYWE2ZGNhZmU4Y2ZmMWVhMjBl
NWQxYTFkLi40MTBhOGNiYmE0Y2NjYzFlNGQ2MWRkMmQ4ODNjNGYwM2I2Njk0N2VhIDEwMDc1NQot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKQEAgLTc2Miw5ICs3NjIsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRUMsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7Ci0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RUNJWkMsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBpbnQzMl90LCBSZWdpc3RlcklE
KTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FQ0laQ0MsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBpbnQzMl90LCBSZWdp
c3RlcklELCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQywgUmVnaXN0ZXJJRCwgVW5pcXVlZFN0cmluZ0lt
cGwqLCBpbnQzMl90LCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0MsIFJlZ2lzdGVySUQsIFVuaXF1ZWRT
dHJpbmdJbXBsKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FQ0paQywgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgaW50MzJfdCwgUmVnaXN0
ZXJJRCk7CisjZWxzZQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VDSlpDLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklE
LCBpbnQzMl90LCBSZWdpc3RlcklEKTsKKyNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VFLCBSZWdpc3RlcklEKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FWlN5
bXRhYkosIGludCwgU3ltYm9sVGFibGUqLCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FWlN5bXRhYkosIGludCwg
U3ltYm9sVGFibGUqLCBSZWdpc3RlcklEKTsKQEAgLTc3NSwxMiArNzc5LDEwIEBAIG5hbWVzcGFj
ZSBKU0MgewogI2Vsc2UKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQpOwogI2VuZGlmCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRUpJZFpKLCBSZWdpc3RlcklELCBjb25zdCBJZGVudGlmaWVyKiwgaW50
MzJfdCwgUmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRlbnRpZmll
ciosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSlpKLCBSZWdpc3RlcklE
LCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKICNpZiBVU0UoSlNWQUxVRTY0KQog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZfSklUT3BlcmF0aW9u
X0VGSlpaLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
U3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFVuaXF1
ZWRTdHJpbmdJbXBsKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUNJWkpKLCBSZWdpc3RlcklELCBVbmlxdWVkU3RyaW5nSW1wbCos
IGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogI2Vsc2UKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FU3NpSkpJLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVzLmgKaW5kZXggYTM0YjdhMGM5ZGRmNWVmZjk2NjY0ZTkzNDFjMjZmNDQ5NTY0
MWQ1Ni4uYjVlYTA4MTM0Yjg0NDgyZjk1YTZhNDc4MTY2MGQyMzQxN2M4YTFlMiAxMDA3NTUKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKQEAgLTQwNiw2ICs0MDYsMTEgQEAgQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZy
YW1lUm9sbGJhY2tPbkV4Y2UKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhDYWxsRnJhbWVSb2xs
YmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDIG9wZXJh
dGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50
MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3Az
KSwgcmVnT3A0KTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVy
YXRpb24pOworfQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKWlogb3BlcmF0
aW9uLCBHUFJSZWcgYXJnMSwgaW50MzJfdCBhcmcyLCBpbnQzMl90IGFyZzMpCkBAIC01NDEsMTkg
KzU0NiwxMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpbwogICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSiBv
cGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudE9wMiwg
aW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQotewotICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIo
b3AzKSwgcmVnT3A0KTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhv
cGVyYXRpb24pOwotfQotCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkpKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJ
RCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0
ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkpKIG9wZXJh
dGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50
MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0LCBSZWdpc3RlcklEIHJlZ09wNSkKIHsKICAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3Ay
KSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCwgcmVnT3A1KTsKICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpa
SiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMiwgaW50MzJf
dCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMgb3BlcmF0aW9uLCBS
ZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3Rl
cklEIHJlZ09wNCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBy
ZWdPcDIsIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQpOwogICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CkBAIC02NzUsMTMgKzY3NCw3IEBAIEFMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNfSklUT3Bl
cmF0aW9uX0VKSiBvcGVyYXRpCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkMgb3BlcmF0aW9uLCBSZWdpc3Rl
cklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdp
c3RlcklEIHJlZ09wNCkKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3Ax
LCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7Ci0g
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKLX0KLQot
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9K
SVRPcGVyYXRpb25fRUNJWkNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIGNvbnN0IElk
ZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lz
dGVySUQgcmVnT3A1KQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCBy
ZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVy
SUQgcmVnT3A0LCBSZWdpc3RlcklEIHJlZ09wNSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9w
MyksIHJlZ09wNCwgcmVnT3A1KTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25D
aGVjayhvcGVyYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKaW5kZXggMmI1MzBmNWY3OGM5ZjRmNzQ5ZGViYjA0NzhkYjE2ZjEyOGIyODcxYS4uMWY4
NGQ2NjMzMmFhMmZjZDAwNTRhZmVjODgyMDRhN2ZjMjgzYmIwZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xMzUzLDEwOSArMTM1Myw3OCBAQCBz
dGF0aWMgdm9pZCBwdXRBY2Nlc3NvckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJh
c2UsIEpTVmFsdWUgc3Vic2NyaXB0LAogICAgICAgICBiYXNlLT5wdXRTZXR0ZXIoZXhlYywgcHJv
cGVydHlLZXksIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCi0jaWYgVVNFKEpTVkFMVUU2NCkK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVyKiBpZGVudGlm
aWVyLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSkK
K3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhl
YywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3Qgb3B0aW9u
cywgSlNDZWxsKiBnZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKLSAgICBBU1NFUlQoSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7Ci0gICAgSlNPYmplY3Qq
IGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZhbHVlKSk7
CisgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOworICAgIEpTT2JqZWN0
KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAotICAgIEpTVmFsdWUgZ2V0dGVyID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRHZXR0ZXJWYWx1ZSk7Ci0gICAgQVNTRVJUKGdldHRlci5p
c09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIsIGFz
T2JqZWN0KGdldHRlciksIG9wdGlvbnMpOworICAgIEFTU0VSVChnZXR0ZXItPmlzT2JqZWN0KCkp
OworICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCB1aWQsIGdldHRlciwgb3B0aW9ucyk7CiB9
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVyKiBpZGVu
dGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1
ZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSog
ZXhlYywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3Qgb3B0
aW9ucywgSlNDZWxsKiBzZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKLSAgICBBU1NFUlQoSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7Ci0gICAgSlNPYmpl
Y3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZhbHVl
KSk7CisgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOworICAgIEpTT2Jq
ZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAotICAgIEpTVmFsdWUgc2V0dGVy
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7Ci0gICAgQVNTRVJUKHNldHRl
ci5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIs
IGFzT2JqZWN0KHNldHRlciksIG9wdGlvbnMpOworICAgIEFTU0VSVChzZXR0ZXItPmlzT2JqZWN0
KCkpOworICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVjLCB1aWQsIHNldHRlciwgb3B0aW9ucyk7
CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZpZXIq
IGlkZW50aWZpZXIsIGludDMyX3QgYXR0cmlidXRlLAotICAgIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNldHRlclZhbHVlKQordm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlND
ZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJp
YnV0ZSwgSlNDZWxsKiBnZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKLSAgICBBU1NFUlQoSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7Ci0gICAgSlNPYmpl
Y3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZhbHVl
KSk7Ci0KLSAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUo
dm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0KLSAgICBKU1ZhbHVlIGdldHRlciA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkR2V0dGVyVmFsdWUpOwotICAgIEpTVmFsdWUgc2V0dGVy
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7Ci0gICAgQVNTRVJUKGdldHRl
ci5pc09iamVjdCgpIHx8IGdldHRlci5pc1VuZGVmaW5lZCgpKTsKLSAgICBBU1NFUlQoc2V0dGVy
LmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzVW5kZWZpbmVkKCkpOwotICAgIEFTU0VSVChnZXR0ZXIu
aXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNPYmplY3QoKSk7Ci0KLSAgICBpZiAoIWdldHRlci5pc1Vu
ZGVmaW5lZCgpKQotICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCksIGFzT2JqZWN0KGdldHRlcikpOwotICAgIGlmICghc2V0dGVyLmlzVW5k
ZWZpbmVkKCkpCi0gICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgYXNPYmplY3Qoc2V0dGVyKSk7Ci0gICAgYmFzZU9iai0+cHV0RGlyZWN0
QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOworICAgIHB1
dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIpLCBBY2Nlc3NvclR5cGU6
OkdldHRlcik7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeVZh
bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEdldHRlcikKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZh
bChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogc2V0dGVyKQogewogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4
ZWMpOwotICAgIEpTT2JqZWN0KiBiYXNlID0gYXNPYmplY3QoSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRCYXNlKSk7Ci0gICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFN1YnNjcmlwdCk7Ci0gICAgSlNPYmplY3QqIGdldHRlciA9IGFzT2JqZWN0KEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkR2V0dGVyKSk7Ci0gICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBiYXNlLCBz
dWJzY3JpcHQsIGF0dHJpYnV0ZSwgZ2V0dGVyLCBBY2Nlc3NvclR5cGU6OkdldHRlcik7Ci19CiAK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNldHRlcikK
LXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIoJnZtLCBleGVjKTsKLSAgICBKU09iamVjdCogYmFzZSA9IGFzT2JqZWN0KEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkQmFzZSkpOwotICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwotICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBhc09iamVj
dChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNldHRlcikpOwotICAgIHB1dEFjY2Vzc29yQnlWYWwo
ZXhlYywgYmFzZSwgc3Vic2NyaXB0LCBhdHRyaWJ1dGUsIHNldHRlciwgQWNjZXNzb3JUeXBlOjpT
ZXR0ZXIpOworICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChzZXR0ZXIp
LCBBY2Nlc3NvclR5cGU6OlNldHRlcik7CiB9CiAKLSNlbHNlCi12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJ
ZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCogZ2V0dGVyKQor
I2lmIFVTRShKU1ZBTFVFNjQpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVy
U2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBs
KiB1aWQsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVyVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsK
IAogICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09iamVjdCgpKTsKLSAgICBKU09iamVj
dCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7CisgICAgSlNPYmplY3QqIGJhc2VPYmog
PSBhc09iamVjdChvYmplY3QpOwogCi0gICAgQVNTRVJUKGdldHRlci0+aXNPYmplY3QoKSk7Ci0g
ICAgYmFzZU9iai0+cHV0R2V0dGVyKGV4ZWMsICppZGVudGlmaWVyLCBnZXR0ZXIsIG9wdGlvbnMp
OwotfQotCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3Rh
dGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90
IG9wdGlvbnMsIEpTQ2VsbCogc2V0dGVyKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0g
ICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOworICAgIEdldHRlclNl
dHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKTsKIAotICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09iamVjdCgp
KTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7CisgICAgSlNW
YWx1ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEdldHRlclZhbHVlKTsKKyAgICBK
U1ZhbHVlIHNldHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU2V0dGVyVmFsdWUpOworICAg
IEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBnZXR0ZXIuaXNVbmRlZmluZWQoKSk7CisgICAg
QVNTRVJUKHNldHRlci5pc09iamVjdCgpIHx8IHNldHRlci5pc1VuZGVmaW5lZCgpKTsKKyAgICBB
U1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzT2JqZWN0KCkpOwogCi0gICAgQVNT
RVJUKHNldHRlci0+aXNPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0U2V0dGVyKGV4ZWMsICpp
ZGVudGlmaWVyLCBzZXR0ZXIsIG9wdGlvbnMpOworICAgIGlmICghZ2V0dGVyLmlzVW5kZWZpbmVk
KCkpCisgICAgICAgIGFjY2Vzc29yLT5zZXRHZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSwgYXNPYmplY3QoZ2V0dGVyKSk7CisgICAgaWYgKCFzZXR0ZXIuaXNVbmRlZmluZWQo
KSkKKyAgICAgICAgYWNjZXNzb3ItPnNldFNldHRlcih2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpLCBhc09iamVjdChzZXR0ZXIpKTsKKyAgICBiYXNlT2JqLT5wdXREaXJlY3RBY2Nlc3Nv
cihleGVjLCB1aWQsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmpl
Y3QsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdl
dHRlciwgSlNDZWxsKiBzZXR0ZXIpCisjZWxzZQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVk
U3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIsIEpTQ2Vs
bCogc2V0dGVyKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCiAgICAgQVNTRVJUKG9iamVjdCAmJiBvYmpl
Y3QtPmlzT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmpl
Y3QoKTsKKyAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KG9iamVjdCk7CiAKICAgICBH
ZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSk7CiAKQEAgLTE0NjcsMjUgKzE0MzYsOCBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxs
KiBvYmplY3QsIElkZQogICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCksIGdldHRlci0+Z2V0T2JqZWN0KCkpOwogICAgIGlmIChzZXR0ZXIp
CiAgICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKSwgc2V0dGVyLT5nZXRPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0RGlyZWN0QWNjZXNz
b3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwotfQotCi12b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0Nl
bGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmli
dXRlLCBKU0NlbGwqIGdldHRlcikKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIE5h
dGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLQotICAgIHB1dEFjY2Vzc29y
QnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2Ny
aXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIpLCBBY2Nlc3NvclR5cGU6OkdldHRlcik7
CisgICAgYmFzZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgdWlkLCBhY2Nlc3NvciwgYXR0
cmlidXRlKTsKIH0KLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5VmFs
KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIpCi17Ci0gICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhl
Yyk7Ci0KLSAgICBwdXRBY2Nlc3NvckJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2UpLCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCksIGF0dHJpYnV0ZSwgYXNPYmplY3Qoc2V0dGVyKSwg
QWNjZXNzb3JUeXBlOjpTZXR0ZXIpOwotfQotCiAjZW5kaWYKIAogdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblBvcFNjb3BlKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBzY29wZVJlZykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggYWFjYTM1YTIxZDA5
N2E2NmI0ODFmYTUyMDVjNjg1MTMyMzNjZDU2Yi4uZjZjNTdmM2QxY2I3ZTQ1NjIyNjM2MmE5MmEw
ZmQwOTk0MDU5OWQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmgKQEAgLTE4OSw4ICsxODksOSBAQCB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklU
T3BlcmF0aW9uX0VDKShFeGVjU3RhdGUqLCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BF
UkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNiKShFeGVjU3RhdGUqLCBDb2RlQmxvY2sqKTsKIHR5
cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNDKShFeGVjU3RhdGUq
LCBKU0NlbGwqLCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRP
cGVyYXRpb25fRUNJY2YpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElubGluZUNhbGxGcmFtZSopOwot
dHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0laQykoRXhlY1N0
YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIGludDMyX3QsIEpTQ2VsbCopOwotdHlwZWRlZiB2
b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0laQ0MpKEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIElkZW50aWZpZXIqLCBpbnQzMl90LCBKU0NlbGwqLCBKU0NlbGwqKTsKK3R5cGVkZWYg
dm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJWkMpKEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCwgSlNDZWxsKik7Cit0eXBlZGVmIHZv
aWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDQykoRXhlY1N0YXRlKiwgSlND
ZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBKU0NlbGwqLCBKU0NlbGwqKTsKK3R5
cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJWkpKKShFeGVjU3Rh
dGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3Bl
cmF0aW9uX0VDSlpDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJf
dCwgSlNDZWxsKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9u
X0VDQ0ljZikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKiwgSW5saW5lQ2FsbEZyYW1lKik7
CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSkopKEV4ZWNT
dGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CkBAIC0yMDAs
OSArMjAxLDYgQEAgdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9F
Q0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVS
QVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FWlN5bXRhYkopKEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5
bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRl
ZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkNJKShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKLXR5cGVkZWYgdm9p
ZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpJZFpKKShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlKTsKLXR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpJZFpKSikoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUpOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJh
dGlvbl9FSkpaSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBp
bnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJ
VE9wZXJhdGlvbl9FSkpKQXApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopOwogdHlwZWRlZiB2b2lkIEpJVF9P
UEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpKQnkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwpAQCAtMzEz
LDE4ICszMTEsMTQgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlYnVnKEV4ZWNTdGF0
ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsK
ICNlbmRpZgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SW5kZXgoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlKTsKLSNpZiBVU0UoSlNW
QUxVRTY0KQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMsIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
U2V0dGVyQnlJZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIGludDMy
X3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IElkZW50aWZpZXIqLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0
dGVyQnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBpbnQz
Ml90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSkgV1RG
X0lOVEVSTkFMOwotI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJC
eUlkKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMsIEpT
Q2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0
ZXJCeUlkKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMs
IEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRH
ZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIGludDMyX3QgYXR0
cmlidXRlLCBKU0NlbGwqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3Ry
aW5nSW1wbCosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwordm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwg
VW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5B
TDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbChFeGVjU3RhdGUq
LCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCopIFdU
Rl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChF
eGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGUsIEpT
Q2VsbCopIFdURl9JTlRFUk5BTDsKKyNpZiBVU0UoSlNWQUxVRTY0KQordm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVk
U3RyaW5nSW1wbCosIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKKyNlbHNlCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwg
aW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKICNlbmRp
Zgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hGdW5jdGlvbk5hbWVTY29wZShFeGVj
U3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiwgaW50
MzJfdCkgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzLmNwcAppbmRleCBiMTQ2YjIwOTg3NjhiMmE4ZmM2YTk5MWQ0M2RlYjQ1MTU0
NjRlMjFiLi4zMTc5Zjk4ZTU4MDMwZDYxZjBlYjZjYTE0ZjliMzI0ODZhNDQ0NGI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtNDky
LDcgKzQ5Miw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKICAgICBpbnQzMl90IG9wdGlvbnMg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCwgcmVnVDEpOwotICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgcmVnVDAsICZtX2NvZGVCbG9jay0+aWRl
bnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwgb3B0aW9ucywgcmVnVDEp
OworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgcmVnVDAsIG1fY29k
ZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLmltcGwo
KSwgb3B0aW9ucywgcmVnVDEpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfc2V0dGVyX2J5
X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC01MDAsNyArNTAwLDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZCwgcmVnVDApOwogICAgIGludDMyX3Qgb3B0aW9ucyA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25QdXRTZXR0ZXJCeUlkLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJl
bnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLCBvcHRpb25zLCByZWdUMSk7CisgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCByZWdUMCwgbV9jb2RlQmxvY2stPmlkZW50
aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkuaW1wbCgpLCBvcHRpb25zLCBy
ZWdUMSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC01MDksNyArNTA5LDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICBpbnQzMl90IGF0dHJpYnV0ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7
CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVy
YW5kLCByZWdUMSk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bNV0udS5vcGVyYW5kLCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRH
ZXR0ZXJTZXR0ZXIsIHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZCksIGF0dHJpYnV0ZSwgcmVnVDEsIHJlZ1QyKTsKKyAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVnVDAsIG1fY29kZUJsb2NrLT5p
ZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLmltcGwoKSwgYXR0cmli
dXRlLCByZWdUMSwgcmVnVDIpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX2J5
X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggZDA0Nzdm
ZDE5NDZkMmVkNTAwOGU4N2MxNGVhOGMyOGJmYmJhZjIyNi4uNjg5MmUwOTYwMGQxMWU4NTkzY2Q4
MDhiNWQ2OGFlYTY2ZTJiNGUxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgSklU
OjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKIAogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMSk7CiAgICAgZW1pdExvYWRQYXls
b2FkKGdldHRlciwgcmVnVDMpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVy
QnlJZCwgcmVnVDEsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSksIG9wdGlvbnMs
IHJlZ1QzKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHJlZ1Qx
LCBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSkuaW1wbCgpLCBvcHRpb25zLCByZWdU
Myk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
cHV0X3NldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAg
ZW1pdExvYWRQYXlsb2FkKGJhc2UsIHJlZ1QxKTsKICAgICBlbWl0TG9hZFBheWxvYWQoc2V0dGVy
LCByZWdUMyk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCByZWdU
MSwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKHByb3BlcnR5KSwgb3B0aW9ucywgcmVnVDMpOwor
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgcmVnVDEsIG1fY29kZUJs
b2NrLT5pZGVudGlmaWVyKHByb3BlcnR5KS5pbXBsKCksIG9wdGlvbnMsIHJlZ1QzKTsKIH0KIAog
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2dldHRl
cl9zZXR0ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0TG9hZFBh
eWxvYWQoYmFzZSwgcmVnVDEpOwogICAgIGVtaXRMb2FkUGF5bG9hZChnZXR0ZXIsIHJlZ1QzKTsK
ICAgICBlbWl0TG9hZFBheWxvYWQoc2V0dGVyLCByZWdUNCk7Ci0gICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QxLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIo
cHJvcGVydHkpLCBhdHRyaWJ1dGUsIHJlZ1QzLCByZWdUNCk7CisgICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QxLCBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihw
cm9wZXJ0eSkuaW1wbCgpLCBhdHRyaWJ1dGUsIHJlZ1QzLCByZWdUNCk7CiB9CiAKIHZvaWQgSklU
OjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263495</attachid>
            <date>2015-10-19 11:25:27 -0700</date>
            <delta_ts>2015-10-26 12:42:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148860-20151020032445.patch</filename>
            <type>text/plain</type>
            <size>70369</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZTg1YTZjYzAyMjZhZGNjY2M1ZDE1MGYzOGNlYTMxNDEwODgxYTk0Li40YzY0Y2M5MmRhMDNkOTlj
MWMyNGJlMWIxNTAxMzMwYzFhMmY5ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDcgQEAKKzIwMTUtMTAtMTkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIERGRy9GVEwgc3VwcG9ydCBmb3IgYWNjZXNzb3Ig
cHV0IG9wZXJhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODg2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhY2Nlc3NvciBkZWZpbmluZyBvcHMgaW50byBE
RkcgYW5kIEZUTC4KKyAgICAgICAgVGhlIGZvbGxvd2luZyBERkcgbm9kZXMgYXJlIGludHJvZHVj
ZWQuCisKKyAgICAgICAgICAgIG9wX3B1dF9nZXR0ZXJfYnlfaWQgID0+IFB1dEdldHRlckJ5SWQK
KyAgICAgICAgICAgIG9wX3B1dF9zZXR0ZXJfYnlfaWQgID0+IFB1dFNldHRlckJ5SWQKKyAgICAg
ICAgICAgIG9wX3B1dF9nZXR0ZXJfc2V0dGVyID0+IFB1dEFjY2Vzc29yc0J5SWQKKyAgICAgICAg
ICAgIG9wX3B1dF9nZXR0ZXJfYnlfdmFsID0+IFB1dEdldHRlckJ5VmFsCisgICAgICAgICAgICBv
cF9wdXRfc2V0dGVyX2J5X3ZhbCA9PiBQdXRTZXR0ZXJCeVZhbAorCisgICAgICAgIFRoZXNlIERG
RyBub2RlcyBqdXN0IGNhbGwgb3BlcmF0aW9ucy4gQnV0IGl0IGRvZXMgbm90IHByZXZlbnQgY29t
cGlsaW5nIGluIERGRy9GVEwuCisKKyAgICAgICAgVG8gdXNlIG9wZXJhdGlvbnMgZGVmaW5lZCBm
b3IgYmFzZWxpbmUgSklULCB3ZSBjbGVhbiB1cCBleGlzdGluZyBvcGVyYXRpb25zLgorICAgICAg
ICBBbmQgcmV1c2UgdGhlc2Ugb3BlcmF0aW9ucyBpbiBERkcgYW5kIEZUTC4KKworICAgICAgICAq
IGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6
OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6
CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxp
dGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAg
KiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgor
ICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6
CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZp
eHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpOb2RlOjpoYXNJZGVudGlmaWVyKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjpoYXNBY2Nlc3NvckF0dHJpYnV0ZXMpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmFjY2Vz
c29yQXR0cmlidXRlcyk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICog
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBkZmcv
REZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JzQnlJZCk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTdG9yZUJhcnJp
ZXJJbnNlcnRpb25QaGFzZS5jcHA6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEludHJp
bnNpY1JlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlUHV0QWNjZXNzb3JC
eUlkKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlUHV0
QWNjZXNzb3JzQnlJZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6
Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAg
KiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRpb24pOgor
ICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0
aW9ucy5oOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0
X2dldHRlcl9zZXR0ZXIpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfaWQpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX3NldHRlcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Rm
Zy1wdXQtYWNjZXNzb3JzLWJ5LWlkLWNsYXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJl
KToKKyAgICAgICAgKHRlc3RBdHRyaWJ1dGUpOgorICAgICAgICAoZ2V0dGVyLkNvY29hLnByb3Rv
dHlwZS5nZXQgaGVsbG8pOgorICAgICAgICAoZ2V0dGVyLkNvY29hKToKKyAgICAgICAgKGdldHRl
cik6CisgICAgICAgIChzZXR0ZXIuQ29jb2EpOgorICAgICAgICAoc2V0dGVyLkNvY29hLnByb3Rv
dHlwZS5zZXQgaGVsbG8pOgorICAgICAgICAoc2V0dGVyKToKKyAgICAgICAgKGFjY2Vzc29ycy5D
b2NvYSk6CisgICAgICAgIChhY2Nlc3NvcnMuQ29jb2EucHJvdG90eXBlLmdldCBoZWxsbyk6Cisg
ICAgICAgIChhY2Nlc3NvcnMuQ29jb2EucHJvdG90eXBlLnNldCBoZWxsbyk6CisgICAgICAgIChh
Y2Nlc3NvcnMpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9kZmctcHV0LWFjY2Vzc29ycy1ieS1p
ZC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0QXR0cmlidXRl
KToKKyAgICAgICAgKGdldHRlci5vYmplY3QuZ2V0IGhlbGxvKToKKyAgICAgICAgKGdldHRlcik6
CisgICAgICAgIChzZXR0ZXIub2JqZWN0LnNldCBoZWxsbyk6CisgICAgICAgIChzZXR0ZXIpOgor
ICAgICAgICAoYWNjZXNzb3JzLm9iamVjdC5nZXQgaGVsbG8pOgorICAgICAgICAoYWNjZXNzb3Jz
Lm9iamVjdC5zZXQgaGVsbG8pOgorICAgICAgICAoYWNjZXNzb3JzKToKKyAgICAgICAgKiB0ZXN0
cy9zdHJlc3MvZGZnLXB1dC1nZXR0ZXItYnktaWQtY2xhc3MuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAodGVzdEF0dHJpYnV0ZSk6CisgICAgICAgIChnZXR0ZXIuQ29j
b2EpOgorICAgICAgICAoZ2V0dGVyLkNvY29hLnByb3RvdHlwZS5nZXQgaGVsbG8pOgorICAgICAg
ICAoZ2V0dGVyLkNvY29hLnByb3RvdHlwZS5nZXQgbmFtZSk6CisgICAgICAgIChnZXR0ZXIpOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9kZmctcHV0LWdldHRlci1ieS1pZC5qczogQWRkZWQuCisg
ICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0QXR0cmlidXRlKToKKyAgICAgICAgKGdl
dHRlci5vYmplY3QuZ2V0IGhlbGxvKToKKyAgICAgICAgKGdldHRlcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LXZhbC1jbGFzcy5qczogQWRkZWQuCisgICAgICAg
IChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0QXR0cmlidXRlKToKKyAgICAgICAgKGdldHRlci5D
b2NvYSk6CisgICAgICAgIChnZXR0ZXIuQ29jb2EucHJvdG90eXBlLmdldCBuYW1lKToKKyAgICAg
ICAgKGdldHRlcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LXZh
bC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0QXR0cmlidXRl
KToKKyAgICAgICAgKGdldHRlci5vYmplY3QuZ2V0IG5hbWUpOgorICAgICAgICAoZ2V0dGVyKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZGZnLXB1dC1zZXR0ZXItYnktaWQtY2xhc3MuanM6IEFk
ZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdEF0dHJpYnV0ZSk6CisgICAg
ICAgIChnZXR0ZXIuQ29jb2EpOgorICAgICAgICAoZ2V0dGVyLkNvY29hLnByb3RvdHlwZS5zZXQg
aGVsbG8pOgorICAgICAgICAoZ2V0dGVyLkNvY29hLnByb3RvdHlwZS5nZXQgbmFtZSk6CisgICAg
ICAgIChnZXR0ZXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9kZmctcHV0LXNldHRlci1ieS1p
ZC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0QXR0cmlidXRl
KToKKyAgICAgICAgKHNldHRlci5vYmplY3Quc2V0IGhlbGxvKToKKyAgICAgICAgKHNldHRlcik6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2RmZy1wdXQtc2V0dGVyLWJ5LXZhbC1jbGFzcy5qczog
QWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0QXR0cmlidXRlKToKKyAg
ICAgICAgKHNldHRlci5Db2NvYSk6CisgICAgICAgIChzZXR0ZXIuQ29jb2EucHJvdG90eXBlLnNl
dCBuYW1lKToKKyAgICAgICAgKHNldHRlcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2RmZy1w
dXQtc2V0dGVyLWJ5LXZhbC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAg
ICh0ZXN0QXR0cmlidXRlKToKKyAgICAgICAgKHNldHRlci5vYmplY3Quc2V0IG5hbWUpOgorICAg
ICAgICAoc2V0dGVyKToKKwogMjAxNS0xMC0xOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB0aGUgRU5BQkxFKFdFQkFTU0VNQkxZKSBidWlsZCBh
ZnRlciByMTkwODI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggZjI4Y2M3YWZmMDZiOTkzMzM1MDRm
ZmE1NjRhNGMzYzdkMWU1MjZhMi4uYTcwMTgwNmExM2Q5MTc4OTlkNjcyMTJkMDE1Nzg0OTE5ZmU0
ZjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjM2Myw2ICsyMzYzLDE1IEBAIGJvb2wgQWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2ln
bmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50
aWMsIGNsb2JiZXJMaW1pdCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIGNhc2UgUHV0
R2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRBY2Nlc3Nv
cnNCeUlkOgorICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgY2FzZSBQdXRTZXR0ZXJCeVZh
bDogeworICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBjbG9iYmVy
TGltaXQpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgICAgIAogICAgIGNhc2UgSW46IHsK
ICAgICAgICAgLy8gRklYTUU6IFdlIGNhbiBkZXRlcm1pbmUgd2hlbiB0aGUgcHJvcGVydHkgZGVm
aW5pdGVseSBleGlzdHMgYmFzZWQgb24gYWJzdHJhY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNjlmNTRmMWQzNTEwNTA2NzBhNTA3
YjI0ZjNmNzY5NDVhZDZiNmEwNi4uM2FlZTc4MTYwZDVjYTlkMDJlZjViMGRmMDg5NDQyOWRkZTdl
Njg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKQEAgLTM3NDksNiArMzc0OSwzOCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJs
b2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfcHV0X2J5X2lk
KTsKICAgICAgICAgfQogCisgICAgICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV9pZDoKKyAgICAg
ICAgY2FzZSBvcF9wdXRfc2V0dGVyX2J5X2lkOiB7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0g
Z2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7Cisg
ICAgICAgICAgICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9pbmxpbmVTdGFja1RvcC0+
bV9pZGVudGlmaWVyUmVtYXBbY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZF07CisgICAg
ICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZDsKKyAgICAgICAgICAgIE5vZGUqIGFjY2Vzc29yID0gZ2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlVHlwZSBv
cCA9IChvcGNvZGVJRCA9PSBvcF9wdXRfZ2V0dGVyX2J5X2lkKSA/IFB1dEdldHRlckJ5SWQgOiBQ
dXRTZXR0ZXJCeUlkOworICAgICAgICAgICAgYWRkVG9HcmFwaChvcCwgT3BJbmZvKGlkZW50aWZp
ZXJOdW1iZXIpLCBPcEluZm8oYXR0cmlidXRlcyksIGJhc2UsIGFjY2Vzc29yKTsKKyAgICAgICAg
ICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9nZXR0ZXJfYnlfaWQpOworICAgICAgICB9CisKKyAgICAg
ICAgY2FzZSBvcF9wdXRfZ2V0dGVyX3NldHRlcjogeworICAgICAgICAgICAgTm9kZSogYmFzZSA9
IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOwor
ICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciA9IG1faW5saW5lU3RhY2tUb3At
Pm1faWRlbnRpZmllclJlbWFwW2N1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmRdOworICAg
ICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQ7CisgICAgICAgICAgICBOb2RlKiBnZXR0ZXIgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIHNldHRl
ciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzVdLnUub3BlcmFuZCkp
OworICAgICAgICAgICAgYWRkVG9HcmFwaChQdXRBY2Nlc3NvcnNCeUlkLCBPcEluZm8oaWRlbnRp
Zmllck51bWJlciksIE9wSW5mbyhhdHRyaWJ1dGVzKSwgYmFzZSwgZ2V0dGVyLCBzZXR0ZXIpOwor
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfcHV0X2dldHRlcl9zZXR0ZXIpOworICAgICAgICB9
CisKKyAgICAgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X3ZhbDoKKyAgICAgICAgY2FzZSBvcF9w
dXRfc2V0dGVyX2J5X3ZhbDogeworICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChWaXJ0dWFs
UmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAgICAgICAgICAg
Tm9kZSogc3Vic2NyaXB0ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIE5vZGUqIGFjY2Vzc29yID0g
Z2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKSk7Cisg
ICAgICAgICAgICBOb2RlVHlwZSBvcCA9IChvcGNvZGVJRCA9PSBvcF9wdXRfZ2V0dGVyX2J5X3Zh
bCkgPyBQdXRHZXR0ZXJCeVZhbCA6IFB1dFNldHRlckJ5VmFsOworICAgICAgICAgICAgYWRkVG9H
cmFwaChvcCwgT3BJbmZvKGF0dHJpYnV0ZXMpLCBiYXNlLCBzdWJzY3JpcHQsIGFjY2Vzc29yKTsK
KyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9nZXR0ZXJfYnlfdmFsKTsKKyAgICAgICAg
fQorCiAgICAgICAgIGNhc2Ugb3BfcHJvZmlsZV90eXBlOiB7CiAgICAgICAgICAgICBOb2RlKiB2
YWx1ZVRvUHJvZmlsZSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZCkpOwogICAgICAgICAgICAgYWRkVG9HcmFwaChQcm9maWxlVHlwZSwgT3BJbmZv
KGN1cnJlbnRJbnN0cnVjdGlvblsyXS51LmxvY2F0aW9uKSwgdmFsdWVUb1Byb2ZpbGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGRhZmU1
ZTgyM2M4YzkwYTg0MmZmNDlhMmFmYzljYmIwNTlmZTYzYTYuLjk3ODhhNDg0YTEzYWJhMmY5MWVl
MTEzMDUwZTZlNTlhYzZhYjg0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHAKQEAgLTE1NCw2ICsxNTQsMTEgQEAgQ2FwYWJpbGl0eUxldmVsIGNh
cGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIElu
c3RydWMKICAgICBjYXNlIG9wX2dldF9ieV9pZDoKICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5n
dGg6CiAgICAgY2FzZSBvcF9wdXRfYnlfaWQ6CisgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X2lk
OgorICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9ieV9pZDoKKyAgICBjYXNlIG9wX3B1dF9nZXR0ZXJf
c2V0dGVyOgorICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV92YWw6CisgICAgY2FzZSBvcF9wdXRf
c2V0dGVyX2J5X3ZhbDoKICAgICBjYXNlIG9wX2ptcDoKICAgICBjYXNlIG9wX2p0cnVlOgogICAg
IGNhc2Ugb3BfamZhbHNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAppbmRleCA2Yzg1ZDU5ZTMxMDUzOWM5YWFiYjQyY2YxZGExZWMxY2VjZWYyZTk4Li4xODc0Nzcw
NTljYWRhYThmNDE5MzYyMmVhYzRlZjZmZTczZGRhM2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMzc5LDYgKzM3OSwxMSBAQCB2b2lkIGNsb2JiZXJp
emUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29u
c3QgV3JpdGVGdQogICAgIGNhc2UgUHV0QnlJZDoKICAgICBjYXNlIFB1dEJ5SWRGbHVzaDoKICAg
ICBjYXNlIFB1dEJ5SWREaXJlY3Q6CisgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgIGNhc2Ug
UHV0U2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgY2FzZSBQdXRH
ZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAgIGNhc2UgQXJyYXlQdXNo
OgogICAgIGNhc2UgQXJyYXlQb3A6CiAgICAgY2FzZSBDYWxsOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDVjNTdlMDIyYTBkYmJkMzNmMWRlNjQ4NWJkNTAxNmFk
Nzk0MGZjOTUuLmM1MDYzZjE0YzlhNGQ0Y2ZhYzM3ZTljYjY4Zjk0NjRhZjhmYzdiNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTk1LDYgKzk1LDExIEBAIGJv
b2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFB1dEJ5SWQ6CiAg
ICAgY2FzZSBQdXRCeUlkRmx1c2g6CiAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgorICAgIGNhc2Ug
UHV0R2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRBY2Nl
c3NvcnNCeUlkOgorICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgY2FzZSBQdXRTZXR0ZXJC
eVZhbDoKICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToK
ICAgICBjYXNlIEdldEJ1dHRlcmZseToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCmluZGV4IGViNjQxNWIzZjRjZDZkZTAyNmFhOWE5NmI0NjZhM2ExNTUwNTFm
ZWIuLmJlNWZkNTNhZjIxZmEzZTg0YjNmYjNkOTRmNjM3NTkyYzMwZTBjNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTA1Nyw2ICsxMDU3LDI1
IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2Ug
UHV0U2V0dGVyQnlJZDogeworICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGls
ZDIoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgUHV0
QWNjZXNzb3JzQnlJZDogeworICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2Fz
ZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDogeworICAgICAg
ICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAg
IGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDMoKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAgICAg
ICAgZml4RWRnZTxGdW5jdGlvblVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJl
YWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IGFjMWE3NTdjZTQ3NTE5M2Iz
M2MzOTIzMWY1NjQ3ZjY4ZWJkY2M1NmMuLjc5MDU5M2I5ODRiYmY4MTUzNWYzMjA2ZmUxZWRkM2Jh
ZTI2N2VlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC04NTMsNiArODUz
LDkgQEAgc3RydWN0IE5vZGUgewogICAgICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgIGNhc2Ug
UHV0QnlJZEZsdXNoOgogICAgICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CisgICAgICAgIGNhc2Ug
UHV0R2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICBjYXNl
IFB1dEFjY2Vzc29yc0J5SWQ6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTg2NCw2ICs4NjcsMzcgQEAgc3Ry
dWN0IE5vZGUgewogICAgICAgICBBU1NFUlQoaGFzSWRlbnRpZmllcigpKTsKICAgICAgICAgcmV0
dXJuIG1fb3BJbmZvOwogICAgIH0KKworICAgIGJvb2wgaGFzQWNjZXNzb3JBdHRyaWJ1dGVzKCkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAob3AoKSkgeworICAgICAgICBjYXNlIFB1dEdldHRlckJ5
SWQ6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRBY2Nlc3Nv
cnNCeUlkOgorICAgICAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgICAgICBjYXNlIFB1dFNl
dHRlckJ5VmFsOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpbnQzMl90
IGFjY2Vzc29yQXR0cmlidXRlcygpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzQWNjZXNzb3JB
dHRyaWJ1dGVzKCkpOworICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKKyAgICAgICAgY2FzZSBQdXRH
ZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0
QWNjZXNzb3JzQnlJZDoKKyAgICAgICAgICAgIHJldHVybiBtX29wSW5mbzI7CisgICAgICAgIGNh
c2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CisgICAgICAg
ICAgICByZXR1cm4gbV9vcEluZm87CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IH0KKyAgICB9CiAgICAgCiAgICAgYm9vbCBoYXNQcm9tb3RlZExvY2F0aW9uRGVzY3JpcHRvcigp
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDEzNDlh
NWRmOWVlYmE1MTA5NTRhMTEwNzQzZTQ1MDY2ZmIzMzNhMGEuLmEwZmZkZTlmNmMyMDJkYzY5ZWZh
Y2Y0MzNiZDVjNGVmZjIyZDZjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmgKQEAgLTE3OSw4ICsxNzksMTMgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogICAgIG1hY3JvKEdldEJ5SWQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwK
ICAgICBtYWNybyhHZXRCeUlkRmx1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUp
IFwKICAgICBtYWNybyhQdXRCeUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oUHV0
QnlJZEZsdXNoLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1h
Y3JvKFB1dEJ5SWRGbHVzaCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKFB1dEJ5SWRE
aXJlY3QsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhQdXRHZXR0ZXJCeUlkLCBOb2Rl
TXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0U2V0dGVyQnlJZCwgTm9kZU11c3RHZW5lcmF0
ZSkgXAorICAgIG1hY3JvKFB1dEFjY2Vzc29yc0J5SWQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAg
ICBtYWNybyhQdXRHZXR0ZXJCeVZhbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1
dFNldHRlckJ5VmFsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tTdHJ1Y3R1
cmUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhHZXRFeGVjdXRhYmxlLCBOb2RlUmVz
dWx0SlMpIFwKICAgICBtYWNybyhQdXRTdHJ1Y3R1cmUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAKaW5kZXggYTQxNTA3NTFhN2ZhNTAxMmJkZDc2M2YxMDVhYzc4MDE2
YTQ1MzcwMy4uODJjZTM1NGRjNjRiZmE1ODJkOGZlMzkyZjMwZTdjMzFlMDZmYzk0MSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAKQEAgLTY1MSw2ICs2NTEsMTEgQEAgY2xhc3MgUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIFB1dEJ5SWREaXJl
Y3Q6CiAgICAgICAgIGNhc2UgUHV0QnlPZmZzZXQ6CiAgICAgICAgIGNhc2UgTXVsdGlQdXRCeU9m
ZnNldDoKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dFNldHRl
ckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICAgICAgY2FzZSBQdXRH
ZXR0ZXJCeVZhbDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKICAgICAgICAgY2FzZSBE
Rkc6Okp1bXA6CiAgICAgICAgIGNhc2UgQnJhbmNoOgogICAgICAgICBjYXNlIFN3aXRjaDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggOWUzNTgw
ZWM0NDQ1YmJkNmFkZmJjOWU1ZTA4YjgzNjc2Y2Q1MzQ4Mi4uMjIxMzk2ZjM1N2I2OGVhYjg0YjU2
MGZkYTliOWQ5MmI5OGMyODE4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
YWZlVG9FeGVjdXRlLmgKQEAgLTE4OCw2ICsxODgsMTEgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFi
c3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNh
c2UgUHV0QnlJZDoKICAgICBjYXNlIFB1dEJ5SWRGbHVzaDoKICAgICBjYXNlIFB1dEJ5SWREaXJl
Y3Q6CisgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAg
ICBjYXNlIFB1dEFjY2Vzc29yc0J5SWQ6CisgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBj
YXNlIFB1dFNldHRlckJ5VmFsOgogICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgY2FzZSBH
ZXRFeGVjdXRhYmxlOgogICAgIGNhc2UgR2V0QnV0dGVyZmx5OgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBlYjI1ODVkNDE1M2RmMTEy
MWUwODc0ZTBjOWI2YTNlOWU5ZmQ3NmM0Li5mMDM4NGQwY2VjYTJiMjhhZDI2MGQyZGQyZTg4MWI5
ZDExMjU3ZThkIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcApAQCAtNjc0MSw2ICs2NzQxLDYxIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6Ondy
aXRlQmFycmllcihHUFJSZWcgb3duZXJHUFIsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0
CiAgICAgb3duZXJJc1JlbWVtYmVyZWRPckluRWRlbi5saW5rKCZtX2ppdCk7CiB9CiAKK3ZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQoTm9kZSogbm9kZSkKK3sKKyAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBhY2Nlc3Nvcih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisKKyAg
ICBmbHVzaFJlZ2lzdGVycygpOworICAgIGNhbGxPcGVyYXRpb24obm9kZS0+b3AoKSA9PSBQdXRH
ZXR0ZXJCeUlkID8gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZCA6IG9wZXJhdGlvblB1dFNldHRlckJ5
SWQsIE5vUmVzdWx0LCBiYXNlLmdwcigpLCBpZGVudGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJO
dW1iZXIoKSksIG5vZGUtPmFjY2Vzc29yQXR0cmlidXRlcygpLCBhY2Nlc3Nvci5ncHIoKSk7Cisg
ICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKworICAgIG5vUmVzdWx0KG5vZGUpOworfQorCit2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JzQnlJZChOb2RlKiBub2RlKQor
eworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwor
ICAgIEpTVmFsdWVPcGVyYW5kIGdldHRlcih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgSlNW
YWx1ZU9wZXJhbmQgc2V0dGVyKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKKworICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blB1dEdldHRlclNldHRlciwgTm9SZXN1bHQsIGJhc2UuZ3ByKCksIGlkZW50aWZpZXJVSUQobm9k
ZS0+aWRlbnRpZmllck51bWJlcigpKSwgbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGdldHRl
ci5ncHIoKSwgc2V0dGVyLmdwcigpKTsKKyNlbHNlCisgICAgLy8gVGhlc2UgSlNWYWx1ZXMgbWF5
IGJlIEpTVW5kZWZpbmVkIE9SIEpTRnVuY3Rpb24qLgorICAgIC8vIEF0IHRoYXQgdGltZSwKKyAg
ICAvLyAxLiBJZiB0aGUgSlNWYWx1ZSBpcyBKU1VuZGVmaW5lZCwgaXRzIHBheWxvYWQgYmVjb21l
cyBudWxscHRyLgorICAgIC8vIDIuIElmIHRoZSBKU1ZhbHVlIGlzIEpTRnVuY3Rpb24qLCBpdHMg
cGF5bG9hZCBiZWNvbWVzIEpTRnVuY3Rpb24qLgorICAgIC8vIFNvIGV4dHJhY3QgcGF5bG9hZCBh
bmQgcGFzcyBpdCB0byBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIuIFRoaXMgaGFjayBpcyB1c2Vk
IGFzIHRoZSBzYW1lIHdheSBpbiBiYXNlbGluZSBKSVQuCisgICAgSlNWYWx1ZVJlZ3MgZ2V0dGVy
UmVncyA9IGdldHRlci5qc1ZhbHVlUmVncygpOworICAgIEpTVmFsdWVSZWdzIHNldHRlclJlZ3Mg
PSBzZXR0ZXIuanNWYWx1ZVJlZ3MoKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdl
dHRlclNldHRlciwgTm9SZXN1bHQsIGJhc2UuZ3ByKCksIGlkZW50aWZpZXJVSUQobm9kZS0+aWRl
bnRpZmllck51bWJlcigpKSwgbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGdldHRlclJlZ3Mu
cGF5bG9hZEdQUigpLCBzZXR0ZXJSZWdzLnBheWxvYWRHUFIoKSk7CisjZW5kaWYKKyAgICBtX2pp
dC5leGNlcHRpb25DaGVjaygpOworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisKK3ZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKE5vZGUqIG5vZGUpCit7CisgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgSlNW
YWx1ZU9wZXJhbmQgc3Vic2NyaXB0KHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBhY2Nlc3Nvcih0aGlzLCBub2RlLT5jaGlsZDMoKSk7CisKKyAgICBmbHVz
aFJlZ2lzdGVycygpOworICAgIGF1dG8gb3BlcmF0aW9uID0gbm9kZS0+b3AoKSA9PSBQdXRHZXR0
ZXJCeVZhbCA/IG9wZXJhdGlvblB1dEdldHRlckJ5VmFsIDogb3BlcmF0aW9uUHV0U2V0dGVyQnlW
YWw7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgTm9S
ZXN1bHQsIGJhc2UuZ3ByKCksIHN1YnNjcmlwdC5ncHIoKSwgbm9kZS0+YWNjZXNzb3JBdHRyaWJ1
dGVzKCksIGFjY2Vzc29yLmdwcigpKTsKKyNlbHNlCisgICAgSlNWYWx1ZVJlZ3Mgc3Vic2NyaXB0
UmVncyA9IHN1YnNjcmlwdC5qc1ZhbHVlUmVncygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uLCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgc3Vic2NyaXB0UmVncy50YWdHUFIoKSwgc3Vic2Ny
aXB0UmVncy5wYXlsb2FkR1BSKCksIG5vZGUtPmFjY2Vzc29yQXR0cmlidXRlcygpLCBhY2Nlc3Nv
ci5ncHIoKSk7CisjZW5kaWYKKyAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworCisgICAgbm9S
ZXN1bHQobm9kZSk7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggNDU4
OGI1Y2ZkOTI0MWMyZjI3MWE0MDVmNzAzNWJmNzc5MDNhYzA3Ni4uMTMxYjQ5ZDYyODRiMTFjMDVm
ODJhMjk0OTdhNzIwNmJmMTIxZTdkOCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTE1NSwzNSArMTE1NSwxNiBAQCBjbGFzcyBTcGVjdWxh
dGl2ZUpJVCB7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwg
cmVzdWx0KTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+Ci0g
ICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0aW9u
LCBOb1Jlc3VsdFRhZykKLSAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbik7Ci0gICAgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5h
bWUgQXJndW1lbnRUeXBlMT4KLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZ1
bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0VGFnLCBBcmd1bWVudFR5cGUxIGFyZzEpCi0g
ICAgewotICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIGFyZzEpOwotICAg
IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIEFyZ3VtZW50
VHlwZTEsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTI+Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0aW9uLCBOb1Jlc3VsdFRhZywgQXJndW1lbnRU
eXBlMSBhcmcxLCBBcmd1bWVudFR5cGUyIGFyZzIpCisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQyBvcGVyYXRpb24sIEdQUlJlZyByZWdPcDEs
IFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIEdQUlJlZyByZWdPcDQp
CiAgICAgewotICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIGFyZzEsIGFy
ZzIpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1l
IEFyZ3VtZW50VHlwZTEsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTIsIHR5cGVuYW1lIEFyZ3VtZW50
VHlwZTM+Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUg
b3BlcmF0aW9uLCBOb1Jlc3VsdFRhZywgQXJndW1lbnRUeXBlMSBhcmcxLCBBcmd1bWVudFR5cGUy
IGFyZzIsIEFyZ3VtZW50VHlwZTMgYXJnMykKLSAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbiwgYXJnMSwgYXJnMiwgYXJnMyk7Ci0gICAgfQotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMSwgdHlwZW5hbWUg
QXJndW1lbnRUeXBlMiwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMywgdHlwZW5hbWUgQXJndW1lbnRU
eXBlND4KLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBv
cGVyYXRpb24sIE5vUmVzdWx0VGFnLCBBcmd1bWVudFR5cGUxIGFyZzEsIEFyZ3VtZW50VHlwZTIg
YXJnMiwgQXJndW1lbnRUeXBlMyBhcmczLCBBcmd1bWVudFR5cGU0IGFyZzQpCi0gICAgewotICAg
ICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFy
ZzQpOworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBU
cnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7CisgICAg
ICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAgICAgfQotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMSwgdHlwZW5hbWUgQXJn
dW1lbnRUeXBlMiwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMywgdHlwZW5hbWUgQXJndW1lbnRUeXBl
NCwgdHlwZW5hbWUgQXJndW1lbnRUeXBlNT4KLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0VGFnLCBBcmd1bWVudFR5cGUx
IGFyZzEsIEFyZ3VtZW50VHlwZTIgYXJnMiwgQXJndW1lbnRUeXBlMyBhcmczLCBBcmd1bWVudFR5
cGU0IGFyZzQsIEFyZ3VtZW50VHlwZTUgYXJnNSkKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0aW9uVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0VGFnLCBBcmdzLi4uIGFy
Z3MpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIGFyZzEs
IGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpOworICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihv
cGVyYXRpb24sIGFyZ3MuLi4pOwogICAgIH0KIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oRF9KSVRPcGVyYXRpb25fWlogb3BlcmF0aW9uLCBGUFJSZWcgcmVzdWx0LCBHUFJS
ZWcgYXJnMSwgR1BSUmVnIGFyZzIpCkBAIC0xNTM0LDYgKzE1MTUsMTYgQEAgY2xhc3MgU3BlY3Vs
YXRpdmVKSVQgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1
c3RlZEltbTMyKGFyZzEpLCBhcmcyLCBUcnVzdGVkSW1tMzIoYXJnMyksIGFyZzQsIFRydXN0ZWRJ
bW0zMihhcmc1KSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAgICAg
fQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNK
WkMgb3BlcmF0aW9uLCBHUFJSZWcgcmVnT3AxLCBHUFJSZWcgcmVnT3AyLCBpbnQzMl90IG9wMywg
R1BSUmVnIHJlZ09wNCkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMiwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7CisgICAg
ICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CisgICAgfQorICAgIEpJVENvbXBpbGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkpKIG9wZXJhdGlvbiwgR1BS
UmVnIHJlZ09wMSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgR1BS
UmVnIHJlZ09wNCwgR1BSUmVnIHJlZ09wNSkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVz
dGVkSW1tMzIob3AzKSwgcmVnT3A0LCByZWdPcDUpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2Fs
bChvcGVyYXRpb24pOworICAgIH0KICNlbHNlIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKIC8vIEVu
Y29kZWRKU1ZhbHVlIGluIEpTVkFMVUUzMl82NCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJl
aW5nIGNvbXBpbGVkIGluIEFSTSBFQUJJLCBpdCBtdXN0IGJlIGFsaWduZWQgZXZlbi1udW1iZXJl
ZCByZWdpc3RlciAocjAsIHIyIG9yIFtzcF0pLgpAQCAtMTg1NSw2ICsxODQ2LDE2IEBAIGNsYXNz
IFNwZWN1bGF0aXZlSklUIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKFRydXN0ZWRJbW0zMihhcmcxKSwgYXJnMlBheWxvYWQsIGFyZzJUYWcsIFRydXN0ZWRJbW0z
MihhcmczKSwgYXJnNCwgVHJ1c3RlZEltbTMyKGFyZzUpKTsKICAgICAgICAgcmV0dXJuIGFwcGVu
ZENhbGwob3BlcmF0aW9uKTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQyBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcg
YXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBpbnQzMl90IGFyZzMsIEdQUlJlZyBhcmc0KQor
ICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFy
ZzJQYXlsb2FkLCBhcmcyVGFnLCBUcnVzdGVkSW1tMzIoYXJnMyksIGFyZzQpOworICAgICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDQyBvcGVyYXRpb24sIEdQUlJlZyBh
cmcxLCBVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBHUFJSZWcgYXJn
NCwgR1BSUmVnIGFyZzUpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMp
LCBhcmc0LCBhcmc1KTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyAg
ICB9CiAjdW5kZWYgRUFCSV8zMkJJVF9EVU1NWV9BUkcKICN1bmRlZiBTSDRfMzJCSVRfRFVNTVlf
QVJHCiAgICAgCkBAIC0yMjQzLDYgKzIyNDQsOSBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAg
ICAgdm9pZCBjb21waWxlVHlwZU9mKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDaGVja1N0cnVj
dHVyZShOb2RlKiwgR1BSUmVnIGNlbGxHUFIsIEdQUlJlZyB0ZW1wR1BSKTsKICAgICB2b2lkIGNv
bXBpbGVDaGVja1N0cnVjdHVyZShOb2RlKik7CisgICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JC
eUlkKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKE5vZGUqKTsKKyAg
ICB2b2lkIGNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKE5vZGUqKTsKICAgICAKICAgICB2b2lkIG1v
dmVUcnVlVG8oR1BSUmVnKTsKICAgICB2b2lkIG1vdmVGYWxzZVRvKEdQUlJlZyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApp
bmRleCBhNDQxNTdiYmI3OGUyY2M3ZGE3MDc5NzJhZjg2YWZkYzgyZGRlMDg3Li44YmZiN2I3ZjRm
MGVkMzMzODQzYjI0YWZkNGNkZTNiMzZkYzk4MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTQxNzAsNiArNDE3
MCwyMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dFNl
dHRlckJ5SWQ6IHsKKyAgICAgICAgY29tcGlsZVB1dEFjY2Vzc29yQnlJZChub2RlKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBQdXRBY2Nlc3NvcnNCeUlkOiB7CisgICAgICAg
IGNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6IHsKKyAg
ICAgICAgY29tcGlsZVB1dEFjY2Vzc29yQnlWYWwobm9kZSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKwogICAgIGNhc2UgR2V0R2xvYmFsTGV4aWNhbFZhcmlhYmxlOgogICAgIGNhc2UgR2V0R2xv
YmFsVmFyOiB7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRQYXlsb2FkKHRoaXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5k
ZXggY2IwODA2Y2RkNWE2YTI3MzBjMGQzMTI2MTBmMGQ3MzEyZDgyMWY5ZS4uZDhlMmQxYjU1MDQ0
ZmI5YTM0NDc1OWZjNzRjOTY0ZmFiZmVhZjYxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC00MTY0LDYgKzQxNjQsMjMgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsK
ICAgICB9CiAKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlk
OiB7CisgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQobm9kZSk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKworICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDogeworICAgICAgICBjb21waWxl
UHV0QWNjZXNzb3JzQnlJZChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2Fz
ZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAgICAgIGNv
bXBpbGVQdXRBY2Nlc3NvckJ5VmFsKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAg
ICBjYXNlIEdldEdsb2JhbExleGljYWxWYXJpYWJsZToKICAgICBjYXNlIEdldEdsb2JhbFZhcjog
ewogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNw
cAppbmRleCBkNzM2ZWZlYmJhYzdlMzgxYjA5OTA3NTAzYTE2MTc5YTM1ZDk5MWE3Li41OTBkYTcy
YThjOTQzZTczMWMwN2M1ZDJlYmI1ZGFmOTkyN2M1YWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNw
cApAQCAtMjcyLDYgKzI3MiwxNSBAQCBjbGFzcyBTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZSA6
IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAK
KyAgICAgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICAgICAgICAgIGNhc2UgUHV0U2V0
dGVyQnlJZDoKKyAgICAgICAgICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICAgICAgICAg
IGNhc2UgUHV0R2V0dGVyQnlWYWw6CisgICAgICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7
CisgICAgICAgICAgICAgICAgY29uc2lkZXJCYXJyaWVyKG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBjYXNlIFB1
dEJ5T2Zmc2V0OiB7CiAgICAgICAgICAgICAgICAgY29uc2lkZXJCYXJyaWVyKG1fbm9kZS0+Y2hp
bGQyKCksIG1fbm9kZS0+Y2hpbGQzKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDUzN2Y4ZjY1
YTUxYTMzMzFkMjUyMDI1NjYxMGFkNGYxZjIxYjk0ZTkuLjFmNGM4NjQ2NjhhZTUxNzY3OGFkNWRj
ODI2ZDg1N2U3ODdhNTI0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHAKQEAgLTIwMyw2ICsyMDMsMTEgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZl
bCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBGb3J3YXJkVmFyYXJnczoKICAgICBj
YXNlIFN3aXRjaDoKICAgICBjYXNlIFR5cGVPZjoKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6Cisg
ICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0QWNjZXNzb3JzQnlJZDoKKyAgICBj
YXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAgICAgIC8v
IFRoZXNlIGFyZSBPSy4KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBcml0aFN1YjoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKaW5k
ZXggNDNkZGZjMzk0M2M0NTczNDc5YWM2NjcwNjgxZTc5MjEyNzIzNTFhYS4uOGUzMzUyMmE1Yzc5
N2Y0NGE4NjI2YWM1NDYwZWExNzY3ODFjMjUzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKQEAgLTExOCw2ICsxMTgsOSBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oVl9KSVRPcGVyYXRpb25f
SiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQ2NCkpIFwKICAgICBtYWNybyhWX0pJVE9wZXJh
dGlvbl9aLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludDMyKSkgXAogICAgIG1hY3JvKFZfSklU
T3BlcmF0aW9uX0UsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50UHRyKSkgXAorICAgIG1hY3Jv
KFZfSklUT3BlcmF0aW9uX0VDSVpDLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0ciwgaW50
UHRyLCBpbnRQdHIsIGludDMyLCBpbnRQdHIpKSBcCisgICAgbWFjcm8oVl9KSVRPcGVyYXRpb25f
RUNJWkpKLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0ciwgaW50UHRyLCBpbnRQdHIsIGlu
dDMyLCBpbnQ2NCwgaW50NjQpKSBcCisgICAgbWFjcm8oVl9KSVRPcGVyYXRpb25fRUNKWkMsIGZ1
bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50UHRyLCBpbnRQdHIsIGludDY0LCBpbnQzMiwgaW50UHRy
KSkgXAogICAgIG1hY3JvKFpfSklUT3BlcmF0aW9uX0QsIGZ1bmN0aW9uVHlwZShpbnQzMiwgZG91
YmxlVHlwZSkpIFwKICAgICBtYWNybyhaX0pJVE9wZXJhdGlvbl9FQywgZnVuY3Rpb25UeXBlKGlu
dDMyLCBpbnRQdHIsIGludFB0cikpIFwKICAgICBtYWNybyhaX0pJVE9wZXJhdGlvbl9FR0MsIGZ1
bmN0aW9uVHlwZShpbnQzMiwgaW50UHRyLCBpbnRQdHIsIGludFB0cikpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKaW5kZXggYjlhNmM5ODdi
ZmE2ZGNiZGI1ZTJjNWU5YzNiZWVlYTIwOGZlZDZkYy4uNGQzOTY0NTc0ZjhmYWY5N2I4MzU1OTYy
OGIwNzNkYTcyMGViZjIzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvTExWTS5jcHAKQEAgLTU2Myw2ICs1NjMsMTcgQEAgY2xhc3MgTG93ZXJERkdUb0xM
Vk0gewogICAgICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CiAgICAgICAgICAgICBjb21waWxlUHV0
QnlJZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoK
KyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICAgICAgY29tcGlsZVB1dEFjY2Vz
c29yQnlJZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHV0QWNjZXNzb3Jz
QnlJZDoKKyAgICAgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvcnNCeUlkKCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICAgICAgY2FzZSBQdXRT
ZXR0ZXJCeVZhbDoKKyAgICAgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKCk7CisgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CiAgICAgICAgICAgICBj
b21waWxlR2V0QnV0dGVyZmx5KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTMwMDAsNiArMzAx
MSwzOCBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgIH0KKworICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29yQnlJZCgpCisgICAgewor
ICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
IExWYWx1ZSBhY2Nlc3NvciA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIGF1
dG8gdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW21fbm9kZS0+aWRlbnRpZmllck51bWJlcigp
XTsKKyAgICAgICAgdm1DYWxsKAorICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG1fbm9kZS0+
b3AoKSA9PSBQdXRHZXR0ZXJCeUlkID8gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZCA6IG9wZXJhdGlv
blB1dFNldHRlckJ5SWQpLAorICAgICAgICAgICAgbV9jYWxsRnJhbWUsIGJhc2UsIG1fb3V0LmNv
bnN0SW50UHRyKHVpZCksIG1fb3V0LmNvbnN0SW50MzIobV9ub2RlLT5hY2Nlc3NvckF0dHJpYnV0
ZXMoKSksIGFjY2Vzc29yKTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVQdXRBY2Nlc3NvcnNC
eUlkKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNoaWxk
MSgpKTsKKyAgICAgICAgTFZhbHVlIGdldHRlciA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIo
KSk7CisgICAgICAgIExWYWx1ZSBzZXR0ZXIgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQzKCkp
OworICAgICAgICBhdXRvIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKVttX25vZGUtPmlkZW50
aWZpZXJOdW1iZXIoKV07CisgICAgICAgIHZtQ2FsbCgKKyAgICAgICAgICAgIG1fb3V0Lm9wZXJh
dGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIpLAorICAgICAgICAgICAgbV9jYWxsRnJhbWUs
IGJhc2UsIG1fb3V0LmNvbnN0SW50UHRyKHVpZCksIG1fb3V0LmNvbnN0SW50MzIobV9ub2RlLT5h
Y2Nlc3NvckF0dHJpYnV0ZXMoKSksIGdldHRlciwgc2V0dGVyKTsKKworICAgIH0KKworICAgIHZv
aWQgY29tcGlsZVB1dEFjY2Vzc29yQnlWYWwoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGJhc2Ug
PSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgc3Vic2NyaXB0ID0g
bG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIGFjY2Vzc29yID0g
bG93Q2VsbChtX25vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgdm1DYWxsKAorICAgICAgICAgICAg
bV9vdXQub3BlcmF0aW9uKG1fbm9kZS0+b3AoKSA9PSBQdXRHZXR0ZXJCeVZhbCA/IG9wZXJhdGlv
blB1dEdldHRlckJ5VmFsIDogb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwpLAorICAgICAgICAgICAg
bV9jYWxsRnJhbWUsIGJhc2UsIHN1YnNjcmlwdCwgbV9vdXQuY29uc3RJbnQzMihtX25vZGUtPmFj
Y2Vzc29yQXR0cmlidXRlcygpKSwgYWNjZXNzb3IpOworICAgIH0KICAgICAKICAgICB2b2lkIGNv
bXBpbGVBcnJheVB1c2goKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDkyMGRh
ZTIyY2Y5ZTZjMzNhYTZkY2FmZThjZmYxZWEyMGU1ZDFhMWQuLjQxMGE4Y2JiYTRjY2NjMWU0ZDYx
ZGQyZDg4M2M0ZjAzYjY2OTQ3ZWEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNzYyLDkg
Kzc2MiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQywgUmVnaXN0ZXJJRCk7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUND
LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQywgUmVnaXN0ZXJJRCwgY29uc3QgSWRl
bnRpZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDQywgUmVnaXN0ZXJJRCwgY29u
c3QgSWRlbnRpZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOworICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpD
LCBSZWdpc3RlcklELCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QsIFJlZ2lzdGVySUQpOwor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VDSVpDQywgUmVnaXN0ZXJJRCwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBSZWdpc3Rl
cklELCBSZWdpc3RlcklEKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSlpDLCBSZWdpc3RlcklE
LCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKKyNlbHNlCiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMsIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOworI2Vu
ZGlmCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUUsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VaU3ltdGFiSiwgaW50LCBTeW1ib2xUYWJsZSosIFJl
Z2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VaU3ltdGFiSiwgaW50LCBTeW1ib2xUYWJsZSosIFJlZ2lzdGVySUQpOwpA
QCAtNzc1LDEyICs3NzksMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZWxzZQogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJh
dGlvbl9FSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAjZW5kaWYKLSAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkosIFJlZ2lz
dGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBpbnQzMl90LCBSZWdpc3RlcklEKTsKLSAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkpK
LCBSZWdpc3RlcklELCBjb25zdCBJZGVudGlmaWVyKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9K
SVRPcGVyYXRpb25fRUpKWkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lz
dGVySUQpOwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oRl9KSVRPcGVyYXRpb25fRUZKWlosIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VTc2lKSkksIFN0cnVjdHVyZVN0dWJJbmZvKiwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laSkosIFJl
Z2lzdGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCk7CiAjZWxzZQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VTc2lKSkksIFN0cnVjdHVyZVN0dWJJbmZvKiwgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgVW5pcXVlZFN0cmluZ0ltcGwqKTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCBhMzRiN2Ew
YzlkZGY1ZWZmOTY2NjRlOTM0MWMyNmY0NDk1NjQxZDU2Li5iNWVhMDgxMzRiODQ0ODJmOTVhNmE0
NzgxNjYwZDIzNDE3YzhhMWUyIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aApAQCAtNDA2LDYgKzQwNiwxMSBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZQogICAgIHJldHVy
biBhcHBlbmRDYWxsV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3BlcmF0aW9uKTsK
IH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUNJWkMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgVW5p
cXVlZFN0cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQp
Cit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0
cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQpOworICAgIHJldHVybiBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Cit9CiAKICNpZiBVU0UoSlNWQUxV
RTY0KQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oWl9KSVRPcGVyYXRpb25fRUpaWiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBpbnQzMl90IGFy
ZzIsIGludDMyX3QgYXJnMykKQEAgLTU0MSwxOSArNTQ2LDEzIEBAIEFMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKIG9w
ZXJhdGlvCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9u
KTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEs
IGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdP
cDQpCi17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZElt
bVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQpOwotICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Ci19Ci0KLUFMV0FZU19JTkxJ
TkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VKSWRaSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciog
aWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCwgUmVnaXN0ZXJJRCByZWdP
cDUpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihWX0pJVE9wZXJhdGlvbl9FQ0laSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgVW5p
cXVlZFN0cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQs
IFJlZ2lzdGVySUQgcmVnT3A1KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShy
ZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0
LCByZWdPcDUpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJh
dGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSlpKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdP
cDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQpCitB
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FQ0paQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklE
IHJlZ09wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQogewogICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMiwgVHJ1c3RlZEltbTMyKG9wMyksIHJl
Z09wNCk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9u
KTsKQEAgLTY3NSwxMyArNjc0LDcgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGkKICAgICByZXR1
cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FQ0laQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlmaWVy
KiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQotewotICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBU
cnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhvcGVyYXRpb24pOwotfQotCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0Mgb3BlcmF0aW9u
LCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGludDMyX3Qg
b3AzLCBSZWdpc3RlcklEIHJlZ09wNCwgUmVnaXN0ZXJJRCByZWdPcDUpCitBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
Q0laQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlk
ZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1
KQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1Q
dHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0LCByZWdPcDUpOwogICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCAyYjUzMGY1Zjc4YzlmNGY3
NDlkZWJiMDQ3OGRiMTZmMTI4YjI4NzFhLi4xZjg0ZDY2MzMyYWEyZmNkMDA1NGFmZWM4ODIwNGE3
ZmMyODNiYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAKQEAgLTEzNTMsMTA5ICsxMzUzLDc4IEBAIHN0YXRpYyB2b2lkIHB1dEFjY2Vzc29yQnlWYWwo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZSwgSlNWYWx1ZSBzdWJzY3JpcHQsCiAgICAg
ICAgIGJhc2UtPnB1dFNldHRlcihleGVjLCBwcm9wZXJ0eUtleSwgYWNjZXNzb3IsIGF0dHJpYnV0
ZSk7CiB9CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2Jq
ZWN0VmFsdWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3Qgb3B0aW9ucywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEdldHRlclZhbHVlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0
cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIGdldHRlcikKIHsKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZt
LCBleGVjKTsKIAotICAgIEFTU0VSVChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZhbHVl
KS5pc09iamVjdCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT2JqZWN0VmFsdWUpKTsKKyAgICBBU1NFUlQob2JqZWN0ICYmIG9iamVj
dC0+aXNPYmplY3QoKSk7CisgICAgSlNPYmplY3QqIGJhc2VPYmogPSBvYmplY3QtPmdldE9iamVj
dCgpOwogCi0gICAgSlNWYWx1ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEdldHRl
clZhbHVlKTsKLSAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmotPnB1
dEdldHRlcihleGVjLCAqaWRlbnRpZmllciwgYXNPYmplY3QoZ2V0dGVyKSwgb3B0aW9ucyk7Cisg
ICAgQVNTRVJUKGdldHRlci0+aXNPYmplY3QoKSk7CisgICAgYmFzZU9iai0+cHV0R2V0dGVyKGV4
ZWMsIHVpZCwgZ2V0dGVyLCBvcHRpb25zKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T2JqZWN0VmFsdWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3Qgb3B0aW9ucywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFNldHRlclZhbHVlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgVW5pcXVl
ZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBvcHRpb25zLCBKU0NlbGwqIHNldHRlcikKIHsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
JnZtLCBleGVjKTsKIAotICAgIEFTU0VSVChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZh
bHVlKS5pc09iamVjdCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT2JqZWN0VmFsdWUpKTsKKyAgICBBU1NFUlQob2JqZWN0ICYmIG9i
amVjdC0+aXNPYmplY3QoKSk7CisgICAgSlNPYmplY3QqIGJhc2VPYmogPSBvYmplY3QtPmdldE9i
amVjdCgpOwogCi0gICAgSlNWYWx1ZSBzZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNl
dHRlclZhbHVlKTsKLSAgICBBU1NFUlQoc2V0dGVyLmlzT2JqZWN0KCkpOwotICAgIGJhc2VPYmot
PnB1dFNldHRlcihleGVjLCAqaWRlbnRpZmllciwgYXNPYmplY3Qoc2V0dGVyKSwgb3B0aW9ucyk7
CisgICAgQVNTRVJUKHNldHRlci0+aXNPYmplY3QoKSk7CisgICAgYmFzZU9iai0+cHV0U2V0dGVy
KGV4ZWMsIHVpZCwgc2V0dGVyLCBvcHRpb25zKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPYmplY3RWYWx1ZSwgSWRlbnRpZmllciogaWRlbnRpZmllciwgaW50MzJfdCBhdHRyaWJ1
dGUsCi0gICAgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRlclZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU2V0dGVyVmFsdWUpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0
dGVyQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdldHRlcikKIHsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
JnZtLCBleGVjKTsKIAotICAgIEFTU0VSVChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZh
bHVlKS5pc09iamVjdCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkT2JqZWN0VmFsdWUpKTsKLQotICAgIEdldHRlclNldHRlciogYWNj
ZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpKTsKLQotICAgIEpTVmFsdWUgZ2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRHZXR0
ZXJWYWx1ZSk7Ci0gICAgSlNWYWx1ZSBzZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNl
dHRlclZhbHVlKTsKLSAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkgfHwgZ2V0dGVyLmlzVW5k
ZWZpbmVkKCkpOwotICAgIEFTU0VSVChzZXR0ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNVbmRl
ZmluZWQoKSk7Ci0gICAgQVNTRVJUKGdldHRlci5pc09iamVjdCgpIHx8IHNldHRlci5pc09iamVj
dCgpKTsKLQotICAgIGlmICghZ2V0dGVyLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIGFjY2Vzc29y
LT5zZXRHZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXNPYmplY3QoZ2V0
dGVyKSk7Ci0gICAgaWYgKCFzZXR0ZXIuaXNVbmRlZmluZWQoKSkKLSAgICAgICAgYWNjZXNzb3It
PnNldFNldHRlcih2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhc09iamVjdChzZXR0
ZXIpKTsKLSAgICBiYXNlT2JqLT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCAqaWRlbnRpZmllciwg
YWNjZXNzb3IsIGF0dHJpYnV0ZSk7CisgICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBhc09iamVj
dChiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1dGUsIGFz
T2JqZWN0KGdldHRlciksIEFjY2Vzc29yVHlwZTo6R2V0dGVyKTsKIH0KIAotdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMy
X3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0dGVyKQordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBi
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwg
SlNDZWxsKiBzZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7Ci0gICAgSlNPYmplY3QqIGJhc2UgPSBh
c09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpKTsKLSAgICBKU1ZhbHVlIHN1YnNj
cmlwdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KTsKLSAgICBKU09iamVjdCog
Z2V0dGVyID0gYXNPYmplY3QoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRHZXR0ZXIpKTsKLSAgICBw
dXRBY2Nlc3NvckJ5VmFsKGV4ZWMsIGJhc2UsIHN1YnNjcmlwdCwgYXR0cmlidXRlLCBnZXR0ZXIs
IEFjY2Vzc29yVHlwZTo6R2V0dGVyKTsKLX0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dFNldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU2V0dGVyKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwotICAgIEpTT2Jq
ZWN0KiBiYXNlID0gYXNPYmplY3QoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKSk7Ci0gICAg
SlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7Ci0g
ICAgSlNPYmplY3QqIHNldHRlciA9IGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU2V0
dGVyKSk7Ci0gICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBiYXNlLCBzdWJzY3JpcHQsIGF0dHJp
YnV0ZSwgc2V0dGVyLCBBY2Nlc3NvclR5cGU6OlNldHRlcik7CisgICAgcHV0QWNjZXNzb3JCeVZh
bChleGVjLCBhc09iamVjdChiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQp
LCBhdHRyaWJ1dGUsIGFzT2JqZWN0KHNldHRlciksIEFjY2Vzc29yVHlwZTo6U2V0dGVyKTsKIH0K
IAotI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNT
dGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMy
X3Qgb3B0aW9ucywgSlNDZWxsKiBnZXR0ZXIpCisjaWYgVVNFKEpTVkFMVUU2NCkKK3ZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU0Nl
bGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNl
dHRlclZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCiAgICAgQVNTRVJUKG9iamVjdCAmJiBvYmpl
Y3QtPmlzT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmpl
Y3QoKTsKKyAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KG9iamVjdCk7CiAKLSAgICBB
U1NFUlQoZ2V0dGVyLT5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywg
KmlkZW50aWZpZXIsIGdldHRlciwgb3B0aW9ucyk7Ci19Ci0KLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIElk
ZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKiBzZXR0ZXIpCi17
Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKCZ2bSwgZXhlYyk7CisgICAgR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9IEdldHRlclNldHRl
cjo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwogCi0gICAgQVNTRVJU
KG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0KiBiYXNlT2JqID0g
b2JqZWN0LT5nZXRPYmplY3QoKTsKKyAgICBKU1ZhbHVlIGdldHRlciA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkR2V0dGVyVmFsdWUpOworICAgIEpTVmFsdWUgc2V0dGVyID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7CisgICAgQVNTRVJUKGdldHRlci5pc09iamVjdCgpIHx8
IGdldHRlci5pc1VuZGVmaW5lZCgpKTsKKyAgICBBU1NFUlQoc2V0dGVyLmlzT2JqZWN0KCkgfHwg
c2V0dGVyLmlzVW5kZWZpbmVkKCkpOworICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBz
ZXR0ZXIuaXNPYmplY3QoKSk7CiAKLSAgICBBU1NFUlQoc2V0dGVyLT5pc09iamVjdCgpKTsKLSAg
ICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIsIHNldHRlciwgb3B0aW9ucyk7
CisgICAgaWYgKCFnZXR0ZXIuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgYWNjZXNzb3ItPnNldEdl
dHRlcih2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhc09iamVjdChnZXR0ZXIpKTsK
KyAgICBpZiAoIXNldHRlci5pc1VuZGVmaW5lZCgpKQorICAgICAgICBhY2Nlc3Nvci0+c2V0U2V0
dGVyKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGFzT2JqZWN0KHNldHRlcikpOwor
ICAgIGJhc2VPYmotPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHVpZCwgYWNjZXNzb3IsIGF0dHJp
YnV0ZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlbnRpZmllciogaWRlbnRpZmllciwg
aW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVyLCBKU0NlbGwqIHNldHRlcikKKyNlbHNl
Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3QgYXR0
cmlidXRlLCBKU0NlbGwqIGdldHRlciwgSlNDZWxsKiBzZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0g
ZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7
CiAKICAgICBBU1NFUlQob2JqZWN0ICYmIG9iamVjdC0+aXNPYmplY3QoKSk7Ci0gICAgSlNPYmpl
Y3QqIGJhc2VPYmogPSBvYmplY3QtPmdldE9iamVjdCgpOworICAgIEpTT2JqZWN0KiBiYXNlT2Jq
ID0gYXNPYmplY3Qob2JqZWN0KTsKIAogICAgIEdldHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0
ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKIApAQCAt
MTQ2NywyNSArMTQzNiw4IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJT
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlCiAgICAgICAgIGFjY2Vz
c29yLT5zZXRHZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZ2V0dGVyLT5n
ZXRPYmplY3QoKSk7CiAgICAgaWYgKHNldHRlcikKICAgICAgICAgYWNjZXNzb3ItPnNldFNldHRl
cih2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzZXR0ZXItPmdldE9iamVjdCgpKTsK
LSAgICBiYXNlT2JqLT5wdXREaXJlY3RBY2Nlc3NvcihleGVjLCAqaWRlbnRpZmllciwgYWNjZXNz
b3IsIGF0dHJpYnV0ZSk7Ci19Ci0KLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0
ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVyKQotewotICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigm
dm0sIGV4ZWMpOwotCi0gICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBhc09iamVjdChiYXNlKSwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1dGUsIGFzT2JqZWN0KGdl
dHRlciksIEFjY2Vzc29yVHlwZTo6R2V0dGVyKTsKKyAgICBiYXNlT2JqLT5wdXREaXJlY3RBY2Nl
c3NvcihleGVjLCB1aWQsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQotCi12b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBK
U0NlbGwqIHNldHRlcikKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLQotICAgIHB1dEFjY2Vzc29yQnlWYWwo
ZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwg
YXR0cmlidXRlLCBhc09iamVjdChzZXR0ZXIpLCBBY2Nlc3NvclR5cGU6OlNldHRlcik7Ci19Ci0K
ICNlbmRpZgogCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRl
KiBleGVjLCBpbnQzMl90IHNjb3BlUmVnKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAppbmRleCBhYWNhMzVhMjFkMDk3YTY2YjQ4MWZhNTIwNWM2ODUxMzIzM2NkNTZi
Li5mNmM1N2YzZDFjYjdlNDU2MjI2MzYyYTkyYTBmZDA5OTQwNTk5ZDQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTg5LDggKzE4OSw5IEBAIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUMpKEV4ZWNTdGF0ZSosIEpT
Q2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ2Ip
KEV4ZWNTdGF0ZSosIENvZGVCbG9jayopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpW
X0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopOwogdHlwZWRl
ZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0ljZikoRXhlY1N0YXRlKiwg
SlNDZWxsKiwgSW5saW5lQ2FsbEZyYW1lKik7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAo
KlZfSklUT3BlcmF0aW9uX0VDSVpDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBJZGVudGlmaWVyKiwg
aW50MzJfdCwgSlNDZWxsKik7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3Bl
cmF0aW9uX0VDSVpDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllciosIGludDMyX3Qs
IEpTQ2VsbCosIEpTQ2VsbCopOwordHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9w
ZXJhdGlvbl9FQ0laQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBp
bnQzMl90LCBKU0NlbGwqKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVy
YXRpb25fRUNJWkNDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGlu
dDMyX3QsIEpTQ2VsbCosIEpTQ2VsbCopOwordHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpW
X0pJVE9wZXJhdGlvbl9FQ0laSkopKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJ
bXBsKiwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYg
dm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNKWkMpKEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9pZCBK
SVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNDSWNmKShFeGVjU3RhdGUqLCBKU0NlbGwq
LCBKU0NlbGwqLCBJbmxpbmVDYWxsRnJhbWUqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9O
ICgqVl9KSVRPcGVyYXRpb25fRUNKSikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlKTsKQEAgLTIwMCw5ICsyMDEsNiBAQCB0eXBlZGVmIHZvaWQgSklU
X09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlND
ZWxsKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VaU3lt
dGFiSikoRXhlY1N0YXRlKiwgaW50MzJfdCwgU3ltYm9sVGFibGUqLCBFbmNvZGVkSlNWYWx1ZSk7
CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKKShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklU
T3BlcmF0aW9uX0VKQ0kpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU0NlbGwqLCBVbmlx
dWVkU3RyaW5nSW1wbCopOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJh
dGlvbl9FSklkWkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50
MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwotdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJ
VE9wZXJhdGlvbl9FSklkWkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmll
ciosIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Ci10eXBlZGVmIHZv
aWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSlpKKShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlKTsKIHR5
cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBl
ZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpBcCkoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQ
cm9maWxlKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VK
SkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgQnlWYWxJbmZvKik7CkBAIC0zMTMsMTggKzMxMSwxNCBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uRGVidWcoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwog
U2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0
YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogI2VuZGlmCiB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlJbmRleChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwg
RW5jb2RlZEpTVmFsdWUpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRp
ZmllciosIGludDMyX3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50MzJfdCBvcHRpb25zLCBFbmNvZGVkSlNWYWx1ZSkg
V1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRl
cihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIGludDMyX3QgYXR0cmli
dXRlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1
ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5
VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBh
dHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci0jZWxzZQotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRl
bnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwg
SWRlbnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBKU0Nl
bGwqLCBJZGVudGlmaWVyKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpTQ2VsbCopIFdU
Rl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4
ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBvcHRpb25zLCBK
U0NlbGwqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0
dGVyQnlJZChFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3Qg
b3B0aW9ucywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEdldHRlckJ5VmFsKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBp
bnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dFNldHRlckJ5VmFsKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRK
U1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOworI2lmIFVT
RShKU1ZBTFVFNjQpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVy
KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1
dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOworI2Vsc2UK
K3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwg
SlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiwg
SlNDZWxsKikgV1RGX0lOVEVSTkFMOwogI2VuZGlmCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHVzaEZ1bmN0aW9uTmFtZVNjb3BlKEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5bWJvbFRhYmxl
KiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IGIxNDZi
MjA5ODc2OGIyYThmYzZhOTkxZDQzZGViNDUxNTQ2NGUyMWIuLjMxNzlmOThlNTgwMzBkNjFmMGVi
NmNhMTRmOWIzMjQ4NmE0NDQ0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC00OTIsNyArNDkyLDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfcHV0X2dldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwg
cmVnVDApOwogICAgIGludDMyX3Qgb3B0aW9ucyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQ7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0u
dS5vcGVyYW5kLCByZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJC
eUlkLCByZWdUMCwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQpLCBvcHRpb25zLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25QdXRHZXR0ZXJCeUlkLCByZWdUMCwgbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZCkuaW1wbCgpLCBvcHRpb25zLCByZWdUMSk7CiB9CiAKIHZv
aWQgSklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKQEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfc2V0dGVy
X2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7CiAgICAg
aW50MzJfdCBvcHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQsIHJl
Z1QxKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dFNldHRlckJ5SWQsIHJlZ1QwLCAm
bV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCks
IG9wdGlvbnMsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dFNldHRlckJ5
SWQsIHJlZ1QwLCBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kKS5pbXBsKCksIG9wdGlvbnMsIHJlZ1QxKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRf
b3BfcHV0X2dldHRlcl9zZXR0ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAg
LTUwOSw3ICs1MDksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX3NldHRlcihJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludDMyX3QgYXR0cmlidXRlID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQsIHJlZ1QxKTsKICAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls1XS51Lm9wZXJhbmQsIHJlZ1QyKTsKLSAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVnVDAsICZtX2NvZGVC
bG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwgYXR0cmli
dXRlLCByZWdUMSwgcmVnVDIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVy
U2V0dGVyLCByZWdUMCwgbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZCkuaW1wbCgpLCBhdHRyaWJ1dGUsIHJlZ1QxLCByZWdUMik7CiB9CiAKIHZv
aWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2VzczMyXzY0LmNwcAppbmRleCBkMDQ3N2ZkMTk0NmQyZWQ1MDA4ZTg3YzE0ZWE4YzI4YmZi
YmFmMjI2Li42ODkyZTA5NjAwZDExZTg1OTNjZDgwOGI1ZDY4YWVhNjZlMmI0ZTFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5j
cHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9ieV9pZChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgZW1pdExvYWRQYXlsb2FkKGJh
c2UsIHJlZ1QxKTsKICAgICBlbWl0TG9hZFBheWxvYWQoZ2V0dGVyLCByZWdUMyk7Ci0gICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJCeUlkLCByZWdUMSwgJm1fY29kZUJsb2NrLT5p
ZGVudGlmaWVyKHByb3BlcnR5KSwgb3B0aW9ucywgcmVnVDMpOworICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgcmVnVDEsIG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKHBy
b3BlcnR5KS5pbXBsKCksIG9wdGlvbnMsIHJlZ1QzKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3Bf
cHV0X3NldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtNzgs
NyArNzgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfc2V0dGVyX2J5X2lkKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0TG9hZFBheWxvYWQoYmFzZSwgcmVnVDEp
OwogICAgIGVtaXRMb2FkUGF5bG9hZChzZXR0ZXIsIHJlZ1QzKTsKLSAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblB1dFNldHRlckJ5SWQsIHJlZ1QxLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIo
cHJvcGVydHkpLCBvcHRpb25zLCByZWdUMyk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Q
dXRTZXR0ZXJCeUlkLCByZWdUMSwgbV9jb2RlQmxvY2stPmlkZW50aWZpZXIocHJvcGVydHkpLmlt
cGwoKSwgb3B0aW9ucywgcmVnVDMpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVy
X3NldHRlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtOTIsNyArOTIsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX3NldHRlcihJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMSk7CiAgICAgZW1p
dExvYWRQYXlsb2FkKGdldHRlciwgcmVnVDMpOwogICAgIGVtaXRMb2FkUGF5bG9hZChzZXR0ZXIs
IHJlZ1Q0KTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVn
VDEsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSksIGF0dHJpYnV0ZSwgcmVnVDMs
IHJlZ1Q0KTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVn
VDEsIG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKHByb3BlcnR5KS5pbXBsKCksIGF0dHJpYnV0ZSwg
cmVnVDMsIHJlZ1Q0KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9ieV92YWwo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1hY2Nlc3NvcnMtYnktaWQtY2xhc3MuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtYWNjZXNzb3JzLWJ5
LWlkLWNsYXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiN2FjNWI1M2YwOTJmZGZiODMyNjkxMjlmYWNmODFh
MThhMmE0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2RmZy1wdXQtYWNjZXNzb3JzLWJ5LWlkLWNsYXNzLmpzCkBAIC0wLDAgKzEsODIgQEAK
K2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9
PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1
YWwpOworfQorCitmdW5jdGlvbiB0ZXN0QXR0cmlidXRlKG9iamVjdCwgbmFtZSwgdHlwZSkgewor
ICAgIHNob3VsZEJlKFJlZmxlY3QuaGFzKG9iamVjdCwgbmFtZSksIHRydWUpOworICAgIGxldCBk
ZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBuYW1lKTsKKyAg
ICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoZGVzYy5l
bnVtZXJhYmxlLCBmYWxzZSk7CisgICAgaWYgKHR5cGUgPT09ICdnZXQnKSB7CisgICAgICAgIHNo
b3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7CisgICAgICAgIHNob3VsZEJlKHR5
cGVvZiBkZXNjLnNldCwgJ3VuZGVmaW5lZCcpOworICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3Nl
dCcpIHsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAndW5kZWZpbmVkJyk7Cisg
ICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKKyAgICAg
ICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsKKyAgICB9Cit9Citub0lu
bGluZSh0ZXN0QXR0cmlidXRlKTsKKworZnVuY3Rpb24gZ2V0dGVyKCkKK3sKKyAgICBjbGFzcyBD
b2NvYSB7CisgICAgICAgIGdldCBoZWxsbygpIHsKKyAgICAgICAgICAgIHJldHVybiA0MjsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGxldCBvYmplY3QgPSBuZXcgQ29jb2EoKTsKKyAgICB0ZXN0
QXR0cmlidXRlKG9iamVjdC5fX3Byb3RvX18sICdoZWxsbycsICdnZXQnKTsKKyAgICByZXR1cm4g
b2JqZWN0LmhlbGxvOworfQorbm9JbmxpbmUoZ2V0dGVyKTsKKworZnVuY3Rpb24gc2V0dGVyKCkK
K3sKKyAgICBjbGFzcyBDb2NvYSB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAg
ICAgdGhpcy52YWx1ZSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGhlbGxvKHZhbHVlKSB7
CisgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBsZXQgb2JqZWN0ID0gbmV3IENvY29hKCk7CisgICAgdGVzdEF0dHJpYnV0ZShvYmplY3QuX19w
cm90b19fLCAnaGVsbG8nLCAnc2V0Jyk7CisgICAgb2JqZWN0LmhlbGxvID0gNDI7CisgICAgcmV0
dXJuIG9iamVjdC52YWx1ZTsKKworfQorbm9JbmxpbmUoc2V0dGVyKTsKKworZnVuY3Rpb24gYWNj
ZXNzb3JzKCkKK3sKKyAgICBjbGFzcyBDb2NvYSB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkgewor
ICAgICAgICAgICAgdGhpcy52YWx1ZSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgZ2V0IGhlbGxv
KCkgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7CisgICAgICAgIH0KKyAgICAgICAg
c2V0IGhlbGxvKHZhbHVlKSB7CisgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBsZXQgb2JqZWN0ID0gbmV3IENvY29hKCk7CisgICAgdGVzdEF0
dHJpYnV0ZShvYmplY3QuX19wcm90b19fLCAnaGVsbG8nLCAnZ2V0c2V0Jyk7CisgICAgb2JqZWN0
LmhlbGxvID0gNDI7CisgICAgcmV0dXJuIG9iamVjdC5oZWxsbzsKK30KK25vSW5saW5lKGFjY2Vz
c29ycyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgIHNob3VsZEJl
KGdldHRlcigpLCA0Mik7CisgICAgc2hvdWxkQmUoc2V0dGVyKCksIDQyKTsKKyAgICBzaG91bGRC
ZShhY2Nlc3NvcnMoKSwgNDIpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9kZmctcHV0LWFjY2Vzc29ycy1ieS1pZC5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1hY2Nlc3NvcnMtYnktaWQuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjQ2ZGM3OGQ1OTVkNzk1M2U1NTkxMTEzZDM3NjRlMzc5NmExN2IyYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1hY2Nlc3Nv
cnMtYnktaWQuanMKQEAgLTAsMCArMSw3NSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBdHRy
aWJ1dGUob2JqZWN0LCBuYW1lLCB0eXBlKSB7CisgICAgc2hvdWxkQmUoUmVmbGVjdC5oYXMob2Jq
ZWN0LCBuYW1lKSwgdHJ1ZSk7CisgICAgbGV0IGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihvYmplY3QsIG5hbWUpOworICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxl
LCB0cnVlKTsKKyAgICBzaG91bGRCZShkZXNjLmVudW1lcmFibGUsIHRydWUpOworICAgIGlmICh0
eXBlID09PSAnZ2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5j
dGlvbicpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICd1bmRlZmluZWQnKTsK
KyAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzZXQnKSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVv
ZiBkZXNjLmdldCwgJ3VuZGVmaW5lZCcpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5z
ZXQsICdmdW5jdGlvbicpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBk
ZXNjLmdldCwgJ2Z1bmN0aW9uJyk7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwg
J2Z1bmN0aW9uJyk7CisgICAgfQorfQorbm9JbmxpbmUodGVzdEF0dHJpYnV0ZSk7CisKK2Z1bmN0
aW9uIGdldHRlcigpCit7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgZ2V0IGhlbGxvKCkg
eworICAgICAgICAgICAgcmV0dXJuIDQyOworICAgICAgICB9CisgICAgfTsKKworICAgIHRlc3RB
dHRyaWJ1dGUob2JqZWN0LCAnaGVsbG8nLCAnZ2V0Jyk7CisgICAgcmV0dXJuIG9iamVjdC5oZWxs
bzsKK30KK25vSW5saW5lKGdldHRlcik7CisKK2Z1bmN0aW9uIHNldHRlcigpCit7CisgICAgdmFy
IG9iamVjdCA9IHsKKyAgICAgICAgdmFsdWU6IDAsCisgICAgICAgIHNldCBoZWxsbyh2YWx1ZSkg
eworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgfTsKKwor
ICAgIHRlc3RBdHRyaWJ1dGUob2JqZWN0LCAnaGVsbG8nLCAnc2V0Jyk7CisgICAgb2JqZWN0Lmhl
bGxvID0gNDI7CisgICAgcmV0dXJuIG9iamVjdC52YWx1ZTsKKworfQorbm9JbmxpbmUoc2V0dGVy
KTsKKworZnVuY3Rpb24gYWNjZXNzb3JzKCkKK3sKKyAgICB2YXIgb2JqZWN0ID0geworICAgICAg
ICB2YWx1ZTogMCwKKyAgICAgICAgZ2V0IGhlbGxvKCkgeworICAgICAgICAgICAgcmV0dXJuIHRo
aXMudmFsdWU7CisgICAgICAgIH0sCisgICAgICAgIHNldCBoZWxsbyh2YWx1ZSkgeworICAgICAg
ICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgfTsKKworICAgIHRlc3RB
dHRyaWJ1dGUob2JqZWN0LCAnaGVsbG8nLCAnZ2V0c2V0Jyk7CisgICAgb2JqZWN0LmhlbGxvID0g
NDI7CisgICAgcmV0dXJuIG9iamVjdC5oZWxsbzsKK30KK25vSW5saW5lKGFjY2Vzc29ycyk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgIHNob3VsZEJlKGdldHRlcigp
LCA0Mik7CisgICAgc2hvdWxkQmUoc2V0dGVyKCksIDQyKTsKKyAgICBzaG91bGRCZShhY2Nlc3Nv
cnMoKSwgNDIpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9kZmctcHV0LWdldHRlci1ieS1pZC1jbGFzcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1nZXR0ZXItYnktaWQtY2xhc3MuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2Y0ZDZlNmVlYTJlNjRmMjI0ODQ4M2NkYmQ2NjYzNGMzNTZiNGY1ZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1nZXR0ZXItYnkt
aWQtY2xhc3MuanMKQEAgLTAsMCArMSw0NSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBdHRy
aWJ1dGUob2JqZWN0LCBuYW1lLCB0eXBlKSB7CisgICAgc2hvdWxkQmUoUmVmbGVjdC5oYXMob2Jq
ZWN0LCBuYW1lKSwgdHJ1ZSk7CisgICAgbGV0IGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihvYmplY3QsIG5hbWUpOworICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxl
LCB0cnVlKTsKKyAgICBzaG91bGRCZShkZXNjLmVudW1lcmFibGUsIGZhbHNlKTsKKyAgICBpZiAo
dHlwZSA9PT0gJ2dldCcpIHsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVu
Y3Rpb24nKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7
CisgICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBl
b2YgZGVzYy5nZXQsICd1bmRlZmluZWQnKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Mu
c2V0LCAnZnVuY3Rpb24nKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaG91bGRCZSh0eXBlb2Yg
ZGVzYy5nZXQsICdmdW5jdGlvbicpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQs
ICdmdW5jdGlvbicpOworICAgIH0KK30KK25vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOworCitmdW5j
dGlvbiBnZXR0ZXIobmFtZSkKK3sKKyAgICBjbGFzcyBDb2NvYSB7CisgICAgICAgIGNvbnN0cnVj
dG9yKCkgeworICAgICAgICAgICAgdGhpcy5vayA9IDQyOworICAgICAgICB9CisgICAgICAgIGdl
dCBoZWxsbygpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLm9rOworICAgICAgICB9CisgICAg
ICAgIGdldCBbbmFtZV0oKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgb2JqZWN0ID0g
bmV3IENvY29hKCk7CisgICAgdGVzdEF0dHJpYnV0ZShvYmplY3QuX19wcm90b19fLCAnaGVsbG8n
LCAnZ2V0Jyk7CisgICAgdGVzdEF0dHJpYnV0ZShvYmplY3QuX19wcm90b19fLCAnZHVtbXknLCAn
Z2V0Jyk7CisgICAgcmV0dXJuIG9iamVjdC5oZWxsbzsKK30KK25vSW5saW5lKGdldHRlcik7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXR0ZXIoJ2R1
bW15JyksIDQyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZGZnLXB1dC1nZXR0ZXItYnktaWQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LWlkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ODkzZTc0NDFmZDcw
ZDJkNmQwZjA3ZGM5MWMwY2RlMmRiNzVhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LWlkLmpzCkBAIC0wLDAg
KzEsMzkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAo
YWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6
ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0QXR0cmlidXRlKG9iamVjdCwgbmFtZSwg
dHlwZSkgeworICAgIHNob3VsZEJlKFJlZmxlY3QuaGFzKG9iamVjdCwgbmFtZSksIHRydWUpOwor
ICAgIGxldCBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBu
YW1lKTsKKyAgICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7CisgICAgc2hvdWxk
QmUoZGVzYy5lbnVtZXJhYmxlLCB0cnVlKTsKKyAgICBpZiAodHlwZSA9PT0gJ2dldCcpIHsKKyAg
ICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKKyAgICAgICAgc2hv
dWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7CisgICAgfSBlbHNlIGlmICh0eXBl
ID09PSAnc2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICd1bmRlZmlu
ZWQnKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlvbicp
OworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOworICAgIH0K
K30KK25vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOworCitmdW5jdGlvbiBnZXR0ZXIobmFtZSkKK3sK
KyAgICB2YXIgb2JqZWN0ID0geworICAgICAgICBnZXQgaGVsbG8oKSB7CisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5vazsKKyAgICAgICAgfSwKKyAgICAgICAgW25hbWVdOiA0MgorICAgIH07CisK
KyAgICB0ZXN0QXR0cmlidXRlKG9iamVjdCwgJ2hlbGxvJywgJ2dldCcpOworICAgIHJldHVybiBv
YmplY3QuaGVsbG87Cit9Citub0lubGluZShnZXR0ZXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0dGVyKCdvaycpLCA0Mik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LXZh
bC1jbGFzcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1n
ZXR0ZXItYnktdmFsLWNsYXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYjVjNDE4NWRmMGZlMzhkOTI5YmM0
M2FkN2NiNjUxZTBkZDVlMmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LXZhbC1jbGFzcy5qcwpAQCAtMCwwICsx
LDQyIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAn
ICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZShvYmplY3QsIG5hbWUsIHR5
cGUpIHsKKyAgICBzaG91bGRCZShSZWZsZWN0LmhhcyhvYmplY3QsIG5hbWUpLCB0cnVlKTsKKyAg
ICBsZXQgZGVzYyA9IFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgbmFt
ZSk7CisgICAgc2hvdWxkQmUoZGVzYy5jb25maWd1cmFibGUsIHRydWUpOworICAgIHNob3VsZEJl
KGRlc2MuZW51bWVyYWJsZSwgZmFsc2UpOworICAgIGlmICh0eXBlID09PSAnZ2V0JykgeworICAg
ICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlvbicpOworICAgICAgICBzaG91
bGRCZSh0eXBlb2YgZGVzYy5zZXQsICd1bmRlZmluZWQnKTsKKyAgICB9IGVsc2UgaWYgKHR5cGUg
PT09ICdzZXQnKSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ3VuZGVmaW5l
ZCcpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOworICAg
IH0gZWxzZSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7
CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7CisgICAgfQor
fQorbm9JbmxpbmUodGVzdEF0dHJpYnV0ZSk7CisKK2Z1bmN0aW9uIGdldHRlcihuYW1lKQorewor
ICAgIGNsYXNzIENvY29hIHsKKyAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICB0
aGlzLm9rID0gNDI7CisgICAgICAgIH0KKyAgICAgICAgZ2V0IFtuYW1lXSgpIHsKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLm9rOworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IG9iamVjdCA9
IG5ldyBDb2NvYSgpOworICAgIHRlc3RBdHRyaWJ1dGUob2JqZWN0Ll9fcHJvdG9fXywgJ2hlbGxv
JywgJ2dldCcpOworICAgIHJldHVybiBvYmplY3QuaGVsbG87Cit9Citub0lubGluZShnZXR0ZXIp
OworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0dGVy
KCdoZWxsbycpLCA0Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LXZhbC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZGZnLXB1dC1nZXR0ZXItYnktdmFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0YjYxNGE4
Y2NlM2M2YzFmMTVlZjhlNzU5MWFjMzY1NWE0Zjc3YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LXZhbC5qcwpA
QCAtMCwwICsxLDM5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZShvYmplY3Qs
IG5hbWUsIHR5cGUpIHsKKyAgICBzaG91bGRCZShSZWZsZWN0LmhhcyhvYmplY3QsIG5hbWUpLCB0
cnVlKTsKKyAgICBsZXQgZGVzYyA9IFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9i
amVjdCwgbmFtZSk7CisgICAgc2hvdWxkQmUoZGVzYy5jb25maWd1cmFibGUsIHRydWUpOworICAg
IHNob3VsZEJlKGRlc2MuZW51bWVyYWJsZSwgdHJ1ZSk7CisgICAgaWYgKHR5cGUgPT09ICdnZXQn
KSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7CisgICAg
ICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ3VuZGVmaW5lZCcpOworICAgIH0gZWxzZSBp
ZiAodHlwZSA9PT0gJ3NldCcpIHsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAn
dW5kZWZpbmVkJyk7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9u
Jyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVu
Y3Rpb24nKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsK
KyAgICB9Cit9Citub0lubGluZSh0ZXN0QXR0cmlidXRlKTsKKworZnVuY3Rpb24gZ2V0dGVyKG5h
bWUpCit7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgb2s6IDQyLAorICAgICAgICBnZXQg
W25hbWVdKCkgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMub2s7CisgICAgICAgIH0KKyAgICB9
OworCisgICAgdGVzdEF0dHJpYnV0ZShvYmplY3QsICdoZWxsbycsICdnZXQnKTsKKyAgICByZXR1
cm4gb2JqZWN0LmhlbGxvOworfQorbm9JbmxpbmUoZ2V0dGVyKTsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJlKGdldHRlcignaGVsbG8nKSwgNDIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LXNldHRl
ci1ieS1pZC1jbGFzcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZn
LXB1dC1zZXR0ZXItYnktaWQtY2xhc3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI1Yjc5ZDk5MmIxMzk5ZjAz
ZjNjZGU4Mjg4MzZhMTA5NTNhZjJhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1zZXR0ZXItYnktaWQtY2xhc3MuanMKQEAgLTAs
MCArMSw0NiBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlm
IChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1
ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBdHRyaWJ1dGUob2JqZWN0LCBuYW1l
LCB0eXBlKSB7CisgICAgc2hvdWxkQmUoUmVmbGVjdC5oYXMob2JqZWN0LCBuYW1lKSwgdHJ1ZSk7
CisgICAgbGV0IGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3Qs
IG5hbWUpOworICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxlLCB0cnVlKTsKKyAgICBzaG91
bGRCZShkZXNjLmVudW1lcmFibGUsIGZhbHNlKTsKKyAgICBpZiAodHlwZSA9PT0gJ2dldCcpIHsK
KyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKKyAgICAgICAg
c2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7CisgICAgfSBlbHNlIGlmICh0
eXBlID09PSAnc2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICd1bmRl
ZmluZWQnKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlv
bicpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOworICAg
IH0KK30KK25vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOworCitmdW5jdGlvbiBnZXR0ZXIobmFtZSkK
K3sKKyAgICBjbGFzcyBDb2NvYSB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAg
ICAgdGhpcy5vayA9IDA7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGhlbGxvKHZhbHVlKSB7Cisg
ICAgICAgICAgICB0aGlzLm9rID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgZ2V0IFtuYW1l
XSgpIHsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCBvYmplY3QgPSBuZXcgQ29jb2EoKTsK
KyAgICB0ZXN0QXR0cmlidXRlKG9iamVjdC5fX3Byb3RvX18sICdoZWxsbycsICdzZXQnKTsKKyAg
ICB0ZXN0QXR0cmlidXRlKG9iamVjdC5fX3Byb3RvX18sICdkdW1teScsICdnZXQnKTsKKyAgICBv
YmplY3QuaGVsbG8gPSA0MjsKKyAgICByZXR1cm4gb2JqZWN0Lm9rOworfQorbm9JbmxpbmUoZ2V0
dGVyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJlKGdl
dHRlcignZHVtbXknKSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9kZmctcHV0LXNldHRlci1ieS1pZC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1zZXR0ZXItYnktaWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY2ZjNi
OThjYzExZDUxODFhMjAwM2Y5ZWM5YmM2Y2NmMTU5Y2EzMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1zZXR0ZXItYnktaWQuanMK
QEAgLTAsMCArMSw0MSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewor
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jh
ZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBdHRyaWJ1dGUob2JqZWN0
LCBuYW1lLCB0eXBlKSB7CisgICAgc2hvdWxkQmUoUmVmbGVjdC5oYXMob2JqZWN0LCBuYW1lKSwg
dHJ1ZSk7CisgICAgbGV0IGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihv
YmplY3QsIG5hbWUpOworICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxlLCB0cnVlKTsKKyAg
ICBzaG91bGRCZShkZXNjLmVudW1lcmFibGUsIHRydWUpOworICAgIGlmICh0eXBlID09PSAnZ2V0
JykgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlvbicpOworICAg
ICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICd1bmRlZmluZWQnKTsKKyAgICB9IGVsc2Ug
aWYgKHR5cGUgPT09ICdzZXQnKSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwg
J3VuZGVmaW5lZCcpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlv
bicpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1
bmN0aW9uJyk7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7
CisgICAgfQorfQorbm9JbmxpbmUodGVzdEF0dHJpYnV0ZSk7CisKK2Z1bmN0aW9uIHNldHRlcihu
YW1lKQoreworICAgIHZhciBvYmplY3QgPSB7CisgICAgICAgIHNldCBoZWxsbyh2YWx1ZSkgewor
ICAgICAgICAgICAgdGhpcy5vayA9IHZhbHVlOworICAgICAgICB9LAorICAgICAgICBbbmFtZV06
IDAKKyAgICB9OworCisgICAgdGVzdEF0dHJpYnV0ZShvYmplY3QsICdoZWxsbycsICdzZXQnKTsK
KyAgICBvYmplY3QuaGVsbG8gPSA0MjsKKyAgICByZXR1cm4gb2JqZWN0Lm9rOworCit9Citub0lu
bGluZShzZXR0ZXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgc2hv
dWxkQmUoc2V0dGVyKCdvaycpLCA0Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtc2V0dGVyLWJ5LXZhbC1jbGFzcy5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1zZXR0ZXItYnktdmFsLWNsYXNzLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYyOWM5ZWNmZDQzZmZhYzRiNTA4YzM3NGIwOTBmN2NiOTMwMzMwYmYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1w
dXQtc2V0dGVyLWJ5LXZhbC1jbGFzcy5qcwpAQCAtMCwwICsxLDQ0IEBACitmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVu
Y3Rpb24gdGVzdEF0dHJpYnV0ZShvYmplY3QsIG5hbWUsIHR5cGUpIHsKKyAgICBzaG91bGRCZShS
ZWZsZWN0LmhhcyhvYmplY3QsIG5hbWUpLCB0cnVlKTsKKyAgICBsZXQgZGVzYyA9IFJlZmxlY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgbmFtZSk7CisgICAgc2hvdWxkQmUoZGVz
Yy5jb25maWd1cmFibGUsIHRydWUpOworICAgIHNob3VsZEJlKGRlc2MuZW51bWVyYWJsZSwgZmFs
c2UpOworICAgIGlmICh0eXBlID09PSAnZ2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBlb2Yg
ZGVzYy5nZXQsICdmdW5jdGlvbicpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQs
ICd1bmRlZmluZWQnKTsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzZXQnKSB7CisgICAgICAg
IHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ3VuZGVmaW5lZCcpOworICAgICAgICBzaG91bGRC
ZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNo
b3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7CisgICAgICAgIHNob3VsZEJlKHR5
cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7CisgICAgfQorfQorbm9JbmxpbmUodGVzdEF0dHJp
YnV0ZSk7CisKK2Z1bmN0aW9uIHNldHRlcihuYW1lKQoreworICAgIGNsYXNzIENvY29hIHsKKyAg
ICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICB0aGlzLm9rID0gMDsKKyAgICAgICAg
fQorICAgICAgICBzZXQgW25hbWVdKHZhbHVlKSB7CisgICAgICAgICAgICB0aGlzLm9rID0gdmFs
dWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgb2JqZWN0ID0gbmV3IENvY29hKCk7Cisg
ICAgdGVzdEF0dHJpYnV0ZShvYmplY3QuX19wcm90b19fLCAnaGVsbG8nLCAnc2V0Jyk7CisgICAg
b2JqZWN0LmhlbGxvID0gNDI7CisgICAgcmV0dXJuIG9iamVjdC5vazsKKworfQorbm9JbmxpbmUo
c2V0dGVyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJl
KHNldHRlcignaGVsbG8nKSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9kZmctcHV0LXNldHRlci1ieS12YWwuanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtc2V0dGVyLWJ5LXZhbC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
YTM1NDZiNjJmMDY1Nzk1Y2MxOGY1ODFlMGI2NjdmYzI2NWY0MGRlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LXNldHRlci1ieS12
YWwuanMKQEAgLTAsMCArMSw0MSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBdHRyaWJ1dGUo
b2JqZWN0LCBuYW1lLCB0eXBlKSB7CisgICAgc2hvdWxkQmUoUmVmbGVjdC5oYXMob2JqZWN0LCBu
YW1lKSwgdHJ1ZSk7CisgICAgbGV0IGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihvYmplY3QsIG5hbWUpOworICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxlLCB0cnVl
KTsKKyAgICBzaG91bGRCZShkZXNjLmVudW1lcmFibGUsIHRydWUpOworICAgIGlmICh0eXBlID09
PSAnZ2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlvbicp
OworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICd1bmRlZmluZWQnKTsKKyAgICB9
IGVsc2UgaWYgKHR5cGUgPT09ICdzZXQnKSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNj
LmdldCwgJ3VuZGVmaW5lZCcpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdm
dW5jdGlvbicpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdl
dCwgJ2Z1bmN0aW9uJyk7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0
aW9uJyk7CisgICAgfQorfQorbm9JbmxpbmUodGVzdEF0dHJpYnV0ZSk7CisKK2Z1bmN0aW9uIHNl
dHRlcihuYW1lKQoreworICAgIHZhciBvYmplY3QgPSB7CisgICAgICAgIG9rOiAwLAorICAgICAg
ICBzZXQgW25hbWVdKHZhbHVlKSB7CisgICAgICAgICAgICB0aGlzLm9rID0gdmFsdWU7CisgICAg
ICAgIH0KKyAgICB9OworCisgICAgdGVzdEF0dHJpYnV0ZShvYmplY3QsICdoZWxsbycsICdzZXQn
KTsKKyAgICBvYmplY3QuaGVsbG8gPSA0MjsKKyAgICByZXR1cm4gb2JqZWN0Lm9rOworCit9Citu
b0lubGluZShzZXR0ZXIpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAg
c2hvdWxkQmUoc2V0dGVyKCdoZWxsbycpLCA0Mik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264063</attachid>
            <date>2015-10-26 12:42:29 -0700</date>
            <delta_ts>2015-10-26 15:00:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148860-20151027044139.patch</filename>
            <type>text/plain</type>
            <size>69671</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NWVhNDdiNDU1NmExM2Q5ZTE0MjJiMjM1YjM2ZTM0MDhjMDg2NjhlLi5jNzE4MDYyMTEzYzZmNTQ5
MTNiMGJjMDNhYjRmZjUxMzkwNzdjNzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDcgQEAKKzIwMTUtMTAtMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIERGRy9GVEwgc3VwcG9ydCBmb3IgYWNjZXNzb3Ig
cHV0IG9wZXJhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODg2MAorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhY2Nlc3NvciBkZWZpbmluZyBvcHMgaW50byBE
RkcgYW5kIEZUTC4KKyAgICAgICAgVGhlIGZvbGxvd2luZyBERkcgbm9kZXMgYXJlIGludHJvZHVj
ZWQuCisKKyAgICAgICAgICAgIG9wX3B1dF9nZXR0ZXJfYnlfaWQgID0+IFB1dEdldHRlckJ5SWQK
KyAgICAgICAgICAgIG9wX3B1dF9zZXR0ZXJfYnlfaWQgID0+IFB1dFNldHRlckJ5SWQKKyAgICAg
ICAgICAgIG9wX3B1dF9nZXR0ZXJfc2V0dGVyID0+IFB1dEdldHRlclNldHRlckJ5SWQKKyAgICAg
ICAgICAgIG9wX3B1dF9nZXR0ZXJfYnlfdmFsID0+IFB1dEdldHRlckJ5VmFsCisgICAgICAgICAg
ICBvcF9wdXRfc2V0dGVyX2J5X3ZhbCA9PiBQdXRTZXR0ZXJCeVZhbAorCisgICAgICAgIFRoZXNl
IERGRyBub2RlcyBqdXN0IGNhbGwgb3BlcmF0aW9ucy4gQnV0IGl0IGRvZXMgbm90IHByZXZlbnQg
Y29tcGlsaW5nIGluIERGRy9GVEwuCisKKyAgICAgICAgVG8gdXNlIG9wZXJhdGlvbnMgZGVmaW5l
ZCBmb3IgYmFzZWxpbmUgSklULCB3ZSBjbGVhbiB1cCBleGlzdGluZyBvcGVyYXRpb25zLgorICAg
ICAgICBBbmQgcmV1c2UgdGhlc2Ugb3BlcmF0aW9ucyBpbiBERkcgYW5kIEZUTC4KKworICAgICAg
ICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0NhcGFi
aWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToKKyAgICAg
ICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUp
OgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNH
Qyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpOb2RlOjpoYXNJZGVudGlmaWVyKToKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpoYXNBY2Nlc3NvckF0dHJpYnV0ZXMpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmFj
Y2Vzc29yQXR0cmlidXRlcyk6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAg
ICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBk
ZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUp
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvckJ5SWQpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0R2V0dGVyU2V0dGVyQnlJZCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKToK
KyAgICAgICAgV2Ugc2hvdWxkIGZpbGwgYWxsIEdQUnMgYmVmb3JlIGNhbGxpbmcgZmx1c2hSZWdp
c3RlcnMoKS4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0
bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgor
ICAgICAgICAqIGZ0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9M
TFZNOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExW
TTo6Y29tcGlsZVB1dEFjY2Vzc29yQnlJZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvTExWTTo6Y29tcGlsZVB1dEdldHRlclNldHRlckJ5SWQpOgorICAgICAgICAoSlNDOjpG
VEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKToKKyAgICAg
ICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6
CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9ieV9p
ZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfc2V0dGVyX2J5X2lkKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKToKKyAgICAgICAgKiBqaXQv
SklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9w
dXRfZ2V0dGVyX2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9zZXR0ZXJf
YnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIpOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9kZmctcHV0LWFjY2Vzc29ycy1ieS1pZC1jbGFzcy5qczog
QWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0QXR0cmlidXRlKToKKyAg
ICAgICAgKGdldHRlci5Db2NvYS5wcm90b3R5cGUuZ2V0IGhlbGxvKToKKyAgICAgICAgKGdldHRl
ci5Db2NvYSk6CisgICAgICAgIChnZXR0ZXIpOgorICAgICAgICAoc2V0dGVyLkNvY29hKToKKyAg
ICAgICAgKHNldHRlci5Db2NvYS5wcm90b3R5cGUuc2V0IGhlbGxvKToKKyAgICAgICAgKHNldHRl
cik6CisgICAgICAgIChhY2Nlc3NvcnMuQ29jb2EpOgorICAgICAgICAoYWNjZXNzb3JzLkNvY29h
LnByb3RvdHlwZS5nZXQgaGVsbG8pOgorICAgICAgICAoYWNjZXNzb3JzLkNvY29hLnByb3RvdHlw
ZS5zZXQgaGVsbG8pOgorICAgICAgICAoYWNjZXNzb3JzKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvZGZnLXB1dC1hY2Nlc3NvcnMtYnktaWQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAodGVzdEF0dHJpYnV0ZSk6CisgICAgICAgIChnZXR0ZXIub2JqZWN0LmdldCBo
ZWxsbyk6CisgICAgICAgIChnZXR0ZXIpOgorICAgICAgICAoc2V0dGVyLm9iamVjdC5zZXQgaGVs
bG8pOgorICAgICAgICAoc2V0dGVyKToKKyAgICAgICAgKGFjY2Vzc29ycy5vYmplY3QuZ2V0IGhl
bGxvKToKKyAgICAgICAgKGFjY2Vzc29ycy5vYmplY3Quc2V0IGhlbGxvKToKKyAgICAgICAgKGFj
Y2Vzc29ycyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LWlkLWNs
YXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3RBdHRyaWJ1
dGUpOgorICAgICAgICAoZ2V0dGVyLkNvY29hKToKKyAgICAgICAgKGdldHRlci5Db2NvYS5wcm90
b3R5cGUuZ2V0IGhlbGxvKToKKyAgICAgICAgKGdldHRlci5Db2NvYS5wcm90b3R5cGUuZ2V0IG5h
bWUpOgorICAgICAgICAoZ2V0dGVyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZGZnLXB1dC1n
ZXR0ZXItYnktaWQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVz
dEF0dHJpYnV0ZSk6CisgICAgICAgIChnZXR0ZXIub2JqZWN0LmdldCBoZWxsbyk6CisgICAgICAg
IChnZXR0ZXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9kZmctcHV0LWdldHRlci1ieS12YWwt
Y2xhc3MuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdEF0dHJp
YnV0ZSk6CisgICAgICAgIChnZXR0ZXIuQ29jb2EpOgorICAgICAgICAoZ2V0dGVyLkNvY29hLnBy
b3RvdHlwZS5nZXQgbmFtZSk6CisgICAgICAgIChnZXR0ZXIpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9kZmctcHV0LWdldHRlci1ieS12YWwuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAodGVzdEF0dHJpYnV0ZSk6CisgICAgICAgIChnZXR0ZXIub2JqZWN0LmdldCBu
YW1lKToKKyAgICAgICAgKGdldHRlcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2RmZy1wdXQt
c2V0dGVyLWJ5LWlkLWNsYXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAg
ICAgKHRlc3RBdHRyaWJ1dGUpOgorICAgICAgICAoZ2V0dGVyLkNvY29hKToKKyAgICAgICAgKGdl
dHRlci5Db2NvYS5wcm90b3R5cGUuc2V0IGhlbGxvKToKKyAgICAgICAgKGdldHRlci5Db2NvYS5w
cm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoZ2V0dGVyKToKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3MvZGZnLXB1dC1zZXR0ZXItYnktaWQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAodGVzdEF0dHJpYnV0ZSk6CisgICAgICAgIChzZXR0ZXIub2JqZWN0LnNldCBo
ZWxsbyk6CisgICAgICAgIChzZXR0ZXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9kZmctcHV0
LXNldHRlci1ieS12YWwtY2xhc3MuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAodGVzdEF0dHJpYnV0ZSk6CisgICAgICAgIChzZXR0ZXIuQ29jb2EpOgorICAgICAgICAo
c2V0dGVyLkNvY29hLnByb3RvdHlwZS5zZXQgbmFtZSk6CisgICAgICAgIChzZXR0ZXIpOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9kZmctcHV0LXNldHRlci1ieS12YWwuanM6IEFkZGVkLgorICAg
ICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdEF0dHJpYnV0ZSk6CisgICAgICAgIChzZXR0
ZXIub2JqZWN0LnNldCBuYW1lKToKKyAgICAgICAgKHNldHRlcik6CisKIDIwMTUtMTAtMjQgIEJy
aWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVGVhY2ggY3JlYXRlX2hhc2hf
dGFibGUgdG8gb21pdCBidWlsdGlucyBtYWNyb3Mgd2hlbiBnZW5lcmF0aW5nIHRhYmxlcyBmb3Ig
bmF0aXZlLW9ubHkgb2JqZWN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGYyOGNjN2FmZjA2Yjk5
MzMzNTA0ZmZhNTY0YTRjM2M3ZDFlNTI2YTIuLjY4NjhhYTNjOWE4NDkzYzMxMzY5ZjdiNmNlYTM1
ZWI0YjRhNWI2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTIzNjMsNiArMjM2MywxNSBAQAog
ICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBjbG9iYmVyTGltaXQp
OwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAg
Y2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0R2V0dGVyU2V0dGVyQnlJZDoKKyAgICBj
YXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6IHsKKyAgICAgICAg
Y2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJlckxpbWl0KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQogICAgICAgICAKICAgICBjYXNlIEluOiB7CiAgICAgICAgIC8vIEZJ
WE1FOiBXZSBjYW4gZGV0ZXJtaW5lIHdoZW4gdGhlIHByb3BlcnR5IGRlZmluaXRlbHkgZXhpc3Rz
IGJhc2VkIG9uIGFic3RyYWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDY5ZjU0ZjFkMzUxMDUwNjcwYTUwN2IyNGYzZjc2OTQ1YWQ2
YjZhMDYuLmE3ZmNiMmE2ZTBkYzQ4NDkwMTFjNjhkNjVkOGNmYTc4NmY5NzE1ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zNzQ5
LDYgKzM3NDksMzggQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBs
aW1pdCkKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9ieV9pZCk7CiAgICAgICAgIH0K
IAorICAgICAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6CisgICAgICAgIGNhc2Ugb3BfcHV0
X3NldHRlcl9ieV9pZDogeworICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgdW5z
aWduZWQgaWRlbnRpZmllck51bWJlciA9IG1faW5saW5lU3RhY2tUb3AtPm1faWRlbnRpZmllclJl
bWFwW2N1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmRdOworICAgICAgICAgICAgdW5zaWdu
ZWQgYXR0cmlidXRlcyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgICAg
ICAgICBOb2RlKiBhY2Nlc3NvciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzRdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZVR5cGUgb3AgPSAob3Bjb2RlSUQg
PT0gb3BfcHV0X2dldHRlcl9ieV9pZCkgPyBQdXRHZXR0ZXJCeUlkIDogUHV0U2V0dGVyQnlJZDsK
KyAgICAgICAgICAgIGFkZFRvR3JhcGgob3AsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVyKSwgT3BJ
bmZvKGF0dHJpYnV0ZXMpLCBiYXNlLCBhY2Nlc3Nvcik7CisgICAgICAgICAgICBORVhUX09QQ09E
RShvcF9wdXRfZ2V0dGVyX2J5X2lkKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2Ugb3BfcHV0
X2dldHRlcl9zZXR0ZXI6IHsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIHVu
c2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZpZXJS
ZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kXTsKKyAgICAgICAgICAgIHVuc2ln
bmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgICAg
ICAgICAgTm9kZSogZ2V0dGVyID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBzZXR0ZXIgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls1XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAg
IGFkZFRvR3JhcGgoUHV0R2V0dGVyU2V0dGVyQnlJZCwgT3BJbmZvKGlkZW50aWZpZXJOdW1iZXIp
LCBPcEluZm8oYXR0cmlidXRlcyksIGJhc2UsIGdldHRlciwgc2V0dGVyKTsKKyAgICAgICAgICAg
IE5FWFRfT1BDT0RFKG9wX3B1dF9nZXR0ZXJfc2V0dGVyKTsKKyAgICAgICAgfQorCisgICAgICAg
IGNhc2Ugb3BfcHV0X2dldHRlcl9ieV92YWw6CisgICAgICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9i
eV92YWw6IHsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIHN1YnNj
cmlwdCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZCkpOworICAgICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CisgICAgICAgICAgICBOb2RlKiBhY2Nlc3NvciA9IGdldChWaXJ0dWFs
UmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkpOworICAgICAgICAgICAg
Tm9kZVR5cGUgb3AgPSAob3Bjb2RlSUQgPT0gb3BfcHV0X2dldHRlcl9ieV92YWwpID8gUHV0R2V0
dGVyQnlWYWwgOiBQdXRTZXR0ZXJCeVZhbDsKKyAgICAgICAgICAgIGFkZFRvR3JhcGgob3AsIE9w
SW5mbyhhdHRyaWJ1dGVzKSwgYmFzZSwgc3Vic2NyaXB0LCBhY2Nlc3Nvcik7CisgICAgICAgICAg
ICBORVhUX09QQ09ERShvcF9wdXRfZ2V0dGVyX2J5X3ZhbCk7CisgICAgICAgIH0KKwogICAgICAg
ICBjYXNlIG9wX3Byb2ZpbGVfdHlwZTogewogICAgICAgICAgICAgTm9kZSogdmFsdWVUb1Byb2Zp
bGUgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQp
KTsKICAgICAgICAgICAgIGFkZFRvR3JhcGgoUHJvZmlsZVR5cGUsIE9wSW5mbyhjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5sb2NhdGlvbiksIHZhbHVlVG9Qcm9maWxlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBkYWZlNWU4MjNjOGM5MGE4
NDJmZjQ5YTJhZmM5Y2JiMDU5ZmU2M2E2Li45Nzg4YTQ4NGExM2FiYTJmOTFlZTExMzA1MGU2ZTU5
YWM2YWI4NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFi
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwCkBAIC0xNTQsNiArMTU0LDExIEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2
ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVjCiAgICAg
Y2FzZSBvcF9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgIGNh
c2Ugb3BfcHV0X2J5X2lkOgorICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV9pZDoKKyAgICBjYXNl
IG9wX3B1dF9zZXR0ZXJfYnlfaWQ6CisgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX3NldHRlcjoKKyAg
ICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfdmFsOgorICAgIGNhc2Ugb3BfcHV0X3NldHRlcl9ieV92
YWw6CiAgICAgY2FzZSBvcF9qbXA6CiAgICAgY2FzZSBvcF9qdHJ1ZToKICAgICBjYXNlIG9wX2pm
YWxzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggNmM4
NWQ1OWUzMTA1MzljOWFhYmI0MmNmMWRhMWVjMWNlY2VmMmU5OC4uNmZmNDQ1NmZiOWNkNTVhYjM2
NWNlODhlZmI2YTQyMWRmN2M1ZGEyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmgKQEAgLTM3OSw2ICszNzksMTEgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUK
ICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgY2FzZSBQdXRCeUlkRmx1c2g6CiAgICAgY2FzZSBQdXRC
eUlkRGlyZWN0OgorICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dFNldHRlckJ5
SWQ6CisgICAgY2FzZSBQdXRHZXR0ZXJTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0R2V0dGVyQnlW
YWw6CisgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKICAgICBjYXNlIEFycmF5UHVzaDoKICAgICBj
YXNlIEFycmF5UG9wOgogICAgIGNhc2UgQ2FsbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RG9lc0dDLmNwcAppbmRleCA1YzU3ZTAyMmEwZGJiZDMzZjFkZTY0ODViZDUwMTZhZDc5NDBmYzk1
Li4wZTllMWQ4YmNiNDkyODFhMThlYmEwZjVhYTVjOGMyMmYwNjA4NjVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC05NSw2ICs5NSwxMSBAQCBib29sIGRvZXNH
QyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRCeUlkOgogICAgIGNhc2Ug
UHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICBjYXNlIFB1dEdldHRl
ckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0R2V0dGVyU2V0dGVy
QnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6
CiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAg
Y2FzZSBHZXRCdXR0ZXJmbHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcAppbmRleCBlYjY0MTViM2Y0Y2Q2ZGUwMjZhYTlhOTZiNDY2YTNhMTU1MDUxZmViLi40
OTFmYmMxY2M5MzAwYzg2MThhMmZhN2JmZDZiMTUyNTZlMmNmYTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTEwNTcsNiArMTA1NywyNSBAQCBj
bGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dFNl
dHRlckJ5SWQ6IHsKKyAgICAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGls
ZDEoKSk7CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFB1dEdldHRl
clNldHRlckJ5SWQ6IHsKKyAgICAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2Ug
UHV0R2V0dGVyQnlWYWw6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6IHsKKyAgICAgICAg
ICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBm
aXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQzKCkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIEdldEV4ZWN1dGFibGU6IHsKICAgICAgICAgICAg
IGZpeEVkZ2U8RnVuY3Rpb25Vc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCBhYzFhNzU3Y2U0NzUxOTNiMzNj
MzkyMzFmNTY0N2Y2OGViZGNjNTZjLi45NGFkYmU2MTQ2ZWY4N2VkM2Q5NzVmY2QxMGFiMDUwOGIy
N2ViYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtODUzLDYgKzg1Myw5
IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICBjYXNlIFB1
dEJ5SWRGbHVzaDoKICAgICAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgorICAgICAgICBjYXNlIFB1
dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQ
dXRHZXR0ZXJTZXR0ZXJCeUlkOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC04NjQsNiArODY3LDM3IEBAIHN0
cnVjdCBOb2RlIHsKICAgICAgICAgQVNTRVJUKGhhc0lkZW50aWZpZXIoKSk7CiAgICAgICAgIHJl
dHVybiBtX29wSW5mbzsKICAgICB9CisKKyAgICBib29sIGhhc0FjY2Vzc29yQXR0cmlidXRlcygp
CisgICAgeworICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJC
eUlkOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0R2V0dGVy
U2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICAgICAgY2FzZSBQ
dXRTZXR0ZXJCeVZhbDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgaW50
MzJfdCBhY2Nlc3NvckF0dHJpYnV0ZXMoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc0FjY2Vz
c29yQXR0cmlidXRlcygpKTsKKyAgICAgICAgc3dpdGNoIChvcCgpKSB7CisgICAgICAgIGNhc2Ug
UHV0R2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICBjYXNl
IFB1dEdldHRlclNldHRlckJ5SWQ6CisgICAgICAgICAgICByZXR1cm4gbV9vcEluZm8yOworICAg
ICAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgor
ICAgICAgICAgICAgcmV0dXJuIG1fb3BJbmZvOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiAwOwor
ICAgICAgICB9CisgICAgfQogICAgIAogICAgIGJvb2wgaGFzUHJvbW90ZWRMb2NhdGlvbkRlc2Ny
aXB0b3IoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRl
eCAxMzQ5YTVkZjllZWJhNTEwOTU0YTExMDc0M2U0NTA2NmZiMzMzYTBhLi5jMDQ5OGFlYzI5MjYx
NzlkMjE0YjIxMjEyYmRmMzQ5NTc1OTBiYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlVHlwZS5oCkBAIC0xNzksOCArMTc5LDEzIEBACiAgICAgbWFjcm8oR2V0QnlJZCwgTm9k
ZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldEJ5SWRGbHVzaCwg
Tm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKFB1dEJ5SWQsIE5v
ZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhQdXRCeUlkRmx1c2gsIE5vZGVNdXN0R2VuZXJh
dGUgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0QnlJZEZsdXNoLCBOb2RlTXVz
dEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHV0QnlJZERpcmVjdCwgTm9kZU11c3RHZW5lcmF0ZSkg
XAorICAgIG1hY3JvKFB1dEdldHRlckJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNy
byhQdXRTZXR0ZXJCeUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0R2V0dGVy
U2V0dGVyQnlJZCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFB1dEdldHRlckJ5VmFs
LCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0U2V0dGVyQnlWYWwsIE5vZGVNdXN0
R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja1N0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0ZSkg
XAogICAgIG1hY3JvKEdldEV4ZWN1dGFibGUsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKFB1
dFN0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRl
eCBhNDE1MDc1MWE3ZmE1MDEyYmRkNzYzZjEwNWFjNzgwMTZhNDUzNzAzLi5kNzJkYTk3YzYwNzk0
OGNmYmI2MjU3NmQ4ZTEzOTJmMDdkOTUxYWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAt
NjUxLDYgKzY1MSwxMSBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1Ymxp
YyBQaGFzZSB7CiAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKICAgICAgICAgY2FzZSBQdXRC
eU9mZnNldDoKICAgICAgICAgY2FzZSBNdWx0aVB1dEJ5T2Zmc2V0OgorICAgICAgICBjYXNlIFB1
dEdldHRlckJ5SWQ6CisgICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKKyAgICAgICAgY2FzZSBQ
dXRHZXR0ZXJTZXR0ZXJCeUlkOgorICAgICAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgICAg
ICBjYXNlIFB1dFNldHRlckJ5VmFsOgogICAgICAgICBjYXNlIERGRzo6SnVtcDoKICAgICAgICAg
Y2FzZSBCcmFuY2g6CiAgICAgICAgIGNhc2UgU3dpdGNoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA5ZTM1ODBlYzQ0NDViYmQ2YWRmYmM5ZTVl
MDhiODM2NzZjZDUzNDgyLi40MmFiYWQwMjJjNmNhNDViZTYzODcwOTdhY2RhYzY5Mjc0NjY1N2Yz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAt
MTg4LDYgKzE4OCwxMSBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0
YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRCeUlkOgogICAgIGNh
c2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKKyAgICBjYXNlIFB1dEdl
dHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgIGNhc2UgUHV0R2V0dGVyU2V0
dGVyQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAgIGNhc2UgUHV0U2V0dGVyQnlW
YWw6CiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAg
ICAgY2FzZSBHZXRCdXR0ZXJmbHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGViMjU4NWQ0MTUzZGYxMTIxZTA4NzRlMGM5YjZhM2U5
ZTlmZDc2YzQuLjhhM2U3ZjY0NTlmYjExMjM2NDg3MzQ0NDY2YjU5NTA2N2IwZjgyNzMgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC02
NzQxLDYgKzY3NDEsNzkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6d3JpdGVCYXJyaWVyKEdQUlJl
ZyBvd25lckdQUiwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXQKICAgICBvd25lcklzUmVt
ZW1iZXJlZE9ySW5FZGVuLmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVB1dEFjY2Vzc29yQnlJZChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxP
cGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGFjY2Vzc29yKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKworICAgIEdQUlJlZyBiYXNlR1BS
ID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcgYWNjZXNzb3JHUFIgPSBhY2Nlc3Nvci5ncHIoKTsK
KworICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgY2FsbE9wZXJhdGlvbihub2RlLT5vcCgpID09
IFB1dEdldHRlckJ5SWQgPyBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkIDogb3BlcmF0aW9uUHV0U2V0
dGVyQnlJZCwgTm9SZXN1bHQsIGJhc2VHUFIsIGlkZW50aWZpZXJVSUQobm9kZS0+aWRlbnRpZmll
ck51bWJlcigpKSwgbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGFjY2Vzc29yR1BSKTsKKyAg
ICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisKK3Zv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRHZXR0ZXJTZXR0ZXJCeUlkKE5vZGUqIG5vZGUp
Cit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
CisgICAgSlNWYWx1ZU9wZXJhbmQgZ2V0dGVyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICBK
U1ZhbHVlT3BlcmFuZCBzZXR0ZXIodGhpcywgbm9kZS0+Y2hpbGQzKCkpOworCisjaWYgVVNFKEpT
VkFMVUU2NCkKKyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIGdl
dHRlckdQUiA9IGdldHRlci5ncHIoKTsKKyAgICBHUFJSZWcgc2V0dGVyR1BSID0gc2V0dGVyLmdw
cigpOworCisgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blB1dEdldHRlclNldHRlciwgTm9SZXN1bHQsIGJhc2VHUFIsIGlkZW50aWZpZXJVSUQobm9kZS0+
aWRlbnRpZmllck51bWJlcigpKSwgbm9kZS0+YWNjZXNzb3JBdHRyaWJ1dGVzKCksIGdldHRlckdQ
Uiwgc2V0dGVyR1BSKTsKKyNlbHNlCisgICAgLy8gVGhlc2UgSlNWYWx1ZXMgbWF5IGJlIEpTVW5k
ZWZpbmVkIE9SIEpTRnVuY3Rpb24qLgorICAgIC8vIEF0IHRoYXQgdGltZSwKKyAgICAvLyAxLiBJ
ZiB0aGUgSlNWYWx1ZSBpcyBKU1VuZGVmaW5lZCwgaXRzIHBheWxvYWQgYmVjb21lcyBudWxscHRy
LgorICAgIC8vIDIuIElmIHRoZSBKU1ZhbHVlIGlzIEpTRnVuY3Rpb24qLCBpdHMgcGF5bG9hZCBi
ZWNvbWVzIEpTRnVuY3Rpb24qLgorICAgIC8vIFNvIGV4dHJhY3QgcGF5bG9hZCBhbmQgcGFzcyBp
dCB0byBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIuIFRoaXMgaGFjayBpcyB1c2VkIGFzIHRoZSBz
YW1lIHdheSBpbiBiYXNlbGluZSBKSVQuCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigp
OworICAgIEpTVmFsdWVSZWdzIGdldHRlclJlZ3MgPSBnZXR0ZXIuanNWYWx1ZVJlZ3MoKTsKKyAg
ICBKU1ZhbHVlUmVncyBzZXR0ZXJSZWdzID0gc2V0dGVyLmpzVmFsdWVSZWdzKCk7CisKKyAgICBm
bHVzaFJlZ2lzdGVycygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0
dGVyLCBOb1Jlc3VsdCwgYmFzZUdQUiwgaWRlbnRpZmllclVJRChub2RlLT5pZGVudGlmaWVyTnVt
YmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgZ2V0dGVyUmVncy5wYXlsb2FkR1BS
KCksIHNldHRlclJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbmRpZgorICAgIG1faml0LmV4Y2VwdGlv
bkNoZWNrKCk7CisKKyAgICBub1Jlc3VsdChub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEFjY2Vzc29yQnlWYWwoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlT3BlcmFu
ZCBzdWJzY3JpcHQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGFjY2Vzc29yKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKKworICAgIGF1dG8gb3BlcmF0aW9u
ID0gbm9kZS0+b3AoKSA9PSBQdXRHZXR0ZXJCeVZhbCA/IG9wZXJhdGlvblB1dEdldHRlckJ5VmFs
IDogb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWw7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICBHUFJS
ZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIHN1YnNjcmlwdEdQUiA9IHN1YnNj
cmlwdC5ncHIoKTsKKyAgICBHUFJSZWcgYWNjZXNzb3JHUFIgPSBhY2Nlc3Nvci5ncHIoKTsKKwor
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIE5vUmVz
dWx0LCBiYXNlR1BSLCBzdWJzY3JpcHRHUFIsIG5vZGUtPmFjY2Vzc29yQXR0cmlidXRlcygpLCBh
Y2Nlc3NvckdQUik7CisjZWxzZQorICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAg
ICBKU1ZhbHVlUmVncyBzdWJzY3JpcHRSZWdzID0gc3Vic2NyaXB0LmpzVmFsdWVSZWdzKCk7Cisg
ICAgR1BSUmVnIGFjY2Vzc29yR1BSID0gYWNjZXNzb3IuZ3ByKCk7CisKKyAgICBmbHVzaFJlZ2lz
dGVycygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBOb1Jlc3VsdCwgYmFzZUdQUiwg
c3Vic2NyaXB0UmVncy50YWdHUFIoKSwgc3Vic2NyaXB0UmVncy5wYXlsb2FkR1BSKCksIG5vZGUt
PmFjY2Vzc29yQXR0cmlidXRlcygpLCBhY2Nlc3NvckdQUik7CisjZW5kaWYKKyAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgKaW5kZXggNDU4OGI1Y2ZkOTI0MWMyZjI3MWE0MDVmNzAzNWJmNzc5
MDNhYzA3Ni4uZGFlMGM2OTMyN2U0ZDI1MGEwN2Y4NWI5NTdhMTU5ZDgzYmNkMzg5OCAxMDA3NTUK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTE1NSwz
NSArMTE1NSwxNiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CiAKLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihGdW5jdGlvblR5cGUgb3BlcmF0aW9uLCBOb1Jlc3VsdFRhZykKLSAgICB7Ci0gICAgICAg
IHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbik7Ci0gICAgfQotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMT4KLSAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0
VGFnLCBBcmd1bWVudFR5cGUxIGFyZzEpCi0gICAgewotICAgICAgICByZXR1cm4gY2FsbE9wZXJh
dGlvbihvcGVyYXRpb24sIGFyZzEpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
dGlvblR5cGUsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTEsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTI+
Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0
aW9uLCBOb1Jlc3VsdFRhZywgQXJndW1lbnRUeXBlMSBhcmcxLCBBcmd1bWVudFR5cGUyIGFyZzIp
CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0la
QyBvcGVyYXRpb24sIEdQUlJlZyByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwg
aW50MzJfdCBvcDMsIEdQUlJlZyByZWdPcDQpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb24sIGFyZzEsIGFyZzIpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTEsIHR5cGVuYW1lIEFyZ3Vt
ZW50VHlwZTIsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTM+Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0aW9uLCBOb1Jlc3VsdFRhZywgQXJndW1l
bnRUeXBlMSBhcmcxLCBBcmd1bWVudFR5cGUyIGFyZzIsIEFyZ3VtZW50VHlwZTMgYXJnMykKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgYXJnMSwgYXJnMiwg
YXJnMyk7Ci0gICAgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5h
bWUgQXJndW1lbnRUeXBlMSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMiwgdHlwZW5hbWUgQXJndW1l
bnRUeXBlMywgdHlwZW5hbWUgQXJndW1lbnRUeXBlND4KLSAgICBKSVRDb21waWxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24sIE5vUmVzdWx0VGFnLCBBcmd1bWVu
dFR5cGUxIGFyZzEsIEFyZ3VtZW50VHlwZTIgYXJnMiwgQXJndW1lbnRUeXBlMyBhcmczLCBBcmd1
bWVudFR5cGU0IGFyZzQpCi0gICAgewotICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVy
YXRpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpOworICAgICAgICBtX2ppdC5zZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3Rl
ZEltbTMyKG9wMyksIHJlZ09wNCk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlv
bik7CiAgICAgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUg
QXJndW1lbnRUeXBlMSwgdHlwZW5hbWUgQXJndW1lbnRUeXBlMiwgdHlwZW5hbWUgQXJndW1lbnRU
eXBlMywgdHlwZW5hbWUgQXJndW1lbnRUeXBlNCwgdHlwZW5hbWUgQXJndW1lbnRUeXBlNT4KLSAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRpb24s
IE5vUmVzdWx0VGFnLCBBcmd1bWVudFR5cGUxIGFyZzEsIEFyZ3VtZW50VHlwZTIgYXJnMiwgQXJn
dW1lbnRUeXBlMyBhcmczLCBBcmd1bWVudFR5cGU0IGFyZzQsIEFyZ3VtZW50VHlwZTUgYXJnNSkK
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5hbWUuLi4gQXJncz4K
KyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZ1bmN0aW9uVHlwZSBvcGVyYXRp
b24sIE5vUmVzdWx0VGFnLCBBcmdzLi4uIGFyZ3MpCiAgICAgewotICAgICAgICByZXR1cm4gY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpOworICAg
ICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIGFyZ3MuLi4pOwogICAgIH0KIAog
ICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVyYXRpb25fWlogb3Bl
cmF0aW9uLCBGUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCkBAIC0xNTM0
LDYgKzE1MTUsMTYgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKGFyZzEpLCBhcmcyLCBUcnVzdGVk
SW1tMzIoYXJnMyksIGFyZzQsIFRydXN0ZWRJbW0zMihhcmc1KSk7CiAgICAgICAgIHJldHVybiBh
cHBlbmRDYWxsKG9wZXJhdGlvbik7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMgb3BlcmF0aW9uLCBHUFJSZWcgcmVnT3AxLCBH
UFJSZWcgcmVnT3AyLCBpbnQzMl90IG9wMywgR1BSUmVnIHJlZ09wNCkKKyAgICB7CisgICAgICAg
IG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMiwgVHJ1c3Rl
ZEltbTMyKG9wMyksIHJlZ09wNCk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlv
bik7CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRUNJWkpKIG9wZXJhdGlvbiwgR1BSUmVnIHJlZ09wMSwgVW5pcXVlZFN0cmluZ0ltcGwq
IGlkZW50T3AyLCBpbnQzMl90IG9wMywgR1BSUmVnIHJlZ09wNCwgR1BSUmVnIHJlZ09wNSkKKyAg
ICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRy
dXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0LCByZWdPcDUp
OworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgIH0KICNlbHNlIC8v
IFVTRShKU1ZBTFVFMzJfNjQpCiAKIC8vIEVuY29kZWRKU1ZhbHVlIGluIEpTVkFMVUUzMl82NCBp
cyBhIDY0LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBpbGVkIGluIEFSTSBFQUJJLCBpdCBt
dXN0IGJlIGFsaWduZWQgZXZlbi1udW1iZXJlZCByZWdpc3RlciAocjAsIHIyIG9yIFtzcF0pLgpA
QCAtMTg1NSw2ICsxODQ2LDE2IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICAgICAgbV9q
aXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihhcmcxKSwgYXJnMlBh
eWxvYWQsIGFyZzJUYWcsIFRydXN0ZWRJbW0zMihhcmczKSwgYXJnNCwgVHJ1c3RlZEltbTMyKGFy
ZzUpKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9CisgICAg
SklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQyBvcGVy
YXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBp
bnQzMl90IGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2FkLCBhcmcyVGFnLCBUcnVzdGVkSW1t
MzIoYXJnMyksIGFyZzQpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOwor
ICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VDSVpDQyBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRP
cDIsIGludDMyX3Qgb3AzLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCisgICAgeworICAgICAg
ICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgVHJ1c3RlZEltbVB0cihp
ZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCBhcmc0LCBhcmc1KTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyAgICB9CiAjdW5kZWYgRUFCSV8zMkJJVF9EVU1NWV9B
UkcKICN1bmRlZiBTSDRfMzJCSVRfRFVNTVlfQVJHCiAgICAgCkBAIC0yMjQzLDYgKzIyNDQsOSBA
QCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlVHlwZU9mKE5vZGUqKTsK
ICAgICB2b2lkIGNvbXBpbGVDaGVja1N0cnVjdHVyZShOb2RlKiwgR1BSUmVnIGNlbGxHUFIsIEdQ
UlJlZyB0ZW1wR1BSKTsKICAgICB2b2lkIGNvbXBpbGVDaGVja1N0cnVjdHVyZShOb2RlKik7Cisg
ICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JCeUlkKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVQ
dXRHZXR0ZXJTZXR0ZXJCeUlkKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVQdXRBY2Nlc3NvckJ5
VmFsKE5vZGUqKTsKICAgICAKICAgICB2b2lkIG1vdmVUcnVlVG8oR1BSUmVnKTsKICAgICB2b2lk
IG1vdmVGYWxzZVRvKEdQUlJlZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCBhNDQxNTdiYmI3OGUyY2M3ZGE3MDc5
NzJhZjg2YWZkYzgyZGRlMDg3Li4yOTU5MDAzOTI3NDJjYjNlN2U1OTg2MDAxNDBlNmNjMmE0Y2My
Mzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKQEAgLTQxNzAsNiArNDE3MCwyMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2Ug
UHV0R2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dFNldHRlckJ5SWQ6IHsKKyAgICAgICAgY29tcGls
ZVB1dEFjY2Vzc29yQnlJZChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2Fz
ZSBQdXRHZXR0ZXJTZXR0ZXJCeUlkOiB7CisgICAgICAgIGNvbXBpbGVQdXRHZXR0ZXJTZXR0ZXJC
eUlkKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIFB1dEdldHRlckJ5
VmFsOgorICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6IHsKKyAgICAgICAgY29tcGlsZVB1dEFjY2Vz
c29yQnlWYWwobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgR2V0R2xv
YmFsTGV4aWNhbFZhcmlhYmxlOgogICAgIGNhc2UgR2V0R2xvYmFsVmFyOiB7CiAgICAgICAgIEdQ
UlRlbXBvcmFyeSByZXN1bHRQYXlsb2FkKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggYzQzZWY4NDY2Y2Y3MDIzYjUz
ZDdmMzUwYjEwNmI3YmE0MzEzMTFmYy4uOTlhYWRkZmE1MTBlZWQ0M2QxNWU5ZDIxYzg2YmVhMTZk
YTQyZTFjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCkBAIC00MTYyLDYgKzQxNjIsMjMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFB1
dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOiB7CisgICAgICAgIGNvbXBpbGVQ
dXRBY2Nlc3NvckJ5SWQobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2Ug
UHV0R2V0dGVyU2V0dGVyQnlJZDogeworICAgICAgICBjb21waWxlUHV0R2V0dGVyU2V0dGVyQnlJ
ZChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBQdXRHZXR0ZXJCeVZh
bDoKKyAgICBjYXNlIFB1dFNldHRlckJ5VmFsOiB7CisgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3Nv
ckJ5VmFsKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIEdldEdsb2Jh
bExleGljYWxWYXJpYWJsZToKICAgICBjYXNlIEdldEdsb2JhbFZhcjogewogICAgICAgICBHUFJU
ZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
YXBhYmlsaXRpZXMuY3BwCmluZGV4IDJhMDQyMTg2YjFiMWM1Y2UzMDg4YmNjZTU2NTVkMjIwMmNl
Y2ZhZWUuLjVkZDc2MzI1YWNmYzRhZjlkNzFhNWYwYmVhMWE1Y2M0YTI1MjAyMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTIwNCw2ICsy
MDQsMTEgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgY2FzZSBGb3J3YXJkVmFyYXJnczoKICAgICBjYXNlIFN3aXRjaDoKICAgICBjYXNlIFR5cGVP
ZjoKKyAgICBjYXNlIFB1dEdldHRlckJ5SWQ6CisgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAg
IGNhc2UgUHV0R2V0dGVyU2V0dGVyQnlJZDoKKyAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgorICAg
IGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBBcml0aFN1YjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKaW5kZXggNDNkZGZjMzk0M2M0NTczNDc5YWM2
NjcwNjgxZTc5MjEyNzIzNTFhYS4uOGUzMzUyMmE1Yzc5N2Y0NGE4NjI2YWM1NDYwZWExNzY3ODFj
MjUzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNS
ZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNS
ZXBvc2l0b3J5LmgKQEAgLTExOCw2ICsxMTgsOSBAQAogICAgIG1hY3JvKFZfSklUT3BlcmF0aW9u
X0osIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50NjQpKSBcCiAgICAgbWFjcm8oVl9KSVRPcGVy
YXRpb25fWiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQzMikpIFwKICAgICBtYWNybyhWX0pJ
VE9wZXJhdGlvbl9FLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0cikpIFwKKyAgICBtYWNy
byhWX0pJVE9wZXJhdGlvbl9FQ0laQywgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnRQdHIsIGlu
dFB0ciwgaW50UHRyLCBpbnQzMiwgaW50UHRyKSkgXAorICAgIG1hY3JvKFZfSklUT3BlcmF0aW9u
X0VDSVpKSiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnRQdHIsIGludFB0ciwgaW50UHRyLCBp
bnQzMiwgaW50NjQsIGludDY0KSkgXAorICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0VDSlpDLCBm
dW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0ciwgaW50UHRyLCBpbnQ2NCwgaW50MzIsIGludFB0
cikpIFwKICAgICBtYWNybyhaX0pJVE9wZXJhdGlvbl9ELCBmdW5jdGlvblR5cGUoaW50MzIsIGRv
dWJsZVR5cGUpKSBcCiAgICAgbWFjcm8oWl9KSVRPcGVyYXRpb25fRUMsIGZ1bmN0aW9uVHlwZShp
bnQzMiwgaW50UHRyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oWl9KSVRPcGVyYXRpb25fRUdDLCBm
dW5jdGlvblR5cGUoaW50MzIsIGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCmluZGV4IDQ1YjQ1ZjUw
ZDQ3OWRjYzMxMDk5MTg0NTdlOGQxYzUwNmE4YzM3ZGYuLjc4YTBmZDgxNjQxM2Y0NmZjZWVjOTI3
Y2Q4NmY5N2ExNWQ3YTg3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0xMVk0uY3BwCkBAIC01NjUsNiArNTY1LDE3IEBAIGNsYXNzIExvd2VyREZHVG9M
TFZNIHsKICAgICAgICAgY2FzZSBQdXRCeUlkRmx1c2g6CiAgICAgICAgICAgICBjb21waWxlUHV0
QnlJZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoK
KyAgICAgICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgorICAgICAgICAgICAgY29tcGlsZVB1dEFjY2Vz
c29yQnlJZCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHV0R2V0dGVyU2V0
dGVyQnlJZDoKKyAgICAgICAgICAgIGNvbXBpbGVQdXRHZXR0ZXJTZXR0ZXJCeUlkKCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKKyAgICAgICAgY2Fz
ZSBQdXRTZXR0ZXJCeVZhbDoKKyAgICAgICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKCk7
CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CiAgICAgICAg
ICAgICBjb21waWxlR2V0QnV0dGVyZmx5KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTI5OTks
NiArMzAxMCwzOCBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgIH0KKworICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29yQnlJZCgpCisg
ICAgeworICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgIExWYWx1ZSBhY2Nlc3NvciA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDIoKSk7CisgICAg
ICAgIGF1dG8gdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW21fbm9kZS0+aWRlbnRpZmllck51
bWJlcigpXTsKKyAgICAgICAgdm1DYWxsKAorICAgICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG1f
bm9kZS0+b3AoKSA9PSBQdXRHZXR0ZXJCeUlkID8gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZCA6IG9w
ZXJhdGlvblB1dFNldHRlckJ5SWQpLAorICAgICAgICAgICAgbV9jYWxsRnJhbWUsIGJhc2UsIG1f
b3V0LmNvbnN0SW50UHRyKHVpZCksIG1fb3V0LmNvbnN0SW50MzIobV9ub2RlLT5hY2Nlc3NvckF0
dHJpYnV0ZXMoKSksIGFjY2Vzc29yKTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVQdXRHZXR0
ZXJTZXR0ZXJCeUlkKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGdldHRlciA9IGxvd0pTVmFsdWUobV9ub2Rl
LT5jaGlsZDIoKSk7CisgICAgICAgIExWYWx1ZSBzZXR0ZXIgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+
Y2hpbGQzKCkpOworICAgICAgICBhdXRvIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKVttX25v
ZGUtPmlkZW50aWZpZXJOdW1iZXIoKV07CisgICAgICAgIHZtQ2FsbCgKKyAgICAgICAgICAgIG1f
b3V0Lm9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIpLAorICAgICAgICAgICAgbV9j
YWxsRnJhbWUsIGJhc2UsIG1fb3V0LmNvbnN0SW50UHRyKHVpZCksIG1fb3V0LmNvbnN0SW50MzIo
bV9ub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSksIGdldHRlciwgc2V0dGVyKTsKKworICAgIH0K
KworICAgIHZvaWQgY29tcGlsZVB1dEFjY2Vzc29yQnlWYWwoKQorICAgIHsKKyAgICAgICAgTFZh
bHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgc3Vi
c2NyaXB0ID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIGFj
Y2Vzc29yID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgdm1DYWxsKAorICAg
ICAgICAgICAgbV9vdXQub3BlcmF0aW9uKG1fbm9kZS0+b3AoKSA9PSBQdXRHZXR0ZXJCeVZhbCA/
IG9wZXJhdGlvblB1dEdldHRlckJ5VmFsIDogb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwpLAorICAg
ICAgICAgICAgbV9jYWxsRnJhbWUsIGJhc2UsIHN1YnNjcmlwdCwgbV9vdXQuY29uc3RJbnQzMiht
X25vZGUtPmFjY2Vzc29yQXR0cmlidXRlcygpKSwgYWNjZXNzb3IpOworICAgIH0KICAgICAKICAg
ICB2b2lkIGNvbXBpbGVBcnJheVB1c2goKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmlu
ZGV4IDkyMGRhZTIyY2Y5ZTZjMzNhYTZkY2FmZThjZmYxZWEyMGU1ZDFhMWQuLjQxMGE4Y2JiYTRj
Y2NjMWU0ZDYxZGQyZDg4M2M0ZjAzYjY2OTQ3ZWEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApA
QCAtNzYyLDkgKzc2MiwxMyBAQAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0UpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDLCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0MsIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDLCBSZWdpc3RlcklELCBjb25zdCBJZGVudGlmaWVy
KiwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkNDLCBSZWdpc3RlcklELCBjb25zdCBJZGVu
dGlmaWVyKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CisgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkMsIFJlZ2lz
dGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7CisgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkND
LCBSZWdpc3RlcklELCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMsIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOworI2Vsc2UKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQywgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7CisjZW5kaWYKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
RSwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRVpTeW10YWJKLCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJ
RCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRVpTeW10YWJKLCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJRCk7CkBAIC03NzUs
MTIgKzc3OSwxMCBAQAogI2Vsc2UKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQpOwogI2VuZGlmCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKLCBSZWdpc3RlcklELCBjb25zdCBJZGVudGlmaWVy
KiwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKSiwgUmVnaXN0ZXJJRCwgY29uc3QgSWRl
bnRpZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSlpKLCBSZWdp
c3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKICNpZiBVU0UoSlNWQUxV
RTY0KQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEZfSklUT3Bl
cmF0aW9uX0VGSlpaLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklE
KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FU3NpSkpJLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQs
IFVuaXF1ZWRTdHJpbmdJbXBsKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkpKLCBSZWdpc3RlcklELCBVbmlxdWVkU3RyaW5n
SW1wbCosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogI2Vsc2UKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FU3NpSkpJ
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQs
IFJlZ2lzdGVySUQsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRJbmxpbmVzLmgKaW5kZXggYTM0YjdhMGM5ZGRmNWVmZjk2NjY0ZTkzNDFjMjZm
NDQ5NTY0MWQ1Ni4uYjVlYTA4MTM0Yjg0NDgyZjk1YTZhNDc4MTY2MGQyMzQxN2M4YTFlMiAxMDA3
NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKQEAgLTQwNiw2ICs0MDYsMTEgQEAg
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25XaXRo
Q2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2UKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhDYWxsRnJh
bWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpD
IG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9w
MiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQoreworICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1t
MzIob3AzKSwgcmVnT3A0KTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhvcGVyYXRpb24pOworfQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKIEFMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKWlog
b3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgaW50MzJfdCBhcmcyLCBpbnQzMl90IGFyZzMpCkBAIC01
NDEsMTkgKzU0NiwxMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpbwogICAgIHJldHVybiBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VK
SWRaSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBjb25zdCBJZGVudGlmaWVyKiBpZGVu
dE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQotewotICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1QdHIoaWRlbnRPcDIpLCBUcnVzdGVk
SW1tMzIob3AzKSwgcmVnT3A0KTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25D
aGVjayhvcGVyYXRpb24pOwotfQotCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSklkWkpKIG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywg
UmVnaXN0ZXJJRCByZWdPcDQsIFJlZ2lzdGVySUQgcmVnT3A1KQorQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkpK
IG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9w
MiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0LCBSZWdpc3RlcklEIHJlZ09wNSkKIHsK
ICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlk
ZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCwgcmVnT3A1KTsKICAgICByZXR1cm4g
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FSkpaSiBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMiwg
aW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0KQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMgb3BlcmF0
aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIsIGludDMyX3Qgb3AzLCBS
ZWdpc3RlcklEIHJlZ09wNCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVn
T3AxLCByZWdPcDIsIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQpOwogICAgIHJldHVybiBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CkBAIC02NzUsMTMgKzY3NCw3IEBA
IEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNf
SklUT3BlcmF0aW9uX0VKSiBvcGVyYXRpCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkMgb3BlcmF0aW9uLCBS
ZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGludDMyX3Qgb3Az
LCBSZWdpc3RlcklEIHJlZ09wNCkKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
cmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09w
NCk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsK
LX0KLQotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUNJWkNDIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIGNv
bnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQs
IFJlZ2lzdGVySUQgcmVnT3A1KQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkNDIG9wZXJhdGlvbiwgUmVnaXN0
ZXJJRCByZWdPcDEsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJl
Z2lzdGVySUQgcmVnT3A0LCBSZWdpc3RlcklEIHJlZ09wNSkKIHsKICAgICBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZElt
bTMyKG9wMyksIHJlZ09wNCwgcmVnT3A1KTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhvcGVyYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKaW5kZXggMmI1MzBmNWY3OGM5ZjRmNzQ5ZGViYjA0NzhkYjE2ZjEyOGIyODcx
YS4uMWY4NGQ2NjMzMmFhMmZjZDAwNTRhZmVjODgyMDRhN2ZjMjgzYmIwZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xMzUzLDEwOSArMTM1Myw3
OCBAQCBzdGF0aWMgdm9pZCBwdXRBY2Nlc3NvckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIGJhc2UsIEpTVmFsdWUgc3Vic2NyaXB0LAogICAgICAgICBiYXNlLT5wdXRTZXR0ZXIoZXhl
YywgcHJvcGVydHlLZXksIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCi0jaWYgVVNFKEpTVkFM
VUU2NCkKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVyKiBp
ZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJW
YWx1ZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0
ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMyX3Qg
b3B0aW9ucywgSlNDZWxsKiBnZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKLSAgICBBU1NFUlQo
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7Ci0gICAgSlNP
YmplY3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZh
bHVlKSk7CisgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOworICAgIEpT
T2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAotICAgIEpTVmFsdWUgZ2V0
dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRHZXR0ZXJWYWx1ZSk7Ci0gICAgQVNTRVJUKGdl
dHRlci5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywgKmlkZW50aWZp
ZXIsIGFzT2JqZWN0KGdldHRlciksIG9wdGlvbnMpOworICAgIEFTU0VSVChnZXR0ZXItPmlzT2Jq
ZWN0KCkpOworICAgIGJhc2VPYmotPnB1dEdldHRlcihleGVjLCB1aWQsIGdldHRlciwgb3B0aW9u
cyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9iamVjdFZhbHVlLCBJZGVudGlmaWVy
KiBpZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0
ZXJWYWx1ZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNT
dGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIGludDMy
X3Qgb3B0aW9ucywgSlNDZWxsKiBzZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKLSAgICBBU1NF
UlQoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7Ci0gICAg
SlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVj
dFZhbHVlKSk7CisgICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOworICAg
IEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAotICAgIEpTVmFsdWUg
c2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7Ci0gICAgQVNTRVJU
KHNldHRlci5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywgKmlkZW50
aWZpZXIsIGFzT2JqZWN0KHNldHRlciksIG9wdGlvbnMpOworICAgIEFTU0VSVChzZXR0ZXItPmlz
T2JqZWN0KCkpOworICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVjLCB1aWQsIHNldHRlciwgb3B0
aW9ucyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50
aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3QgYXR0cmlidXRlLAotICAgIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNldHRlclZhbHVlKQor
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4ZWNTdGF0ZSogZXhl
YywgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90
IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKLSAgICBBU1NF
UlQoSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7Ci0gICAg
SlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVj
dFZhbHVlKSk7Ci0KLSAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpj
cmVhdGUodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0KLSAgICBKU1ZhbHVlIGdl
dHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkR2V0dGVyVmFsdWUpOwotICAgIEpTVmFsdWUg
c2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7Ci0gICAgQVNTRVJU
KGdldHRlci5pc09iamVjdCgpIHx8IGdldHRlci5pc1VuZGVmaW5lZCgpKTsKLSAgICBBU1NFUlQo
c2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzVW5kZWZpbmVkKCkpOwotICAgIEFTU0VSVChn
ZXR0ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNPYmplY3QoKSk7Ci0KLSAgICBpZiAoIWdldHRl
ci5pc1VuZGVmaW5lZCgpKQotICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCksIGFzT2JqZWN0KGdldHRlcikpOwotICAgIGlmICghc2V0dGVy
LmlzVW5kZWZpbmVkKCkpCi0gICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSwgYXNPYmplY3Qoc2V0dGVyKSk7Ci0gICAgYmFzZU9iai0+cHV0
RGlyZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwor
ICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIpLCBBY2Nlc3Nv
clR5cGU6OkdldHRlcik7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0
ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEdldHRlcikKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0
ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogc2V0dGVyKQogewogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigm
dm0sIGV4ZWMpOwotICAgIEpTT2JqZWN0KiBiYXNlID0gYXNPYmplY3QoSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRCYXNlKSk7Ci0gICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFN1YnNjcmlwdCk7Ci0gICAgSlNPYmplY3QqIGdldHRlciA9IGFzT2JqZWN0KEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkR2V0dGVyKSk7Ci0gICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBi
YXNlLCBzdWJzY3JpcHQsIGF0dHJpYnV0ZSwgZ2V0dGVyLCBBY2Nlc3NvclR5cGU6OkdldHRlcik7
Ci19CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNl
dHRlcikKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLSAgICBKU09iamVjdCogYmFzZSA9IGFzT2JqZWN0KEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSkpOwotICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwotICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBh
c09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFNldHRlcikpOwotICAgIHB1dEFjY2Vzc29y
QnlWYWwoZXhlYywgYmFzZSwgc3Vic2NyaXB0LCBhdHRyaWJ1dGUsIHNldHRlciwgQWNjZXNzb3JU
eXBlOjpTZXR0ZXIpOworICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSks
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChz
ZXR0ZXIpLCBBY2Nlc3NvclR5cGU6OlNldHRlcik7CiB9CiAKLSNlbHNlCi12b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2Jq
ZWN0LCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCogZ2V0
dGVyKQorI2lmIFVTRShKU1ZBTFVFNjQpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBvYmplY3QsIFVuaXF1ZWRTdHJp
bmdJbXBsKiB1aWQsIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkR2V0
dGVyVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTZXR0ZXJWYWx1ZSkKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBl
eGVjKTsKIAogICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09iamVjdCgpKTsKLSAgICBK
U09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7CisgICAgSlNPYmplY3QqIGJh
c2VPYmogPSBhc09iamVjdChvYmplY3QpOwogCi0gICAgQVNTRVJUKGdldHRlci0+aXNPYmplY3Qo
KSk7Ci0gICAgYmFzZU9iai0+cHV0R2V0dGVyKGV4ZWMsICppZGVudGlmaWVyLCBnZXR0ZXIsIG9w
dGlvbnMpOwotfQotCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChF
eGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBp
bnQzMl90IG9wdGlvbnMsIEpTQ2VsbCogc2V0dGVyKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOworICAgIEdl
dHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKTsKIAotICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09i
amVjdCgpKTsKLSAgICBKU09iamVjdCogYmFzZU9iaiA9IG9iamVjdC0+Z2V0T2JqZWN0KCk7Cisg
ICAgSlNWYWx1ZSBnZXR0ZXIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEdldHRlclZhbHVlKTsK
KyAgICBKU1ZhbHVlIHNldHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU2V0dGVyVmFsdWUp
OworICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBnZXR0ZXIuaXNVbmRlZmluZWQoKSk7
CisgICAgQVNTRVJUKHNldHRlci5pc09iamVjdCgpIHx8IHNldHRlci5pc1VuZGVmaW5lZCgpKTsK
KyAgICBBU1NFUlQoZ2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzT2JqZWN0KCkpOwogCi0g
ICAgQVNTRVJUKHNldHRlci0+aXNPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0U2V0dGVyKGV4
ZWMsICppZGVudGlmaWVyLCBzZXR0ZXIsIG9wdGlvbnMpOworICAgIGlmICghZ2V0dGVyLmlzVW5k
ZWZpbmVkKCkpCisgICAgICAgIGFjY2Vzc29yLT5zZXRHZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgYXNPYmplY3QoZ2V0dGVyKSk7CisgICAgaWYgKCFzZXR0ZXIuaXNVbmRl
ZmluZWQoKSkKKyAgICAgICAgYWNjZXNzb3ItPnNldFNldHRlcih2bSwgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLCBhc09iamVjdChzZXR0ZXIpKTsKKyAgICBiYXNlT2JqLT5wdXREaXJlY3RB
Y2Nlc3NvcihleGVjLCB1aWQsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCi12b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxs
KiBvYmplY3QsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3QgYXR0cmlidXRlLCBKU0Nl
bGwqIGdldHRlciwgSlNDZWxsKiBzZXR0ZXIpCisjZWxzZQordm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBV
bmlxdWVkU3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBnZXR0ZXIs
IEpTQ2VsbCogc2V0dGVyKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCiAgICAgQVNTRVJUKG9iamVjdCAm
JiBvYmplY3QtPmlzT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5n
ZXRPYmplY3QoKTsKKyAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0KG9iamVjdCk7CiAK
ICAgICBHZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CiAKQEAgLTE0NjcsMjUgKzE0MzYsOCBAQCB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
SlNDZWxsKiBvYmplY3QsIElkZQogICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGdldHRlci0+Z2V0T2JqZWN0KCkpOwogICAgIGlmIChz
ZXR0ZXIpCiAgICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSwgc2V0dGVyLT5nZXRPYmplY3QoKSk7Ci0gICAgYmFzZU9iai0+cHV0RGlyZWN0
QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwotfQotCi12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoRXhlY1N0YXRlKiBleGVj
LCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3Qg
YXR0cmlidXRlLCBKU0NlbGwqIGdldHRlcikKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwot
ICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLQotICAgIHB1dEFj
Y2Vzc29yQnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
U3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09iamVjdChnZXR0ZXIpLCBBY2Nlc3NvclR5cGU6Okdl
dHRlcik7CisgICAgYmFzZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgdWlkLCBhY2Nlc3Nv
ciwgYXR0cmlidXRlKTsKIH0KLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRl
ckJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgSlNDZWxsKiBzZXR0ZXIpCi17Ci0gICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2
bSwgZXhlYyk7Ci0KLSAgICBwdXRBY2Nlc3NvckJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2UpLCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCksIGF0dHJpYnV0ZSwgYXNPYmplY3Qoc2V0
dGVyKSwgQWNjZXNzb3JUeXBlOjpTZXR0ZXIpOwotfQotCiAjZW5kaWYKIAogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblBvcFNjb3BlKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBzY29wZVJl
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggYWFjYTM1
YTIxZDA5N2E2NmI0ODFmYTUyMDVjNjg1MTMyMzNjZDU2Yi4uZjZjNTdmM2QxY2I3ZTQ1NjIyNjM2
MmE5MmEwZmQwOTk0MDU5OWQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmgKQEAgLTE4OSw4ICsxODksOSBAQAogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FQ2IpKEV4ZWNTdGF0ZSosIENvZGVCbG9jayopOwogdHlwZWRlZiB2
b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2Vs
bCosIEpTQ2VsbCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlv
bl9FQ0ljZikoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSW5saW5lQ2FsbEZyYW1lKik7Ci10eXBlZGVm
IHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDKShFeGVjU3RhdGUqLCBK
U0NlbGwqLCBJZGVudGlmaWVyKiwgaW50MzJfdCwgSlNDZWxsKik7Ci10eXBlZGVmIHZvaWQgSklU
X09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwg
SWRlbnRpZmllciosIGludDMyX3QsIEpTQ2VsbCosIEpTQ2VsbCopOwordHlwZWRlZiB2b2lkIEpJ
VF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0laQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwg
VW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBKU0NlbGwqKTsKK3R5cGVkZWYgdm9pZCBKSVRf
T1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNJWkNDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBV
bmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QsIEpTQ2VsbCosIEpTQ2VsbCopOwordHlwZWRlZiB2
b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0laSkopKEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25f
RUNKWkMpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBKU0Nl
bGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNDSWNm
KShFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqLCBJbmxpbmVDYWxsRnJhbWUqKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNKSikoRXhlY1N0YXRlKiwg
SlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKQEAgLTIwMCw5ICsyMDEs
NiBAQAogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FWlN5bXRh
YkopKEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpOwog
dHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSikoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9w
ZXJhdGlvbl9FSkNJKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSlNDZWxsKiwgVW5pcXVl
ZFN0cmluZ0ltcGwqKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRp
b25fRUpJZFpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIGludDMy
X3QsIEVuY29kZWRKU1ZhbHVlKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRP
cGVyYXRpb25fRUpJZFpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIq
LCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwotdHlwZWRlZiB2b2lk
IEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpaSikoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBl
ZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRl
ZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpKQXApKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJv
ZmlsZSopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpK
QnkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEJ5VmFsSW5mbyopOwpAQCAtMzEzLDE4ICszMTEsMTQgQEAKIFNsb3dQYXRoUmV0dXJu
VHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSosIGludDMyX3Qp
IFdURl9JTlRFUk5BTDsKICNlbmRpZgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5
SW5kZXgoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIEVuY29kZWRKU1ZhbHVl
KTsKLSNpZiBVU0UoSlNWQUxVRTY0KQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdl
dHRlckJ5SWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90
IG9wdGlvbnMsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRl
bnRpZmllciosIGludDMyX3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5B
TDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBFbmNv
ZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBpbnQz
Ml90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBp
bnQzMl90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmll
ciosIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Cit2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJZChFeGVjU3RhdGUqLCBKU0Nl
bGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3Qgb3B0aW9ucywgSlNDZWxsKikgV1RGX0lO
VEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0
YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2Vs
bCopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJC
eVZhbChFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1
dGUsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJf
dCBhdHRyaWJ1dGUsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKKyNpZiBVU0UoSlNWQUxVRTY0KQor
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUqLCBK
U0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QgYXR0cmlidXRlLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKKyNlbHNlCit2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1
ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCosIEpTQ2VsbCopIFdURl9J
TlRFUk5BTDsKICNlbmRpZgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hGdW5jdGlv
bk5hbWVTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1Zh
bHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUo
RXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBiMTQ2YjIwOTg3NjhiMmE4ZmM2
YTk5MWQ0M2RlYjQ1MTU0NjRlMjFiLi4zMTc5Zjk4ZTU4MDMwZDYxZjBlYjZjYTE0ZjliMzI0ODZh
NDQ0NGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcApAQCAtNDkyLDcgKzQ5Miw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJf
YnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKICAgICBp
bnQzMl90IG9wdGlvbnMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIGVt
aXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCwgcmVn
VDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyQnlJZCwgcmVnVDAsICZt
X2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwg
b3B0aW9ucywgcmVnVDEpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyQnlJ
ZCwgcmVnVDAsIG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQpLmltcGwoKSwgb3B0aW9ucywgcmVnVDEpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9v
cF9wdXRfc2V0dGVyX2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC01
MDAsNyArNTAwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDApOwogICAgIGludDMyX3Qgb3B0aW9u
cyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMSk7Ci0gICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCByZWdUMCwgJm1fY29kZUJsb2NrLT5p
ZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLCBvcHRpb25zLCByZWdU
MSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRTZXR0ZXJCeUlkLCByZWdUMCwgbV9j
b2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkuaW1w
bCgpLCBvcHRpb25zLCByZWdUMSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJf
c2V0dGVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC01MDksNyArNTA5LDcg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICBpbnQzMl90IGF0dHJpYnV0ZSA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kLCByZWdUMSk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kLCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZp
ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCksIGF0dHJpYnV0ZSwgcmVnVDEsIHJl
Z1QyKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciwgcmVnVDAs
IG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
LmltcGwoKSwgYXR0cmlidXRlLCByZWdUMSwgcmVnVDIpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9v
cF9wdXRfZ2V0dGVyX2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5j
cHAKaW5kZXggZDA0NzdmZDE5NDZkMmVkNTAwOGU4N2MxNGVhOGMyOGJmYmJhZjIyNi4uNjg5MmUw
OTYwMGQxMWU4NTkzY2Q4MDhiNWQ2OGFlYTY2ZTJiNGUxYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC02Niw3ICs2
Niw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMSk7CiAg
ICAgZW1pdExvYWRQYXlsb2FkKGdldHRlciwgcmVnVDMpOwotICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uUHV0R2V0dGVyQnlJZCwgcmVnVDEsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9w
ZXJ0eSksIG9wdGlvbnMsIHJlZ1QzKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdl
dHRlckJ5SWQsIHJlZ1QxLCBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSkuaW1wbCgp
LCBvcHRpb25zLCByZWdUMyk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlf
aWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTc4LDcgKzc4LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfcHV0X3NldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogCiAgICAgZW1pdExvYWRQYXlsb2FkKGJhc2UsIHJlZ1QxKTsKICAgICBlbWl0TG9h
ZFBheWxvYWQoc2V0dGVyLCByZWdUMyk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRT
ZXR0ZXJCeUlkLCByZWdUMSwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKHByb3BlcnR5KSwgb3B0
aW9ucywgcmVnVDMpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwg
cmVnVDEsIG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKHByb3BlcnR5KS5pbXBsKCksIG9wdGlvbnMs
IHJlZ1QzKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfcHV0X2dldHRlcl9zZXR0ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICBlbWl0TG9hZFBheWxvYWQoYmFzZSwgcmVnVDEpOwogICAgIGVtaXRMb2FkUGF5bG9hZChn
ZXR0ZXIsIHJlZ1QzKTsKICAgICBlbWl0TG9hZFBheWxvYWQoc2V0dGVyLCByZWdUNCk7Ci0gICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QxLCAmbV9jb2RlQmxv
Y2stPmlkZW50aWZpZXIocHJvcGVydHkpLCBhdHRyaWJ1dGUsIHJlZ1QzLCByZWdUNCk7CisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIHJlZ1QxLCBtX2NvZGVCbG9j
ay0+aWRlbnRpZmllcihwcm9wZXJ0eSkuaW1wbCgpLCBhdHRyaWJ1dGUsIHJlZ1QzLCByZWdUNCk7
CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfYnlfdmFsKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2RmZy1wdXQtYWNjZXNzb3JzLWJ5LWlkLWNsYXNzLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LWFjY2Vzc29ycy1ieS1pZC1jbGFzcy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zYjdhYzViNTNmMDkyZmRmYjgzMjY5MTI5ZmFjZjgxYTE4YTJhNGI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0
LWFjY2Vzc29ycy1ieS1pZC1jbGFzcy5qcwpAQCAtMCwwICsxLDgyIEBACitmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVu
Y3Rpb24gdGVzdEF0dHJpYnV0ZShvYmplY3QsIG5hbWUsIHR5cGUpIHsKKyAgICBzaG91bGRCZShS
ZWZsZWN0LmhhcyhvYmplY3QsIG5hbWUpLCB0cnVlKTsKKyAgICBsZXQgZGVzYyA9IFJlZmxlY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgbmFtZSk7CisgICAgc2hvdWxkQmUoZGVz
Yy5jb25maWd1cmFibGUsIHRydWUpOworICAgIHNob3VsZEJlKGRlc2MuZW51bWVyYWJsZSwgZmFs
c2UpOworICAgIGlmICh0eXBlID09PSAnZ2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBlb2Yg
ZGVzYy5nZXQsICdmdW5jdGlvbicpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQs
ICd1bmRlZmluZWQnKTsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzZXQnKSB7CisgICAgICAg
IHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ3VuZGVmaW5lZCcpOworICAgICAgICBzaG91bGRC
ZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNo
b3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7CisgICAgICAgIHNob3VsZEJlKHR5
cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7CisgICAgfQorfQorbm9JbmxpbmUodGVzdEF0dHJp
YnV0ZSk7CisKK2Z1bmN0aW9uIGdldHRlcigpCit7CisgICAgY2xhc3MgQ29jb2EgeworICAgICAg
ICBnZXQgaGVsbG8oKSB7CisgICAgICAgICAgICByZXR1cm4gNDI7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBsZXQgb2JqZWN0ID0gbmV3IENvY29hKCk7CisgICAgdGVzdEF0dHJpYnV0ZShvYmpl
Y3QuX19wcm90b19fLCAnaGVsbG8nLCAnZ2V0Jyk7CisgICAgcmV0dXJuIG9iamVjdC5oZWxsbzsK
K30KK25vSW5saW5lKGdldHRlcik7CisKK2Z1bmN0aW9uIHNldHRlcigpCit7CisgICAgY2xhc3Mg
Q29jb2EgeworICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgIHRoaXMudmFsdWUg
PSAwOworICAgICAgICB9CisgICAgICAgIHNldCBoZWxsbyh2YWx1ZSkgeworICAgICAgICAgICAg
dGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IG9iamVjdCA9
IG5ldyBDb2NvYSgpOworICAgIHRlc3RBdHRyaWJ1dGUob2JqZWN0Ll9fcHJvdG9fXywgJ2hlbGxv
JywgJ3NldCcpOworICAgIG9iamVjdC5oZWxsbyA9IDQyOworICAgIHJldHVybiBvYmplY3QudmFs
dWU7CisKK30KK25vSW5saW5lKHNldHRlcik7CisKK2Z1bmN0aW9uIGFjY2Vzc29ycygpCit7Cisg
ICAgY2xhc3MgQ29jb2EgeworICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgIHRo
aXMudmFsdWUgPSAwOworICAgICAgICB9CisgICAgICAgIGdldCBoZWxsbygpIHsKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLnZhbHVlOworICAgICAgICB9CisgICAgICAgIHNldCBoZWxsbyh2YWx1
ZSkgeworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgfQor
CisgICAgbGV0IG9iamVjdCA9IG5ldyBDb2NvYSgpOworICAgIHRlc3RBdHRyaWJ1dGUob2JqZWN0
Ll9fcHJvdG9fXywgJ2hlbGxvJywgJ2dldHNldCcpOworICAgIG9iamVjdC5oZWxsbyA9IDQyOwor
ICAgIHJldHVybiBvYmplY3QuaGVsbG87Cit9Citub0lubGluZShhY2Nlc3NvcnMpOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICBzaG91bGRCZShnZXR0ZXIoKSwgNDIp
OworICAgIHNob3VsZEJlKHNldHRlcigpLCA0Mik7CisgICAgc2hvdWxkQmUoYWNjZXNzb3JzKCks
IDQyKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZGZnLXB1dC1hY2Nlc3NvcnMtYnktaWQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2RmZy1wdXQtYWNjZXNzb3JzLWJ5LWlkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0NmRjNzhkNTk1
ZDc5NTNlNTU5MTExM2QzNzY0ZTM3OTZhMTdiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtYWNjZXNzb3JzLWJ5LWlkLmpzCkBA
IC0wLDAgKzEsNzUgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0QXR0cmlidXRlKG9iamVjdCwg
bmFtZSwgdHlwZSkgeworICAgIHNob3VsZEJlKFJlZmxlY3QuaGFzKG9iamVjdCwgbmFtZSksIHRy
dWUpOworICAgIGxldCBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2Jq
ZWN0LCBuYW1lKTsKKyAgICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7CisgICAg
c2hvdWxkQmUoZGVzYy5lbnVtZXJhYmxlLCB0cnVlKTsKKyAgICBpZiAodHlwZSA9PT0gJ2dldCcp
IHsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKKyAgICAg
ICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7CisgICAgfSBlbHNlIGlm
ICh0eXBlID09PSAnc2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICd1
bmRlZmluZWQnKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24n
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5j
dGlvbicpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOwor
ICAgIH0KK30KK25vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOworCitmdW5jdGlvbiBnZXR0ZXIoKQor
eworICAgIHZhciBvYmplY3QgPSB7CisgICAgICAgIGdldCBoZWxsbygpIHsKKyAgICAgICAgICAg
IHJldHVybiA0MjsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB0ZXN0QXR0cmlidXRlKG9iamVj
dCwgJ2hlbGxvJywgJ2dldCcpOworICAgIHJldHVybiBvYmplY3QuaGVsbG87Cit9Citub0lubGlu
ZShnZXR0ZXIpOworCitmdW5jdGlvbiBzZXR0ZXIoKQoreworICAgIHZhciBvYmplY3QgPSB7Cisg
ICAgICAgIHZhbHVlOiAwLAorICAgICAgICBzZXQgaGVsbG8odmFsdWUpIHsKKyAgICAgICAgICAg
IHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB0ZXN0QXR0cmli
dXRlKG9iamVjdCwgJ2hlbGxvJywgJ3NldCcpOworICAgIG9iamVjdC5oZWxsbyA9IDQyOworICAg
IHJldHVybiBvYmplY3QudmFsdWU7CisKK30KK25vSW5saW5lKHNldHRlcik7CisKK2Z1bmN0aW9u
IGFjY2Vzc29ycygpCit7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgdmFsdWU6IDAsCisg
ICAgICAgIGdldCBoZWxsbygpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlOworICAg
ICAgICB9LAorICAgICAgICBzZXQgaGVsbG8odmFsdWUpIHsKKyAgICAgICAgICAgIHRoaXMudmFs
dWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB0ZXN0QXR0cmlidXRlKG9iamVj
dCwgJ2hlbGxvJywgJ2dldHNldCcpOworICAgIG9iamVjdC5oZWxsbyA9IDQyOworICAgIHJldHVy
biBvYmplY3QuaGVsbG87Cit9Citub0lubGluZShhY2Nlc3NvcnMpOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICBzaG91bGRCZShnZXR0ZXIoKSwgNDIpOworICAgIHNo
b3VsZEJlKHNldHRlcigpLCA0Mik7CisgICAgc2hvdWxkQmUoYWNjZXNzb3JzKCksIDQyKTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1n
ZXR0ZXItYnktaWQtY2xhc3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2RmZy1wdXQtZ2V0dGVyLWJ5LWlkLWNsYXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNGQ2ZTZlZWEyZTY0
ZjIyNDg0ODNjZGJkNjY2MzRjMzU2YjRmNWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LWlkLWNsYXNzLmpzCkBA
IC0wLDAgKzEsNDUgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0QXR0cmlidXRlKG9iamVjdCwg
bmFtZSwgdHlwZSkgeworICAgIHNob3VsZEJlKFJlZmxlY3QuaGFzKG9iamVjdCwgbmFtZSksIHRy
dWUpOworICAgIGxldCBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2Jq
ZWN0LCBuYW1lKTsKKyAgICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7CisgICAg
c2hvdWxkQmUoZGVzYy5lbnVtZXJhYmxlLCBmYWxzZSk7CisgICAgaWYgKHR5cGUgPT09ICdnZXQn
KSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7CisgICAg
ICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ3VuZGVmaW5lZCcpOworICAgIH0gZWxzZSBp
ZiAodHlwZSA9PT0gJ3NldCcpIHsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAn
dW5kZWZpbmVkJyk7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9u
Jyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVu
Y3Rpb24nKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsK
KyAgICB9Cit9Citub0lubGluZSh0ZXN0QXR0cmlidXRlKTsKKworZnVuY3Rpb24gZ2V0dGVyKG5h
bWUpCit7CisgICAgY2xhc3MgQ29jb2EgeworICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAg
ICAgICAgIHRoaXMub2sgPSA0MjsKKyAgICAgICAgfQorICAgICAgICBnZXQgaGVsbG8oKSB7Cisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5vazsKKyAgICAgICAgfQorICAgICAgICBnZXQgW25hbWVd
KCkgeworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IG9iamVjdCA9IG5ldyBDb2NvYSgpOwor
ICAgIHRlc3RBdHRyaWJ1dGUob2JqZWN0Ll9fcHJvdG9fXywgJ2hlbGxvJywgJ2dldCcpOworICAg
IHRlc3RBdHRyaWJ1dGUob2JqZWN0Ll9fcHJvdG9fXywgJ2R1bW15JywgJ2dldCcpOworICAgIHJl
dHVybiBvYmplY3QuaGVsbG87Cit9Citub0lubGluZShnZXR0ZXIpOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0dGVyKCdkdW1teScpLCA0Mik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0
dGVyLWJ5LWlkLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0
LWdldHRlci1ieS1pZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTg5M2U3NDQxZmQ3MGQyZDZkMGYwN2RjOTFj
MGNkZTJkYjc1YTEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9kZmctcHV0LWdldHRlci1ieS1pZC5qcwpAQCAtMCwwICsxLDM5IEBACitmdW5j
dGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsK
K30KKworZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZShvYmplY3QsIG5hbWUsIHR5cGUpIHsKKyAgICBz
aG91bGRCZShSZWZsZWN0LmhhcyhvYmplY3QsIG5hbWUpLCB0cnVlKTsKKyAgICBsZXQgZGVzYyA9
IFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgbmFtZSk7CisgICAgc2hv
dWxkQmUoZGVzYy5jb25maWd1cmFibGUsIHRydWUpOworICAgIHNob3VsZEJlKGRlc2MuZW51bWVy
YWJsZSwgdHJ1ZSk7CisgICAgaWYgKHR5cGUgPT09ICdnZXQnKSB7CisgICAgICAgIHNob3VsZEJl
KHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBk
ZXNjLnNldCwgJ3VuZGVmaW5lZCcpOworICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NldCcpIHsK
KyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAndW5kZWZpbmVkJyk7CisgICAgICAg
IHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKKyAgICAgICAgc2hv
dWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsKKyAgICB9Cit9Citub0lubGluZSh0
ZXN0QXR0cmlidXRlKTsKKworZnVuY3Rpb24gZ2V0dGVyKG5hbWUpCit7CisgICAgdmFyIG9iamVj
dCA9IHsKKyAgICAgICAgZ2V0IGhlbGxvKCkgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMub2s7
CisgICAgICAgIH0sCisgICAgICAgIFtuYW1lXTogNDIKKyAgICB9OworCisgICAgdGVzdEF0dHJp
YnV0ZShvYmplY3QsICdoZWxsbycsICdnZXQnKTsKKyAgICByZXR1cm4gb2JqZWN0LmhlbGxvOwor
fQorbm9JbmxpbmUoZ2V0dGVyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQor
ICAgIHNob3VsZEJlKGdldHRlcignb2snKSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LWdldHRlci1ieS12YWwtY2xhc3MuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LXZhbC1j
bGFzcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wZWI1YzQxODVkZjBmZTM4ZDkyOWJjNDNhZDdjYjY1MWUwZGQ1
ZTJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9kZmctcHV0LWdldHRlci1ieS12YWwtY2xhc3MuanMKQEAgLTAsMCArMSw0MiBAQAorZnVuY3Rp
b24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RBdHRyaWJ1dGUob2JqZWN0LCBuYW1lLCB0eXBlKSB7CisgICAgc2hv
dWxkQmUoUmVmbGVjdC5oYXMob2JqZWN0LCBuYW1lKSwgdHJ1ZSk7CisgICAgbGV0IGRlc2MgPSBS
ZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIG5hbWUpOworICAgIHNob3Vs
ZEJlKGRlc2MuY29uZmlndXJhYmxlLCB0cnVlKTsKKyAgICBzaG91bGRCZShkZXNjLmVudW1lcmFi
bGUsIGZhbHNlKTsKKyAgICBpZiAodHlwZSA9PT0gJ2dldCcpIHsKKyAgICAgICAgc2hvdWxkQmUo
dHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRl
c2Muc2V0LCAndW5kZWZpbmVkJyk7CisgICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2V0Jykgewor
ICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICd1bmRlZmluZWQnKTsKKyAgICAgICAg
c2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlvbicpOworICAgICAgICBzaG91
bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOworICAgIH0KK30KK25vSW5saW5lKHRl
c3RBdHRyaWJ1dGUpOworCitmdW5jdGlvbiBnZXR0ZXIobmFtZSkKK3sKKyAgICBjbGFzcyBDb2Nv
YSB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgdGhpcy5vayA9IDQyOwor
ICAgICAgICB9CisgICAgICAgIGdldCBbbmFtZV0oKSB7CisgICAgICAgICAgICByZXR1cm4gdGhp
cy5vazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCBvYmplY3QgPSBuZXcgQ29jb2EoKTsK
KyAgICB0ZXN0QXR0cmlidXRlKG9iamVjdC5fX3Byb3RvX18sICdoZWxsbycsICdnZXQnKTsKKyAg
ICByZXR1cm4gb2JqZWN0LmhlbGxvOworfQorbm9JbmxpbmUoZ2V0dGVyKTsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJlKGdldHRlcignaGVsbG8nKSwgNDIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0
LWdldHRlci1ieS12YWwuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Rm
Zy1wdXQtZ2V0dGVyLWJ5LXZhbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGI2MTRhOGNjZTNjNmMxZjE1ZWY4
ZTc1OTFhYzM2NTVhNGY3N2JmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LWdldHRlci1ieS12YWwuanMKQEAgLTAsMCArMSwzOSBA
QAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwg
IT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFj
dHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBdHRyaWJ1dGUob2JqZWN0LCBuYW1lLCB0eXBlKSB7
CisgICAgc2hvdWxkQmUoUmVmbGVjdC5oYXMob2JqZWN0LCBuYW1lKSwgdHJ1ZSk7CisgICAgbGV0
IGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIG5hbWUpOwor
ICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxlLCB0cnVlKTsKKyAgICBzaG91bGRCZShkZXNj
LmVudW1lcmFibGUsIHRydWUpOworICAgIGlmICh0eXBlID09PSAnZ2V0JykgeworICAgICAgICBz
aG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlvbicpOworICAgICAgICBzaG91bGRCZSh0
eXBlb2YgZGVzYy5zZXQsICd1bmRlZmluZWQnKTsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdz
ZXQnKSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ3VuZGVmaW5lZCcpOwor
ICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7CisgICAg
ICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7CisgICAgfQorfQorbm9J
bmxpbmUodGVzdEF0dHJpYnV0ZSk7CisKK2Z1bmN0aW9uIGdldHRlcihuYW1lKQoreworICAgIHZh
ciBvYmplY3QgPSB7CisgICAgICAgIG9rOiA0MiwKKyAgICAgICAgZ2V0IFtuYW1lXSgpIHsKKyAg
ICAgICAgICAgIHJldHVybiB0aGlzLm9rOworICAgICAgICB9CisgICAgfTsKKworICAgIHRlc3RB
dHRyaWJ1dGUob2JqZWN0LCAnaGVsbG8nLCAnZ2V0Jyk7CisgICAgcmV0dXJuIG9iamVjdC5oZWxs
bzsKK30KK25vSW5saW5lKGdldHRlcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsr
aSkKKyAgICBzaG91bGRCZShnZXR0ZXIoJ2hlbGxvJyksIDQyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1zZXR0ZXItYnktaWQtY2xhc3Mu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtc2V0dGVyLWJ5
LWlkLWNsYXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiNWI3OWQ5OTJiMTM5OWYwM2YzY2RlODI4ODM2YTEw
OTUzYWYyYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2RmZy1wdXQtc2V0dGVyLWJ5LWlkLWNsYXNzLmpzCkBAIC0wLDAgKzEsNDYgQEAKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwp
OworfQorCitmdW5jdGlvbiB0ZXN0QXR0cmlidXRlKG9iamVjdCwgbmFtZSwgdHlwZSkgeworICAg
IHNob3VsZEJlKFJlZmxlY3QuaGFzKG9iamVjdCwgbmFtZSksIHRydWUpOworICAgIGxldCBkZXNj
ID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBuYW1lKTsKKyAgICBz
aG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoZGVzYy5lbnVt
ZXJhYmxlLCBmYWxzZSk7CisgICAgaWYgKHR5cGUgPT09ICdnZXQnKSB7CisgICAgICAgIHNob3Vs
ZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7CisgICAgICAgIHNob3VsZEJlKHR5cGVv
ZiBkZXNjLnNldCwgJ3VuZGVmaW5lZCcpOworICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NldCcp
IHsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAndW5kZWZpbmVkJyk7CisgICAg
ICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKKyAgICAgICAg
c2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsKKyAgICB9Cit9Citub0lubGlu
ZSh0ZXN0QXR0cmlidXRlKTsKKworZnVuY3Rpb24gZ2V0dGVyKG5hbWUpCit7CisgICAgY2xhc3Mg
Q29jb2EgeworICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgICAgIHRoaXMub2sgPSAw
OworICAgICAgICB9CisgICAgICAgIHNldCBoZWxsbyh2YWx1ZSkgeworICAgICAgICAgICAgdGhp
cy5vayA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIGdldCBbbmFtZV0oKSB7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBsZXQgb2JqZWN0ID0gbmV3IENvY29hKCk7CisgICAgdGVzdEF0dHJp
YnV0ZShvYmplY3QuX19wcm90b19fLCAnaGVsbG8nLCAnc2V0Jyk7CisgICAgdGVzdEF0dHJpYnV0
ZShvYmplY3QuX19wcm90b19fLCAnZHVtbXknLCAnZ2V0Jyk7CisgICAgb2JqZWN0LmhlbGxvID0g
NDI7CisgICAgcmV0dXJuIG9iamVjdC5vazsKK30KK25vSW5saW5lKGdldHRlcik7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXR0ZXIoJ2R1bW15Jyks
IDQyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZn
LXB1dC1zZXR0ZXItYnktaWQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2RmZy1wdXQtc2V0dGVyLWJ5LWlkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmNmYzYjk4Y2MxMWQ1MTgxYTIw
MDNmOWVjOWJjNmNjZjE1OWNhMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtc2V0dGVyLWJ5LWlkLmpzCkBAIC0wLDAgKzEsNDEg
QEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFs
ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBh
Y3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0QXR0cmlidXRlKG9iamVjdCwgbmFtZSwgdHlwZSkg
eworICAgIHNob3VsZEJlKFJlZmxlY3QuaGFzKG9iamVjdCwgbmFtZSksIHRydWUpOworICAgIGxl
dCBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBuYW1lKTsK
KyAgICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoZGVz
Yy5lbnVtZXJhYmxlLCB0cnVlKTsKKyAgICBpZiAodHlwZSA9PT0gJ2dldCcpIHsKKyAgICAgICAg
c2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKKyAgICAgICAgc2hvdWxkQmUo
dHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7CisgICAgfSBlbHNlIGlmICh0eXBlID09PSAn
c2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICd1bmRlZmluZWQnKTsK
KyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlvbicpOworICAg
ICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOworICAgIH0KK30KK25v
SW5saW5lKHRlc3RBdHRyaWJ1dGUpOworCitmdW5jdGlvbiBzZXR0ZXIobmFtZSkKK3sKKyAgICB2
YXIgb2JqZWN0ID0geworICAgICAgICBzZXQgaGVsbG8odmFsdWUpIHsKKyAgICAgICAgICAgIHRo
aXMub2sgPSB2YWx1ZTsKKyAgICAgICAgfSwKKyAgICAgICAgW25hbWVdOiAwCisgICAgfTsKKwor
ICAgIHRlc3RBdHRyaWJ1dGUob2JqZWN0LCAnaGVsbG8nLCAnc2V0Jyk7CisgICAgb2JqZWN0Lmhl
bGxvID0gNDI7CisgICAgcmV0dXJuIG9iamVjdC5vazsKKworfQorbm9JbmxpbmUoc2V0dGVyKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJlKHNldHRlcign
b2snKSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9kZmctcHV0LXNldHRlci1ieS12YWwtY2xhc3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2RmZy1wdXQtc2V0dGVyLWJ5LXZhbC1jbGFzcy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
MjljOWVjZmQ0M2ZmYWM0YjUwOGMzNzRiMDkwZjdjYjkzMDMzMGJmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LXNldHRlci1ieS12
YWwtY2xhc3MuanMKQEAgLTAsMCArMSw0NCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBdHRy
aWJ1dGUob2JqZWN0LCBuYW1lLCB0eXBlKSB7CisgICAgc2hvdWxkQmUoUmVmbGVjdC5oYXMob2Jq
ZWN0LCBuYW1lKSwgdHJ1ZSk7CisgICAgbGV0IGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihvYmplY3QsIG5hbWUpOworICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxl
LCB0cnVlKTsKKyAgICBzaG91bGRCZShkZXNjLmVudW1lcmFibGUsIGZhbHNlKTsKKyAgICBpZiAo
dHlwZSA9PT0gJ2dldCcpIHsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVu
Y3Rpb24nKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7
CisgICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBl
b2YgZGVzYy5nZXQsICd1bmRlZmluZWQnKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Mu
c2V0LCAnZnVuY3Rpb24nKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaG91bGRCZSh0eXBlb2Yg
ZGVzYy5nZXQsICdmdW5jdGlvbicpOworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQs
ICdmdW5jdGlvbicpOworICAgIH0KK30KK25vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOworCitmdW5j
dGlvbiBzZXR0ZXIobmFtZSkKK3sKKyAgICBjbGFzcyBDb2NvYSB7CisgICAgICAgIGNvbnN0cnVj
dG9yKCkgeworICAgICAgICAgICAgdGhpcy5vayA9IDA7CisgICAgICAgIH0KKyAgICAgICAgc2V0
IFtuYW1lXSh2YWx1ZSkgeworICAgICAgICAgICAgdGhpcy5vayA9IHZhbHVlOworICAgICAgICB9
CisgICAgfQorCisgICAgbGV0IG9iamVjdCA9IG5ldyBDb2NvYSgpOworICAgIHRlc3RBdHRyaWJ1
dGUob2JqZWN0Ll9fcHJvdG9fXywgJ2hlbGxvJywgJ3NldCcpOworICAgIG9iamVjdC5oZWxsbyA9
IDQyOworICAgIHJldHVybiBvYmplY3Qub2s7CisKK30KK25vSW5saW5lKHNldHRlcik7CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShzZXR0ZXIoJ2hlbGxv
JyksIDQyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZGZnLXB1dC1zZXR0ZXItYnktdmFsLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9kZmctcHV0LXNldHRlci1ieS12YWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEzNTQ2YjYyZjA2NTc5
NWNjMThmNTgxZTBiNjY3ZmMyNjVmNDBkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1zZXR0ZXItYnktdmFsLmpzCkBAIC0wLDAg
KzEsNDEgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAo
YWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6
ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0QXR0cmlidXRlKG9iamVjdCwgbmFtZSwg
dHlwZSkgeworICAgIHNob3VsZEJlKFJlZmxlY3QuaGFzKG9iamVjdCwgbmFtZSksIHRydWUpOwor
ICAgIGxldCBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBu
YW1lKTsKKyAgICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7CisgICAgc2hvdWxk
QmUoZGVzYy5lbnVtZXJhYmxlLCB0cnVlKTsKKyAgICBpZiAodHlwZSA9PT0gJ2dldCcpIHsKKyAg
ICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKKyAgICAgICAgc2hv
dWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7CisgICAgfSBlbHNlIGlmICh0eXBl
ID09PSAnc2V0JykgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICd1bmRlZmlu
ZWQnKTsKKyAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlvbicp
OworICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOworICAgIH0K
K30KK25vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOworCitmdW5jdGlvbiBzZXR0ZXIobmFtZSkKK3sK
KyAgICB2YXIgb2JqZWN0ID0geworICAgICAgICBvazogMCwKKyAgICAgICAgc2V0IFtuYW1lXSh2
YWx1ZSkgeworICAgICAgICAgICAgdGhpcy5vayA9IHZhbHVlOworICAgICAgICB9CisgICAgfTsK
KworICAgIHRlc3RBdHRyaWJ1dGUob2JqZWN0LCAnaGVsbG8nLCAnc2V0Jyk7CisgICAgb2JqZWN0
LmhlbGxvID0gNDI7CisgICAgcmV0dXJuIG9iamVjdC5vazsKKworfQorbm9JbmxpbmUoc2V0dGVy
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJlKHNldHRl
cignaGVsbG8nKSwgNDIpOwo=
</data>
<flag name="review"
          id="289196"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>