<?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>157972</bug_id>
          
          <creation_ts>2016-05-21 01:00:12 -0700</creation_ts>
          <short_desc>super should not depend on __proto__</short_desc>
          <delta_ts>2020-06-23 13:53:29 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=205848</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=213191</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=213307</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>142200</dependson>
          <blocked>140491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1195351</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2016-05-21 01:00:12 -0700</bug_when>
    <thetext>Consider the following code:

```js
class C extends Object {}
delete Object.prototype.__proto__
let c = new C
```

WebKit Nightly throws `TypeError: undefined is not a constructor`.
However, `super` should call internal `[[GetPrototypeOf]]`, not the `__proto__` getter.
This code works fine both in Chrome Canary and Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655155</commentid>
    <comment_count>1</comment_count>
      <attachid>400002</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-21 17:06:16 -0700</bug_when>
    <thetext>Created attachment 400002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655156</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-21 17:06:38 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #1)
&gt; Created attachment 400002 [details]
&gt; Patch

With warm-up runs, --outer 128:

                                                 r262029                    patch                                       

super-get-by-id-with-this-monomorphic        22.6679+-0.4237     ^     20.5501+-0.3550        ^ definitely 1.1031x faster
super-get-by-id-with-this-polymorphic        17.9731+-0.2928           17.5325+-0.2612          might be 1.0251x faster
super-get-by-val-with-this-monomorphic       24.4027+-1.1266     ^     22.5436+-0.7088        ^ definitely 1.0825x faster
super-get-by-val-with-this-polymorphic       21.3870+-1.2635           20.6429+-0.6245          might be 1.0360x faster
super-getter                                 16.4953+-0.2982     ?     16.6465+-0.3252        ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655326</commentid>
    <comment_count>3</comment_count>
      <attachid>400048</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-22 08:27:05 -0700</bug_when>
    <thetext>Created attachment 400048
Patch

Fix 32-bit build and handle JSFunctionType by JIT fast path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655330</commentid>
    <comment_count>4</comment_count>
      <attachid>400051</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-22 08:44:59 -0700</bug_when>
    <thetext>Created attachment 400051
Patch

Fix 32-bit build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655393</commentid>
    <comment_count>5</comment_count>
      <attachid>400063</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-22 12:26:36 -0700</bug_when>
    <thetext>Created attachment 400063
Patch

Drop emitLoadStructure() and use OBJECT_OFFSETOF for 32-bit targets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656868</commentid>
    <comment_count>6</comment_count>
      <attachid>400464</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-28 08:48:47 -0700</bug_when>
    <thetext>Created attachment 400464
Patch

Drop baseline JIT fast path for 32-bit targets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656957</commentid>
    <comment_count>7</comment_count>
      <attachid>400464</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-05-28 12:25:39 -0700</bug_when>
    <thetext>Comment on attachment 400464
Patch

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

&gt; Source/JavaScriptCore/jit/JITOpcodes32_64.cpp:1307
&gt; +    addSlowCase(jump());

If we compile this op properly (see prev. patch), stress/arrowfunction-lexical-bind-supercall-2.js segfaults on ARM &amp; MIPS EWS.
I couldn&apos;t reproduce segfaults locally on both 32-bit Intel and ARMv7 (via qemu), yet I think it is fine to slow-case it unconditionally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657006</commentid>
    <comment_count>8</comment_count>
      <attachid>400464</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-28 13:57:13 -0700</bug_when>
    <thetext>Comment on attachment 400464
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        This patch defines OpGetPrototypeOf for LLInt and baseline JIT, ensuring

makes sense

&gt; Source/JavaScriptCore/jit/JITOpcodes.cpp:1534
&gt; +    addSlowCase(branchIfNotType(regT0, FinalObjectType, JSFunctionType));

This feels like a precarious implementation without having some kind of assert this is true.

Also, couldn&apos;t we just inline the fast path case here by looking at the class info function ptr?

Like the JSObject implementation:
```
    MethodTable::GetPrototypeFunctionPtr defaultGetPrototype = JSObject::getPrototype;
    if (LIKELY(getPrototypeMethod == defaultGetPrototype))
        return getPrototypeDirect(vm);
```

This can be done in a followup. We should probably also inline it in the DFG/FTL

Maybe we could add an out of line type info bit to make it even faster?

&gt;&gt; Source/JavaScriptCore/jit/JITOpcodes32_64.cpp:1307
&gt;&gt; +    addSlowCase(jump());
&gt; 
&gt; If we compile this op properly (see prev. patch), stress/arrowfunction-lexical-bind-supercall-2.js segfaults on ARM &amp; MIPS EWS.
&gt; I couldn&apos;t reproduce segfaults locally on both 32-bit Intel and ARMv7 (via qemu), yet I think it is fine to slow-case it unconditionally.

you can just make this a SLOW_CASE_OP (or whatever the macro is) in the switch statement for 32-bit and then you don&apos;t need to implement this.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:1766
&gt; +slowPathOp(get_prototype_of)

let&apos;s implement a fast path, at least for 64-bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658011</commentid>
    <comment_count>9</comment_count>
      <attachid>400749</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-01 13:01:32 -0700</bug_when>
    <thetext>Created attachment 400749
Patch

Add LLInt fast path (64-bit only), add bytecode intrinsic &amp; test, and introduce OverridesGetPrototype out of line flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658013</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-01 13:03:31 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #8)

Thank you for detailed comments, Saam.

&gt; Also, couldn&apos;t we just inline the fast path case here by looking at the
&gt; class info function ptr?

Comparing GetPrototypeFunctionPtr led to 70% regression (w/o DFG) for microbenchmarks/super-getter.js
and ~10% for other `super` microbenchmarks. Code I was testing:

```
addSlowCase(branchIfNotCell(regT0));
emitLoadStructure(vm(), regT0, regT2, regT1);

static constexpr MethodTable::GetPrototypeFunctionPtr defaultGetPrototype = JSObject::getPrototype;
static ptrdiff_t getPrototypeOffset = Structure::classInfoOffset() + ClassInfo::offsetOfMethodTable() + MethodTable::offsetOfGetPrototype();
addSlowCase(branchPtr(NotEqual, Address(regT2, getPrototypeOffset), TrustedImmPtr(defaultGetPrototype)));
```

So I went with out of line flag, which is performance-neutral and a nice refactor.

&gt; We should probably also inline it in the DFG/FTL

Looks like DFG already inlines GetPrototypeOf, please see the changed bit in DFGAbstractInterpreterInlines.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658206</commentid>
    <comment_count>11</comment_count>
      <attachid>400794</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-02 01:20:25 -0700</bug_when>
    <thetext>Created attachment 400794
Patch

Fix tests and 32-bit build, use JSValue::getPrototype() in objectConstructorGetPrototypeOf().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658442</commentid>
    <comment_count>12</comment_count>
      <attachid>400794</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-02 13:58:23 -0700</bug_when>
    <thetext>Comment on attachment 400794
Patch

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

With this change, Object.getPrototypeOf() uses synthesizePrototype() for primitives instead of allocating wrapper object. --outer 128: 

                                             trunk                     patch                                       

object-get-prototype-of-primitive      111.1243+-1.0766     ^     79.5175+-0.7592        ^ definitely 1.3975x faster

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1492
&gt; +    const OverridesGetPrototype = 0x400 # (1 &lt;&lt; 18) &gt;&gt; 8

We can improve this by tweaking LLInt parser to support bitwise shifts in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661705</commentid>
    <comment_count>13</comment_count>
      <attachid>400794</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-11 12:48:27 -0700</bug_when>
    <thetext>Comment on attachment 400794
Patch

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

r=me with a few comments

&gt; Source/JavaScriptCore/jit/JITOpcodes.cpp:1528
&gt; +void JIT::emit_op_get_prototype_of(const Instruction* currentInstruction)

Can we also add fast paths for DFG/FTL that look like this? Maybe in a follow-up?

&gt; Source/JavaScriptCore/jit/JITOpcodes.cpp:1537
&gt; +    addSlowCase(branchTest32(NonZero, Address(regT2, Structure::outOfLineTypeFlagsOffset()), TrustedImm32(OverridesGetPrototype &gt;&gt; 8)));

nit: can we define 8 somewhere in JSTypeInfo like &quot;numberOfInlineBits&quot;?

&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1492
&gt;&gt; +    const OverridesGetPrototype = 0x400 # (1 &lt;&lt; 18) &gt;&gt; 8
&gt; 
&gt; We can improve this by tweaking LLInt parser to support bitwise shifts in a follow-up.

constexpr expressions in LLInt doesn&apos;t work here?

If not, I&apos;d prefer to define this in the JSTypeInfo header and just use the value here, and we can static assert it&apos;s proper there? Could also be used in baseline JIT code for this.

&gt; Source/JavaScriptCore/runtime/JSTypeInfo.h:60
&gt; +static constexpr unsigned OverridesGetPrototype = 1 &lt;&lt; 18;

Can you add validation for this into the new Structure::validateFlags that was added after you uploaded this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662156</commentid>
    <comment_count>14</comment_count>
      <attachid>401781</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-12 14:20:45 -0700</bug_when>
    <thetext>Created attachment 401781
Patch

Define numberOfInlineBits and OverridesGetPrototypeOutOfLine, add overridesGetPrototype() validation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662160</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-12 14:27:06 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #13)
&gt; Can we also add fast paths for DFG/FTL that look like this? Maybe in a follow-up?

Looks like we already have those: please see DFGSpeculativeJIT.cpp/compileGetPrototypeOf() and FTLLowerDFGToB3.cpp/compileGetPrototypeOf().
LLInt and baseline JIT fast paths are inspired by DFG one.

&gt; constexpr expressions in LLInt doesn&apos;t work here?

constexpr does work, but no the bit shifts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662304</commentid>
    <comment_count>16</comment_count>
      <attachid>401781</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-12 19:43:01 -0700</bug_when>
    <thetext>Comment on attachment 401781
Patch

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

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1511
&gt; +    btqnz t0, notCellMask, .opGetPrototypeOfSlow
&gt; +    bbb JSCell::m_type[t0], ObjectType, .opGetPrototypeOfSlow
&gt; +
&gt; +    loadStructureWithScratch(t0, t2, t1, t3)
&gt; +    btinz Structure::m_outOfLineTypeFlags[t2], OverridesGetPrototypeOutOfLine, .opGetPrototypeOfSlow
&gt; +
&gt; +    loadq Structure::m_prototype[t2], t2
&gt; +    btqz t2, .opGetPrototypeOfPolyProto
&gt; +    return(t2)
&gt; +

Ah, no. I think what Saam says is adding these fast path for void SpeculativeJIT::compileGetPrototypeOf(Node* node)&apos;s ObjectUse and generic cases.


  13945     case ObjectUse: {
  13946         SpeculateCellOperand value(this, node-&gt;child1());
  13947         JSValueRegsTemporary result(this);
  13948
  13949         GPRReg valueGPR = value.gpr();
  13950         JSValueRegs resultRegs = result.regs();
  13951
  13952         speculateObject(node-&gt;child1(), valueGPR);
  13953
  13954         flushRegisters();
  13955         callOperation(operationGetPrototypeOfObject, resultRegs, TrustedImmPtr::weakPointer(m_graph, m_graph.globalObjectFor(node-&gt;origin.semantic)), valueGPR);
  13956         m_jit.exceptionCheck();
  13957         jsValueResult(resultRegs, node);
  13958         return;
  13959     }
  13960     default: {
  13961         JSValueOperand value(this, node-&gt;child1());
  13962         JSValueRegsTemporary result(this);
  13963
  13964         JSValueRegs valueRegs = value.jsValueRegs();
  13965         JSValueRegs resultRegs = result.regs();
  13966
  13967         flushRegisters();
  13968         callOperation(operationGetPrototypeOf, resultRegs, TrustedImmPtr::weakPointer(m_graph, m_graph.globalObjectFor(node-&gt;origin.semantic)), valueRegs);
  13969         m_jit.exceptionCheck();
  13970         jsValueResult(resultRegs, node);
  13971         return;
  13972     }

We do not have this. And please add it to FTL too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662375</commentid>
    <comment_count>17</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-13 10:15:34 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #16)
&gt; Comment on attachment 401781 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401781&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1511
&gt; &gt; +    btqnz t0, notCellMask, .opGetPrototypeOfSlow
&gt; &gt; +    bbb JSCell::m_type[t0], ObjectType, .opGetPrototypeOfSlow
&gt; &gt; +
&gt; &gt; +    loadStructureWithScratch(t0, t2, t1, t3)
&gt; &gt; +    btinz Structure::m_outOfLineTypeFlags[t2], OverridesGetPrototypeOutOfLine, .opGetPrototypeOfSlow
&gt; &gt; +
&gt; &gt; +    loadq Structure::m_prototype[t2], t2
&gt; &gt; +    btqz t2, .opGetPrototypeOfPolyProto
&gt; &gt; +    return(t2)
&gt; &gt; +
&gt; 
&gt; Ah, no. I think what Saam says is adding these fast path for void
&gt; SpeculativeJIT::compileGetPrototypeOf(Node* node)&apos;s ObjectUse and generic
&gt; cases.
&gt; 
&gt; 
&gt;   13945     case ObjectUse: {
&gt;   13946         SpeculateCellOperand value(this, node-&gt;child1());
&gt;   13947         JSValueRegsTemporary result(this);
&gt;   13948
&gt;   13949         GPRReg valueGPR = value.gpr();
&gt;   13950         JSValueRegs resultRegs = result.regs();
&gt;   13951
&gt;   13952         speculateObject(node-&gt;child1(), valueGPR);
&gt;   13953
&gt;   13954         flushRegisters();
&gt;   13955         callOperation(operationGetPrototypeOfObject, resultRegs,
&gt; TrustedImmPtr::weakPointer(m_graph,
&gt; m_graph.globalObjectFor(node-&gt;origin.semantic)), valueGPR);
&gt;   13956         m_jit.exceptionCheck();
&gt;   13957         jsValueResult(resultRegs, node);
&gt;   13958         return;
&gt;   13959     }
&gt;   13960     default: {
&gt;   13961         JSValueOperand value(this, node-&gt;child1());
&gt;   13962         JSValueRegsTemporary result(this);
&gt;   13963
&gt;   13964         JSValueRegs valueRegs = value.jsValueRegs();
&gt;   13965         JSValueRegs resultRegs = result.regs();
&gt;   13966
&gt;   13967         flushRegisters();
&gt;   13968         callOperation(operationGetPrototypeOf, resultRegs,
&gt; TrustedImmPtr::weakPointer(m_graph,
&gt; m_graph.globalObjectFor(node-&gt;origin.semantic)), valueRegs);
&gt;   13969         m_jit.exceptionCheck();
&gt;   13970         jsValueResult(resultRegs, node);
&gt;   13971         return;
&gt;   13972     }
&gt; 
&gt; We do not have this. And please add it to FTL too.

Yeah this is what I meant</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662376</commentid>
    <comment_count>18</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-13 10:16:34 -0700</bug_when>
    <thetext>I’m ok if it’s a follow up as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662536</commentid>
    <comment_count>19</comment_count>
      <attachid>401781</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-14 17:40:07 -0700</bug_when>
    <thetext>Comment on attachment 401781
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1511
&gt;&gt;&gt; +
&gt;&gt; 
&gt;&gt; Ah, no. I think what Saam says is adding these fast path for void SpeculativeJIT::compileGetPrototypeOf(Node* node)&apos;s ObjectUse and generic cases.
&gt;&gt; 
&gt;&gt; 
&gt;&gt;   13945     case ObjectUse: {
&gt;&gt;   13946         SpeculateCellOperand value(this, node-&gt;child1());
&gt;&gt;   13947         JSValueRegsTemporary result(this);
&gt;&gt;   13948
&gt;&gt;   13949         GPRReg valueGPR = value.gpr();
&gt;&gt;   13950         JSValueRegs resultRegs = result.regs();
&gt;&gt;   13951
&gt;&gt;   13952         speculateObject(node-&gt;child1(), valueGPR);
&gt;&gt;   13953
&gt;&gt;   13954         flushRegisters();
&gt;&gt;   13955         callOperation(operationGetPrototypeOfObject, resultRegs, TrustedImmPtr::weakPointer(m_graph, m_graph.globalObjectFor(node-&gt;origin.semantic)), valueGPR);
&gt;&gt;   13956         m_jit.exceptionCheck();
&gt;&gt;   13957         jsValueResult(resultRegs, node);
&gt;&gt;   13958         return;
&gt;&gt;   13959     }
&gt;&gt;   13960     default: {
&gt;&gt;   13961         JSValueOperand value(this, node-&gt;child1());
&gt;&gt;   13962         JSValueRegsTemporary result(this);
&gt;&gt;   13963
&gt;&gt;   13964         JSValueRegs valueRegs = value.jsValueRegs();
&gt;&gt;   13965         JSValueRegs resultRegs = result.regs();
&gt;&gt;   13966
&gt;&gt;   13967         flushRegisters();
&gt;&gt;   13968         callOperation(operationGetPrototypeOf, resultRegs, TrustedImmPtr::weakPointer(m_graph, m_graph.globalObjectFor(node-&gt;origin.semantic)), valueRegs);
&gt;&gt;   13969         m_jit.exceptionCheck();
&gt;&gt;   13970         jsValueResult(resultRegs, node);
&gt;&gt;   13971         return;
&gt;&gt;   13972     }
&gt;&gt; 
&gt;&gt; We do not have this. And please add it to FTL too.
&gt; 
&gt; Yeah this is what I meant

So can you add a FIXME with bugzilla URL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662635</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-15 07:42:47 -0700</bug_when>
    <thetext>Committed r263035: &lt;https://trac.webkit.org/changeset/263035&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662636</commentid>
    <comment_count>21</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-15 07:43:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/64362505&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662637</commentid>
    <comment_count>22</comment_count>
      <attachid>401781</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-06-15 07:46:25 -0700</bug_when>
    <thetext>Comment on attachment 401781
Patch

(In reply to Yusuke Suzuki from comment #19)
&gt; So can you add a FIXME with bugzilla URL?

Asked Yusuke offline: I will add DFG/FTL fast paths in https://bugs.webkit.org/show_bug.cgi?id=213191 since it requires additional tests and microbenchmarks.
Landed with a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662692</commentid>
    <comment_count>23</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-06-15 10:15:07 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #20)
&gt; Committed r263035: &lt;https://trac.webkit.org/changeset/263035&gt;
This change appears to have broken the CLoop build:
/Volumes/Data/slave/catalina-cloop-debug/build/Source/JavaScriptCore/offlineasm/cloop.rb:649:in `lowerC_LOOP&apos;: undefined method `uint32MemRef&apos; for #&lt;Immediate:0x00007f8fb1bc5fa0&gt; (due to JavaScriptCore/llint/LowLevelInterpreter64.asm:1517) (LoweringError)

https://build.webkit.org/builders/Apple-Catalina-LLINT-CLoop-BuildAndTest/builds/4871/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662695</commentid>
    <comment_count>24</comment_count>
      <attachid>401781</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-15 10:20:38 -0700</bug_when>
    <thetext>Comment on attachment 401781
Patch

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

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1517
&gt; +    loadi knownPolyProtoOffset, t1

This is wrong. It should be mov.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662697</commentid>
    <comment_count>25</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-15 10:24:05 -0700</bug_when>
    <thetext>Committed r263043: &lt;https://trac.webkit.org/changeset/263043&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662701</commentid>
    <comment_count>26</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-15 10:44:59 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #25)
&gt; Committed r263043: &lt;https://trac.webkit.org/changeset/263043&gt;

This code in general is a little silly that it&apos;s using a macro that branches on a known offset.

We should just load directly from the object. Maybe we can split a new macro called &quot;loadInlineOffset&quot; or something

macro loadPropertyAtVariableOffset(propertyOffsetAsInt, objectAndStorage, value)
    bilt propertyOffsetAsInt, firstOutOfLineOffset, .isInline
    loadp JSObject::m_butterfly[objectAndStorage], objectAndStorage
    negi propertyOffsetAsInt
    sxi2q propertyOffsetAsInt, propertyOffsetAsInt
    jmp .ready
.isInline:
    addp sizeof JSObject - (firstOutOfLineOffset - 2) * 8, objectAndStorage
.ready:
    loadq (firstOutOfLineOffset - 2) * 8[objectAndStorage, propertyOffsetAsInt, 8], value
end</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665524</commentid>
    <comment_count>27</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-06-23 13:46:29 -0700</bug_when>
    <thetext>This change regressed JSC stress tests on s390x. I&apos;m not sure why. See bug #213307.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400002</attachid>
            <date>2020-05-21 17:06:16 -0700</date>
            <delta_ts>2020-05-22 08:27:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157972-20200522030614.patch</filename>
            <type>text/plain</type>
            <size>23765</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MDlkMGVlMDQ4ZmI1Y2E5MTk0ODQ2M2U4NDVhMjY5MDczNGVkN2Y0Li40Mzc0ODg1ZmM1ZjRhNDg0
NzUyMDUyYWViYmY0ZjZlZGYwODMzMmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMC0wNS0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgc3VwZXIgc2hvdWxkIG5vdCBkZXBlbmQgb24gX19wcm90b19fCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgdGhp
cyBjaGFuZ2UsIGJvdGggc3VwZXIoKSBjYWxsIFsxXSBhbmQgc3VwZXIucHJvcGVydHkgWzJdIHJl
bGllZCBvbgorICAgICAgICBPYmplY3QucHJvdG90eXBlLl9fcHJvdG9fXyB0byBhY3F1aXJlIHN1
cGVyIGJhc2UsIHdoaWNoIHdhcyBvYnNlcnZhYmxlIGFuZAorICAgICAgICBpbmNvcnJlY3QgaWYg
X19wcm90b19fIGdldHMgcmVtb3ZlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGRlZmluZXMgT3BH
ZXRQcm90b3R5cGVPZiBmb3IgTExJbnQgYW5kIGJhc2VsaW5lIEpJVCwgZW5zdXJpbmcKKyAgICAg
ICAgcmV0dXJuZWQgdmFsdWVzIGFyZSBwcm9maWxlZCBzbyB0aGUgb3AgY2FuIGJlIHdpcmVkIHRv
IGV4aXN0aW5nIERGRyBhbmQgRlRMCisgICAgICAgIGltcGxlbWVudGF0aW9ucy4gU2luY2UgX19w
cm90b19fIGlzIG9wdGltaXplZCB2aWEgSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZSwKKyAgICAg
ICAgd2UgZGVmaW5lIGZhc3QgcGF0aCBmb3IgSklUIHRvIGF2b2lkIHBlcmZvcm1hbmNlIHJlZ3Jl
c3Npb25zIHcvbyBERkcuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxpZ25zIEpTQyB3aXRoIFY4
IGFuZCBTcGlkZXJNb25rZXksIHByb2dyZXNzaW5nIG1pY3JvYmVuY2htYXJrcy8KKyAgICAgICAg
c3VwZXItZ2V0LWJ5LXtpZCx2YWx9LXdpdGgtdGhpcy1tb25vbW9ycGhpYy5qcyBieSA3LTEwJS4g
U2l4U3BlZWQgaXMgbmV1dHJhbC4KKyAgICAgICAgQWxzbywgZXh0cmFjdHMgSlNWYWx1ZTo6Z2V0
UHJvdG90eXBlKCkgbWV0aG9kIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uCisKKyAgICAgICAg
WzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVyY29uc3RydWN0b3IgKHN0
ZXAgNSkKKyAgICAgICAgWzJdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVy
YmFzZSAoc3RlcCA1KQorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAg
ICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0
ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJ5dGVj
b2RlL09wY29kZS5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0UHJvdG90eXBlT2Yp
OgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjplbWl0U3VwZXJC
YXNlRm9yQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6ZW1pdEdldFN1cGVyRnVuY3Rpb25Gb3JDb25z
dHJ1Y3QpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVQuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlND
OjpKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKToKKyAgICAgICAgKiBqaXQvSklULmg6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X3Byb3RvdHlwZV9vZik6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c206CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlND
OjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pT
VmFsdWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmdldFByb3RvdHlwZSBjb25z
dCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAg
ICAgIChKU0M6Omdsb2JhbEZ1bmNQcm90b0dldHRlcik6CisKIDIwMjAtMDUtMjEgIEFsZXhleSBT
aHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFVzZSBAaXNVbmRlZmlu
ZWRPck51bGwgaW5zdGVhZCBvZiBhYnN0cmFjdCBlcXVhbGl0eSB3aXRoIG51bGwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCmluZGV4IDdkNWI4Yzk4
MzdjMzY1N2RjOGFlMDBlMDZkMmNmNzIwMGM2ODMwYWMuLmZmMDM3NmVjODQ5NjllOWY3ZTUxMjkz
ZTE3ZDFlZGZlN2JjM2ZkNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUxpc3QucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5yYgpAQCAtNDk3LDYgKzQ5NywxNSBAQCBvcCA6Z2V0X2J5X2lkX2RpcmVj
dCwKICAgICAgICAgb2Zmc2V0OiB1bnNpZ25lZCwKICAgICB9CiAKK29wIDpnZXRfcHJvdG90eXBl
X29mLAorICAgIGFyZ3M6IHsKKyAgICAgICAgZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAgICAg
IHZhbHVlOiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAgfSwKKyAgICBtZXRhZGF0YTogeworICAgICAg
ICBwcm9maWxlOiBWYWx1ZVByb2ZpbGUsCisgICAgfQorCiBvcCA6dHJ5X2dldF9ieV9pZCwKICAg
ICBhcmdzOiB7CiAgICAgICAgIGRzdDogVmlydHVhbFJlZ2lzdGVyLApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKaW5kZXggZThmMGFlYTBl
NGEzYThlYWI3ZmQ4ZjYxMDk2ODA1ZjhjMTQ1OWU1YS4uMGYwNmZiNjQ4MGU0MDdiMDNmNzRjNWMz
NjE0Y2JhZGI0ZTBiZGMxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlVXNlRGVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCkBAIC0yMTMsNiArMjEzLDcgQEAgdm9pZCBjb21wdXRlVXNl
c0ZvckJ5dGVjb2RlSW5kZXhJbXBsKFZpcnR1YWxSZWdpc3RlciBzY29wZVJlZ2lzdGVyLCBjb25z
dCBJbnN0cnUKICAgICBVU0VTKE9wRW51bWVyYXRvclN0cnVjdHVyZVBuYW1lLCBlbnVtZXJhdG9y
LCBpbmRleCkKICAgICBVU0VTKE9wRW51bWVyYXRvckdlbmVyaWNQbmFtZSwgZW51bWVyYXRvciwg
aW5kZXgpCiAgICAgVVNFUyhPcEdldEJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSkKKyAgICBVU0VTKE9w
R2V0UHJvdG90eXBlT2YsIHZhbHVlKQogICAgIFVTRVMoT3BJbkJ5VmFsLCBiYXNlLCBwcm9wZXJ0
eSkKICAgICBVU0VTKE9wT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIGNvbnN0cnVjdG9yLCBoYXNJbnN0
YW5jZVZhbHVlKQogICAgIFVTRVMoT3BJbnN0YW5jZW9mLCB2YWx1ZSwgcHJvdG90eXBlKQpAQCAt
NDI0LDYgKzQyNSw3IEBAIHZvaWQgY29tcHV0ZURlZnNGb3JCeXRlY29kZUluZGV4SW1wbCh1bnNp
Z25lZCBudW1WYXJzLCBjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1CiAgICAgREVGUyhPcEluc3Rh
bmNlb2YsIGRzdCkKICAgICBERUZTKE9wSW5zdGFuY2VvZkN1c3RvbSwgZHN0KQogICAgIERFRlMo
T3BHZXRCeVZhbCwgZHN0KQorICAgIERFRlMoT3BHZXRQcm90b3R5cGVPZiwgZHN0KQogICAgIERF
RlMoT3BUeXBlb2YsIGRzdCkKICAgICBERUZTKE9wSWRlbnRpdHlXaXRoUHJvZmlsZSwgc3JjRHN0
KQogICAgIERFRlMoT3BJc0VtcHR5LCBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDVhOTM4NDA3MzE2NjA3ZDJmMTZlZTZkNmYwN2MxNjQ1
YmNjNTc4ZjUuLmZlZGY5NmMxNTYwMGVhNzU3ZTVlMmJlMTM3NDFhNzM2ZGU5MzEzNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC01MTQsNiAr
NTE0LDcgQEAgYm9vbCBDb2RlQmxvY2s6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgU2NyaXB0RXhl
Y3V0YWJsZSogb3duZXJFeGVjdXRhYmxlLCBVbmxpbmsKICAgICAgICAgTElOSyhPcFRyeUdldEJ5
SWQsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BHZXRCeUlkRGlyZWN0LCBwcm9maWxlKQogICAg
ICAgICBMSU5LKE9wR2V0QnlWYWxXaXRoVGhpcywgcHJvZmlsZSkKKyAgICAgICAgTElOSyhPcEdl
dFByb3RvdHlwZU9mLCBwcm9maWxlKQogICAgICAgICBMSU5LKE9wR2V0RnJvbUFyZ3VtZW50cywg
cHJvZmlsZSkKICAgICAgICAgTElOSyhPcFRvTnVtYmVyLCBwcm9maWxlKQogICAgICAgICBMSU5L
KE9wVG9OdW1lcmljLCBwcm9maWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL09wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29k
ZS5oCmluZGV4IGFhODg1OWFkZDYyODYwZmZkYWRiNGQyMjI4N2MzNGIwN2NlNWIzMzQuLmE5MGRj
NDM2NGM5MGRkOTVkMTlhN2RiMzQyMzIxMmQ2MDE0NWUwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvT3Bjb2RlLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGJpdFdpZHRoRm9yTWF4T3Bjb2RlTGVuZ3RoID0gV1RGOjpnZXRNU0JTZXRDb25z
dGV4cHIobQogICAgIG1hY3JvKE9wVHJ5R2V0QnlJZCkgXAogICAgIG1hY3JvKE9wR2V0QnlJZERp
cmVjdCkgXAogICAgIG1hY3JvKE9wR2V0QnlWYWxXaXRoVGhpcykgXAorICAgIG1hY3JvKE9wR2V0
UHJvdG90eXBlT2YpIFwKICAgICBtYWNybyhPcEdldEZyb21Bcmd1bWVudHMpIFwKICAgICBtYWNy
byhPcFRvTnVtYmVyKSBcCiAgICAgbWFjcm8oT3BUb051bWVyaWMpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAK
aW5kZXggNDlkZjk5MTc0ZTE4YTVmYzBjZDNlNzQxZTgwMWQ0NzlkZmI5NzM1Yy4uMDk4ZjQ4Y2Jl
N2RhZTJkZmYzM2FhNGFiZWRlYThiM2UwNTczODcxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTI2
NTQsNiArMjY1NCwxMiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldEJ5
VmFsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUgogICAgIHJldHVybiBkc3Q7
CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0UHJvdG90eXBlT2Yo
UmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZSkKK3sKKyAgICBPcEdldFByb3RvdHlw
ZU9mOjplbWl0KHRoaXMsIGRzdCwgdmFsdWUpOworICAgIHJldHVybiBkc3Q7Cit9CisKIFJlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0QnlWYWwoUmVnaXN0ZXJJRCogYmFzZSwg
UmVnaXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKQogewogICAgIE9wUHV0QnlW
YWw6OmVtaXQodGhpcywgYmFzZSwgcHJvcGVydHksIHZhbHVlLCBlY21hTW9kZSgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaAppbmRleCAxMmVjNWUxMzMzZjE2OTBmOTQzNzcwODE1ZDA4OTQ1NWM0YjY2YjcxLi5lY2Zh
Y2Q0ZTQ5NmEzYzk1MGIzM2EzZDllYTBhYTFlMDAxM2QyYmM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC03
ODUsNiArNzg1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRE
ZWxldGVCeUlkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRp
ZmllciYpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0QnlWYWwoUmVnaXN0ZXJJRCogZHN0
LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSk7CiAgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRHZXRCeVZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJl
Z2lzdGVySUQqIHRoaXNWYWx1ZSwgUmVnaXN0ZXJJRCogcHJvcGVydHkpOworICAgICAgICBSZWdp
c3RlcklEKiBlbWl0R2V0UHJvdG90eXBlT2YoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2
YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRQdXRCeVZhbChSZWdpc3RlcklEKiBiYXNl
LCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpOwogICAgICAgICBSZWdp
c3RlcklEKiBlbWl0UHV0QnlWYWwoUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogdGhpc1Zh
bHVlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpOwogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0RGlyZWN0UHV0QnlWYWwoUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJ
RCogcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCBhZTExYzRiNTkwOTRk
ODMzYWE2NmNmYWU4MTk1MzM0NTk1MDljYzU1Li5hODYzYjQzMTQ4ZTI0YzQyYzczNzEyZjk5Mjkx
YzYxNWY3Mzc2NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xOTMsMTcgKzE5MywxNyBAQCBzdGF0aWMgUmVnaXN0
ZXJJRCogZW1pdEhvbWVPYmplY3RGb3JDYWxsZWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRv
cikKIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3VwZXJCYXNlRm9yQ2FsbGVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IpCiB7CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGhvbWVPYmplY3Qg
PSBlbWl0SG9tZU9iamVjdEZvckNhbGxlZShnZW5lcmF0b3IpOwotICAgIHJldHVybiBnZW5lcmF0
b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBob21lT2JqZWN0LmdldCgp
LCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLnVuZGVyc2NvcmVQcm90byk7CisgICAgcmV0dXJu
IGdlbmVyYXRvci5lbWl0R2V0UHJvdG90eXBlT2YoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBo
b21lT2JqZWN0LmdldCgpKTsKIH0KIAogc3RhdGljIFJlZ2lzdGVySUQqIGVtaXRHZXRTdXBlckZ1
bmN0aW9uRm9yQ29uc3RydWN0KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCiB7CiAgICAg
aWYgKGdlbmVyYXRvci5pc0Rlcml2ZWRDb25zdHJ1Y3RvckNvbnRleHQoKSkKLSAgICAgICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGdlbmVy
YXRvci5lbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVu
dmlyb25tZW50KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5kZXJzY29yZVByb3RvKTsK
KyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0UHJvdG90eXBlT2YoZ2VuZXJhdG9yLm5l
d1RlbXBvcmFyeSgpLCBnZW5lcmF0b3IuZW1pdExvYWREZXJpdmVkQ29uc3RydWN0b3JGcm9tQXJy
b3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCgpKTsKIAogICAgIFJlZ2lzdGVySUQgY2FsbGVl
OwogICAgIGNhbGxlZS5zZXRJbmRleChDYWxsRnJhbWVTbG90OjpjYWxsZWUpOwotICAgIHJldHVy
biBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAmY2FsbGVl
LCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLnVuZGVyc2NvcmVQcm90byk7CisgICAgcmV0dXJu
IGdlbmVyYXRvci5lbWl0R2V0UHJvdG90eXBlT2YoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAm
Y2FsbGVlKTsKIH0KIAogUmVnaXN0ZXJJRCogU3VwZXJOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAxZDgwMjkxNDUwZTNj
ZTk1YWFjNWE0NDk3OTA5YjE5NWI4MmM5MmY5Li41Nzg1YTA4ZjhmZmFlZjc2MDljYTM2NzQ1M2Q3
MzYxZjliZDA0ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcApAQCAtNjA4OSw2ICs2MDg5LDEzIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6
OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9w
X2dldF9ieV9pZF93aXRoX3RoaXMpOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBvcF9nZXRf
cHJvdG90eXBlX29mOiB7CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3Ry
dWN0aW9uLT5hczxPcEdldFByb3RvdHlwZU9mPigpOworICAgICAgICAgICAgc2V0KGJ5dGVjb2Rl
Lm1fZHN0LCBhZGRUb0dyYXBoKEdldFByb3RvdHlwZU9mLCBPcEluZm8oMCksIE9wSW5mbyhnZXRQ
cmVkaWN0aW9uKCkpLCBnZXQoYnl0ZWNvZGUubV92YWx1ZSkpKTsKKyAgICAgICAgICAgIE5FWFRf
T1BDT0RFKG9wX2dldF9wcm90b3R5cGVfb2YpOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBv
cF9wdXRfYnlfaWQ6IHsKICAgICAgICAgICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb24tPmFzPE9wUHV0QnlJZD4oKTsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KGJ5
dGVjb2RlLm1fdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmls
aXRpZXMuY3BwCmluZGV4IDY4MWU3ZmY3OGQzM2E3MDYxNjhkZDViZTU4NGU5OTUzMmZjNjFhNDUu
LjU1ODFkYjQ1Zjk5MWJmNTE2NzVkYzc0ZTBlNzk2ZjA1OGQ4ZGEyYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTE3NCw2ICsxNzQsNyBA
QCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2Rl
QmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3dpdGhfdGhp
czoKICAgICBjYXNlIG9wX2dldF9ieV9pZF9kaXJlY3Q6CiAgICAgY2FzZSBvcF9nZXRfYnlfdmFs
X3dpdGhfdGhpczoKKyAgICBjYXNlIG9wX2dldF9wcm90b3R5cGVfb2Y6CiAgICAgY2FzZSBvcF9w
dXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9wdXRfYnlfaWRfd2l0aF90aGlzOgogICAgIGNhc2Ugb3Bf
cHV0X2J5X3ZhbF93aXRoX3RoaXM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcAppbmRleCA4OGQxOGZjMWZlOWFmM2JlZjdlYzhiNmM0YTkyMGE5NGNkZWRmNDZj
Li5kYTZjMWM1Zjk0Y2MwNWIxMmI2NWQzNDgwOWNkMmM4YjQ5YTdlYTJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTMyNDYsMjIgKzMyNDYsOCBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3RvdHlwZU9mKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CiAg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkudG9UaGlzKGds
b2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKLSAgICBpZiAodGhpc1ZhbHVlLmlzVW5k
ZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgY3JlYXRlTm90QW5PYmplY3RFcnJvcihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSkp
OwotCi0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4o
dm0sIHRoaXNWYWx1ZSk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0KSB7Ci0gICAgICAgIEpTT2JqZWN0
KiBwcm90b3R5cGUgPSB0aGlzVmFsdWUuc3ludGhlc2l6ZVByb3RvdHlwZShnbG9iYWxPYmplY3Qp
OwotICAgICAgICBFWENFUFRJT05fQVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIXByb3Rv
dHlwZSk7Ci0gICAgICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKLSAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShwcm90b3R5cGUpOwotICAgIH0KLQotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2Jq
ZWN0KSkpOworICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlLmdldFByb3RvdHlwZShnbG9iYWxP
YmplY3QpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRl
R2V0RnVsbFllYXIoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwCmluZGV4IDMyNDQ3ZDY4MWVjOWNkMzA0NDFhODczMWFkMzEyYjcyN2Ew
NzYxYTUuLjZiOTkwNjgzMGEwZTc5M2MyZGZmYzRhM2Q3NWMxOWM0ZGYwNGI4Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTM1Niw2ICszNTYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIERFRklORV9PUChvcF9nZXRfYnlfaWRfd2l0aF90
aGlzKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X2lkX2RpcmVjdCkKICAgICAgICAgREVG
SU5FX09QKG9wX2dldF9ieV92YWwpCisgICAgICAgIERFRklORV9PUChvcF9nZXRfcHJvdG90eXBl
X29mKQogICAgICAgICBERUZJTkVfT1Aob3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSkKICAgICAg
ICAgREVGSU5FX09QKG9wX2luc3RhbmNlb2YpCiAgICAgICAgIERFRklORV9PUChvcF9pbnN0YW5j
ZW9mX2N1c3RvbSkKQEAgLTYxNSw2ICs2MTYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVT
bG93Q2FzZXMoKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfU0xPV19PUChzdHJpY3RlcSkKICAg
ICAgICAgREVGSU5FX1NMT1dDQVNFX1NMT1dfT1AobnN0cmljdGVxKQogICAgICAgICBERUZJTkVf
U0xPV0NBU0VfU0xPV19PUChnZXRfZGlyZWN0X3BuYW1lKQorICAgICAgICBERUZJTkVfU0xPV0NB
U0VfU0xPV19PUChnZXRfcHJvdG90eXBlX29mKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfU0xP
V19PUChoYXNfc3RydWN0dXJlX3Byb3BlcnR5KQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfU0xP
V19PUChyZXNvbHZlX3Njb3BlKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfU0xPV19PUChjaGVj
a190ZHopCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCAzNGYzZDUwZjA0YmMyYjk2ZTBmOTU5
YzdjNmI1NTNmNzQ3MDA1NTFkLi42YjJlNDg0ZDRhNjQ5Mjg0MmRjOWYxMmViZmI1YjFiYTc4YjJi
MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTUyMSw2ICs1MjEsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9ieV9pZF9kaXJlY3QoY29uc3QgSW5z
dHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1
Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9hcmd1bWVudF9ieV92YWwoY29uc3Qg
SW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX2dldF9wcm90b3R5cGVfb2YoY29u
c3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2luX2J5X2lkKGNvbnN0IElu
c3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pbml0X2xhenlfcmVnKGNvbnN0IElu
c3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9vdmVycmlkZXNfaGFzX2luc3RhbmNl
KGNvbnN0IEluc3RydWN0aW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
LmNwcAppbmRleCA3Mjc3ZmU4YTM2NTZmMTg2YjkyOTA5NTdiNTQ5YzljYjYyZmI4ZTQwLi41NDNi
YmM4NDE3M2U1OGQ3YzM5YzExYmJlNTE2OTE3ZmUwZmM0MzIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTE3MjgsNiArMTcyOCwzMSBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9nZXRfYXJndW1lbnQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCwgcmVzdWx0UmVncyk7CiB9CiAKK3Zv
aWQgSklUOjplbWl0X29wX2dldF9wcm90b3R5cGVfb2YoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKK3sKKyAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9u
LT5hczxPcEdldFByb3RvdHlwZU9mPigpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYnl0
ZWNvZGUubV92YWx1ZSwgcmVnVDApOworCisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RDZWxs
KHJlZ1QwKSk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RUeXBlKHJlZ1QwLCBGaW5hbE9i
amVjdFR5cGUpKTsKKworICAgIGVtaXRMb2FkU3RydWN0dXJlKHZtKCksIHJlZ1QwLCByZWdUMiwg
cmVnVDEpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgbG9hZDY0KEFkZHJlc3MocmVnVDIsIFN0
cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkpLCByZWdUMik7CisgICAgSnVtcCBoYXNNb25vUHJv
dG8gPSBicmFuY2hUZXN0NjQoTm9uWmVybywgcmVnVDIpOworICAgIGxvYWQ2NChBZGRyZXNzKHJl
Z1QwLCBvZmZzZXRSZWxhdGl2ZVRvQmFzZShrbm93blBvbHlQcm90b09mZnNldCkpLCByZWdUMik7
CisjZWxzZQorICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QyLCBTdHJ1Y3R1cmU6OnByb3RvdHlwZU9m
ZnNldCgpICsgVGFnT2Zmc2V0KSwgcmVnVDEpOworICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QyLCBT
dHJ1Y3R1cmU6OnByb3RvdHlwZU9mZnNldCgpICsgUGF5bG9hZE9mZnNldCksIHJlZ1QyKTsKKyAg
ICBKdW1wIGhhc01vbm9Qcm90byA9IGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMSwgVHJ1c3RlZElt
bTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKTsKKyAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMCwg
b2Zmc2V0UmVsYXRpdmVUb0Jhc2Uoa25vd25Qb2x5UHJvdG9PZmZzZXQpICsgUGF5bG9hZE9mZnNl
dCksIHJlZ1QyKTsKKyNlbmRpZgorICAgIGhhc01vbm9Qcm90by5saW5rKHRoaXMpOworCisgICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwor
ICAgIGVtaXRTdG9yZUNlbGwoYnl0ZWNvZGUubV9kc3QsIHJlZ1QyKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IGZkZTUzMWYzZjcw
NDZjYzRjMjI3ZjY3OWIxOWRlOGI4NWFlMTZkMTcuLjRjNTg3NTQxMGFjMjU1YWVmNjE4YTBiMWE4
YzBkNzc5YWQ4NzM0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTE3NjMsNiArMTc2Myw3IEBAIHNsb3dQYXRoT3Ao
ZW51bWVyYXRvcl9zdHJ1Y3R1cmVfcG5hbWUpCiBzbG93UGF0aE9wKGdldF9ieV9pZF93aXRoX3Ro
aXMpCiBzbG93UGF0aE9wKGdldF9ieV92YWxfd2l0aF90aGlzKQogc2xvd1BhdGhPcChnZXRfZGly
ZWN0X3BuYW1lKQorc2xvd1BhdGhPcChnZXRfcHJvdG90eXBlX29mKQogc2xvd1BhdGhPcChnZXRf
ZW51bWVyYWJsZV9sZW5ndGgpCiBzbG93UGF0aE9wKGdldF9wcm9wZXJ0eV9lbnVtZXJhdG9yKQog
c2xvd1BhdGhPcChncmVhdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggYjY1NThmNDU4ZjlmY2EzNjNmMDYxNjU2ZWZhMGEz
NzA4YTg2OWRiMC4uN2E1YjM5NDQ3MTRjYTdlZDQ0YjZmMTZkZWIxYzgwNTIzNGIxZjhmNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CkBAIC0xMjkzLDYgKzEyOTMsMTQgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dldF9ieV92
YWxfd2l0aF90aGlzKQogICAgIFJFVFVSTl9QUk9GSUxFRChiYXNlVmFsdWUuZ2V0KGdsb2JhbE9i
amVjdCwgcHJvcGVydHksIHNsb3QpKTsKIH0KIAorU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dl
dF9wcm90b3R5cGVfb2YpCit7CisgICAgQkVHSU4oKTsKKyAgICBhdXRvIGJ5dGVjb2RlID0gcGMt
PmFzPE9wR2V0UHJvdG90eXBlT2Y+KCk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IEdFVF9DKGJ5dGVj
b2RlLm1fdmFsdWUpLmpzVmFsdWUoKTsKKyAgICBSRVRVUk5fUFJPRklMRUQodmFsdWUuZ2V0UHJv
dG90eXBlKGdsb2JhbE9iamVjdCkpOworfQorCiBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHV0
X2J5X2lkX3dpdGhfdGhpcykKIHsKICAgICBCRUdJTigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAppbmRleCA4NGMxYWI2MWQwZGFmNWVlNzg1
ZmIyMDM4N2I4Mzc4ZTFmYWUxZjkxLi5hMDUxMmQ5ZWI5YTc4MzJjZTBlNzMzOWIzYjZhMjg0ZGNh
YTZhYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25T
bG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93
UGF0aHMuaApAQCAtMjczLDYgKzI3Myw3IEBAIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfY3JlYXRlX2FzeW5jX2dlbmVyYXRvcik7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX2NyZWF0ZV9yZXN0KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2J5
X2lkX3dpdGhfdGhpcyk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9ieV92
YWxfd2l0aF90aGlzKTsKK1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X3Byb3Rv
dHlwZV9vZik7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF9ieV9pZF93aXRo
X3RoaXMpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfdmFsX3dpdGhf
dGhpcyk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2RlZmluZV9kYXRhX3Byb3Bl
cnR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFs
dWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAppbmRleCBj
YzJjYzEwYTFlYTg3ODZkZTNhY2I1YzcxNjQzMTc5YTVjOWY3MjhlLi4wODE0OTZiNzdjOGU2NTA4
NTJjOGY3Yzk4OWRlMTU0ZjlhNTMwNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZS5oCkBAIC0zMjEsNiArMzIxLDcgQEAgcHVibGljOgogICAgIEpTX0VYUE9S
VF9QUklWQVRFIGJvb2wgcHV0VG9QcmltaXRpdmVCeUluZGV4KEpTR2xvYmFsT2JqZWN0KiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBib29sIHNob3VsZFRocm93KTsKICAgICBib29s
IHB1dEJ5SW5kZXgoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUsIGJvb2wgc2hvdWxkVGhyb3cpOwogCisgICAgSlNWYWx1ZSBnZXRQcm90b3R5cGUoSlNHbG9i
YWxPYmplY3QqKSBjb25zdDsKICAgICBKU1ZhbHVlIHRvVGhpcyhKU0dsb2JhbE9iamVjdCosIEVD
TUFNb2RlKSBjb25zdDsKIAogICAgIHN0YXRpYyBib29sIGVxdWFsKEpTR2xvYmFsT2JqZWN0Kiwg
SlNWYWx1ZSB2MSwgSlNWYWx1ZSB2Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCAwMTFkNThiZDU3NDQ4NjgwZTU0YzM4ZmE3
ZDYzZjFmNWY3NzE3MTIzLi45ZDc2ZDNlNDNhZGQ1MTZkZmU1NGMxNTFmZjk2ZGRmMGZiYTBiZDc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5s
aW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmgKQEAgLTEwODEsNiArMTA4MSwxOCBAQCBpbmxpbmUgYm9vbCBKU1ZhbHVlOjpwdXRCeUlu
ZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIHByb3BlcnR5TgogICAg
IHJldHVybiBhc0NlbGwoKS0+bWV0aG9kVGFibGUoZ2V0Vk0oZ2xvYmFsT2JqZWN0KSktPnB1dEJ5
SW5kZXgoYXNDZWxsKCksIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2hvdWxk
VGhyb3cpOwogfQogCitBTFdBWVNfSU5MSU5FIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0UHJvdG90eXBl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Cit7CisgICAgVk0mIHZtID0gZ2V0
Vk0oZ2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CisgICAgaWYgKGlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiBhc09iamVjdChhc0NlbGwo
KSktPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KTsKKworICAgIEpTT2JqZWN0KiBwcm90
b3R5cGUgPSBzeW50aGVzaXplUHJvdG90eXBlKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gcHJvdG90eXBlOworfQorCiBpbmxp
bmUgU3RydWN0dXJlKiBKU1ZhbHVlOjpzdHJ1Y3R1cmVPck51bGwoKSBjb25zdAogewogICAgIGlm
IChpc0NlbGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCAzODE4N2E3ZTczMDY0Nzk4ZWJiYWNm
MmZhNTNmYzhjN2RjYWFhOTk4Li5lYTI1ZThiODk0NjljNjllN2YxMWJjYzBhMDMxYWU0NzNiMTY5
ODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC02OTMsMjMgKzY5Myw4IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY01ha2VUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1By
b3RvR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNh
bGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmlj
dCgpKTsKLSAgICBpZiAodGhpc1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlTm90QW5PYmplY3RF
cnJvcihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSkpOwotCi0gICAgSlNPYmplY3QqIHRoaXNPYmpl
Y3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7Ci0gICAgaWYgKCF0
aGlzT2JqZWN0KSB7Ci0gICAgICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSB0aGlzVmFsdWUuc3lu
dGhlc2l6ZVByb3RvdHlwZShnbG9iYWxPYmplY3QpOwotICAgICAgICBFWENFUFRJT05fQVNTRVJU
KCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIXByb3RvdHlwZSk7Ci0gICAgICAgIGlmIChVTkxJS0VM
WSghcHJvdG90eXBlKSkKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1
ZSgpKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShwcm90b3R5cGUpOwotICAgIH0K
LQotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmpl
Y3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSkpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUodGhpc1ZhbHVlLmdldFByb3RvdHlwZShnbG9iYWxPYmplY3QpKTsKIH0KIAogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9TZXR0ZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBmY2U4NWQ3MWI5OTJm
ZTIzMGM0NWU1MWYyMDA0NTZiN2IzN2ExZGYuLjUxZTJiMWZkYzkwOWNiNDJlNzAyNGVjMGEyODg5
MTc3NjhkYjcyNDkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDUtMjEgIEFsZXhleSBTaHZheWthICA8
c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIHN1cGVyIHNob3VsZCBub3QgZGVwZW5k
IG9uIF9fcHJvdG9fXworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU3OTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBzdHJlc3MvY2xhc3Mtc3ludGF4LWRlcml2ZWQtZGVmYXVsdC1jb25zdHJ1Y3Rvci5q
czoKKyAgICAgICAgKiBzdHJlc3Mvc3VwZXItcHJvcGVydHktYWNjZXNzLmpzOgorICAgICAgICAq
IHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1hcmsgNCB0ZXN0IGNhc2VzIGFzIHBhc3Npbmcu
CisKIDIwMjAtMDUtMjEgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgog
CiAgICAgICAgIFVzZSBAaXNVbmRlZmluZWRPck51bGwgaW5zdGVhZCBvZiBhYnN0cmFjdCBlcXVh
bGl0eSB3aXRoIG51bGwKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2NsYXNzLXN5bnRheC1k
ZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50
YXgtZGVyaXZlZC1kZWZhdWx0LWNvbnN0cnVjdG9yLmpzCmluZGV4IGYwYzQ3N2U1ZjUxODNlZTVm
NDgyODQ4MGQ3NWYwMjVjYTI5ZWYxNmUuLjI0YmQ2NDI5MjVmZjM4Mjk3YjJlMmJiNDVjMmQ5NGI1
NWU0ZWM0OTkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVk
LWRlZmF1bHQtY29uc3RydWN0b3IuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvY2xhc3Mtc3ludGF4
LWRlcml2ZWQtZGVmYXVsdC1jb25zdHJ1Y3Rvci5qcwpAQCAtMSwzICsxLDQgQEAKK09iamVjdC5k
ZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiX19wcm90b19fIiwge2dldDogdW5kZWZp
bmVkfSk7CiAKIHZhciBBID0gY2xhc3MgQSB7IH07CiB2YXIgQiA9IGNsYXNzIEIgZXh0ZW5kcyBB
IHsgfTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5q
cyBiL0pTVGVzdHMvc3RyZXNzL3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qcwppbmRleCA2NTk5NmE3
NTk3NTRjZDk1MTdlNmMyNWFlYjk1ZDJmNmFjN2ZhNzM2Li42MThhYjNiNmMyNTI5ZmRlODkxZjli
ZGZmNTRiZDNlNmI1M2EwNTBjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zdXBlci1wcm9w
ZXJ0eS1hY2Nlc3MuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc3VwZXItcHJvcGVydHktYWNjZXNz
LmpzCkBAIC0xLDMgKzEsNSBAQAorT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5
cGUsICJfX3Byb3RvX18iLCB7Z2V0OiB1bmRlZmluZWR9KTsKKwogZnVuY3Rpb24gYXNzZXJ0KGIs
IG0gPSAiQmFkISIpIHsKICAgICBpZiAoIWIpIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG0p
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0
cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IGU5NzFkNGQ1M2Y2NGE5MDZmMTYwYTNi
ZTZmOTRmMTIwZmRlZjU5N2UuLmNlNGIwNDZkODc5MzE5ZTUyZjg5ZDc5OGNiMjdjNmY4ZDE0M2Y0
OTcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9K
U1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTMwMTQsMTIgKzMwMTQsNiBAQCB0
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL3ByZWZpeC1pbmNyZW1lbnQvUzExLjQuNF9BNV9UNS5q
czoKIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvcHJlZml4LWluY3JlbWVudC9TMTEuNC40X0E2
X1QzLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3Qg
ZmFsc2UnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBn
b3QgZmFsc2UnCi10ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL3N1cGVyL2NhbGwtcG9pc29uZWQt
dW5kZXJzY29yZS1wcm90by5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogc2hvdWxkIG5v
dCBiZSBjYWxsZWQnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBzaG91bGQgbm90IGJl
IGNhbGxlZCcKLXRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvc3VwZXIvcHJvcC1wb2lzb25lZC11
bmRlcnNjb3JlLXByb3RvLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBzaG91bGQgbm90
IGJlIGNhbGxlZCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IHNob3VsZCBub3QgYmUg
Y2FsbGVkJwogdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy95aWVsZC9zdGFyLWl0ZXJhYmxlLmpz
OgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBGaXJzdCByZXN1bHQgYGRvbmVgIGZsYWcgRXhw
ZWN0ZWQgU2FtZVZhbHVlKMKrZmFsc2XCuywgwqt1bmRlZmluZWTCuykgdG8gYmUgdHJ1ZScKICAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEZpcnN0IHJlc3VsdCBgZG9uZWAgZmxhZyBFeHBl
Y3RlZCBTYW1lVmFsdWUowqtmYWxzZcK7LCDCq3VuZGVmaW5lZMK7KSB0byBiZSB0cnVlJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400048</attachid>
            <date>2020-05-22 08:27:05 -0700</date>
            <delta_ts>2020-05-22 08:44:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157972-20200522182703.patch</filename>
            <type>text/plain</type>
            <size>24939</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MDlkMGVlMDQ4ZmI1Y2E5MTk0ODQ2M2U4NDVhMjY5MDczNGVkN2Y0Li5hZmNmOGRhMjNkNjZjMzZl
M2ZmZjUyNzhiZTQwZTAyODQwNzNmYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMC0wNS0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgc3VwZXIgc2hvdWxkIG5vdCBkZXBlbmQgb24gX19wcm90b19fCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgdGhp
cyBjaGFuZ2UsIGJvdGggc3VwZXIoKSBjYWxsIFsxXSBhbmQgc3VwZXIucHJvcGVydHkgWzJdIHJl
bGllZCBvbgorICAgICAgICBPYmplY3QucHJvdG90eXBlLl9fcHJvdG9fXyB0byBhY3F1aXJlIHN1
cGVyIGJhc2UsIHdoaWNoIHdhcyBvYnNlcnZhYmxlIGFuZAorICAgICAgICBpbmNvcnJlY3QgaWYg
X19wcm90b19fIGdldHMgcmVtb3ZlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGRlZmluZXMgT3BH
ZXRQcm90b3R5cGVPZiBmb3IgTExJbnQgYW5kIGJhc2VsaW5lIEpJVCwgZW5zdXJpbmcKKyAgICAg
ICAgcmV0dXJuZWQgdmFsdWVzIGFyZSBwcm9maWxlZCBzbyB0aGUgb3AgY2FuIGJlIHdpcmVkIHRv
IGV4aXN0aW5nIERGRyBhbmQgRlRMCisgICAgICAgIGltcGxlbWVudGF0aW9ucy4gU2luY2UgX19w
cm90b19fIGlzIG9wdGltaXplZCB2aWEgSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZSwKKyAgICAg
ICAgSklUIGZhc3QgcGF0aCBpcyBpbnRyb2R1Y2VkIHRvIGF2b2lkIHBlcmZvcm1hbmNlIHJlZ3Jl
c3Npb25zIHcvbyBERkcuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxpZ25zIEpTQyB3aXRoIFY4
IGFuZCBTcGlkZXJNb25rZXksIHByb2dyZXNzaW5nIG1pY3JvYmVuY2htYXJrcy8KKyAgICAgICAg
c3VwZXItZ2V0LWJ5LXtpZCx2YWx9LXdpdGgtdGhpcy1tb25vbW9ycGhpYy5qcyBieSA3LTEwJS4g
U2l4U3BlZWQgaXMgbmV1dHJhbC4KKyAgICAgICAgQWxzbywgZXh0cmFjdHMgSlNWYWx1ZTo6Z2V0
UHJvdG90eXBlKCkgbWV0aG9kIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uCisKKyAgICAgICAg
WzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVyY29uc3RydWN0b3IgKHN0
ZXAgNSkKKyAgICAgICAgWzJdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVy
YmFzZSAoc3RlcCA1KQorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAg
ICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0
ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJ5dGVj
b2RlL09wY29kZS5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0UHJvdG90eXBlT2Yp
OgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjplbWl0U3VwZXJC
YXNlRm9yQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6ZW1pdEdldFN1cGVyRnVuY3Rpb25Gb3JDb25z
dHJ1Y3QpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVQuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlND
OjpKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKToKKyAgICAgICAgKiBqaXQvSklULmg6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X3Byb3RvdHlwZV9vZik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcHJvdG90eXBlX29mKToKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBy
dW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6Z2V0UHJvdG90eXBlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0dGVy
KToKKwogMjAyMC0wNS0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+
CiAKICAgICAgICAgVXNlIEBpc1VuZGVmaW5lZE9yTnVsbCBpbnN0ZWFkIG9mIGFic3RyYWN0IGVx
dWFsaXR5IHdpdGggbnVsbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUxpc3QucmIKaW5kZXggN2Q1YjhjOTgzN2MzNjU3ZGM4YWUwMGUwNmQyY2Y3MjAwYzY4MzBh
Yy4uZmYwMzc2ZWM4NDk2OWU5ZjdlNTEyOTNlMTdkMWVkZmU3YmMzZmQ0MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCkBAIC00OTcsNiArNDk3
LDE1IEBAIG9wIDpnZXRfYnlfaWRfZGlyZWN0LAogICAgICAgICBvZmZzZXQ6IHVuc2lnbmVkLAog
ICAgIH0KIAorb3AgOmdldF9wcm90b3R5cGVfb2YsCisgICAgYXJnczogeworICAgICAgICBkc3Q6
IFZpcnR1YWxSZWdpc3RlciwKKyAgICAgICAgdmFsdWU6IFZpcnR1YWxSZWdpc3RlciwKKyAgICB9
LAorICAgIG1ldGFkYXRhOiB7CisgICAgICAgIHByb2ZpbGU6IFZhbHVlUHJvZmlsZSwKKyAgICB9
CisKIG9wIDp0cnlfZ2V0X2J5X2lkLAogICAgIGFyZ3M6IHsKICAgICAgICAgZHN0OiBWaXJ0dWFs
UmVnaXN0ZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
VXNlRGVmLmNwcAppbmRleCBlOGYwYWVhMGU0YTNhOGVhYjdmZDhmNjEwOTY4MDVmOGMxNDU5ZTVh
Li4wZjA2ZmI2NDgwZTQwN2IwM2Y3NGM1YzM2MTRjYmFkYjRlMGJkYzEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKQEAgLTIxMyw2
ICsyMTMsNyBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJl
Z2lzdGVyIHNjb3BlUmVnaXN0ZXIsIGNvbnN0IEluc3RydQogICAgIFVTRVMoT3BFbnVtZXJhdG9y
U3RydWN0dXJlUG5hbWUsIGVudW1lcmF0b3IsIGluZGV4KQogICAgIFVTRVMoT3BFbnVtZXJhdG9y
R2VuZXJpY1BuYW1lLCBlbnVtZXJhdG9yLCBpbmRleCkKICAgICBVU0VTKE9wR2V0QnlWYWwsIGJh
c2UsIHByb3BlcnR5KQorICAgIFVTRVMoT3BHZXRQcm90b3R5cGVPZiwgdmFsdWUpCiAgICAgVVNF
UyhPcEluQnlWYWwsIGJhc2UsIHByb3BlcnR5KQogICAgIFVTRVMoT3BPdmVycmlkZXNIYXNJbnN0
YW5jZSwgY29uc3RydWN0b3IsIGhhc0luc3RhbmNlVmFsdWUpCiAgICAgVVNFUyhPcEluc3RhbmNl
b2YsIHZhbHVlLCBwcm90b3R5cGUpCkBAIC00MjQsNiArNDI1LDcgQEAgdm9pZCBjb21wdXRlRGVm
c0ZvckJ5dGVjb2RlSW5kZXhJbXBsKHVuc2lnbmVkIG51bVZhcnMsIGNvbnN0IEluc3RydWN0aW9u
KiBpbnN0cnUKICAgICBERUZTKE9wSW5zdGFuY2VvZiwgZHN0KQogICAgIERFRlMoT3BJbnN0YW5j
ZW9mQ3VzdG9tLCBkc3QpCiAgICAgREVGUyhPcEdldEJ5VmFsLCBkc3QpCisgICAgREVGUyhPcEdl
dFByb3RvdHlwZU9mLCBkc3QpCiAgICAgREVGUyhPcFR5cGVvZiwgZHN0KQogICAgIERFRlMoT3BJ
ZGVudGl0eVdpdGhQcm9maWxlLCBzcmNEc3QpCiAgICAgREVGUyhPcElzRW1wdHksIGRzdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNWE5Mzg0
MDczMTY2MDdkMmYxNmVlNmQ2ZjA3YzE2NDViY2M1NzhmNS4uZmVkZjk2YzE1NjAwZWE3NTdlNWUy
YmUxMzc0MWE3MzZkZTkzMTM3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKQEAgLTUxNCw2ICs1MTQsNyBAQCBib29sIENvZGVCbG9jazo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGlu
awogICAgICAgICBMSU5LKE9wVHJ5R2V0QnlJZCwgcHJvZmlsZSkKICAgICAgICAgTElOSyhPcEdl
dEJ5SWREaXJlY3QsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BHZXRCeVZhbFdpdGhUaGlzLCBw
cm9maWxlKQorICAgICAgICBMSU5LKE9wR2V0UHJvdG90eXBlT2YsIHByb2ZpbGUpCiAgICAgICAg
IExJTksoT3BHZXRGcm9tQXJndW1lbnRzLCBwcm9maWxlKQogICAgICAgICBMSU5LKE9wVG9OdW1i
ZXIsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BUb051bWVyaWMsIHByb2ZpbGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKaW5kZXggYWE4ODU5YWRkNjI4NjBmZmRhZGI0
ZDIyMjg3YzM0YjA3Y2U1YjMzNC4uYTkwZGM0MzY0YzkwZGQ5NWQxOWE3ZGIzNDIzMjEyZDYwMTQ1
ZTA3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaApAQCAtMTA1LDYg
KzEwNSw3IEBAIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0V2lkdGhGb3JNYXhPcGNvZGVM
ZW5ndGggPSBXVEY6OmdldE1TQlNldENvbnN0ZXhwcihtCiAgICAgbWFjcm8oT3BUcnlHZXRCeUlk
KSBcCiAgICAgbWFjcm8oT3BHZXRCeUlkRGlyZWN0KSBcCiAgICAgbWFjcm8oT3BHZXRCeVZhbFdp
dGhUaGlzKSBcCisgICAgbWFjcm8oT3BHZXRQcm90b3R5cGVPZikgXAogICAgIG1hY3JvKE9wR2V0
RnJvbUFyZ3VtZW50cykgXAogICAgIG1hY3JvKE9wVG9OdW1iZXIpIFwKICAgICBtYWNybyhPcFRv
TnVtZXJpYykgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCA0OWRmOTkxNzRlMThhNWZjMGNkM2U3NDFl
ODAxZDQ3OWRmYjk3MzVjLi4wOThmNDhjYmU3ZGFlMmRmZjMzYWE0YWJlZGVhOGIzZTA1NzM4NzFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMjY1NCw2ICsyNjU0LDEyIEBAIFJlZ2lzdGVySUQqIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0QnlWYWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBiYXNlLCBSCiAgICAgcmV0dXJuIGRzdDsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRHZXRQcm90b3R5cGVPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZh
bHVlKQoreworICAgIE9wR2V0UHJvdG90eXBlT2Y6OmVtaXQodGhpcywgZHN0LCB2YWx1ZSk7Cisg
ICAgcmV0dXJuIGRzdDsKK30KKwogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQ
dXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJ
RCogdmFsdWUpCiB7CiAgICAgT3BQdXRCeVZhbDo6ZW1pdCh0aGlzLCBiYXNlLCBwcm9wZXJ0eSwg
dmFsdWUsIGVjbWFNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDEyZWM1ZTEzMzNmMTY5MGY5NDM3
NzA4MTVkMDg5NDU1YzRiNjZiNzEuLmVjZmFjZDRlNDk2YTNjOTUwYjMzYTNkOWVhMGFhMWUwMDEz
ZDJiYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTc4NSw2ICs3ODUsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERlbGV0ZUJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRHZXRCeVZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQq
IHByb3BlcnR5KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEdldEJ5VmFsKFJlZ2lzdGVySUQq
IGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogdGhpc1ZhbHVlLCBSZWdpc3RlcklE
KiBwcm9wZXJ0eSk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRQcm90b3R5cGVPZihSZWdp
c3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dFB1dEJ5VmFsKFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3Rl
cklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRQdXRCeVZhbChSZWdpc3RlcklE
KiBiYXNlLCBSZWdpc3RlcklEKiB0aGlzVmFsdWUsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdp
c3RlcklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXREaXJlY3RQdXRCeVZhbChS
ZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwCmluZGV4IGFlMTFjNGI1OTA5NGQ4MzNhYTY2Y2ZhZTgxOTUzMzQ1OTUwOWNjNTUuLmE4
NjNiNDMxNDhlMjRjNDJjNzM3MTJmOTkyOTFjNjE1ZjczNzY0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE5Mywx
NyArMTkzLDE3IEBAIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0SG9tZU9iamVjdEZvckNhbGxlZShC
eXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQogc3RhdGljIFJlZ2lzdGVySUQqIGVtaXRTdXBl
ckJhc2VGb3JDYWxsZWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikKIHsKICAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gaG9tZU9iamVjdCA9IGVtaXRIb21lT2JqZWN0Rm9yQ2FsbGVlKGdlbmVy
YXRvcik7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCksIGhvbWVPYmplY3QuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5k
ZXJzY29yZVByb3RvKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGhvbWVPYmplY3QuZ2V0KCkpOwogfQogCiBzdGF0aWMg
UmVnaXN0ZXJJRCogZW1pdEdldFN1cGVyRnVuY3Rpb25Gb3JDb25zdHJ1Y3QoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvcikKIHsKICAgICBpZiAoZ2VuZXJhdG9yLmlzRGVyaXZlZENvbnN0cnVj
dG9yQ29udGV4dCgpKQotICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKSwgZ2VuZXJhdG9yLmVtaXRMb2FkRGVyaXZlZENvbnN0cnVjdG9y
RnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5
TmFtZXMoKS51bmRlcnNjb3JlUHJvdG8pOworICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRH
ZXRQcm90b3R5cGVPZihnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGdlbmVyYXRvci5lbWl0TG9h
ZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCkp
OwogCiAgICAgUmVnaXN0ZXJJRCBjYWxsZWU7CiAgICAgY2FsbGVlLnNldEluZGV4KENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSk7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0
b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5k
ZXJzY29yZVByb3RvKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUpOwogfQogCiBSZWdpc3RlcklEKiBTdXBl
ck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3Rl
cklEKiBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCmluZGV4IDFkODAyOTE0NTBlM2NlOTVhYWM1YTQ0OTc5MDliMTk1YjgyYzkyZjkuLjU3
ODVhMDhmOGZmYWVmNzYwOWNhMzY3NDUzZDczNjFmOWJkMDQ4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC02MDg5LDYgKzYwODks
MTMgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKIAog
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyk7CiAgICAgICAg
IH0KKworICAgICAgICBjYXNlIG9wX2dldF9wcm90b3R5cGVfb2Y6IHsKKyAgICAgICAgICAgIGF1
dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0UHJvdG90eXBlT2Y+KCk7
CisgICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3QsIGFkZFRvR3JhcGgoR2V0UHJvdG90eXBl
T2YsIE9wSW5mbygwKSwgT3BJbmZvKGdldFByZWRpY3Rpb24oKSksIGdldChieXRlY29kZS5tX3Zh
bHVlKSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0X3Byb3RvdHlwZV9vZik7Cisg
ICAgICAgIH0KKwogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pZDogewogICAgICAgICAgICAgYXV0
byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BQdXRCeUlkPigpOwogICAgICAg
ICAgICAgTm9kZSogdmFsdWUgPSBnZXQoYnl0ZWNvZGUubV92YWx1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggNjgxZTdmZjc4ZDMzYTcw
NjE2OGRkNWJlNTg0ZTk5NTMyZmM2MWE0NS4uNTU4MWRiNDVmOTkxYmY1MTY3NWRjNzRlMGU3OTZm
MDU4ZDhkYTJiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMTc0LDYgKzE3NCw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2
ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBJCiAgICAg
Y2FzZSBvcF9nZXRfYnlfaWRfd2l0aF90aGlzOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX2RpcmVj
dDoKICAgICBjYXNlIG9wX2dldF9ieV92YWxfd2l0aF90aGlzOgorICAgIGNhc2Ugb3BfZ2V0X3By
b3RvdHlwZV9vZjoKICAgICBjYXNlIG9wX3B1dF9ieV9pZDoKICAgICBjYXNlIG9wX3B1dF9ieV9p
ZF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9wdXRfYnlfdmFsX3dpdGhfdGhpczoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDg4ZDE4ZmMxZmU5YWYz
YmVmN2VjOGI2YzRhOTIwYTk0Y2RlZGY0NmMuLmRhNmMxYzVmOTRjYzA1YjEyYjY1ZDM0ODA5Y2Qy
YzhiNDlhN2VhMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcApAQCAtMzI0NiwyMiArMzI0Niw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotCi0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkp
OwotICAgIGlmICh0aGlzVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVOb3RBbk9iamVjdEVycm9y
KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlKSk7Ci0KLSAgICBKU09iamVjdCogdGhpc09iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKLSAgICBpZiAoIXRoaXNP
YmplY3QpIHsKLSAgICAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IHRoaXNWYWx1ZS5zeW50aGVz
aXplUHJvdG90eXBlKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoISFz
Y29wZS5leGNlcHRpb24oKSA9PSAhcHJvdG90eXBlKTsKLSAgICAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkp
OwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3RvdHlwZSk7Ci0gICAgfQotCi0g
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVjdC0+
Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpKSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
dmFsdWUuZ2V0UHJvdG90eXBlKGdsb2JhbE9iamVjdCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRl
SW5zdGFuY2UqIGRhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggMzI0NDdkNjgx
ZWM5Y2QzMDQ0MWE4NzMxYWQzMTJiNzI3YTA3NjFhNS4uNmI5OTA2ODMwYTBlNzkzYzJkZmZjNGEz
ZDc1YzE5YzRkZjA0YjhjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMzU2LDYg
KzM1Niw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgREVG
SU5FX09QKG9wX2dldF9ieV9pZF93aXRoX3RoaXMpCiAgICAgICAgIERFRklORV9PUChvcF9nZXRf
YnlfaWRfZGlyZWN0KQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X3ZhbCkKKyAgICAgICAg
REVGSU5FX09QKG9wX2dldF9wcm90b3R5cGVfb2YpCiAgICAgICAgIERFRklORV9PUChvcF9vdmVy
cmlkZXNfaGFzX2luc3RhbmNlKQogICAgICAgICBERUZJTkVfT1Aob3BfaW5zdGFuY2VvZikKICAg
ICAgICAgREVGSU5FX09QKG9wX2luc3RhbmNlb2ZfY3VzdG9tKQpAQCAtNjE1LDYgKzYxNiw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIERFRklORV9TTE9X
Q0FTRV9TTE9XX09QKHN0cmljdGVxKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfU0xPV19PUChu
c3RyaWN0ZXEpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKGdldF9kaXJlY3RfcG5h
bWUpCisgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKGdldF9wcm90b3R5cGVfb2YpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKGhhc19zdHJ1Y3R1cmVfcHJvcGVydHkpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKHJlc29sdmVfc2NvcGUpCiAgICAgICAgIERF
RklORV9TTE9XQ0FTRV9TTE9XX09QKGNoZWNrX3RkeikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmlu
ZGV4IDM0ZjNkNTBmMDRiYzJiOTZlMGY5NTljN2M2YjU1M2Y3NDcwMDU1MWQuLjZiMmU0ODRkNGE2
NDkyODQyZGM5ZjEyZWJmYjViMWJhNzhiMmIxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApA
QCAtNTIxLDYgKzUyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3Bf
Z2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bf
Z2V0X2FyZ3VtZW50X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGVt
aXRfb3BfZ2V0X3Byb3RvdHlwZV9vZihjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lk
IGVtaXRfb3BfaW5fYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX2luaXRfbGF6eV9yZWcoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDcyNzdmZThhMzY1NmYxODZiOTI5
MDk1N2I1NDljOWNiNjJmYjhlNDAuLjRkNmQzZDYxMjA1YmY0NDQ4ZjA0ZmMyODcwMWYzMDFhY2Nm
YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTcy
OCw2ICsxNzI4LDI0IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9hcmd1bWVudChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
ZHN0LCByZXN1bHRSZWdzKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X3Byb3RvdHlwZV9v
Zihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGF1dG8gYnl0
ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0UHJvdG90eXBlT2Y+KCk7CisgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcihieXRlY29kZS5tX3ZhbHVlLCByZWdUMCk7CisKKyAgICBh
ZGRTbG93Q2FzZShicmFuY2hJZk5vdENlbGwocmVnVDApKTsKKyAgICBhZGRTbG93Q2FzZShicmFu
Y2hJZk5vdFR5cGUocmVnVDAsIEZpbmFsT2JqZWN0VHlwZSwgSlNGdW5jdGlvblR5cGUpKTsKKwor
ICAgIGVtaXRMb2FkU3RydWN0dXJlKHZtKCksIHJlZ1QwLCByZWdUMiwgcmVnVDEpOworICAgIGxv
YWQ2NChBZGRyZXNzKHJlZ1QyLCBTdHJ1Y3R1cmU6OnByb3RvdHlwZU9mZnNldCgpKSwgcmVnVDIp
OworICAgIEp1bXAgaGFzTW9ub1Byb3RvID0gYnJhbmNoVGVzdDY0KE5vblplcm8sIHJlZ1QyKTsK
KyAgICBsb2FkNjQoQWRkcmVzcyhyZWdUMCwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2Uoa25vd25Qb2x5
UHJvdG9PZmZzZXQpKSwgcmVnVDIpOworICAgIGhhc01vbm9Qcm90by5saW5rKHRoaXMpOworCisg
ICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykp
OworICAgIGVtaXRTdG9yZUNlbGwoYnl0ZWNvZGUubV9kc3QsIHJlZ1QyKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDRjNWJkMGMxNTkxZmEzZGNkZTM4
NWE0YjA0MWE1ZTgwNjc5MzU2ZmMuLmJiYzA4ODE2Y2E5NWRmODgyMTU5ZWVlMGY4ZDc3YWNiNWVm
MjVhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5j
cHAKQEAgLTEyODYsNiArMTI4NiwyNSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0X3Bu
YW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFN0b3Jl
KGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X3Byb3RvdHlw
ZV9vZihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGF1dG8g
Ynl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0UHJvdG90eXBlT2Y+KCk7Cisg
ICAgZW1pdExvYWQoYnl0ZWNvZGUubV92YWx1ZSwgcmVnVDEsIHJlZ1QwKTsKKworICAgIGFkZFNs
b3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaElm
Tm90VHlwZShyZWdUMCwgRmluYWxPYmplY3RUeXBlLCBKU0Z1bmN0aW9uVHlwZSkpOworCisgICAg
ZW1pdExvYWRTdHJ1Y3R1cmUodm0oKSwgcmVnVDAsIHJlZ1QyLCByZWdUMSk7CisgICAgbG9hZDMy
KEFkZHJlc3MocmVnVDIsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkgKyBUYWdPZmZzZXQp
LCByZWdUMSk7CisgICAgbG9hZDMyKEFkZHJlc3MocmVnVDIsIFN0cnVjdHVyZTo6cHJvdG90eXBl
T2Zmc2V0KCkgKyBQYXlsb2FkT2Zmc2V0KSwgcmVnVDIpOworICAgIEp1bXAgaGFzTW9ub1Byb3Rv
ID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlW
YWx1ZVRhZykpOworICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QwLCBvZmZzZXRSZWxhdGl2ZVRvQmFz
ZShrbm93blBvbHlQcm90b09mZnNldCkgKyBQYXlsb2FkT2Zmc2V0KSwgcmVnVDIpOworICAgIGhh
c01vbm9Qcm90by5saW5rKHRoaXMpOworCisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRl
Y29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRTdG9yZUNlbGwoYnl0ZWNvZGUu
bV9kc3QsIHJlZ1QyKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfZW51bWVyYXRvcl9zdHJ1Y3R1
cmVfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBh
dXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEVudW1lcmF0b3JTdHJ1Y3R1
cmVQbmFtZT4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbQppbmRleCBmZGU1MzFmM2Y3MDQ2Y2M0YzIyN2Y2NzliMTlkZThiODVh
ZTE2ZDE3Li40YzU4NzU0MTBhYzI1NWFlZjYxOGEwYjFhOGMwZDc3OWFkODczNDlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
CkBAIC0xNzYzLDYgKzE3NjMsNyBAQCBzbG93UGF0aE9wKGVudW1lcmF0b3Jfc3RydWN0dXJlX3Bu
YW1lKQogc2xvd1BhdGhPcChnZXRfYnlfaWRfd2l0aF90aGlzKQogc2xvd1BhdGhPcChnZXRfYnlf
dmFsX3dpdGhfdGhpcykKIHNsb3dQYXRoT3AoZ2V0X2RpcmVjdF9wbmFtZSkKK3Nsb3dQYXRoT3Ao
Z2V0X3Byb3RvdHlwZV9vZikKIHNsb3dQYXRoT3AoZ2V0X2VudW1lcmFibGVfbGVuZ3RoKQogc2xv
d1BhdGhPcChnZXRfcHJvcGVydHlfZW51bWVyYXRvcikKIHNsb3dQYXRoT3AoZ3JlYXRlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmlu
ZGV4IGI2NTU4ZjQ1OGY5ZmNhMzYzZjA2MTY1NmVmYTBhMzcwOGE4NjlkYjAuLjdhNWIzOTQ0NzE0
Y2E3ZWQ0NGI2ZjE2ZGViMWM4MDUyMzRiMWY4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtMTI5Myw2ICsxMjkzLDE0IEBA
IFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfdmFsX3dpdGhfdGhpcykKICAgICBSRVRV
Uk5fUFJPRklMRUQoYmFzZVZhbHVlLmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5LCBzbG90KSk7
CiB9CiAKK1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfcHJvdG90eXBlX29mKQoreworICAg
IEJFR0lOKCk7CisgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcEdldFByb3RvdHlwZU9mPigp
OworICAgIEpTVmFsdWUgdmFsdWUgPSBHRVRfQyhieXRlY29kZS5tX3ZhbHVlKS5qc1ZhbHVlKCk7
CisgICAgUkVUVVJOX1BST0ZJTEVEKHZhbHVlLmdldFByb3RvdHlwZShnbG9iYWxPYmplY3QpKTsK
K30KKwogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3B1dF9ieV9pZF93aXRoX3RoaXMpCiB7CiAg
ICAgQkVHSU4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmgKaW5kZXggODRjMWFiNjFkMGRhZjVlZTc4NWZiMjAzODdiODM3OGUxZmFlMWY5MS4u
YTA1MTJkOWViOWE3ODMyY2UwZTczMzliM2I2YTI4NGRjYWE2YWI1MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKQEAgLTI3Myw2ICsyNzMs
NyBAQCBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2NyZWF0ZV9hc3luY19nZW5lcmF0
b3IpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jcmVhdGVfcmVzdCk7CiBTTE9X
X1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZF93aXRoX3RoaXMpOwogU0xPV19Q
QVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfdmFsX3dpdGhfdGhpcyk7CitTTE9XX1BB
VEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9wcm90b3R5cGVfb2YpOwogU0xPV19QQVRIX0hJ
RERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWRfd2l0aF90aGlzKTsKIFNMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfcHV0X2J5X3ZhbF93aXRoX3RoaXMpOwogU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9kZWZpbmVfZGF0YV9wcm9wZXJ0eSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggY2MyY2MxMGExZWE4Nzg2ZGUzYWNiNWM3
MTY0MzE3OWE1YzlmNzI4ZS4uMDgxNDk2Yjc3YzhlNjUwODUyYzhmN2M5ODlkZTE1NGY5YTUzMDRl
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApAQCAtMzIx
LDYgKzMyMSw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHB1dFRvUHJp
bWl0aXZlQnlJbmRleChKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7CiAgICAgYm9vbCBwdXRCeUluZGV4KEpTR2xvYmFsT2Jq
ZWN0KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBib29sIHNob3VsZFRocm93KTsK
IAorICAgIEpTVmFsdWUgZ2V0UHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAg
SlNWYWx1ZSB0b1RoaXMoSlNHbG9iYWxPYmplY3QqLCBFQ01BTW9kZSkgY29uc3Q7CiAKICAgICBz
dGF0aWMgYm9vbCBlcXVhbChKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgdjEsIEpTVmFsdWUgdjIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlu
bGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVz
LmgKaW5kZXggMDExZDU4YmQ1NzQ0ODY4MGU1NGMzOGZhN2Q2M2YxZjVmNzcxNzEyMy4uOWQ3NmQz
ZTQzYWRkNTE2ZGZlNTRjMTUxZmY5NmRkZjBmYmEwYmQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC0xMDgxLDYgKzEwODEs
MTggQEAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6cHV0QnlJbmRleChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCB1bnNpZ25lZCBwcm9wZXJ0eU4KICAgICByZXR1cm4gYXNDZWxsKCktPm1ldGhv
ZFRhYmxlKGdldFZNKGdsb2JhbE9iamVjdCkpLT5wdXRCeUluZGV4KGFzQ2VsbCgpLCBnbG9iYWxP
YmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAorQUxXQVlTX0lO
TElORSBKU1ZhbHVlIEpTVmFsdWU6OmdldFByb3RvdHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KSBjb25zdAoreworICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7CisgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChpc09iamVjdCgp
KQorICAgICAgICByZXR1cm4gYXNPYmplY3QoYXNDZWxsKCkpLT5nZXRQcm90b3R5cGUodm0sIGds
b2JhbE9iamVjdCk7CisKKyAgICBKU09iamVjdCogcHJvdG90eXBlID0gc3ludGhlc2l6ZVByb3Rv
dHlwZShnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisgICAgcmV0dXJuIHByb3RvdHlwZTsKK30KKwogaW5saW5lIFN0cnVjdHVyZSogSlNWYWx1ZTo6
c3RydWN0dXJlT3JOdWxsKCkgY29uc3QKIHsKICAgICBpZiAoaXNDZWxsKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5jcHAKaW5kZXggMzgxODdhN2U3MzA2NDc5OGViYmFjZjJmYTUzZmM4YzdkY2FhYTk5OC4uZWEy
NWU4Yjg5NDY5YzY5ZTdmMTFiY2MwYTAzMWFlNDczYjE2OTgxYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cApAQCAtNjkzLDIzICs2OTMsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2Jh
bEZ1bmNNYWtlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b0dldHRlcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKLSAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRv
VGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0gICAgaWYgKHRoaXNWYWx1
ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoZ2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUpKTsKLQotICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU09i
amVjdCo+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmICghdGhpc09iamVjdCkgewotICAgICAgICBK
U09iamVjdCogcHJvdG90eXBlID0gdGhpc1ZhbHVlLnN5bnRoZXNpemVQcm90b3R5cGUoZ2xvYmFs
T2JqZWN0KTsKLSAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2VwdGlvbigpID09
ICFwcm90b3R5cGUpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCi0gICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocHJvdG90eXBlKTsKLSAgICB9Ci0KLSAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGUodm0sIGds
b2JhbE9iamVjdCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZS5nZXRQ
cm90b3R5cGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rl
c3RzL0NoYW5nZUxvZwppbmRleCAwZmNlODVkNzFiOTkyZmUyMzBjNDVlNTFmMjAwNDU2YjdiMzdh
MWRmLi41MWUyYjFmZGM5MDljYjQyZTcwMjRlYzBhMjg4OTE3NzY4ZGI3MjQ5IDEwMDY0NAotLS0g
YS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIwLTA1LTIxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4K
KworICAgICAgICBzdXBlciBzaG91bGQgbm90IGRlcGVuZCBvbiBfX3Byb3RvX18KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzk3MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2NsYXNzLXN5
bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0b3IuanM6CisgICAgICAgICogc3RyZXNzL3N1
cGVyLXByb3BlcnR5LWFjY2Vzcy5qczoKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55
YW1sOiBNYXJrIDQgdGVzdCBjYXNlcyBhcyBwYXNzaW5nLgorCiAyMDIwLTA1LTIxICBBbGV4ZXkg
U2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBVc2UgQGlzVW5kZWZp
bmVkT3JOdWxsIGluc3RlYWQgb2YgYWJzdHJhY3QgZXF1YWxpdHkgd2l0aCBudWxsCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50YXgtZGVyaXZlZC1kZWZhdWx0LWNvbnN0cnVj
dG9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvY2xhc3Mtc3ludGF4LWRlcml2ZWQtZGVmYXVsdC1jb25z
dHJ1Y3Rvci5qcwppbmRleCBmMGM0NzdlNWY1MTgzZWU1ZjQ4Mjg0ODBkNzVmMDI1Y2EyOWVmMTZl
Li4yNGJkNjQyOTI1ZmYzODI5N2IyZTJiYjQ1YzJkOTRiNTVlNGVjNDk5IDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50YXgtZGVyaXZlZC1kZWZhdWx0LWNvbnN0cnVjdG9yLmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3Ry
dWN0b3IuanMKQEAgLTEsMyArMSw0IEBACitPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnBy
b3RvdHlwZSwgIl9fcHJvdG9fXyIsIHtnZXQ6IHVuZGVmaW5lZH0pOwogCiB2YXIgQSA9IGNsYXNz
IEEgeyB9OwogdmFyIEIgPSBjbGFzcyBCIGV4dGVuZHMgQSB7IH07CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9zdXBlci1wcm9wZXJ0eS1hY2Nlc3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9zdXBl
ci1wcm9wZXJ0eS1hY2Nlc3MuanMKaW5kZXggNjU5OTZhNzU5NzU0Y2Q5NTE3ZTZjMjVhZWI5NWQy
ZjZhYzdmYTczNi4uNjE4YWIzYjZjMjUyOWZkZTg5MWY5YmRmZjU0YmQzZTZiNTNhMDUwYyAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc3VwZXItcHJvcGVydHktYWNjZXNzLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qcwpAQCAtMSwzICsxLDUgQEAKK09i
amVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiX19wcm90b19fIiwge2dldDog
dW5kZWZpbmVkfSk7CisKIGZ1bmN0aW9uIGFzc2VydChiLCBtID0gIkJhZCEiKSB7CiAgICAgaWYg
KCFiKSB7CiAgICAgICAgIHRocm93IG5ldyBFcnJvcihtKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbAppbmRleCBlOTcxZDRkNTNmNjRhOTA2ZjE2MGEzYmU2Zjk0ZjEyMGZkZWY1OTdlLi5jZTRi
MDQ2ZDg3OTMxOWU1MmY4OWQ3OThjYjI3YzZmOGQxNDNmNDk3IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCkBAIC0zMDE0LDEyICszMDE0LDYgQEAgdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9wcmVmaXgtaW5jcmVtZW50L1MxMS40LjRfQTVfVDUuanM6CiB0ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL3ByZWZpeC1pbmNyZW1lbnQvUzExLjQuNF9BNl9UMy5qczoKICAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlJwogICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlJwotdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9zdXBlci9jYWxsLXBvaXNvbmVkLXVuZGVyc2NvcmUtcHJvdG8uanM6Ci0g
IGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IHNob3VsZCBub3QgYmUgY2FsbGVkJwotICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogc2hvdWxkIG5vdCBiZSBjYWxsZWQnCi10ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL3N1cGVyL3Byb3AtcG9pc29uZWQtdW5kZXJzY29yZS1wcm90by5qczoKLSAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogc2hvdWxkIG5vdCBiZSBjYWxsZWQnCi0gIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBzaG91bGQgbm90IGJlIGNhbGxlZCcKIHRlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMveWllbGQvc3Rhci1pdGVyYWJsZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogRmlyc3QgcmVzdWx0IGBkb25lYCBmbGFnIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2ZhbHNl
wrssIMKrdW5kZWZpbmVkwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBGaXJzdCByZXN1bHQgYGRvbmVgIGZsYWcgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZmFsc2XC
uywgwqt1bmRlZmluZWTCuykgdG8gYmUgdHJ1ZScK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400051</attachid>
            <date>2020-05-22 08:44:59 -0700</date>
            <delta_ts>2020-05-22 12:26:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157972-20200522184458.patch</filename>
            <type>text/plain</type>
            <size>25056</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MDlkMGVlMDQ4ZmI1Y2E5MTk0ODQ2M2U4NDVhMjY5MDczNGVkN2Y0Li5hZmNmOGRhMjNkNjZjMzZl
M2ZmZjUyNzhiZTQwZTAyODQwNzNmYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMC0wNS0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgc3VwZXIgc2hvdWxkIG5vdCBkZXBlbmQgb24gX19wcm90b19fCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgdGhp
cyBjaGFuZ2UsIGJvdGggc3VwZXIoKSBjYWxsIFsxXSBhbmQgc3VwZXIucHJvcGVydHkgWzJdIHJl
bGllZCBvbgorICAgICAgICBPYmplY3QucHJvdG90eXBlLl9fcHJvdG9fXyB0byBhY3F1aXJlIHN1
cGVyIGJhc2UsIHdoaWNoIHdhcyBvYnNlcnZhYmxlIGFuZAorICAgICAgICBpbmNvcnJlY3QgaWYg
X19wcm90b19fIGdldHMgcmVtb3ZlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGRlZmluZXMgT3BH
ZXRQcm90b3R5cGVPZiBmb3IgTExJbnQgYW5kIGJhc2VsaW5lIEpJVCwgZW5zdXJpbmcKKyAgICAg
ICAgcmV0dXJuZWQgdmFsdWVzIGFyZSBwcm9maWxlZCBzbyB0aGUgb3AgY2FuIGJlIHdpcmVkIHRv
IGV4aXN0aW5nIERGRyBhbmQgRlRMCisgICAgICAgIGltcGxlbWVudGF0aW9ucy4gU2luY2UgX19w
cm90b19fIGlzIG9wdGltaXplZCB2aWEgSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZSwKKyAgICAg
ICAgSklUIGZhc3QgcGF0aCBpcyBpbnRyb2R1Y2VkIHRvIGF2b2lkIHBlcmZvcm1hbmNlIHJlZ3Jl
c3Npb25zIHcvbyBERkcuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxpZ25zIEpTQyB3aXRoIFY4
IGFuZCBTcGlkZXJNb25rZXksIHByb2dyZXNzaW5nIG1pY3JvYmVuY2htYXJrcy8KKyAgICAgICAg
c3VwZXItZ2V0LWJ5LXtpZCx2YWx9LXdpdGgtdGhpcy1tb25vbW9ycGhpYy5qcyBieSA3LTEwJS4g
U2l4U3BlZWQgaXMgbmV1dHJhbC4KKyAgICAgICAgQWxzbywgZXh0cmFjdHMgSlNWYWx1ZTo6Z2V0
UHJvdG90eXBlKCkgbWV0aG9kIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uCisKKyAgICAgICAg
WzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVyY29uc3RydWN0b3IgKHN0
ZXAgNSkKKyAgICAgICAgWzJdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVy
YmFzZSAoc3RlcCA1KQorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAg
ICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0
ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJ5dGVj
b2RlL09wY29kZS5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0UHJvdG90eXBlT2Yp
OgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjplbWl0U3VwZXJC
YXNlRm9yQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6ZW1pdEdldFN1cGVyRnVuY3Rpb25Gb3JDb25z
dHJ1Y3QpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVQuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlND
OjpKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKToKKyAgICAgICAgKiBqaXQvSklULmg6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X3Byb3RvdHlwZV9vZik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcHJvdG90eXBlX29mKToKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBy
dW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6Z2V0UHJvdG90eXBlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0dGVy
KToKKwogMjAyMC0wNS0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+
CiAKICAgICAgICAgVXNlIEBpc1VuZGVmaW5lZE9yTnVsbCBpbnN0ZWFkIG9mIGFic3RyYWN0IGVx
dWFsaXR5IHdpdGggbnVsbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUxpc3QucmIKaW5kZXggN2Q1YjhjOTgzN2MzNjU3ZGM4YWUwMGUwNmQyY2Y3MjAwYzY4MzBh
Yy4uZmYwMzc2ZWM4NDk2OWU5ZjdlNTEyOTNlMTdkMWVkZmU3YmMzZmQ0MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCkBAIC00OTcsNiArNDk3
LDE1IEBAIG9wIDpnZXRfYnlfaWRfZGlyZWN0LAogICAgICAgICBvZmZzZXQ6IHVuc2lnbmVkLAog
ICAgIH0KIAorb3AgOmdldF9wcm90b3R5cGVfb2YsCisgICAgYXJnczogeworICAgICAgICBkc3Q6
IFZpcnR1YWxSZWdpc3RlciwKKyAgICAgICAgdmFsdWU6IFZpcnR1YWxSZWdpc3RlciwKKyAgICB9
LAorICAgIG1ldGFkYXRhOiB7CisgICAgICAgIHByb2ZpbGU6IFZhbHVlUHJvZmlsZSwKKyAgICB9
CisKIG9wIDp0cnlfZ2V0X2J5X2lkLAogICAgIGFyZ3M6IHsKICAgICAgICAgZHN0OiBWaXJ0dWFs
UmVnaXN0ZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
VXNlRGVmLmNwcAppbmRleCBlOGYwYWVhMGU0YTNhOGVhYjdmZDhmNjEwOTY4MDVmOGMxNDU5ZTVh
Li4wZjA2ZmI2NDgwZTQwN2IwM2Y3NGM1YzM2MTRjYmFkYjRlMGJkYzEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKQEAgLTIxMyw2
ICsyMTMsNyBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJl
Z2lzdGVyIHNjb3BlUmVnaXN0ZXIsIGNvbnN0IEluc3RydQogICAgIFVTRVMoT3BFbnVtZXJhdG9y
U3RydWN0dXJlUG5hbWUsIGVudW1lcmF0b3IsIGluZGV4KQogICAgIFVTRVMoT3BFbnVtZXJhdG9y
R2VuZXJpY1BuYW1lLCBlbnVtZXJhdG9yLCBpbmRleCkKICAgICBVU0VTKE9wR2V0QnlWYWwsIGJh
c2UsIHByb3BlcnR5KQorICAgIFVTRVMoT3BHZXRQcm90b3R5cGVPZiwgdmFsdWUpCiAgICAgVVNF
UyhPcEluQnlWYWwsIGJhc2UsIHByb3BlcnR5KQogICAgIFVTRVMoT3BPdmVycmlkZXNIYXNJbnN0
YW5jZSwgY29uc3RydWN0b3IsIGhhc0luc3RhbmNlVmFsdWUpCiAgICAgVVNFUyhPcEluc3RhbmNl
b2YsIHZhbHVlLCBwcm90b3R5cGUpCkBAIC00MjQsNiArNDI1LDcgQEAgdm9pZCBjb21wdXRlRGVm
c0ZvckJ5dGVjb2RlSW5kZXhJbXBsKHVuc2lnbmVkIG51bVZhcnMsIGNvbnN0IEluc3RydWN0aW9u
KiBpbnN0cnUKICAgICBERUZTKE9wSW5zdGFuY2VvZiwgZHN0KQogICAgIERFRlMoT3BJbnN0YW5j
ZW9mQ3VzdG9tLCBkc3QpCiAgICAgREVGUyhPcEdldEJ5VmFsLCBkc3QpCisgICAgREVGUyhPcEdl
dFByb3RvdHlwZU9mLCBkc3QpCiAgICAgREVGUyhPcFR5cGVvZiwgZHN0KQogICAgIERFRlMoT3BJ
ZGVudGl0eVdpdGhQcm9maWxlLCBzcmNEc3QpCiAgICAgREVGUyhPcElzRW1wdHksIGRzdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNWE5Mzg0
MDczMTY2MDdkMmYxNmVlNmQ2ZjA3YzE2NDViY2M1NzhmNS4uZmVkZjk2YzE1NjAwZWE3NTdlNWUy
YmUxMzc0MWE3MzZkZTkzMTM3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKQEAgLTUxNCw2ICs1MTQsNyBAQCBib29sIENvZGVCbG9jazo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGlu
awogICAgICAgICBMSU5LKE9wVHJ5R2V0QnlJZCwgcHJvZmlsZSkKICAgICAgICAgTElOSyhPcEdl
dEJ5SWREaXJlY3QsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BHZXRCeVZhbFdpdGhUaGlzLCBw
cm9maWxlKQorICAgICAgICBMSU5LKE9wR2V0UHJvdG90eXBlT2YsIHByb2ZpbGUpCiAgICAgICAg
IExJTksoT3BHZXRGcm9tQXJndW1lbnRzLCBwcm9maWxlKQogICAgICAgICBMSU5LKE9wVG9OdW1i
ZXIsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BUb051bWVyaWMsIHByb2ZpbGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKaW5kZXggYWE4ODU5YWRkNjI4NjBmZmRhZGI0
ZDIyMjg3YzM0YjA3Y2U1YjMzNC4uYTkwZGM0MzY0YzkwZGQ5NWQxOWE3ZGIzNDIzMjEyZDYwMTQ1
ZTA3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaApAQCAtMTA1LDYg
KzEwNSw3IEBAIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0V2lkdGhGb3JNYXhPcGNvZGVM
ZW5ndGggPSBXVEY6OmdldE1TQlNldENvbnN0ZXhwcihtCiAgICAgbWFjcm8oT3BUcnlHZXRCeUlk
KSBcCiAgICAgbWFjcm8oT3BHZXRCeUlkRGlyZWN0KSBcCiAgICAgbWFjcm8oT3BHZXRCeVZhbFdp
dGhUaGlzKSBcCisgICAgbWFjcm8oT3BHZXRQcm90b3R5cGVPZikgXAogICAgIG1hY3JvKE9wR2V0
RnJvbUFyZ3VtZW50cykgXAogICAgIG1hY3JvKE9wVG9OdW1iZXIpIFwKICAgICBtYWNybyhPcFRv
TnVtZXJpYykgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCA0OWRmOTkxNzRlMThhNWZjMGNkM2U3NDFl
ODAxZDQ3OWRmYjk3MzVjLi4wOThmNDhjYmU3ZGFlMmRmZjMzYWE0YWJlZGVhOGIzZTA1NzM4NzFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMjY1NCw2ICsyNjU0LDEyIEBAIFJlZ2lzdGVySUQqIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0QnlWYWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBiYXNlLCBSCiAgICAgcmV0dXJuIGRzdDsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRHZXRQcm90b3R5cGVPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZh
bHVlKQoreworICAgIE9wR2V0UHJvdG90eXBlT2Y6OmVtaXQodGhpcywgZHN0LCB2YWx1ZSk7Cisg
ICAgcmV0dXJuIGRzdDsKK30KKwogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQ
dXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJ
RCogdmFsdWUpCiB7CiAgICAgT3BQdXRCeVZhbDo6ZW1pdCh0aGlzLCBiYXNlLCBwcm9wZXJ0eSwg
dmFsdWUsIGVjbWFNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDEyZWM1ZTEzMzNmMTY5MGY5NDM3
NzA4MTVkMDg5NDU1YzRiNjZiNzEuLmVjZmFjZDRlNDk2YTNjOTUwYjMzYTNkOWVhMGFhMWUwMDEz
ZDJiYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTc4NSw2ICs3ODUsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERlbGV0ZUJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRHZXRCeVZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQq
IHByb3BlcnR5KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEdldEJ5VmFsKFJlZ2lzdGVySUQq
IGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogdGhpc1ZhbHVlLCBSZWdpc3RlcklE
KiBwcm9wZXJ0eSk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRQcm90b3R5cGVPZihSZWdp
c3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dFB1dEJ5VmFsKFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3Rl
cklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRQdXRCeVZhbChSZWdpc3RlcklE
KiBiYXNlLCBSZWdpc3RlcklEKiB0aGlzVmFsdWUsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdp
c3RlcklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXREaXJlY3RQdXRCeVZhbChS
ZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwCmluZGV4IGFlMTFjNGI1OTA5NGQ4MzNhYTY2Y2ZhZTgxOTUzMzQ1OTUwOWNjNTUuLmE4
NjNiNDMxNDhlMjRjNDJjNzM3MTJmOTkyOTFjNjE1ZjczNzY0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE5Mywx
NyArMTkzLDE3IEBAIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0SG9tZU9iamVjdEZvckNhbGxlZShC
eXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQogc3RhdGljIFJlZ2lzdGVySUQqIGVtaXRTdXBl
ckJhc2VGb3JDYWxsZWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikKIHsKICAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gaG9tZU9iamVjdCA9IGVtaXRIb21lT2JqZWN0Rm9yQ2FsbGVlKGdlbmVy
YXRvcik7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCksIGhvbWVPYmplY3QuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5k
ZXJzY29yZVByb3RvKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGhvbWVPYmplY3QuZ2V0KCkpOwogfQogCiBzdGF0aWMg
UmVnaXN0ZXJJRCogZW1pdEdldFN1cGVyRnVuY3Rpb25Gb3JDb25zdHJ1Y3QoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvcikKIHsKICAgICBpZiAoZ2VuZXJhdG9yLmlzRGVyaXZlZENvbnN0cnVj
dG9yQ29udGV4dCgpKQotICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKSwgZ2VuZXJhdG9yLmVtaXRMb2FkRGVyaXZlZENvbnN0cnVjdG9y
RnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5
TmFtZXMoKS51bmRlcnNjb3JlUHJvdG8pOworICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRH
ZXRQcm90b3R5cGVPZihnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGdlbmVyYXRvci5lbWl0TG9h
ZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCkp
OwogCiAgICAgUmVnaXN0ZXJJRCBjYWxsZWU7CiAgICAgY2FsbGVlLnNldEluZGV4KENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSk7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0
b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5k
ZXJzY29yZVByb3RvKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUpOwogfQogCiBSZWdpc3RlcklEKiBTdXBl
ck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3Rl
cklEKiBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCmluZGV4IDFkODAyOTE0NTBlM2NlOTVhYWM1YTQ0OTc5MDliMTk1YjgyYzkyZjkuLjU3
ODVhMDhmOGZmYWVmNzYwOWNhMzY3NDUzZDczNjFmOWJkMDQ4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC02MDg5LDYgKzYwODks
MTMgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKIAog
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyk7CiAgICAgICAg
IH0KKworICAgICAgICBjYXNlIG9wX2dldF9wcm90b3R5cGVfb2Y6IHsKKyAgICAgICAgICAgIGF1
dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0UHJvdG90eXBlT2Y+KCk7
CisgICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3QsIGFkZFRvR3JhcGgoR2V0UHJvdG90eXBl
T2YsIE9wSW5mbygwKSwgT3BJbmZvKGdldFByZWRpY3Rpb24oKSksIGdldChieXRlY29kZS5tX3Zh
bHVlKSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0X3Byb3RvdHlwZV9vZik7Cisg
ICAgICAgIH0KKwogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pZDogewogICAgICAgICAgICAgYXV0
byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BQdXRCeUlkPigpOwogICAgICAg
ICAgICAgTm9kZSogdmFsdWUgPSBnZXQoYnl0ZWNvZGUubV92YWx1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggNjgxZTdmZjc4ZDMzYTcw
NjE2OGRkNWJlNTg0ZTk5NTMyZmM2MWE0NS4uNTU4MWRiNDVmOTkxYmY1MTY3NWRjNzRlMGU3OTZm
MDU4ZDhkYTJiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMTc0LDYgKzE3NCw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2
ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBJCiAgICAg
Y2FzZSBvcF9nZXRfYnlfaWRfd2l0aF90aGlzOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX2RpcmVj
dDoKICAgICBjYXNlIG9wX2dldF9ieV92YWxfd2l0aF90aGlzOgorICAgIGNhc2Ugb3BfZ2V0X3By
b3RvdHlwZV9vZjoKICAgICBjYXNlIG9wX3B1dF9ieV9pZDoKICAgICBjYXNlIG9wX3B1dF9ieV9p
ZF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9wdXRfYnlfdmFsX3dpdGhfdGhpczoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDg4ZDE4ZmMxZmU5YWYz
YmVmN2VjOGI2YzRhOTIwYTk0Y2RlZGY0NmMuLmRhNmMxYzVmOTRjYzA1YjEyYjY1ZDM0ODA5Y2Qy
YzhiNDlhN2VhMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcApAQCAtMzI0NiwyMiArMzI0Niw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotCi0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkp
OwotICAgIGlmICh0aGlzVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVOb3RBbk9iamVjdEVycm9y
KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlKSk7Ci0KLSAgICBKU09iamVjdCogdGhpc09iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKLSAgICBpZiAoIXRoaXNP
YmplY3QpIHsKLSAgICAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IHRoaXNWYWx1ZS5zeW50aGVz
aXplUHJvdG90eXBlKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoISFz
Y29wZS5leGNlcHRpb24oKSA9PSAhcHJvdG90eXBlKTsKLSAgICAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkp
OwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3RvdHlwZSk7Ci0gICAgfQotCi0g
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVjdC0+
Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpKSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
dmFsdWUuZ2V0UHJvdG90eXBlKGdsb2JhbE9iamVjdCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRl
SW5zdGFuY2UqIGRhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggMzI0NDdkNjgx
ZWM5Y2QzMDQ0MWE4NzMxYWQzMTJiNzI3YTA3NjFhNS4uNmI5OTA2ODMwYTBlNzkzYzJkZmZjNGEz
ZDc1YzE5YzRkZjA0YjhjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMzU2LDYg
KzM1Niw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgREVG
SU5FX09QKG9wX2dldF9ieV9pZF93aXRoX3RoaXMpCiAgICAgICAgIERFRklORV9PUChvcF9nZXRf
YnlfaWRfZGlyZWN0KQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X3ZhbCkKKyAgICAgICAg
REVGSU5FX09QKG9wX2dldF9wcm90b3R5cGVfb2YpCiAgICAgICAgIERFRklORV9PUChvcF9vdmVy
cmlkZXNfaGFzX2luc3RhbmNlKQogICAgICAgICBERUZJTkVfT1Aob3BfaW5zdGFuY2VvZikKICAg
ICAgICAgREVGSU5FX09QKG9wX2luc3RhbmNlb2ZfY3VzdG9tKQpAQCAtNjE1LDYgKzYxNiw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIERFRklORV9TTE9X
Q0FTRV9TTE9XX09QKHN0cmljdGVxKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfU0xPV19PUChu
c3RyaWN0ZXEpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKGdldF9kaXJlY3RfcG5h
bWUpCisgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKGdldF9wcm90b3R5cGVfb2YpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKGhhc19zdHJ1Y3R1cmVfcHJvcGVydHkpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKHJlc29sdmVfc2NvcGUpCiAgICAgICAgIERF
RklORV9TTE9XQ0FTRV9TTE9XX09QKGNoZWNrX3RkeikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmlu
ZGV4IDM0ZjNkNTBmMDRiYzJiOTZlMGY5NTljN2M2YjU1M2Y3NDcwMDU1MWQuLjZiMmU0ODRkNGE2
NDkyODQyZGM5ZjEyZWJmYjViMWJhNzhiMmIxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApA
QCAtNTIxLDYgKzUyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3Bf
Z2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bf
Z2V0X2FyZ3VtZW50X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGVt
aXRfb3BfZ2V0X3Byb3RvdHlwZV9vZihjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lk
IGVtaXRfb3BfaW5fYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX2luaXRfbGF6eV9yZWcoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDcyNzdmZThhMzY1NmYxODZiOTI5
MDk1N2I1NDljOWNiNjJmYjhlNDAuLjdlMmU0M2U2NzMzNmIxYTRkMDE5ZTFiNDA1NzIxMjdjYWM1
ODI3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTUw
OCw2ICsxNTA4LDI0IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9kaXJlY3RfcG5hbWUoY29uc3Qg
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGRzdCwgcmVnVDApOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcHJvdG90eXBlX29m
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgYXV0byBieXRl
Y29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRQcm90b3R5cGVPZj4oKTsKKyAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJ5dGVjb2RlLm1fdmFsdWUsIHJlZ1QwKTsKKworICAgIGFk
ZFNsb3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMCkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5j
aElmTm90VHlwZShyZWdUMCwgRmluYWxPYmplY3RUeXBlLCBKU0Z1bmN0aW9uVHlwZSkpOworCisg
ICAgZW1pdExvYWRTdHJ1Y3R1cmUodm0oKSwgcmVnVDAsIHJlZ1QyLCByZWdUMSk7CisgICAgbG9h
ZDY0KEFkZHJlc3MocmVnVDIsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkpLCByZWdUMik7
CisgICAgSnVtcCBoYXNNb25vUHJvdG8gPSBicmFuY2hUZXN0NjQoTm9uWmVybywgcmVnVDIpOwor
ICAgIGxvYWQ2NChBZGRyZXNzKHJlZ1QwLCBvZmZzZXRSZWxhdGl2ZVRvQmFzZShrbm93blBvbHlQ
cm90b09mZnNldCkpLCByZWdUMik7CisgICAgaGFzTW9ub1Byb3RvLmxpbmsodGhpcyk7CisKKyAg
ICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7
CisgICAgZW1pdFN0b3JlQ2VsbChieXRlY29kZS5tX2RzdCwgcmVnVDIpOworfQorCiB2b2lkIEpJ
VDo6ZW1pdF9vcF9lbnVtZXJhdG9yX3N0cnVjdHVyZV9wbmFtZShjb25zdCBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogewogICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb24tPmFzPE9wRW51bWVyYXRvclN0cnVjdHVyZVBuYW1lPigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDRjNWJkMGMxNTkxZmEzZGNk
ZTM4NWE0YjA0MWE1ZTgwNjc5MzU2ZmMuLmJiYzA4ODE2Y2E5NWRmODgyMTU5ZWVlMGY4ZDc3YWNi
NWVmMjVhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAKQEAgLTEyODYsNiArMTI4NiwyNSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0
X3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFN0
b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X3Byb3Rv
dHlwZV9vZihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGF1
dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0UHJvdG90eXBlT2Y+KCk7
CisgICAgZW1pdExvYWQoYnl0ZWNvZGUubV92YWx1ZSwgcmVnVDEsIHJlZ1QwKTsKKworICAgIGFk
ZFNsb3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5j
aElmTm90VHlwZShyZWdUMCwgRmluYWxPYmplY3RUeXBlLCBKU0Z1bmN0aW9uVHlwZSkpOworCisg
ICAgZW1pdExvYWRTdHJ1Y3R1cmUodm0oKSwgcmVnVDAsIHJlZ1QyLCByZWdUMSk7CisgICAgbG9h
ZDMyKEFkZHJlc3MocmVnVDIsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkgKyBUYWdPZmZz
ZXQpLCByZWdUMSk7CisgICAgbG9hZDMyKEFkZHJlc3MocmVnVDIsIFN0cnVjdHVyZTo6cHJvdG90
eXBlT2Zmc2V0KCkgKyBQYXlsb2FkT2Zmc2V0KSwgcmVnVDIpOworICAgIEp1bXAgaGFzTW9ub1By
b3RvID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6RW1w
dHlWYWx1ZVRhZykpOworICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QwLCBvZmZzZXRSZWxhdGl2ZVRv
QmFzZShrbm93blBvbHlQcm90b09mZnNldCkgKyBQYXlsb2FkT2Zmc2V0KSwgcmVnVDIpOworICAg
IGhhc01vbm9Qcm90by5saW5rKHRoaXMpOworCisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShi
eXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOworICAgIGVtaXRTdG9yZUNlbGwoYnl0ZWNv
ZGUubV9kc3QsIHJlZ1QyKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfZW51bWVyYXRvcl9zdHJ1
Y3R1cmVfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAg
ICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEVudW1lcmF0b3JTdHJ1
Y3R1cmVQbmFtZT4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyLmFzbQppbmRleCBmZGU1MzFmM2Y3MDQ2Y2M0YzIyN2Y2NzliMTlkZThi
ODVhZTE2ZDE3Li40YzU4NzU0MTBhYzI1NWFlZjYxOGEwYjFhOGMwZDc3OWFkODczNDlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtCkBAIC0xNzYzLDYgKzE3NjMsNyBAQCBzbG93UGF0aE9wKGVudW1lcmF0b3Jfc3RydWN0dXJl
X3BuYW1lKQogc2xvd1BhdGhPcChnZXRfYnlfaWRfd2l0aF90aGlzKQogc2xvd1BhdGhPcChnZXRf
YnlfdmFsX3dpdGhfdGhpcykKIHNsb3dQYXRoT3AoZ2V0X2RpcmVjdF9wbmFtZSkKK3Nsb3dQYXRo
T3AoZ2V0X3Byb3RvdHlwZV9vZikKIHNsb3dQYXRoT3AoZ2V0X2VudW1lcmFibGVfbGVuZ3RoKQog
c2xvd1BhdGhPcChnZXRfcHJvcGVydHlfZW51bWVyYXRvcikKIHNsb3dQYXRoT3AoZ3JlYXRlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CmluZGV4IGI2NTU4ZjQ1OGY5ZmNhMzYzZjA2MTY1NmVmYTBhMzcwOGE4NjlkYjAuLjdhNWIzOTQ0
NzE0Y2E3ZWQ0NGI2ZjE2ZGViMWM4MDUyMzRiMWY4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtMTI5Myw2ICsxMjkzLDE0
IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfdmFsX3dpdGhfdGhpcykKICAgICBS
RVRVUk5fUFJPRklMRUQoYmFzZVZhbHVlLmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5LCBzbG90
KSk7CiB9CiAKK1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfcHJvdG90eXBlX29mKQorewor
ICAgIEJFR0lOKCk7CisgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcEdldFByb3RvdHlwZU9m
PigpOworICAgIEpTVmFsdWUgdmFsdWUgPSBHRVRfQyhieXRlY29kZS5tX3ZhbHVlKS5qc1ZhbHVl
KCk7CisgICAgUkVUVVJOX1BST0ZJTEVEKHZhbHVlLmdldFByb3RvdHlwZShnbG9iYWxPYmplY3Qp
KTsKK30KKwogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3B1dF9ieV9pZF93aXRoX3RoaXMpCiB7
CiAgICAgQkVHSU4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmgKaW5kZXggODRjMWFiNjFkMGRhZjVlZTc4NWZiMjAzODdiODM3OGUxZmFlMWY5
MS4uYTA1MTJkOWViOWE3ODMyY2UwZTczMzliM2I2YTI4NGRjYWE2YWI1MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKQEAgLTI3Myw2ICsy
NzMsNyBAQCBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2NyZWF0ZV9hc3luY19nZW5l
cmF0b3IpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jcmVhdGVfcmVzdCk7CiBT
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZF93aXRoX3RoaXMpOwogU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfdmFsX3dpdGhfdGhpcyk7CitTTE9X
X1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9wcm90b3R5cGVfb2YpOwogU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWRfd2l0aF90aGlzKTsKIFNMT1dfUEFUSF9I
SURERU5fREVDTChzbG93X3BhdGhfcHV0X2J5X3ZhbF93aXRoX3RoaXMpOwogU0xPV19QQVRIX0hJ
RERFTl9ERUNMKHNsb3dfcGF0aF9kZWZpbmVfZGF0YV9wcm9wZXJ0eSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggY2MyY2MxMGExZWE4Nzg2ZGUzYWNi
NWM3MTY0MzE3OWE1YzlmNzI4ZS4uMDgxNDk2Yjc3YzhlNjUwODUyYzhmN2M5ODlkZTE1NGY5YTUz
MDRlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApAQCAt
MzIxLDYgKzMyMSw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHB1dFRv
UHJpbWl0aXZlQnlJbmRleChKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7CiAgICAgYm9vbCBwdXRCeUluZGV4KEpTR2xvYmFs
T2JqZWN0KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBib29sIHNob3VsZFRocm93
KTsKIAorICAgIEpTVmFsdWUgZ2V0UHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAg
ICAgSlNWYWx1ZSB0b1RoaXMoSlNHbG9iYWxPYmplY3QqLCBFQ01BTW9kZSkgY29uc3Q7CiAKICAg
ICBzdGF0aWMgYm9vbCBlcXVhbChKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgdjEsIEpTVmFsdWUg
djIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmgKaW5kZXggMDExZDU4YmQ1NzQ0ODY4MGU1NGMzOGZhN2Q2M2YxZjVmNzcxNzEyMy4uOWQ3
NmQzZTQzYWRkNTE2ZGZlNTRjMTUxZmY5NmRkZjBmYmEwYmQ3OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC0xMDgxLDYgKzEw
ODEsMTggQEAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6cHV0QnlJbmRleChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBwcm9wZXJ0eU4KICAgICByZXR1cm4gYXNDZWxsKCktPm1l
dGhvZFRhYmxlKGdldFZNKGdsb2JhbE9iamVjdCkpLT5wdXRCeUluZGV4KGFzQ2VsbCgpLCBnbG9i
YWxPYmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAorQUxXQVlT
X0lOTElORSBKU1ZhbHVlIEpTVmFsdWU6OmdldFByb3RvdHlwZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KSBjb25zdAoreworICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7Cisg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChpc09iamVj
dCgpKQorICAgICAgICByZXR1cm4gYXNPYmplY3QoYXNDZWxsKCkpLT5nZXRQcm90b3R5cGUodm0s
IGdsb2JhbE9iamVjdCk7CisKKyAgICBKU09iamVjdCogcHJvdG90eXBlID0gc3ludGhlc2l6ZVBy
b3RvdHlwZShnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgcmV0dXJuIHByb3RvdHlwZTsKK30KKwogaW5saW5lIFN0cnVjdHVyZSogSlNWYWx1
ZTo6c3RydWN0dXJlT3JOdWxsKCkgY29uc3QKIHsKICAgICBpZiAoaXNDZWxsKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAKaW5kZXggMzgxODdhN2U3MzA2NDc5OGViYmFjZjJmYTUzZmM4YzdkY2FhYTk5OC4u
ZWEyNWU4Yjg5NDY5YzY5ZTdmMTFiY2MwYTAzMWFlNDczYjE2OTgxYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25z
LmNwcApAQCAtNjkzLDIzICs2OTMsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGds
b2JhbEZ1bmNNYWtlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b0dldHRlcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKLSAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgp
LnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0gICAgaWYgKHRoaXNW
YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoZ2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUpKTsKLQotICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxK
U09iamVjdCo+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmICghdGhpc09iamVjdCkgewotICAgICAg
ICBKU09iamVjdCogcHJvdG90eXBlID0gdGhpc1ZhbHVlLnN5bnRoZXNpemVQcm90b3R5cGUoZ2xv
YmFsT2JqZWN0KTsKLSAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2VwdGlvbigp
ID09ICFwcm90b3R5cGUpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCi0gICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocHJvdG90eXBlKTsKLSAgICB9Ci0KLSAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGUodm0s
IGdsb2JhbE9iamVjdCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZS5n
ZXRQcm90b3R5cGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9K
U1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwZmNlODVkNzFiOTkyZmUyMzBjNDVlNTFmMjAwNDU2Yjdi
MzdhMWRmLi41MWUyYjFmZGM5MDljYjQyZTcwMjRlYzBhMjg4OTE3NzY4ZGI3MjQ5IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIwLTA1LTIxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNv
bT4KKworICAgICAgICBzdXBlciBzaG91bGQgbm90IGRlcGVuZCBvbiBfX3Byb3RvX18KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzk3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2NsYXNz
LXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0b3IuanM6CisgICAgICAgICogc3RyZXNz
L3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qczoKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9u
cy55YW1sOiBNYXJrIDQgdGVzdCBjYXNlcyBhcyBwYXNzaW5nLgorCiAyMDIwLTA1LTIxICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBVc2UgQGlzVW5k
ZWZpbmVkT3JOdWxsIGluc3RlYWQgb2YgYWJzdHJhY3QgZXF1YWxpdHkgd2l0aCBudWxsCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50YXgtZGVyaXZlZC1kZWZhdWx0LWNvbnN0
cnVjdG9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvY2xhc3Mtc3ludGF4LWRlcml2ZWQtZGVmYXVsdC1j
b25zdHJ1Y3Rvci5qcwppbmRleCBmMGM0NzdlNWY1MTgzZWU1ZjQ4Mjg0ODBkNzVmMDI1Y2EyOWVm
MTZlLi4yNGJkNjQyOTI1ZmYzODI5N2IyZTJiYjQ1YzJkOTRiNTVlNGVjNDk5IDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50YXgtZGVyaXZlZC1kZWZhdWx0LWNvbnN0cnVjdG9y
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29u
c3RydWN0b3IuanMKQEAgLTEsMyArMSw0IEBACitPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0
LnByb3RvdHlwZSwgIl9fcHJvdG9fXyIsIHtnZXQ6IHVuZGVmaW5lZH0pOwogCiB2YXIgQSA9IGNs
YXNzIEEgeyB9OwogdmFyIEIgPSBjbGFzcyBCIGV4dGVuZHMgQSB7IH07CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9zdXBlci1wcm9wZXJ0eS1hY2Nlc3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9z
dXBlci1wcm9wZXJ0eS1hY2Nlc3MuanMKaW5kZXggNjU5OTZhNzU5NzU0Y2Q5NTE3ZTZjMjVhZWI5
NWQyZjZhYzdmYTczNi4uNjE4YWIzYjZjMjUyOWZkZTg5MWY5YmRmZjU0YmQzZTZiNTNhMDUwYyAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc3VwZXItcHJvcGVydHktYWNjZXNzLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qcwpAQCAtMSwzICsxLDUgQEAK
K09iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAiX19wcm90b19fIiwge2dl
dDogdW5kZWZpbmVkfSk7CisKIGZ1bmN0aW9uIGFzc2VydChiLCBtID0gIkJhZCEiKSB7CiAgICAg
aWYgKCFiKSB7CiAgICAgICAgIHRocm93IG5ldyBFcnJvcihtKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlv
bnMueWFtbAppbmRleCBlOTcxZDRkNTNmNjRhOTA2ZjE2MGEzYmU2Zjk0ZjEyMGZkZWY1OTdlLi5j
ZTRiMDQ2ZDg3OTMxOWU1MmY4OWQ3OThjYjI3YzZmOGQxNDNmNDk3IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVj
dGF0aW9ucy55YW1sCkBAIC0zMDE0LDEyICszMDE0LDYgQEAgdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9wcmVmaXgtaW5jcmVtZW50L1MxMS40LjRfQTVfVDUuanM6CiB0ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL3ByZWZpeC1pbmNyZW1lbnQvUzExLjQuNF9BNl9UMy5qczoKICAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlJwogICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlJwotdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9zdXBlci9jYWxsLXBvaXNvbmVkLXVuZGVyc2NvcmUtcHJvdG8uanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IHNob3VsZCBub3QgYmUgY2FsbGVkJwotICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogc2hvdWxkIG5vdCBiZSBjYWxsZWQnCi10ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL3N1cGVyL3Byb3AtcG9pc29uZWQtdW5kZXJzY29yZS1wcm90by5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogc2hvdWxkIG5vdCBiZSBjYWxsZWQnCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBzaG91bGQgbm90IGJlIGNhbGxlZCcKIHRlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMveWllbGQvc3Rhci1pdGVyYWJsZS5qczoKICAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRmlyc3QgcmVzdWx0IGBkb25lYCBmbGFnIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2Zh
bHNlwrssIMKrdW5kZWZpbmVkwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBGaXJzdCByZXN1bHQgYGRvbmVgIGZsYWcgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZmFs
c2XCuywgwqt1bmRlZmluZWTCuykgdG8gYmUgdHJ1ZScK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400063</attachid>
            <date>2020-05-22 12:26:36 -0700</date>
            <delta_ts>2020-05-28 08:48:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157972-20200522222633.patch</filename>
            <type>text/plain</type>
            <size>25157</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MDlkMGVlMDQ4ZmI1Y2E5MTk0ODQ2M2U4NDVhMjY5MDczNGVkN2Y0Li5hZmNmOGRhMjNkNjZjMzZl
M2ZmZjUyNzhiZTQwZTAyODQwNzNmYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMC0wNS0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgc3VwZXIgc2hvdWxkIG5vdCBkZXBlbmQgb24gX19wcm90b19fCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgdGhp
cyBjaGFuZ2UsIGJvdGggc3VwZXIoKSBjYWxsIFsxXSBhbmQgc3VwZXIucHJvcGVydHkgWzJdIHJl
bGllZCBvbgorICAgICAgICBPYmplY3QucHJvdG90eXBlLl9fcHJvdG9fXyB0byBhY3F1aXJlIHN1
cGVyIGJhc2UsIHdoaWNoIHdhcyBvYnNlcnZhYmxlIGFuZAorICAgICAgICBpbmNvcnJlY3QgaWYg
X19wcm90b19fIGdldHMgcmVtb3ZlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGRlZmluZXMgT3BH
ZXRQcm90b3R5cGVPZiBmb3IgTExJbnQgYW5kIGJhc2VsaW5lIEpJVCwgZW5zdXJpbmcKKyAgICAg
ICAgcmV0dXJuZWQgdmFsdWVzIGFyZSBwcm9maWxlZCBzbyB0aGUgb3AgY2FuIGJlIHdpcmVkIHRv
IGV4aXN0aW5nIERGRyBhbmQgRlRMCisgICAgICAgIGltcGxlbWVudGF0aW9ucy4gU2luY2UgX19w
cm90b19fIGlzIG9wdGltaXplZCB2aWEgSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZSwKKyAgICAg
ICAgSklUIGZhc3QgcGF0aCBpcyBpbnRyb2R1Y2VkIHRvIGF2b2lkIHBlcmZvcm1hbmNlIHJlZ3Jl
c3Npb25zIHcvbyBERkcuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxpZ25zIEpTQyB3aXRoIFY4
IGFuZCBTcGlkZXJNb25rZXksIHByb2dyZXNzaW5nIG1pY3JvYmVuY2htYXJrcy8KKyAgICAgICAg
c3VwZXItZ2V0LWJ5LXtpZCx2YWx9LXdpdGgtdGhpcy1tb25vbW9ycGhpYy5qcyBieSA3LTEwJS4g
U2l4U3BlZWQgaXMgbmV1dHJhbC4KKyAgICAgICAgQWxzbywgZXh0cmFjdHMgSlNWYWx1ZTo6Z2V0
UHJvdG90eXBlKCkgbWV0aG9kIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uCisKKyAgICAgICAg
WzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVyY29uc3RydWN0b3IgKHN0
ZXAgNSkKKyAgICAgICAgWzJdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVy
YmFzZSAoc3RlcCA1KQorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAg
ICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0
ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJ5dGVj
b2RlL09wY29kZS5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0UHJvdG90eXBlT2Yp
OgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjplbWl0U3VwZXJC
YXNlRm9yQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6ZW1pdEdldFN1cGVyRnVuY3Rpb25Gb3JDb25z
dHJ1Y3QpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVQuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlND
OjpKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKToKKyAgICAgICAgKiBqaXQvSklULmg6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X3Byb3RvdHlwZV9vZik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcHJvdG90eXBlX29mKToKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBy
dW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6Z2V0UHJvdG90eXBlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0dGVy
KToKKwogMjAyMC0wNS0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+
CiAKICAgICAgICAgVXNlIEBpc1VuZGVmaW5lZE9yTnVsbCBpbnN0ZWFkIG9mIGFic3RyYWN0IGVx
dWFsaXR5IHdpdGggbnVsbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUxpc3QucmIKaW5kZXggN2Q1YjhjOTgzN2MzNjU3ZGM4YWUwMGUwNmQyY2Y3MjAwYzY4MzBh
Yy4uZmYwMzc2ZWM4NDk2OWU5ZjdlNTEyOTNlMTdkMWVkZmU3YmMzZmQ0MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCkBAIC00OTcsNiArNDk3
LDE1IEBAIG9wIDpnZXRfYnlfaWRfZGlyZWN0LAogICAgICAgICBvZmZzZXQ6IHVuc2lnbmVkLAog
ICAgIH0KIAorb3AgOmdldF9wcm90b3R5cGVfb2YsCisgICAgYXJnczogeworICAgICAgICBkc3Q6
IFZpcnR1YWxSZWdpc3RlciwKKyAgICAgICAgdmFsdWU6IFZpcnR1YWxSZWdpc3RlciwKKyAgICB9
LAorICAgIG1ldGFkYXRhOiB7CisgICAgICAgIHByb2ZpbGU6IFZhbHVlUHJvZmlsZSwKKyAgICB9
CisKIG9wIDp0cnlfZ2V0X2J5X2lkLAogICAgIGFyZ3M6IHsKICAgICAgICAgZHN0OiBWaXJ0dWFs
UmVnaXN0ZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
VXNlRGVmLmNwcAppbmRleCBlOGYwYWVhMGU0YTNhOGVhYjdmZDhmNjEwOTY4MDVmOGMxNDU5ZTVh
Li4wZjA2ZmI2NDgwZTQwN2IwM2Y3NGM1YzM2MTRjYmFkYjRlMGJkYzEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKQEAgLTIxMyw2
ICsyMTMsNyBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJl
Z2lzdGVyIHNjb3BlUmVnaXN0ZXIsIGNvbnN0IEluc3RydQogICAgIFVTRVMoT3BFbnVtZXJhdG9y
U3RydWN0dXJlUG5hbWUsIGVudW1lcmF0b3IsIGluZGV4KQogICAgIFVTRVMoT3BFbnVtZXJhdG9y
R2VuZXJpY1BuYW1lLCBlbnVtZXJhdG9yLCBpbmRleCkKICAgICBVU0VTKE9wR2V0QnlWYWwsIGJh
c2UsIHByb3BlcnR5KQorICAgIFVTRVMoT3BHZXRQcm90b3R5cGVPZiwgdmFsdWUpCiAgICAgVVNF
UyhPcEluQnlWYWwsIGJhc2UsIHByb3BlcnR5KQogICAgIFVTRVMoT3BPdmVycmlkZXNIYXNJbnN0
YW5jZSwgY29uc3RydWN0b3IsIGhhc0luc3RhbmNlVmFsdWUpCiAgICAgVVNFUyhPcEluc3RhbmNl
b2YsIHZhbHVlLCBwcm90b3R5cGUpCkBAIC00MjQsNiArNDI1LDcgQEAgdm9pZCBjb21wdXRlRGVm
c0ZvckJ5dGVjb2RlSW5kZXhJbXBsKHVuc2lnbmVkIG51bVZhcnMsIGNvbnN0IEluc3RydWN0aW9u
KiBpbnN0cnUKICAgICBERUZTKE9wSW5zdGFuY2VvZiwgZHN0KQogICAgIERFRlMoT3BJbnN0YW5j
ZW9mQ3VzdG9tLCBkc3QpCiAgICAgREVGUyhPcEdldEJ5VmFsLCBkc3QpCisgICAgREVGUyhPcEdl
dFByb3RvdHlwZU9mLCBkc3QpCiAgICAgREVGUyhPcFR5cGVvZiwgZHN0KQogICAgIERFRlMoT3BJ
ZGVudGl0eVdpdGhQcm9maWxlLCBzcmNEc3QpCiAgICAgREVGUyhPcElzRW1wdHksIGRzdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNWE5Mzg0
MDczMTY2MDdkMmYxNmVlNmQ2ZjA3YzE2NDViY2M1NzhmNS4uZmVkZjk2YzE1NjAwZWE3NTdlNWUy
YmUxMzc0MWE3MzZkZTkzMTM3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKQEAgLTUxNCw2ICs1MTQsNyBAQCBib29sIENvZGVCbG9jazo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGlu
awogICAgICAgICBMSU5LKE9wVHJ5R2V0QnlJZCwgcHJvZmlsZSkKICAgICAgICAgTElOSyhPcEdl
dEJ5SWREaXJlY3QsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BHZXRCeVZhbFdpdGhUaGlzLCBw
cm9maWxlKQorICAgICAgICBMSU5LKE9wR2V0UHJvdG90eXBlT2YsIHByb2ZpbGUpCiAgICAgICAg
IExJTksoT3BHZXRGcm9tQXJndW1lbnRzLCBwcm9maWxlKQogICAgICAgICBMSU5LKE9wVG9OdW1i
ZXIsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BUb051bWVyaWMsIHByb2ZpbGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKaW5kZXggYWE4ODU5YWRkNjI4NjBmZmRhZGI0
ZDIyMjg3YzM0YjA3Y2U1YjMzNC4uYTkwZGM0MzY0YzkwZGQ5NWQxOWE3ZGIzNDIzMjEyZDYwMTQ1
ZTA3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaApAQCAtMTA1LDYg
KzEwNSw3IEBAIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0V2lkdGhGb3JNYXhPcGNvZGVM
ZW5ndGggPSBXVEY6OmdldE1TQlNldENvbnN0ZXhwcihtCiAgICAgbWFjcm8oT3BUcnlHZXRCeUlk
KSBcCiAgICAgbWFjcm8oT3BHZXRCeUlkRGlyZWN0KSBcCiAgICAgbWFjcm8oT3BHZXRCeVZhbFdp
dGhUaGlzKSBcCisgICAgbWFjcm8oT3BHZXRQcm90b3R5cGVPZikgXAogICAgIG1hY3JvKE9wR2V0
RnJvbUFyZ3VtZW50cykgXAogICAgIG1hY3JvKE9wVG9OdW1iZXIpIFwKICAgICBtYWNybyhPcFRv
TnVtZXJpYykgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCA0OWRmOTkxNzRlMThhNWZjMGNkM2U3NDFl
ODAxZDQ3OWRmYjk3MzVjLi4wOThmNDhjYmU3ZGFlMmRmZjMzYWE0YWJlZGVhOGIzZTA1NzM4NzFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMjY1NCw2ICsyNjU0LDEyIEBAIFJlZ2lzdGVySUQqIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0QnlWYWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBiYXNlLCBSCiAgICAgcmV0dXJuIGRzdDsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRHZXRQcm90b3R5cGVPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZh
bHVlKQoreworICAgIE9wR2V0UHJvdG90eXBlT2Y6OmVtaXQodGhpcywgZHN0LCB2YWx1ZSk7Cisg
ICAgcmV0dXJuIGRzdDsKK30KKwogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQ
dXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJ
RCogdmFsdWUpCiB7CiAgICAgT3BQdXRCeVZhbDo6ZW1pdCh0aGlzLCBiYXNlLCBwcm9wZXJ0eSwg
dmFsdWUsIGVjbWFNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDEyZWM1ZTEzMzNmMTY5MGY5NDM3
NzA4MTVkMDg5NDU1YzRiNjZiNzEuLmVjZmFjZDRlNDk2YTNjOTUwYjMzYTNkOWVhMGFhMWUwMDEz
ZDJiYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTc4NSw2ICs3ODUsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERlbGV0ZUJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRHZXRCeVZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQq
IHByb3BlcnR5KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEdldEJ5VmFsKFJlZ2lzdGVySUQq
IGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogdGhpc1ZhbHVlLCBSZWdpc3RlcklE
KiBwcm9wZXJ0eSk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRQcm90b3R5cGVPZihSZWdp
c3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dFB1dEJ5VmFsKFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3Rl
cklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRQdXRCeVZhbChSZWdpc3RlcklE
KiBiYXNlLCBSZWdpc3RlcklEKiB0aGlzVmFsdWUsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdp
c3RlcklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXREaXJlY3RQdXRCeVZhbChS
ZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwCmluZGV4IGFlMTFjNGI1OTA5NGQ4MzNhYTY2Y2ZhZTgxOTUzMzQ1OTUwOWNjNTUuLmE4
NjNiNDMxNDhlMjRjNDJjNzM3MTJmOTkyOTFjNjE1ZjczNzY0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE5Mywx
NyArMTkzLDE3IEBAIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0SG9tZU9iamVjdEZvckNhbGxlZShC
eXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQogc3RhdGljIFJlZ2lzdGVySUQqIGVtaXRTdXBl
ckJhc2VGb3JDYWxsZWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikKIHsKICAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gaG9tZU9iamVjdCA9IGVtaXRIb21lT2JqZWN0Rm9yQ2FsbGVlKGdlbmVy
YXRvcik7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCksIGhvbWVPYmplY3QuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5k
ZXJzY29yZVByb3RvKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGhvbWVPYmplY3QuZ2V0KCkpOwogfQogCiBzdGF0aWMg
UmVnaXN0ZXJJRCogZW1pdEdldFN1cGVyRnVuY3Rpb25Gb3JDb25zdHJ1Y3QoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvcikKIHsKICAgICBpZiAoZ2VuZXJhdG9yLmlzRGVyaXZlZENvbnN0cnVj
dG9yQ29udGV4dCgpKQotICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKSwgZ2VuZXJhdG9yLmVtaXRMb2FkRGVyaXZlZENvbnN0cnVjdG9y
RnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5
TmFtZXMoKS51bmRlcnNjb3JlUHJvdG8pOworICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRH
ZXRQcm90b3R5cGVPZihnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGdlbmVyYXRvci5lbWl0TG9h
ZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCkp
OwogCiAgICAgUmVnaXN0ZXJJRCBjYWxsZWU7CiAgICAgY2FsbGVlLnNldEluZGV4KENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSk7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0
b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUsIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5k
ZXJzY29yZVByb3RvKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUpOwogfQogCiBSZWdpc3RlcklEKiBTdXBl
ck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3Rl
cklEKiBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCmluZGV4IDFkODAyOTE0NTBlM2NlOTVhYWM1YTQ0OTc5MDliMTk1YjgyYzkyZjkuLjU3
ODVhMDhmOGZmYWVmNzYwOWNhMzY3NDUzZDczNjFmOWJkMDQ4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC02MDg5LDYgKzYwODks
MTMgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKIAog
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyk7CiAgICAgICAg
IH0KKworICAgICAgICBjYXNlIG9wX2dldF9wcm90b3R5cGVfb2Y6IHsKKyAgICAgICAgICAgIGF1
dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0UHJvdG90eXBlT2Y+KCk7
CisgICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3QsIGFkZFRvR3JhcGgoR2V0UHJvdG90eXBl
T2YsIE9wSW5mbygwKSwgT3BJbmZvKGdldFByZWRpY3Rpb24oKSksIGdldChieXRlY29kZS5tX3Zh
bHVlKSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0X3Byb3RvdHlwZV9vZik7Cisg
ICAgICAgIH0KKwogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pZDogewogICAgICAgICAgICAgYXV0
byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BQdXRCeUlkPigpOwogICAgICAg
ICAgICAgTm9kZSogdmFsdWUgPSBnZXQoYnl0ZWNvZGUubV92YWx1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggNjgxZTdmZjc4ZDMzYTcw
NjE2OGRkNWJlNTg0ZTk5NTMyZmM2MWE0NS4uNTU4MWRiNDVmOTkxYmY1MTY3NWRjNzRlMGU3OTZm
MDU4ZDhkYTJiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMTc0LDYgKzE3NCw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2
ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBJCiAgICAg
Y2FzZSBvcF9nZXRfYnlfaWRfd2l0aF90aGlzOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX2RpcmVj
dDoKICAgICBjYXNlIG9wX2dldF9ieV92YWxfd2l0aF90aGlzOgorICAgIGNhc2Ugb3BfZ2V0X3By
b3RvdHlwZV9vZjoKICAgICBjYXNlIG9wX3B1dF9ieV9pZDoKICAgICBjYXNlIG9wX3B1dF9ieV9p
ZF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9wdXRfYnlfdmFsX3dpdGhfdGhpczoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDg4ZDE4ZmMxZmU5YWYz
YmVmN2VjOGI2YzRhOTIwYTk0Y2RlZGY0NmMuLmRhNmMxYzVmOTRjYzA1YjEyYjY1ZDM0ODA5Y2Qy
YzhiNDlhN2VhMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcApAQCAtMzI0NiwyMiArMzI0Niw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKICAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotCi0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkp
OwotICAgIGlmICh0aGlzVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVOb3RBbk9iamVjdEVycm9y
KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlKSk7Ci0KLSAgICBKU09iamVjdCogdGhpc09iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKLSAgICBpZiAoIXRoaXNP
YmplY3QpIHsKLSAgICAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IHRoaXNWYWx1ZS5zeW50aGVz
aXplUHJvdG90eXBlKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoISFz
Y29wZS5leGNlcHRpb24oKSA9PSAhcHJvdG90eXBlKTsKLSAgICAgICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkp
OwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3RvdHlwZSk7Ci0gICAgfQotCi0g
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVjdC0+
Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpKSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
dmFsdWUuZ2V0UHJvdG90eXBlKGdsb2JhbE9iamVjdCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRl
SW5zdGFuY2UqIGRhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggMzI0NDdkNjgx
ZWM5Y2QzMDQ0MWE4NzMxYWQzMTJiNzI3YTA3NjFhNS4uNmI5OTA2ODMwYTBlNzkzYzJkZmZjNGEz
ZDc1YzE5YzRkZjA0YjhjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMzU2LDYg
KzM1Niw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgREVG
SU5FX09QKG9wX2dldF9ieV9pZF93aXRoX3RoaXMpCiAgICAgICAgIERFRklORV9PUChvcF9nZXRf
YnlfaWRfZGlyZWN0KQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X3ZhbCkKKyAgICAgICAg
REVGSU5FX09QKG9wX2dldF9wcm90b3R5cGVfb2YpCiAgICAgICAgIERFRklORV9PUChvcF9vdmVy
cmlkZXNfaGFzX2luc3RhbmNlKQogICAgICAgICBERUZJTkVfT1Aob3BfaW5zdGFuY2VvZikKICAg
ICAgICAgREVGSU5FX09QKG9wX2luc3RhbmNlb2ZfY3VzdG9tKQpAQCAtNjE1LDYgKzYxNiw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIERFRklORV9TTE9X
Q0FTRV9TTE9XX09QKHN0cmljdGVxKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfU0xPV19PUChu
c3RyaWN0ZXEpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKGdldF9kaXJlY3RfcG5h
bWUpCisgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKGdldF9wcm90b3R5cGVfb2YpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKGhhc19zdHJ1Y3R1cmVfcHJvcGVydHkpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKHJlc29sdmVfc2NvcGUpCiAgICAgICAgIERF
RklORV9TTE9XQ0FTRV9TTE9XX09QKGNoZWNrX3RkeikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmlu
ZGV4IDM0ZjNkNTBmMDRiYzJiOTZlMGY5NTljN2M2YjU1M2Y3NDcwMDU1MWQuLjZiMmU0ODRkNGE2
NDkyODQyZGM5ZjEyZWJmYjViMWJhNzhiMmIxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApA
QCAtNTIxLDYgKzUyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3Bf
Z2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bf
Z2V0X2FyZ3VtZW50X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGVt
aXRfb3BfZ2V0X3Byb3RvdHlwZV9vZihjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lk
IGVtaXRfb3BfaW5fYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX2luaXRfbGF6eV9yZWcoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDcyNzdmZThhMzY1NmYxODZiOTI5
MDk1N2I1NDljOWNiNjJmYjhlNDAuLjdlMmU0M2U2NzMzNmIxYTRkMDE5ZTFiNDA1NzIxMjdjYWM1
ODI3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTUw
OCw2ICsxNTA4LDI0IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9kaXJlY3RfcG5hbWUoY29uc3Qg
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGRzdCwgcmVnVDApOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcHJvdG90eXBlX29m
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgYXV0byBieXRl
Y29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRQcm90b3R5cGVPZj4oKTsKKyAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJ5dGVjb2RlLm1fdmFsdWUsIHJlZ1QwKTsKKworICAgIGFk
ZFNsb3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMCkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5j
aElmTm90VHlwZShyZWdUMCwgRmluYWxPYmplY3RUeXBlLCBKU0Z1bmN0aW9uVHlwZSkpOworCisg
ICAgZW1pdExvYWRTdHJ1Y3R1cmUodm0oKSwgcmVnVDAsIHJlZ1QyLCByZWdUMSk7CisgICAgbG9h
ZDY0KEFkZHJlc3MocmVnVDIsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkpLCByZWdUMik7
CisgICAgSnVtcCBoYXNNb25vUHJvdG8gPSBicmFuY2hUZXN0NjQoTm9uWmVybywgcmVnVDIpOwor
ICAgIGxvYWQ2NChBZGRyZXNzKHJlZ1QwLCBvZmZzZXRSZWxhdGl2ZVRvQmFzZShrbm93blBvbHlQ
cm90b09mZnNldCkpLCByZWdUMik7CisgICAgaGFzTW9ub1Byb3RvLmxpbmsodGhpcyk7CisKKyAg
ICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7
CisgICAgZW1pdFN0b3JlQ2VsbChieXRlY29kZS5tX2RzdCwgcmVnVDIpOworfQorCiB2b2lkIEpJ
VDo6ZW1pdF9vcF9lbnVtZXJhdG9yX3N0cnVjdHVyZV9wbmFtZShjb25zdCBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogewogICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb24tPmFzPE9wRW51bWVyYXRvclN0cnVjdHVyZVBuYW1lPigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDRjNWJkMGMxNTkxZmEzZGNk
ZTM4NWE0YjA0MWE1ZTgwNjc5MzU2ZmMuLmJmYThjOWVmNjU5MTkxZjNjNzdkZGQyYmU0ZDkyZGNh
MDI4ZTE1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAKQEAgLTEyODYsNiArMTI4NiwyNSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0
X3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFN0
b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X3Byb3Rv
dHlwZV9vZihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGF1
dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0UHJvdG90eXBlT2Y+KCk7
CisgICAgZW1pdExvYWQoYnl0ZWNvZGUubV92YWx1ZSwgcmVnVDEsIHJlZ1QwKTsKKworICAgIGFk
ZFNsb3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5j
aElmTm90VHlwZShyZWdUMCwgRmluYWxPYmplY3RUeXBlLCBKU0Z1bmN0aW9uVHlwZSkpOworCisg
ICAgbG9hZDMyKEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHJl
Z1QyKTsKKyAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMiwgU3RydWN0dXJlOjpwcm90b3R5cGVPZmZz
ZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSwgcmVnVDEpOwor
ICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QyLCBTdHJ1Y3R1cmU6OnByb3RvdHlwZU9mZnNldCgpICsg
T0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSwgcmVnVDIpOworICAg
IEp1bXAgaGFzTW9ub1Byb3RvID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOworICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QwLCBv
ZmZzZXRSZWxhdGl2ZVRvQmFzZShrbm93blBvbHlQcm90b09mZnNldCkgKyBPQkpFQ1RfT0ZGU0VU
T0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpLCByZWdUMik7CisgICAgaGFzTW9ub1Byb3Rv
LmxpbmsodGhpcyk7CisKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFk
YXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFN0b3JlQ2VsbChieXRlY29kZS5tX2RzdCwgcmVn
VDIpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9lbnVtZXJhdG9yX3N0cnVjdHVyZV9wbmFtZShj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGF1dG8gYnl0ZWNv
ZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wRW51bWVyYXRvclN0cnVjdHVyZVBuYW1lPigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCmluZGV4IGZkZTUzMWYzZjcwNDZjYzRjMjI3ZjY3OWIxOWRlOGI4NWFlMTZkMTcuLjRj
NTg3NTQxMGFjMjU1YWVmNjE4YTBiMWE4YzBkNzc5YWQ4NzM0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTE3NjMs
NiArMTc2Myw3IEBAIHNsb3dQYXRoT3AoZW51bWVyYXRvcl9zdHJ1Y3R1cmVfcG5hbWUpCiBzbG93
UGF0aE9wKGdldF9ieV9pZF93aXRoX3RoaXMpCiBzbG93UGF0aE9wKGdldF9ieV92YWxfd2l0aF90
aGlzKQogc2xvd1BhdGhPcChnZXRfZGlyZWN0X3BuYW1lKQorc2xvd1BhdGhPcChnZXRfcHJvdG90
eXBlX29mKQogc2xvd1BhdGhPcChnZXRfZW51bWVyYWJsZV9sZW5ndGgpCiBzbG93UGF0aE9wKGdl
dF9wcm9wZXJ0eV9lbnVtZXJhdG9yKQogc2xvd1BhdGhPcChncmVhdGVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggYjY1NThm
NDU4ZjlmY2EzNjNmMDYxNjU2ZWZhMGEzNzA4YTg2OWRiMC4uN2E1YjM5NDQ3MTRjYTdlZDQ0YjZm
MTZkZWIxYzgwNTIzNGIxZjhmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC0xMjkzLDYgKzEyOTMsMTQgQEAgU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX2dldF9ieV92YWxfd2l0aF90aGlzKQogICAgIFJFVFVSTl9QUk9GSUxF
RChiYXNlVmFsdWUuZ2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHksIHNsb3QpKTsKIH0KIAorU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2dldF9wcm90b3R5cGVfb2YpCit7CisgICAgQkVHSU4oKTsK
KyAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wR2V0UHJvdG90eXBlT2Y+KCk7CisgICAgSlNW
YWx1ZSB2YWx1ZSA9IEdFVF9DKGJ5dGVjb2RlLm1fdmFsdWUpLmpzVmFsdWUoKTsKKyAgICBSRVRV
Uk5fUFJPRklMRUQodmFsdWUuZ2V0UHJvdG90eXBlKGdsb2JhbE9iamVjdCkpOworfQorCiBTTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfcHV0X2J5X2lkX3dpdGhfdGhpcykKIHsKICAgICBCRUdJTigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaApp
bmRleCA4NGMxYWI2MWQwZGFmNWVlNzg1ZmIyMDM4N2I4Mzc4ZTFmYWUxZjkxLi5hMDUxMmQ5ZWI5
YTc4MzJjZTBlNzMzOWIzYjZhMjg0ZGNhYTZhYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaApAQCAtMjczLDYgKzI3Myw3IEBAIFNMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY3JlYXRlX2FzeW5jX2dlbmVyYXRvcik7CiBTTE9X
X1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2NyZWF0ZV9yZXN0KTsKIFNMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkX3dpdGhfdGhpcyk7CiBTTE9XX1BBVEhfSElEREVO
X0RFQ0woc2xvd19wYXRoX2dldF9ieV92YWxfd2l0aF90aGlzKTsKK1NMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfZ2V0X3Byb3RvdHlwZV9vZik7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0wo
c2xvd19wYXRoX3B1dF9ieV9pZF93aXRoX3RoaXMpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9wdXRfYnlfdmFsX3dpdGhfdGhpcyk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xv
d19wYXRoX2RlZmluZV9kYXRhX3Byb3BlcnR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWUuaAppbmRleCBjYzJjYzEwYTFlYTg3ODZkZTNhY2I1YzcxNjQzMTc5YTVj
OWY3MjhlLi4wODE0OTZiNzdjOGU2NTA4NTJjOGY3Yzk4OWRlMTU0ZjlhNTMwNGVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0zMjEsNiArMzIxLDcg
QEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgcHV0VG9QcmltaXRpdmVCeUlu
ZGV4KEpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBib29s
IHNob3VsZFRocm93KTsKICAgICBib29sIHB1dEJ5SW5kZXgoSlNHbG9iYWxPYmplY3QqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwogCisgICAgSlNW
YWx1ZSBnZXRQcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBKU1ZhbHVlIHRv
VGhpcyhKU0dsb2JhbE9iamVjdCosIEVDTUFNb2RlKSBjb25zdDsKIAogICAgIHN0YXRpYyBib29s
IGVxdWFsKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSB2MSwgSlNWYWx1ZSB2Mik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCAw
MTFkNThiZDU3NDQ4NjgwZTU0YzM4ZmE3ZDYzZjFmNWY3NzE3MTIzLi45ZDc2ZDNlNDNhZGQ1MTZk
ZmU1NGMxNTFmZjk2ZGRmMGZiYTBiZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTEwODEsNiArMTA4MSwxOCBAQCBpbmxp
bmUgYm9vbCBKU1ZhbHVlOjpwdXRCeUluZGV4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IHVuc2lnbmVkIHByb3BlcnR5TgogICAgIHJldHVybiBhc0NlbGwoKS0+bWV0aG9kVGFibGUoZ2V0
Vk0oZ2xvYmFsT2JqZWN0KSktPnB1dEJ5SW5kZXgoYXNDZWxsKCksIGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCitBTFdBWVNfSU5MSU5FIEpTVmFs
dWUgSlNWYWx1ZTo6Z2V0UHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNv
bnN0Cit7CisgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKGlzT2JqZWN0KCkpCisgICAgICAg
IHJldHVybiBhc09iamVjdChhc0NlbGwoKSktPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0
KTsKKworICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBzeW50aGVzaXplUHJvdG90eXBlKGdsb2Jh
bE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1
cm4gcHJvdG90eXBlOworfQorCiBpbmxpbmUgU3RydWN0dXJlKiBKU1ZhbHVlOjpzdHJ1Y3R1cmVP
ck51bGwoKSBjb25zdAogewogICAgIGlmIChpc0NlbGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRl
eCAzODE4N2E3ZTczMDY0Nzk4ZWJiYWNmMmZhNTNmYzhjN2RjYWFhOTk4Li5lYTI1ZThiODk0Njlj
NjllN2YxMWJjYzBhMDMxYWU0NzNiMTY5ODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC02OTMs
MjMgKzY5Myw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY01ha2VU
eXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAKIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2Jh
bE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKLSAgICBpZiAodGhpc1ZhbHVlLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlTm90QW5PYmplY3RFcnJvcihnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSkpOwot
Ci0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0s
IHRoaXNWYWx1ZSk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0KSB7Ci0gICAgICAgIEpTT2JqZWN0KiBw
cm90b3R5cGUgPSB0aGlzVmFsdWUuc3ludGhlc2l6ZVByb3RvdHlwZShnbG9iYWxPYmplY3QpOwot
ICAgICAgICBFWENFUFRJT05fQVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIXByb3RvdHlw
ZSk7Ci0gICAgICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKLSAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShwcm90b3R5cGUpOwotICAgIH0KLQotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0
KSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlLmdldFByb3RvdHlwZShn
bG9iYWxPYmplY3QpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxG
dW5jUHJvdG9TZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDBmY2U4NWQ3MWI5OTJmZTIzMGM0NWU1MWYyMDA0NTZiN2IzN2ExZGYuLjUxZTJi
MWZkYzkwOWNiNDJlNzAyNGVjMGEyODg5MTc3NjhkYjcyNDkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAt
MDUtMjEgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAg
IHN1cGVyIHNob3VsZCBub3QgZGVwZW5kIG9uIF9fcHJvdG9fXworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvY2xhc3Mtc3ludGF4LWRlcml2
ZWQtZGVmYXVsdC1jb25zdHJ1Y3Rvci5qczoKKyAgICAgICAgKiBzdHJlc3Mvc3VwZXItcHJvcGVy
dHktYWNjZXNzLmpzOgorICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1hcmsg
NCB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDUtMjEgIEFsZXhleSBTaHZheWthICA8
c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFVzZSBAaXNVbmRlZmluZWRPck51bGwg
aW5zdGVhZCBvZiBhYnN0cmFjdCBlcXVhbGl0eSB3aXRoIG51bGwKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0b3IuanMgYi9K
U1Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50YXgtZGVyaXZlZC1kZWZhdWx0LWNvbnN0cnVjdG9yLmpz
CmluZGV4IGYwYzQ3N2U1ZjUxODNlZTVmNDgyODQ4MGQ3NWYwMjVjYTI5ZWYxNmUuLjI0YmQ2NDI5
MjVmZjM4Mjk3YjJlMmJiNDVjMmQ5NGI1NWU0ZWM0OTkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0b3IuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvY2xhc3Mtc3ludGF4LWRlcml2ZWQtZGVmYXVsdC1jb25zdHJ1Y3Rvci5qcwpA
QCAtMSwzICsxLDQgQEAKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCAi
X19wcm90b19fIiwge2dldDogdW5kZWZpbmVkfSk7CiAKIHZhciBBID0gY2xhc3MgQSB7IH07CiB2
YXIgQiA9IGNsYXNzIEIgZXh0ZW5kcyBBIHsgfTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qcyBiL0pTVGVzdHMvc3RyZXNzL3N1cGVyLXByb3BlcnR5
LWFjY2Vzcy5qcwppbmRleCA2NTk5NmE3NTk3NTRjZDk1MTdlNmMyNWFlYjk1ZDJmNmFjN2ZhNzM2
Li42MThhYjNiNmMyNTI5ZmRlODkxZjliZGZmNTRiZDNlNmI1M2EwNTBjIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9zdXBlci1wcm9wZXJ0eS1hY2Nlc3MuanMKKysrIGIvSlNUZXN0cy9zdHJl
c3Mvc3VwZXItcHJvcGVydHktYWNjZXNzLmpzCkBAIC0xLDMgKzEsNSBAQAorT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICJfX3Byb3RvX18iLCB7Z2V0OiB1bmRlZmluZWR9
KTsKKwogZnVuY3Rpb24gYXNzZXJ0KGIsIG0gPSAiQmFkISIpIHsKICAgICBpZiAoIWIpIHsKICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKG0pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4
IGU5NzFkNGQ1M2Y2NGE5MDZmMTYwYTNiZTZmOTRmMTIwZmRlZjU5N2UuLmNlNGIwNDZkODc5MzE5
ZTUyZjg5ZDc5OGNiMjdjNmY4ZDE0M2Y0OTcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9l
eHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwK
QEAgLTMwMTQsMTIgKzMwMTQsNiBAQCB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL3ByZWZpeC1p
bmNyZW1lbnQvUzExLjQuNF9BNV9UNS5qczoKIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvcHJl
Zml4LWluY3JlbWVudC9TMTEuNC40X0E2X1QzLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCi10ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL3N1cGVyL2NhbGwtcG9pc29uZWQtdW5kZXJzY29yZS1wcm90by5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogc2hvdWxkIG5vdCBiZSBjYWxsZWQnCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBzaG91bGQgbm90IGJlIGNhbGxlZCcKLXRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvc3VwZXIvcHJvcC1wb2lzb25lZC11bmRlcnNjb3JlLXByb3RvLmpzOgotICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBzaG91bGQgbm90IGJlIGNhbGxlZCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IHNob3VsZCBub3QgYmUgY2FsbGVkJwogdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy95aWVsZC9zdGFyLWl0ZXJhYmxlLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBGaXJz
dCByZXN1bHQgYGRvbmVgIGZsYWcgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZmFsc2XCuywgwqt1bmRl
ZmluZWTCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEZpcnN0
IHJlc3VsdCBgZG9uZWAgZmxhZyBFeHBlY3RlZCBTYW1lVmFsdWUowqtmYWxzZcK7LCDCq3VuZGVm
aW5lZMK7KSB0byBiZSB0cnVlJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400464</attachid>
            <date>2020-05-28 08:48:47 -0700</date>
            <delta_ts>2020-06-01 13:01:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157972-20200528184845.patch</filename>
            <type>text/plain</type>
            <size>24431</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MTI5YzdkOTIzYWNjODFkZGRhNzRhMTcwMzVkN2FlZDVmNjE2YzQ3Li5jNDA5ZjBlNWRjNDMyYTRl
MjcwZDYwNzNjOTkyMWY3M2NiMTFkMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMC0wNS0yOCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgc3VwZXIgc2hvdWxkIG5vdCBkZXBlbmQgb24gX19wcm90b19fCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgdGhp
cyBjaGFuZ2UsIGJvdGggc3VwZXIoKSBjYWxsIFsxXSBhbmQgc3VwZXIucHJvcGVydHkgWzJdIHJl
bGllZCBvbgorICAgICAgICBPYmplY3QucHJvdG90eXBlLl9fcHJvdG9fXyB0byBhY3F1aXJlIHN1
cGVyIGJhc2UsIHdoaWNoIHdhcyBvYnNlcnZhYmxlIGFuZAorICAgICAgICBpbmNvcnJlY3QgaWYg
X19wcm90b19fIGdldHMgcmVtb3ZlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGRlZmluZXMgT3BH
ZXRQcm90b3R5cGVPZiBmb3IgTExJbnQgYW5kIGJhc2VsaW5lIEpJVCwgZW5zdXJpbmcKKyAgICAg
ICAgcmV0dXJuZWQgdmFsdWVzIGFyZSBwcm9maWxlZCBzbyB0aGUgb3AgY2FuIGJlIHdpcmVkIHRv
IGV4aXN0aW5nIERGRyBhbmQgRlRMCisgICAgICAgIGltcGxlbWVudGF0aW9ucy4gU2luY2UgX19w
cm90b19fIGlzIG9wdGltaXplZCB2aWEgSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZSwKKyAgICAg
ICAgSklUIGZhc3QgcGF0aCBpcyBpbnRyb2R1Y2VkIHRvIGF2b2lkIHBlcmZvcm1hbmNlIHJlZ3Jl
c3Npb25zIHcvbyBERkcuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWxpZ25zIEpTQyB3aXRoIFY4
IGFuZCBTcGlkZXJNb25rZXksIHByb2dyZXNzaW5nIG1pY3JvYmVuY2htYXJrcy8KKyAgICAgICAg
c3VwZXItZ2V0LWJ5LXtpZCx2YWx9LXdpdGgtdGhpcy1tb25vbW9ycGhpYy5qcyBieSA3LTEwJS4g
U2l4U3BlZWQgaXMgbmV1dHJhbC4KKyAgICAgICAgQWxzbywgZXh0cmFjdHMgSlNWYWx1ZTo6Z2V0
UHJvdG90eXBlKCkgbWV0aG9kIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uCisKKyAgICAgICAg
WzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVyY29uc3RydWN0b3IgKHN0
ZXAgNSkKKyAgICAgICAgWzJdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVy
YmFzZSAoc3RlcCA1KQorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAg
ICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0
ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJ5dGVj
b2RlL09wY29kZS5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0UHJvdG90eXBlT2Yp
OgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjplbWl0U3VwZXJC
YXNlRm9yQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6ZW1pdEdldFN1cGVyRnVuY3Rpb25Gb3JDb25z
dHJ1Y3QpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9KSVQuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlND
OjpKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKToKKyAgICAgICAgKiBqaXQvSklULmg6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X3Byb3RvdHlwZV9vZik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcHJvdG90eXBlX29mKToKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBy
dW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SlNWYWx1ZTo6Z2V0UHJvdG90eXBlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0dGVy
KToKKwogMjAyMC0wNS0yOCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNf
aGVhZGVyLnB5OjI5NDogU3ludGF4V2FybmluZzogImlzIiB3aXRoIGEgbGl0ZXJhbC4gRGlkIHlv
dSBtZWFuICI9PSI/CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVMaXN0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
TGlzdC5yYgppbmRleCAwYmQ2YTA3ZmZiMGUzMTc5NWYxNDZiYTQ4NTQxYWJjNWU1OGUyYmU4Li4w
ZTc0YzZiZTIxZGY4ZWNmNjZhMzU2YTA4ZjVkOTg0YWIxZjY2NTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKQEAgLTQ5Nyw2ICs0OTcsMTUg
QEAgb3AgOmdldF9ieV9pZF9kaXJlY3QsCiAgICAgICAgIG9mZnNldDogdW5zaWduZWQsCiAgICAg
fQogCitvcCA6Z2V0X3Byb3RvdHlwZV9vZiwKKyAgICBhcmdzOiB7CisgICAgICAgIGRzdDogVmly
dHVhbFJlZ2lzdGVyLAorICAgICAgICB2YWx1ZTogVmlydHVhbFJlZ2lzdGVyLAorICAgIH0sCisg
ICAgbWV0YWRhdGE6IHsKKyAgICAgICAgcHJvZmlsZTogVmFsdWVQcm9maWxlLAorICAgIH0KKwog
b3AgOnRyeV9nZXRfYnlfaWQsCiAgICAgYXJnczogewogICAgICAgICBkc3Q6IFZpcnR1YWxSZWdp
c3RlciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZVVzZURlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VE
ZWYuY3BwCmluZGV4IGEzMTkwZjJkZDVkM2I2ZDJmZGJjZWY4ZTAyMGZlYjNjZmM3NTg1MDQuLmU2
YjJhNWVkMTFjNTI4ZTc1YTczYjU3YWM0YTUzNzJlNzg0Yjc5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcApAQCAtMjEzLDYgKzIx
Myw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbChWaXJ0dWFsUmVnaXN0
ZXIgc2NvcGVSZWdpc3RlciwgY29uc3QgSW5zdHJ1CiAgICAgVVNFUyhPcEVudW1lcmF0b3JTdHJ1
Y3R1cmVQbmFtZSwgZW51bWVyYXRvciwgaW5kZXgpCiAgICAgVVNFUyhPcEVudW1lcmF0b3JHZW5l
cmljUG5hbWUsIGVudW1lcmF0b3IsIGluZGV4KQogICAgIFVTRVMoT3BHZXRCeVZhbCwgYmFzZSwg
cHJvcGVydHkpCisgICAgVVNFUyhPcEdldFByb3RvdHlwZU9mLCB2YWx1ZSkKICAgICBVU0VTKE9w
SW5CeVZhbCwgYmFzZSwgcHJvcGVydHkpCiAgICAgVVNFUyhPcE92ZXJyaWRlc0hhc0luc3RhbmNl
LCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VWYWx1ZSkKICAgICBVU0VTKE9wSW5zdGFuY2VvZiwg
dmFsdWUsIHByb3RvdHlwZSkKQEAgLTQyOCw2ICs0MjksNyBAQCB2b2lkIGNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVJbmRleEltcGwodW5zaWduZWQgbnVtVmFycywgY29uc3QgSW5zdHJ1Y3Rpb24qIGlu
c3RydQogICAgIERFRlMoT3BJbnN0YW5jZW9mLCBkc3QpCiAgICAgREVGUyhPcEluc3RhbmNlb2ZD
dXN0b20sIGRzdCkKICAgICBERUZTKE9wR2V0QnlWYWwsIGRzdCkKKyAgICBERUZTKE9wR2V0UHJv
dG90eXBlT2YsIGRzdCkKICAgICBERUZTKE9wVHlwZW9mLCBkc3QpCiAgICAgREVGUyhPcElkZW50
aXR5V2l0aFByb2ZpbGUsIHNyY0RzdCkKICAgICBERUZTKE9wSXNFbXB0eSwgZHN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCA1YTkzODQwNzMx
NjYwN2QyZjE2ZWU2ZDZmMDdjMTY0NWJjYzU3OGY1Li5mZWRmOTZjMTU2MDBlYTc1N2U1ZTJiZTEz
NzQxYTczNmRlOTMxMzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcApAQCAtNTE0LDYgKzUxNCw3IEBAIGJvb2wgQ29kZUJsb2NrOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIFNjcmlwdEV4ZWN1dGFibGUqIG93bmVyRXhlY3V0YWJsZSwgVW5saW5rCiAg
ICAgICAgIExJTksoT3BUcnlHZXRCeUlkLCBwcm9maWxlKQogICAgICAgICBMSU5LKE9wR2V0QnlJ
ZERpcmVjdCwgcHJvZmlsZSkKICAgICAgICAgTElOSyhPcEdldEJ5VmFsV2l0aFRoaXMsIHByb2Zp
bGUpCisgICAgICAgIExJTksoT3BHZXRQcm90b3R5cGVPZiwgcHJvZmlsZSkKICAgICAgICAgTElO
SyhPcEdldEZyb21Bcmd1bWVudHMsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BUb051bWJlciwg
cHJvZmlsZSkKICAgICAgICAgTElOSyhPcFRvTnVtZXJpYywgcHJvZmlsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAppbmRleCBhYTg4NTlhZGQ2Mjg2MGZmZGFkYjRkMjIy
ODdjMzRiMDdjZTViMzM0Li5hOTBkYzQzNjRjOTBkZDk1ZDE5YTdkYjM0MjMyMTJkNjAxNDVlMDcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCkBAIC0xMDUsNiArMTA1
LDcgQEAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBiaXRXaWR0aEZvck1heE9wY29kZUxlbmd0
aCA9IFdURjo6Z2V0TVNCU2V0Q29uc3RleHByKG0KICAgICBtYWNybyhPcFRyeUdldEJ5SWQpIFwK
ICAgICBtYWNybyhPcEdldEJ5SWREaXJlY3QpIFwKICAgICBtYWNybyhPcEdldEJ5VmFsV2l0aFRo
aXMpIFwKKyAgICBtYWNybyhPcEdldFByb3RvdHlwZU9mKSBcCiAgICAgbWFjcm8oT3BHZXRGcm9t
QXJndW1lbnRzKSBcCiAgICAgbWFjcm8oT3BUb051bWJlcikgXAogICAgIG1hY3JvKE9wVG9OdW1l
cmljKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGE4MDU1MDhiZjczN2UxMTQ1MjE1ZjVhMjU3ZjFm
MmM2NjU3MjA5MTMuLjVjNzdlMmMyN2JhNDBhM2I1MzBlZmEyMTFhNWJmZGY0ZGY2NDZmMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwCkBAIC0yNjgxLDYgKzI2ODEsMTIgQEAgUmVnaXN0ZXJJRCogQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRHZXRCeVZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJh
c2UsIFIKICAgICByZXR1cm4gZHN0OwogfQogCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdEdldFByb3RvdHlwZU9mKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUp
Cit7CisgICAgT3BHZXRQcm90b3R5cGVPZjo6ZW1pdCh0aGlzLCBkc3QsIHZhbHVlKTsKKyAgICBy
ZXR1cm4gZHN0OworfQorCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1dEJ5
VmFsKFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2
YWx1ZSkKIHsKICAgICBPcFB1dEJ5VmFsOjplbWl0KHRoaXMsIGJhc2UsIHByb3BlcnR5LCB2YWx1
ZSwgZWNtYU1vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXggNGIxZWZiODlkNjA4N2E0YmYwMzk1YTYx
YTJiYmNjYmZiYzE1NTBlNS4uNTk3Mjg5MGNlYmIxNmEzZTM1NTAyY2E3NGE4ODZiN2RjOWJmYmZm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuaApAQCAtODA4LDYgKzgwOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0RGVsZXRlQnlJZChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVy
SUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEdl
dEJ5VmFsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogcHJv
cGVydHkpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0QnlWYWwoUmVnaXN0ZXJJRCogZHN0
LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiB0aGlzVmFsdWUsIFJlZ2lzdGVySUQqIHBy
b3BlcnR5KTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEdldFByb3RvdHlwZU9mKFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0UHV0
QnlWYWwoUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQq
IHZhbHVlKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFB1dEJ5VmFsKFJlZ2lzdGVySUQqIGJh
c2UsIFJlZ2lzdGVySUQqIHRoaXNWYWx1ZSwgUmVnaXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVy
SUQqIHZhbHVlKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERpcmVjdFB1dEJ5VmFsKFJlZ2lz
dGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5j
cHAKaW5kZXggMWFmYzJlNGJiY2EyZmJkOTZmZmIyMjYzNDcxMDYwMWQ0ZTU3MmFmNC4uYjRhMDJm
NjA5MGJkYmM1MjY5NDc5N2Y0ZjczMWJhYjU1NzBkNGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMTkzLDE3ICsx
OTMsMTcgQEAgc3RhdGljIFJlZ2lzdGVySUQqIGVtaXRIb21lT2JqZWN0Rm9yQ2FsbGVlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCiBzdGF0aWMgUmVnaXN0ZXJJRCogZW1pdFN1cGVyQmFz
ZUZvckNhbGxlZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQogewogICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBob21lT2JqZWN0ID0gZW1pdEhvbWVPYmplY3RGb3JDYWxsZWUoZ2VuZXJhdG9y
KTsKLSAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3Jh
cnkoKSwgaG9tZU9iamVjdC5nZXQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS51bmRlcnNj
b3JlUHJvdG8pOworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldFByb3RvdHlwZU9mKGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKSwgaG9tZU9iamVjdC5nZXQoKSk7CiB9CiAKIHN0YXRpYyBSZWdp
c3RlcklEKiBlbWl0R2V0U3VwZXJGdW5jdGlvbkZvckNvbnN0cnVjdChCeXRlY29kZUdlbmVyYXRv
ciYgZ2VuZXJhdG9yKQogewogICAgIGlmIChnZW5lcmF0b3IuaXNEZXJpdmVkQ29uc3RydWN0b3JD
b250ZXh0KCkpCi0gICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9y
Lm5ld1RlbXBvcmFyeSgpLCBnZW5lcmF0b3IuZW1pdExvYWREZXJpdmVkQ29uc3RydWN0b3JGcm9t
QXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCgpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1l
cygpLnVuZGVyc2NvcmVQcm90byk7CisgICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldFBy
b3RvdHlwZU9mKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgZ2VuZXJhdG9yLmVtaXRMb2FkRGVy
aXZlZENvbnN0cnVjdG9yRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJvbm1lbnQoKSk7CiAK
ICAgICBSZWdpc3RlcklEIGNhbGxlZTsKICAgICBjYWxsZWUuc2V0SW5kZXgoQ2FsbEZyYW1lU2xv
dDo6Y2FsbGVlKTsKLSAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5u
ZXdUZW1wb3JhcnkoKSwgJmNhbGxlZSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS51bmRlcnNj
b3JlUHJvdG8pOworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldFByb3RvdHlwZU9mKGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKSwgJmNhbGxlZSk7CiB9CiAKIFJlZ2lzdGVySUQqIFN1cGVyTm9k
ZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQq
IGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKaW5kZXggZjA0MGQ4ZDM5MWU2ODM3MTc2ZGYwMjA1MTBiMmE3YWE4ZmRjMmYwNC4uMTBhMWZm
YzRjMjliZTQyNDE1NDczYTU4ZWUzOThmZjc0ZGVhMjc0MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTYwODksNiArNjA4OSwxMyBA
QCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogCiAgICAg
ICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfYnlfaWRfd2l0aF90aGlzKTsKICAgICAgICAgfQor
CisgICAgICAgIGNhc2Ugb3BfZ2V0X3Byb3RvdHlwZV9vZjogeworICAgICAgICAgICAgYXV0byBi
eXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRQcm90b3R5cGVPZj4oKTsKKyAg
ICAgICAgICAgIHNldChieXRlY29kZS5tX2RzdCwgYWRkVG9HcmFwaChHZXRQcm90b3R5cGVPZiwg
T3BJbmZvKDApLCBPcEluZm8oZ2V0UHJlZGljdGlvbigpKSwgZ2V0KGJ5dGVjb2RlLm1fdmFsdWUp
KSk7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfcHJvdG90eXBlX29mKTsKKyAgICAg
ICAgfQorCiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7CiAgICAgICAgICAgICBhdXRvIGJ5
dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcFB1dEJ5SWQ+KCk7CiAgICAgICAgICAg
ICBOb2RlKiB2YWx1ZSA9IGdldChieXRlY29kZS5tX3ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBhMWFlM2UzYzlmY2UxNjg4M2Ey
ODBjODE2OWU0ZmJiYjE2OWE3NjExLi43ZWEyYWM1NDBhOWZjNzgwMTE1MDgyZWM5ZjQ5OGZmNjY4
YTI1YWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxp
dGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMu
Y3BwCkBAIC0xNzQsNiArMTc0LDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChP
cGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IEkKICAgICBjYXNl
IG9wX2dldF9ieV9pZF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWRfZGlyZWN0Ogog
ICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbF93aXRoX3RoaXM6CisgICAgY2FzZSBvcF9nZXRfcHJvdG90
eXBlX29mOgogICAgIGNhc2Ugb3BfcHV0X2J5X2lkOgogICAgIGNhc2Ugb3BfcHV0X2J5X2lkX3dp
dGhfdGhpczoKICAgICBjYXNlIG9wX3B1dF9ieV92YWxfd2l0aF90aGlzOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggZGRkYzYzMzIyYTM5ODFmNDc1
ZWUyMmZmNjRmOTg4ODYzN2U2OWZkOC4uMzk3N2RjZDFjMDI4MzIwZjYyY2IxOTVjZjU5OTk2ZTEw
MTA2Y2Q2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CkBAIC0zMjY4LDIyICszMjY4LDggQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0KLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0g
ICAgaWYgKHRoaXNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoZ2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUpKTsKLQotICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNE
eW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmICghdGhpc09iamVj
dCkgewotICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0gdGhpc1ZhbHVlLnN5bnRoZXNpemVQ
cm90b3R5cGUoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3Bl
LmV4Y2VwdGlvbigpID09ICFwcm90b3R5cGUpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIXByb3Rv
dHlwZSkpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0g
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvdG90eXBlKTsKLSAgICB9Ci0KLSAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQ
cm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCkpKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2YWx1
ZS5nZXRQcm90b3R5cGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0
YW5jZSogZGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCAyNjQ4NTRjNjY1ZWNk
ZmRiMGQ5Y2UxZTRiMDdmN2UzY2JkZmJjMjcwLi43NzI0MGQ1NDZmNDk0ZTE4ZTIwZTNkYmEzMDM5
MTQzODM4MTFhYjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0zNTYsNiArMzU2
LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVf
T1Aob3BfZ2V0X2J5X2lkX3dpdGhfdGhpcykKICAgICAgICAgREVGSU5FX09QKG9wX2dldF9ieV9p
ZF9kaXJlY3QpCiAgICAgICAgIERFRklORV9PUChvcF9nZXRfYnlfdmFsKQorICAgICAgICBERUZJ
TkVfT1Aob3BfZ2V0X3Byb3RvdHlwZV9vZikKICAgICAgICAgREVGSU5FX09QKG9wX292ZXJyaWRl
c19oYXNfaW5zdGFuY2UpCiAgICAgICAgIERFRklORV9PUChvcF9pbnN0YW5jZW9mKQogICAgICAg
ICBERUZJTkVfT1Aob3BfaW5zdGFuY2VvZl9jdXN0b20pCkBAIC02MTcsNiArNjE4LDcgQEAgdm9p
ZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNF
X1NMT1dfT1Aoc3RyaWN0ZXEpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKG5zdHJp
Y3RlcSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX1NMT1dfT1AoZ2V0X2RpcmVjdF9wbmFtZSkK
KyAgICAgICAgREVGSU5FX1NMT1dDQVNFX1NMT1dfT1AoZ2V0X3Byb3RvdHlwZV9vZikKICAgICAg
ICAgREVGSU5FX1NMT1dDQVNFX1NMT1dfT1AoaGFzX3N0cnVjdHVyZV9wcm9wZXJ0eSkKICAgICAg
ICAgREVGSU5FX1NMT1dDQVNFX1NMT1dfT1AoaGFzX293bl9zdHJ1Y3R1cmVfcHJvcGVydHkpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKGluX3N0cnVjdHVyZV9wcm9wZXJ0eSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDQwMGVlNjM0ZDMxYjcxN2Q5OTdjMWJjMjg0YmMwOGJl
MTMzOTQ5NzkuLjAwYWNkYTBlMGI3ZjM4MTVjNjhkZWJmYjM0MmI0MWFmM2Y4NjI4OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNTIxLDYgKzUyMSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICB2b2lkIGVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiop
OwogICAgICAgICB2b2lkIGVtaXRfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOwog
ICAgICAgICB2b2lkIGVtaXRfb3BfZ2V0X2FyZ3VtZW50X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlv
biopOworICAgICAgICB2b2lkIGVtaXRfb3BfZ2V0X3Byb3RvdHlwZV9vZihjb25zdCBJbnN0cnVj
dGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfaW5fYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24q
KTsKICAgICAgICAgdm9pZCBlbWl0X29wX2luaXRfbGF6eV9yZWcoY29uc3QgSW5zdHJ1Y3Rpb24q
KTsKICAgICAgICAgdm9pZCBlbWl0X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UoY29uc3QgSW5z
dHJ1Y3Rpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4
IDlkM2Q5MTdhMDM2ZTFjMTEyYzRkZGU1MjNiMDQzZjU4YjZkMWFhNGMuLmI3Njg3MjRiMzM3ZDM3
NGFmNTRkNjNlZjE3YmNkNWFjNTg0MjdhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzLmNwcApAQCAtMTUyNSw2ICsxNTI1LDI0IEBAIHZvaWQgSklUOjplbWl0X29wX2dl
dF9kaXJlY3RfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCwgcmVnVDApOwogfQogCit2b2lkIEpJVDo6ZW1p
dF9vcF9nZXRfcHJvdG90eXBlX29mKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCit7CisgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRQ
cm90b3R5cGVPZj4oKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJ5dGVjb2RlLm1fdmFs
dWUsIHJlZ1QwKTsKKworICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMCkpOwor
ICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmTm90VHlwZShyZWdUMCwgRmluYWxPYmplY3RUeXBlLCBK
U0Z1bmN0aW9uVHlwZSkpOworCisgICAgZW1pdExvYWRTdHJ1Y3R1cmUodm0oKSwgcmVnVDAsIHJl
Z1QyLCByZWdUMSk7CisgICAgbG9hZDY0KEFkZHJlc3MocmVnVDIsIFN0cnVjdHVyZTo6cHJvdG90
eXBlT2Zmc2V0KCkpLCByZWdUMik7CisgICAgSnVtcCBoYXNNb25vUHJvdG8gPSBicmFuY2hUZXN0
NjQoTm9uWmVybywgcmVnVDIpOworICAgIGxvYWQ2NChBZGRyZXNzKHJlZ1QwLCBvZmZzZXRSZWxh
dGl2ZVRvQmFzZShrbm93blBvbHlQcm90b09mZnNldCkpLCByZWdUMik7CisgICAgaGFzTW9ub1By
b3RvLmxpbmsodGhpcyk7CisKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1l
dGFkYXRhKG1fY29kZUJsb2NrKSk7CisgICAgZW1pdFN0b3JlQ2VsbChieXRlY29kZS5tX2RzdCwg
cmVnVDIpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9lbnVtZXJhdG9yX3N0cnVjdHVyZV9wbmFt
ZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGF1dG8gYnl0
ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wRW51bWVyYXRvclN0cnVjdHVyZVBuYW1l
PigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJf
NjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmlu
ZGV4IDcxY2Y5OWU5OTA0OGJhNjRmYjk1MTRjZTZiYTVhOTEwNmMwZGE2NzMuLmFmZjUwOTIzNTlj
YjJjNzZjYzY2MjU1MDBmYjc1ZDk5NTg1ZjE4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTEzMDIsNiArMTMwMiwxMSBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfZGlyZWN0X3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KIAordm9pZCBK
SVQ6OmVtaXRfb3BfZ2V0X3Byb3RvdHlwZV9vZihjb25zdCBJbnN0cnVjdGlvbiopCit7CisgICAg
YWRkU2xvd0Nhc2UoanVtcCgpKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfZW51bWVyYXRvcl9z
dHJ1Y3R1cmVfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsK
ICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEVudW1lcmF0b3JT
dHJ1Y3R1cmVQbmFtZT4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCA0YWI4MmE0ZjFmYmIwOWJhYzMyYjg2ZWQxNzE2
MTc2YjliNDc1OTI5Li43NmI4Y2VjNTA1ZjFlZmUzNWJjNzMwMzc0ODdhZjgzMDUwZGY0N2JhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCkBAIC0xNzYzLDYgKzE3NjMsNyBAQCBzbG93UGF0aE9wKGVudW1lcmF0b3Jfc3RydWN0
dXJlX3BuYW1lKQogc2xvd1BhdGhPcChnZXRfYnlfaWRfd2l0aF90aGlzKQogc2xvd1BhdGhPcChn
ZXRfYnlfdmFsX3dpdGhfdGhpcykKIHNsb3dQYXRoT3AoZ2V0X2RpcmVjdF9wbmFtZSkKK3Nsb3dQ
YXRoT3AoZ2V0X3Byb3RvdHlwZV9vZikKIHNsb3dQYXRoT3AoZ2V0X2VudW1lcmFibGVfbGVuZ3Ro
KQogc2xvd1BhdGhPcChnZXRfcHJvcGVydHlfZW51bWVyYXRvcikKIHNsb3dQYXRoT3AoZ3JlYXRl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMu
Y3BwCmluZGV4IGEzOWMxMzc1NzU2ZmNkNTlmMjY0NWIwMDgxNGE2MGE4NjhmYjE5YWMuLmI4MDVm
ODI3ZGFlMGJjNGVlMzQ3NWRkMzIwNWY1Y2Y3YTU5NTJmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtMTMzMSw2ICsxMzMx
LDE0IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfdmFsX3dpdGhfdGhpcykKICAg
ICBSRVRVUk5fUFJPRklMRUQoYmFzZVZhbHVlLmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5LCBz
bG90KSk7CiB9CiAKK1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfcHJvdG90eXBlX29mKQor
eworICAgIEJFR0lOKCk7CisgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcEdldFByb3RvdHlw
ZU9mPigpOworICAgIEpTVmFsdWUgdmFsdWUgPSBHRVRfQyhieXRlY29kZS5tX3ZhbHVlKS5qc1Zh
bHVlKCk7CisgICAgUkVUVVJOX1BST0ZJTEVEKHZhbHVlLmdldFByb3RvdHlwZShnbG9iYWxPYmpl
Y3QpKTsKK30KKwogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3B1dF9ieV9pZF93aXRoX3RoaXMp
CiB7CiAgICAgQkVHSU4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmgKaW5kZXggYmUzNzRhMGU2MjZmMmRmODMzMGJhYzQ5MjM4OTYwODFjNGFh
NDM5ZC4uZWMwNDUyYjJlYzZlZTg2MzJkZTM2NGIwYjk2NzdjNmYwMjNmZjQzMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKQEAgLTI3NSw2
ICsyNzUsNyBAQCBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2NyZWF0ZV9hc3luY19n
ZW5lcmF0b3IpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jcmVhdGVfcmVzdCk7
CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZF93aXRoX3RoaXMpOwog
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfdmFsX3dpdGhfdGhpcyk7CitT
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9wcm90b3R5cGVfb2YpOwogU0xPV19Q
QVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWRfd2l0aF90aGlzKTsKIFNMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X2J5X3ZhbF93aXRoX3RoaXMpOwogU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9kZWZpbmVfZGF0YV9wcm9wZXJ0eSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggY2MyY2MxMGExZWE4Nzg2ZGUz
YWNiNWM3MTY0MzE3OWE1YzlmNzI4ZS4uMDgxNDk2Yjc3YzhlNjUwODUyYzhmN2M5ODlkZTE1NGY5
YTUzMDRlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNW
YWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApA
QCAtMzIxLDYgKzMyMSw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIHB1
dFRvUHJpbWl0aXZlQnlJbmRleChKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7CiAgICAgYm9vbCBwdXRCeUluZGV4KEpTR2xv
YmFsT2JqZWN0KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBib29sIHNob3VsZFRo
cm93KTsKIAorICAgIEpTVmFsdWUgZ2V0UHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7
CiAgICAgSlNWYWx1ZSB0b1RoaXMoSlNHbG9iYWxPYmplY3QqLCBFQ01BTW9kZSkgY29uc3Q7CiAK
ICAgICBzdGF0aWMgYm9vbCBlcXVhbChKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgdjEsIEpTVmFs
dWUgdjIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNW
YWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJ
bmxpbmVzLmgKaW5kZXggMDExZDU4YmQ1NzQ0ODY4MGU1NGMzOGZhN2Q2M2YxZjVmNzcxNzEyMy4u
OWQ3NmQzZTQzYWRkNTE2ZGZlNTRjMTUxZmY5NmRkZjBmYmEwYmQ3OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC0xMDgxLDYg
KzEwODEsMTggQEAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6cHV0QnlJbmRleChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBwcm9wZXJ0eU4KICAgICByZXR1cm4gYXNDZWxsKCkt
Pm1ldGhvZFRhYmxlKGdldFZNKGdsb2JhbE9iamVjdCkpLT5wdXRCeUluZGV4KGFzQ2VsbCgpLCBn
bG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAorQUxX
QVlTX0lOTElORSBKU1ZhbHVlIEpTVmFsdWU6OmdldFByb3RvdHlwZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KSBjb25zdAoreworICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmIChpc09i
amVjdCgpKQorICAgICAgICByZXR1cm4gYXNPYmplY3QoYXNDZWxsKCkpLT5nZXRQcm90b3R5cGUo
dm0sIGdsb2JhbE9iamVjdCk7CisKKyAgICBKU09iamVjdCogcHJvdG90eXBlID0gc3ludGhlc2l6
ZVByb3RvdHlwZShnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CisgICAgcmV0dXJuIHByb3RvdHlwZTsKK30KKwogaW5saW5lIFN0cnVjdHVyZSogSlNW
YWx1ZTo6c3RydWN0dXJlT3JOdWxsKCkgY29uc3QKIHsKICAgICBpZiAoaXNDZWxsKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5jcHAKaW5kZXggMzgxODdhN2U3MzA2NDc5OGViYmFjZjJmYTUzZmM4YzdkY2FhYTk5
OC4uZWEyNWU4Yjg5NDY5YzY5ZTdmMTFiY2MwYTAzMWFlNDczYjE2OTgxYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rp
b25zLmNwcApAQCAtNjkzLDIzICs2OTMsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b0dldHRlcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKLSAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0gICAgaWYgKHRo
aXNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoZ2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUpKTsKLQotICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxKU09iamVjdCo+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmICghdGhpc09iamVjdCkgewotICAg
ICAgICBKU09iamVjdCogcHJvdG90eXBlID0gdGhpc1ZhbHVlLnN5bnRoZXNpemVQcm90b3R5cGUo
Z2xvYmFsT2JqZWN0KTsKLSAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2VwdGlv
bigpID09ICFwcm90b3R5cGUpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCi0g
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocHJvdG90eXBlKTsKLSAgICB9Ci0KLSAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGUo
dm0sIGdsb2JhbE9iamVjdCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1
ZS5nZXRQcm90b3R5cGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cg
Yi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBjZTUzMjlhOGY4N2E2MjE4ODk3NjhjOWQ2ZTdjMjk5
ZTQxMTgxZDgyLi41Y2I4ODdlNDg0YjhkZmNiOWVmMDUwZDdlZTM4YjU4MTQ4MGZjNTRjIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIwLTA1LTI4ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWls
LmNvbT4KKworICAgICAgICBzdXBlciBzaG91bGQgbm90IGRlcGVuZCBvbiBfX3Byb3RvX18KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzk3MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2Ns
YXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0b3IuanM6CisgICAgICAgICogc3Ry
ZXNzL3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qczoKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sOiBNYXJrIDQgdGVzdCBjYXNlcyBhcyBwYXNzaW5nLgorCiAyMDIwLTA1LTI3ICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIGhhc093blByb3BlcnR5
IGluc2lkZSBzdHJ1Y3R1cmUgcHJvcGVydHkgZm9yLWluIGxvb3Agc2hvdWxkIHVzZSBhbiBvcGNv
ZGUgbGlrZSBoYXNfc3RydWN0dXJlX3Byb3BlcnR5IGJ1dCBmb3IgaGFzT3duUHJvcGVydHkKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29u
c3RydWN0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50YXgtZGVyaXZlZC1kZWZhdWx0
LWNvbnN0cnVjdG9yLmpzCmluZGV4IGYwYzQ3N2U1ZjUxODNlZTVmNDgyODQ4MGQ3NWYwMjVjYTI5
ZWYxNmUuLjI0YmQ2NDI5MjVmZjM4Mjk3YjJlMmJiNDVjMmQ5NGI1NWU0ZWM0OTkgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0
b3IuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvY2xhc3Mtc3ludGF4LWRlcml2ZWQtZGVmYXVsdC1j
b25zdHJ1Y3Rvci5qcwpAQCAtMSwzICsxLDQgQEAKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmpl
Y3QucHJvdG90eXBlLCAiX19wcm90b19fIiwge2dldDogdW5kZWZpbmVkfSk7CiAKIHZhciBBID0g
Y2xhc3MgQSB7IH07CiB2YXIgQiA9IGNsYXNzIEIgZXh0ZW5kcyBBIHsgfTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qcyBiL0pTVGVzdHMvc3RyZXNz
L3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qcwppbmRleCA2NTk5NmE3NTk3NTRjZDk1MTdlNmMyNWFl
Yjk1ZDJmNmFjN2ZhNzM2Li42MThhYjNiNmMyNTI5ZmRlODkxZjliZGZmNTRiZDNlNmI1M2EwNTBj
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zdXBlci1wcm9wZXJ0eS1hY2Nlc3MuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3Mvc3VwZXItcHJvcGVydHktYWNjZXNzLmpzCkBAIC0xLDMgKzEsNSBA
QAorT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICJfX3Byb3RvX18iLCB7
Z2V0OiB1bmRlZmluZWR9KTsKKwogZnVuY3Rpb24gYXNzZXJ0KGIsIG0gPSAiQmFkISIpIHsKICAg
ICBpZiAoIWIpIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG0pOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCmluZGV4IDUxMDYyOTYzY2M3Y2ZmYTk4ODQzNDgwZmQ0Nzk4ZTYxNGRiZjY3ZmUu
LmZkMjA5Y2IxOGJlMGNkNTc4NTBiOTFiZjRmMjRjMjBjN2ExNGYzZmEgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWwKQEAgLTMwMTEsMTIgKzMwMTEsNiBAQCB0ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL3ByZWZpeC1pbmNyZW1lbnQvUzExLjQuNF9BNV9UNS5qczoKIHRlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvcHJlZml4LWluY3JlbWVudC9TMTEuNC40X0E2X1QzLmpzOgogICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCiAgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCi10ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL3N1cGVyL2NhbGwtcG9pc29uZWQtdW5kZXJzY29yZS1wcm90by5q
czoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogc2hvdWxkIG5vdCBiZSBjYWxsZWQnCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBzaG91bGQgbm90IGJlIGNhbGxlZCcKLXRlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvc3VwZXIvcHJvcC1wb2lzb25lZC11bmRlcnNjb3JlLXByb3RvLmpz
OgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBzaG91bGQgbm90IGJlIGNhbGxlZCcKLSAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IHNob3VsZCBub3QgYmUgY2FsbGVkJwogdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy95aWVsZC9zdGFyLWl0ZXJhYmxlLmpzOgogICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBGaXJzdCByZXN1bHQgYGRvbmVgIGZsYWcgRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
ZmFsc2XCuywgwqt1bmRlZmluZWTCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IEZpcnN0IHJlc3VsdCBgZG9uZWAgZmxhZyBFeHBlY3RlZCBTYW1lVmFsdWUowqtm
YWxzZcK7LCDCq3VuZGVmaW5lZMK7KSB0byBiZSB0cnVlJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400749</attachid>
            <date>2020-06-01 13:01:32 -0700</date>
            <delta_ts>2020-06-02 01:20:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157972-20200601230130.patch</filename>
            <type>text/plain</type>
            <size>44201</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTI3MzUwNjA0ZWJmODcyOTAzMDYxOGExZmMyNDIxYzUxMTkzMzZmLi41ZjA1YmFkYWUwNGFjYWI4
ZDNmNjM3MWFjNTBmOWJiNTMzN2Q3MjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MyBAQAorMjAyMC0wNi0wMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgc3VwZXIgc2hvdWxkIG5vdCBkZXBlbmQgb24gX19wcm90b19fCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgdGhp
cyBjaGFuZ2UsIGJvdGggc3VwZXIoKSBjYWxsIFsxXSBhbmQgc3VwZXIucHJvcGVydHkgWzJdIHJl
bGllZCBvbgorICAgICAgICBPYmplY3QucHJvdG90eXBlLl9fcHJvdG9fXyB0byBhY3F1aXJlIHN1
cGVyIGJhc2UsIHdoaWNoIHdhcyBvYnNlcnZhYmxlIGFuZAorICAgICAgICBpbmNvcnJlY3QgaWYg
X19wcm90b19fIGdldHMgcmVtb3ZlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMg
T3BHZXRQcm90b3R5cGVPZiBieXRlY29kZSwgZW5zdXJpbmcgcmV0dXJuZWQgdmFsdWVzCisgICAg
ICAgIGFyZSBwcm9maWxlZCBzbyBpdCBjYW4gYmUgd2lyZWQgdG8gZXhpc3RpbmcgREZHIGFuZCBG
VEwgaW1wbGVtZW50YXRpb25zLgorICAgICAgICBUbyBhdm9pZCBwZXJmb3JtYW5jZSByZWdyZXNz
aW9uIHcvbyBERkcgKF9fcHJvdG9fXyBpcyBvcHRpbWl6ZWQgdmlhCisgICAgICAgIEludHJpbnNp
Y0dldHRlckFjY2Vzc0Nhc2UpLCBmYXN0IHBhdGhzIGZvciBMTEludCBhbmQgYmFzZWxpbmUgSklU
IGFyZSBhZGRlZAorICAgICAgICAoNjQtYml0IG9ubHkpLCB1dGlsaXppbmcgT3ZlcnJpZGVzR2V0
UHJvdG90eXBlIG91dCBvZiBsaW5lIHR5cGUgaW5mbyBmbGFnLgorCisgICAgICAgIFRoaXMgY2hh
bmdlIGFsaWducyBKU0Mgd2l0aCBWOCBhbmQgU3BpZGVyTW9ua2V5LCBwcm9ncmVzc2luZyBtaWNy
b2JlbmNobWFya3MvCisgICAgICAgIHN1cGVyLWdldC1ieS17aWQsdmFsfS13aXRoLXRoaXMtbW9u
b21vcnBoaWMuanMgYnkgNy0xMCUuIFNpeFNwZWVkIGlzIG5ldXRyYWwuCisgICAgICAgIEFsc28s
IGV4dHJhY3RzIEpTVmFsdWU6OmdldFByb3RvdHlwZSgpIG1ldGhvZCB0byBhdm9pZCBjb2RlIGR1
cGxpY2F0aW9uLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1n
ZXRzdXBlcmNvbnN0cnVjdG9yIChzdGVwIDUpCisgICAgICAgIFsyXTogaHR0cHM6Ly90YzM5LmVz
L2VjbWEyNjIvI3NlYy1nZXRzdXBlcmJhc2UgKHN0ZXAgNSkKKworICAgICAgICAqIGJ1aWx0aW5z
L0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVn
aXN0cnkuaDoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QucmI6CisgICAgICAgICog
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0Zv
ckJ5dGVjb2RlSW5kZXhJbXBsKToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29k
ZUluZGV4SW1wbCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAg
KEpTQzo6Q29kZUJsb2NrOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYnl0ZWNvZGUvT3Bj
b2RlLmg6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRQcm90b3R5cGVPZik6CisgICAg
ICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVtaXRTdXBlckJhc2VGb3JD
YWxsZWUpOgorICAgICAgICAoSlNDOjplbWl0R2V0U3VwZXJGdW5jdGlvbkZvckNvbnN0cnVjdCk6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfZ2V0
UHJvdG90eXBlT2YpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2lj
R2V0dGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6
CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogaml0L0ludHJpbnNpY0VtaXR0ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRyaW5zaWNH
ZXR0ZXJBY2Nlc3NDYXNlOjpjYW5FbWl0SW50cmluc2ljR2V0dGVyKToKKyAgICAgICAgKiBqaXQv
SklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAg
ICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcyk6CisgICAgICAgICogaml0
L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX2dldF9wcm90b3R5cGVfb2YpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206
CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpT
TE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ0pTVmFs
dWVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmdldFByb3RvdHlwZSBjb25zdCk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChKU0M6Omdsb2JhbEZ1bmNQcm90b0dldHRlcik6CisgICAgICAgICogcnVudGltZS9KU09iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpjYWxjdWxhdGVkQ2xhc3NOYW1lKToKKyAg
ICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRQ
cm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkpTT2JqZWN0OjpjYW5QZXJmb3JtRmFzdFB1dElubGluZUV4Y2x1ZGluZ1Byb3RvKToK
KyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpnZXROb25JbmRleFByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9K
U1Byb3h5Lmg6CisgICAgICAgICogcnVudGltZS9KU1R5cGVJbmZvLmg6CisgICAgICAgIChKU0M6
OlR5cGVJbmZvOjpvdmVycmlkZXNHZXRQcm90b3R5cGUgY29uc3QpOgorICAgICAgICAqIHJ1bnRp
bWUvUHJveHlPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorCiAyMDIw
LTA2LTAxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pT
Q10gSlNWYWx1ZTo6dG9UaGlzIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZThhNzk0ZDkyNGE5NjdiMWFhMWM0MTMzYjA5MWVjMmRhNjRjZGQwMS4uMWJiMTczNmEwZDUz
OWMzN2E0ODNlZDVmOTdjZjZlMjQxY2VjZGY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDIwLTA2LTAxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBzdXBlciBzaG91bGQgbm90IGRlcGVuZCBvbiBfX3Byb3RvX18KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzk3MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVo
YXZpb3IgY2hhbmdlLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6IFNldCBPdmVycmlkZXNHZXRQcm90b3R5
cGUgc3RydWN0dXJlIGZsYWcgZm9yIEN1c3RvbUdldFByb3RvdHlwZSBJREwgYXR0cmlidXRlLgor
CiAyMDIwLTA2LTAxICBUZXRzdWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5j
b20+CiAKICAgICAgICAgSW1wbGVtZW50IFBhcmVudE5vZGUucHJvdG90eXBlLnJlcGxhY2VDaGls
ZHJlbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5O
YW1lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmlu
ZGV4IDJjZjYxOWQyOGRlMzY1NTFjNDBiZTI0MmZiNDk0N2ZmYThiNDJhZTMuLjZjNTQ3YmZhNmMw
ODEzMDgyNWJkYzQ0MzM5ZWJiMTU1YTZmMDQ4NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKQEAgLTY1LDcgKzY1LDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgbWFjcm8oY3JlYXRlKSBcCiAgICAgbWFjcm8oZGVmaW5lUHJvcGVydHkpIFwKICAg
ICBtYWNybyhkZWZhdWx0UHJvbWlzZVRoZW4pIFwKLSAgICBtYWNybyhnZXRQcm90b3R5cGVPZikg
XAogICAgIG1hY3JvKGdldE93blByb3BlcnR5TmFtZXMpIFwKICAgICBtYWNybyhvd25LZXlzKSBc
CiAgICAgbWFjcm8oU2V0KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaAppbmRleCAwOTFkNzhjNjNlYTgx
ZTc2YjIyYmFjYmUzNzMzOWQzMWFiOGQ2N2E5Li45ZTcxMGI4NjFjODkwZTBhOGZlYWJhMGFmYjUy
NmQwNGUyYzVkMTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKQEAgLTQyLDYgKzQyLDcgQEAgZW51
bSBjbGFzcyBMaW5rVGltZUNvbnN0YW50IDogaW50MzJfdDsKICAgICBtYWNybyhhcmd1bWVudENv
dW50KSBcCiAgICAgbWFjcm8oZ2V0QnlJZERpcmVjdCkgXAogICAgIG1hY3JvKGdldEJ5SWREaXJl
Y3RQcml2YXRlKSBcCisgICAgbWFjcm8oZ2V0UHJvdG90eXBlT2YpIFwKICAgICBtYWNybyhnZXRQ
cm9taXNlSW50ZXJuYWxGaWVsZCkgXAogICAgIG1hY3JvKGdldEdlbmVyYXRvckludGVybmFsRmll
bGQpIFwKICAgICBtYWNybyhnZXRBc3luY0dlbmVyYXRvckludGVybmFsRmllbGQpIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCmluZGV4IDBiZDZh
MDdmZmIwZTMxNzk1ZjE0NmJhNDg1NDFhYmM1ZTU4ZTJiZTguLjBlNzRjNmJlMjFkZjhlY2Y2NmEz
NTZhMDhmNWQ5ODRhYjFmNjY1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZUxpc3QucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYgpAQCAtNDk3LDYgKzQ5NywxNSBAQCBvcCA6Z2V0X2J5X2lkX2Rp
cmVjdCwKICAgICAgICAgb2Zmc2V0OiB1bnNpZ25lZCwKICAgICB9CiAKK29wIDpnZXRfcHJvdG90
eXBlX29mLAorICAgIGFyZ3M6IHsKKyAgICAgICAgZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAg
ICAgIHZhbHVlOiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAgfSwKKyAgICBtZXRhZGF0YTogeworICAg
ICAgICBwcm9maWxlOiBWYWx1ZVByb2ZpbGUsCisgICAgfQorCiBvcCA6dHJ5X2dldF9ieV9pZCwK
ICAgICBhcmdzOiB7CiAgICAgICAgIGRzdDogVmlydHVhbFJlZ2lzdGVyLApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKaW5kZXggYTMxOTBm
MmRkNWQzYjZkMmZkYmNlZjhlMDIwZmViM2NmYzc1ODUwNC4uZTZiMmE1ZWQxMWM1MjhlNzVhNzNi
NTdhYzRhNTM3MmU3ODRiNzllYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCkBAIC0yMTMsNiArMjEzLDcgQEAgdm9pZCBjb21wdXRl
VXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKFZpcnR1YWxSZWdpc3RlciBzY29wZVJlZ2lzdGVyLCBj
b25zdCBJbnN0cnUKICAgICBVU0VTKE9wRW51bWVyYXRvclN0cnVjdHVyZVBuYW1lLCBlbnVtZXJh
dG9yLCBpbmRleCkKICAgICBVU0VTKE9wRW51bWVyYXRvckdlbmVyaWNQbmFtZSwgZW51bWVyYXRv
ciwgaW5kZXgpCiAgICAgVVNFUyhPcEdldEJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSkKKyAgICBVU0VT
KE9wR2V0UHJvdG90eXBlT2YsIHZhbHVlKQogICAgIFVTRVMoT3BJbkJ5VmFsLCBiYXNlLCBwcm9w
ZXJ0eSkKICAgICBVU0VTKE9wT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIGNvbnN0cnVjdG9yLCBoYXNJ
bnN0YW5jZVZhbHVlKQogICAgIFVTRVMoT3BJbnN0YW5jZW9mLCB2YWx1ZSwgcHJvdG90eXBlKQpA
QCAtNDI4LDYgKzQyOSw3IEBAIHZvaWQgY29tcHV0ZURlZnNGb3JCeXRlY29kZUluZGV4SW1wbCh1
bnNpZ25lZCBudW1WYXJzLCBjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1CiAgICAgREVGUyhPcElu
c3RhbmNlb2YsIGRzdCkKICAgICBERUZTKE9wSW5zdGFuY2VvZkN1c3RvbSwgZHN0KQogICAgIERF
RlMoT3BHZXRCeVZhbCwgZHN0KQorICAgIERFRlMoT3BHZXRQcm90b3R5cGVPZiwgZHN0KQogICAg
IERFRlMoT3BUeXBlb2YsIGRzdCkKICAgICBERUZTKE9wSWRlbnRpdHlXaXRoUHJvZmlsZSwgc3Jj
RHN0KQogICAgIERFRlMoT3BJc0VtcHR5LCBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDVhOTM4NDA3MzE2NjA3ZDJmMTZlZTZkNmYwN2Mx
NjQ1YmNjNTc4ZjUuLmZlZGY5NmMxNTYwMGVhNzU3ZTVlMmJlMTM3NDFhNzM2ZGU5MzEzNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC01MTQs
NiArNTE0LDcgQEAgYm9vbCBDb2RlQmxvY2s6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgU2NyaXB0
RXhlY3V0YWJsZSogb3duZXJFeGVjdXRhYmxlLCBVbmxpbmsKICAgICAgICAgTElOSyhPcFRyeUdl
dEJ5SWQsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BHZXRCeUlkRGlyZWN0LCBwcm9maWxlKQog
ICAgICAgICBMSU5LKE9wR2V0QnlWYWxXaXRoVGhpcywgcHJvZmlsZSkKKyAgICAgICAgTElOSyhP
cEdldFByb3RvdHlwZU9mLCBwcm9maWxlKQogICAgICAgICBMSU5LKE9wR2V0RnJvbUFyZ3VtZW50
cywgcHJvZmlsZSkKICAgICAgICAgTElOSyhPcFRvTnVtYmVyLCBwcm9maWxlKQogICAgICAgICBM
SU5LKE9wVG9OdW1lcmljLCBwcm9maWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL09wY29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09w
Y29kZS5oCmluZGV4IGFhODg1OWFkZDYyODYwZmZkYWRiNGQyMjI4N2MzNGIwN2NlNWIzMzQuLmE5
MGRjNDM2NGM5MGRkOTVkMTlhN2RiMzQyMzIxMmQ2MDE0NWUwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIGJpdFdpZHRoRm9yTWF4T3Bjb2RlTGVuZ3RoID0gV1RGOjpnZXRNU0JTZXRD
b25zdGV4cHIobQogICAgIG1hY3JvKE9wVHJ5R2V0QnlJZCkgXAogICAgIG1hY3JvKE9wR2V0QnlJ
ZERpcmVjdCkgXAogICAgIG1hY3JvKE9wR2V0QnlWYWxXaXRoVGhpcykgXAorICAgIG1hY3JvKE9w
R2V0UHJvdG90eXBlT2YpIFwKICAgICBtYWNybyhPcEdldEZyb21Bcmd1bWVudHMpIFwKICAgICBt
YWNybyhPcFRvTnVtYmVyKSBcCiAgICAgbWFjcm8oT3BUb051bWVyaWMpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHAKaW5kZXggZmRiZTM5YjRkNWM0YjI4NTIxMTU2MDEzZDVhZjg1YjYxNzgyYzIwYy4uYjFmZjZl
MzU4YTM2NjcxZDk4NzkxNDkzNzNjZjI3MmNiNzJjNWZjYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAg
LTI2ODEsNiArMjY4MSwxMiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdl
dEJ5VmFsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUgogICAgIHJldHVybiBk
c3Q7CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0UHJvdG90eXBl
T2YoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZSkKK3sKKyAgICBPcEdldFByb3Rv
dHlwZU9mOjplbWl0KHRoaXMsIGRzdCwgdmFsdWUpOworICAgIHJldHVybiBkc3Q7Cit9CisKIFJl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHV0QnlWYWwoUmVnaXN0ZXJJRCogYmFz
ZSwgUmVnaXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKQogewogICAgIE9wUHV0
QnlWYWw6OmVtaXQodGhpcywgYmFzZSwgcHJvcGVydHksIHZhbHVlLCBlY21hTW9kZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaAppbmRleCA3Mjg2NDkwNjk5YzdlNjc1NWQwODQzZTY5YjRiZDFhZDE5Yjg2YjM5Li44
ZmUyYjE0MzQ4NDBhYTM3ZDIyZmQ0ZTg1YmRkZDA4ZGZhYjkyYjBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBA
IC04MTEsNiArODExLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXREZWxldGVCeUlkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRl
bnRpZmllciYpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0QnlWYWwoUmVnaXN0ZXJJRCog
ZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSk7CiAgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRHZXRCeVZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2Us
IFJlZ2lzdGVySUQqIHRoaXNWYWx1ZSwgUmVnaXN0ZXJJRCogcHJvcGVydHkpOworICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0R2V0UHJvdG90eXBlT2YoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRQdXRCeVZhbChSZWdpc3RlcklEKiBi
YXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpOwogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0UHV0QnlWYWwoUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogdGhp
c1ZhbHVlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpOwogICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0RGlyZWN0UHV0QnlWYWwoUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0
ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCA0NDFmYTI0ZWNj
OGMxOGQyMzJlNGI5NGFlNTRlOWJiNGVmNTZmZDlhLi4xZGM3ZGVjZGM2YTY0ZDkyM2ExN2QxY2Nm
ZjczZGIyOGE4NTdiZDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xOTMsMTcgKzE5MywxNyBAQCBzdGF0aWMgUmVn
aXN0ZXJJRCogZW1pdEhvbWVPYmplY3RGb3JDYWxsZWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVy
YXRvcikKIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3VwZXJCYXNlRm9yQ2FsbGVlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IpCiB7CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGhvbWVPYmpl
Y3QgPSBlbWl0SG9tZU9iamVjdEZvckNhbGxlZShnZW5lcmF0b3IpOwotICAgIHJldHVybiBnZW5l
cmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBob21lT2JqZWN0Lmdl
dCgpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLnVuZGVyc2NvcmVQcm90byk7CisgICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0R2V0UHJvdG90eXBlT2YoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgp
LCBob21lT2JqZWN0LmdldCgpKTsKIH0KIAogc3RhdGljIFJlZ2lzdGVySUQqIGVtaXRHZXRTdXBl
ckZ1bmN0aW9uRm9yQ29uc3RydWN0KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCiB7CiAg
ICAgaWYgKGdlbmVyYXRvci5pc0Rlcml2ZWRDb25zdHJ1Y3RvckNvbnRleHQoKSkKLSAgICAgICAg
cmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGdl
bmVyYXRvci5lbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNh
bEVudmlyb25tZW50KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5kZXJzY29yZVByb3Rv
KTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0UHJvdG90eXBlT2YoZ2VuZXJhdG9y
Lm5ld1RlbXBvcmFyeSgpLCBnZW5lcmF0b3IuZW1pdExvYWREZXJpdmVkQ29uc3RydWN0b3JGcm9t
QXJyb3dGdW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCgpKTsKIAogICAgIFJlZ2lzdGVySUQgY2Fs
bGVlOwogICAgIGNhbGxlZS5zZXRJbmRleChDYWxsRnJhbWVTbG90OjpjYWxsZWUpOwotICAgIHJl
dHVybiBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAmY2Fs
bGVlLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLnVuZGVyc2NvcmVQcm90byk7CisgICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0R2V0UHJvdG90eXBlT2YoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgp
LCAmY2FsbGVlKTsKIH0KIAogUmVnaXN0ZXJJRCogU3VwZXJOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQpAQCAtMTA3OSw2ICsx
MDc5LDE0IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5z
aWNfZ2V0QnlJZERpcmVjdFByaXZhdGUoQnl0ZWNvZGVHCiAgICAgcmV0dXJuIGdlbmVyYXRvci5l
bWl0RGlyZWN0R2V0QnlJZChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdl
dCgpLCBnZW5lcmF0b3IucGFyc2VyQXJlbmEoKS5pZGVudGlmaWVyQXJlbmEoKS5tYWtlSWRlbnRp
ZmllcihnZW5lcmF0b3Iudm0oKSwgc3ltYm9sKSk7CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2Rl
SW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfZ2V0UHJvdG90eXBlT2YoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIEFyZ3VtZW50TGlzdE5v
ZGUqIG5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHZh
bHVlID0gZ2VuZXJhdG9yLmVtaXROb2RlKG5vZGUpOworICAgIEFTU0VSVCghbm9kZS0+bV9uZXh0
KTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihnZW5lcmF0b3IuZmlu
YWxEZXN0aW5hdGlvbihkc3QpLCB2YWx1ZS5nZXQoKSk7Cit9CisKIHN0YXRpYyBKU1Byb21pc2U6
OkZpZWxkIHByb21pc2VJbnRlcm5hbEZpZWxkSW5kZXgoQnl0ZWNvZGVJbnRyaW5zaWNOb2RlKiBu
b2RlKQogewogICAgIEFTU0VSVChub2RlLT5lbnRyeSgpLnR5cGUoKSA9PSBCeXRlY29kZUludHJp
bnNpY1JlZ2lzdHJ5OjpUeXBlOjpFbWl0dGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCA3MzY2
Y2YxY2JhMTViZTNiMjVkYzcwNmIwNGE4ZjdmYWUzNjZkOGYyLi5hNTRjMmUwZGM2NTc4NmEzZjI0
ODJmYzk5ZmJlODZjYjY2MDEzNWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0zNjk4LDkgKzM2
OTgsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVj
dXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgYm9vbCBjYW5Gb2xk
ID0gIXZhbHVlLm1fc3RydWN0dXJlLmlzQ2xlYXIoKTsKICAgICAgICAgICAgIEpTVmFsdWUgcHJv
dG90eXBlOwogICAgICAgICAgICAgdmFsdWUubV9zdHJ1Y3R1cmUuZm9yRWFjaChbJl0gKFJlZ2lz
dGVyZWRTdHJ1Y3R1cmUgc3RydWN0dXJlKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBnZXRQcm90
b3R5cGVNZXRob2QgPSBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5tZXRob2RUYWJsZS5nZXRQcm90
b3R5cGU7Ci0gICAgICAgICAgICAgICAgTWV0aG9kVGFibGU6OkdldFByb3RvdHlwZUZ1bmN0aW9u
UHRyIGRlZmF1bHRHZXRQcm90b3R5cGUgPSBKU09iamVjdDo6Z2V0UHJvdG90eXBlOwotICAgICAg
ICAgICAgICAgIGlmIChnZXRQcm90b3R5cGVNZXRob2QgIT0gZGVmYXVsdEdldFByb3RvdHlwZSkg
eworICAgICAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0
UHJvdG90eXBlKCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FuRm9sZCA9IGZhbHNlOwogICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA3NzkxY2E2MTk0
ZDhlZDg3ZDNkZGE2NDdiYWFmYmY1ZDNjYWMyZWY2Li5jNWViNjZlOGM4ZmM3NjdmYmQ4MjYyZDhi
NmU0OTgxMjM0MTc0Y2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcApAQCAtMzgxNyw5ICszODE3LDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNl
cjo6aGFuZGxlSW50cmluc2ljR2V0dGVyKE9wZXJhbmQgcmVzdWx0LCBTcGVjdWxhdGVkVHlwZSBw
cmVkaWMKICAgICAgICAgYm9vbCBjYW5Gb2xkID0gIXZhcmlhbnQuc3RydWN0dXJlU2V0KCkuaXNF
bXB0eSgpOwogICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZTsKICAgICAgICAgdmFyaWFudC5zdHJ1
Y3R1cmVTZXQoKS5mb3JFYWNoKFsmXSAoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpIHsKLSAgICAgICAg
ICAgIGF1dG8gZ2V0UHJvdG90eXBlTWV0aG9kID0gc3RydWN0dXJlLT5jbGFzc0luZm8oKS0+bWV0
aG9kVGFibGUuZ2V0UHJvdG90eXBlOwotICAgICAgICAgICAgTWV0aG9kVGFibGU6OkdldFByb3Rv
dHlwZUZ1bmN0aW9uUHRyIGRlZmF1bHRHZXRQcm90b3R5cGUgPSBKU09iamVjdDo6Z2V0UHJvdG90
eXBlOwotICAgICAgICAgICAgaWYgKGdldFByb3RvdHlwZU1ldGhvZCAhPSBkZWZhdWx0R2V0UHJv
dG90eXBlKSB7CisgICAgICAgICAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRl
c0dldFByb3RvdHlwZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FuRm9sZCA9IGZhbHNlOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTYwODksNiArNjA4NywxMyBA
QCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogCiAgICAg
ICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfYnlfaWRfd2l0aF90aGlzKTsKICAgICAgICAgfQor
CisgICAgICAgIGNhc2Ugb3BfZ2V0X3Byb3RvdHlwZV9vZjogeworICAgICAgICAgICAgYXV0byBi
eXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRQcm90b3R5cGVPZj4oKTsKKyAg
ICAgICAgICAgIHNldChieXRlY29kZS5tX2RzdCwgYWRkVG9HcmFwaChHZXRQcm90b3R5cGVPZiwg
T3BJbmZvKDApLCBPcEluZm8oZ2V0UHJlZGljdGlvbigpKSwgZ2V0KGJ5dGVjb2RlLm1fdmFsdWUp
KSk7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfcHJvdG90eXBlX29mKTsKKyAgICAg
ICAgfQorCiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7CiAgICAgICAgICAgICBhdXRvIGJ5
dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcFB1dEJ5SWQ+KCk7CiAgICAgICAgICAg
ICBOb2RlKiB2YWx1ZSA9IGdldChieXRlY29kZS5tX3ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBhMWFlM2UzYzlmY2UxNjg4M2Ey
ODBjODE2OWU0ZmJiYjE2OWE3NjExLi43ZWEyYWM1NDBhOWZjNzgwMTE1MDgyZWM5ZjQ5OGZmNjY4
YTI1YWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxp
dGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMu
Y3BwCkBAIC0xNzQsNiArMTc0LDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChP
cGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IEkKICAgICBjYXNl
IG9wX2dldF9ieV9pZF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWRfZGlyZWN0Ogog
ICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbF93aXRoX3RoaXM6CisgICAgY2FzZSBvcF9nZXRfcHJvdG90
eXBlX29mOgogICAgIGNhc2Ugb3BfcHV0X2J5X2lkOgogICAgIGNhc2Ugb3BfcHV0X2J5X2lkX3dp
dGhfdGhpczoKICAgICBjYXNlIG9wX3B1dF9ieV92YWxfd2l0aF90aGlzOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggZGRkYzYzMzIyYTM5ODFmNDc1
ZWUyMmZmNjRmOTg4ODYzN2U2OWZkOC4uMzk3N2RjZDFjMDI4MzIwZjYyY2IxOTVjZjU5OTk2ZTEw
MTA2Y2Q2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CkBAIC0zMjY4LDIyICszMjY4LDggQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0KLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0g
ICAgaWYgKHRoaXNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoZ2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUpKTsKLQotICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNE
eW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmICghdGhpc09iamVj
dCkgewotICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0gdGhpc1ZhbHVlLnN5bnRoZXNpemVQ
cm90b3R5cGUoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3Bl
LmV4Y2VwdGlvbigpID09ICFwcm90b3R5cGUpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIXByb3Rv
dHlwZSkpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0g
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvdG90eXBlKTsKLSAgICB9Ci0KLSAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQ
cm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCkpKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2YWx1
ZS5nZXRQcm90b3R5cGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0
YW5jZSogZGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmlu
c2ljRW1pdHRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ludHJpbnNpY0VtaXR0
ZXIuY3BwCmluZGV4IGZhMDI5MmJhMWRiNjZjMjc0N2RiNGI5ZmU3OTE4NjUwZDgxZDZhYmUuLmNm
MTIxOGFmOWU3OTM0MmNmNTYyYzRlMDRjY2E3YWJhYmQ1NGVhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcApAQCAtNjEsOSArNjEsNyBAQCBi
b29sIEludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2U6OmNhbkVtaXRJbnRyaW5zaWNHZXR0ZXIoSlNG
dW5jdGlvbiogZ2V0dGVyLCBTdHJ1YwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAg
Y2FzZSBVbmRlcnNjb3JlUHJvdG9JbnRyaW5zaWM6IHsKLSAgICAgICAgYXV0byBnZXRQcm90b3R5
cGVNZXRob2QgPSBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5tZXRob2RUYWJsZS5nZXRQcm90b3R5
cGU7Ci0gICAgICAgIE1ldGhvZFRhYmxlOjpHZXRQcm90b3R5cGVGdW5jdGlvblB0ciBkZWZhdWx0
R2V0UHJvdG90eXBlID0gSlNPYmplY3Q6OmdldFByb3RvdHlwZTsKLSAgICAgICAgcmV0dXJuIGdl
dFByb3RvdHlwZU1ldGhvZCA9PSBkZWZhdWx0R2V0UHJvdG90eXBlOworICAgICAgICByZXR1cm4g
IXN0cnVjdHVyZS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRQcm90b3R5cGUoKTsKICAgICB9CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCmluZGV4IDI2NDg1NGM2NjVlY2RmZGIwZDljZTFlNGIwN2Y3ZTNjYmRmYmMyNzAuLmMyNGE3
MmEyN2ViOTA1MzdkNWY4MGZjNGE1YTkzM2M1ZDZhN2MwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAKQEAgLTMxNyw2ICszMTcsOSBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWlu
UGFzcygpCiAgICAgICAgIERFRklORV9TTE9XX09QKGNyZWF0ZV9hc3luY19nZW5lcmF0b3IpCiAg
ICAgICAgIERFRklORV9TTE9XX09QKG5ld19nZW5lcmF0b3IpCiAgICAgICAgIERFRklORV9TTE9X
X09QKHBvdykKKyNpZiAhVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgREVGSU5FX1NMT1dfT1AoZ2V0
X3Byb3RvdHlwZV9vZikKKyNlbmRpZgogCiAgICAgICAgIERFRklORV9PUChvcF9hZGQpCiAgICAg
ICAgIERFRklORV9PUChvcF9iaXRub3QpCkBAIC0zNTYsNiArMzU5LDcgQEAgdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X2lkX3dp
dGhfdGhpcykKICAgICAgICAgREVGSU5FX09QKG9wX2dldF9ieV9pZF9kaXJlY3QpCiAgICAgICAg
IERFRklORV9PUChvcF9nZXRfYnlfdmFsKQorICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X3Byb3Rv
dHlwZV9vZikKICAgICAgICAgREVGSU5FX09QKG9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UpCiAg
ICAgICAgIERFRklORV9PUChvcF9pbnN0YW5jZW9mKQogICAgICAgICBERUZJTkVfT1Aob3BfaW5z
dGFuY2VvZl9jdXN0b20pCkBAIC02MTcsNiArNjIxLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21w
aWxlU2xvd0Nhc2VzKCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX1NMT1dfT1Aoc3RyaWN0ZXEp
CiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKG5zdHJpY3RlcSkKICAgICAgICAgREVG
SU5FX1NMT1dDQVNFX1NMT1dfT1AoZ2V0X2RpcmVjdF9wbmFtZSkKKyAgICAgICAgREVGSU5FX1NM
T1dDQVNFX1NMT1dfT1AoZ2V0X3Byb3RvdHlwZV9vZikKICAgICAgICAgREVGSU5FX1NMT1dDQVNF
X1NMT1dfT1AoaGFzX3N0cnVjdHVyZV9wcm9wZXJ0eSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNF
X1NMT1dfT1AoaGFzX293bl9zdHJ1Y3R1cmVfcHJvcGVydHkpCiAgICAgICAgIERFRklORV9TTE9X
Q0FTRV9TTE9XX09QKGluX3N0cnVjdHVyZV9wcm9wZXJ0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
CmluZGV4IDQwMGVlNjM0ZDMxYjcxN2Q5OTdjMWJjMjg0YmMwOGJlMTMzOTQ5NzkuLjAwYWNkYTBl
MGI3ZjM4MTVjNjhkZWJmYjM0MmI0MWFmM2Y4NjI4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
aApAQCAtNTIxLDYgKzUyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRf
b3BfZ2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVt
aXRfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfZ2V0X2FyZ3VtZW50X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lk
IGVtaXRfb3BfZ2V0X3Byb3RvdHlwZV9vZihjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2
b2lkIGVtaXRfb3BfaW5fYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBl
bWl0X29wX2luaXRfbGF6eV9yZWcoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBl
bWl0X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDlkM2Q5MTdhMDM2ZTFjMTEy
YzRkZGU1MjNiMDQzZjU4YjZkMWFhNGMuLjA5OTU1MDNjODE2MDIyN2Y5YzM0MjBlZDcyZjRhOWYy
Nzg0ZWRlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAt
MTUyNSw2ICsxNTI1LDI2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9kaXJlY3RfcG5hbWUoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0UHV0VmlydHVhbFJl
Z2lzdGVyKGRzdCwgcmVnVDApOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcHJvdG90eXBl
X29mKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgYXV0byBi
eXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRQcm90b3R5cGVPZj4oKTsKKyAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJ5dGVjb2RlLm1fdmFsdWUsIHJlZ1QwKTsKKworICAg
IGFkZFNsb3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMCkpOworICAgIGFkZFNsb3dDYXNlKGJy
YW5jaElmTm90T2JqZWN0KHJlZ1QwKSk7CisKKyAgICBlbWl0TG9hZFN0cnVjdHVyZSh2bSgpLCBy
ZWdUMCwgcmVnVDIsIHJlZ1QxKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0MzIoTm9uWmVy
bywgQWRkcmVzcyhyZWdUMiwgU3RydWN0dXJlOjpvdXRPZkxpbmVUeXBlRmxhZ3NPZmZzZXQoKSks
IFRydXN0ZWRJbW0zMihPdmVycmlkZXNHZXRQcm90b3R5cGUgPj4gOCkpKTsKKworICAgIGxvYWQ2
NChBZGRyZXNzKHJlZ1QyLCBTdHJ1Y3R1cmU6OnByb3RvdHlwZU9mZnNldCgpKSwgcmVnVDIpOwor
ICAgIEp1bXAgaGFzTW9ub1Byb3RvID0gYnJhbmNoVGVzdDY0KE5vblplcm8sIHJlZ1QyKTsKKyAg
ICBsb2FkNjQoQWRkcmVzcyhyZWdUMCwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2Uoa25vd25Qb2x5UHJv
dG9PZmZzZXQpKSwgcmVnVDIpOworICAgIGhhc01vbm9Qcm90by5saW5rKHRoaXMpOworCisgICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwor
ICAgIGVtaXRTdG9yZUNlbGwoYnl0ZWNvZGUubV9kc3QsIHJlZ1QyKTsKK30KKwogdm9pZCBKSVQ6
OmVtaXRfb3BfZW51bWVyYXRvcl9zdHJ1Y3R1cmVfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0
aW9uLT5hczxPcEVudW1lcmF0b3JTdHJ1Y3R1cmVQbmFtZT4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCA0YWI4MmE0
ZjFmYmIwOWJhYzMyYjg2ZWQxNzE2MTc2YjliNDc1OTI5Li41NjA5NWJmZjYxYmY0MjA0N2FmYTBj
NTllMjQ2MTc3NWQxYzBjMThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC01NjcsNiArNTY3LDcgQEAgY29uc3QgSGFz
aEZsYWdzOEJpdEJ1ZmZlciA9IGNvbnN0ZXhwciBTdHJpbmdJbXBsOjpzX2hhc2hGbGFnOEJpdEJ1
ZmZlcgogCiAjIENvcGllZCBmcm9tIFByb3BlcnR5T2Zmc2V0LmgKIGNvbnN0IGZpcnN0T3V0T2ZM
aW5lT2Zmc2V0ID0gY29uc3RleHByIGZpcnN0T3V0T2ZMaW5lT2Zmc2V0Citjb25zdCBrbm93blBv
bHlQcm90b09mZnNldCA9IGNvbnN0ZXhwciBrbm93blBvbHlQcm90b09mZnNldAogCiAjIFJlc29s
dmVUeXBlCiBjb25zdCBHbG9iYWxQcm9wZXJ0eSA9IGNvbnN0ZXhwciBHbG9iYWxQcm9wZXJ0eQpA
QCAtMTc3NCw2ICsxNzc1LDcgQEAgaWYgbm90IEpTVkFMVUU2NAogICAgIHNsb3dQYXRoT3AoaGFz
X3N0cnVjdHVyZV9wcm9wZXJ0eSkKICAgICBzbG93UGF0aE9wKGhhc19vd25fc3RydWN0dXJlX3By
b3BlcnR5KQogICAgIHNsb3dQYXRoT3AoaW5fc3RydWN0dXJlX3Byb3BlcnR5KQorICAgIHNsb3dQ
YXRoT3AoZ2V0X3Byb3RvdHlwZV9vZikKIGVuZAogCiBzbG93UGF0aE9wKGluX2J5X2lkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2
NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQppbmRleCA0ZTVhOGMyYjlkN2E2YmE1NmQyOTZlYjgyNTQ5MTEyYTIwNDk1YjVmLi5kNmIw
Njg0OTQ1YzE1MzA3MzlhMWVmMmQ3NWJiYjFhMDZkODA2NTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMTQ4
MSw2ICsxNDgxLDMyIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkLCBPcEdldEJ5
SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0CiBlbmQpCiAKIAorbGxpbnRP
cFdpdGhQcm9maWxlKG9wX2dldF9wcm90b3R5cGVfb2YsIE9wR2V0UHJvdG90eXBlT2YsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgZ2V0KG1fdmFsdWUsIHQxKQorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQorCisgICAgYnRxbnogdDAsIG5v
dENlbGxNYXNrLCAub3BHZXRQcm90b3R5cGVPZlNsb3cKKyAgICBiYmIgSlNDZWxsOjptX3R5cGVb
dDBdLCBPYmplY3RUeXBlLCAub3BHZXRQcm90b3R5cGVPZlNsb3cKKworICAgIGxvYWRTdHJ1Y3R1
cmVXaXRoU2NyYXRjaCh0MCwgdDIsIHQxLCB0MykKKyAgICBjb25zdCBPdmVycmlkZXNHZXRQcm90
b3R5cGUgPSAweDQwMCAjICgxIDw8IDE4KSA+PiA4CisgICAgYnRpbnogU3RydWN0dXJlOjptX291
dE9mTGluZVR5cGVGbGFnc1t0Ml0sIE92ZXJyaWRlc0dldFByb3RvdHlwZSwgLm9wR2V0UHJvdG90
eXBlT2ZTbG93CisKKyAgICBsb2FkcSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlW3QyXSwgdDIKKyAg
ICBidHF6IHQyLCAub3BHZXRQcm90b3R5cGVPZlBvbHlQcm90bworICAgIHJldHVybih0MikKKwor
Lm9wR2V0UHJvdG90eXBlT2ZTbG93OgorICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2dldF9w
cm90b3R5cGVfb2YpCisgICAgZGlzcGF0Y2goKQorCisub3BHZXRQcm90b3R5cGVPZlBvbHlQcm90
bzoKKyAgICBsb2FkaSBrbm93blBvbHlQcm90b09mZnNldCwgdDEKKyAgICBsb2FkUHJvcGVydHlB
dFZhcmlhYmxlT2Zmc2V0KHQxLCB0MCwgdDMpCisgICAgcmV0dXJuKHQzKQorZW5kKQorCisKIGxs
aW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1dEJ5SWQsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQogICAgIGdldChtX2Jhc2UsIHQzKQogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQzLCB0MCwgLm9wUHV0QnlJZFNsb3cp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0
aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNw
cAppbmRleCAzMDM0NGMxMjBlMmRiMzczYzNlMDRkNGI2Zjg2OGI3NTY4MDIwOGI5Li40MDY0OGYx
NTQ4YTg5ODJhOTI3YzMxNTY3ODIyNjdlNzI3ZDcyMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTEzMzMsNiArMTMzMywx
NCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2J5X3ZhbF93aXRoX3RoaXMpCiAgICAg
UkVUVVJOX1BST0ZJTEVEKGJhc2VWYWx1ZS5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eSwgc2xv
dCkpOwogfQogCitTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X3Byb3RvdHlwZV9vZikKK3sK
KyAgICBCRUdJTigpOworICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BHZXRQcm90b3R5cGVP
Zj4oKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gR0VUX0MoYnl0ZWNvZGUubV92YWx1ZSkuanNWYWx1
ZSgpOworICAgIFJFVFVSTl9QUk9GSUxFRCh2YWx1ZS5nZXRQcm90b3R5cGUoZ2xvYmFsT2JqZWN0
KSk7Cit9CisKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWRfd2l0aF90aGlzKQog
ewogICAgIEJFR0lOKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
blNsb3dQYXRocy5oCmluZGV4IGJlMzc0YTBlNjI2ZjJkZjgzMzBiYWM0OTIzODk2MDgxYzRhYTQz
OWQuLmVjMDQ1MmIyZWM2ZWU4NjMyZGUzNjRiMGI5Njc3YzZmMDIzZmY0MzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCkBAIC0yNzUsNiAr
Mjc1LDcgQEAgU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jcmVhdGVfYXN5bmNfZ2Vu
ZXJhdG9yKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY3JlYXRlX3Jlc3QpOwog
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWRfd2l0aF90aGlzKTsKIFNM
T1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X3ZhbF93aXRoX3RoaXMpOworU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfcHJvdG90eXBlX29mKTsKIFNMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X2J5X2lkX3dpdGhfdGhpcyk7CiBTTE9XX1BBVEhf
SElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF9ieV92YWxfd2l0aF90aGlzKTsKIFNMT1dfUEFUSF9I
SURERU5fREVDTChzbG93X3BhdGhfZGVmaW5lX2RhdGFfcHJvcGVydHkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmluZGV4IGNjMmNjMTBhMWVhODc4NmRlM2Fj
YjVjNzE2NDMxNzlhNWM5ZjcyOGUuLjA4MTQ5NmI3N2M4ZTY1MDg1MmM4ZjdjOTg5ZGUxNTRmOWE1
MzA0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFs
dWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKQEAg
LTMyMSw2ICszMjEsNyBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBwdXRU
b1ByaW1pdGl2ZUJ5SW5kZXgoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwogICAgIGJvb2wgcHV0QnlJbmRleChKU0dsb2Jh
bE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJv
dyk7CiAKKyAgICBKU1ZhbHVlIGdldFByb3RvdHlwZShKU0dsb2JhbE9iamVjdCopIGNvbnN0Owog
ICAgIEpTVmFsdWUgdG9UaGlzKEpTR2xvYmFsT2JqZWN0KiwgRUNNQU1vZGUpIGNvbnN0OwogCiAg
ICAgc3RhdGljIGJvb2wgZXF1YWwoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHYxLCBKU1ZhbHVl
IHYyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFs
dWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5s
aW5lcy5oCmluZGV4IDAxMWQ1OGJkNTc0NDg2ODBlNTRjMzhmYTdkNjNmMWY1Zjc3MTcxMjMuLjlk
NzZkM2U0M2FkZDUxNmRmZTU0YzE1MWZmOTZkZGYwZmJhMGJkNzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApAQCAtMTA4MSw2ICsx
MDgxLDE4IEBAIGlubGluZSBib29sIEpTVmFsdWU6OnB1dEJ5SW5kZXgoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgdW5zaWduZWQgcHJvcGVydHlOCiAgICAgcmV0dXJuIGFzQ2VsbCgpLT5t
ZXRob2RUYWJsZShnZXRWTShnbG9iYWxPYmplY3QpKS0+cHV0QnlJbmRleChhc0NlbGwoKSwgZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKK0FMV0FZ
U19JTkxJTkUgSlNWYWx1ZSBKU1ZhbHVlOjpnZXRQcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkgY29uc3QKK3sKKyAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoaXNPYmpl
Y3QoKSkKKyAgICAgICAgcmV0dXJuIGFzT2JqZWN0KGFzQ2VsbCgpKS0+Z2V0UHJvdG90eXBlKHZt
LCBnbG9iYWxPYmplY3QpOworCisgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IHN5bnRoZXNpemVQ
cm90b3R5cGUoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOworICAgIHJldHVybiBwcm90b3R5cGU7Cit9CisKIGlubGluZSBTdHJ1Y3R1cmUqIEpTVmFs
dWU6OnN0cnVjdHVyZU9yTnVsbCgpIGNvbnN0CiB7CiAgICAgaWYgKGlzQ2VsbCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5j
dGlvbnMuY3BwCmluZGV4IDM4MTg3YTdlNzMwNjQ3OThlYmJhY2YyZmE1M2ZjOGM3ZGNhYWE5OTgu
LmVhMjVlOGI4OTQ2OWM2OWU3ZjExYmNjMGEwMzFhZTQ3M2IxNjk4MWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5jcHAKQEAgLTY5MywyMyArNjkzLDggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBn
bG9iYWxGdW5jTWFrZVR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKIAogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9HZXR0ZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7Ci0gICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlzVmFsdWUo
KS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpOwotICAgIGlmICh0aGlz
VmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVOb3RBbk9iamVjdEVycm9yKGdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlKSk7Ci0KLSAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKLSAgICBpZiAoIXRoaXNPYmplY3QpIHsKLSAgICAg
ICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IHRoaXNWYWx1ZS5zeW50aGVzaXplUHJvdG90eXBlKGds
b2JhbE9iamVjdCk7Ci0gICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoISFzY29wZS5leGNlcHRpb24o
KSA9PSAhcHJvdG90eXBlKTsKLSAgICAgICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQotICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3RvdHlwZSk7Ci0gICAgfQotCi0gICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVjdC0+Z2V0UHJvdG90eXBlKHZt
LCBnbG9iYWxPYmplY3QpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUu
Z2V0UHJvdG90eXBlKGdsb2JhbE9iamVjdCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdsb2JhbEZ1bmNQcm90b1NldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmNwcAppbmRleCAwMTQzMzNhYjhkNzI5ZjRkMjczOTAyMzBkMTQzMjNkYzI5NzExNzcy
Li43OTRhYjEyMGVhZjNjZDEyZmE4ZGVkYmVhNjUzZGU0OTIxYTVkYjQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC01NTQsOCArNTU0LDcgQEAgU3Ry
aW5nIEpTT2JqZWN0OjpjYWxjdWxhdGVkQ2xhc3NOYW1lKEpTT2JqZWN0KiBvYmplY3QpCiAgICAg
Ly8gR2V0IHRoZSBkaXNwbGF5IG5hbWUgb2Ygb2JqLl9fcHJvdG9fXy5jb25zdHJ1Y3Rvci4KICAg
ICAvLyBUaGlzIGlzIHVzZWZ1bCB0byBnZXQgYEZvb2AgZm9yIGEgYG5ldyBGb29gIG9iamVjdC4K
ICAgICBpZiAoY29uc3RydWN0b3JGdW5jdGlvbk5hbWUuaXNOdWxsKCkpIHsKLSAgICAgICAgTWV0
aG9kVGFibGU6OkdldFByb3RvdHlwZUZ1bmN0aW9uUHRyIGRlZmF1bHRHZXRQcm90b3R5cGUgPSBK
U09iamVjdDo6Z2V0UHJvdG90eXBlOwotICAgICAgICBpZiAoTElLRUxZKHN0cnVjdHVyZS0+Y2xh
c3NJbmZvKCktPm1ldGhvZFRhYmxlLmdldFByb3RvdHlwZSA9PSBkZWZhdWx0R2V0UHJvdG90eXBl
KSkgeworICAgICAgICBpZiAoTElLRUxZKCFzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkub3ZlcnJpZGVz
R2V0UHJvdG90eXBlKCkpKSB7CiAgICAgICAgICAgICBKU1ZhbHVlIHByb3RvVmFsdWUgPSBvYmpl
Y3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSk7CiAgICAgICAgICAgICBpZiAocHJvdG9WYWx1ZS5p
c09iamVjdCgpKSB7CiAgICAgICAgICAgICAgICAgSlNPYmplY3QqIHByb3RvT2JqZWN0ID0gYXNP
YmplY3QocHJvdG9WYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAppbmRleCAyZmQ2ZDk3NDlkMWM2YmMwMjVlM2Y0YWY0ZDQxZjc4NGM0ODkzZDU2Li4zODExMjk0
MTNjYWJkNmY3Y2ZjNzViMzVhMmFmYjg4ZjMyMzVlMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEzNTMsMTEgKzEzNTMsOSBAQCBpbmxpbmUgSlNWYWx1
ZSBKU09iamVjdDo6Z2V0UHJvdG90eXBlRGlyZWN0KFZNJiB2bSkgY29uc3QKIAogaW5saW5lIEpT
VmFsdWUgSlNPYmplY3Q6OmdldFByb3RvdHlwZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiB7Ci0gICAgYXV0byBnZXRQcm90b3R5cGVNZXRob2QgPSBtZXRob2RUYWJsZSh2
bSktPmdldFByb3RvdHlwZTsKLSAgICBNZXRob2RUYWJsZTo6R2V0UHJvdG90eXBlRnVuY3Rpb25Q
dHIgZGVmYXVsdEdldFByb3RvdHlwZSA9IEpTT2JqZWN0OjpnZXRQcm90b3R5cGU7Ci0gICAgaWYg
KExJS0VMWShnZXRQcm90b3R5cGVNZXRob2QgPT0gZGVmYXVsdEdldFByb3RvdHlwZSkpCisgICAg
aWYgKExJS0VMWSghc3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRQcm90b3R5
cGUoKSkpCiAgICAgICAgIHJldHVybiBnZXRQcm90b3R5cGVEaXJlY3Qodm0pOwotICAgIHJldHVy
biBnZXRQcm90b3R5cGVNZXRob2QodGhpcywgZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gbWV0
aG9kVGFibGUodm0pLT5nZXRQcm90b3R5cGUodGhpcywgZ2xvYmFsT2JqZWN0KTsKIH0KIAogLy8g
Tm9ybWFsbHksIHdlIG5ldmVyIHNocmluayB0aGUgYnV0dGVyZmx5IHNvIGlmIHdlIGtub3cgYW4g
b2Zmc2V0IGlzIHZhbGlkIGZvciBzb21lCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0SW5saW5lcy5oCmluZGV4IDIwZjFkODU2MDM5MjVhNjhmNTRhNjM4OGY1ZjZj
YTAxNGZjYjhhOTguLjlmZGY2MDcyOTg2ZThhYzQzYTEzNzAzNTA4OWZlZGUzZmJmYTQzY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCkBA
IC04Myw4ICs4Myw4IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6Y2FuUGVyZm9ybUZh
c3RQdXRJbmxpbmVFeGNsdWRpbmdQcm90byhWTSYgdm0pCiAgICAgSlNWYWx1ZSBwcm90b3R5cGU7
CiAgICAgSlNPYmplY3QqIG9iaiA9IHRoaXM7CiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAg
TWV0aG9kVGFibGU6OkdldFByb3RvdHlwZUZ1bmN0aW9uUHRyIGRlZmF1bHRHZXRQcm90b3R5cGUg
PSBKU09iamVjdDo6Z2V0UHJvdG90eXBlOwotICAgICAgICBpZiAob2JqLT5zdHJ1Y3R1cmUodm0p
LT5oYXNSZWFkT25seU9yR2V0dGVyU2V0dGVyUHJvcGVydGllc0V4Y2x1ZGluZ1Byb3RvKCkgfHwg
b2JqLT5tZXRob2RUYWJsZSh2bSktPmdldFByb3RvdHlwZSAhPSBkZWZhdWx0R2V0UHJvdG90eXBl
KQorICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iai0+c3RydWN0dXJlKHZtKTsKKyAg
ICAgICAgaWYgKHN0cnVjdHVyZS0+aGFzUmVhZE9ubHlPckdldHRlclNldHRlclByb3BlcnRpZXNF
eGNsdWRpbmdQcm90bygpIHx8IHN0cnVjdHVyZS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRQcm90
b3R5cGUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBwcm90b3R5cGUg
PSBvYmotPmdldFByb3RvdHlwZURpcmVjdCh2bSk7CkBAIC0xMjcsNyArMTI3LDYgQEAgQUxXQVlT
X0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgdW5zaWcKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgYXV0byYgc3RydWN0dXJlSURUYWJsZSA9IHZtLmhlYXAuc3RydWN0dXJlSURUYWJs
ZSgpOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSB0aGlzOwotICAgIE1ldGhvZFRhYmxlOjpHZXRQ
cm90b3R5cGVGdW5jdGlvblB0ciBkZWZhdWx0R2V0UHJvdG90eXBlID0gSlNPYmplY3Q6OmdldFBy
b3RvdHlwZTsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IHN0cnVjdHVyZUlEVGFibGUuZ2V0KG9iamVjdC0+c3RydWN0dXJlSUQoKSk7CiAgICAgICAg
IGJvb2wgaGFzU2xvdCA9IHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCktPm1ldGhvZFRhYmxlLmdldE93
blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CkBAIC0xMzcsNyArMTM2LDcgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0Ojpn
ZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWcKICAgICAg
ICAgaWYgKG9iamVjdC0+dHlwZSgpID09IFByb3h5T2JqZWN0VHlwZSAmJiBzbG90LmludGVybmFs
TWV0aG9kVHlwZSgpID09IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpIYXNQcm9w
ZXJ0eSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgSlNWYWx1ZSBwcm90b3R5
cGU7Ci0gICAgICAgIGlmIChMSUtFTFkoc3RydWN0dXJlLT5jbGFzc0luZm8oKS0+bWV0aG9kVGFi
bGUuZ2V0UHJvdG90eXBlID09IGRlZmF1bHRHZXRQcm90b3R5cGUgfHwgc2xvdC5pbnRlcm5hbE1l
dGhvZFR5cGUoKSA9PSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5
KSkKKyAgICAgICAgaWYgKExJS0VMWSghc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc0dl
dFByb3RvdHlwZSgpIHx8IHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkgPT0gUHJvcGVydHlTbG90
OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSkpCiAgICAgICAgICAgICBwcm90b3R5cGUg
PSBvYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSk7CiAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgcHJvdG90eXBlID0gb2JqZWN0LT5nZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCk7
CkBAIC0xNjUsNyArMTY0LDYgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXROb25J
bmRleFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgYXV0byYgc3RydWN0dXJlSURUYWJs
ZSA9IHZtLmhlYXAuc3RydWN0dXJlSURUYWJsZSgpOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSB0
aGlzOwotICAgIE1ldGhvZFRhYmxlOjpHZXRQcm90b3R5cGVGdW5jdGlvblB0ciBkZWZhdWx0R2V0
UHJvdG90eXBlID0gSlNPYmplY3Q6OmdldFByb3RvdHlwZTsKICAgICB3aGlsZSAodHJ1ZSkgewog
ICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHN0cnVjdHVyZUlEVGFibGUuZ2V0KG9iamVj
dC0+c3RydWN0dXJlSUQoKSk7CiAgICAgICAgIGlmIChMSUtFTFkoIVR5cGVJbmZvOjpvdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LT5pbmxpbmVUeXBlRmxhZ3MoKSkpKSB7CkBAIC0x
ODAsNyArMTc4LDcgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXROb25JbmRleFBy
b3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGU7Ci0gICAg
ICAgIGlmIChMSUtFTFkoc3RydWN0dXJlLT5jbGFzc0luZm8oKS0+bWV0aG9kVGFibGUuZ2V0UHJv
dG90eXBlID09IGRlZmF1bHRHZXRQcm90b3R5cGUgfHwgc2xvdC5pbnRlcm5hbE1ldGhvZFR5cGUo
KSA9PSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5KSkKKyAgICAg
ICAgaWYgKExJS0VMWSghc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3RvdHlw
ZSgpIHx8IHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpJbnRlcm5h
bE1ldGhvZFR5cGU6OlZNSW5xdWlyeSkpCiAgICAgICAgICAgICBwcm90b3R5cGUgPSBvYmplY3Qt
PmdldFByb3RvdHlwZURpcmVjdCh2bSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgcHJv
dG90eXBlID0gb2JqZWN0LT5nZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3h5LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3h5LmgKaW5kZXggNWJlN2JmMGQyZTVhOGIzMmM3OTRj
MGIyNTg5NTc5OGZjNWY5ZWY4YS4uMjgxZWU1MzQ4N2RkYWRlNzIwNTFlM2I0NTY4MzM4OTJhYzRl
ZGFjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94eS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuaApAQCAtMzIsNyAr
MzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTUHJveHkgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5M
ZW5ndGhJc05vdFplcm87CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0dldFByb3RvdHlwZSB8IElu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm87
CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAg
c3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKaW5kZXggODhlMzBmMjA5ZGQ2YzM3MTM3Y2EwNzk4
ODI2NmYzNTY3ZmMxMjhmZS4uNjc2ZmEwYWJkZDE0M2U5ZjJkYjdkYThkN2IxOWFiYzM5ZDZmNGIx
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaApAQCAtNTcs
NiArNTcsNyBAQCBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEdldE93blByb3BlcnR5U2xvdElz
SW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlID0gMSA8PCAxNAogc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvID0gMSA8PCAxNTsKIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlSXNJ
bW1vcnRhbCA9IDEgPDwgMTY7CiBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEhhc1B1dFByb3Bl
cnR5U2VjdXJpdHlDaGVjayA9IDEgPDwgMTc7CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIE92
ZXJyaWRlc0dldFByb3RvdHlwZSA9IDEgPDwgMTg7CiAKIGNsYXNzIFR5cGVJbmZvIHsKIHB1Ymxp
YzoKQEAgLTk0LDYgKzk1LDcgQEAgcHVibGljOgogICAgIGJvb2wgb3ZlcnJpZGVzVG9UaGlzKCkg
Y29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMShPdmVycmlkZXNUb1RoaXMpOyB9CiAgICAgYm9v
bCBzdHJ1Y3R1cmVJc0ltbW9ydGFsKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihTdHJ1
Y3R1cmVJc0ltbW9ydGFsKTsgfQogICAgIGJvb2wgb3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcygp
IGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczIoT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyk7
IH0KKyAgICBib29sIG92ZXJyaWRlc0dldFByb3RvdHlwZSgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0
T25GbGFnczIoT3ZlcnJpZGVzR2V0UHJvdG90eXBlKTsgfQogICAgIGJvb2wgcHJvaGliaXRzUHJv
cGVydHlDYWNoaW5nKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihQcm9oaWJpdHNQcm9w
ZXJ0eUNhY2hpbmcpOyB9CiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSgpIGNv
bnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczIoR2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUpOyB9
CiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSgp
IGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczIoR2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVG
b3JQcm9wZXJ0eUFic2VuY2UpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm94eU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlPYmplY3QuaAppbmRleCBhNzc4YjU3Y2I5N2RjMTNjNGU0ZWEwOTZmZmRlMWM2YzEzZGU4OGRm
Li5mODdmN2JlODJmY2I0NWYzMmM5MzAwNGVkNDlkMjg5OWNiOGE2ZjQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xh
c3MgUHJveHlPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKLSAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRDYWxsRGF0YSB8IEludGVyY2Vw
dHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgUHJvaGliaXRzUHJvcGVydHlDYWNoaW5nOworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldENhbGxEYXRh
IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90
WmVybyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBPdmVycmlkZXNHZXRQcm90b3R5cGUg
fCBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmc7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxs
VHlwZSwgU3Vic3BhY2VBY2Nlc3MgbW9kZT4KICAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNw
YWNlRm9yKFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgK
aW5kZXggYTkyNDM1ZGU5NzMzZmFiNzVmNDMxYTI1NjE0YjFhNGVmZjg3NWU5ZS4uN2E4NzI0MDY2
NWJiZTg2OTc0NzNhMWY0N2E5ZTI1ZmU0NzQ1MzIyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTU1Nyw3ICs1NTcsMTIgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1fY2xhc3NJbmZvKTsK
ICAgICB9Ci0gICAgICAgIAorCisgICAgc3RhdGljIHB0cmRpZmZfdCBvdXRPZkxpbmVUeXBlRmxh
Z3NPZmZzZXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1
cmUsIG1fb3V0T2ZMaW5lVHlwZUZsYWdzKTsKKyAgICB9CisKICAgICBzdGF0aWMgcHRyZGlmZl90
IGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1fYmxvYikgKyBTdHJ1Y3R1cmVJREJsb2I6
OmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNzVhMTRhMDM0
NTNlNWJiNzBjYTYyNGUwYjMzZDM3MTg4YzkzMzhmOS4uY2JjOWI1MmRhYzY4MDVmMGNjODY2NWY0
YTFiMjIzNWRjYjJlOGJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI3MTAsNiArMjcxMCw3IEBAIHN1YiBHZW5lcmF0
ZUhlYWRlcgogICAgIAogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntD
dXN0b21HZXRQcm90b3R5cGV9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRQcm90b3R5cGUoSlNDOjpKU09iamVjdCosIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTtcbiIpOworICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJp
ZGVzR2V0UHJvdG90eXBlIn0gPSAxOwogICAgIH0KICAgICAKICAgICBpZiAoJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tVG9TdHJpbmdOYW1lfSkgewpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA2NTRjYWVkYTQzYzQ3
Y2M2NGEwYTU1YmQzYWI1MzZhNmZkN2FlODE0Li40MmQ2MTg5NTJmOGRjOWM0ZWUzZjk3Y2RiM2Y3
ZDZkYTI1YzA3YmFmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA2LTAxICBBbGV4ZXkgU2h2YXlrYSAg
PHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBzdXBlciBzaG91bGQgbm90IGRlcGVu
ZCBvbiBfX3Byb3RvX18KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1Nzk3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3RyZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0b3Iu
anM6CisgICAgICAgICogc3RyZXNzL2dldC1wcm90b3R5cGUtb2YuanM6IEFkZGVkLgorICAgICAg
ICAqIHN0cmVzcy9zdXBlci1wcm9wZXJ0eS1hY2Nlc3MuanM6CisgICAgICAgICogdGVzdDI2Mi9l
eHBlY3RhdGlvbnMueWFtbDogTWFyayA0IHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0w
Ni0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0Nd
IEpTVmFsdWU6OnRvVGhpcyBzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbgpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvY2xhc3Mtc3ludGF4LWRlcml2ZWQtZGVmYXVsdC1jb25zdHJ1Y3Rvci5q
cyBiL0pTVGVzdHMvc3RyZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0
b3IuanMKaW5kZXggZjBjNDc3ZTVmNTE4M2VlNWY0ODI4NDgwZDc1ZjAyNWNhMjllZjE2ZS4uMjRi
ZDY0MjkyNWZmMzgyOTdiMmUyYmI0NWMyZDk0YjU1ZTRlYzQ5OSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3MvY2xhc3Mtc3ludGF4LWRlcml2ZWQtZGVmYXVsdC1jb25zdHJ1Y3Rvci5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50YXgtZGVyaXZlZC1kZWZhdWx0LWNvbnN0cnVjdG9y
LmpzCkBAIC0xLDMgKzEsNCBAQAorT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5
cGUsICJfX3Byb3RvX18iLCB7Z2V0OiB1bmRlZmluZWR9KTsKIAogdmFyIEEgPSBjbGFzcyBBIHsg
fTsKIHZhciBCID0gY2xhc3MgQiBleHRlbmRzIEEgeyB9OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvZ2V0LXByb3RvdHlwZS1vZi5qcyBiL0pTVGVzdHMvc3RyZXNzL2dldC1wcm90b3R5cGUt
b2YuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTU0NWViYjA3NmIxNTYxYWE5YmNjMDViYThhMTYyZTllMzdlNDhj
YQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dldC1wcm90b3R5cGUtb2YuanMK
QEAgLTAsMCArMSw2NCBAQAorZnVuY3Rpb24gYXNzZXJ0KHgpIHsKKyAgICBpZiAoIXgpCisgICAg
ICAgIHRocm93IEVycm9yKCJCYWQiKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywg
ZXJyb3JNZXNzYWdlKSB7CisgICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7CisgICAgdmFyIGVy
cm9yOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBp
ZiAoIWVycm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB0aHJvd24nKTsK
KyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtlcnJvcn1gKTsKK30KKworZnVuY3Rpb24gbWFrZVBvbHlQ
cm90b09iamVjdCgpIHsKKyAgICBmdW5jdGlvbiBmb28oKSB7CisgICAgICAgIGNsYXNzIEMgewor
ICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZmllbGQg
PSA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEMoKTsK
KyAgICB9CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgIGZvbygp
OworICAgIHJldHVybiBmb28oKTsKK30KKworY29uc3QgZ2V0UHJvdG90eXBlT2YgPSAkdm0uY3Jl
YXRlQnVpbHRpbigiKGZ1bmN0aW9uICh2KSB7IHJldHVybiBAZ2V0UHJvdG90eXBlT2Yodik7IH0p
Iik7Citub0lubGluZShnZXRQcm90b3R5cGVPZik7CisKK2NvbnN0IHByb3h5UHJvdG90eXBlID0g
e307Citjb25zdCBwcm94eSA9IG5ldyBQcm94eSh7fSwgeworICAgIGdldFByb3RvdHlwZU9mOiAo
KSA9PiBwcm94eVByb3RvdHlwZSwKK30pOworCitjb25zdCBwb2x5UHJvdG9PYmplY3QgPSBtYWtl
UG9seVByb3RvT2JqZWN0KCk7CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAg
ICBzaG91bGRUaHJvdygoKSA9PiBnZXRQcm90b3R5cGVPZih1bmRlZmluZWQpLCAiVHlwZUVycm9y
OiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCIpOworICAgIHNob3VsZFRocm93KCgpID0+IGdl
dFByb3RvdHlwZU9mKG51bGwpLCAiVHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBvYmplY3QiKTsK
KworICAgIGFzc2VydChnZXRQcm90b3R5cGVPZih0cnVlKSA9PT0gQm9vbGVhbi5wcm90b3R5cGUp
OworICAgIGFzc2VydChnZXRQcm90b3R5cGVPZigxKSA9PT0gTnVtYmVyLnByb3RvdHlwZSk7Cisg
ICAgYXNzZXJ0KGdldFByb3RvdHlwZU9mKCJmb28iKSA9PT0gU3RyaW5nLnByb3RvdHlwZSk7Cisg
ICAgYXNzZXJ0KGdldFByb3RvdHlwZU9mKFN5bWJvbCgpKSA9PT0gU3ltYm9sLnByb3RvdHlwZSk7
CisgICAgYXNzZXJ0KGdldFByb3RvdHlwZU9mKDEwbikgPT09IEJpZ0ludC5wcm90b3R5cGUpOwor
CisgICAgYXNzZXJ0KGdldFByb3RvdHlwZU9mKHt9KSA9PT0gT2JqZWN0LnByb3RvdHlwZSk7Cisg
ICAgYXNzZXJ0KGdldFByb3RvdHlwZU9mKFtdKSA9PT0gQXJyYXkucHJvdG90eXBlKTsKKyAgICBh
c3NlcnQoZ2V0UHJvdG90eXBlT2YoKCkgPT4ge30pID09PSBGdW5jdGlvbi5wcm90b3R5cGUpOwor
CisgICAgYXNzZXJ0KGdldFByb3RvdHlwZU9mKE9iamVjdC5wcm90b3R5cGUpID09PSBudWxsKTsK
KyAgICBhc3NlcnQoZ2V0UHJvdG90eXBlT2YoT2JqZWN0LmNyZWF0ZShudWxsKSkgPT09IG51bGwp
OworCisgICAgYXNzZXJ0KGdldFByb3RvdHlwZU9mKHByb3h5KSA9PT0gcHJveHlQcm90b3R5cGUp
OworICAgIGFzc2VydChnZXRQcm90b3R5cGVPZihwb2x5UHJvdG9PYmplY3QpID09PSBwb2x5UHJv
dG9PYmplY3QuY29uc3RydWN0b3IucHJvdG90eXBlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qcyBiL0pTVGVzdHMvc3RyZXNzL3N1cGVyLXBy
b3BlcnR5LWFjY2Vzcy5qcwppbmRleCA2NTk5NmE3NTk3NTRjZDk1MTdlNmMyNWFlYjk1ZDJmNmFj
N2ZhNzM2Li42MThhYjNiNmMyNTI5ZmRlODkxZjliZGZmNTRiZDNlNmI1M2EwNTBjIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3N0cmVzcy9zdXBlci1wcm9wZXJ0eS1hY2Nlc3MuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3Mvc3VwZXItcHJvcGVydHktYWNjZXNzLmpzCkBAIC0xLDMgKzEsNSBAQAorT2JqZWN0
LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICJfX3Byb3RvX18iLCB7Z2V0OiB1bmRl
ZmluZWR9KTsKKwogZnVuY3Rpb24gYXNzZXJ0KGIsIG0gPSAiQmFkISIpIHsKICAgICBpZiAoIWIp
IHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG0pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0
MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1s
CmluZGV4IDUxMDYyOTYzY2M3Y2ZmYTk4ODQzNDgwZmQ0Nzk4ZTYxNGRiZjY3ZmUuLmZkMjA5Y2Ix
OGJlMGNkNTc4NTBiOTFiZjRmMjRjMjBjN2ExNGYzZmEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVz
dDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25z
LnlhbWwKQEAgLTMwMTEsMTIgKzMwMTEsNiBAQCB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL3By
ZWZpeC1pbmNyZW1lbnQvUzExLjQuNF9BNV9UNS5qczoKIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvcHJlZml4LWluY3JlbWVudC9TMTEuNC40X0E2X1QzLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCiAgIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UnCi10ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL3N1cGVyL2NhbGwtcG9pc29uZWQtdW5kZXJzY29yZS1wcm90by5qczoKLSAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogc2hvdWxkIG5vdCBiZSBjYWxsZWQnCi0gIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBzaG91bGQgbm90IGJlIGNhbGxlZCcKLXRlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvc3VwZXIvcHJvcC1wb2lzb25lZC11bmRlcnNjb3JlLXByb3RvLmpzOgotICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBzaG91bGQgbm90IGJlIGNhbGxlZCcKLSAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IHNob3VsZCBub3QgYmUgY2FsbGVkJwogdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy95aWVsZC9zdGFyLWl0ZXJhYmxlLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBGaXJzdCByZXN1bHQgYGRvbmVgIGZsYWcgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZmFsc2XCuywg
wqt1bmRlZmluZWTCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEZpcnN0IHJlc3VsdCBgZG9uZWAgZmxhZyBFeHBlY3RlZCBTYW1lVmFsdWUowqtmYWxzZcK7LCDC
q3VuZGVmaW5lZMK7KSB0byBiZSB0cnVlJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400794</attachid>
            <date>2020-06-02 01:20:25 -0700</date>
            <delta_ts>2020-06-12 14:20:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157972-20200602112023.patch</filename>
            <type>text/plain</type>
            <size>45988</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTI3MzUwNjA0ZWJmODcyOTAzMDYxOGExZmMyNDIxYzUxMTkzMzZmLi4xODM2MTBiMmEyMjYwZjA2
ODZmZDU3ZDkwN2NmOGM0YzViNzJkYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4OCBAQAorMjAyMC0wNi0wMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgc3VwZXIgc2hvdWxkIG5vdCBkZXBlbmQgb24gX19wcm90b19fCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWZvcmUgdGhp
cyBjaGFuZ2UsIGJvdGggc3VwZXIoKSBjYWxsIFsxXSBhbmQgc3VwZXIucHJvcGVydHkgWzJdIHJl
bGllZCBvbgorICAgICAgICBPYmplY3QucHJvdG90eXBlLl9fcHJvdG9fXyB0byBhY3F1aXJlIHN1
cGVyIGJhc2UsIHdoaWNoIHdhcyBvYnNlcnZhYmxlIGFuZAorICAgICAgICBpbmNvcnJlY3QgaWYg
X19wcm90b19fIGdldHMgcmVtb3ZlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMg
Z2V0X3Byb3RvdHlwZV9vZiBieXRlY29kZSwgZW5zdXJpbmcgcmV0dXJuZWQgdmFsdWVzCisgICAg
ICAgIGFyZSBwcm9maWxlZCBzbyB0aGUgb3AgY2FuIGJlIHdpcmVkIHRvIGV4aXN0aW5nIERGRyBh
bmQgRlRMIGltcGxlbWVudGF0aW9ucy4KKyAgICAgICAgSW4gb3JkZXIgdG8gYXZvaWQgcGVyZm9y
bWFuY2UgcmVncmVzc2lvbiB3L28gREZHIChfX3Byb3RvX18gaXMgb3B0aW1pemVkIHZpYQorICAg
ICAgICBJbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlKSwgZmFzdCBwYXRocyBmb3IgTExJbnQgYW5k
IGJhc2VsaW5lIEpJVCBhcmUgYWRkZWQKKyAgICAgICAgKDY0LWJpdCBvbmx5KSwgdXRpbGl6aW5n
IE92ZXJyaWRlc0dldFByb3RvdHlwZSBvdXQgb2YgbGluZSB0eXBlIGluZm8gZmxhZy4KKworICAg
ICAgICBUaGlzIGNoYW5nZSBhbGlnbnMgSlNDIHdpdGggVjggYW5kIFNwaWRlck1vbmtleSwgcHJv
Z3Jlc3NpbmcgbWljcm9iZW5jaG1hcmtzLworICAgICAgICBzdXBlci1nZXQtYnkte2lkLHZhbH0t
d2l0aC10aGlzLW1vbm9tb3JwaGljLmpzIGJ5IDctMTAlLiBTaXhTcGVlZCBpcyBuZXV0cmFsLgor
CisgICAgICAgIEFsc28sIGV4dHJhY3RzIEpTVmFsdWU6OmdldFByb3RvdHlwZSgpIG1ldGhvZCB0
byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uIGFuZAorICAgICAgICB1dGlsaXplcyBpdCBpbiBvYmpl
Y3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKCksIHByb2dyZXNzaW5nIHByb3ZpZGVkCisgICAg
ICAgIG1pY3JvYmVuY2htYXJrIGJ5IDQwJS4KKworICAgICAgICBbMV06IGh0dHBzOi8vdGMzOS5l
cy9lY21hMjYyLyNzZWMtZ2V0c3VwZXJjb25zdHJ1Y3RvciAoc3RlcCA1KQorICAgICAgICBbMl06
IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZ2V0c3VwZXJiYXNlIChzdGVwIDUpCisKKyAg
ICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBieXRlY29kZS9CeXRl
Y29kZUludHJpbnNpY1JlZ2lzdHJ5Lmg6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0
LnJiOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpT
Qzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1
dGVEZWZzRm9yQnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9j
ay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIGJ5dGVjb2RlL09wY29kZS5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0UHJv
dG90eXBlT2YpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgor
ICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpl
bWl0U3VwZXJCYXNlRm9yQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6ZW1pdEdldFN1cGVyRnVuY3Rp
b25Gb3JDb25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUludHJpbnNpY05vZGU6OmVt
aXRfaW50cmluc2ljX2dldFByb3RvdHlwZU9mKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZUludHJpbnNpY0dldHRlcik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJz
ZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZnL0RGR09wZXJh
dGlvbnMuY3BwOgorICAgICAgICAqIGppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6SW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZTo6Y2FuRW1pdEludHJpbnNpY0dldHRlcik6
CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBp
bGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMp
OgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfcHJvdG90eXBlX29mKToKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoK
KyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmg6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgICog
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpnZXRQ
cm90b3R5cGUgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlv
bnMuY3BwOgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jUHJvdG9HZXR0ZXIpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Y2FsY3VsYXRl
ZENsYXNzTmFtZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlND
OjpKU09iamVjdDo6Z2V0UHJvdG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0SW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Y2FuUGVyZm9ybUZhc3RQdXRJbmxpbmVF
eGNsdWRpbmdQcm90byk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3Qp
OgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0Tm9uSW5kZXhQcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNQcm94eS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlSW5mby5o
OgorICAgICAgICAoSlNDOjpUeXBlSW5mbzo6b3ZlcnJpZGVzR2V0UHJvdG90eXBlIGNvbnN0KToK
KyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
b2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZik6CisgICAgICAgICogcnVudGltZS9Qcm94
eU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisKIDIwMjAtMDYtMDEg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBKU1Zh
bHVlOjp0b1RoaXMgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlOGE3
OTRkOTI0YTk2N2IxYWExYzQxMzNiMDkxZWMyZGE2NGNkZDAxLi4xYmIxNzM2YTBkNTM5YzM3YTQ4
M2VkNWY5N2NmNmUyNDFjZWNkZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAt
MDYtMDEgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAg
IHN1cGVyIHNob3VsZCBub3QgZGVwZW5kIG9uIF9fcHJvdG9fXworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBj
aGFuZ2UuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToK
KyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKTogU2V0IE92ZXJyaWRlc0dldFByb3RvdHlwZSBzdHJ1
Y3R1cmUgZmxhZyBmb3IgQ3VzdG9tR2V0UHJvdG90eXBlIElETCBhdHRyaWJ1dGUuCisKIDIwMjAt
MDYtMDEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhhcnUub2h6ZWtpQGdtYWlsLmNvbT4KIAog
ICAgICAgICBJbXBsZW1lbnQgUGFyZW50Tm9kZS5wcm90b3R5cGUucmVwbGFjZUNoaWxkcmVuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggMmNm
NjE5ZDI4ZGUzNjU1MWM0MGJlMjQyZmI0OTQ3ZmZhOGI0MmFlMy4uNmM1NDdiZmE2YzA4MTMwODI1
YmRjNDQzMzllYmIxNTVhNmYwNDg0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9CdWlsdGluTmFtZXMuaApAQCAtNjUsNyArNjUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBtYWNybyhjcmVhdGUpIFwKICAgICBtYWNybyhkZWZpbmVQcm9wZXJ0eSkgXAogICAgIG1hY3Jv
KGRlZmF1bHRQcm9taXNlVGhlbikgXAotICAgIG1hY3JvKGdldFByb3RvdHlwZU9mKSBcCiAgICAg
bWFjcm8oZ2V0T3duUHJvcGVydHlOYW1lcykgXAogICAgIG1hY3JvKG93bktleXMpIFwKICAgICBt
YWNybyhTZXQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oCmluZGV4IDA5MWQ3OGM2M2VhODFlNzZiMjJi
YWNiZTM3MzM5ZDMxYWI4ZDY3YTkuLjllNzEwYjg2MWM4OTBlMGE4ZmVhYmEwYWZiNTI2ZDA0ZTJj
NWQxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZUludHJpbnNpY1JlZ2lzdHJ5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaApAQCAtNDIsNiArNDIsNyBAQCBlbnVtIGNsYXNz
IExpbmtUaW1lQ29uc3RhbnQgOiBpbnQzMl90OwogICAgIG1hY3JvKGFyZ3VtZW50Q291bnQpIFwK
ICAgICBtYWNybyhnZXRCeUlkRGlyZWN0KSBcCiAgICAgbWFjcm8oZ2V0QnlJZERpcmVjdFByaXZh
dGUpIFwKKyAgICBtYWNybyhnZXRQcm90b3R5cGVPZikgXAogICAgIG1hY3JvKGdldFByb21pc2VJ
bnRlcm5hbEZpZWxkKSBcCiAgICAgbWFjcm8oZ2V0R2VuZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAog
ICAgIG1hY3JvKGdldEFzeW5jR2VuZXJhdG9ySW50ZXJuYWxGaWVsZCkgXApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKaW5kZXggMGJkNmEwN2ZmYjBl
MzE3OTVmMTQ2YmE0ODU0MWFiYzVlNThlMmJlOC4uMGU3NGM2YmUyMWRmOGVjZjY2YTM1NmEwOGY1
ZDk4NGFiMWY2NjUwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVMaXN0LnJiCkBAIC00OTcsNiArNDk3LDE1IEBAIG9wIDpnZXRfYnlfaWRfZGlyZWN0LAog
ICAgICAgICBvZmZzZXQ6IHVuc2lnbmVkLAogICAgIH0KIAorb3AgOmdldF9wcm90b3R5cGVfb2Ys
CisgICAgYXJnczogeworICAgICAgICBkc3Q6IFZpcnR1YWxSZWdpc3RlciwKKyAgICAgICAgdmFs
dWU6IFZpcnR1YWxSZWdpc3RlciwKKyAgICB9LAorICAgIG1ldGFkYXRhOiB7CisgICAgICAgIHBy
b2ZpbGU6IFZhbHVlUHJvZmlsZSwKKyAgICB9CisKIG9wIDp0cnlfZ2V0X2J5X2lkLAogICAgIGFy
Z3M6IHsKICAgICAgICAgZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAppbmRleCBhMzE5MGYyZGQ1ZDNi
NmQyZmRiY2VmOGUwMjBmZWIzY2ZjNzU4NTA0Li5lNmIyYTVlZDExYzUyOGU3NWE3M2I1N2FjNGE1
MzcyZTc4NGI3OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZVVzZURlZi5jcHAKQEAgLTIxMyw2ICsyMTMsNyBAQCB2b2lkIGNvbXB1dGVVc2VzRm9y
Qnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJlZ2lzdGVyIHNjb3BlUmVnaXN0ZXIsIGNvbnN0IElu
c3RydQogICAgIFVTRVMoT3BFbnVtZXJhdG9yU3RydWN0dXJlUG5hbWUsIGVudW1lcmF0b3IsIGlu
ZGV4KQogICAgIFVTRVMoT3BFbnVtZXJhdG9yR2VuZXJpY1BuYW1lLCBlbnVtZXJhdG9yLCBpbmRl
eCkKICAgICBVU0VTKE9wR2V0QnlWYWwsIGJhc2UsIHByb3BlcnR5KQorICAgIFVTRVMoT3BHZXRQ
cm90b3R5cGVPZiwgdmFsdWUpCiAgICAgVVNFUyhPcEluQnlWYWwsIGJhc2UsIHByb3BlcnR5KQog
ICAgIFVTRVMoT3BPdmVycmlkZXNIYXNJbnN0YW5jZSwgY29uc3RydWN0b3IsIGhhc0luc3RhbmNl
VmFsdWUpCiAgICAgVVNFUyhPcEluc3RhbmNlb2YsIHZhbHVlLCBwcm90b3R5cGUpCkBAIC00Mjgs
NiArNDI5LDcgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKHVuc2lnbmVk
IG51bVZhcnMsIGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnUKICAgICBERUZTKE9wSW5zdGFuY2Vv
ZiwgZHN0KQogICAgIERFRlMoT3BJbnN0YW5jZW9mQ3VzdG9tLCBkc3QpCiAgICAgREVGUyhPcEdl
dEJ5VmFsLCBkc3QpCisgICAgREVGUyhPcEdldFByb3RvdHlwZU9mLCBkc3QpCiAgICAgREVGUyhP
cFR5cGVvZiwgZHN0KQogICAgIERFRlMoT3BJZGVudGl0eVdpdGhQcm9maWxlLCBzcmNEc3QpCiAg
ICAgREVGUyhPcElzRW1wdHksIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKaW5kZXggNWE5Mzg0MDczMTY2MDdkMmYxNmVlNmQ2ZjA3YzE2NDViY2M1
NzhmNS4uZmVkZjk2YzE1NjAwZWE3NTdlNWUyYmUxMzc0MWE3MzZkZTkzMTM3NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTUxNCw2ICs1MTQs
NyBAQCBib29sIENvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBTY3JpcHRFeGVjdXRh
YmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGluawogICAgICAgICBMSU5LKE9wVHJ5R2V0QnlJZCwg
cHJvZmlsZSkKICAgICAgICAgTElOSyhPcEdldEJ5SWREaXJlY3QsIHByb2ZpbGUpCiAgICAgICAg
IExJTksoT3BHZXRCeVZhbFdpdGhUaGlzLCBwcm9maWxlKQorICAgICAgICBMSU5LKE9wR2V0UHJv
dG90eXBlT2YsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BHZXRGcm9tQXJndW1lbnRzLCBwcm9m
aWxlKQogICAgICAgICBMSU5LKE9wVG9OdW1iZXIsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BU
b051bWVyaWMsIHByb2ZpbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvT3Bjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgK
aW5kZXggYWE4ODU5YWRkNjI4NjBmZmRhZGI0ZDIyMjg3YzM0YjA3Y2U1YjMzNC4uYTkwZGM0MzY0
YzkwZGQ5NWQxOWE3ZGIzNDIzMjEyZDYwMTQ1ZTA3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9PcGNvZGUuaApAQCAtMTA1LDYgKzEwNSw3IEBAIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgYml0V2lkdGhGb3JNYXhPcGNvZGVMZW5ndGggPSBXVEY6OmdldE1TQlNldENvbnN0ZXhw
cihtCiAgICAgbWFjcm8oT3BUcnlHZXRCeUlkKSBcCiAgICAgbWFjcm8oT3BHZXRCeUlkRGlyZWN0
KSBcCiAgICAgbWFjcm8oT3BHZXRCeVZhbFdpdGhUaGlzKSBcCisgICAgbWFjcm8oT3BHZXRQcm90
b3R5cGVPZikgXAogICAgIG1hY3JvKE9wR2V0RnJvbUFyZ3VtZW50cykgXAogICAgIG1hY3JvKE9w
VG9OdW1iZXIpIFwKICAgICBtYWNybyhPcFRvTnVtZXJpYykgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRl
eCBmZGJlMzliNGQ1YzRiMjg1MjExNTYwMTNkNWFmODViNjE3ODJjMjBjLi5iMWZmNmUzNThhMzY2
NzFkOTg3OTE0OTM3M2NmMjcyY2I3MmM1ZmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMjY4MSw2
ICsyNjgxLDEyIEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0QnlWYWwo
UmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSCiAgICAgcmV0dXJuIGRzdDsKIH0K
IAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRQcm90b3R5cGVPZihSZWdp
c3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlKQoreworICAgIE9wR2V0UHJvdG90eXBlT2Y6
OmVtaXQodGhpcywgZHN0LCB2YWx1ZSk7CisgICAgcmV0dXJuIGRzdDsKK30KKwogUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBSZWdp
c3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpCiB7CiAgICAgT3BQdXRCeVZhbDo6
ZW1pdCh0aGlzLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUsIGVjbWFNb2RlKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
CmluZGV4IDcyODY0OTA2OTljN2U2NzU1ZDA4NDNlNjliNGJkMWFkMTliODZiMzkuLjhmZTJiMTQz
NDg0MGFhMzdkMjJmZDRlODViZGRkMDhkZmFiOTJiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTgxMSw2
ICs4MTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERlbGV0
ZUJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVy
Jik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRCeVZhbChSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5KTsKICAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEdldEJ5VmFsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0
ZXJJRCogdGhpc1ZhbHVlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSk7CisgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRHZXRQcm90b3R5cGVPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVl
KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFB1dEJ5VmFsKFJlZ2lzdGVySUQqIGJhc2UsIFJl
Z2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRQdXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiB0aGlzVmFsdWUs
IFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXREaXJlY3RQdXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBw
cm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDQ0MWZhMjRlY2M4YzE4ZDIz
MmU0Yjk0YWU1NGU5YmI0ZWY1NmZkOWEuLjFkYzdkZWNkYzZhNjRkOTIzYTE3ZDFjY2ZmNzNkYjI4
YTg1N2JkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L05vZGVzQ29kZWdlbi5jcHAKQEAgLTE5MywxNyArMTkzLDE3IEBAIHN0YXRpYyBSZWdpc3RlcklE
KiBlbWl0SG9tZU9iamVjdEZvckNhbGxlZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKQog
c3RhdGljIFJlZ2lzdGVySUQqIGVtaXRTdXBlckJhc2VGb3JDYWxsZWUoQnl0ZWNvZGVHZW5lcmF0
b3ImIGdlbmVyYXRvcikKIHsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaG9tZU9iamVjdCA9IGVt
aXRIb21lT2JqZWN0Rm9yQ2FsbGVlKGdlbmVyYXRvcik7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5l
bWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGhvbWVPYmplY3QuZ2V0KCksIGdl
bmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5kZXJzY29yZVByb3RvKTsKKyAgICByZXR1cm4gZ2Vu
ZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGhvbWVP
YmplY3QuZ2V0KCkpOwogfQogCiBzdGF0aWMgUmVnaXN0ZXJJRCogZW1pdEdldFN1cGVyRnVuY3Rp
b25Gb3JDb25zdHJ1Y3QoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikKIHsKICAgICBpZiAo
Z2VuZXJhdG9yLmlzRGVyaXZlZENvbnN0cnVjdG9yQ29udGV4dCgpKQotICAgICAgICByZXR1cm4g
Z2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgZ2VuZXJhdG9y
LmVtaXRMb2FkRGVyaXZlZENvbnN0cnVjdG9yRnJvbUFycm93RnVuY3Rpb25MZXhpY2FsRW52aXJv
bm1lbnQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS51bmRlcnNjb3JlUHJvdG8pOworICAg
ICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCksIGdlbmVyYXRvci5lbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1
bmN0aW9uTGV4aWNhbEVudmlyb25tZW50KCkpOwogCiAgICAgUmVnaXN0ZXJJRCBjYWxsZWU7CiAg
ICAgY2FsbGVlLnNldEluZGV4KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSk7Ci0gICAgcmV0dXJuIGdl
bmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksICZjYWxsZWUsIGdl
bmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5kZXJzY29yZVByb3RvKTsKKyAgICByZXR1cm4gZ2Vu
ZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksICZjYWxs
ZWUpOwogfQogCiBSZWdpc3RlcklEKiBTdXBlck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCkBAIC0xMDc5LDYgKzEwNzksMTQg
QEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19nZXRC
eUlkRGlyZWN0UHJpdmF0ZShCeXRlY29kZUcKICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXREaXJl
Y3RHZXRCeUlkKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIGdl
bmVyYXRvci5wYXJzZXJBcmVuYSgpLmlkZW50aWZpZXJBcmVuYSgpLm1ha2VJZGVudGlmaWVyKGdl
bmVyYXRvci52bSgpLCBzeW1ib2wpKTsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5z
aWNOb2RlOjplbWl0X2ludHJpbnNpY19nZXRQcm90b3R5cGVPZihCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgQXJndW1lbnRMaXN0Tm9kZSogbm9k
ZSA9IG1fYXJncy0+bV9saXN0Tm9kZTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFsdWUgPSBn
ZW5lcmF0b3IuZW1pdE5vZGUobm9kZSk7CisgICAgQVNTRVJUKCFub2RlLT5tX25leHQpOworICAg
IHJldHVybiBnZW5lcmF0b3IuZW1pdEdldFByb3RvdHlwZU9mKGdlbmVyYXRvci5maW5hbERlc3Rp
bmF0aW9uKGRzdCksIHZhbHVlLmdldCgpKTsKK30KKwogc3RhdGljIEpTUHJvbWlzZTo6RmllbGQg
cHJvbWlzZUludGVybmFsRmllbGRJbmRleChCeXRlY29kZUludHJpbnNpY05vZGUqIG5vZGUpCiB7
CiAgICAgQVNTRVJUKG5vZGUtPmVudHJ5KCkudHlwZSgpID09IEJ5dGVjb2RlSW50cmluc2ljUmVn
aXN0cnk6OlR5cGU6OkVtaXR0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDczNjZjZjFjYmEx
NWJlM2IyNWRjNzA2YjA0YThmN2ZhZTM2NmQ4ZjIuLmE1NGMyZTBkYzY1Nzg2YTNmMjQ4MmZjOTlm
YmU4NmNiNjYwMTM1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTM2OTgsOSArMzY5OCw3IEBA
IGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZl
Y3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgICAgICBib29sIGNhbkZvbGQgPSAhdmFs
dWUubV9zdHJ1Y3R1cmUuaXNDbGVhcigpOwogICAgICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGU7
CiAgICAgICAgICAgICB2YWx1ZS5tX3N0cnVjdHVyZS5mb3JFYWNoKFsmXSAoUmVnaXN0ZXJlZFN0
cnVjdHVyZSBzdHJ1Y3R1cmUpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGdldFByb3RvdHlwZU1l
dGhvZCA9IHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCktPm1ldGhvZFRhYmxlLmdldFByb3RvdHlwZTsK
LSAgICAgICAgICAgICAgICBNZXRob2RUYWJsZTo6R2V0UHJvdG90eXBlRnVuY3Rpb25QdHIgZGVm
YXVsdEdldFByb3RvdHlwZSA9IEpTT2JqZWN0OjpnZXRQcm90b3R5cGU7Ci0gICAgICAgICAgICAg
ICAgaWYgKGdldFByb3RvdHlwZU1ldGhvZCAhPSBkZWZhdWx0R2V0UHJvdG90eXBlKSB7CisgICAg
ICAgICAgICAgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRQcm90b3R5
cGUoKSkgewogICAgICAgICAgICAgICAgICAgICBjYW5Gb2xkID0gZmFsc2U7CiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDc3OTFjYTYxOTRkOGVkODdk
M2RkYTY0N2JhYWZiZjVkM2NhYzJlZjYuLmM1ZWI2NmU4YzhmYzc2N2ZiZDgyNjJkOGI2ZTQ5ODEy
MzQxNzRjZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCkBAIC0zODE3LDkgKzM4MTcsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVJbnRyaW5zaWNHZXR0ZXIoT3BlcmFuZCByZXN1bHQsIFNwZWN1bGF0ZWRUeXBlIHByZWRpYwog
ICAgICAgICBib29sIGNhbkZvbGQgPSAhdmFyaWFudC5zdHJ1Y3R1cmVTZXQoKS5pc0VtcHR5KCk7
CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlOwogICAgICAgICB2YXJpYW50LnN0cnVjdHVyZVNl
dCgpLmZvckVhY2goWyZdIChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgewotICAgICAgICAgICAgYXV0
byBnZXRQcm90b3R5cGVNZXRob2QgPSBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5tZXRob2RUYWJs
ZS5nZXRQcm90b3R5cGU7Ci0gICAgICAgICAgICBNZXRob2RUYWJsZTo6R2V0UHJvdG90eXBlRnVu
Y3Rpb25QdHIgZGVmYXVsdEdldFByb3RvdHlwZSA9IEpTT2JqZWN0OjpnZXRQcm90b3R5cGU7Ci0g
ICAgICAgICAgICBpZiAoZ2V0UHJvdG90eXBlTWV0aG9kICE9IGRlZmF1bHRHZXRQcm90b3R5cGUp
IHsKKyAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0UHJv
dG90eXBlKCkpIHsKICAgICAgICAgICAgICAgICBjYW5Gb2xkID0gZmFsc2U7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNjA4OSw2ICs2MDg3LDEzIEBAIHZvaWQg
Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAKICAgICAgICAgICAg
IE5FWFRfT1BDT0RFKG9wX2dldF9ieV9pZF93aXRoX3RoaXMpOwogICAgICAgICB9CisKKyAgICAg
ICAgY2FzZSBvcF9nZXRfcHJvdG90eXBlX29mOiB7CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2Rl
ID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEdldFByb3RvdHlwZU9mPigpOworICAgICAgICAg
ICAgc2V0KGJ5dGVjb2RlLm1fZHN0LCBhZGRUb0dyYXBoKEdldFByb3RvdHlwZU9mLCBPcEluZm8o
MCksIE9wSW5mbyhnZXRQcmVkaWN0aW9uKCkpLCBnZXQoYnl0ZWNvZGUubV92YWx1ZSkpKTsKKyAg
ICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dldF9wcm90b3R5cGVfb2YpOworICAgICAgICB9CisK
ICAgICAgICAgY2FzZSBvcF9wdXRfYnlfaWQ6IHsKICAgICAgICAgICAgIGF1dG8gYnl0ZWNvZGUg
PSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wUHV0QnlJZD4oKTsKICAgICAgICAgICAgIE5vZGUq
IHZhbHVlID0gZ2V0KGJ5dGVjb2RlLm1fdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGExYWUzZTNjOWZjZTE2ODgzYTI4MGM4MTY5
ZTRmYmJiMTY5YTc2MTEuLjdlYTJhYzU0MGE5ZmM3ODAxMTUwODJlYzlmNDk4ZmY2NjhhMjVhZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAg
LTE3NCw2ICsxNzQsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlE
IG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNhc2Ugb3BfZ2V0
X2J5X2lkX3dpdGhfdGhpczoKICAgICBjYXNlIG9wX2dldF9ieV9pZF9kaXJlY3Q6CiAgICAgY2Fz
ZSBvcF9nZXRfYnlfdmFsX3dpdGhfdGhpczoKKyAgICBjYXNlIG9wX2dldF9wcm90b3R5cGVfb2Y6
CiAgICAgY2FzZSBvcF9wdXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9wdXRfYnlfaWRfd2l0aF90aGlz
OgogICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbF93aXRoX3RoaXM6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCBkZGRjNjMzMjJhMzk4MWY0NzVlZTIyZmY2
NGY5ODg4NjM3ZTY5ZmQ4Li4zOTc3ZGNkMWMwMjgzMjBmNjJjYjE5NWNmNTk5OTZlMTAxMDZjZDZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTMy
NjgsMjIgKzMyNjgsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdl
dFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLQotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKLSAgICBpZiAo
dGhpc1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlTm90QW5PYmplY3RFcnJvcihnbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSkpOwotCi0gICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWND
YXN0PEpTT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0KSB7Ci0g
ICAgICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSB0aGlzVmFsdWUuc3ludGhlc2l6ZVByb3RvdHlw
ZShnbG9iYWxPYmplY3QpOwotICAgICAgICBFWENFUFRJT05fQVNTRVJUKCEhc2NvcGUuZXhjZXB0
aW9uKCkgPT0gIXByb3RvdHlwZSk7Ci0gICAgICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkK
LSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKLSAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShwcm90b3R5cGUpOwotICAgIH0KLQotICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPmdldFByb3RvdHlw
ZSh2bSwgZ2xvYmFsT2JqZWN0KSkpOworICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlLmdldFBy
b3RvdHlwZShnbG9iYWxPYmplY3QpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25EYXRlR2V0RnVsbFllYXIoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBk
YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0
dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAK
aW5kZXggZmEwMjkyYmExZGI2NmMyNzQ3ZGI0YjlmZTc5MTg2NTBkODFkNmFiZS4uOTRmN2FmZTEx
YTkxMWI5MWE4ODM3MDU1Yjk3NTQwNjljYWFhOGFiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0ludHJpbnNpY0VtaXR0ZXIuY3BwCkBAIC02MSw5ICs2MSw4IEBAIGJvb2wgSW50
cmluc2ljR2V0dGVyQWNjZXNzQ2FzZTo6Y2FuRW1pdEludHJpbnNpY0dldHRlcihKU0Z1bmN0aW9u
KiBnZXR0ZXIsIFN0cnVjCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBjYXNlIFVu
ZGVyc2NvcmVQcm90b0ludHJpbnNpYzogewotICAgICAgICBhdXRvIGdldFByb3RvdHlwZU1ldGhv
ZCA9IHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCktPm1ldGhvZFRhYmxlLmdldFByb3RvdHlwZTsKLSAg
ICAgICAgTWV0aG9kVGFibGU6OkdldFByb3RvdHlwZUZ1bmN0aW9uUHRyIGRlZmF1bHRHZXRQcm90
b3R5cGUgPSBKU09iamVjdDo6Z2V0UHJvdG90eXBlOwotICAgICAgICByZXR1cm4gZ2V0UHJvdG90
eXBlTWV0aG9kID09IGRlZmF1bHRHZXRQcm90b3R5cGU7CisgICAgICAgIFR5cGVJbmZvIGluZm8g
PSBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCk7CisgICAgICAgIHJldHVybiBpbmZvLmlzT2JqZWN0KCkg
JiYgIWluZm8ub3ZlcnJpZGVzR2V0UHJvdG90eXBlKCk7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCAyNjQ4
NTRjNjY1ZWNkZmRiMGQ5Y2UxZTRiMDdmN2UzY2JkZmJjMjcwLi43MjFlNjViNzNmMjIzMDgwMWI3
NjVkZmUyNTQ1YmMyNzczZWVkNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0z
MTcsNiArMzE3LDkgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAg
ICBERUZJTkVfU0xPV19PUChjcmVhdGVfYXN5bmNfZ2VuZXJhdG9yKQogICAgICAgICBERUZJTkVf
U0xPV19PUChuZXdfZ2VuZXJhdG9yKQogICAgICAgICBERUZJTkVfU0xPV19PUChwb3cpCisjaWYg
IVVTRShKU1ZBTFVFNjQpCisgICAgICAgIERFRklORV9TTE9XX09QKGdldF9wcm90b3R5cGVfb2Yp
CisjZW5kaWYKIAogICAgICAgICBERUZJTkVfT1Aob3BfYWRkKQogICAgICAgICBERUZJTkVfT1Ao
b3BfYml0bm90KQpAQCAtNDY5LDYgKzQ3MiwxMCBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVN
YWluUGFzcygpCiAgICAgICAgICAgICAKICAgICAgICAgREVGSU5FX09QKG9wX2xvZ19zaGFkb3df
Y2hpY2tlbl9wcm9sb2d1ZSkKICAgICAgICAgREVGSU5FX09QKG9wX2xvZ19zaGFkb3dfY2hpY2tl
bl90YWlsKQorCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgREVGSU5FX09QKG9wX2dldF9w
cm90b3R5cGVfb2YpCisjZW5kaWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KQEAgLTYyMyw3ICs2MzAsOSBAQCB2
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICBERUZJTkVfU0xPV0NB
U0VfU0xPV19PUChyZXNvbHZlX3Njb3BlKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfU0xPV19P
UChjaGVja190ZHopCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9XX09QKHRvX3Byb3BlcnR5
X2tleSkKLQorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIERFRklORV9TTE9XQ0FTRV9TTE9X
X09QKGdldF9wcm90b3R5cGVfb2YpCisjZW5kaWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oCmluZGV4IDQwMGVlNjM0ZDMxYjcxN2Q5OTdjMWJjMjg0YmMwOGJlMTMzOTQ5Nzku
LjAwYWNkYTBlMGI3ZjM4MTVjNjhkZWJmYjM0MmI0MWFmM2Y4NjI4OGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaApAQCAtNTIxLDYgKzUyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2
b2lkIGVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAg
ICB2b2lkIGVtaXRfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOwogICAgICAgICB2
b2lkIGVtaXRfb3BfZ2V0X2FyZ3VtZW50X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiopOworICAg
ICAgICB2b2lkIGVtaXRfb3BfZ2V0X3Byb3RvdHlwZV9vZihjb25zdCBJbnN0cnVjdGlvbiopOwog
ICAgICAgICB2b2lkIGVtaXRfb3BfaW5fYnlfaWQoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAg
ICAgdm9pZCBlbWl0X29wX2luaXRfbGF6eV9yZWcoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAg
ICAgdm9pZCBlbWl0X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UoY29uc3QgSW5zdHJ1Y3Rpb24q
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDlkM2Q5MTdh
MDM2ZTFjMTEyYzRkZGU1MjNiMDQzZjU4YjZkMWFhNGMuLjA5OTU1MDNjODE2MDIyN2Y5YzM0MjBl
ZDcyZjRhOWYyNzg0ZWRlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
LmNwcApAQCAtMTUyNSw2ICsxNTI1LDI2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9kaXJlY3Rf
cG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKGRzdCwgcmVnVDApOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF9nZXRf
cHJvdG90eXBlX29mKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7Cisg
ICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRQcm90b3R5cGVP
Zj4oKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJ5dGVjb2RlLm1fdmFsdWUsIHJlZ1Qw
KTsKKworICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmTm90Q2VsbChyZWdUMCkpOworICAgIGFkZFNs
b3dDYXNlKGJyYW5jaElmTm90T2JqZWN0KHJlZ1QwKSk7CisKKyAgICBlbWl0TG9hZFN0cnVjdHVy
ZSh2bSgpLCByZWdUMCwgcmVnVDIsIHJlZ1QxKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0
MzIoTm9uWmVybywgQWRkcmVzcyhyZWdUMiwgU3RydWN0dXJlOjpvdXRPZkxpbmVUeXBlRmxhZ3NP
ZmZzZXQoKSksIFRydXN0ZWRJbW0zMihPdmVycmlkZXNHZXRQcm90b3R5cGUgPj4gOCkpKTsKKwor
ICAgIGxvYWQ2NChBZGRyZXNzKHJlZ1QyLCBTdHJ1Y3R1cmU6OnByb3RvdHlwZU9mZnNldCgpKSwg
cmVnVDIpOworICAgIEp1bXAgaGFzTW9ub1Byb3RvID0gYnJhbmNoVGVzdDY0KE5vblplcm8sIHJl
Z1QyKTsKKyAgICBsb2FkNjQoQWRkcmVzcyhyZWdUMCwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2Uoa25v
d25Qb2x5UHJvdG9PZmZzZXQpKSwgcmVnVDIpOworICAgIGhhc01vbm9Qcm90by5saW5rKHRoaXMp
OworCisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVC
bG9jaykpOworICAgIGVtaXRTdG9yZUNlbGwoYnl0ZWNvZGUubV9kc3QsIHJlZ1QyKTsKK30KKwog
dm9pZCBKSVQ6OmVtaXRfb3BfZW51bWVyYXRvcl9zdHJ1Y3R1cmVfcG5hbWUoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVu
dEluc3RydWN0aW9uLT5hczxPcEVudW1lcmF0b3JTdHJ1Y3R1cmVQbmFtZT4oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRl
eCA0YWI4MmE0ZjFmYmIwOWJhYzMyYjg2ZWQxNzE2MTc2YjliNDc1OTI5Li41NjA5NWJmZjYxYmY0
MjA0N2FmYTBjNTllMjQ2MTc3NWQxYzBjMThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC01NjcsNiArNTY3LDcgQEAg
Y29uc3QgSGFzaEZsYWdzOEJpdEJ1ZmZlciA9IGNvbnN0ZXhwciBTdHJpbmdJbXBsOjpzX2hhc2hG
bGFnOEJpdEJ1ZmZlcgogCiAjIENvcGllZCBmcm9tIFByb3BlcnR5T2Zmc2V0LmgKIGNvbnN0IGZp
cnN0T3V0T2ZMaW5lT2Zmc2V0ID0gY29uc3RleHByIGZpcnN0T3V0T2ZMaW5lT2Zmc2V0Citjb25z
dCBrbm93blBvbHlQcm90b09mZnNldCA9IGNvbnN0ZXhwciBrbm93blBvbHlQcm90b09mZnNldAog
CiAjIFJlc29sdmVUeXBlCiBjb25zdCBHbG9iYWxQcm9wZXJ0eSA9IGNvbnN0ZXhwciBHbG9iYWxQ
cm9wZXJ0eQpAQCAtMTc3NCw2ICsxNzc1LDcgQEAgaWYgbm90IEpTVkFMVUU2NAogICAgIHNsb3dQ
YXRoT3AoaGFzX3N0cnVjdHVyZV9wcm9wZXJ0eSkKICAgICBzbG93UGF0aE9wKGhhc19vd25fc3Ry
dWN0dXJlX3Byb3BlcnR5KQogICAgIHNsb3dQYXRoT3AoaW5fc3RydWN0dXJlX3Byb3BlcnR5KQor
ICAgIHNsb3dQYXRoT3AoZ2V0X3Byb3RvdHlwZV9vZikKIGVuZAogCiBzbG93UGF0aE9wKGluX2J5
X2lkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjY0LmFzbQppbmRleCA0ZTVhOGMyYjlkN2E2YmE1NmQyOTZlYjgyNTQ5MTEyYTIwNDk1
YjVmLi5kNmIwNjg0OTQ1YzE1MzA3MzlhMWVmMmQ3NWJiYjFhMDZkODA2NTQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQpAQCAtMTQ4MSw2ICsxNDgxLDMyIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lk
LCBPcEdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0CiBlbmQpCiAK
IAorbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9wcm90b3R5cGVfb2YsIE9wR2V0UHJvdG90eXBl
T2YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgZ2V0KG1fdmFsdWUs
IHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQorCisgICAgYnRx
bnogdDAsIG5vdENlbGxNYXNrLCAub3BHZXRQcm90b3R5cGVPZlNsb3cKKyAgICBiYmIgSlNDZWxs
OjptX3R5cGVbdDBdLCBPYmplY3RUeXBlLCAub3BHZXRQcm90b3R5cGVPZlNsb3cKKworICAgIGxv
YWRTdHJ1Y3R1cmVXaXRoU2NyYXRjaCh0MCwgdDIsIHQxLCB0MykKKyAgICBjb25zdCBPdmVycmlk
ZXNHZXRQcm90b3R5cGUgPSAweDQwMCAjICgxIDw8IDE4KSA+PiA4CisgICAgYnRpbnogU3RydWN0
dXJlOjptX291dE9mTGluZVR5cGVGbGFnc1t0Ml0sIE92ZXJyaWRlc0dldFByb3RvdHlwZSwgLm9w
R2V0UHJvdG90eXBlT2ZTbG93CisKKyAgICBsb2FkcSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlW3Qy
XSwgdDIKKyAgICBidHF6IHQyLCAub3BHZXRQcm90b3R5cGVPZlBvbHlQcm90bworICAgIHJldHVy
bih0MikKKworLm9wR2V0UHJvdG90eXBlT2ZTbG93OgorICAgIGNhbGxTbG93UGF0aChfc2xvd19w
YXRoX2dldF9wcm90b3R5cGVfb2YpCisgICAgZGlzcGF0Y2goKQorCisub3BHZXRQcm90b3R5cGVP
ZlBvbHlQcm90bzoKKyAgICBsb2FkaSBrbm93blBvbHlQcm90b09mZnNldCwgdDEKKyAgICBsb2Fk
UHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MCwgdDMpCisgICAgcmV0dXJuKHQzKQorZW5k
KQorCisKIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1dEJ5SWQsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQogICAgIGdldChtX2Jhc2Us
IHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQzLCB0MCwgLm9wUHV0
QnlJZFNsb3cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcAppbmRleCAzMDM0NGMxMjBlMmRiMzczYzNlMDRkNGI2Zjg2OGI3NTY4MDIwOGI5
Li40MDY0OGYxNTQ4YTg5ODJhOTI3YzMxNTY3ODIyNjdlNzI3ZDcyMDUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTEzMzMs
NiArMTMzMywxNCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2J5X3ZhbF93aXRoX3Ro
aXMpCiAgICAgUkVUVVJOX1BST0ZJTEVEKGJhc2VWYWx1ZS5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9w
ZXJ0eSwgc2xvdCkpOwogfQogCitTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X3Byb3RvdHlw
ZV9vZikKK3sKKyAgICBCRUdJTigpOworICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8T3BHZXRQ
cm90b3R5cGVPZj4oKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gR0VUX0MoYnl0ZWNvZGUubV92YWx1
ZSkuanNWYWx1ZSgpOworICAgIFJFVFVSTl9QUk9GSUxFRCh2YWx1ZS5nZXRQcm90b3R5cGUoZ2xv
YmFsT2JqZWN0KSk7Cit9CisKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWRfd2l0
aF90aGlzKQogewogICAgIEJFR0lOKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IGJlMzc0YTBlNjI2ZjJkZjgzMzBiYWM0OTIzODk2
MDgxYzRhYTQzOWQuLmVjMDQ1MmIyZWM2ZWU4NjMyZGUzNjRiMGI5Njc3YzZmMDIzZmY0MzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCkBA
IC0yNzUsNiArMjc1LDcgQEAgU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jcmVhdGVf
YXN5bmNfZ2VuZXJhdG9yKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY3JlYXRl
X3Jlc3QpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWRfd2l0aF90
aGlzKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X3ZhbF93aXRoX3Ro
aXMpOworU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfcHJvdG90eXBlX29mKTsK
IFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X2J5X2lkX3dpdGhfdGhpcyk7CiBT
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF9ieV92YWxfd2l0aF90aGlzKTsKIFNM
T1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZGVmaW5lX2RhdGFfcHJvcGVydHkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmluZGV4IGNjMmNjMTBhMWVh
ODc4NmRlM2FjYjVjNzE2NDMxNzlhNWM5ZjcyOGUuLjA4MTQ5NmI3N2M4ZTY1MDg1MmM4ZjdjOTg5
ZGUxNTRmOWE1MzA0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1Zh
bHVlLmgKQEAgLTMyMSw2ICszMjEsNyBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
Ym9vbCBwdXRUb1ByaW1pdGl2ZUJ5SW5kZXgoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwogICAgIGJvb2wgcHV0QnlJbmRl
eChKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgYm9vbCBz
aG91bGRUaHJvdyk7CiAKKyAgICBKU1ZhbHVlIGdldFByb3RvdHlwZShKU0dsb2JhbE9iamVjdCop
IGNvbnN0OwogICAgIEpTVmFsdWUgdG9UaGlzKEpTR2xvYmFsT2JqZWN0KiwgRUNNQU1vZGUpIGNv
bnN0OwogCiAgICAgc3RhdGljIGJvb2wgZXF1YWwoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHYx
LCBKU1ZhbHVlIHYyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlSW5saW5lcy5oCmluZGV4IDAxMWQ1OGJkNTc0NDg2ODBlNTRjMzhmYTdkNjNmMWY1Zjc3
MTcxMjMuLjZlZDc5YWEyNDU1YWZhMjVhNGQ0Mzc0YzE0ZTVmYjE1MTZmNDJiYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApAQCAt
MTA4MSw2ICsxMDgxLDE0IEBAIGlubGluZSBib29sIEpTVmFsdWU6OnB1dEJ5SW5kZXgoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWduZWQgcHJvcGVydHlOCiAgICAgcmV0dXJuIGFz
Q2VsbCgpLT5tZXRob2RUYWJsZShnZXRWTShnbG9iYWxPYmplY3QpKS0+cHV0QnlJbmRleChhc0Nl
bGwoKSwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9
CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBKU1ZhbHVlOjpnZXRQcm90b3R5cGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKK3sKKyAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxP
YmplY3QpOworICAgIGlmIChpc09iamVjdCgpKQorICAgICAgICByZXR1cm4gYXNPYmplY3QoYXND
ZWxsKCkpLT5nZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIHN5bnRo
ZXNpemVQcm90b3R5cGUoZ2xvYmFsT2JqZWN0KTsKK30KKwogaW5saW5lIFN0cnVjdHVyZSogSlNW
YWx1ZTo6c3RydWN0dXJlT3JOdWxsKCkgY29uc3QKIHsKICAgICBpZiAoaXNDZWxsKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5jcHAKaW5kZXggMzgxODdhN2U3MzA2NDc5OGViYmFjZjJmYTUzZmM4YzdkY2FhYTk5
OC4uZWEyNWU4Yjg5NDY5YzY5ZTdmMTFiY2MwYTAzMWFlNDczYjE2OTgxYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rp
b25zLmNwcApAQCAtNjkzLDIzICs2OTMsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b0dldHRlcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKLSAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0gICAgaWYgKHRo
aXNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoZ2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUpKTsKLQotICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxKU09iamVjdCo+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmICghdGhpc09iamVjdCkgewotICAg
ICAgICBKU09iamVjdCogcHJvdG90eXBlID0gdGhpc1ZhbHVlLnN5bnRoZXNpemVQcm90b3R5cGUo
Z2xvYmFsT2JqZWN0KTsKLSAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2VwdGlv
bigpID09ICFwcm90b3R5cGUpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCi0g
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocHJvdG90eXBlKTsKLSAgICB9Ci0KLSAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGUo
dm0sIGdsb2JhbE9iamVjdCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1
ZS5nZXRQcm90b3R5cGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwCmluZGV4IDAxNDMzM2FiOGQ3MjlmNGQyNzM5MDIzMGQxNDMyM2RjMjk3MTE3
NzIuLjc5NGFiMTIwZWFmM2NkMTJmYThkZWRiZWE2NTNkZTQ5MjFhNWRiNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTU1NCw4ICs1NTQsNyBAQCBT
dHJpbmcgSlNPYmplY3Q6OmNhbGN1bGF0ZWRDbGFzc05hbWUoSlNPYmplY3QqIG9iamVjdCkKICAg
ICAvLyBHZXQgdGhlIGRpc3BsYXkgbmFtZSBvZiBvYmouX19wcm90b19fLmNvbnN0cnVjdG9yLgog
ICAgIC8vIFRoaXMgaXMgdXNlZnVsIHRvIGdldCBgRm9vYCBmb3IgYSBgbmV3IEZvb2Agb2JqZWN0
LgogICAgIGlmIChjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZS5pc051bGwoKSkgewotICAgICAgICBN
ZXRob2RUYWJsZTo6R2V0UHJvdG90eXBlRnVuY3Rpb25QdHIgZGVmYXVsdEdldFByb3RvdHlwZSA9
IEpTT2JqZWN0OjpnZXRQcm90b3R5cGU7Ci0gICAgICAgIGlmIChMSUtFTFkoc3RydWN0dXJlLT5j
bGFzc0luZm8oKS0+bWV0aG9kVGFibGUuZ2V0UHJvdG90eXBlID09IGRlZmF1bHRHZXRQcm90b3R5
cGUpKSB7CisgICAgICAgIGlmIChMSUtFTFkoIXN0cnVjdHVyZS0+dHlwZUluZm8oKS5vdmVycmlk
ZXNHZXRQcm90b3R5cGUoKSkpIHsKICAgICAgICAgICAgIEpTVmFsdWUgcHJvdG9WYWx1ZSA9IG9i
amVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKICAgICAgICAgICAgIGlmIChwcm90b1ZhbHVl
LmlzT2JqZWN0KCkpIHsKICAgICAgICAgICAgICAgICBKU09iamVjdCogcHJvdG9PYmplY3QgPSBh
c09iamVjdChwcm90b1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCmluZGV4IDJmZDZkOTc0OWQxYzZiYzAyNWUzZjRhZjRkNDFmNzg0YzQ4OTNkNTYuLjM4MTEy
OTQxM2NhYmQ2ZjdjZmM3NWIzNWEyYWZiODhmMzIzNWUwNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTM1MywxMSArMTM1Myw5IEBAIGlubGluZSBKU1Zh
bHVlIEpTT2JqZWN0OjpnZXRQcm90b3R5cGVEaXJlY3QoVk0mIHZtKSBjb25zdAogCiBpbmxpbmUg
SlNWYWx1ZSBKU09iamVjdDo6Z2V0UHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKIHsKLSAgICBhdXRvIGdldFByb3RvdHlwZU1ldGhvZCA9IG1ldGhvZFRhYmxl
KHZtKS0+Z2V0UHJvdG90eXBlOwotICAgIE1ldGhvZFRhYmxlOjpHZXRQcm90b3R5cGVGdW5jdGlv
blB0ciBkZWZhdWx0R2V0UHJvdG90eXBlID0gSlNPYmplY3Q6OmdldFByb3RvdHlwZTsKLSAgICBp
ZiAoTElLRUxZKGdldFByb3RvdHlwZU1ldGhvZCA9PSBkZWZhdWx0R2V0UHJvdG90eXBlKSkKKyAg
ICBpZiAoTElLRUxZKCFzdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3Rv
dHlwZSgpKSkKICAgICAgICAgcmV0dXJuIGdldFByb3RvdHlwZURpcmVjdCh2bSk7Ci0gICAgcmV0
dXJuIGdldFByb3RvdHlwZU1ldGhvZCh0aGlzLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVybiBt
ZXRob2RUYWJsZSh2bSktPmdldFByb3RvdHlwZSh0aGlzLCBnbG9iYWxPYmplY3QpOwogfQogCiAv
LyBOb3JtYWxseSwgd2UgbmV2ZXIgc2hyaW5rIHRoZSBidXR0ZXJmbHkgc28gaWYgd2Uga25vdyBh
biBvZmZzZXQgaXMgdmFsaWQgZm9yIHNvbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKaW5kZXggMjBmMWQ4NTYwMzkyNWE2OGY1NGE2Mzg4ZjVm
NmNhMDE0ZmNiOGE5OC4uOWZkZjYwNzI5ODZlOGFjNDNhMTM3MDM1MDg5ZmVkZTNmYmZhNDNjYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgK
QEAgLTgzLDggKzgzLDggQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpjYW5QZXJmb3Jt
RmFzdFB1dElubGluZUV4Y2x1ZGluZ1Byb3RvKFZNJiB2bSkKICAgICBKU1ZhbHVlIHByb3RvdHlw
ZTsKICAgICBKU09iamVjdCogb2JqID0gdGhpczsKICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAg
ICBNZXRob2RUYWJsZTo6R2V0UHJvdG90eXBlRnVuY3Rpb25QdHIgZGVmYXVsdEdldFByb3RvdHlw
ZSA9IEpTT2JqZWN0OjpnZXRQcm90b3R5cGU7Ci0gICAgICAgIGlmIChvYmotPnN0cnVjdHVyZSh2
bSktPmhhc1JlYWRPbmx5T3JHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzRXhjbHVkaW5nUHJvdG8oKSB8
fCBvYmotPm1ldGhvZFRhYmxlKHZtKS0+Z2V0UHJvdG90eXBlICE9IGRlZmF1bHRHZXRQcm90b3R5
cGUpCisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gb2JqLT5zdHJ1Y3R1cmUodm0pOwor
ICAgICAgICBpZiAoc3RydWN0dXJlLT5oYXNSZWFkT25seU9yR2V0dGVyU2V0dGVyUHJvcGVydGll
c0V4Y2x1ZGluZ1Byb3RvKCkgfHwgc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFBy
b3RvdHlwZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHByb3RvdHlw
ZSA9IG9iai0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKQEAgLTEyNyw3ICsxMjcsNiBAQCBBTFdB
WVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCB1bnNpZwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKICAgICBhdXRvJiBzdHJ1Y3R1cmVJRFRhYmxlID0gdm0uaGVhcC5zdHJ1Y3R1cmVJRFRh
YmxlKCk7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IHRoaXM7Ci0gICAgTWV0aG9kVGFibGU6Okdl
dFByb3RvdHlwZUZ1bmN0aW9uUHRyIGRlZmF1bHRHZXRQcm90b3R5cGUgPSBKU09iamVjdDo6Z2V0
UHJvdG90eXBlOwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlID0gc3RydWN0dXJlSURUYWJsZS5nZXQob2JqZWN0LT5zdHJ1Y3R1cmVJRCgpKTsKICAgICAg
ICAgYm9vbCBoYXNTbG90ID0gc3RydWN0dXJlLT5jbGFzc0luZm8oKS0+bWV0aG9kVGFibGUuZ2V0
T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBzbG90KTsKQEAgLTEzNyw3ICsxMzYsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6
OmdldFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZwogICAg
ICAgICBpZiAob2JqZWN0LT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBlICYmIHNsb3QuaW50ZXJu
YWxNZXRob2RUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okhhc1By
b3BlcnR5KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBKU1ZhbHVlIHByb3Rv
dHlwZTsKLSAgICAgICAgaWYgKExJS0VMWShzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5tZXRob2RU
YWJsZS5nZXRQcm90b3R5cGUgPT0gZGVmYXVsdEdldFByb3RvdHlwZSB8fCBzbG90LmludGVybmFs
TWV0aG9kVHlwZSgpID09IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVp
cnkpKQorICAgICAgICBpZiAoTElLRUxZKCFzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkub3ZlcnJpZGVz
R2V0UHJvdG90eXBlKCkgfHwgc2xvdC5pbnRlcm5hbE1ldGhvZFR5cGUoKSA9PSBQcm9wZXJ0eVNs
b3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5KSkKICAgICAgICAgICAgIHByb3RvdHlw
ZSA9IG9iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICBwcm90b3R5cGUgPSBvYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0
KTsKQEAgLTE2NSw3ICsxNjQsNiBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldE5v
bkluZGV4UHJvcGVydHlTbG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBhdXRvJiBzdHJ1Y3R1cmVJRFRh
YmxlID0gdm0uaGVhcC5zdHJ1Y3R1cmVJRFRhYmxlKCk7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9
IHRoaXM7Ci0gICAgTWV0aG9kVGFibGU6OkdldFByb3RvdHlwZUZ1bmN0aW9uUHRyIGRlZmF1bHRH
ZXRQcm90b3R5cGUgPSBKU09iamVjdDo6Z2V0UHJvdG90eXBlOwogICAgIHdoaWxlICh0cnVlKSB7
CiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gc3RydWN0dXJlSURUYWJsZS5nZXQob2Jq
ZWN0LT5zdHJ1Y3R1cmVJRCgpKTsKICAgICAgICAgaWYgKExJS0VMWSghVHlwZUluZm86Om92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdChvYmplY3QtPmlubGluZVR5cGVGbGFncygpKSkpIHsKQEAg
LTE4MCw3ICsxNzgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldE5vbkluZGV4
UHJvcGVydHlTbG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZTsKLSAg
ICAgICAgaWYgKExJS0VMWShzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5tZXRob2RUYWJsZS5nZXRQ
cm90b3R5cGUgPT0gZGVmYXVsdEdldFByb3RvdHlwZSB8fCBzbG90LmludGVybmFsTWV0aG9kVHlw
ZSgpID09IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkpKQorICAg
ICAgICBpZiAoTElLRUxZKCFzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0UHJvdG90
eXBlKCkgfHwgc2xvdC5pbnRlcm5hbE1ldGhvZFR5cGUoKSA9PSBQcm9wZXJ0eVNsb3Q6OkludGVy
bmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5KSkKICAgICAgICAgICAgIHByb3RvdHlwZSA9IG9iamVj
dC0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBw
cm90b3R5cGUgPSBvYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuaAppbmRleCA1YmU3YmYwZDJlNWE4YjMyYzc5
NGMwYjI1ODk1Nzk4ZmM1ZjllZjhhLi4yODFlZTUzNDg3ZGRhZGU3MjA1MWUzYjQ1NjgzMzg5MmFj
NGVkYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3h5
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94eS5oCkBAIC0zMiw3
ICszMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNQcm94eSA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsK
LSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzIHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hl
bkxlbmd0aElzTm90WmVybzsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVzR2V0UHJvdG90eXBlIHwg
SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVy
bzsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4KICAg
ICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAppbmRleCA4OGUzMGYyMDlkZDZjMzcxMzdjYTA3
OTg4MjY2ZjM1NjdmYzEyOGZlLi42NzZmYTBhYmRkMTQzZTlmMmRiN2RhOGQ3YjE5YWJjMzlkNmY0
YjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZv
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCkBAIC01
Nyw2ICs1Nyw3IEBAIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgR2V0T3duUHJvcGVydHlTbG90
SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgPSAxIDw8IDE0CiBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gPSAxIDw8IDE1Owogc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVJ
c0ltbW9ydGFsID0gMSA8PCAxNjsKIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgSGFzUHV0UHJv
cGVydHlTZWN1cml0eUNoZWNrID0gMSA8PCAxNzsKK3N0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
T3ZlcnJpZGVzR2V0UHJvdG90eXBlID0gMSA8PCAxODsKIAogY2xhc3MgVHlwZUluZm8gewogcHVi
bGljOgpAQCAtOTQsNiArOTUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBvdmVycmlkZXNUb1RoaXMo
KSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKE92ZXJyaWRlc1RvVGhpcyk7IH0KICAgICBi
b29sIHN0cnVjdHVyZUlzSW1tb3J0YWwoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyKFN0
cnVjdHVyZUlzSW1tb3J0YWwpOyB9CiAgICAgYm9vbCBvdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
KCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
KTsgfQorICAgIGJvb2wgb3ZlcnJpZGVzR2V0UHJvdG90eXBlKCkgY29uc3QgeyByZXR1cm4gaXNT
ZXRPbkZsYWdzMihPdmVycmlkZXNHZXRQcm90b3R5cGUpOyB9CiAgICAgYm9vbCBwcm9oaWJpdHNQ
cm9wZXJ0eUNhY2hpbmcoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MyKFByb2hpYml0c1By
b3BlcnR5Q2FjaGluZyk7IH0KICAgICBib29sIGdldE93blByb3BlcnR5U2xvdElzSW1wdXJlKCkg
Y29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSk7
IH0KICAgICBib29sIGdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNl
KCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMihHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVy
ZUZvclByb3BlcnR5QWJzZW5jZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCBkZGY2OGQzNTM3MTQxZDg4ZDViOWJi
YTk5ZjMwNDk1MjQ3N2UxODE3Li42ZDY5MDMwNDUxYmNlMTEzMzU0N2U0NjQ0ZjllNDkwMDk3YzIy
ZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwCkBAIC0xNDQsMTEgKzE0NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90
b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKIHsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTT2JqZWN0KiBvYmplY3QgPSBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLnRvT2JqZWN0KGdsb2JhbE9iamVjdCk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUob2JqZWN0LT5nZXRQcm90b3R5cGUodm0sIGdsb2JhbE9i
amVjdCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+YXJndW1lbnQo
MCkuZ2V0UHJvdG90eXBlKGdsb2JhbE9iamVjdCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yU2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaAppbmRleCBhNzc4YjU3Y2I5N2RjMTNjNGU0ZWEwOTZm
ZmRlMWM2YzEzZGU4OGRmLi5mODdmN2JlODJmY2I0NWYzMmM5MzAwNGVkNDlkMjg5OWNiOGE2ZjQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKQEAgLTM0
LDcgKzM0LDcgQEAgY2xhc3MgUHJveHlPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKLSAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRDYWxs
RGF0YSB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgUHJvaGliaXRzUHJvcGVydHlD
YWNoaW5nOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJy
aWRlc0dldENhbGxEYXRhIHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVu
V2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBPdmVycmlk
ZXNHZXRQcm90b3R5cGUgfCBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmc7CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3MgbW9kZT4KICAgICBzdGF0aWMgSXNv
U3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmgKaW5kZXggYTkyNDM1ZGU5NzMzZmFiNzVmNDMxYTI1NjE0YjFhNGVmZjg3
NWU5ZS4uN2E4NzI0MDY2NWJiZTg2OTc0NzNhMWY0N2E5ZTI1ZmU0NzQ1MzIyNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTU1Nyw3ICs1NTcsMTIgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUs
IG1fY2xhc3NJbmZvKTsKICAgICB9Ci0gICAgICAgIAorCisgICAgc3RhdGljIHB0cmRpZmZfdCBv
dXRPZkxpbmVUeXBlRmxhZ3NPZmZzZXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihTdHJ1Y3R1cmUsIG1fb3V0T2ZMaW5lVHlwZUZsYWdzKTsKKyAgICB9CisKICAgICBz
dGF0aWMgcHRyZGlmZl90IGluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1fYmxvYikgKyBT
dHJ1Y3R1cmVJREJsb2I6OmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3RvcnlPZmZzZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
aW5kZXggNzVhMTRhMDM0NTNlNWJiNzBjYTYyNGUwYjMzZDM3MTg4YzkzMzhmOS4uY2JjOWI1MmRh
YzY4MDVmMGNjODY2NWY0YTFiMjIzNWRjYjJlOGJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI3MTAsNiArMjcxMCw3
IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIAogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRQcm90b3R5cGV9KSB7CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRQcm90b3R5cGUoSlNDOjpKU09i
amVjdCosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpOworICAgICAgICAkc3RydWN0dXJlRmxh
Z3N7IkpTQzo6T3ZlcnJpZGVzR2V0UHJvdG90eXBlIn0gPSAxOwogICAgIH0KICAgICAKICAgICBp
ZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tVG9TdHJpbmdOYW1lfSkg
ewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCA2NTRjYWVkYTQzYzQ3Y2M2NGEwYTU1YmQzYWI1MzZhNmZkN2FlODE0Li4wMTY4YmRjMTk3NjEx
N2Y1ZWQ0YWZjMTY0ZjgxYTc0NGVmMDA1NzgzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA2LTAxICBB
bGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBzdXBlciBz
aG91bGQgbm90IGRlcGVuZCBvbiBfX3Byb3RvX18KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzk3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL29iamVjdC1nZXQtcHJvdG90
eXBlLW9mLXByaW1pdGl2ZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2NsYXNzLXN5bnRh
eC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0b3IuanM6CisgICAgICAgICogc3RyZXNzL2dldC1w
cm90b3R5cGUtb2YuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9zdXBlci1wcm9wZXJ0eS1h
Y2Nlc3MuanM6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDogTWFyayA0IHRl
c3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wNi0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEpTVmFsdWU6OnRvVGhpcyBzaG91bGQgbm90
IHRocm93IGV4Y2VwdGlvbgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvb2Jq
ZWN0LWdldC1wcm90b3R5cGUtb2YtcHJpbWl0aXZlLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFy
a3Mvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YtcHJpbWl0aXZlLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4Zjk3
YTRjOGFmNmJkYWRlM2ZjNDM4Mzk1ODZlNzU4NDUzMWU0YTQKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZi1wcmltaXRpdmUu
anMKQEAgLTAsMCArMSwxMiBAQAorY29uc3Qgc3ltID0gU3ltYm9sKCk7CitmdW5jdGlvbiB0ZXN0
KCkgeworICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZihmYWxzZSk7CisgICAgT2JqZWN0LmdldFBy
b3RvdHlwZU9mKC0xKTsKKyAgICBPYmplY3QuZ2V0UHJvdG90eXBlT2YoIiIpOworICAgIE9iamVj
dC5nZXRQcm90b3R5cGVPZihzeW0pOworICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZigzbik7Cit9
Citub0lubGluZSh0ZXN0KTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTc7ICsraSkKKyAgICB0
ZXN0KCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50YXgtZGVyaXZlZC1k
ZWZhdWx0LWNvbnN0cnVjdG9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvY2xhc3Mtc3ludGF4LWRlcml2
ZWQtZGVmYXVsdC1jb25zdHJ1Y3Rvci5qcwppbmRleCBmMGM0NzdlNWY1MTgzZWU1ZjQ4Mjg0ODBk
NzVmMDI1Y2EyOWVmMTZlLi4yNGJkNjQyOTI1ZmYzODI5N2IyZTJiYjQ1YzJkOTRiNTVlNGVjNDk5
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9jbGFzcy1zeW50YXgtZGVyaXZlZC1kZWZhdWx0
LWNvbnN0cnVjdG9yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVk
LWRlZmF1bHQtY29uc3RydWN0b3IuanMKQEAgLTEsMyArMSw0IEBACitPYmplY3QuZGVmaW5lUHJv
cGVydHkoT2JqZWN0LnByb3RvdHlwZSwgIl9fcHJvdG9fXyIsIHtnZXQ6IHVuZGVmaW5lZH0pOwog
CiB2YXIgQSA9IGNsYXNzIEEgeyB9OwogdmFyIEIgPSBjbGFzcyBCIGV4dGVuZHMgQSB7IH07CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nZXQtcHJvdG90eXBlLW9mLmpzIGIvSlNUZXN0cy9z
dHJlc3MvZ2V0LXByb3RvdHlwZS1vZi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTQ1ZWJiMDc2YjE1NjFhYTli
Y2MwNWJhOGExNjJlOWUzN2U0OGNhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
Z2V0LXByb3RvdHlwZS1vZi5qcwpAQCAtMCwwICsxLDY0IEBACitmdW5jdGlvbiBhc3NlcnQoeCkg
eworICAgIGlmICgheCkKKyAgICAgICAgdGhyb3cgRXJyb3IoIkJhZCIpOworfQorCitmdW5jdGlv
biBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3JUaHJvd24g
PSBmYWxzZTsKKyAgICB2YXIgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJv
ciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBF
cnJvcignbm90IHRocm93bicpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3Nh
Z2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke2Vycm9yfWApOworfQor
CitmdW5jdGlvbiBtYWtlUG9seVByb3RvT2JqZWN0KCkgeworICAgIGZ1bmN0aW9uIGZvbygpIHsK
KyAgICAgICAgY2xhc3MgQyB7CisgICAgICAgICAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9maWVsZCA9IDQyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIHJldHVybiBuZXcgQygpOworICAgIH0KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7
ICsraSkKKyAgICAgICAgZm9vKCk7CisgICAgcmV0dXJuIGZvbygpOworfQorCitjb25zdCBnZXRQ
cm90b3R5cGVPZiA9ICR2bS5jcmVhdGVCdWlsdGluKCIoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIEBn
ZXRQcm90b3R5cGVPZih2KTsgfSkiKTsKK25vSW5saW5lKGdldFByb3RvdHlwZU9mKTsKKworY29u
c3QgcHJveHlQcm90b3R5cGUgPSB7fTsKK2NvbnN0IHByb3h5ID0gbmV3IFByb3h5KHt9LCB7Cisg
ICAgZ2V0UHJvdG90eXBlT2Y6ICgpID0+IHByb3h5UHJvdG90eXBlLAorfSk7CisKK2NvbnN0IHBv
bHlQcm90b09iamVjdCA9IG1ha2VQb2x5UHJvdG9PYmplY3QoKTsKKworZm9yIChsZXQgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgeworICAgIHNob3VsZFRocm93KCgpID0+IGdldFByb3RvdHlwZU9mKHVu
ZGVmaW5lZCksICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0Iik7CisgICAg
c2hvdWxkVGhyb3coKCkgPT4gZ2V0UHJvdG90eXBlT2YobnVsbCksICJUeXBlRXJyb3I6IG51bGwg
aXMgbm90IGFuIG9iamVjdCIpOworCisgICAgYXNzZXJ0KGdldFByb3RvdHlwZU9mKHRydWUpID09
PSBCb29sZWFuLnByb3RvdHlwZSk7CisgICAgYXNzZXJ0KGdldFByb3RvdHlwZU9mKDEpID09PSBO
dW1iZXIucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZ2V0UHJvdG90eXBlT2YoImZvbyIpID09PSBT
dHJpbmcucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZ2V0UHJvdG90eXBlT2YoU3ltYm9sKCkpID09
PSBTeW1ib2wucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZ2V0UHJvdG90eXBlT2YoMTBuKSA9PT0g
QmlnSW50LnByb3RvdHlwZSk7CisKKyAgICBhc3NlcnQoZ2V0UHJvdG90eXBlT2Yoe30pID09PSBP
YmplY3QucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZ2V0UHJvdG90eXBlT2YoW10pID09PSBBcnJh
eS5wcm90b3R5cGUpOworICAgIGFzc2VydChnZXRQcm90b3R5cGVPZigoKSA9PiB7fSkgPT09IEZ1
bmN0aW9uLnByb3RvdHlwZSk7CisKKyAgICBhc3NlcnQoZ2V0UHJvdG90eXBlT2YoT2JqZWN0LnBy
b3RvdHlwZSkgPT09IG51bGwpOworICAgIGFzc2VydChnZXRQcm90b3R5cGVPZihPYmplY3QuY3Jl
YXRlKG51bGwpKSA9PT0gbnVsbCk7CisKKyAgICBhc3NlcnQoZ2V0UHJvdG90eXBlT2YocHJveHkp
ID09PSBwcm94eVByb3RvdHlwZSk7CisgICAgYXNzZXJ0KGdldFByb3RvdHlwZU9mKHBvbHlQcm90
b09iamVjdCkgPT09IHBvbHlQcm90b09iamVjdC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUpOworfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc3VwZXItcHJvcGVydHktYWNjZXNzLmpzIGIvSlNU
ZXN0cy9zdHJlc3Mvc3VwZXItcHJvcGVydHktYWNjZXNzLmpzCmluZGV4IDY1OTk2YTc1OTc1NGNk
OTUxN2U2YzI1YWViOTVkMmY2YWM3ZmE3MzYuLjYxOGFiM2I2YzI1MjlmZGU4OTFmOWJkZmY1NGJk
M2U2YjUzYTA1MGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3N1cGVyLXByb3BlcnR5LWFj
Y2Vzcy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zdXBlci1wcm9wZXJ0eS1hY2Nlc3MuanMKQEAg
LTEsMyArMSw1IEBACitPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgIl9f
cHJvdG9fXyIsIHtnZXQ6IHVuZGVmaW5lZH0pOworCiBmdW5jdGlvbiBhc3NlcnQoYiwgbSA9ICJC
YWQhIikgewogICAgIGlmICghYikgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3IobSk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3Qy
NjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggNTEwNjI5NjNjYzdjZmZhOTg4NDM0ODBmZDQ3OThl
NjE0ZGJmNjdmZS4uZmQyMDljYjE4YmUwY2Q1Nzg1MGI5MWJmNGYyNGMyMGM3YTE0ZjNmYSAxMDA2
NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMv
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMzAxMSwxMiArMzAxMSw2IEBAIHRlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvcHJlZml4LWluY3JlbWVudC9TMTEuNC40X0E1X1Q1LmpzOgogdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9wcmVmaXgtaW5jcmVtZW50L1MxMS40LjRfQTZfVDMuanM6
CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxzZScK
ICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIHRydWUgYnV0IGdvdCBmYWxz
ZScKLXRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvc3VwZXIvY2FsbC1wb2lzb25lZC11bmRlcnNj
b3JlLXByb3RvLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBzaG91bGQgbm90IGJlIGNh
bGxlZCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IHNob3VsZCBub3QgYmUgY2FsbGVk
JwotdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9zdXBlci9wcm9wLXBvaXNvbmVkLXVuZGVyc2Nv
cmUtcHJvdG8uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IHNob3VsZCBub3QgYmUgY2Fs
bGVkJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogc2hvdWxkIG5vdCBiZSBjYWxsZWQn
CiB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL3lpZWxkL3N0YXItaXRlcmFibGUuanM6CiAgIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEZpcnN0IHJlc3VsdCBgZG9uZWAgZmxhZyBFeHBlY3RlZCBT
YW1lVmFsdWUowqtmYWxzZcK7LCDCq3VuZGVmaW5lZMK7KSB0byBiZSB0cnVlJwogICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogRmlyc3QgcmVzdWx0IGBkb25lYCBmbGFnIEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq2ZhbHNlwrssIMKrdW5kZWZpbmVkwrspIHRvIGJlIHRydWUnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401781</attachid>
            <date>2020-06-12 14:20:45 -0700</date>
            <delta_ts>2020-06-15 07:46:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157972-20200613002043.patch</filename>
            <type>text/plain</type>
            <size>48973</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YWU2MjY3ODhhOTFlNGFiZjA2ZjY5MWE3ZGVjZDE2NWJlM2ExNzMzLi5kOWMyNmE2YTFmYWVhNTRk
YTFiMmI2MWM5NTEzYTg3ZjY4MThhZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MCBAQAorMjAyMC0wNi0xMiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgc3VwZXIgc2hvdWxkIG5vdCBkZXBlbmQgb24gX19wcm90b19fCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc5NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICBCZWZvcmUgdGhpcyBj
aGFuZ2UsIGJvdGggc3VwZXIoKSBjYWxsIFsxXSBhbmQgc3VwZXIucHJvcGVydHkgWzJdIHJlbGll
ZCBvbgorICAgICAgICBPYmplY3QucHJvdG90eXBlLl9fcHJvdG9fXyB0byBhY3F1aXJlIHN1cGVy
IGJhc2UsIHdoaWNoIHdhcyBvYnNlcnZhYmxlIGFuZAorICAgICAgICBpbmNvcnJlY3QgaWYgX19w
cm90b19fIGdldHMgcmVtb3ZlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgZ2V0
X3Byb3RvdHlwZV9vZiBieXRlY29kZSwgZW5zdXJpbmcgcmV0dXJuZWQgdmFsdWVzCisgICAgICAg
IGFyZSBwcm9maWxlZCBzbyB0aGUgb3AgY2FuIGJlIHdpcmVkIHRvIGV4aXN0aW5nIERGRyBhbmQg
RlRMIGltcGxlbWVudGF0aW9ucy4KKyAgICAgICAgSW4gb3JkZXIgdG8gYXZvaWQgcGVyZm9ybWFu
Y2UgcmVncmVzc2lvbiB3L28gREZHIChfX3Byb3RvX18gaXMgb3B0aW1pemVkIHZpYQorICAgICAg
ICBJbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlKSwgZmFzdCBwYXRocyBmb3IgTExJbnQgYW5kIGJh
c2VsaW5lIEpJVCBhcmUgYWRkZWQKKyAgICAgICAgKDY0LWJpdCBvbmx5KSwgdXRpbGl6aW5nIE92
ZXJyaWRlc0dldFByb3RvdHlwZU91dE9mTGluZSB0eXBlIGluZm8gZmxhZy4KKworICAgICAgICBU
aGlzIGNoYW5nZSBhbGlnbnMgSlNDIHdpdGggVjggYW5kIFNwaWRlck1vbmtleSwgcHJvZ3Jlc3Np
bmcgbWljcm9iZW5jaG1hcmtzLworICAgICAgICBzdXBlci1nZXQtYnkte2lkLHZhbH0td2l0aC10
aGlzLW1vbm9tb3JwaGljLmpzIGJ5IDctMTAlLiBTaXhTcGVlZCBpcyBuZXV0cmFsLgorCisgICAg
ICAgIEFsc28sIGV4dHJhY3RzIEpTVmFsdWU6OmdldFByb3RvdHlwZSgpIG1ldGhvZCB0byBhdm9p
ZCBjb2RlIGR1cGxpY2F0aW9uIGFuZAorICAgICAgICB1dGlsaXplcyBpdCBpbiBvYmplY3RDb25z
dHJ1Y3RvckdldFByb3RvdHlwZU9mKCksIGFkdmFuY2luZyBwcm92aWRlZAorICAgICAgICBtaWNy
b2JlbmNobWFyayBieSA0MCUuCisKKyAgICAgICAgWzFdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2
Mi8jc2VjLWdldHN1cGVyY29uc3RydWN0b3IgKHN0ZXAgNSkKKyAgICAgICAgWzJdOiBodHRwczov
L3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldHN1cGVyYmFzZSAoc3RlcCA1KQorCisgICAgICAgICog
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVJbnRy
aW5zaWNSZWdpc3RyeS5oOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYjoKKyAg
ICAgICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHA6CisgICAgICAgIChKU0M6OmNvbXB1
dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAoSlNDOjpjb21wdXRlRGVmc0Zv
ckJ5dGVjb2RlSW5kZXhJbXBsKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBieXRl
Y29kZS9PcGNvZGUuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldFByb3RvdHlwZU9m
KToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAg
KiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6ZW1pdFN1cGVy
QmFzZUZvckNhbGxlZSk6CisgICAgICAgIChKU0M6OmVtaXRHZXRTdXBlckZ1bmN0aW9uRm9yQ29u
c3RydWN0KToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJp
bnNpY19nZXRQcm90b3R5cGVPZik6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0
cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJ
bnRyaW5zaWNHZXR0ZXIpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJz
ZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNw
cDoKKyAgICAgICAgKiBqaXQvSW50cmluc2ljRW1pdHRlci5jcHA6CisgICAgICAgIChKU0M6Oklu
dHJpbnNpY0dldHRlckFjY2Vzc0Nhc2U6OmNhbkVtaXRJbnRyaW5zaWNHZXR0ZXIpOgorICAgICAg
ICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBh
c3MpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKToKKyAgICAg
ICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X3Byb3RvdHlwZV9vZik6CisgICAgICAgICogbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjY0LmFzbToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6CisgICAgICAg
IChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJvdG90eXBl
IGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcDoK
KyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0dGVyKToKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNhbGN1bGF0ZWRDbGFzc05h
bWUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmpl
Y3Q6OmdldFByb3RvdHlwZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmNhblBlcmZvcm1GYXN0UHV0SW5saW5lRXhjbHVkaW5n
UHJvdG8pOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0UHJvcGVydHlTbG90KToKKyAgICAg
ICAgKEpTQzo6SlNPYmplY3Q6OmdldE5vbkluZGV4UHJvcGVydHlTbG90KToKKyAgICAgICAgKiBy
dW50aW1lL0pTUHJveHkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZUluZm8uaDoKKyAgICAg
ICAgKEpTQzo6VHlwZUluZm86Om92ZXJyaWRlc0dldFByb3RvdHlwZSBjb25zdCk6CisgICAgICAg
ICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Om9iamVjdENv
bnN0cnVjdG9yR2V0UHJvdG90eXBlT2YpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3Qu
aDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
dWN0dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjp2YWxpZGF0ZUZsYWdzKToKKwog
MjAyMC0wNi0xMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBM
aW5lYXIgU2NhbiB1c2VzIHRoZSB3cm9uZyBJbnRlcnZhbCBmb3Igc3BpbGxzIGZvciB0bXBzIHdp
dGggcm9sZXMgb2YgZWFybHkgZGVmIG9yIGxhdGUgdXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDgzOTlkN2Jl
NzE0OTNjOGEwOTFiMTM0Y2Q4OWJkNzg4MzE4ODZhOC4uZDFjOTU5ZTkxYTVkM2E1YmMwNWRmODNh
Y2ZhN2ZhZjk4ZDVkMjQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA2LTEy
ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBzdXBl
ciBzaG91bGQgbm90IGRlcGVuZCBvbiBfX3Byb3RvX18KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzk3MgorCisgICAgICAgIFJldmlld2VkIGJ5IFNh
YW0gQmFyYXRpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgor
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAg
IChHZW5lcmF0ZUhlYWRlcik6IFNldCBPdmVycmlkZXNHZXRQcm90b3R5cGUgc3RydWN0dXJlIGZs
YWcgZm9yIEN1c3RvbUdldFByb3RvdHlwZSBJREwgYXR0cmlidXRlLgorCiAyMDIwLTA2LTEyICBU
ZXRzdWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CiAKICAgICAgICAg
RmlsZVJlYWRlci5lcnJvciBzaG91bGQgYmUgRE9NRXhjZXB0aW9uIG5vdwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDc0NTQ4OGJlZGEwNDFl
YTc5YTkzYzE1ZjQ3ZThmNGM0MjYzOTlhNzUuLmE4ODU1NWIxNGZkNDY1OGYwZDk1ODA1MDQ1NTY3
MWU4MjMxYzU1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9C
dWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bk5hbWVzLmgKQEAgLTY1LDcgKzY1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgbWFjcm8oY3Jl
YXRlKSBcCiAgICAgbWFjcm8oZGVmaW5lUHJvcGVydHkpIFwKICAgICBtYWNybyhkZWZhdWx0UHJv
bWlzZVRoZW4pIFwKLSAgICBtYWNybyhnZXRQcm90b3R5cGVPZikgXAogICAgIG1hY3JvKGdldE93
blByb3BlcnR5TmFtZXMpIFwKICAgICBtYWNybyhvd25LZXlzKSBcCiAgICAgbWFjcm8oU2V0KSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRy
aW5zaWNSZWdpc3RyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
SW50cmluc2ljUmVnaXN0cnkuaAppbmRleCAwOTFkNzhjNjNlYTgxZTc2YjIyYmFjYmUzNzMzOWQz
MWFiOGQ2N2E5Li45ZTcxMGI4NjFjODkwZTBhOGZlYWJhMGFmYjUyNmQwNGUyYzVkMTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNS
ZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUlu
dHJpbnNpY1JlZ2lzdHJ5LmgKQEAgLTQyLDYgKzQyLDcgQEAgZW51bSBjbGFzcyBMaW5rVGltZUNv
bnN0YW50IDogaW50MzJfdDsKICAgICBtYWNybyhhcmd1bWVudENvdW50KSBcCiAgICAgbWFjcm8o
Z2V0QnlJZERpcmVjdCkgXAogICAgIG1hY3JvKGdldEJ5SWREaXJlY3RQcml2YXRlKSBcCisgICAg
bWFjcm8oZ2V0UHJvdG90eXBlT2YpIFwKICAgICBtYWNybyhnZXRQcm9taXNlSW50ZXJuYWxGaWVs
ZCkgXAogICAgIG1hY3JvKGdldEdlbmVyYXRvckludGVybmFsRmllbGQpIFwKICAgICBtYWNybyhn
ZXRBc3luY0dlbmVyYXRvckludGVybmFsRmllbGQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCmluZGV4IGQzZTY3OGI1MmQzM2MzZWQ2OWNmY2Zj
YWY4MzM0N2ZmZGQyNWExOGYuLjA4YWVhZTlmN2NlOTJjZGRkZmYyNzUzYzlhNDczODUyMDMwZjYy
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxp
c3QucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5y
YgpAQCAtNDk4LDYgKzQ5OCwxNSBAQCBvcCA6Z2V0X2J5X2lkX2RpcmVjdCwKICAgICAgICAgb2Zm
c2V0OiB1bnNpZ25lZCwKICAgICB9CiAKK29wIDpnZXRfcHJvdG90eXBlX29mLAorICAgIGFyZ3M6
IHsKKyAgICAgICAgZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAgICAgIHZhbHVlOiBWaXJ0dWFs
UmVnaXN0ZXIsCisgICAgfSwKKyAgICBtZXRhZGF0YTogeworICAgICAgICBwcm9maWxlOiBWYWx1
ZVByb2ZpbGUsCisgICAgfQorCiBvcCA6dHJ5X2dldF9ieV9pZCwKICAgICBhcmdzOiB7CiAgICAg
ICAgIGRzdDogVmlydHVhbFJlZ2lzdGVyLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKaW5kZXggYjBmMmU4MDJkNzI3YzdmOGUzMjk0YzE1
NWI5MWNiMmM4ZGJlOWU0ZC4uY2U0NzBjOTIyZTg4M2ZlMDE3ZjA4ZDZiMmYzNjcyNDU3M2RlODE5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNl
RGVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VE
ZWYuY3BwCkBAIC0xNjcsNiArMTY3LDcgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5k
ZXhJbXBsKFZpcnR1YWxSZWdpc3RlciBzY29wZVJlZ2lzdGVyLCBjb25zdCBJbnN0cnUKICAgICBV
U0VTKE9wVHJ5R2V0QnlJZCwgYmFzZSkKICAgICBVU0VTKE9wR2V0QnlJZCwgYmFzZSkKICAgICBV
U0VTKE9wR2V0QnlJZERpcmVjdCwgYmFzZSkKKyAgICBVU0VTKE9wR2V0UHJvdG90eXBlT2YsIHZh
bHVlKQogICAgIFVTRVMoT3BJbkJ5SWQsIGJhc2UpCiAgICAgVVNFUyhPcFR5cGVvZiwgdmFsdWUp
CiAgICAgVVNFUyhPcElzRW1wdHksIG9wZXJhbmQpCkBAIC00MjUsNiArNDI2LDcgQEAgdm9pZCBj
b21wdXRlRGVmc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKHVuc2lnbmVkIG51bVZhcnMsIGNvbnN0IElu
c3RydWN0aW9uKiBpbnN0cnUKICAgICBERUZTKE9wR2V0QnlJZERpcmVjdCwgZHN0KQogICAgIERF
RlMoT3BHZXRCeUlkV2l0aFRoaXMsIGRzdCkKICAgICBERUZTKE9wR2V0QnlWYWxXaXRoVGhpcywg
ZHN0KQorICAgIERFRlMoT3BHZXRQcm90b3R5cGVPZiwgZHN0KQogICAgIERFRlMoT3BPdmVycmlk
ZXNIYXNJbnN0YW5jZSwgZHN0KQogICAgIERFRlMoT3BJbnN0YW5jZW9mLCBkc3QpCiAgICAgREVG
UyhPcEluc3RhbmNlb2ZDdXN0b20sIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKaW5kZXggOTUwMjM4OTk5ZGIxYmYwNGJhMzZhYTJhOTUyMjkwNzYy
NTBlYWNhZi4uZTk4ZjZjMmNjNWU0MWYzYTY1MGEyNDI5NDVmZWJmYjc2MTExMjIwYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTUxNCw2ICs1
MTQsNyBAQCBib29sIENvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBTY3JpcHRFeGVj
dXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGluawogICAgICAgICBMSU5LKE9wVHJ5R2V0QnlJ
ZCwgcHJvZmlsZSkKICAgICAgICAgTElOSyhPcEdldEJ5SWREaXJlY3QsIHByb2ZpbGUpCiAgICAg
ICAgIExJTksoT3BHZXRCeVZhbFdpdGhUaGlzLCBwcm9maWxlKQorICAgICAgICBMSU5LKE9wR2V0
UHJvdG90eXBlT2YsIHByb2ZpbGUpCiAgICAgICAgIExJTksoT3BHZXRGcm9tQXJndW1lbnRzLCBw
cm9maWxlKQogICAgICAgICBMSU5LKE9wVG9OdW1iZXIsIHByb2ZpbGUpCiAgICAgICAgIExJTkso
T3BUb051bWVyaWMsIHByb2ZpbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvT3Bjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2Rl
LmgKaW5kZXggYWE4ODU5YWRkNjI4NjBmZmRhZGI0ZDIyMjg3YzM0YjA3Y2U1YjMzNC4uYTkwZGM0
MzY0YzkwZGQ5NWQxOWE3ZGIzNDIzMjEyZDYwMTQ1ZTA3MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9PcGNvZGUuaApAQCAtMTA1LDYgKzEwNSw3IEBAIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgYml0V2lkdGhGb3JNYXhPcGNvZGVMZW5ndGggPSBXVEY6OmdldE1TQlNldENvbnN0
ZXhwcihtCiAgICAgbWFjcm8oT3BUcnlHZXRCeUlkKSBcCiAgICAgbWFjcm8oT3BHZXRCeUlkRGly
ZWN0KSBcCiAgICAgbWFjcm8oT3BHZXRCeVZhbFdpdGhUaGlzKSBcCisgICAgbWFjcm8oT3BHZXRQ
cm90b3R5cGVPZikgXAogICAgIG1hY3JvKE9wR2V0RnJvbUFyZ3VtZW50cykgXAogICAgIG1hY3Jv
KE9wVG9OdW1iZXIpIFwKICAgICBtYWNybyhPcFRvTnVtZXJpYykgXApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApp
bmRleCA4OGVlNGEzYTZlMzFiMGYwODdiYjU0Y2Y0MmQ1N2RhZWJkNTJkYmRiLi5jODEwOGQ2OTI5
YjcxOTA1MDI2YzcwYjUwZmQyZjExOTRhZGYxZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMjY4
Niw2ICsyNjg2LDEyIEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0QnlW
YWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSCiAgICAgcmV0dXJuIGRzdDsK
IH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRQcm90b3R5cGVPZihS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlKQoreworICAgIE9wR2V0UHJvdG90eXBl
T2Y6OmVtaXQodGhpcywgZHN0LCB2YWx1ZSk7CisgICAgcmV0dXJuIGRzdDsKK30KKwogUmVnaXN0
ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBS
ZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpCiB7CiAgICAgT3BQdXRCeVZh
bDo6ZW1pdCh0aGlzLCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUsIGVjbWFNb2RlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oCmluZGV4IGM0YjNlZDc2NjYyOWRiNjJjYWZlNzM3N2UwMWQxMmE3ZTFhZjEyMjYuLjVlMTky
NDU0NTNmNGZmOTk4YWI2ZWNlNTIyZTUwMWU0ZWM1NjFlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTgx
MSw2ICs4MTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERl
bGV0ZUJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlm
aWVyJik7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRCeVZhbChSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5KTsKICAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdEdldEJ5VmFsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVn
aXN0ZXJJRCogdGhpc1ZhbHVlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSk7CisgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRHZXRQcm90b3R5cGVPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZh
bHVlKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFB1dEJ5VmFsKFJlZ2lzdGVySUQqIGJhc2Us
IFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRQdXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiB0aGlzVmFs
dWUsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSk7CiAgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXREaXJlY3RHZXRCeVZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQq
IGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCA0MTk0ZDk0ZGYwYzYwNWY2
YzRhMWNmMjdhNDU5NmQ1N2Y0Y2IwMThmLi45ZmIyMWYzYTRmMDhjNGViMzE5OTYyY2EzZDJmOWU0
ZTAwNTM1YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xOTMsMTcgKzE5MywxNyBAQCBzdGF0aWMgUmVnaXN0ZXJJ
RCogZW1pdEhvbWVPYmplY3RGb3JDYWxsZWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikK
IHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3VwZXJCYXNlRm9yQ2FsbGVlKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IpCiB7CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGhvbWVPYmplY3QgPSBl
bWl0SG9tZU9iamVjdEZvckNhbGxlZShnZW5lcmF0b3IpOwotICAgIHJldHVybiBnZW5lcmF0b3Iu
ZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBob21lT2JqZWN0LmdldCgpLCBn
ZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLnVuZGVyc2NvcmVQcm90byk7CisgICAgcmV0dXJuIGdl
bmVyYXRvci5lbWl0R2V0UHJvdG90eXBlT2YoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBob21l
T2JqZWN0LmdldCgpKTsKIH0KIAogc3RhdGljIFJlZ2lzdGVySUQqIGVtaXRHZXRTdXBlckZ1bmN0
aW9uRm9yQ29uc3RydWN0KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCiB7CiAgICAgaWYg
KGdlbmVyYXRvci5pc0Rlcml2ZWRDb25zdHJ1Y3RvckNvbnRleHQoKSkKLSAgICAgICAgcmV0dXJu
IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGdlbmVyYXRv
ci5lbWl0TG9hZERlcml2ZWRDb25zdHJ1Y3RvckZyb21BcnJvd0Z1bmN0aW9uTGV4aWNhbEVudmly
b25tZW50KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudW5kZXJzY29yZVByb3RvKTsKKyAg
ICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0UHJvdG90eXBlT2YoZ2VuZXJhdG9yLm5ld1Rl
bXBvcmFyeSgpLCBnZW5lcmF0b3IuZW1pdExvYWREZXJpdmVkQ29uc3RydWN0b3JGcm9tQXJyb3dG
dW5jdGlvbkxleGljYWxFbnZpcm9ubWVudCgpKTsKIAogICAgIFJlZ2lzdGVySUQgY2FsbGVlOwog
ICAgIGNhbGxlZS5zZXRJbmRleChDYWxsRnJhbWVTbG90OjpjYWxsZWUpOwotICAgIHJldHVybiBn
ZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAmY2FsbGVlLCBn
ZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLnVuZGVyc2NvcmVQcm90byk7CisgICAgcmV0dXJuIGdl
bmVyYXRvci5lbWl0R2V0UHJvdG90eXBlT2YoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAmY2Fs
bGVlKTsKIH0KIAogUmVnaXN0ZXJJRCogU3VwZXJOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQpAQCAtMTE1Myw2ICsxMTUzLDE0
IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfZ2V0
QnlJZERpcmVjdFByaXZhdGUoQnl0ZWNvZGVHCiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0RGly
ZWN0R2V0QnlJZChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBn
ZW5lcmF0b3IucGFyc2VyQXJlbmEoKS5pZGVudGlmaWVyQXJlbmEoKS5tYWtlSWRlbnRpZmllcihn
ZW5lcmF0b3Iudm0oKSwgc3ltYm9sKSk7CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlSW50cmlu
c2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfZ2V0UHJvdG90eXBlT2YoQnl0ZWNvZGVHZW5lcmF0b3Im
IGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5v
ZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHZhbHVlID0g
Z2VuZXJhdG9yLmVtaXROb2RlKG5vZGUpOworICAgIEFTU0VSVCghbm9kZS0+bV9uZXh0KTsKKyAg
ICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRQcm90b3R5cGVPZihnZW5lcmF0b3IuZmluYWxEZXN0
aW5hdGlvbihkc3QpLCB2YWx1ZS5nZXQoKSk7Cit9CisKIHN0YXRpYyBKU1Byb21pc2U6OkZpZWxk
IHByb21pc2VJbnRlcm5hbEZpZWxkSW5kZXgoQnl0ZWNvZGVJbnRyaW5zaWNOb2RlKiBub2RlKQog
ewogICAgIEFTU0VSVChub2RlLT5lbnRyeSgpLnR5cGUoKSA9PSBCeXRlY29kZUludHJpbnNpY1Jl
Z2lzdHJ5OjpUeXBlOjpFbWl0dGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCA3MzY2Y2YxY2Jh
MTViZTNiMjVkYzcwNmIwNGE4ZjdmYWUzNjZkOGYyLi5hNTRjMmUwZGM2NTc4NmEzZjI0ODJmYzk5
ZmJlODZjYjY2MDEzNWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0zNjk4LDkgKzM2OTgsNyBA
QCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZm
ZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgYm9vbCBjYW5Gb2xkID0gIXZh
bHVlLm1fc3RydWN0dXJlLmlzQ2xlYXIoKTsKICAgICAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBl
OwogICAgICAgICAgICAgdmFsdWUubV9zdHJ1Y3R1cmUuZm9yRWFjaChbJl0gKFJlZ2lzdGVyZWRT
dHJ1Y3R1cmUgc3RydWN0dXJlKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBnZXRQcm90b3R5cGVN
ZXRob2QgPSBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5tZXRob2RUYWJsZS5nZXRQcm90b3R5cGU7
Ci0gICAgICAgICAgICAgICAgTWV0aG9kVGFibGU6OkdldFByb3RvdHlwZUZ1bmN0aW9uUHRyIGRl
ZmF1bHRHZXRQcm90b3R5cGUgPSBKU09iamVjdDo6Z2V0UHJvdG90eXBlOwotICAgICAgICAgICAg
ICAgIGlmIChnZXRQcm90b3R5cGVNZXRob2QgIT0gZGVmYXVsdEdldFByb3RvdHlwZSkgeworICAg
ICAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0UHJvdG90
eXBlKCkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FuRm9sZCA9IGZhbHNlOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA2YjViZjE3ODY0Y2M1MzAw
OGUzMmE2ZmE4ODNlYTYyZWVmZmU1MzZhLi42ZjNjNzM3MTM1MWRhZTE2MTg1ZTQyNjMwYmJkYjdj
N2FmOWZhZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcApAQCAtMzgzMCw5ICszODMwLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlSW50cmluc2ljR2V0dGVyKE9wZXJhbmQgcmVzdWx0LCBTcGVjdWxhdGVkVHlwZSBwcmVkaWMK
ICAgICAgICAgYm9vbCBjYW5Gb2xkID0gIXZhcmlhbnQuc3RydWN0dXJlU2V0KCkuaXNFbXB0eSgp
OwogICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZTsKICAgICAgICAgdmFyaWFudC5zdHJ1Y3R1cmVT
ZXQoKS5mb3JFYWNoKFsmXSAoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpIHsKLSAgICAgICAgICAgIGF1
dG8gZ2V0UHJvdG90eXBlTWV0aG9kID0gc3RydWN0dXJlLT5jbGFzc0luZm8oKS0+bWV0aG9kVGFi
bGUuZ2V0UHJvdG90eXBlOwotICAgICAgICAgICAgTWV0aG9kVGFibGU6OkdldFByb3RvdHlwZUZ1
bmN0aW9uUHRyIGRlZmF1bHRHZXRQcm90b3R5cGUgPSBKU09iamVjdDo6Z2V0UHJvdG90eXBlOwot
ICAgICAgICAgICAgaWYgKGdldFByb3RvdHlwZU1ldGhvZCAhPSBkZWZhdWx0R2V0UHJvdG90eXBl
KSB7CisgICAgICAgICAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFBy
b3RvdHlwZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FuRm9sZCA9IGZhbHNlOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTYxMDMsNiArNjEwMSwxMyBAQCB2b2lk
IEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogCiAgICAgICAgICAg
ICBORVhUX09QQ09ERShvcF9nZXRfYnlfaWRfd2l0aF90aGlzKTsKICAgICAgICAgfQorCisgICAg
ICAgIGNhc2Ugb3BfZ2V0X3Byb3RvdHlwZV9vZjogeworICAgICAgICAgICAgYXV0byBieXRlY29k
ZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRQcm90b3R5cGVPZj4oKTsKKyAgICAgICAg
ICAgIHNldChieXRlY29kZS5tX2RzdCwgYWRkVG9HcmFwaChHZXRQcm90b3R5cGVPZiwgT3BJbmZv
KDApLCBPcEluZm8oZ2V0UHJlZGljdGlvbigpKSwgZ2V0KGJ5dGVjb2RlLm1fdmFsdWUpKSk7Cisg
ICAgICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfcHJvdG90eXBlX29mKTsKKyAgICAgICAgfQor
CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7CiAgICAgICAgICAgICBhdXRvIGJ5dGVjb2Rl
ID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcFB1dEJ5SWQ+KCk7CiAgICAgICAgICAgICBOb2Rl
KiB2YWx1ZSA9IGdldChieXRlY29kZS5tX3ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA3MzEwMWM3YjU5ZmQ2ZmYzMmVkYTlhNmU2
Njk5MzFmZDYwZDEyNmE3Li5hOTk1ZjFjYjgxZjgwY2M5NTRhMjUzYWYzOGQ4YTA2ZWI1MTI1NjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBA
IC0xNzQsNiArMTc0LDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJ
RCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IEkKICAgICBjYXNlIG9wX2dl
dF9ieV9pZF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWRfZGlyZWN0OgogICAgIGNh
c2Ugb3BfZ2V0X2J5X3ZhbF93aXRoX3RoaXM6CisgICAgY2FzZSBvcF9nZXRfcHJvdG90eXBlX29m
OgogICAgIGNhc2Ugb3BfcHV0X2J5X2lkOgogICAgIGNhc2Ugb3BfcHV0X2J5X2lkX3dpdGhfdGhp
czoKICAgICBjYXNlIG9wX3B1dF9ieV92YWxfd2l0aF90aGlzOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggMTE5MjMxOTUwYzc3OWYwMWMwMjg0MDNl
OWE4ZDJlMGFjOTIwNDUzNC4uNThmZGE5YjMyNzA3Y2ViOWU4NWU2NjEzZGQ2NTA0YzJhNDVhMDRm
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0z
MjY4LDIyICszMjY4LDggQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25H
ZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOwogICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7Ci0KLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0gICAgaWYg
KHRoaXNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoZ2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUpKTsKLQotICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU09iamVjdCo+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmICghdGhpc09iamVjdCkgewot
ICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0gdGhpc1ZhbHVlLnN5bnRoZXNpemVQcm90b3R5
cGUoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2Vw
dGlvbigpID09ICFwcm90b3R5cGUpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkp
Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0gICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvdG90eXBlKTsKLSAgICB9Ci0KLSAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQcm90b3R5
cGUodm0sIGdsb2JhbE9iamVjdCkpKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2YWx1ZS5nZXRQ
cm90b3R5cGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSog
ZGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1p
dHRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ludHJpbnNpY0VtaXR0ZXIuY3Bw
CmluZGV4IGZhMDI5MmJhMWRiNjZjMjc0N2RiNGI5ZmU3OTE4NjUwZDgxZDZhYmUuLjk0ZjdhZmUx
MWE5MTFiOTFhODgzNzA1NWI5NzU0MDY5Y2FhYThhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSW50cmluc2ljRW1pdHRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9JbnRyaW5zaWNFbWl0dGVyLmNwcApAQCAtNjEsOSArNjEsOCBAQCBib29sIElu
dHJpbnNpY0dldHRlckFjY2Vzc0Nhc2U6OmNhbkVtaXRJbnRyaW5zaWNHZXR0ZXIoSlNGdW5jdGlv
biogZ2V0dGVyLCBTdHJ1YwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgY2FzZSBV
bmRlcnNjb3JlUHJvdG9JbnRyaW5zaWM6IHsKLSAgICAgICAgYXV0byBnZXRQcm90b3R5cGVNZXRo
b2QgPSBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5tZXRob2RUYWJsZS5nZXRQcm90b3R5cGU7Ci0g
ICAgICAgIE1ldGhvZFRhYmxlOjpHZXRQcm90b3R5cGVGdW5jdGlvblB0ciBkZWZhdWx0R2V0UHJv
dG90eXBlID0gSlNPYmplY3Q6OmdldFByb3RvdHlwZTsKLSAgICAgICAgcmV0dXJuIGdldFByb3Rv
dHlwZU1ldGhvZCA9PSBkZWZhdWx0R2V0UHJvdG90eXBlOworICAgICAgICBUeXBlSW5mbyBpbmZv
ID0gc3RydWN0dXJlLT50eXBlSW5mbygpOworICAgICAgICByZXR1cm4gaW5mby5pc09iamVjdCgp
ICYmICFpbmZvLm92ZXJyaWRlc0dldFByb3RvdHlwZSgpOwogICAgIH0KICAgICBkZWZhdWx0Ogog
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggNTE2
MDgzMDc5ZmU4Mzk4MjcwOTgzMTQxNjcxNzljMzg0MWYyMWVjOS4uNjAwNWNkNGU1MjJkYTljMDE2
ZDZjMDc3YTQ0N2NhMmI1MGQ0MzFlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAt
MzE4LDYgKzMxOCw5IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAg
ICAgREVGSU5FX1NMT1dfT1AoY3JlYXRlX2FzeW5jX2dlbmVyYXRvcikKICAgICAgICAgREVGSU5F
X1NMT1dfT1AobmV3X2dlbmVyYXRvcikKICAgICAgICAgREVGSU5FX1NMT1dfT1AocG93KQorI2lm
ICFVU0UoSlNWQUxVRTY0KQorICAgICAgICBERUZJTkVfU0xPV19PUChnZXRfcHJvdG90eXBlX29m
KQorI2VuZGlmCiAKICAgICAgICAgREVGSU5FX09QKG9wX2FkZCkKICAgICAgICAgREVGSU5FX09Q
KG9wX2JpdG5vdCkKQEAgLTQ3MCw2ICs0NzMsMTAgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxl
TWFpblBhc3MoKQogICAgICAgICAgICAgCiAgICAgICAgIERFRklORV9PUChvcF9sb2dfc2hhZG93
X2NoaWNrZW5fcHJvbG9ndWUpCiAgICAgICAgIERFRklORV9PUChvcF9sb2dfc2hhZG93X2NoaWNr
ZW5fdGFpbCkKKworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIERFRklORV9PUChvcF9nZXRf
cHJvdG90eXBlX29mKQorI2VuZGlmCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CkBAIC02MjQsNyArNjMxLDkgQEAg
dm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgREVGSU5FX1NMT1dD
QVNFX1NMT1dfT1AocmVzb2x2ZV9zY29wZSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX1NMT1df
T1AoY2hlY2tfdGR6KQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfU0xPV19PUCh0b19wcm9wZXJ0
eV9rZXkpCi0KKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBERUZJTkVfU0xPV0NBU0VfU0xP
V19PUChnZXRfcHJvdG90eXBlX29mKQorI2VuZGlmCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAppbmRleCAyNzU1N2IzYjA2NzhkNzk0MzVmZTk1OGRkNzgwNTc1MTBkY2VlZDQ5
Li42NjZlMGVkNGM4YTA5MzQ0ZjRiNGZmNDI1NzBlNjdkNjk1Y2IxNzQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKQEAgLTUyOCw2ICs1MjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
dm9pZCBlbWl0X29wX2dldF9ieV9pZF9kaXJlY3QoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAg
ICAgdm9pZCBlbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAg
dm9pZCBlbWl0X29wX2dldF9hcmd1bWVudF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qKTsKKyAg
ICAgICAgdm9pZCBlbWl0X29wX2dldF9wcm90b3R5cGVfb2YoY29uc3QgSW5zdHJ1Y3Rpb24qKTsK
ICAgICAgICAgdm9pZCBlbWl0X29wX2luX2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKik7CiAgICAg
ICAgIHZvaWQgZW1pdF9vcF9pbml0X2xhenlfcmVnKGNvbnN0IEluc3RydWN0aW9uKik7CiAgICAg
ICAgIHZvaWQgZW1pdF9vcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlKGNvbnN0IEluc3RydWN0aW9u
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA5ZDNkOTE3
YTAzNmUxYzExMmM0ZGRlNTIzYjA0M2Y1OGI2ZDFhYTRjLi41OWY5ODUyNWM3MjBmMTdmMzllM2Zh
MWEyMThhNmViOGUzOTA5MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKQEAgLTE1MjUsNiArMTUyNSwyNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZGlyZWN0
X3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFB1
dFZpcnR1YWxSZWdpc3Rlcihkc3QsIHJlZ1QwKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfZ2V0
X3Byb3RvdHlwZV9vZihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQorewor
ICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0UHJvdG90eXBl
T2Y+KCk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihieXRlY29kZS5tX3ZhbHVlLCByZWdU
MCk7CisKKyAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdENlbGwocmVnVDApKTsKKyAgICBhZGRT
bG93Q2FzZShicmFuY2hJZk5vdE9iamVjdChyZWdUMCkpOworCisgICAgZW1pdExvYWRTdHJ1Y3R1
cmUodm0oKSwgcmVnVDAsIHJlZ1QyLCByZWdUMSk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoVGVz
dDMyKE5vblplcm8sIEFkZHJlc3MocmVnVDIsIFN0cnVjdHVyZTo6b3V0T2ZMaW5lVHlwZUZsYWdz
T2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoT3ZlcnJpZGVzR2V0UHJvdG90eXBlT3V0T2ZMaW5lKSkp
OworCisgICAgbG9hZDY0KEFkZHJlc3MocmVnVDIsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0
KCkpLCByZWdUMik7CisgICAgSnVtcCBoYXNNb25vUHJvdG8gPSBicmFuY2hUZXN0NjQoTm9uWmVy
bywgcmVnVDIpOworICAgIGxvYWQ2NChBZGRyZXNzKHJlZ1QwLCBvZmZzZXRSZWxhdGl2ZVRvQmFz
ZShrbm93blBvbHlQcm90b09mZnNldCkpLCByZWdUMik7CisgICAgaGFzTW9ub1Byb3RvLmxpbmso
dGhpcyk7CisKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1f
Y29kZUJsb2NrKSk7CisgICAgZW1pdFN0b3JlQ2VsbChieXRlY29kZS5tX2RzdCwgcmVnVDIpOwor
fQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9lbnVtZXJhdG9yX3N0cnVjdHVyZV9wbmFtZShjb25zdCBJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGF1dG8gYnl0ZWNvZGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wRW51bWVyYXRvclN0cnVjdHVyZVBuYW1lPigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
CmluZGV4IDRhYjgyYTRmMWZiYjA5YmFjMzJiODZlZDE3MTYxNzZiOWI0NzU5MjkuLmJiOGVmZDVk
NjE4YzFjMDZhZTZiYjA0NWM0ODZjYWZhN2RkOThjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTU0Niw2ICs1NDYs
NyBAQCBjb25zdCBOdW1iZXJPZlR5cGVkQXJyYXlUeXBlc0V4Y2x1ZGluZ0RhdGFWaWV3ID0gY29u
c3RleHByIE51bWJlck9mVHlwZWRBcnJheVR5cAogIyBUeXBlIGZsYWdzIGNvbnN0YW50cy4KIGNv
bnN0IE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgPSBjb25zdGV4cHIgTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZAogY29uc3QgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IGNvbnN0ZXhwciBJbXBs
ZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlCitjb25zdCBPdmVycmlkZXNHZXRQcm90b3R5cGVPdXRP
ZkxpbmUgPSBjb25zdGV4cHIgT3ZlcnJpZGVzR2V0UHJvdG90eXBlT3V0T2ZMaW5lCiAKICMgQnl0
ZWNvZGUgb3BlcmFuZCBjb25zdGFudHMuCiBjb25zdCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRl
eE5hcnJvdyA9IGNvbnN0ZXhwciBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleDgKQEAgLTU2Nyw2
ICs1NjgsNyBAQCBjb25zdCBIYXNoRmxhZ3M4Qml0QnVmZmVyID0gY29uc3RleHByIFN0cmluZ0lt
cGw6OnNfaGFzaEZsYWc4Qml0QnVmZmVyCiAKICMgQ29waWVkIGZyb20gUHJvcGVydHlPZmZzZXQu
aAogY29uc3QgZmlyc3RPdXRPZkxpbmVPZmZzZXQgPSBjb25zdGV4cHIgZmlyc3RPdXRPZkxpbmVP
ZmZzZXQKK2NvbnN0IGtub3duUG9seVByb3RvT2Zmc2V0ID0gY29uc3RleHByIGtub3duUG9seVBy
b3RvT2Zmc2V0CiAKICMgUmVzb2x2ZVR5cGUKIGNvbnN0IEdsb2JhbFByb3BlcnR5ID0gY29uc3Rl
eHByIEdsb2JhbFByb3BlcnR5CkBAIC0xNzc0LDYgKzE3NzYsNyBAQCBpZiBub3QgSlNWQUxVRTY0
CiAgICAgc2xvd1BhdGhPcChoYXNfc3RydWN0dXJlX3Byb3BlcnR5KQogICAgIHNsb3dQYXRoT3Ao
aGFzX293bl9zdHJ1Y3R1cmVfcHJvcGVydHkpCiAgICAgc2xvd1BhdGhPcChpbl9zdHJ1Y3R1cmVf
cHJvcGVydHkpCisgICAgc2xvd1BhdGhPcChnZXRfcHJvdG90eXBlX29mKQogZW5kCiAKIHNsb3dQ
YXRoT3AoaW5fYnlfaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IDNlMTkzZGJiYTc5ZTBlZDVjYWExMWYyMDU3
MWFkMTU1YTExOTg3ZWIuLmMzMTQxYjRjNGZmNjliYmQ4MGRhMDI2NmI0MjdlYjg5ZWM3NGM4MjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyNjQuYXNtCkBAIC0xNDk1LDYgKzE0OTUsMzEgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFk
YXQKIGVuZCkKIAogCitsbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X3Byb3RvdHlwZV9vZiwgT3BH
ZXRQcm90b3R5cGVPZiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBn
ZXQobV92YWx1ZSwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDAp
CisKKyAgICBidHFueiB0MCwgbm90Q2VsbE1hc2ssIC5vcEdldFByb3RvdHlwZU9mU2xvdworICAg
IGJiYiBKU0NlbGw6Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIC5vcEdldFByb3RvdHlwZU9mU2xv
dworCisgICAgbG9hZFN0cnVjdHVyZVdpdGhTY3JhdGNoKHQwLCB0MiwgdDEsIHQzKQorICAgIGJ0
aW56IFN0cnVjdHVyZTo6bV9vdXRPZkxpbmVUeXBlRmxhZ3NbdDJdLCBPdmVycmlkZXNHZXRQcm90
b3R5cGVPdXRPZkxpbmUsIC5vcEdldFByb3RvdHlwZU9mU2xvdworCisgICAgbG9hZHEgU3RydWN0
dXJlOjptX3Byb3RvdHlwZVt0Ml0sIHQyCisgICAgYnRxeiB0MiwgLm9wR2V0UHJvdG90eXBlT2ZQ
b2x5UHJvdG8KKyAgICByZXR1cm4odDIpCisKKy5vcEdldFByb3RvdHlwZU9mU2xvdzoKKyAgICBj
YWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9nZXRfcHJvdG90eXBlX29mKQorICAgIGRpc3BhdGNoKCkK
KworLm9wR2V0UHJvdG90eXBlT2ZQb2x5UHJvdG86CisgICAgbG9hZGkga25vd25Qb2x5UHJvdG9P
ZmZzZXQsIHQxCisgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDAsIHQzKQor
ICAgIHJldHVybih0MykKK2VuZCkKKworCiBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3B1dF9ieV9p
ZCwgT3BQdXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVy
bikKICAgICBnZXQobV9iYXNlLCB0MykKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChz
aXplLCB0MywgdDAsIC5vcFB1dEJ5SWRTbG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggMzQ1YTgxYzUxYmIxY2FlYjEzNjFk
Yzc0NTg4ZmY4YzcyMWRhMDYzNC4uZmRhY2U3MmNiZjU3NjU4Yjg2MjE1MDk1NGRmYzZhYmNlZDk4
ZmFlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93
UGF0aHMuY3BwCkBAIC0xMzU1LDYgKzEzNTUsMTQgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X2dldF9wcml2YXRlX25hbWUpCiAgICAgUkVUVVJOX1BST0ZJTEVEKHNsb3QuZ2V0VmFsdWUoZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eSkpOwogfQogCitTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0
X3Byb3RvdHlwZV9vZikKK3sKKyAgICBCRUdJTigpOworICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+
YXM8T3BHZXRQcm90b3R5cGVPZj4oKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gR0VUX0MoYnl0ZWNv
ZGUubV92YWx1ZSkuanNWYWx1ZSgpOworICAgIFJFVFVSTl9QUk9GSUxFRCh2YWx1ZS5nZXRQcm90
b3R5cGUoZ2xvYmFsT2JqZWN0KSk7Cit9CisKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRf
YnlfaWRfd2l0aF90aGlzKQogewogICAgIEJFR0lOKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IGE3NmJmM2VhYmU0YTBmNWU0NDc1
MGY3MTY1MDM5N2RjZGQ5ODZkNGMuLjY1MzhhNTU1YjI1ZWYwNmUxMGQxNzlmNWZhZjU4NGI3MDYy
MjFkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5oCkBAIC0yNzYsNiArMjc2LDcgQEAgU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9jcmVhdGVfcmVzdCk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9ieV9p
ZF93aXRoX3RoaXMpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfdmFs
X3dpdGhfdGhpcyk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9wcml2YXRl
X25hbWUpOworU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfcHJvdG90eXBlX29m
KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X2J5X2lkX3dpdGhfdGhpcyk7
CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF9ieV92YWxfd2l0aF90aGlzKTsK
IFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZGVmaW5lX2RhdGFfcHJvcGVydHkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCmluZGV4IGNjMmNjMTBh
MWVhODc4NmRlM2FjYjVjNzE2NDMxNzlhNWM5ZjcyOGUuLjA4MTQ5NmI3N2M4ZTY1MDg1MmM4Zjdj
OTg5ZGUxNTRmOWE1MzA0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlLmgKQEAgLTMyMSw2ICszMjEsNyBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgYm9vbCBwdXRUb1ByaW1pdGl2ZUJ5SW5kZXgoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwogICAgIGJvb2wgcHV0QnlJ
bmRleChKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgYm9v
bCBzaG91bGRUaHJvdyk7CiAKKyAgICBKU1ZhbHVlIGdldFByb3RvdHlwZShKU0dsb2JhbE9iamVj
dCopIGNvbnN0OwogICAgIEpTVmFsdWUgdG9UaGlzKEpTR2xvYmFsT2JqZWN0KiwgRUNNQU1vZGUp
IGNvbnN0OwogCiAgICAgc3RhdGljIGJvb2wgZXF1YWwoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
IHYxLCBKU1ZhbHVlIHYyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NKU1ZhbHVlSW5saW5lcy5oCmluZGV4IDAxMWQ1OGJkNTc0NDg2ODBlNTRjMzhmYTdkNjNmMWY1
Zjc3MTcxMjMuLjZlZDc5YWEyNDU1YWZhMjVhNGQ0Mzc0YzE0ZTVmYjE1MTZmNDJiYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApA
QCAtMTA4MSw2ICsxMDgxLDE0IEBAIGlubGluZSBib29sIEpTVmFsdWU6OnB1dEJ5SW5kZXgoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWduZWQgcHJvcGVydHlOCiAgICAgcmV0dXJu
IGFzQ2VsbCgpLT5tZXRob2RUYWJsZShnZXRWTShnbG9iYWxPYmplY3QpKS0+cHV0QnlJbmRleChh
c0NlbGwoKSwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdyk7
CiB9CiAKK0FMV0FZU19JTkxJTkUgSlNWYWx1ZSBKU1ZhbHVlOjpnZXRQcm90b3R5cGUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKK3sKKyAgICBWTSYgdm0gPSBnZXRWTShnbG9i
YWxPYmplY3QpOworICAgIGlmIChpc09iamVjdCgpKQorICAgICAgICByZXR1cm4gYXNPYmplY3Qo
YXNDZWxsKCkpLT5nZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIHN5
bnRoZXNpemVQcm90b3R5cGUoZ2xvYmFsT2JqZWN0KTsKK30KKwogaW5saW5lIFN0cnVjdHVyZSog
SlNWYWx1ZTo6c3RydWN0dXJlT3JOdWxsKCkgY29uc3QKIHsKICAgICBpZiAoaXNDZWxsKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dEZ1bmN0aW9ucy5jcHAKaW5kZXggMzgxODdhN2U3MzA2NDc5OGViYmFjZjJmYTUzZmM4YzdkY2Fh
YTk5OC4uZWEyNWU4Yjg5NDY5YzY5ZTdmMTFiY2MwYTAzMWFlNDczYjE2OTgxYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcApAQCAtNjkzLDIzICs2OTMsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwog
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b0dldHRlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7Ci0gICAgaWYg
KHRoaXNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoZ2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUpKTsKLQotICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU09iamVjdCo+KHZtLCB0aGlzVmFsdWUpOwotICAgIGlmICghdGhpc09iamVjdCkgewot
ICAgICAgICBKU09iamVjdCogcHJvdG90eXBlID0gdGhpc1ZhbHVlLnN5bnRoZXNpemVQcm90b3R5
cGUoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2Vw
dGlvbigpID09ICFwcm90b3R5cGUpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkp
Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0gICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvdG90eXBlKTsKLSAgICB9Ci0KLSAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQcm90b3R5
cGUodm0sIGdsb2JhbE9iamVjdCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNW
YWx1ZS5nZXRQcm90b3R5cGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCmluZGV4IDJmNjdlMzZmODMyN2U5OTQ2YWFmZmUwZWU3MWQ2YmU5YTM2
M2VlMmIuLjRkZTU3MWY4Y2NkZDEwZTJhYWJlNWU1MGViODQ4N2YyZmI0Nzg1MWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTU1NCw4ICs1NTQsNyBA
QCBTdHJpbmcgSlNPYmplY3Q6OmNhbGN1bGF0ZWRDbGFzc05hbWUoSlNPYmplY3QqIG9iamVjdCkK
ICAgICAvLyBHZXQgdGhlIGRpc3BsYXkgbmFtZSBvZiBvYmouX19wcm90b19fLmNvbnN0cnVjdG9y
LgogICAgIC8vIFRoaXMgaXMgdXNlZnVsIHRvIGdldCBgRm9vYCBmb3IgYSBgbmV3IEZvb2Agb2Jq
ZWN0LgogICAgIGlmIChjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZS5pc051bGwoKSkgewotICAgICAg
ICBNZXRob2RUYWJsZTo6R2V0UHJvdG90eXBlRnVuY3Rpb25QdHIgZGVmYXVsdEdldFByb3RvdHlw
ZSA9IEpTT2JqZWN0OjpnZXRQcm90b3R5cGU7Ci0gICAgICAgIGlmIChMSUtFTFkoc3RydWN0dXJl
LT5jbGFzc0luZm8oKS0+bWV0aG9kVGFibGUuZ2V0UHJvdG90eXBlID09IGRlZmF1bHRHZXRQcm90
b3R5cGUpKSB7CisgICAgICAgIGlmIChMSUtFTFkoIXN0cnVjdHVyZS0+dHlwZUluZm8oKS5vdmVy
cmlkZXNHZXRQcm90b3R5cGUoKSkpIHsKICAgICAgICAgICAgIEpTVmFsdWUgcHJvdG9WYWx1ZSA9
IG9iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKICAgICAgICAgICAgIGlmIChwcm90b1Zh
bHVlLmlzT2JqZWN0KCkpIHsKICAgICAgICAgICAgICAgICBKU09iamVjdCogcHJvdG9PYmplY3Qg
PSBhc09iamVjdChwcm90b1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCmluZGV4IDkwZWQxMzlkOTJiZDE1MWUzYWM4MjFjOGRlOWY3YzhiZDRmZDU2NGUuLjNi
MGM2NjFmZDdjMDU0ZjAyNTRiMTczOGZiZTNlZDQwMzg3Mzk4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTM2OSwxMSArMTM2OSw5IEBAIGlubGluZSBK
U1ZhbHVlIEpTT2JqZWN0OjpnZXRQcm90b3R5cGVEaXJlY3QoVk0mIHZtKSBjb25zdAogCiBpbmxp
bmUgSlNWYWx1ZSBKU09iamVjdDo6Z2V0UHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKIHsKLSAgICBhdXRvIGdldFByb3RvdHlwZU1ldGhvZCA9IG1ldGhvZFRh
YmxlKHZtKS0+Z2V0UHJvdG90eXBlOwotICAgIE1ldGhvZFRhYmxlOjpHZXRQcm90b3R5cGVGdW5j
dGlvblB0ciBkZWZhdWx0R2V0UHJvdG90eXBlID0gSlNPYmplY3Q6OmdldFByb3RvdHlwZTsKLSAg
ICBpZiAoTElLRUxZKGdldFByb3RvdHlwZU1ldGhvZCA9PSBkZWZhdWx0R2V0UHJvdG90eXBlKSkK
KyAgICBpZiAoTElLRUxZKCFzdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFBy
b3RvdHlwZSgpKSkKICAgICAgICAgcmV0dXJuIGdldFByb3RvdHlwZURpcmVjdCh2bSk7Ci0gICAg
cmV0dXJuIGdldFByb3RvdHlwZU1ldGhvZCh0aGlzLCBnbG9iYWxPYmplY3QpOworICAgIHJldHVy
biBtZXRob2RUYWJsZSh2bSktPmdldFByb3RvdHlwZSh0aGlzLCBnbG9iYWxPYmplY3QpOwogfQog
CiAvLyBOb3JtYWxseSwgd2UgbmV2ZXIgc2hyaW5rIHRoZSBidXR0ZXJmbHkgc28gaWYgd2Uga25v
dyBhbiBvZmZzZXQgaXMgdmFsaWQgZm9yIHNvbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKaW5kZXggZWI3NmZhYzFhNTAxMjJjNTcwZTQ0OTNl
OWRlZmNjYTY4OTg2NWNmOC4uNmIyZWYyMjQ3ZjMyZDA2NTE1ZjI3ZGY1OTUxNDRkYzA2MGI5NTI4
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVz
LmgKQEAgLTgzLDggKzgzLDggQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpjYW5QZXJm
b3JtRmFzdFB1dElubGluZUV4Y2x1ZGluZ1Byb3RvKFZNJiB2bSkKICAgICBKU1ZhbHVlIHByb3Rv
dHlwZTsKICAgICBKU09iamVjdCogb2JqID0gdGhpczsKICAgICB3aGlsZSAodHJ1ZSkgewotICAg
ICAgICBNZXRob2RUYWJsZTo6R2V0UHJvdG90eXBlRnVuY3Rpb25QdHIgZGVmYXVsdEdldFByb3Rv
dHlwZSA9IEpTT2JqZWN0OjpnZXRQcm90b3R5cGU7Ci0gICAgICAgIGlmIChvYmotPnN0cnVjdHVy
ZSh2bSktPmhhc1JlYWRPbmx5T3JHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzRXhjbHVkaW5nUHJvdG8o
KSB8fCBvYmotPm1ldGhvZFRhYmxlKHZtKS0+Z2V0UHJvdG90eXBlICE9IGRlZmF1bHRHZXRQcm90
b3R5cGUpCisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gb2JqLT5zdHJ1Y3R1cmUodm0p
OworICAgICAgICBpZiAoc3RydWN0dXJlLT5oYXNSZWFkT25seU9yR2V0dGVyU2V0dGVyUHJvcGVy
dGllc0V4Y2x1ZGluZ1Byb3RvKCkgfHwgc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc0dl
dFByb3RvdHlwZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHByb3Rv
dHlwZSA9IG9iai0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKQEAgLTEyNyw3ICsxMjcsNiBAQCBB
TFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCB1bnNpZwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKICAgICBhdXRvJiBzdHJ1Y3R1cmVJRFRhYmxlID0gdm0uaGVhcC5zdHJ1Y3R1cmVJ
RFRhYmxlKCk7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IHRoaXM7Ci0gICAgTWV0aG9kVGFibGU6
OkdldFByb3RvdHlwZUZ1bmN0aW9uUHRyIGRlZmF1bHRHZXRQcm90b3R5cGUgPSBKU09iamVjdDo6
Z2V0UHJvdG90eXBlOwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gc3RydWN0dXJlSURUYWJsZS5nZXQob2JqZWN0LT5zdHJ1Y3R1cmVJRCgpKTsKICAg
ICAgICAgYm9vbCBoYXNTbG90ID0gc3RydWN0dXJlLT5jbGFzc0luZm8oKS0+bWV0aG9kVGFibGUu
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlO
YW1lLCBzbG90KTsKQEAgLTEzNyw3ICsxMzYsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmpl
Y3Q6OmdldFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZwog
ICAgICAgICBpZiAob2JqZWN0LT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBlICYmIHNsb3QuaW50
ZXJuYWxNZXRob2RUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okhh
c1Byb3BlcnR5KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBKU1ZhbHVlIHBy
b3RvdHlwZTsKLSAgICAgICAgaWYgKExJS0VMWShzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5tZXRo
b2RUYWJsZS5nZXRQcm90b3R5cGUgPT0gZGVmYXVsdEdldFByb3RvdHlwZSB8fCBzbG90LmludGVy
bmFsTWV0aG9kVHlwZSgpID09IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlu
cXVpcnkpKQorICAgICAgICBpZiAoTElLRUxZKCFzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkub3ZlcnJp
ZGVzR2V0UHJvdG90eXBlKCkgfHwgc2xvdC5pbnRlcm5hbE1ldGhvZFR5cGUoKSA9PSBQcm9wZXJ0
eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5KSkKICAgICAgICAgICAgIHByb3Rv
dHlwZSA9IG9iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICBwcm90b3R5cGUgPSBvYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2Jq
ZWN0KTsKQEAgLTE2NSw3ICsxNjQsNiBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6Omdl
dE5vbkluZGV4UHJvcGVydHlTbG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBhdXRvJiBzdHJ1Y3R1cmVJ
RFRhYmxlID0gdm0uaGVhcC5zdHJ1Y3R1cmVJRFRhYmxlKCk7CiAgICAgSlNPYmplY3QqIG9iamVj
dCA9IHRoaXM7Ci0gICAgTWV0aG9kVGFibGU6OkdldFByb3RvdHlwZUZ1bmN0aW9uUHRyIGRlZmF1
bHRHZXRQcm90b3R5cGUgPSBKU09iamVjdDo6Z2V0UHJvdG90eXBlOwogICAgIHdoaWxlICh0cnVl
KSB7CiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gc3RydWN0dXJlSURUYWJsZS5nZXQo
b2JqZWN0LT5zdHJ1Y3R1cmVJRCgpKTsKICAgICAgICAgaWYgKExJS0VMWSghVHlwZUluZm86Om92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdChvYmplY3QtPmlubGluZVR5cGVGbGFncygpKSkpIHsK
QEAgLTE4MCw3ICsxNzgsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldE5vbklu
ZGV4UHJvcGVydHlTbG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZTsK
LSAgICAgICAgaWYgKExJS0VMWShzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5tZXRob2RUYWJsZS5n
ZXRQcm90b3R5cGUgPT0gZGVmYXVsdEdldFByb3RvdHlwZSB8fCBzbG90LmludGVybmFsTWV0aG9k
VHlwZSgpID09IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkpKQor
ICAgICAgICBpZiAoTElLRUxZKCFzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0UHJv
dG90eXBlKCkgfHwgc2xvdC5pbnRlcm5hbE1ldGhvZFR5cGUoKSA9PSBQcm9wZXJ0eVNsb3Q6Oklu
dGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5KSkKICAgICAgICAgICAgIHByb3RvdHlwZSA9IG9i
amVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICBwcm90b3R5cGUgPSBvYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJveHkuaAppbmRleCAzMzZmNjBhZTg2MTIyNzRj
ODI1YzI5ZWM1ZjhmNzA4MDEzYzNlZmY2Li43NWZkYzU3YmJhYTExYzZhNDRkY2RiMmZlNzlhYzI5
MDJhOWNmNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1By
b3h5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm94eS5oCkBAIC0z
Miw3ICszMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNQcm94eSA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVj
dDsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJpZGVzQW55Rm9ybU9mR2V0UHJvcGVydHlOYW1lcyB8IElu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm87
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyB8IE92ZXJyaWRlc0FueUZvcm1PZkdldFByb3BlcnR5TmFtZXMgfCBPdmVy
cmlkZXNHZXRQcm90b3R5cGUgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2
ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUs
IFN1YnNwYWNlQWNjZXNzPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0m
IHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5m
by5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCmluZGV4IGFm
YmMxZGExZTMzYjg3YjBlMzU1YmU2YzQ0NWM0ZDJhZmVkZmRlZTIuLjBlMzY3YjAwODQ4ZGJkOGZh
ZjRiZTk5YTg0MzNkYjBlYWE1Y2FiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVHlwZUluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGVJbmZvLmgKQEAgLTYzLDYgKzYzLDEwIEBAIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgR2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgPSAxIDw8IDE1
CiBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gPSAxIDw8IDE2Owogc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVJc0ltbW9ydGFsID0gMSA8PCAxNzsKIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgSGFzUHV0UHJvcGVydHlTZWN1cml0eUNoZWNrID0gMSA8PCAxODsKK3N0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgT3ZlcnJpZGVzR2V0UHJvdG90eXBlID0gMSA8PCAxOTsKKwor
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZklubGluZUJpdHMgPSA4Oworc3RhdGlj
IGNvbnN0ZXhwciB1bnNpZ25lZCBPdmVycmlkZXNHZXRQcm90b3R5cGVPdXRPZkxpbmUgPSBPdmVy
cmlkZXNHZXRQcm90b3R5cGUgPj4gbnVtYmVyT2ZJbmxpbmVCaXRzOwogCiBjbGFzcyBUeXBlSW5m
byB7CiBwdWJsaWM6CkBAIC03MCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIHVpbnQx
Nl90IE91dE9mTGluZVR5cGVGbGFnczsKIAogICAgIFR5cGVJbmZvKEpTVHlwZSB0eXBlLCB1bnNp
Z25lZCBmbGFncykKLSAgICAgICAgOiBUeXBlSW5mbyh0eXBlLCBmbGFncyAmIDB4ZmYsIGZsYWdz
ID4+IDgpCisgICAgICAgIDogVHlwZUluZm8odHlwZSwgZmxhZ3MgJiAweGZmLCBmbGFncyA+PiBu
dW1iZXJPZklubGluZUJpdHMpCiAgICAgewogICAgICAgICBBU1NFUlQoIShmbGFncyA+PiAyNCkp
OwogICAgIH0KQEAgLTg4LDcgKzkyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNGaW5hbE9iamVj
dCgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBGaW5hbE9iamVjdFR5cGU7IH0KICAgICBib29s
IGlzTnVtYmVyT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IE51bWJlck9iamVjdFR5
cGU7IH0KIAotICAgIHVuc2lnbmVkIGZsYWdzKCkgY29uc3QgeyByZXR1cm4gKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihtX2ZsYWdzMikgPDwgOCkgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9mbGFn
cyk7IH0KKyAgICB1bnNpZ25lZCBmbGFncygpIGNvbnN0IHsgcmV0dXJuIChzdGF0aWNfY2FzdDx1
bnNpZ25lZD4obV9mbGFnczIpIDw8IG51bWJlck9mSW5saW5lQml0cykgfCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4obV9mbGFncyk7IH0KICAgICBib29sIG1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoKSBj
b25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxPE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ+KCk7IH0K
ICAgICBib29sIGltcGxlbWVudHNIYXNJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25G
bGFnczI8SW1wbGVtZW50c0hhc0luc3RhbmNlPigpOyB9CiAgICAgYm9vbCBpbXBsZW1lbnRzRGVm
YXVsdEhhc0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMTxJbXBsZW1lbnRz
RGVmYXVsdEhhc0luc3RhbmNlPigpOyB9CkBAIC0xMDEsNiArMTA1LDcgQEAgcHVibGljOgogICAg
IGJvb2wgc3RydWN0dXJlSXNJbW1vcnRhbCgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczI8
U3RydWN0dXJlSXNJbW1vcnRhbD4oKTsgfQogICAgIGJvb2wgb3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcygpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczI8T3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcz4oKTsgfQogICAgIGJvb2wgb3ZlcnJpZGVzQW55Rm9ybU9mR2V0UHJvcGVydHlOYW1lcygp
IGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczI8T3ZlcnJpZGVzQW55Rm9ybU9mR2V0UHJvcGVy
dHlOYW1lcz4oKTsgfQorICAgIGJvb2wgb3ZlcnJpZGVzR2V0UHJvdG90eXBlKCkgY29uc3QgeyBy
ZXR1cm4gaXNTZXRPbkZsYWdzMjxPdmVycmlkZXNHZXRQcm90b3R5cGU+KCk7IH0KICAgICBib29s
IHByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczI8
UHJvaGliaXRzUHJvcGVydHlDYWNoaW5nPigpOyB9CiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RJc0ltcHVyZSgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczI8R2V0T3duUHJvcGVydHlT
bG90SXNJbXB1cmU+KCk7IH0KICAgICBib29sIGdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9y
UHJvcGVydHlBYnNlbmNlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMjxHZXRPd25Qcm9w
ZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZT4oKTsgfQpAQCAtMTQ4LDggKzE1Myw4
IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dW5zaWduZWQgZmxhZz4KICAgICBib29sIGlzU2V0
T25GbGFnczIoKSBjb25zdAogICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChmbGFnID49ICgx
IDw8IDgpICYmIGZsYWcgPD0gKDEgPDwgMjQpKTsKLSAgICAgICAgcmV0dXJuIG1fZmxhZ3MyICYg
KGZsYWcgPj4gOCk7CisgICAgICAgIHN0YXRpY19hc3NlcnQoZmxhZyA+PSAoMSA8PCBudW1iZXJP
ZklubGluZUJpdHMpICYmIGZsYWcgPD0gKDEgPDwgMjQpKTsKKyAgICAgICAgcmV0dXJuIG1fZmxh
Z3MyICYgKGZsYWcgPj4gbnVtYmVyT2ZJbmxpbmVCaXRzKTsKICAgICB9CiAKICAgICBKU1R5cGUg
bV90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwCmluZGV4IDRkMzFlMWNiYjNjMmExZGRmNGUxMDIxZDhlOGU5MjZlYjJiNjg1
ZmEuLjNhNmYxZjMzNzdhNjEyNGNkZTA4ZDU1YTY0OTFjNTU3NDFhMWUzZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAg
LTE0NCwxMSArMTQ0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewotICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgSlNPYmplY3QqIG9iamVjdCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCku
dG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShvYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSkpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5nZXRQcm90b3R5cGUo
Z2xvYmFsT2JqZWN0KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JTZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3h5T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94
eU9iamVjdC5oCmluZGV4IGQzYjY1ZWNkYzQ2Mzk3YzlkMGMyNDBjNDA5NzU0YjMzMWU4ODM0YWUu
LmUwODYxZTY2NDI3NzU1NDdmMjZkZmY1NjA5M2Q0OGUwY2IwNGQ5MmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFz
cyBQcm94eU9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKIAotICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldENhbGxEYXRhIHwgSW50ZXJjZXB0
c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXMgfCBPdmVycmlkZXNBbnlGb3JtT2ZHZXRQcm9wZXJ0eU5hbWVz
IHwgUHJvaGliaXRzUHJvcGVydHlDYWNoaW5nOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldENhbGxEYXRhIHwgSW50ZXJjZXB0c0dldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBPdmVycmlkZXNBbnlGb3JtT2ZHZXRQcm9wZXJ0eU5hbWVzIHwgT3ZlcnJp
ZGVzR2V0UHJvdG90eXBlIHwgUHJvaGliaXRzUHJvcGVydHlDYWNoaW5nOwogCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CiAgICAgc3RhdGljIElz
b1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBhNzlhZmZlZTY0MTAwNjMxODcwMmU1NTAwYmE0MGE1
Nzg5MDhiNWI5Li4yMjM0MjkxYTQ5MzhmYjU1Y2ExYzMwOTYzYTVhZDRiZjE1M2I2MTI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTIxMiw2ICsy
MTIsMTMgQEAgdm9pZCBTdHJ1Y3R1cmU6OnZhbGlkYXRlRmxhZ3MoKQogICAgICAgICB8fCBvdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eU5hbWVzCiAgICAgICAgIHx8IG92ZXJyaWRlc0dldE93bk5vbklu
ZGV4UHJvcGVydHlOYW1lcykKICAgICAgICAgUkVMRUFTRV9BU1NFUlQodHlwZUluZm8oKS5vdmVy
cmlkZXNBbnlGb3JtT2ZHZXRQcm9wZXJ0eU5hbWVzKCkpOworCisgICAgYm9vbCBvdmVycmlkZXNH
ZXRQcm90b3R5cGUgPQorICAgICAgICBtZXRob2RUYWJsZS5nZXRQcm90b3R5cGUgIT0gc3RhdGlj
X2Nhc3Q8TWV0aG9kVGFibGU6OkdldFByb3RvdHlwZUZ1bmN0aW9uUHRyPihKU09iamVjdDo6Z2V0
UHJvdG90eXBlKQorICAgICAgICAmJiBtZXRob2RUYWJsZS5nZXRQcm90b3R5cGUgIT0gSlNDZWxs
OjpnZXRQcm90b3R5cGU7CisKKyAgICBpZiAob3ZlcnJpZGVzR2V0UHJvdG90eXBlKQorICAgICAg
ICBSRUxFQVNFX0FTU0VSVCh0eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3RvdHlwZSgpKTsKIH0K
ICNlbHNlCiBpbmxpbmUgdm9pZCBTdHJ1Y3R1cmU6OnZhbGlkYXRlRmxhZ3MoKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggNzNiNmFlNWNjNGMwY2Q2
Y2FiMGI5YWZjMDA3ODY3YmVlODdjMWY3YS4uNmY2MjBhNjVlMjM1NTBjOTEzYzE1Yjk3YzljOWRi
OTBkNmZiZTExYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgK
QEAgLTU1OSw3ICs1NTksMTIgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1fY2xhc3NJbmZvKTsKICAgICB9Ci0gICAgICAgIAorCisg
ICAgc3RhdGljIHB0cmRpZmZfdCBvdXRPZkxpbmVUeXBlRmxhZ3NPZmZzZXQoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdHJ1Y3R1cmUsIG1fb3V0T2ZMaW5lVHlwZUZs
YWdzKTsKKyAgICB9CisKICAgICBzdGF0aWMgcHRyZGlmZl90IGluZGV4aW5nTW9kZUluY2x1ZGlu
Z0hpc3RvcnlPZmZzZXQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihT
dHJ1Y3R1cmUsIG1fYmxvYikgKyBTdHJ1Y3R1cmVJREJsb2I6OmluZGV4aW5nTW9kZUluY2x1ZGlu
Z0hpc3RvcnlPZmZzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNTJmM2RhMjMyY2MxNTgxZDgzM2M3ODBkOTRmNGYw
NWU3MTQyYTU3MC4uNjU3MzliMjYxZDkxMmJiNGRlNTZmMjI0NmUyNjVmMmE3YzE3ZTk1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTI3MTAsNiArMjcxMCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIAogICAgIGlm
ICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRQcm90b3R5cGV9KSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBn
ZXRQcm90b3R5cGUoSlNDOjpKU09iamVjdCosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpOwor
ICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzR2V0UHJvdG90eXBlIn0gPSAx
OwogICAgIH0KICAgICAKICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Q3VzdG9tVG9TdHJpbmdOYW1lfSkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9K
U1Rlc3RzL0NoYW5nZUxvZwppbmRleCA4OGJlNzAzNTc0MDVmNTllMmM0OGQxYWFmYTQ2MmFlZGJl
YWEyYmM2Li43Yzk2NGY4ODlkMjM2MWNjYzBkMTc5Yzk5NzU2M2E4NTEwNDA4NGY5IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDIwLTA2LTEyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNv
bT4KKworICAgICAgICBzdXBlciBzaG91bGQgbm90IGRlcGVuZCBvbiBfX3Byb3RvX18KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzk3MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtz
L29iamVjdC1nZXQtcHJvdG90eXBlLW9mLXByaW1pdGl2ZS5qczogQWRkZWQuCisgICAgICAgICog
c3RyZXNzL2NsYXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0b3IuanM6CisgICAg
ICAgICogc3RyZXNzL2dldC1wcm90b3R5cGUtb2YuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVz
cy9zdXBlci1wcm9wZXJ0eS1hY2Nlc3MuanM6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlv
bnMueWFtbDogTWFyayA0IHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wNi0xMiAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBzYW1w
bGluZy1wcm9maWxlciBjb2RlLW9yaWdpbiBsb29rdXAgdGVzdApkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9taWNyb2JlbmNobWFya3Mvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YtcHJpbWl0aXZlLmpzIGIv
SlNUZXN0cy9taWNyb2JlbmNobWFya3Mvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YtcHJpbWl0aXZl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE4Zjk3YTRjOGFmNmJkYWRlM2ZjNDM4Mzk1ODZlNzU4NDUzMWU0YTQK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9vYmplY3QtZ2V0LXBy
b3RvdHlwZS1vZi1wcmltaXRpdmUuanMKQEAgLTAsMCArMSwxMiBAQAorY29uc3Qgc3ltID0gU3lt
Ym9sKCk7CitmdW5jdGlvbiB0ZXN0KCkgeworICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZihmYWxz
ZSk7CisgICAgT2JqZWN0LmdldFByb3RvdHlwZU9mKC0xKTsKKyAgICBPYmplY3QuZ2V0UHJvdG90
eXBlT2YoIiIpOworICAgIE9iamVjdC5nZXRQcm90b3R5cGVPZihzeW0pOworICAgIE9iamVjdC5n
ZXRQcm90b3R5cGVPZigzbik7Cit9Citub0lubGluZSh0ZXN0KTsKKworZm9yIChsZXQgaSA9IDA7
IGkgPCAxZTc7ICsraSkKKyAgICB0ZXN0KCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9j
bGFzcy1zeW50YXgtZGVyaXZlZC1kZWZhdWx0LWNvbnN0cnVjdG9yLmpzIGIvSlNUZXN0cy9zdHJl
c3MvY2xhc3Mtc3ludGF4LWRlcml2ZWQtZGVmYXVsdC1jb25zdHJ1Y3Rvci5qcwppbmRleCBmMGM0
NzdlNWY1MTgzZWU1ZjQ4Mjg0ODBkNzVmMDI1Y2EyOWVmMTZlLi4yNGJkNjQyOTI1ZmYzODI5N2Iy
ZTJiYjQ1YzJkOTRiNTVlNGVjNDk5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9jbGFzcy1z
eW50YXgtZGVyaXZlZC1kZWZhdWx0LWNvbnN0cnVjdG9yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2NsYXNzLXN5bnRheC1kZXJpdmVkLWRlZmF1bHQtY29uc3RydWN0b3IuanMKQEAgLTEsMyArMSw0
IEBACitPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwgIl9fcHJvdG9fXyIs
IHtnZXQ6IHVuZGVmaW5lZH0pOwogCiB2YXIgQSA9IGNsYXNzIEEgeyB9OwogdmFyIEIgPSBjbGFz
cyBCIGV4dGVuZHMgQSB7IH07CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nZXQtcHJvdG90
eXBlLW9mLmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2V0LXByb3RvdHlwZS1vZi5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NTQ1ZWJiMDc2YjE1NjFhYTliY2MwNWJhOGExNjJlOWUzN2U0OGNhCi0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy9zdHJlc3MvZ2V0LXByb3RvdHlwZS1vZi5qcwpAQCAtMCwwICsxLDY0IEBA
CitmdW5jdGlvbiBhc3NlcnQoeCkgeworICAgIGlmICgheCkKKyAgICAgICAgdGhyb3cgRXJyb3Io
IkJhZCIpOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsK
KyAgICB2YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsKKyAgICB2YXIgZXJyb3I7CisgICAgdHJ5IHsK
KyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3JUaHJvd24g
PSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3JUaHJvd24p
CisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicpOworICAgIGlmIChTdHJpbmco
ZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIGVy
cm9yOiAke2Vycm9yfWApOworfQorCitmdW5jdGlvbiBtYWtlUG9seVByb3RvT2JqZWN0KCkgewor
ICAgIGZ1bmN0aW9uIGZvbygpIHsKKyAgICAgICAgY2xhc3MgQyB7CisgICAgICAgICAgICBjb25z
dHJ1Y3RvcigpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9maWVsZCA9IDQyOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgQygpOworICAgIH0KKyAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgZm9vKCk7CisgICAgcmV0dXJuIGZv
bygpOworfQorCitjb25zdCBnZXRQcm90b3R5cGVPZiA9ICR2bS5jcmVhdGVCdWlsdGluKCIoZnVu
Y3Rpb24gKHYpIHsgcmV0dXJuIEBnZXRQcm90b3R5cGVPZih2KTsgfSkiKTsKK25vSW5saW5lKGdl
dFByb3RvdHlwZU9mKTsKKworY29uc3QgcHJveHlQcm90b3R5cGUgPSB7fTsKK2NvbnN0IHByb3h5
ID0gbmV3IFByb3h5KHt9LCB7CisgICAgZ2V0UHJvdG90eXBlT2Y6ICgpID0+IHByb3h5UHJvdG90
eXBlLAorfSk7CisKK2NvbnN0IHBvbHlQcm90b09iamVjdCA9IG1ha2VQb2x5UHJvdG9PYmplY3Qo
KTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHNob3VsZFRocm93KCgp
ID0+IGdldFByb3RvdHlwZU9mKHVuZGVmaW5lZCksICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBu
b3QgYW4gb2JqZWN0Iik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gZ2V0UHJvdG90eXBlT2YobnVs
bCksICJUeXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCIpOworCisgICAgYXNzZXJ0KGdl
dFByb3RvdHlwZU9mKHRydWUpID09PSBCb29sZWFuLnByb3RvdHlwZSk7CisgICAgYXNzZXJ0KGdl
dFByb3RvdHlwZU9mKDEpID09PSBOdW1iZXIucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZ2V0UHJv
dG90eXBlT2YoImZvbyIpID09PSBTdHJpbmcucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZ2V0UHJv
dG90eXBlT2YoU3ltYm9sKCkpID09PSBTeW1ib2wucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZ2V0
UHJvdG90eXBlT2YoMTBuKSA9PT0gQmlnSW50LnByb3RvdHlwZSk7CisKKyAgICBhc3NlcnQoZ2V0
UHJvdG90eXBlT2Yoe30pID09PSBPYmplY3QucHJvdG90eXBlKTsKKyAgICBhc3NlcnQoZ2V0UHJv
dG90eXBlT2YoW10pID09PSBBcnJheS5wcm90b3R5cGUpOworICAgIGFzc2VydChnZXRQcm90b3R5
cGVPZigoKSA9PiB7fSkgPT09IEZ1bmN0aW9uLnByb3RvdHlwZSk7CisKKyAgICBhc3NlcnQoZ2V0
UHJvdG90eXBlT2YoT2JqZWN0LnByb3RvdHlwZSkgPT09IG51bGwpOworICAgIGFzc2VydChnZXRQ
cm90b3R5cGVPZihPYmplY3QuY3JlYXRlKG51bGwpKSA9PT0gbnVsbCk7CisKKyAgICBhc3NlcnQo
Z2V0UHJvdG90eXBlT2YocHJveHkpID09PSBwcm94eVByb3RvdHlwZSk7CisgICAgYXNzZXJ0KGdl
dFByb3RvdHlwZU9mKHBvbHlQcm90b09iamVjdCkgPT09IHBvbHlQcm90b09iamVjdC5jb25zdHJ1
Y3Rvci5wcm90b3R5cGUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc3VwZXItcHJv
cGVydHktYWNjZXNzLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc3VwZXItcHJvcGVydHktYWNjZXNzLmpz
CmluZGV4IDY1OTk2YTc1OTc1NGNkOTUxN2U2YzI1YWViOTVkMmY2YWM3ZmE3MzYuLjYxOGFiM2I2
YzI1MjlmZGU4OTFmOWJkZmY1NGJkM2U2YjUzYTA1MGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zdXBlci1w
cm9wZXJ0eS1hY2Nlc3MuanMKQEAgLTEsMyArMSw1IEBACitPYmplY3QuZGVmaW5lUHJvcGVydHko
T2JqZWN0LnByb3RvdHlwZSwgIl9fcHJvdG9fXyIsIHtnZXQ6IHVuZGVmaW5lZH0pOworCiBmdW5j
dGlvbiBhc3NlcnQoYiwgbSA9ICJCYWQhIikgewogICAgIGlmICghYikgewogICAgICAgICB0aHJv
dyBuZXcgRXJyb3IobSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25z
LnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggZGZlNjRlMmEz
M2RiNTFmMTk2YjJlNDk2OGM4ZDdhMWEyMGQxNDQxMC4uMGY0ZmRmMDUwMDhkZGExMDhhYzQxYjBi
ODBkMGQ1ZGZjNjgxMjk1ZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9u
cy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMjk1MSwx
MiArMjk1MSw2IEBAIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvcHJlZml4LWluY3JlbWVudC9T
MTEuNC40X0E1X1Q1LmpzOgogdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9wcmVmaXgtaW5jcmVt
ZW50L1MxMS40LjRfQTZfVDMuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IHRydWUgYnV0IGdvdCBmYWxzZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIHRydWUgYnV0IGdvdCBmYWxzZScKLXRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvc3VwZXIv
Y2FsbC1wb2lzb25lZC11bmRlcnNjb3JlLXByb3RvLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBzaG91bGQgbm90IGJlIGNhbGxlZCcKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IHNob3VsZCBub3QgYmUgY2FsbGVkJwotdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9zdXBlci9w
cm9wLXBvaXNvbmVkLXVuZGVyc2NvcmUtcHJvdG8uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IHNob3VsZCBub3QgYmUgY2FsbGVkJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
c2hvdWxkIG5vdCBiZSBjYWxsZWQnCiB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL3lpZWxkL3N0
YXItaXRlcmFibGUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEZpcnN0IHJlc3VsdCBg
ZG9uZWAgZmxhZyBFeHBlY3RlZCBTYW1lVmFsdWUowqtmYWxzZcK7LCDCq3VuZGVmaW5lZMK7KSB0
byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRmlyc3QgcmVzdWx0IGBk
b25lYCBmbGFnIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2ZhbHNlwrssIMKrdW5kZWZpbmVkwrspIHRv
IGJlIHRydWUnCg==
</data>
<flag name="commit-queue"
          id="417213"
          type_id="3"
          status="-"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>