<?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>147480</bug_id>
          
          <creation_ts>2015-07-30 19:25:36 -0700</creation_ts>
          <short_desc>Introduce get_by_id like IC into get_by_val when the given name is String or Symbol</short_desc>
          <delta_ts>2015-08-12 00:01: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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>147818</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1113627</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-30 19:25:36 -0700</bug_when>
    <thetext>Current get_by_val only considers the indexed keys, it profiles ArrayMode (or checks whether the base is String), and generates vector access code in baseline JIT.
And this profiled array mode information is leveraged in DFG layer to produce the faster code.

But after ES6 symbols are used, this IC miss the optimization chance since users will use the indexed access form `object[symbol]` with non-indexed (symbol) value.

Code generated by the IC will become the following,

if (subscript != seenSymbol)
    bailout;
... normal load by IC code (checking Structures and load the value with the offset)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113628</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-30 19:27:11 -0700</bug_when>
    <thetext>... or when the given name is a String</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113755</commentid>
    <comment_count>2</comment_count>
      <attachid>257931</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-31 11:03:23 -0700</bug_when>
    <thetext>Created attachment 257931
Patch

WIP: adding inlined self IC compiler into get_by_val</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113784</commentid>
    <comment_count>3</comment_count>
      <attachid>257942</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-31 12:27:07 -0700</bug_when>
    <thetext>Created attachment 257942
Patch

WIP: adding identifier check patching into IC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113791</commentid>
    <comment_count>4</comment_count>
      <attachid>257942</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-31 12:38:18 -0700</bug_when>
    <thetext>Comment on attachment 257942
Patch

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

&gt; Source/JavaScriptCore/bytecode/PolymorphicAccessStructureList.h:51
&gt; +        RefPtr&lt;UniquedStringImpl&gt; identifierForVal;

This change shouldn&apos;t be necessary, since this class is only used for op_in, not op_get_by_id.

&gt; Source/JavaScriptCore/bytecode/StructureStubInfo.h:114
&gt; +    void initGetByValSelf(VM&amp; vm, JSCell* owner, Structure* baseObjectStructure, const Identifier&amp; propertyName)
&gt; +    {
&gt; +        initGetByIdSelf(vm, owner, baseObjectStructure);
&gt; +        identifierForByVal = propertyName;
&gt; +    }
&gt; +

I don&apos;t like this.  StructureStubInfo shouldn&apos;t know anything about get_by_val.  It should be get_by_val&apos;s job to verify the index, and then create a StructureStubInfo on-demand that uses the right identifier.  When you do that, the StructureStubInfo doesn&apos;t have to know about the identifier.

&gt; Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:146
&gt; +class JITGetByValGenerator : public JITGetByIdGenerator {
&gt; +public:
&gt; +    JITGetByValGenerator() : JITGetByIdGenerator() { }
&gt; +
&gt; +    JITGetByValGenerator(
&gt; +        CodeBlock*, CodeOrigin, const RegisterSet&amp;, JSValueRegs base,
&gt; +        JSValueRegs value, GPRReg identifier, SpillRegistersMode spillMode);
&gt; +
&gt; +    void generateFastPath(MacroAssembler&amp;);
&gt; +
&gt; +    MacroAssembler::JumpList slowPathJumps() const
&gt; +    {
&gt; +        MacroAssembler::JumpList jumpList;
&gt; +        jumpList.append(m_structureCheck.m_jump);
&gt; +        jumpList.append(m_identifierCheck.m_jump);
&gt; +        return jumpList;
&gt; +    }
&gt; +
&gt; +    V_JITOperation_ESsiJJI slowPathFunction();
&gt; +
&gt; +private:
&gt; +    GPRReg m_identifier;
&gt; +};

Seems wrong.  The right solution is to have the existing get_by_val inline caching generate a stub with an index check.  That index check does not have to be patchable.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:232
&gt; +    // regT1 holds RefPtr&lt;UniquedStringImpl&gt; compatible structure.
&gt; +    JITGetByValGenerator gen(
&gt; +        m_codeBlock, CodeOrigin(m_bytecodeOffset), RegisterSet::specialRegisters(),
&gt; +        JSValueRegs(regT0), JSValueRegs(regT0), regT1, DontSpill);
&gt; +    gen.generateFastPath(*this);
&gt; +    JumpList successCases;
&gt; +    successCases.append(jump());

This should be generated on-demand on the fast path, instead of bloating the code on the slow path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113826</commentid>
    <comment_count>5</comment_count>
      <attachid>257942</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-31 13:34:13 -0700</bug_when>
    <thetext>Comment on attachment 257942
Patch

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

Thank you! Quite helpful.

&gt;&gt; Source/JavaScriptCore/bytecode/PolymorphicAccessStructureList.h:51
&gt;&gt; +        RefPtr&lt;UniquedStringImpl&gt; identifierForVal;
&gt; 
&gt; This change shouldn&apos;t be necessary, since this class is only used for op_in, not op_get_by_id.

Thanks. Dropped.

&gt;&gt; Source/JavaScriptCore/bytecode/StructureStubInfo.h:114
&gt;&gt; +
&gt; 
&gt; I don&apos;t like this.  StructureStubInfo shouldn&apos;t know anything about get_by_val.  It should be get_by_val&apos;s job to verify the index, and then create a StructureStubInfo on-demand that uses the right identifier.  When you do that, the StructureStubInfo doesn&apos;t have to know about the identifier.

You mean that only one identifier is allowed to be cached in the get_by_val place, correct?

At first, I introduced the following polymorphic IC for get_by_val,

[IC:1, ident:&apos;A&apos;]
if (given subscript is not ident &apos;A&apos;)
    goto IC:2
... get_by_id IC for IC:1...

[IC:2, ident:&apos;B&apos;]
if (given subscript is not ident &apos;B&apos;)
    goto IC:3
... get_by_id IC for IC:2...

[IC:3, ident:&apos;B&apos;]  // the same ident name to IC:2, but access type may differ.
if (given subscript is not ident &apos;B&apos;)
    goto IC:4
... get_by_id IC for IC:3...


If I understand your plan, you means the following.

if (the given subscript is not the cached ident &apos;A&apos;)
    fail;
[IC:1]
... get_by_id IC for IC:1...

[IC:2]
... get_by_id IC for IC:2...

[IC:3]
... get_by_id IC for IC:3...
// IC layer is the almost same to the get_by_id&apos;s one.

In the second case, we can keep IC layer completely unaware of identifier check because get_by_val layer already validate the given subscript is the cached identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113831</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-31 13:43:09 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 257942 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=257942&amp;action=review
&gt; 
&gt; Thank you! Quite helpful.
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/bytecode/PolymorphicAccessStructureList.h:51
&gt; &gt;&gt; +        RefPtr&lt;UniquedStringImpl&gt; identifierForVal;
&gt; &gt; 
&gt; &gt; This change shouldn&apos;t be necessary, since this class is only used for op_in, not op_get_by_id.
&gt; 
&gt; Thanks. Dropped.
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/bytecode/StructureStubInfo.h:114
&gt; &gt;&gt; +
&gt; &gt; 
&gt; &gt; I don&apos;t like this.  StructureStubInfo shouldn&apos;t know anything about get_by_val.  It should be get_by_val&apos;s job to verify the index, and then create a StructureStubInfo on-demand that uses the right identifier.  When you do that, the StructureStubInfo doesn&apos;t have to know about the identifier.
&gt; 
&gt; You mean that only one identifier is allowed to be cached in the get_by_val
&gt; place, correct?
&gt; 
&gt; At first, I introduced the following polymorphic IC for get_by_val,
&gt; 
&gt; [IC:1, ident:&apos;A&apos;]
&gt; if (given subscript is not ident &apos;A&apos;)
&gt;     goto IC:2
&gt; ... get_by_id IC for IC:1...
&gt; 
&gt; [IC:2, ident:&apos;B&apos;]
&gt; if (given subscript is not ident &apos;B&apos;)
&gt;     goto IC:3
&gt; ... get_by_id IC for IC:2...
&gt; 
&gt; [IC:3, ident:&apos;B&apos;]  // the same ident name to IC:2, but access type may
&gt; differ.
&gt; if (given subscript is not ident &apos;B&apos;)
&gt;     goto IC:4
&gt; ... get_by_id IC for IC:3...
&gt; 
&gt; 
&gt; If I understand your plan, you means the following.
&gt; 
&gt; if (the given subscript is not the cached ident &apos;A&apos;)
&gt;     fail;
&gt; [IC:1]
&gt; ... get_by_id IC for IC:1...
&gt; 
&gt; [IC:2]
&gt; ... get_by_id IC for IC:2...
&gt; 
&gt; [IC:3]
&gt; ... get_by_id IC for IC:3...
&gt; // IC layer is the almost same to the get_by_id&apos;s one.
&gt; 
&gt; In the second case, we can keep IC layer completely unaware of identifier
&gt; check because get_by_val layer already validate the given subscript is the
&gt; cached identifier.

Yup, that&apos;s right</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113833</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-31 13:45:42 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; 
&gt; Yup, that&apos;s right

I&apos;ve got it! OK, I&apos;ll update the patch to follow this design, it significantly reduces the IC layer&apos;s change!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114088</commentid>
    <comment_count>8</comment_count>
      <attachid>258031</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-02 01:24:45 -0700</bug_when>
    <thetext>Created attachment 258031
Patch

WIP: Adding IC into baseline 64 JIT, baseline 32_64, DFG is not yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114089</commentid>
    <comment_count>9</comment_count>
      <attachid>258032</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-02 01:28:04 -0700</bug_when>
    <thetext>Created attachment 258032
Patch

WIP: Adding IC into baseline 64 JIT. baseline 32_64, DFG, marking IC when the place is used as generic are not yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114330</commentid>
    <comment_count>10</comment_count>
      <attachid>258105</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-03 13:34:07 -0700</bug_when>
    <thetext>Created attachment 258105
Patch

WIP: Adding baseline 32_64. DFG is not yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114503</commentid>
    <comment_count>11</comment_count>
      <attachid>258149</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-03 20:37:53 -0700</bug_when>
    <thetext>Created attachment 258149
Patch

WIP: baseline fix. Working on DFG...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114506</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-03 20:49:47 -0700</bug_when>
    <thetext>baseline layer is almost done.
Now, I&apos;m planning to implement DFG layer. Here is my plan,

1. Introduce a new DFG Node, CheckIdent.
2. Use StringIdentUse / SymbolUse with CheckIdent.
3. Before emitting GetById related ops for GetByVal, insert CheckIdent for the subscript.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114512</commentid>
    <comment_count>13</comment_count>
      <attachid>258153</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-03 21:29:41 -0700</bug_when>
    <thetext>Created attachment 258153
Patch

WIP: adding SymbolUse. And fix bug in baseline side</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114557</commentid>
    <comment_count>14</comment_count>
      <attachid>258160</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 00:24:50 -0700</bug_when>
    <thetext>Created attachment 258160
Patch

WIP: partial DFG/FTL. still fixing issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114699</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 12:11:32 -0700</bug_when>
    <thetext>In the currently proposed patch, I don&apos;t use CheckCell because the different Symbol / JSString cell can hold the expected identifier.

For Symbol, different cell holding the same identifier is the rare case.

var symbol1 = Symbol();
var object = {};
object[symbol1] = 42;
var symbol2 = Object.getOwnPropertySymbols(object)[0];
// Here, symbol1 and symbol2 indicates the same identifier, but the JSCell addresses are not the same.

But for String case, it is not so rare I guess.

function hello(name) {
    return object[name];
}
noInline(hello);

function a() {
    var string = &apos;prototype&apos;;
    hello(string);
}

function b() {
    var string = &apos;prototype&apos;;
    hello(string);
}

a();
b();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114771</commentid>
    <comment_count>16</comment_count>
      <attachid>258209</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 14:19:51 -0700</bug_when>
    <thetext>Created attachment 258209
Patch

WIP: progress in string handling in DFG, still working on SymbolUse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114827</commentid>
    <comment_count>17</comment_count>
      <attachid>258222</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 15:41:53 -0700</bug_when>
    <thetext>Created attachment 258222
Patch

WIP: fixing crashes in DFG</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114886</commentid>
    <comment_count>18</comment_count>
      <attachid>258242</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 17:20:13 -0700</bug_when>
    <thetext>Created attachment 258242
Patch

WIP: implementation is done, now running benchmarks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114904</commentid>
    <comment_count>19</comment_count>
      <attachid>258246</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 17:51:12 -0700</bug_when>
    <thetext>Created attachment 258246
Patch

WIP: fixed issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114906</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 17:52:52 -0700</bug_when>
    <thetext>Performance Results.

Benchmark report for SunSpider, LongSpider, V8Spider, and JSRegress on Yusukes-MacBook-Pro (MacBookPro11,3).

VMs tested:
&quot;master&quot; at /Users/yusukesuzuki/development/WebKit/WebKitBuild/master-for-gen3/Release/jsc
&quot;species&quot; at /Users/yusukesuzuki/development/WebKit/WebKitBuild/gen3/Release/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get
microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                       master                   species                                      
SunSpider:
   3d-cube                                         4.4421+-0.1373     ?      4.4938+-0.2017        ? might be 1.0117x slower
   3d-morph                                        5.2539+-0.1642     ?      5.4995+-0.7748        ? might be 1.0467x slower
   3d-raytrace                                     5.3616+-0.1164            5.3560+-0.3120        
   access-binary-trees                             2.0035+-0.1363     ?      2.0813+-0.0164        ? might be 1.0388x slower
   access-fannkuch                                 5.5674+-0.4500            5.4594+-0.1643          might be 1.0198x faster
   access-nbody                                    2.4971+-0.0424     ?      2.6827+-0.5851        ? might be 1.0743x slower
   access-nsieve                                   3.1160+-0.3489            3.0283+-0.0168          might be 1.0290x faster
   bitops-3bit-bits-in-byte                        1.4741+-0.0303     ?      1.5028+-0.0377        ? might be 1.0195x slower
   bitops-bits-in-byte                             3.5947+-0.9204            3.3135+-0.1061          might be 1.0849x faster
   bitops-bitwise-and                              2.0226+-0.0669            2.0049+-0.0812        
   bitops-nsieve-bits                              3.1756+-0.7110            2.9510+-0.0503          might be 1.0761x faster
   controlflow-recursive                           2.0978+-0.1570            2.0319+-0.0338          might be 1.0324x faster
   crypto-aes                                      3.9552+-0.3245            3.8408+-0.1452          might be 1.0298x faster
   crypto-md5                                      2.5662+-0.2660            2.5242+-0.0771          might be 1.0166x faster
   crypto-sha1                                     2.4197+-0.1816     ?      2.5527+-0.2507        ? might be 1.0549x slower
   date-format-tofte                               6.9675+-0.3037            6.8753+-0.6531          might be 1.0134x faster
   date-format-xparb                               4.6592+-0.1305     ?      4.6697+-0.1837        ?
   math-cordic                                     2.8740+-0.2484            2.7986+-0.0515          might be 1.0270x faster
   math-partial-sums                               5.2408+-0.0563     ?      5.3026+-0.1072        ? might be 1.0118x slower
   math-spectral-norm                              1.8510+-0.0380            1.8447+-0.0476        
   regexp-dna                                      6.3317+-0.1154     ?      6.3854+-0.2599        ?
   string-base64                                   4.4282+-0.3474            4.3973+-0.3080        
   string-fasta                                    5.9208+-0.4972            5.7447+-0.0309          might be 1.0307x faster
   string-tagcloud                                 8.0621+-0.1160     ?      8.1893+-0.3404        ? might be 1.0158x slower
   string-unpack-code                             20.3472+-0.7518     ?     22.4705+-1.4263        ? might be 1.1044x slower
   string-validate-input                           4.5556+-0.1875            4.5268+-0.1930        

   &lt;arithmetic&gt;                                    4.6456+-0.0810     ?      4.7126+-0.0830        ? might be 1.0144x slower

                                                       master                   species                                      
LongSpider:
   3d-cube                                       788.5104+-7.1031     ?    794.5159+-14.8157       ?
   3d-morph                                     1546.9291+-8.7013         1541.2802+-15.1348       
   3d-raytrace                                   635.7060+-5.8197     ?    637.9692+-15.0313       ?
   access-binary-trees                           820.4293+-5.8260          813.4664+-15.4834       
   access-fannkuch                               280.5819+-1.6577     ?    335.7636+-138.7062      ? might be 1.1967x slower
   access-nbody                                  525.3265+-11.2679    ?    527.3303+-11.4000       ?
   access-nsieve                                 373.5825+-14.8546    ^    354.3922+-3.7372        ^ definitely 1.0542x faster
   bitops-3bit-bits-in-byte                       41.2095+-1.8689           40.5767+-0.4060          might be 1.0156x faster
   bitops-bits-in-byte                            85.1035+-10.9336          83.1199+-5.2342          might be 1.0239x faster
   bitops-nsieve-bits                            414.9383+-10.8680         409.3783+-3.1136          might be 1.0136x faster
   controlflow-recursive                         429.6959+-9.4196     ?    435.9777+-16.0018       ? might be 1.0146x slower
   crypto-aes                                    592.8259+-4.9213          590.2338+-4.0614        
   crypto-md5                                    479.8030+-1.2676     ?    502.2087+-42.5488       ? might be 1.0467x slower
   crypto-sha1                                   653.0675+-4.8542          645.2822+-3.7021          might be 1.0121x faster
   date-format-tofte                             528.8321+-2.3000          525.9768+-31.3396       
   date-format-xparb                             649.0792+-13.0377         640.5962+-6.3482          might be 1.0132x faster
   hash-map                                      162.2410+-18.9961         156.6026+-3.0365          might be 1.0360x faster
   math-cordic                                   499.1398+-4.8882          495.2929+-1.1802        
   math-partial-sums                             502.1100+-4.4317     ?    505.5042+-5.2820        ?
   math-spectral-norm                            563.1696+-1.8095          563.0532+-4.5553        
   string-base64                                 360.5756+-15.5971         352.0096+-6.6049          might be 1.0243x faster
   string-fasta                                  369.1275+-2.5965     ?    370.8400+-3.3582        ?
   string-tagcloud                               183.6224+-5.9776          180.4573+-0.6131          might be 1.0175x faster

   &lt;geometric&gt;                                   401.7395+-4.3766     ?    401.9177+-7.0245        ? might be 1.0004x slower

                                                       master                   species                                      
V8Spider:
   crypto                                         50.2827+-1.4262     ?     50.8752+-2.4975        ? might be 1.0118x slower
   deltablue                                      84.9785+-8.0150           82.3772+-14.1490         might be 1.0316x faster
   earley-boyer                                   39.4887+-0.4282     ?     40.1658+-0.7787        ? might be 1.0171x slower
   raytrace                                       29.7660+-2.0415           29.4099+-1.5646          might be 1.0121x faster
   regexp                                         63.8270+-3.0747           63.3483+-0.6786        
   richards                                       70.5402+-2.3693     ?     70.6910+-2.5933        ?
   splay                                          34.8151+-3.9969           33.6254+-2.3940          might be 1.0354x faster

   &lt;geometric&gt;                                    50.0254+-1.0534           49.6261+-1.4227          might be 1.0080x faster

                                                       master                   species                                      
JSRegress:
   abc-forward-loop-equal                         29.7699+-0.8810     ?     29.8286+-0.7802        ?
   abc-postfix-backward-loop                      29.5397+-1.1902     ?     29.6401+-0.2869        ?
   abc-simple-backward-loop                       29.5812+-0.5782           29.3205+-0.7110        
   abc-simple-forward-loop                        29.2620+-0.9747     ?     29.4747+-1.6174        ?
   abc-skippy-loop                                21.3585+-1.0552     ?     22.2303+-3.1231        ? might be 1.0408x slower
   abs-boolean                                     2.4760+-0.0457     ?      2.4854+-0.0916        ?
   adapt-to-double-divide                         16.5992+-0.3484     ?     16.9543+-1.6345        ? might be 1.0214x slower
   aliased-arguments-getbyval                      1.1517+-0.1043            1.1428+-0.1570        
   allocate-big-object                             2.9448+-0.4917            2.7939+-0.5487          might be 1.0540x faster
   arguments-named-and-reflective                 11.1030+-0.5950     ?     11.1687+-0.6669        ?
   arguments-out-of-bounds                        10.0645+-0.4167            9.7751+-0.4799          might be 1.0296x faster
   arguments-strict-mode                           9.6418+-0.8168            9.6406+-0.3072        
   arguments                                       8.6718+-0.2952     ?      8.7939+-0.8420        ? might be 1.0141x slower
   arity-mismatch-inlining                         0.8503+-0.0366            0.8075+-0.0796          might be 1.0531x faster
   array-access-polymorphic-structure              6.0428+-0.3265            6.0057+-0.4470        
   array-nonarray-polymorhpic-access              25.1509+-1.1862           24.6328+-0.8690          might be 1.0210x faster
   array-prototype-every                          76.1085+-1.6862     ?     77.2085+-0.6563        ? might be 1.0145x slower
   array-prototype-forEach                        75.9246+-2.3946     ?     75.9965+-0.8777        ?
   array-prototype-map                            82.7963+-1.0656     ?     83.1780+-1.5287        ?
   array-prototype-reduce                         91.0179+-53.0369          73.0562+-4.5362          might be 1.2459x faster
   array-prototype-reduceRight                    71.7922+-3.9629           71.3085+-0.4620        
   array-prototype-some                           76.4712+-2.0568     ?     77.5084+-0.4317        ? might be 1.0136x slower
   array-splice-contiguous                        21.4180+-0.6371           21.3235+-1.1481        
   array-with-double-add                           3.4208+-0.1032     ?      3.4612+-0.2265        ? might be 1.0118x slower
   array-with-double-increment                     3.4728+-1.2509            3.1915+-0.3961          might be 1.0881x faster
   array-with-double-mul-add                       4.3173+-0.3194            4.3008+-0.2876        
   array-with-double-sum                           3.2119+-0.0411     ?      3.2183+-0.0370        ?
   array-with-int32-add-sub                        5.9630+-0.1739            5.9352+-0.0739        
   array-with-int32-or-double-sum                  3.2280+-0.0301            3.2188+-0.0229        
   ArrayBuffer-DataView-alloc-large-long-lived
                                                  28.2720+-2.4650           27.4775+-0.2457          might be 1.0289x faster
   ArrayBuffer-DataView-alloc-long-lived          12.7273+-0.6942           12.6464+-0.6886        
   ArrayBuffer-Int32Array-byteOffset               3.6003+-0.0828     ?      3.7080+-0.1915        ? might be 1.0299x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived
                                                  27.5381+-0.3343     ?     28.3159+-2.6325        ? might be 1.0282x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer
                                                  20.5453+-0.4426           20.5187+-0.4079        
   ArrayBuffer-Int8Array-alloc-long-lived         13.0433+-2.5018           11.7849+-0.4536          might be 1.1068x faster
   ArrayBuffer-Int8Array-alloc                    10.2642+-0.0943     ?     10.7675+-1.4762        ? might be 1.0490x slower
   asmjs_bool_bug                                  7.2306+-0.0698     ?      7.4948+-0.3141        ? might be 1.0365x slower
   assign-custom-setter-polymorphic                2.6484+-0.1868            2.5128+-0.0535          might be 1.0540x faster
   assign-custom-setter                            3.6039+-0.1641            3.4631+-0.2513          might be 1.0407x faster
   basic-set                                       8.0643+-0.1772     ?      8.4390+-0.4250        ? might be 1.0465x slower
   big-int-mul                                     3.5850+-0.2029            3.5020+-0.0700          might be 1.0237x faster
   boolean-test                                    2.9070+-0.0551     ?      3.0471+-0.4749        ? might be 1.0482x slower
   branch-fold                                     3.6533+-0.0786            3.6484+-0.0781        
   branch-on-string-as-boolean                    16.5993+-0.6741           16.5320+-0.5459        
   by-val-generic                                  7.2444+-0.8123            6.3353+-0.1992          might be 1.1435x faster
   call-spread-apply                              26.8419+-0.6531           26.6405+-0.5037        
   call-spread-call                               21.7241+-1.2665           21.0806+-0.6363          might be 1.0305x faster
   captured-assignments                            0.4415+-0.0612            0.4010+-0.0054          might be 1.1009x faster
   cast-int-to-double                              5.0946+-0.0749     ?      5.1187+-0.0169        ?
   cell-argument                                   6.2999+-0.3781     ?      6.3842+-0.0212        ? might be 1.0134x slower
   cfg-simplify                                    2.9525+-0.5096            2.7837+-0.1163          might be 1.0606x faster
   chain-getter-access                             8.1428+-0.0986            8.0204+-0.0891          might be 1.0153x faster
   cmpeq-obj-to-obj-other                         11.9151+-0.6244           11.4652+-2.2493          might be 1.0392x faster
   constant-test                                   4.8922+-0.1319     ?      4.9088+-0.0918        ?
   create-lots-of-functions                        9.1223+-0.4366     ?      9.4798+-0.7190        ? might be 1.0392x slower
   cse-new-array-buffer                            2.3235+-0.1908            2.2791+-0.3743          might be 1.0195x faster
   cse-new-array                                   2.2679+-0.2411     ?      2.2711+-0.2457        ?
   DataView-custom-properties                     32.2412+-0.7142     ?     32.2668+-0.3819        ?
   delay-tear-off-arguments-strictmode            12.6199+-0.1107     ?     12.8565+-0.4830        ? might be 1.0187x slower
   deltablue-varargs                             151.3510+-4.5925     ?    152.1316+-11.5518       ?
   destructuring-arguments                       170.6247+-4.0783          168.3606+-0.5212          might be 1.0134x faster
   destructuring-parameters-overridden-by-function
                                                   0.4482+-0.0730            0.4413+-0.0712          might be 1.0158x faster
   destructuring-swap                              4.8115+-0.1757            4.7328+-0.0311          might be 1.0166x faster
   direct-arguments-getbyval                       1.0618+-0.0406     ?      1.1099+-0.1510        ? might be 1.0453x slower
   div-boolean-double                              5.4202+-0.0301     ?      5.4555+-0.1404        ?
   div-boolean                                     8.2736+-0.1153     ?      8.6228+-0.5151        ? might be 1.0422x slower
   double-get-by-val-out-of-bounds                 4.2249+-0.1336            4.1757+-0.2424          might be 1.0118x faster
   double-pollution-getbyval                       8.8760+-0.1794            8.7523+-0.1010          might be 1.0141x faster
   double-pollution-putbyoffset                    3.7828+-0.1348            3.6426+-0.1994          might be 1.0385x faster
   double-real-use                                26.3260+-4.0902           26.1821+-3.7775        
   double-to-int32-typed-array-no-inline           2.0786+-0.1241     ?      2.1222+-0.0882        ? might be 1.0210x slower
   double-to-int32-typed-array                     1.7986+-0.1374            1.7803+-0.0686          might be 1.0103x faster
   double-to-uint32-typed-array-no-inline          2.1990+-0.1566            2.1404+-0.0418          might be 1.0273x faster
   double-to-uint32-typed-array                    1.8464+-0.0552     ?      1.9167+-0.2174        ? might be 1.0381x slower
   elidable-new-object-dag                        34.0302+-1.1429           33.5905+-0.3361          might be 1.0131x faster
   elidable-new-object-roflcopter                 33.1310+-0.9349           33.0817+-0.6415        
   elidable-new-object-then-call                  32.2158+-3.3141           31.5032+-0.7944          might be 1.0226x faster
   elidable-new-object-tree                       36.5908+-1.1906           36.3511+-0.4197        
   empty-string-plus-int                           4.7625+-0.0738     ?      4.7922+-0.1061        ?
   emscripten-cube2hash                           32.9211+-18.2414          28.4130+-4.0757          might be 1.1587x faster
   exit-length-on-plain-object                    12.4725+-0.1131     ?     13.0193+-1.6203        ? might be 1.0438x slower
   external-arguments-getbyval                     1.1725+-0.0280     ?      1.1985+-0.1270        ? might be 1.0221x slower
   external-arguments-putbyval                     2.2204+-0.1449     ?      2.2900+-0.2097        ? might be 1.0314x slower
   fixed-typed-array-storage-var-index             1.1561+-0.0162     ?      1.1821+-0.0479        ? might be 1.0225x slower
   fixed-typed-array-storage                       0.8467+-0.0356     ?      0.8663+-0.0529        ? might be 1.0231x slower
   Float32Array-matrix-mult                        3.8981+-0.0956     ?      3.9576+-0.2181        ? might be 1.0153x slower
   Float32Array-to-Float64Array-set               46.3846+-0.2725     ^     45.7115+-0.2316        ^ definitely 1.0147x faster
   Float64Array-alloc-long-lived                  57.1180+-0.7057     ?     57.9312+-1.8843        ? might be 1.0142x slower
   Float64Array-to-Int16Array-set                 56.0037+-0.7759     ?     57.0682+-0.5906        ? might be 1.0190x slower
   fold-double-to-int                             12.6547+-0.0677     ?     14.9647+-7.0806        ? might be 1.1825x slower
   fold-get-by-id-to-multi-get-by-offset-rare-int
                                                  10.7536+-0.3539           10.6722+-1.0550        
   fold-get-by-id-to-multi-get-by-offset           9.6079+-0.5963            9.3177+-0.5188          might be 1.0311x faster
   fold-multi-get-by-offset-to-get-by-offset
                                                   8.6090+-2.4057            8.3649+-1.4544          might be 1.0292x faster
   fold-multi-get-by-offset-to-poly-get-by-offset
                                                   7.7923+-0.5900     ?      7.8386+-2.4597        ?
   fold-multi-put-by-offset-to-poly-put-by-offset
                                                   7.9594+-0.8225            7.4425+-1.1981          might be 1.0695x faster
   fold-multi-put-by-offset-to-put-by-offset
                                                   5.8245+-0.6515            4.5423+-2.0912          might be 1.2823x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset
                                                   8.6542+-0.4720            8.5228+-1.2366          might be 1.0154x faster
   fold-put-by-id-to-multi-put-by-offset           9.1339+-0.5704            8.8630+-0.5600          might be 1.0306x faster
   fold-put-structure                              5.8349+-0.5400            4.8110+-0.9734          might be 1.2128x faster
   for-of-iterate-array-entries                   11.7175+-0.4114     ?     11.7197+-0.2821        ?
   for-of-iterate-array-keys                       3.4621+-0.2076     ?      3.4626+-0.4146        ?
   for-of-iterate-array-values                     3.3162+-0.1397     ?      3.4852+-0.3870        ? might be 1.0510x slower
   fround                                         18.9590+-1.1417           18.7536+-1.2086          might be 1.0110x faster
   ftl-library-inlining-dataview                  56.8015+-0.1752           56.7598+-0.1634        
   ftl-library-inlining                          109.4910+-3.1652     ?    110.6372+-0.1823        ? might be 1.0105x slower
   function-dot-apply                              2.1013+-0.3940            2.0200+-0.0467          might be 1.0402x faster
   function-test                                   2.6605+-0.0584     ?      2.8417+-0.2165        ? might be 1.0681x slower
   function-with-eval                             97.8994+-4.7749     ?    100.4015+-0.9963        ? might be 1.0256x slower
   gcse-poly-get-less-obvious                     14.7258+-1.0534           14.6083+-0.8778        
   gcse-poly-get                                  14.2435+-0.1949     ?     14.3100+-0.2055        ?
   gcse                                            3.8340+-0.0114     ?      4.4080+-1.7529        ? might be 1.1497x slower
   get-by-id-bimorphic-check-structure-elimination-simple
                                                   2.7872+-0.5376            2.5944+-0.0850          might be 1.0743x faster
   get-by-id-bimorphic-check-structure-elimination
                                                   5.9355+-0.5136            5.8470+-0.2297          might be 1.0151x faster
   get-by-id-chain-from-try-block                  5.5346+-0.1672     ?      5.5804+-0.3280        ?
   get-by-id-check-structure-elimination           4.4974+-0.2108            4.4138+-0.1891          might be 1.0189x faster
   get-by-id-proto-or-self                        14.3176+-0.5053     ?     14.5444+-0.6473        ? might be 1.0158x slower
   get-by-id-quadmorphic-check-structure-elimination-simple
                                                   2.8770+-0.0244     ?      2.9467+-0.2196        ? might be 1.0242x slower
   get-by-id-self-or-proto                        14.9907+-0.4067           14.4217+-0.1830          might be 1.0395x faster
   get-by-val-out-of-bounds                        3.8903+-0.1935     ?      3.9290+-0.1666        ?
   get_callee_monomorphic                          2.1942+-0.0224     ?      2.3598+-0.1827        ? might be 1.0755x slower
   get_callee_polymorphic                          3.3834+-0.4102            3.2679+-0.1662          might be 1.0353x faster
   getter-no-activation                            4.8980+-0.2415            4.7859+-0.0461          might be 1.0234x faster
   getter-prototype                                9.7903+-0.0407            9.7812+-0.1269        
   getter-richards                               111.8770+-6.7980          109.7151+-8.0887          might be 1.0197x faster
   getter                                          5.5632+-1.0854     ?      5.7562+-0.9685        ? might be 1.0347x slower
   global-object-access-with-mutating-structure
                                                   5.4990+-0.3501     ?      5.5385+-0.1702        ?
   global-var-const-infer-fire-from-opt            0.8905+-0.3334     ?      0.9818+-0.3227        ? might be 1.1025x slower
   global-var-const-infer                          0.7963+-0.1160            0.7308+-0.0915          might be 1.0897x faster
   HashMap-put-get-iterate-keys                   26.3725+-2.9933           24.6560+-1.7447          might be 1.0696x faster
   HashMap-put-get-iterate                        26.4857+-0.6282           26.0379+-3.4881          might be 1.0172x faster
   HashMap-string-put-get-iterate                 24.7594+-1.1073           24.6116+-0.3142        
   hoist-make-rope                                 8.4910+-1.1115     ?      8.7054+-0.3044        ? might be 1.0253x slower
   hoist-poly-check-structure-effectful-loop
                                                   4.1788+-0.1618     ?      4.3397+-0.3972        ? might be 1.0385x slower
   hoist-poly-check-structure                      3.3596+-0.0914            3.3214+-0.2146          might be 1.0115x faster
   imul-double-only                                6.7939+-0.4750     ?      7.6957+-3.4184        ? might be 1.1327x slower
   imul-int-only                                   8.0528+-0.4212     ?      8.1362+-0.3284        ? might be 1.0104x slower
   imul-mixed                                      6.7883+-0.6212     ?      6.7985+-0.7286        ?
   in-four-cases                                  17.9020+-1.0203     ?     18.0396+-0.8050        ?
   in-one-case-false                               9.6515+-0.4709            9.3350+-0.1946          might be 1.0339x faster
   in-one-case-true                                9.3435+-0.2701     ?      9.5897+-0.5854        ? might be 1.0263x slower
   in-two-cases                                    9.6006+-0.2639     ?      9.6505+-0.4463        ?
   indexed-properties-in-objects                   2.8294+-0.0441     ?      2.8736+-0.1679        ? might be 1.0156x slower
   infer-closure-const-then-mov-no-inline          3.0706+-0.0711     ?      3.0843+-0.0235        ?
   infer-closure-const-then-mov                   17.1558+-0.8498     ?     17.2297+-0.4785        ?
   infer-closure-const-then-put-to-scope-no-inline
                                                  11.7187+-0.4845           11.5814+-0.2329          might be 1.0119x faster
   infer-closure-const-then-put-to-scope          21.9412+-0.3872     ?     22.3874+-1.1001        ? might be 1.0203x slower
   infer-closure-const-then-reenter-no-inline
                                                  51.1894+-2.7923           50.4775+-0.8512          might be 1.0141x faster
   infer-closure-const-then-reenter               21.8628+-1.0202     ?     22.5497+-0.8483        ? might be 1.0314x slower
   infer-constant-global-property                  3.4045+-0.0645     ?      3.4892+-0.2183        ? might be 1.0249x slower
   infer-constant-property                         2.6395+-0.0717     ?      2.6599+-0.1109        ?
   infer-one-time-closure-ten-vars                 8.4910+-0.6401            8.2740+-0.0711          might be 1.0262x faster
   infer-one-time-closure-two-vars                 8.2279+-0.8786            8.0695+-0.4509          might be 1.0196x faster
   infer-one-time-closure                          8.1662+-0.4612            7.9400+-0.3176          might be 1.0285x faster
   infer-one-time-deep-closure                    12.8440+-0.3560           12.7947+-0.0969        
   inline-arguments-access                         3.6111+-0.0277     ?      3.9910+-0.6712        ? might be 1.1052x slower
   inline-arguments-aliased-access                 3.7323+-0.5300            3.6496+-0.0479          might be 1.0227x faster
   inline-arguments-local-escape                   3.6747+-0.3622            3.5471+-0.1388          might be 1.0360x faster
   inline-get-scoped-var                           4.7475+-0.2866     ?      4.7833+-0.2128        ?
   inlined-put-by-id-transition                   10.1800+-0.5413           10.0977+-0.7294        
   int-or-other-abs-then-get-by-val                4.9277+-0.1037            4.9095+-0.2062        
   int-or-other-abs-zero-then-get-by-val          16.0681+-0.1798     ?     16.8925+-1.3282        ? might be 1.0513x slower
   int-or-other-add-then-get-by-val                4.1453+-0.2495     ?      4.3477+-0.7737        ? might be 1.0488x slower
   int-or-other-add                                4.9329+-0.1382            4.8906+-0.1180        
   int-or-other-div-then-get-by-val                3.6992+-0.0186     ?      3.7823+-0.1003        ? might be 1.0225x slower
   int-or-other-max-then-get-by-val                4.1141+-0.2619            4.1075+-0.2795        
   int-or-other-min-then-get-by-val                4.0002+-0.1036     ?      4.0076+-0.0698        ?
   int-or-other-mod-then-get-by-val                4.1971+-1.5502            3.5962+-0.1587          might be 1.1671x faster
   int-or-other-mul-then-get-by-val                3.6850+-0.1556            3.6807+-0.2300        
   int-or-other-neg-then-get-by-val                4.5453+-0.0628            4.4965+-0.0764          might be 1.0108x faster
   int-or-other-neg-zero-then-get-by-val          16.9505+-0.9618           16.1080+-0.5020          might be 1.0523x faster
   int-or-other-sub-then-get-by-val                4.0965+-0.0829     ?      4.1602+-0.1662        ? might be 1.0156x slower
   int-or-other-sub                                3.4294+-0.0711     ?      3.5988+-0.6928        ? might be 1.0494x slower
   int-overflow-local                              4.3768+-0.1376            4.3364+-0.0600        
   Int16Array-alloc-long-lived                    41.5735+-0.2470     ?     41.9340+-0.2652        ?
   Int16Array-bubble-sort-with-byteLength         18.0026+-0.6704           17.4546+-0.0742          might be 1.0314x faster
   Int16Array-bubble-sort                         18.0396+-0.7140           17.9244+-0.6932        
   Int16Array-load-int-mul                         1.4271+-0.0250            1.4128+-0.0225          might be 1.0101x faster
   Int16Array-to-Int32Array-set                   43.9025+-0.7663     ?     43.9420+-0.3733        ?
   Int32Array-alloc-large                         13.4488+-1.9227           12.5812+-0.9974          might be 1.0690x faster
   Int32Array-alloc-long-lived                    47.2234+-1.3629           46.9676+-0.4791        
   Int32Array-alloc                                3.0242+-0.2044            2.8520+-0.4095          might be 1.0604x faster
   Int32Array-Int8Array-view-alloc                 6.3730+-0.3099            6.1794+-0.2116          might be 1.0313x faster
   int52-spill                                     4.7095+-0.0504            4.6277+-0.1747          might be 1.0177x faster
   Int8Array-alloc-long-lived                     37.8190+-0.5641           37.6501+-0.4242        
   Int8Array-load-with-byteLength                  3.6814+-0.6272            3.4052+-0.0394          might be 1.0811x faster
   Int8Array-load                                  3.5141+-0.1616     ?      3.6225+-0.5894        ? might be 1.0308x slower
   integer-divide                                 10.5410+-0.2708           10.5345+-0.1396        
   integer-modulo                                  1.6906+-0.1272            1.6370+-0.0543          might be 1.0327x faster
   is-boolean-fold-tricky                          3.7990+-0.1732            3.7748+-0.0982        
   is-boolean-fold                                 2.6460+-0.0345            2.6210+-0.0258        
   is-function-fold-tricky-internal-function
                                                  10.1613+-0.6169     ?     10.2540+-0.6348        ?
   is-function-fold-tricky                         4.1035+-0.0473     ?      4.1683+-0.1107        ? might be 1.0158x slower
   is-function-fold                                2.6306+-0.0461     ?      2.6603+-0.0144        ? might be 1.0113x slower
   is-number-fold-tricky                           4.1483+-0.3181            4.0336+-0.0685          might be 1.0284x faster
   is-number-fold                                  2.6247+-0.0558     ?      2.6347+-0.0439        ?
   is-object-or-null-fold-functions                2.6850+-0.0365            2.6661+-0.0627        
   is-object-or-null-fold-less-tricky              4.1434+-0.1085            4.0593+-0.0757          might be 1.0207x faster
   is-object-or-null-fold-tricky                   5.4694+-0.6924            5.3790+-0.1182          might be 1.0168x faster
   is-object-or-null-fold                          2.7084+-0.1519            2.6651+-0.0778          might be 1.0163x faster
   is-object-or-null-trickier-function             4.2421+-0.2235            4.1407+-0.1268          might be 1.0245x faster
   is-object-or-null-trickier-internal-function
                                                  10.7381+-0.0802     ?     10.8066+-0.2724        ?
   is-object-or-null-tricky-function               4.1374+-0.2265            4.1229+-0.0695        
   is-object-or-null-tricky-internal-function
                                                   8.0170+-0.1021     ^      7.7703+-0.0942        ^ definitely 1.0317x faster
   is-string-fold-tricky                           4.0544+-0.0539     ?      4.0830+-0.0234        ?
   is-string-fold                                  2.6703+-0.0774     ?      2.7097+-0.2455        ? might be 1.0148x slower
   is-undefined-fold-tricky                        3.3063+-0.0459     ?      3.4030+-0.1776        ? might be 1.0293x slower
   is-undefined-fold                               2.6517+-0.0924     ?      2.7287+-0.1933        ? might be 1.0290x slower
   large-int-captured                              3.9443+-0.2219     ?      4.0725+-0.4048        ? might be 1.0325x slower
   large-int-neg                                  14.1100+-0.1482           13.9017+-0.3177          might be 1.0150x faster
   large-int                                      14.0574+-0.5634     ?     14.2667+-1.3795        ? might be 1.0149x slower
   load-varargs-elimination                       21.3287+-0.3804     ?     22.5045+-3.1011        ? might be 1.0551x slower
   logical-not-weird-types                         2.8763+-0.1448     ?      2.9423+-0.0723        ? might be 1.0229x slower
   logical-not                                     4.3137+-0.1360     ?      4.3282+-0.1878        ?
   lots-of-fields                                  9.2881+-0.2891     ?      9.5942+-0.8139        ? might be 1.0330x slower
   make-indexed-storage                            2.8361+-0.1921     ?      2.9334+-0.1857        ? might be 1.0343x slower
   make-rope-cse                                   3.5526+-0.0097     ?      3.6516+-0.2698        ? might be 1.0278x slower
   marsaglia-larger-ints                          32.8149+-0.8726           32.4540+-1.3049          might be 1.0111x faster
   marsaglia-osr-entry                            21.2482+-0.8927     ?     21.7032+-0.3043        ? might be 1.0214x slower
   math-with-out-of-bounds-array-values           22.0703+-0.7103           22.0688+-0.2293        
   max-boolean                                     2.6968+-0.1069     ?      2.7150+-0.0466        ?
   method-on-number                               17.6138+-0.5722     ?     18.0164+-1.1441        ? might be 1.0229x slower
   min-boolean                                     2.7150+-0.1145            2.6466+-0.1178          might be 1.0258x faster
   minus-boolean-double                            3.2562+-0.3939            3.1330+-0.0617          might be 1.0393x faster
   minus-boolean                                   2.3325+-0.0431            2.3247+-0.0377        
   misc-strict-eq                                 30.2216+-0.3339     ?     31.1416+-0.7061        ? might be 1.0304x slower
   mod-boolean-double                             11.2772+-0.2061     ?     11.5609+-0.5537        ? might be 1.0252x slower
   mod-boolean                                     8.4266+-0.0555            8.3825+-0.1288        
   mul-boolean-double                              3.6218+-0.0448            3.6191+-0.0992        
   mul-boolean                                     2.9425+-0.2510            2.8053+-0.0501          might be 1.0489x faster
   neg-boolean                                     3.1428+-0.0872     ?      3.1545+-0.1182        ?
   negative-zero-divide                            0.3248+-0.0290            0.3181+-0.0073          might be 1.0209x faster
   negative-zero-modulo                            0.3102+-0.0093     ?      0.3309+-0.0495        ? might be 1.0665x slower
   negative-zero-negate                            0.2969+-0.0076     ?      0.3175+-0.0365        ? might be 1.0695x slower
   nested-function-parsing                        43.4650+-0.9715     ?     44.0468+-2.9912        ? might be 1.0134x slower
   new-array-buffer-dead                          88.7622+-0.2306           88.6266+-0.5743        
   new-array-buffer-push                           6.0338+-0.2018            5.9204+-0.1499          might be 1.0192x faster
   new-array-dead                                 14.7570+-0.9570           13.7540+-0.8935          might be 1.0729x faster
   new-array-push                                  3.3917+-0.1371     ?      3.4887+-0.2795        ? might be 1.0286x slower
   no-inline-constructor                          30.9003+-0.1012     ?     31.8352+-2.4617        ? might be 1.0303x slower
   number-test                                     2.9755+-0.1896            2.8355+-0.0725          might be 1.0494x faster
   object-closure-call                             4.8755+-0.0970            4.8148+-0.1008          might be 1.0126x faster
   object-get-own-property-symbols-on-large-array
                                                   4.2015+-0.3714            3.9218+-0.3859          might be 1.0713x faster
   object-test                                     2.6755+-0.0617            2.6234+-0.0431          might be 1.0198x faster
   obvious-sink-pathology-taken                  101.2598+-1.9175          100.0127+-0.1691          might be 1.0125x faster
   obvious-sink-pathology                         96.0794+-1.2597           95.3389+-1.1346        
   obviously-elidable-new-object                  28.0063+-2.9332           27.5768+-2.7027          might be 1.0156x faster
   plus-boolean-arith                              2.5155+-0.3387            2.4147+-0.0654          might be 1.0417x faster
   plus-boolean-double                             3.0900+-0.1252     ?      3.1278+-0.1931        ? might be 1.0122x slower
   plus-boolean                                    2.6046+-0.0636            2.5690+-0.0542          might be 1.0139x faster
   poly-chain-access-different-prototypes-simple
                                                   3.2819+-0.1221     ?      3.3821+-0.2546        ? might be 1.0305x slower
   poly-chain-access-different-prototypes          2.8660+-0.0917     ?      2.8868+-0.0864        ?
   poly-chain-access-simpler                       3.2675+-0.1314     ?      3.4135+-0.1091        ? might be 1.0447x slower
   poly-chain-access                               3.4247+-0.4846            3.2943+-0.0465          might be 1.0396x faster
   poly-stricteq                                  50.5822+-0.1720     ?     50.5966+-1.0234        ?
   polymorphic-array-call                          1.2535+-0.1304     ?      1.3660+-0.4669        ? might be 1.0897x slower
   polymorphic-get-by-id                           2.9049+-0.1015            2.8870+-0.2276        
   polymorphic-put-by-id                          25.2823+-1.3753     ?     25.4573+-1.1253        ?
   polymorphic-structure                          13.1565+-0.2775     ?     13.4051+-0.2549        ? might be 1.0189x slower
   polyvariant-monomorphic-get-by-id               6.3972+-0.5008     ?      7.2760+-0.6441        ? might be 1.1374x slower
   proto-getter-access                             8.1420+-0.1529            8.1098+-0.2040        
   prototype-access-with-mutating-prototype        5.5105+-0.1039            5.4703+-0.2735        
   put-by-id-replace-and-transition                7.3156+-0.6418     ?      8.5057+-2.3822        ? might be 1.1627x slower
   put-by-id-slightly-polymorphic                  2.6802+-0.1490     ?      2.7071+-0.2766        ? might be 1.0100x slower
   put-by-id                                       9.5447+-0.3086     ?      9.5797+-0.0845        ?
   put-by-val-direct                               0.3208+-0.0071     ?      0.3367+-0.0691        ? might be 1.0497x slower
   put-by-val-large-index-blank-indexing-type
                                                   5.5825+-0.2697            5.5275+-0.0375        
   put-by-val-machine-int                          2.3799+-0.2163     ?      2.5018+-0.1967        ? might be 1.0512x slower
   rare-osr-exit-on-local                         14.6082+-0.4175     ?     14.7549+-0.5519        ? might be 1.0100x slower
   register-pressure-from-osr                     16.5098+-0.4731     ?     17.1824+-2.5024        ? might be 1.0407x slower
   repeat-multi-get-by-offset                     22.1600+-0.1069           21.7976+-0.5485          might be 1.0166x faster
   setter-prototype                                8.1597+-1.7976            7.3476+-0.1534          might be 1.1105x faster
   setter                                          5.7278+-0.5682            5.6282+-0.7011          might be 1.0177x faster
   simple-activation-demo                         24.7805+-0.9209     ?     26.8917+-9.0112        ? might be 1.0852x slower
   simple-getter-access                           10.3787+-0.1121     ?     10.5609+-0.4113        ? might be 1.0175x slower
   simple-poly-call-nested                         9.0065+-0.3466            8.4673+-0.4956          might be 1.0637x faster
   simple-poly-call                                1.2806+-0.2041     ?      1.3272+-0.1139        ? might be 1.0364x slower
   sin-boolean                                    18.0939+-1.1833           17.7176+-1.0239          might be 1.0212x faster
   singleton-scope                                58.5159+-0.6226           58.1296+-0.2962        
   sink-function                                   8.9607+-0.4399     ?      9.8867+-1.1264        ? might be 1.1033x slower
   sink-huge-activation                           16.5263+-0.6274     ?     17.5684+-5.8159        ? might be 1.0631x slower
   sinkable-new-object-dag                        56.7819+-0.8681           55.7200+-1.7374          might be 1.0191x faster
   sinkable-new-object-taken                      43.6000+-0.5271     ?     43.8685+-3.0546        ?
   sinkable-new-object                            29.4683+-0.5391     ?     30.3748+-1.8943        ? might be 1.0308x slower
   slow-array-profile-convergence                  2.5283+-0.0845     ?      2.5414+-0.0999        ?
   slow-convergence                                2.4059+-0.0708     ?      2.4415+-0.0488        ? might be 1.0148x slower
   slow-ternaries                                 17.9447+-0.7392     ?     18.0928+-0.4861        ?
   sorting-benchmark                              17.2123+-1.0968     ?     17.2232+-0.7246        ?
   sparse-conditional                              1.1472+-0.0526            1.1425+-0.0378        
   splice-to-remove                               12.7194+-0.6260           12.4108+-0.3095          might be 1.0249x faster
   string-char-code-at                            15.7216+-2.7282           14.4878+-0.0856          might be 1.0852x faster
   string-concat-object                            2.2806+-0.5152            2.1243+-0.0876          might be 1.0736x faster
   string-concat-pair-object                       2.0753+-0.0606     ?      2.0829+-0.1340        ?
   string-concat-pair-simple                       9.7499+-1.1561            9.2743+-0.5603          might be 1.0513x faster
   string-concat-simple                            9.0132+-0.2008     ?      9.4243+-0.7312        ? might be 1.0456x slower
   string-cons-repeat                              6.5491+-0.1516            6.5002+-0.1045        
   string-cons-tower                               6.7784+-0.0179            6.7314+-0.3514        
   string-equality                                15.4356+-0.7737           15.4108+-0.6197        
   string-get-by-val-big-char                      6.6782+-0.0549            6.6772+-0.1265        
   string-get-by-val-out-of-bounds-insane          3.3538+-0.0671     ?      3.4036+-0.1881        ? might be 1.0149x slower
   string-get-by-val-out-of-bounds                 4.3325+-0.4684            4.0910+-0.1360          might be 1.0590x faster
   string-get-by-val                               2.8041+-0.0503            2.7958+-0.0696        
   string-hash                                     1.9043+-0.1914            1.8528+-0.1253          might be 1.0278x faster
   string-long-ident-equality                     12.9851+-0.4882           12.6245+-0.1309          might be 1.0286x faster
   string-out-of-bounds                           10.5247+-0.5959     ?     10.5648+-0.6471        ?
   string-repeat-arith                            27.9309+-0.8506           27.6654+-0.7512        
   string-sub                                     53.6057+-0.6612           53.2411+-0.2445        
   string-test                                     2.7765+-0.0606            2.7443+-0.0845          might be 1.0117x faster
   string-var-equality                            26.1039+-0.9837     ?     26.8226+-0.5124        ? might be 1.0275x slower
   structure-hoist-over-transitions                2.8682+-0.7464            2.4961+-0.2343          might be 1.1491x faster
   substring-concat-weird                         36.0753+-0.4236           35.9692+-0.4650        
   substring-concat                               39.8434+-0.1905           39.5881+-0.7653        
   substring                                      45.4606+-0.5773           45.1267+-0.4564        
   switch-char-constant                            2.7171+-0.1493            2.7039+-0.0915        
   switch-char                                     5.7884+-0.9033     ?      5.9066+-0.5719        ? might be 1.0204x slower
   switch-constant                                 7.3373+-0.6961            7.1603+-0.6167          might be 1.0247x faster
   switch-string-basic-big-var                    15.5952+-0.1135     ?     17.5072+-5.0370        ? might be 1.1226x slower
   switch-string-basic-big                        15.0492+-0.2287     ?     15.1172+-0.5228        ?
   switch-string-basic-var                        13.3960+-0.1981           13.3311+-0.1666        
   switch-string-basic                            13.1674+-0.5421     ?     13.3748+-0.6946        ? might be 1.0157x slower
   switch-string-big-length-tower-var             18.2630+-0.7682           18.1558+-1.3322        
   switch-string-length-tower-var                 13.2280+-0.2848           13.1790+-0.1228        
   switch-string-length-tower                     11.9094+-0.5585           11.7681+-0.1899          might be 1.0120x faster
   switch-string-short                            11.7844+-0.2561     ?     12.1565+-0.6522        ? might be 1.0316x slower
   switch                                         11.3233+-0.8330     ?     12.0585+-1.1326        ? might be 1.0649x slower
   tear-off-arguments-simple                       2.9579+-0.2473     ?      3.1749+-0.1875        ? might be 1.0734x slower
   tear-off-arguments                              4.2675+-0.3626            4.0541+-0.3540          might be 1.0526x faster
   temporal-structure                             12.1464+-0.1680     ?     12.1511+-0.2309        ?
   to-int32-boolean                               13.3193+-0.1749     ?     13.4550+-0.3960        ? might be 1.0102x slower
   try-catch-get-by-val-cloned-arguments          14.2219+-0.2938     ?     14.8055+-0.6385        ? might be 1.0410x slower
   try-catch-get-by-val-direct-arguments           6.5555+-0.2867            6.5004+-0.6654        
   try-catch-get-by-val-scoped-arguments           7.6108+-0.3731     ?      7.7600+-0.3963        ? might be 1.0196x slower
   typed-array-get-set-by-val-profiling           27.5575+-0.8147     ?     28.2671+-0.7165        ? might be 1.0257x slower
   undefined-property-access                     228.9573+-2.7614          228.2759+-3.2179        
   undefined-test                                  2.8958+-0.0527            2.8327+-0.0474          might be 1.0223x faster
   unprofiled-licm                                14.7143+-1.6529           14.5198+-0.3085          might be 1.0134x faster
   varargs-call                                   13.6003+-0.3095           13.5673+-0.2192        
   varargs-construct-inline                       22.3518+-1.0009           21.9247+-0.2330          might be 1.0195x faster
   varargs-construct                              20.3560+-0.5621     ?     20.6396+-0.7666        ? might be 1.0139x slower
   varargs-inline                                  8.5709+-0.1958     ?      8.5728+-0.1470        ?
   varargs-strict-mode                             9.2747+-0.4051            9.0939+-0.1043          might be 1.0199x faster
   varargs                                         9.2289+-0.4953     ?      9.2654+-0.3837        ?
   weird-inlining-const-prop                       2.0995+-0.3127            2.0768+-0.1419          might be 1.0110x faster

   &lt;geometric&gt;                                     7.8221+-0.0691            7.8045+-0.0549          might be 1.0022x faster

                                                       master                   species                                      
Geomean of preferred means:
   &lt;scaled-result&gt;                                29.2321+-0.1248     ?     29.2646+-0.1912        ? might be 1.0011x slower</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114913</commentid>
    <comment_count>21</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 18:05:58 -0700</bug_when>
    <thetext>I&apos;ll add some synthetic benchmarks to js/regress to measure the performance benefit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114937</commentid>
    <comment_count>22</comment_count>
      <attachid>258246</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-04 18:57:06 -0700</bug_when>
    <thetext>Comment on attachment 258246
Patch

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

Looks pretty good!

&gt; Source/JavaScriptCore/bytecode/GetByIdStatus.cpp:82
&gt; +    // Only tiers higher than LLInt use GetById IC for op_get_by_val.
&gt; +    if (instruction[0].u.opcode == LLInt::getOpcode(op_get_by_val))
&gt; +        return GetByIdStatus(NoInformation, false);
&gt; +

Remove this.

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:2191
&gt; +    case CheckIdent: {
&gt; +        AbstractValue&amp; value = forNode(node-&gt;child1());
&gt; +        UniquedStringImpl* uid = node-&gt;uidOperand();
&gt; +        ASSERT(uid-&gt;isSymbol() ? !(value.m_type &amp; ~SpecSymbol) : !(value.m_type &amp; ~SpecStringIdent)); // Edge filtering should have already ensured this.
&gt; +
&gt; +        JSValue childConstant = value.value();
&gt; +        if (childConstant) {
&gt; +            if (uid-&gt;isSymbol()) {
&gt; +                ASSERT(childConstant.isSymbol());
&gt; +                if (asSymbol(childConstant)-&gt;privateName().uid() == uid) {
&gt; +                    m_state.setFoundConstants(true);
&gt; +                    break;
&gt; +                }
&gt; +            } else {
&gt; +                ASSERT(childConstant.isString());
&gt; +                if (asString(childConstant)-&gt;tryGetValueImpl() == uid) {
&gt; +                    m_state.setFoundConstants(true);
&gt; +                    break;
&gt; +                }
&gt; +            }
&gt; +        }
&gt; +
&gt; +        filter(value, uid-&gt;isSymbol() ? SpecSymbol : SpecStringIdent);
&gt; +        break;
&gt; +    }
&gt; +

Why can&apos;t you just use CheckCell for the symbol case?

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3416
&gt; +                GetByIdStatus getByIdStatus = GetByIdStatus::computeFor(
&gt; +                    m_inlineStackTop-&gt;m_profiledBlock, m_dfgCodeBlock,
&gt; +                    m_inlineStackTop-&gt;m_stubInfos, m_dfgStubInfos,
&gt; +                    currentCodeOrigin(), uid);

It would be much better if the ByValInfo simply had a pointer to the StructureStubInfo rather than using the search.  It just reduces confusion.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:3877
&gt; +    case CheckIdent: {
&gt; +        SpeculateCellOperand operand(this, node-&gt;child1());
&gt; +        UniquedStringImpl* uid = node-&gt;uidOperand();
&gt; +        if (uid-&gt;isSymbol()) {
&gt; +            speculateSymbol(node-&gt;child1(), operand.gpr());
&gt; +            speculationCheck(
&gt; +                BadConstantCache, JSValueSource::unboxedCell(operand.gpr()), node-&gt;child1(),
&gt; +                m_jit.branchPtr(
&gt; +                    JITCompiler::NotEqual,
&gt; +                    JITCompiler::Address(operand.gpr(), Symbol::offsetOfPrivateName()),
&gt; +                    TrustedImmPtr(uid)));
&gt; +        } else {
&gt; +            speculateString(node-&gt;child1(), operand.gpr());
&gt; +            speculateStringIdent(node-&gt;child1(), operand.gpr());
&gt; +            speculationCheck(
&gt; +                BadConstantCache, JSValueSource::unboxedCell(operand.gpr()), node-&gt;child1(),
&gt; +                m_jit.branchPtr(
&gt; +                    JITCompiler::NotEqual,
&gt; +                    JITCompiler::Address(operand.gpr(), JSString::offsetOfValue()),
&gt; +                    TrustedImmPtr(uid)));
&gt; +        }
&gt; +        noResult(node);
&gt; +        break;
&gt; +    }
&gt; +

This is identical to 32_64, so you should move this into a helper method in SpeculativeJIT.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114944</commentid>
    <comment_count>23</comment_count>
      <attachid>258259</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 19:50:45 -0700</bug_when>
    <thetext>Created attachment 258259
Patch

WIP: added synthetic benchmarks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114947</commentid>
    <comment_count>24</comment_count>
      <attachid>258246</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 20:25:55 -0700</bug_when>
    <thetext>Comment on attachment 258246
Patch

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

Thank you for your review! I&apos;ll fix and add tests more!
BTW, I&apos;ve taken the benchmark result with the synthetic benchmark and it shows the significant performance improvement. I&apos;ll paste the data.

&gt;&gt; Source/JavaScriptCore/bytecode/GetByIdStatus.cpp:82
&gt;&gt; +
&gt; 
&gt; Remove this.

Without it, we hit the assertion.
GetByIdStatus::computeFromLLInt can be used even in the DFG layer; When there&apos;s no stubInfo or no good information in baseline JIT, we attempt to retrieve the cached data from the bytecode.

But at that time, we assume the byte code structure is the same to the get_by_id&apos;s structure.
For example, after this guard, we attempt to retrieve the cached Structure data by `Structure* structure = instruction[4].u.structure.get();`.
However, get_by_val does not have the cached data and its byte code structure is not the same to the get_by_id, it looks up the incorrect data.
So before querying the information to the byte code, we need to exit when our byte code is the op_get_by_val.

&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:2191
&gt;&gt; +
&gt; 
&gt; Why can&apos;t you just use CheckCell for the symbol case?

Because different Symbol cells may have the same UniquedStringImpl pointer.
For example,

var symbol1 = Symbol();
var object = { [symbol1]: 42 };
var symbol2 = Object.getOwnPropertySymbols(object)[0];
symbol1 === symbol2;  // true

In the above case, symbol1 and symbol2&apos;s cell addresses are different. But they are identical symbols and === returns true.

The reason of this Symbol design is keeping the keys (UniquedStringImpl) of PropertyTable ref-counted objects.
Currently, since PropertyTable does not have the GC-managed keys, GC marking for the keys of PropertyTable is not necessary.
However, if we would like to ensure that the uniqued Symbol has the same cell address, we need to store JSCell into PropertyTable (because Object.getOwnPropertySymbols retrieves the stored Symbols from the PropertyTable).

This is the reason why I don&apos;t use CheckCell here.
But if the above is so rare, we can use CheckCell. (In that case, the identical Symbol that cell address is different from the cached one will be trapped by the Check).
What do you think of? In this patch, I chose the conservative one, because it just adds the one pointer cmp.

&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3416
&gt;&gt; +                    currentCodeOrigin(), uid);
&gt; 
&gt; It would be much better if the ByValInfo simply had a pointer to the StructureStubInfo rather than using the search.  It just reduces confusion.

Make sense. I&apos;ll change it.

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:3877
&gt;&gt; +
&gt; 
&gt; This is identical to 32_64, so you should move this into a helper method in SpeculativeJIT.cpp.

Yup. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114948</commentid>
    <comment_count>25</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 20:29:07 -0700</bug_when>
    <thetext>Took the benchmark result with the synthetic benchmarks.
I created the synthetic benchmarks by replacing the simple property load to the keyed property load (string/symbol) in get-by-id tests.
In these synthetic benchmarks, we can see the significant improvements.

   get-by-val-with-string-bimorphic-check-structure-elimination-simple
                                                  16.5967+-0.4758     ^      2.8365+-0.0836        ^ definitely 5.8511x faster
   get-by-val-with-string-bimorphic-check-structure-elimination
                                                 159.0656+-16.9380    ^      6.1069+-0.1558        ^ definitely 26.0467x faster
   get-by-val-with-string-chain-from-try-block
                                                  57.4618+-0.5759     ^      6.0807+-0.0573        ^ definitely 9.4498x faster
   get-by-val-with-string-check-structure-elimination
                                                 155.9463+-3.5247     ^      5.1890+-0.1835        ^ definitely 30.0534x faster
   get-by-val-with-string-proto-or-self           81.2487+-0.4708     ^     15.9272+-0.6116        ^ definitely 5.1013x faster
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple
                                                  17.0365+-0.4200     ^      3.1665+-0.0832        ^ definitely 5.3802x faster
   get-by-val-with-string-self-or-proto           84.5067+-3.5284     ^     15.0821+-2.8224        ^ definitely 5.6031x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple
                                                  20.7055+-0.2109     ^      3.1497+-0.2031        ^ definitely 6.5738x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination
                                                 214.7433+-3.2197     ^     12.5195+-0.1043        ^ definitely 17.1528x faster
   get-by-val-with-symbol-chain-from-try-block
                                                  55.7058+-0.5459     ^      5.5362+-0.0413        ^ definitely 10.0621x faster
   get-by-val-with-symbol-check-structure-elimination
                                                 216.8141+-8.4962     ^     11.2656+-0.3372        ^ definitely 19.2457x faster
   get-by-val-with-symbol-proto-or-self           86.2183+-7.0921     ^     14.7553+-0.4601        ^ definitely 5.8432x faster
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple
                                                  21.1835+-0.6959     ^      3.9880+-0.2135        ^ definitely 5.3118x faster
   get-by-val-with-symbol-self-or-proto           84.8233+-3.3899     ^     15.2491+-2.5444        ^ definitely 5.5625x faster






Benchmark report for SunSpider, LongSpider, V8Spider, and JSRegress on Yusukes-MacBook-Pro (MacBookPro11,3).

VMs tested:
&quot;master&quot; at /Users/yusukesuzuki/development/WebKit/WebKitBuild/master-for-gen3/Release/jsc
&quot;ic&quot; at /Users/yusukesuzuki/development/WebKit/WebKitBuild/gen3/Release/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get
microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                       master                      ic                                        
SunSpider:
   3d-cube                                         4.5061+-0.1864            4.4308+-0.0950          might be 1.0170x faster
   3d-morph                                        5.2783+-0.0892            5.2742+-0.1140        
   3d-raytrace                                     5.4130+-0.3892            5.2312+-0.2109          might be 1.0347x faster
   access-binary-trees                             1.9473+-0.1193     ?      2.0628+-0.0647        ? might be 1.0593x slower
   access-fannkuch                                 5.4220+-0.2670     ?      5.4478+-0.2469        ?
   access-nbody                                    2.4488+-0.0185     ?      2.5257+-0.0912        ? might be 1.0314x slower
   access-nsieve                                   3.0256+-0.1036     ?      3.0655+-0.2050        ? might be 1.0132x slower
   bitops-3bit-bits-in-byte                        1.4593+-0.0224     ?      1.4597+-0.0374        ?
   bitops-bits-in-byte                             3.3196+-0.1149     ?      3.3661+-0.1493        ? might be 1.0140x slower
   bitops-bitwise-and                              2.0109+-0.0248     ?      2.1132+-0.3029        ? might be 1.0509x slower
   bitops-nsieve-bits                              2.9825+-0.0947            2.9686+-0.0783        
   controlflow-recursive                           2.0908+-0.1971            2.0790+-0.1711        
   crypto-aes                                      3.8330+-0.0975     ?      3.9208+-0.3324        ? might be 1.0229x slower
   crypto-md5                                      2.5238+-0.0927            2.5103+-0.1317        
   crypto-sha1                                     2.4263+-0.2911     ?      2.4716+-0.2807        ? might be 1.0186x slower
   date-format-tofte                               6.8016+-0.5178     ?      7.0287+-0.3892        ? might be 1.0334x slower
   date-format-xparb                               4.5285+-0.0452     ?      4.6973+-0.1302        ? might be 1.0373x slower
   math-cordic                                     2.7971+-0.0713     ?      2.7977+-0.0328        ?
   math-partial-sums                               5.3138+-0.1713            5.2889+-0.2971        
   math-spectral-norm                              1.8542+-0.0551            1.8389+-0.1132        
   regexp-dna                                      6.6273+-0.2131            6.4658+-0.4476          might be 1.0250x faster
   string-base64                                   4.3295+-0.1128     ?      4.5088+-0.1876        ? might be 1.0414x slower
   string-fasta                                    5.8812+-0.6335     ?      6.1553+-1.0152        ? might be 1.0466x slower
   string-tagcloud                                 8.3981+-0.5528            8.1196+-0.1045          might be 1.0343x faster
   string-unpack-code                             20.1628+-0.6362     !     22.3915+-1.1593        ! definitely 1.1105x slower
   string-validate-input                           4.6333+-0.4851     ?      4.6422+-0.4175        ?

   &lt;arithmetic&gt;                                    4.6160+-0.0478     !      4.7255+-0.0474        ! definitely 1.0237x slower

                                                       master                      ic                                        
LongSpider:
   3d-cube                                       791.0432+-18.5779         788.4193+-10.8144       
   3d-morph                                     1543.2888+-17.4282    ?   1546.7055+-31.8569       ?
   3d-raytrace                                   640.7548+-10.3491    ?    643.8240+-28.9444       ?
   access-binary-trees                           822.7232+-12.2385         807.9534+-10.7356         might be 1.0183x faster
   access-fannkuch                               279.8994+-3.2449     ?    282.3763+-4.7996        ?
   access-nbody                                  522.4695+-9.6376     ?    525.7476+-13.2838       ?
   access-nsieve                                 359.7466+-23.5464    ?    365.9318+-18.9876       ? might be 1.0172x slower
   bitops-3bit-bits-in-byte                       40.4962+-0.2546     ?     40.6217+-0.4088        ?
   bitops-bits-in-byte                            84.7415+-9.5191           81.1366+-2.9425          might be 1.0444x faster
   bitops-nsieve-bits                            415.5988+-7.9518     ?    416.1710+-4.7352        ?
   controlflow-recursive                         426.4429+-6.6786     ?    433.5562+-8.6467        ? might be 1.0167x slower
   crypto-aes                                    594.7900+-8.5788          593.7809+-8.1703        
   crypto-md5                                    487.3068+-20.9533         484.4505+-6.5202        
   crypto-sha1                                   660.2870+-21.6250         655.1801+-20.3008       
   date-format-tofte                             522.1642+-8.7396     ?    529.1572+-51.1482       ? might be 1.0134x slower
   date-format-xparb                             643.4039+-9.2441     ?    647.6032+-17.4016       ?
   hash-map                                      156.0631+-1.7168          155.4410+-3.5298        
   math-cordic                                   500.4175+-7.1873     ?    505.8081+-19.4932       ? might be 1.0108x slower
   math-partial-sums                             501.2220+-2.0337     ?    507.3282+-7.7805        ? might be 1.0122x slower
   math-spectral-norm                            563.5121+-3.4513          561.7708+-4.6388        
   string-base64                                 353.7440+-10.2550    ?    356.0417+-7.2752        ?
   string-fasta                                  373.7512+-9.1677          368.3592+-11.2935         might be 1.0146x faster
   string-tagcloud                               183.1396+-3.3564          182.4936+-3.8331        

   &lt;geometric&gt;                                   400.0236+-1.5609     ?    400.0934+-2.3883        ? might be 1.0002x slower

                                                       master                      ic                                        
V8Spider:
   crypto                                         50.9653+-3.5288           50.0366+-1.8741          might be 1.0186x faster
   deltablue                                      83.9847+-3.3590     ?     86.1243+-4.7579        ? might be 1.0255x slower
   earley-boyer                                   40.6653+-1.4962           39.5864+-0.5821          might be 1.0273x faster
   raytrace                                       29.6778+-1.3322           29.4772+-0.2173        
   regexp                                         63.1942+-1.0416           63.1226+-1.2123        
   richards                                       71.0677+-2.9372     ?     71.0881+-2.8129        ?
   splay                                          35.3669+-2.2527           34.8724+-2.2875          might be 1.0142x faster

   &lt;geometric&gt;                                    50.3361+-0.7549           50.0407+-0.5679          might be 1.0059x faster

                                                       master                      ic                                        
JSRegress:
   abc-forward-loop-equal                         30.0537+-1.0779     ?     30.8722+-2.6802        ? might be 1.0272x slower
   abc-postfix-backward-loop                      29.6234+-1.0561           29.5703+-0.9807        
   abc-simple-backward-loop                       29.1990+-0.5233           29.1407+-0.8259        
   abc-simple-forward-loop                        29.0687+-0.6981           29.0257+-0.5424        
   abc-skippy-loop                                21.4830+-1.0857     ?     22.6586+-4.8729        ? might be 1.0547x slower
   abs-boolean                                     2.4900+-0.0967            2.4585+-0.0491          might be 1.0128x faster
   adapt-to-double-divide                         16.6475+-0.9396     ?     16.6955+-1.5213        ?
   aliased-arguments-getbyval                      1.1654+-0.1319            1.1520+-0.1280          might be 1.0117x faster
   allocate-big-object                             2.5038+-0.5076     ?      2.5396+-0.4717        ? might be 1.0143x slower
   arguments-named-and-reflective                 11.0630+-0.4240           10.9445+-0.2442          might be 1.0108x faster
   arguments-out-of-bounds                        10.0179+-0.5013            9.8790+-0.5402          might be 1.0141x faster
   arguments-strict-mode                           9.5928+-0.6278            9.5662+-0.0833        
   arguments                                       8.7693+-0.8023            8.7657+-0.7788        
   arity-mismatch-inlining                         0.7955+-0.0473     ?      0.8185+-0.0716        ? might be 1.0288x slower
   array-access-polymorphic-structure              6.0287+-0.5458            5.8382+-0.1530          might be 1.0326x faster
   array-nonarray-polymorhpic-access              25.3541+-0.9062           25.2221+-1.6841        
   array-prototype-every                          76.1805+-1.5767     ?     78.7808+-5.4329        ? might be 1.0341x slower
   array-prototype-forEach                        75.7393+-3.6781     ?     75.9307+-1.6564        ?
   array-prototype-map                            84.3550+-2.1620           82.4070+-0.7841          might be 1.0236x faster
   array-prototype-reduce                         72.3664+-2.9269           72.0828+-0.8172        
   array-prototype-reduceRight                    72.2051+-4.3792     ?     73.5477+-3.6403        ? might be 1.0186x slower
   array-prototype-some                           76.4762+-2.4698     ?     77.2705+-0.6471        ? might be 1.0104x slower
   array-splice-contiguous                        22.9786+-3.1169           21.5265+-0.7571          might be 1.0675x faster
   array-with-double-add                           3.4945+-0.2549            3.4141+-0.1009          might be 1.0236x faster
   array-with-double-increment                     3.3145+-0.7887            3.0610+-0.0649          might be 1.0828x faster
   array-with-double-mul-add                       4.2083+-0.0950            4.1967+-0.1417        
   array-with-double-sum                           3.2417+-0.1797     ?      3.2692+-0.3362        ?
   array-with-int32-add-sub                        5.9650+-0.1307            5.9304+-0.1315        
   array-with-int32-or-double-sum                  3.3198+-0.2409            3.3042+-0.2380        
   ArrayBuffer-DataView-alloc-large-long-lived
                                                  27.0820+-0.7209     ?     28.6622+-3.1633        ? might be 1.0583x slower
   ArrayBuffer-DataView-alloc-long-lived          12.8344+-1.2304           12.6420+-0.4090          might be 1.0152x faster
   ArrayBuffer-Int32Array-byteOffset               3.6450+-0.1004     ?      3.6862+-0.1385        ? might be 1.0113x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived
                                                  27.3160+-0.7655     ?     27.9276+-0.7288        ? might be 1.0224x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer
                                                  20.5570+-0.5047     ?     20.6299+-0.3587        ?
   ArrayBuffer-Int8Array-alloc-long-lived         12.1424+-1.2470           12.1045+-0.5368        
   ArrayBuffer-Int8Array-alloc                    10.4152+-0.1982     ?     10.6712+-2.2444        ? might be 1.0246x slower
   asmjs_bool_bug                                  7.2469+-0.1494     ?      7.3589+-0.6257        ? might be 1.0155x slower
   assign-custom-setter-polymorphic                2.7024+-0.1577            2.5838+-0.1474          might be 1.0459x faster
   assign-custom-setter                            3.5137+-0.0265            3.4824+-0.1230        
   basic-set                                       8.0480+-0.5031     ?      8.2711+-0.6938        ? might be 1.0277x slower
   big-int-mul                                     3.4704+-0.1283     ?      3.5745+-0.4285        ? might be 1.0300x slower
   boolean-test                                    2.8940+-0.1724     ?      2.9016+-0.1789        ?
   branch-fold                                     3.6278+-0.1051            3.6093+-0.0419        
   branch-on-string-as-boolean                    17.0270+-1.0520           16.2050+-1.2806          might be 1.0507x faster
   by-val-generic                                  7.0802+-0.1136     ^      6.1342+-0.0995        ^ definitely 1.1542x faster
   call-spread-apply                              26.9998+-1.5464     ?     27.1991+-0.7522        ?
   call-spread-call                               21.3356+-0.4643     ?     21.4627+-0.4815        ?
   captured-assignments                            0.4048+-0.0104     ?      0.5085+-0.1280        ? might be 1.2563x slower
   cast-int-to-double                              5.1025+-0.1124     ?      5.1614+-0.1056        ? might be 1.0115x slower
   cell-argument                                   6.7629+-0.7433            6.3916+-0.0759          might be 1.0581x faster
   cfg-simplify                                    2.8324+-0.0827            2.7885+-0.0717          might be 1.0158x faster
   chain-getter-access                             8.0778+-0.1365     ?      8.1362+-0.2567        ?
   cmpeq-obj-to-obj-other                         11.6960+-2.5012     ?     11.8879+-0.6519        ? might be 1.0164x slower
   constant-test                                   4.9355+-0.1876     ?      4.9589+-0.2609        ?
   create-lots-of-functions                        9.5223+-0.9009            9.3412+-1.1892          might be 1.0194x faster
   cse-new-array-buffer                            2.1813+-0.3114     ?      2.2402+-0.2245        ? might be 1.0270x slower
   cse-new-array                                   2.2167+-0.1193     ?      2.3522+-0.2272        ? might be 1.0611x slower
   DataView-custom-properties                     31.7247+-0.3670     ?     32.2556+-0.5026        ? might be 1.0167x slower
   delay-tear-off-arguments-strictmode            12.6840+-0.2121           12.6255+-0.4939        
   deltablue-varargs                             150.7839+-3.9880          148.8137+-2.0582          might be 1.0132x faster
   destructuring-arguments                       172.5414+-9.0393          170.3826+-2.7860          might be 1.0127x faster
   destructuring-parameters-overridden-by-function
                                                   0.4373+-0.0290            0.4166+-0.0227          might be 1.0495x faster
   destructuring-swap                              4.8110+-0.1423            4.7805+-0.0710        
   direct-arguments-getbyval                       1.3237+-0.6213            1.0981+-0.0561          might be 1.2054x faster
   div-boolean-double                              5.4883+-0.1495            5.4247+-0.0643          might be 1.0117x faster
   div-boolean                                     8.3151+-0.2006            8.2507+-0.0405        
   double-get-by-val-out-of-bounds                 4.2078+-0.2162     ?      4.2740+-0.1251        ? might be 1.0157x slower
   double-pollution-getbyval                       8.8814+-0.4869            8.8245+-0.1171        
   double-pollution-putbyoffset                    3.7744+-0.0997     ?      3.8420+-0.2035        ? might be 1.0179x slower
   double-real-use                                28.8740+-4.3833           27.4067+-3.2338          might be 1.0535x faster
   double-to-int32-typed-array-no-inline           2.0283+-0.0312     ?      2.1310+-0.1465        ? might be 1.0507x slower
   double-to-int32-typed-array                     1.8045+-0.1948            1.7753+-0.0557          might be 1.0165x faster
   double-to-uint32-typed-array-no-inline          2.1562+-0.0357     ?      2.1646+-0.1683        ?
   double-to-uint32-typed-array                    1.8292+-0.0430     ?      1.8865+-0.1087        ? might be 1.0314x slower
   elidable-new-object-dag                        33.4952+-0.4722     ?     33.5610+-0.5642        ?
   elidable-new-object-roflcopter                 32.9953+-0.6405     ?     33.0920+-0.9969        ?
   elidable-new-object-then-call                  31.5687+-1.0288           31.3320+-0.1586        
   elidable-new-object-tree                       36.0278+-1.1210           35.7741+-0.2702        
   empty-string-plus-int                           4.7555+-0.1532     ?      4.8630+-0.2076        ? might be 1.0226x slower
   emscripten-cube2hash                           25.5869+-2.0357     ?     27.3534+-2.8877        ? might be 1.0690x slower
   exit-length-on-plain-object                    12.6803+-0.1499           12.6462+-0.3039        
   external-arguments-getbyval                     1.2192+-0.0906            1.2120+-0.2899        
   external-arguments-putbyval                     2.1339+-0.0597     ?      2.1469+-0.1509        ?
   fixed-typed-array-storage-var-index             1.1711+-0.0348     ?      1.1755+-0.0432        ?
   fixed-typed-array-storage                       0.8570+-0.0375     ?      0.8647+-0.0615        ?
   Float32Array-matrix-mult                        3.8823+-0.0342     ?      3.9951+-0.2986        ? might be 1.0291x slower
   Float32Array-to-Float64Array-set               46.4118+-0.4951           45.8417+-0.5012          might be 1.0124x faster
   Float64Array-alloc-long-lived                  63.9164+-21.2429          57.6821+-1.0872          might be 1.1081x faster
   Float64Array-to-Int16Array-set                 56.0638+-0.5899     ?     57.0617+-0.7873        ? might be 1.0178x slower
   fold-double-to-int                             12.7698+-0.2738     ?     12.8621+-0.3174        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int
                                                  10.3785+-0.6380           10.3499+-0.9452        
   fold-get-by-id-to-multi-get-by-offset           9.4462+-1.0353            9.3065+-0.3964          might be 1.0150x faster
   fold-multi-get-by-offset-to-get-by-offset
                                                   8.2914+-0.7147            8.0195+-1.7515          might be 1.0339x faster
   fold-multi-get-by-offset-to-poly-get-by-offset
                                                   8.5839+-0.3509            8.2466+-1.1053          might be 1.0409x faster
   fold-multi-put-by-offset-to-poly-put-by-offset
                                                   7.9665+-0.8602     ?      8.1009+-1.2228        ? might be 1.0169x slower
   fold-multi-put-by-offset-to-put-by-offset
                                                   5.7908+-0.7895            5.4766+-1.0657          might be 1.0574x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset
                                                   8.6194+-1.1897            8.1522+-0.3775          might be 1.0573x faster
   fold-put-by-id-to-multi-put-by-offset           8.9785+-0.8859     ?      9.1616+-0.6681        ? might be 1.0204x slower
   fold-put-structure                              5.5519+-0.3904     ?      5.8249+-1.3497        ? might be 1.0492x slower
   for-of-iterate-array-entries                   11.9767+-0.9750           11.7587+-0.2991          might be 1.0185x faster
   for-of-iterate-array-keys                       3.3994+-0.2595            3.2938+-0.1204          might be 1.0321x faster
   for-of-iterate-array-values                     3.2826+-0.0966     ?      3.3901+-0.2182        ? might be 1.0328x slower
   fround                                         18.4531+-1.1817     ?     18.9709+-1.2117        ? might be 1.0281x slower
   ftl-library-inlining-dataview                  57.4711+-2.0469     ?     58.7903+-3.9333        ? might be 1.0230x slower
   ftl-library-inlining                          109.3882+-3.8830     ?    110.6230+-1.9971        ? might be 1.0113x slower
   function-dot-apply                              1.9760+-0.0364     ?      2.0642+-0.1285        ? might be 1.0447x slower
   function-test                                   3.1268+-0.8564            2.7007+-0.0672          might be 1.1577x faster
   function-with-eval                             99.2381+-6.1207     ?    100.0663+-0.8504        ?
   gcse-poly-get-less-obvious                     14.3934+-0.1825     ?     14.6484+-0.7170        ? might be 1.0177x slower
   gcse-poly-get                                  14.8282+-1.1272           14.3573+-0.2533          might be 1.0328x faster
   gcse                                            3.9464+-0.2146            3.8522+-0.1461          might be 1.0244x faster
   get-by-id-bimorphic-check-structure-elimination-simple
                                                   2.6003+-0.0273     ?      2.6581+-0.1065        ? might be 1.0222x slower
   get-by-id-bimorphic-check-structure-elimination
                                                   5.9382+-0.0713     ?      6.0562+-0.4375        ? might be 1.0199x slower
   get-by-id-chain-from-try-block                  5.7463+-0.6255            5.6213+-0.1595          might be 1.0222x faster
   get-by-id-check-structure-elimination           4.4406+-0.1237     ?      4.4449+-0.1763        ?
   get-by-id-proto-or-self                        14.9828+-1.2209     ?     15.1975+-2.5202        ? might be 1.0143x slower
   get-by-id-quadmorphic-check-structure-elimination-simple
                                                   2.8806+-0.0280            2.8749+-0.0572        
   get-by-id-self-or-proto                        14.8922+-0.5601     ?     14.9418+-1.3630        ?
   get-by-val-out-of-bounds                        3.9588+-0.1057     ?      4.0720+-0.1623        ? might be 1.0286x slower
   get-by-val-with-string-bimorphic-check-structure-elimination-simple
                                                  16.5967+-0.4758     ^      2.8365+-0.0836        ^ definitely 5.8511x faster
   get-by-val-with-string-bimorphic-check-structure-elimination
                                                 159.0656+-16.9380    ^      6.1069+-0.1558        ^ definitely 26.0467x faster
   get-by-val-with-string-chain-from-try-block
                                                  57.4618+-0.5759     ^      6.0807+-0.0573        ^ definitely 9.4498x faster
   get-by-val-with-string-check-structure-elimination
                                                 155.9463+-3.5247     ^      5.1890+-0.1835        ^ definitely 30.0534x faster
   get-by-val-with-string-proto-or-self           81.2487+-0.4708     ^     15.9272+-0.6116        ^ definitely 5.1013x faster
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple
                                                  17.0365+-0.4200     ^      3.1665+-0.0832        ^ definitely 5.3802x faster
   get-by-val-with-string-self-or-proto           84.5067+-3.5284     ^     15.0821+-2.8224        ^ definitely 5.6031x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple
                                                  20.7055+-0.2109     ^      3.1497+-0.2031        ^ definitely 6.5738x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination
                                                 214.7433+-3.2197     ^     12.5195+-0.1043        ^ definitely 17.1528x faster
   get-by-val-with-symbol-chain-from-try-block
                                                  55.7058+-0.5459     ^      5.5362+-0.0413        ^ definitely 10.0621x faster
   get-by-val-with-symbol-check-structure-elimination
                                                 216.8141+-8.4962     ^     11.2656+-0.3372        ^ definitely 19.2457x faster
   get-by-val-with-symbol-proto-or-self           86.2183+-7.0921     ^     14.7553+-0.4601        ^ definitely 5.8432x faster
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple
                                                  21.1835+-0.6959     ^      3.9880+-0.2135        ^ definitely 5.3118x faster
   get-by-val-with-symbol-self-or-proto           84.8233+-3.3899     ^     15.2491+-2.5444        ^ definitely 5.5625x faster
   get_callee_monomorphic                          2.3127+-0.4509            2.3068+-0.1076        
   get_callee_polymorphic                          3.1740+-0.1884     ?      3.1942+-0.2252        ?
   getter-no-activation                            4.9962+-0.3830     ?      5.1016+-0.4321        ? might be 1.0211x slower
   getter-prototype                                9.7526+-0.1497     ?     10.0040+-0.2550        ? might be 1.0258x slower
   getter-richards                               113.8470+-7.6272     ?    115.1240+-4.5420        ? might be 1.0112x slower
   getter                                          5.7007+-0.4479            5.4846+-0.4917          might be 1.0394x faster
   global-object-access-with-mutating-structure
                                                   5.4905+-0.3229            5.4680+-0.3865        
   global-var-const-infer-fire-from-opt            0.8808+-0.0609     ?      0.8958+-0.1397        ? might be 1.0170x slower
   global-var-const-infer                          0.8923+-0.2494            0.6699+-0.0536          might be 1.3320x faster
   HashMap-put-get-iterate-keys                   25.5889+-1.1357     ?     26.6037+-1.0487        ? might be 1.0397x slower
   HashMap-put-get-iterate                        26.9578+-1.3875           26.0773+-0.8283          might be 1.0338x faster
   HashMap-string-put-get-iterate                 24.5955+-0.7787     ?     25.2663+-1.5949        ? might be 1.0273x slower
   hoist-make-rope                                 8.3801+-1.6270            8.0985+-1.1184          might be 1.0348x faster
   hoist-poly-check-structure-effectful-loop
                                                   4.4520+-0.2683            4.2322+-0.0863          might be 1.0519x faster
   hoist-poly-check-structure                      3.2402+-0.0413     ?      3.2536+-0.0973        ?
   imul-double-only                                6.7079+-0.3280            6.5486+-0.1276          might be 1.0243x faster
   imul-int-only                                   8.6476+-2.0182            8.5016+-1.5223          might be 1.0172x faster
   imul-mixed                                      7.0402+-0.6620            6.3264+-0.1927          might be 1.1128x faster
   in-four-cases                                  17.7960+-0.6873           17.6276+-0.7162        
   in-one-case-false                               9.3752+-0.3104            9.2017+-0.4216          might be 1.0189x faster
   in-one-case-true                                9.4937+-0.7693            9.2600+-0.3349          might be 1.0252x faster
   in-two-cases                                    9.5584+-0.2559     ?      9.6278+-0.2096        ?
   indexed-properties-in-objects                   2.8907+-0.1358            2.7913+-0.0470          might be 1.0356x faster
   infer-closure-const-then-mov-no-inline          3.2858+-0.4467            3.1042+-0.2231          might be 1.0585x faster
   infer-closure-const-then-mov                   17.1546+-0.7240     ?     17.3882+-0.3568        ? might be 1.0136x slower
   infer-closure-const-then-put-to-scope-no-inline
                                                  11.8483+-0.5653           11.5943+-0.2568          might be 1.0219x faster
   infer-closure-const-then-put-to-scope          22.0144+-0.3175     ?     22.0267+-0.7505        ?
   infer-closure-const-then-reenter-no-inline
                                                  50.4915+-0.3229     ?     50.7253+-1.1495        ?
   infer-closure-const-then-reenter               22.5633+-0.3557           21.8904+-0.8214          might be 1.0307x faster
   infer-constant-global-property                  3.4335+-0.1306            3.4108+-0.0543        
   infer-constant-property                         2.6550+-0.2005     ?      2.7490+-0.1966        ? might be 1.0354x slower
   infer-one-time-closure-ten-vars                 8.3107+-0.3889     ?      8.3748+-0.5453        ?
   infer-one-time-closure-two-vars                 8.1473+-0.9840            8.0375+-0.7708          might be 1.0137x faster
   infer-one-time-closure                          8.0068+-0.3677            7.7707+-0.2177          might be 1.0304x faster
   infer-one-time-deep-closure                    12.7358+-0.0553     ?     12.9529+-0.4200        ? might be 1.0170x slower
   inline-arguments-access                         3.7807+-0.4762            3.6426+-0.2422          might be 1.0379x faster
   inline-arguments-aliased-access                 3.9130+-0.6915            3.8362+-0.5006          might be 1.0200x faster
   inline-arguments-local-escape                   3.5757+-0.1683     ?      3.7398+-0.4702        ? might be 1.0459x slower
   inline-get-scoped-var                           4.6948+-0.1002     ?      4.8898+-0.8955        ? might be 1.0415x slower
   inlined-put-by-id-transition                   10.2622+-0.3160     ?     10.5986+-1.0593        ? might be 1.0328x slower
   int-or-other-abs-then-get-by-val                4.8037+-0.0530     ?      4.8188+-0.0252        ?
   int-or-other-abs-zero-then-get-by-val          16.6164+-0.1879           16.3861+-1.5570          might be 1.0141x faster
   int-or-other-add-then-get-by-val                4.0724+-0.0433     ?      4.1166+-0.1935        ? might be 1.0109x slower
   int-or-other-add                                5.0552+-0.5491            4.9098+-0.2256          might be 1.0296x faster
   int-or-other-div-then-get-by-val                3.7727+-0.0809     ?      3.8228+-0.0599        ? might be 1.0133x slower
   int-or-other-max-then-get-by-val                4.0409+-0.0730     ?      4.0650+-0.1192        ?
   int-or-other-min-then-get-by-val                4.1051+-0.2752            4.0048+-0.0719          might be 1.0251x faster
   int-or-other-mod-then-get-by-val                3.8770+-0.9322            3.6398+-0.1658          might be 1.0651x faster
   int-or-other-mul-then-get-by-val                3.8525+-0.4743            3.7280+-0.1258          might be 1.0334x faster
   int-or-other-neg-then-get-by-val                4.5042+-0.1179     ?      4.5272+-0.0338        ?
   int-or-other-neg-zero-then-get-by-val          16.3231+-0.4250           16.2153+-0.3164        
   int-or-other-sub-then-get-by-val                4.1186+-0.0455     ?      4.1513+-0.1132        ?
   int-or-other-sub                                3.4278+-0.1080            3.3870+-0.0212          might be 1.0121x faster
   int-overflow-local                              4.4594+-0.3225            4.3752+-0.1315          might be 1.0192x faster
   Int16Array-alloc-long-lived                    41.8088+-0.7015           41.6959+-0.3545        
   Int16Array-bubble-sort-with-byteLength         17.6238+-0.6352     ?     17.8835+-0.5579        ? might be 1.0147x slower
   Int16Array-bubble-sort                         18.1519+-0.4862           17.7014+-0.4270          might be 1.0254x faster
   Int16Array-load-int-mul                         1.4247+-0.0263            1.4186+-0.0388        
   Int16Array-to-Int32Array-set                   43.4698+-0.2966     ?     44.3127+-2.5445        ? might be 1.0194x slower
   Int32Array-alloc-large                         12.2001+-0.4898           12.1370+-0.6324        
   Int32Array-alloc-long-lived                    47.6998+-1.7815     ?     47.9178+-2.6621        ?
   Int32Array-alloc                                2.9587+-0.2623            2.9166+-0.2946          might be 1.0144x faster
   Int32Array-Int8Array-view-alloc                 6.2930+-0.2934     ?      6.3657+-0.2296        ? might be 1.0116x slower
   int52-spill                                     4.7586+-0.1909            4.6968+-0.0674          might be 1.0132x faster
   Int8Array-alloc-long-lived                     37.9685+-0.8420           37.6459+-1.0518        
   Int8Array-load-with-byteLength                  3.4937+-0.2736     ?      3.5670+-0.5000        ? might be 1.0210x slower
   Int8Array-load                                  3.4156+-0.0423     ?      3.7365+-1.0211        ? might be 1.0939x slower
   integer-divide                                 10.7360+-0.6053           10.4426+-0.2141          might be 1.0281x faster
   integer-modulo                                  1.6437+-0.0739     ?      1.6617+-0.0606        ? might be 1.0109x slower
   is-boolean-fold-tricky                          3.7881+-0.1034            3.7656+-0.0700        
   is-boolean-fold                                 2.6248+-0.0830            2.6185+-0.0105        
   is-function-fold-tricky-internal-function
                                                   9.8317+-0.1052     !     10.0838+-0.1151        ! definitely 1.0256x slower
   is-function-fold-tricky                         4.0807+-0.0288     ?      4.0965+-0.0800        ?
   is-function-fold                                2.6817+-0.1773     ?      2.7688+-0.4204        ? might be 1.0325x slower
   is-number-fold-tricky                           4.0207+-0.0586     ?      4.0362+-0.1637        ?
   is-number-fold                                  2.6602+-0.0660            2.6113+-0.0343          might be 1.0187x faster
   is-object-or-null-fold-functions                2.6815+-0.0736     ?      2.7150+-0.1834        ? might be 1.0125x slower
   is-object-or-null-fold-less-tricky              4.1033+-0.0823     ?      4.1922+-0.2337        ? might be 1.0217x slower
   is-object-or-null-fold-tricky                   5.5417+-0.5189            5.4083+-0.1927          might be 1.0247x faster
   is-object-or-null-fold                          2.6960+-0.1037            2.6714+-0.1028        
   is-object-or-null-trickier-function             4.1300+-0.0618     ?      4.1743+-0.1322        ? might be 1.0107x slower
   is-object-or-null-trickier-internal-function
                                                  10.8643+-0.8544           10.7941+-0.5771        
   is-object-or-null-tricky-function               4.1400+-0.1339            4.1337+-0.1506        
   is-object-or-null-tricky-internal-function
                                                   7.9790+-0.1140     ^      7.7640+-0.0825        ^ definitely 1.0277x faster
   is-string-fold-tricky                           4.0426+-0.1271     ?      4.0930+-0.2263        ? might be 1.0125x slower
   is-string-fold                                  2.5998+-0.0576     ?      2.6743+-0.1711        ? might be 1.0287x slower
   is-undefined-fold-tricky                        3.3176+-0.0724     ?      3.3867+-0.1158        ? might be 1.0208x slower
   is-undefined-fold                               2.6765+-0.0882     ?      2.7340+-0.2361        ? might be 1.0215x slower
   large-int-captured                              4.0942+-0.4224     ?      4.1098+-0.3132        ?
   large-int-neg                                  14.3474+-0.3727           14.1842+-0.7061          might be 1.0115x faster
   large-int                                      14.5178+-2.3199           13.7233+-0.2817          might be 1.0579x faster
   load-varargs-elimination                       21.3078+-0.6497     ?     22.1442+-2.9163        ? might be 1.0393x slower
   logical-not-weird-types                         2.9006+-0.1517     ?      3.0139+-0.1267        ? might be 1.0391x slower
   logical-not                                     4.2464+-0.2003     ?      4.3265+-0.0365        ? might be 1.0189x slower
   lots-of-fields                                  9.3025+-0.9719     ?      9.4965+-0.5661        ? might be 1.0209x slower
   make-indexed-storage                            2.9373+-0.2004     ?      3.1711+-0.6658        ? might be 1.0796x slower
   make-rope-cse                                   3.5499+-0.0612     ?      3.6827+-0.2377        ? might be 1.0374x slower
   marsaglia-larger-ints                          32.7367+-1.0159           32.2327+-0.7716          might be 1.0156x faster
   marsaglia-osr-entry                            21.6396+-0.4231           21.5110+-0.6586        
   math-with-out-of-bounds-array-values           22.5603+-1.7020           21.7775+-0.7220          might be 1.0359x faster
   max-boolean                                     2.8182+-0.1344            2.7590+-0.1328          might be 1.0215x faster
   method-on-number                               17.6478+-0.5618           17.3157+-0.3655          might be 1.0192x faster
   min-boolean                                     2.8058+-0.3906            2.6862+-0.0725          might be 1.0446x faster
   minus-boolean-double                            3.3328+-0.7726            3.1166+-0.1780          might be 1.0693x faster
   minus-boolean                                   2.3170+-0.0319     ?      2.3920+-0.1255        ? might be 1.0324x slower
   misc-strict-eq                                 31.7790+-3.7257     ?     32.2416+-4.7732        ? might be 1.0146x slower
   mod-boolean-double                             11.6855+-0.6673           11.2781+-0.2680          might be 1.0361x faster
   mod-boolean                                     8.3864+-0.1013     ?      8.4064+-0.1041        ?
   mul-boolean-double                              3.6141+-0.0955     ?      3.6227+-0.1202        ?
   mul-boolean                                     2.8126+-0.1273            2.7705+-0.0136          might be 1.0152x faster
   neg-boolean                                     3.1097+-0.0249     ?      3.1384+-0.1724        ?
   negative-zero-divide                            0.3192+-0.0056     ?      0.3385+-0.0543        ? might be 1.0604x slower
   negative-zero-modulo                            0.3318+-0.0560            0.3180+-0.0076          might be 1.0434x faster
   negative-zero-negate                            0.2996+-0.0113     ?      0.3119+-0.0725        ? might be 1.0409x slower
   nested-function-parsing                        43.4634+-1.6322     ?     44.4222+-1.4576        ? might be 1.0221x slower
   new-array-buffer-dead                          90.0935+-4.8931           88.1594+-0.6447          might be 1.0219x faster
   new-array-buffer-push                           5.9678+-0.5861            5.8485+-0.2375          might be 1.0204x faster
   new-array-dead                                 14.0865+-0.9414           13.8478+-1.1052          might be 1.0172x faster
   new-array-push                                  3.4360+-0.1723            3.3928+-0.1143          might be 1.0128x faster
   no-inline-constructor                          31.2711+-1.4134           30.9416+-0.3684          might be 1.0106x faster
   number-test                                     2.8951+-0.0950            2.7813+-0.0452          might be 1.0409x faster
   object-closure-call                             4.8591+-0.0647            4.8211+-0.1138        
   object-get-own-property-symbols-on-large-array
                                                   3.9437+-0.2944            3.9195+-0.3905        
   object-test                                     2.7380+-0.2640            2.5953+-0.0614          might be 1.0550x faster
   obvious-sink-pathology-taken                  100.0546+-1.1161     ?    100.0757+-2.0640        ?
   obvious-sink-pathology                         95.4774+-1.0972     ?     95.9965+-1.4028        ?
   obviously-elidable-new-object                  28.7104+-0.7263     ?     28.9206+-0.9761        ?
   plus-boolean-arith                              2.4061+-0.0557            2.3718+-0.1084          might be 1.0145x faster
   plus-boolean-double                             3.1611+-0.1731            3.1190+-0.0868          might be 1.0135x faster
   plus-boolean                                    2.5880+-0.0297            2.5385+-0.0481          might be 1.0195x faster
   poly-chain-access-different-prototypes-simple
                                                   3.3421+-0.1634            3.2525+-0.1724          might be 1.0275x faster
   poly-chain-access-different-prototypes          2.8566+-0.0341     ?      2.9828+-0.4111        ? might be 1.0442x slower
   poly-chain-access-simpler                       3.3285+-0.3143            3.2377+-0.0859          might be 1.0280x faster
   poly-chain-access                               3.4400+-0.3879            3.3204+-0.1759          might be 1.0360x faster
   poly-stricteq                                  50.7266+-0.5307           50.4144+-0.6992        
   polymorphic-array-call                          1.2325+-0.0701            1.2260+-0.1412        
   polymorphic-get-by-id                           2.9222+-0.1934            2.8051+-0.0288          might be 1.0418x faster
   polymorphic-put-by-id                          25.0705+-1.0584     ?     25.3945+-0.8882        ? might be 1.0129x slower
   polymorphic-structure                          14.0344+-2.1259           13.4887+-0.5759          might be 1.0405x faster
   polyvariant-monomorphic-get-by-id               6.6714+-0.6163            6.4736+-1.0308          might be 1.0305x faster
   proto-getter-access                             8.0905+-0.0882     ?      8.3773+-0.4198        ? might be 1.0354x slower
   prototype-access-with-mutating-prototype        5.5437+-0.2404            5.4427+-0.2774          might be 1.0185x faster
   put-by-id-replace-and-transition                7.5699+-0.4169            7.5623+-0.2603        
   put-by-id-slightly-polymorphic                  2.6542+-0.0620     ?      2.7104+-0.2412        ? might be 1.0212x slower
   put-by-id                                       9.8120+-0.4540            9.6747+-0.4031          might be 1.0142x faster
   put-by-val-direct                               0.3683+-0.1260            0.3175+-0.0133          might be 1.1601x faster
   put-by-val-large-index-blank-indexing-type
                                                   5.2212+-0.1176     ?      5.2824+-0.3658        ? might be 1.0117x slower
   put-by-val-machine-int                          2.5113+-0.0847     ?      2.6469+-0.8582        ? might be 1.0540x slower
   rare-osr-exit-on-local                         14.9490+-0.7253           14.7712+-0.2161          might be 1.0120x faster
   register-pressure-from-osr                     16.6539+-0.3779           16.3945+-0.2223          might be 1.0158x faster
   repeat-multi-get-by-offset                     22.1014+-0.4708     ?     22.1138+-1.0625        ?
   setter-prototype                                7.4880+-0.2751            7.4642+-0.3362        
   setter                                          5.5328+-0.6193            5.2954+-0.2147          might be 1.0448x faster
   simple-activation-demo                         24.7289+-1.0662     ?     25.1277+-0.2314        ? might be 1.0161x slower
   simple-getter-access                           10.4507+-0.2909           10.4015+-0.2182        
   simple-poly-call-nested                         8.3712+-0.5018     ?      8.4255+-0.3781        ?
   simple-poly-call                                1.2905+-0.1821            1.2588+-0.0562          might be 1.0252x faster
   sin-boolean                                    18.7183+-2.1584           17.8596+-0.8745          might be 1.0481x faster
   singleton-scope                                58.1535+-0.2038     ?     58.2785+-0.3933        ?
   sink-function                                   9.5920+-0.7913     ?      9.7534+-1.5597        ? might be 1.0168x slower
   sink-huge-activation                           16.6191+-0.4560           16.0523+-0.6541          might be 1.0353x faster
   sinkable-new-object-dag                        56.3972+-2.1846           55.3115+-1.2717          might be 1.0196x faster
   sinkable-new-object-taken                      43.3087+-0.5820           42.5683+-1.1931          might be 1.0174x faster
   sinkable-new-object                            29.2473+-0.3695     ?     29.7477+-0.7806        ? might be 1.0171x slower
   slow-array-profile-convergence                  2.4986+-0.0866     ?      2.5920+-0.1790        ? might be 1.0374x slower
   slow-convergence                                2.4487+-0.1562     ?      2.5582+-0.2740        ? might be 1.0447x slower
   slow-ternaries                                 18.6605+-1.6760           18.0271+-0.5941          might be 1.0351x faster
   sorting-benchmark                              17.6808+-0.3586           17.3516+-1.1010          might be 1.0190x faster
   sparse-conditional                              1.1463+-0.0445            1.1072+-0.0240          might be 1.0353x faster
   splice-to-remove                               12.8918+-0.6147           12.5009+-0.7072          might be 1.0313x faster
   string-char-code-at                            14.5019+-0.4601           14.4352+-0.1246        
   string-concat-object                            2.0878+-0.1212     ?      2.1030+-0.1848        ?
   string-concat-pair-object                       2.0812+-0.1967            2.0726+-0.2272        
   string-concat-pair-simple                       9.2979+-0.3359            9.1434+-0.4280          might be 1.0169x faster
   string-concat-simple                            8.9615+-0.2060     ?      9.7712+-1.4786        ? might be 1.0904x slower
   string-cons-repeat                              6.5225+-0.2409     ?      6.9440+-1.5579        ? might be 1.0646x slower
   string-cons-tower                               6.6834+-0.2593     ?      6.8284+-0.3455        ? might be 1.0217x slower
   string-equality                                15.3698+-0.1808     ?     15.5172+-0.3100        ?
   string-get-by-val-big-char                      6.8362+-0.0975            6.6856+-0.2136          might be 1.0225x faster
   string-get-by-val-out-of-bounds-insane          3.4365+-0.1759     ?      3.9693+-1.1782        ? might be 1.1550x slower
   string-get-by-val-out-of-bounds                 4.1465+-0.0926     ?      4.3064+-0.4937        ? might be 1.0386x slower
   string-get-by-val                               2.8103+-0.0557     ?      2.8831+-0.1181        ? might be 1.0259x slower
   string-hash                                     1.8105+-0.0190     ?      1.8584+-0.0767        ? might be 1.0265x slower
   string-long-ident-equality                     12.9005+-0.2755           12.7304+-0.0614          might be 1.0134x faster
   string-out-of-bounds                           10.3660+-0.3834     ?     10.7194+-1.0893        ? might be 1.0341x slower
   string-repeat-arith                            27.5140+-0.2342     !     28.0633+-0.2770        ! definitely 1.0200x slower
   string-sub                                     53.6074+-1.4075     ?     55.7162+-7.1900        ? might be 1.0393x slower
   string-test                                     2.8265+-0.1305            2.7583+-0.1283          might be 1.0247x faster
   string-var-equality                            26.3168+-1.1164           25.9203+-0.4529          might be 1.0153x faster
   structure-hoist-over-transitions                2.4930+-0.0886            2.4456+-0.0102          might be 1.0194x faster
   substring-concat-weird                         35.7770+-0.2653     ?     36.1920+-0.3919        ? might be 1.0116x slower
   substring-concat                               39.6733+-0.5806           39.3905+-0.6336        
   substring                                      45.5066+-0.7311           45.1768+-0.1436        
   switch-char-constant                            2.7495+-0.1425            2.6462+-0.0576          might be 1.0390x faster
   switch-char                                     6.0709+-0.8773            5.6507+-0.5664          might be 1.0744x faster
   switch-constant                                 7.1635+-0.6283     ?      7.8036+-0.7469        ? might be 1.0894x slower
   switch-string-basic-big-var                    15.6725+-0.3339     ?     15.7533+-0.1839        ?
   switch-string-basic-big                        15.1431+-0.2799     ?     15.1807+-0.3392        ?
   switch-string-basic-var                        13.8256+-1.6402           13.3617+-0.1827          might be 1.0347x faster
   switch-string-basic                            12.9390+-0.0495     ?     13.5512+-1.7534        ? might be 1.0473x slower
   switch-string-big-length-tower-var             18.5471+-0.7808     ?     18.5516+-1.9329        ?
   switch-string-length-tower-var                 13.3881+-0.5836     ?     13.9417+-1.1930        ? might be 1.0414x slower
   switch-string-length-tower                     11.7260+-0.1627     ?     12.2424+-0.5196        ? might be 1.0440x slower
   switch-string-short                            11.7860+-0.1683     ?     11.9857+-0.5704        ? might be 1.0169x slower
   switch                                         11.8536+-1.4330           11.6588+-1.3389          might be 1.0167x faster
   tear-off-arguments-simple                       3.1273+-0.1622            3.0305+-0.2614          might be 1.0319x faster
   tear-off-arguments                              4.2202+-0.1894            4.2013+-0.7336        
   temporal-structure                             12.2952+-0.7897           11.9983+-0.1372          might be 1.0247x faster
   to-int32-boolean                               13.5245+-0.5253           13.2473+-0.3789          might be 1.0209x faster
   try-catch-get-by-val-cloned-arguments          14.2535+-0.4058     ?     14.2844+-0.4846        ?
   try-catch-get-by-val-direct-arguments           6.9117+-0.8697            6.4756+-0.1930          might be 1.0674x faster
   try-catch-get-by-val-scoped-arguments           7.7064+-0.0125     ?      7.7660+-0.1859        ?
   typed-array-get-set-by-val-profiling           28.0833+-2.1037           27.9802+-2.1297        
   undefined-property-access                     236.2343+-17.2694         227.1995+-0.9422          might be 1.0398x faster
   undefined-test                                  2.8528+-0.0512     ?      2.8562+-0.1184        ?
   unprofiled-licm                                14.2900+-0.2094     ?     14.9983+-2.1569        ? might be 1.0496x slower
   varargs-call                                   13.7018+-0.5624           13.5074+-0.3624          might be 1.0144x faster
   varargs-construct-inline                       22.4340+-1.1255     ?     22.4819+-0.7830        ?
   varargs-construct                              20.3312+-0.5679           20.1297+-0.4562          might be 1.0100x faster
   varargs-inline                                  8.5654+-0.1521     ?      8.6833+-0.7405        ? might be 1.0138x slower
   varargs-strict-mode                             9.2223+-0.3813            9.1475+-0.1536        
   varargs                                         9.0954+-0.3004     ?      9.2607+-0.2929        ? might be 1.0182x slower
   weird-inlining-const-prop                       2.1112+-0.1683     ?      2.3151+-0.5194        ? might be 1.0966x slower

   &lt;geometric&gt;                                     8.4998+-0.0217     ^      7.7731+-0.0213        ^ definitely 1.0935x faster

                                                       master                      ic                                        
Geomean of preferred means:
   &lt;scaled-result&gt;                                29.8129+-0.1256     ^     29.2838+-0.1509        ^ definitely 1.0181x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114951</commentid>
    <comment_count>26</comment_count>
      <attachid>258246</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-04 20:35:22 -0700</bug_when>
    <thetext>Comment on attachment 258246
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/bytecode/GetByIdStatus.cpp:82
&gt;&gt;&gt; +
&gt;&gt; 
&gt;&gt; Remove this.
&gt; 
&gt; Without it, we hit the assertion.
&gt; GetByIdStatus::computeFromLLInt can be used even in the DFG layer; When there&apos;s no stubInfo or no good information in baseline JIT, we attempt to retrieve the cached data from the bytecode.
&gt; 
&gt; But at that time, we assume the byte code structure is the same to the get_by_id&apos;s structure.
&gt; For example, after this guard, we attempt to retrieve the cached Structure data by `Structure* structure = instruction[4].u.structure.get();`.
&gt; However, get_by_val does not have the cached data and its byte code structure is not the same to the get_by_id, it looks up the incorrect data.
&gt; So before querying the information to the byte code, we need to exit when our byte code is the op_get_by_val.

This code will be unnecessary if you store a StructureStubInfo* inside the ByValInfo, and then call GetByIdStatus::computeForStubInfo() directly.  You&apos;ll have to make that method public.

&gt;&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:2191
&gt;&gt;&gt; +
&gt;&gt; 
&gt;&gt; Why can&apos;t you just use CheckCell for the symbol case?
&gt; 
&gt; Because different Symbol cells may have the same UniquedStringImpl pointer.
&gt; For example,
&gt; 
&gt; var symbol1 = Symbol();
&gt; var object = { [symbol1]: 42 };
&gt; var symbol2 = Object.getOwnPropertySymbols(object)[0];
&gt; symbol1 === symbol2;  // true
&gt; 
&gt; In the above case, symbol1 and symbol2&apos;s cell addresses are different. But they are identical symbols and === returns true.
&gt; 
&gt; The reason of this Symbol design is keeping the keys (UniquedStringImpl) of PropertyTable ref-counted objects.
&gt; Currently, since PropertyTable does not have the GC-managed keys, GC marking for the keys of PropertyTable is not necessary.
&gt; However, if we would like to ensure that the uniqued Symbol has the same cell address, we need to store JSCell into PropertyTable (because Object.getOwnPropertySymbols retrieves the stored Symbols from the PropertyTable).
&gt; 
&gt; This is the reason why I don&apos;t use CheckCell here.
&gt; But if the above is so rare, we can use CheckCell. (In that case, the identical Symbol that cell address is different from the cached one will be trapped by the Check).
&gt; What do you think of? In this patch, I chose the conservative one, because it just adds the one pointer cmp.

I think what you&apos;re doing now is fine.  We can optimize to CheckCell if we also profile whether the Symbol cell is always the same.  But I think you&apos;re taking the right approach and getting the more conservative case working first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114954</commentid>
    <comment_count>27</comment_count>
      <attachid>258246</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-04 20:41:53 -0700</bug_when>
    <thetext>Comment on attachment 258246
Patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/bytecode/GetByIdStatus.cpp:82
&gt;&gt;&gt;&gt; +
&gt;&gt;&gt; 
&gt;&gt;&gt; Remove this.
&gt;&gt; 
&gt;&gt; Without it, we hit the assertion.
&gt;&gt; GetByIdStatus::computeFromLLInt can be used even in the DFG layer; When there&apos;s no stubInfo or no good information in baseline JIT, we attempt to retrieve the cached data from the bytecode.
&gt;&gt; 
&gt;&gt; But at that time, we assume the byte code structure is the same to the get_by_id&apos;s structure.
&gt;&gt; For example, after this guard, we attempt to retrieve the cached Structure data by `Structure* structure = instruction[4].u.structure.get();`.
&gt;&gt; However, get_by_val does not have the cached data and its byte code structure is not the same to the get_by_id, it looks up the incorrect data.
&gt;&gt; So before querying the information to the byte code, we need to exit when our byte code is the op_get_by_val.
&gt; 
&gt; This code will be unnecessary if you store a StructureStubInfo* inside the ByValInfo, and then call GetByIdStatus::computeForStubInfo() directly.  You&apos;ll have to make that method public.

I&apos;ve got it. It makes the code clear :D

&gt;&gt;&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:2191
&gt;&gt;&gt;&gt; +
&gt;&gt;&gt; 
&gt;&gt;&gt; Why can&apos;t you just use CheckCell for the symbol case?
&gt;&gt; 
&gt;&gt; Because different Symbol cells may have the same UniquedStringImpl pointer.
&gt;&gt; For example,
&gt;&gt; 
&gt;&gt; var symbol1 = Symbol();
&gt;&gt; var object = { [symbol1]: 42 };
&gt;&gt; var symbol2 = Object.getOwnPropertySymbols(object)[0];
&gt;&gt; symbol1 === symbol2;  // true
&gt;&gt; 
&gt;&gt; In the above case, symbol1 and symbol2&apos;s cell addresses are different. But they are identical symbols and === returns true.
&gt;&gt; 
&gt;&gt; The reason of this Symbol design is keeping the keys (UniquedStringImpl) of PropertyTable ref-counted objects.
&gt;&gt; Currently, since PropertyTable does not have the GC-managed keys, GC marking for the keys of PropertyTable is not necessary.
&gt;&gt; However, if we would like to ensure that the uniqued Symbol has the same cell address, we need to store JSCell into PropertyTable (because Object.getOwnPropertySymbols retrieves the stored Symbols from the PropertyTable).
&gt;&gt; 
&gt;&gt; This is the reason why I don&apos;t use CheckCell here.
&gt;&gt; But if the above is so rare, we can use CheckCell. (In that case, the identical Symbol that cell address is different from the cached one will be trapped by the Check).
&gt;&gt; What do you think of? In this patch, I chose the conservative one, because it just adds the one pointer cmp.
&gt; 
&gt; I think what you&apos;re doing now is fine.  We can optimize to CheckCell if we also profile whether the Symbol cell is always the same.  But I think you&apos;re taking the right approach and getting the more conservative case working first.

OK, so before the real symbol use case is figured out by the profiler, use CheckIdent for Symbol now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114996</commentid>
    <comment_count>28</comment_count>
      <attachid>258270</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 01:39:09 -0700</bug_when>
    <thetext>Created attachment 258270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114997</commentid>
    <comment_count>29</comment_count>
      <attachid>258271</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 01:49:32 -0700</bug_when>
    <thetext>Created attachment 258271
Patch

32bit build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114998</commentid>
    <comment_count>30</comment_count>
      <attachid>258272</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 02:01:38 -0700</bug_when>
    <thetext>Created attachment 258272
Patch

32bit build fix, and checked with run-javascriptcore-tests --32-bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114999</commentid>
    <comment_count>31</comment_count>
      <attachid>258272</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 02:03:52 -0700</bug_when>
    <thetext>Comment on attachment 258272
Patch

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

Added notes.

&gt; Source/JavaScriptCore/bytecode/ExitKind.h:35
&gt; +    BadIdent, // We exited because we made an incorrect assumption about what identifier we would see. Usually used for cached Id check in get_by_val.

Added new ExitKind BadIdent. This can be used if we would like to check the CheckIdent&apos;s exits and leverage it for the further compilation.

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3407
&gt; +                ByValInfo* byValInfo = m_inlineStackTop-&gt;m_byValInfos.get(CodeOrigin(currentCodeOrigin().bytecodeIndex));

ByValInfo is the part of CodeBlock. Now protected by ConcurrentJITLocker.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:4602
&gt; +}

Moved to DFGSpeculativeJIT.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115052</commentid>
    <comment_count>32</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 10:46:14 -0700</bug_when>
    <thetext>after checking in the Octane/Kraken, I&apos;ve seen some perf regression.
If it is ensured, I&apos;ll add a path to record a slow path for incorrect ident and use the generic one if we saw it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115075</commentid>
    <comment_count>33</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 11:33:39 -0700</bug_when>
    <thetext>To improve this, we need to record tookSlowPath in byValInfo (not stubInfo, because stubInfo-&gt;tookSlowPath is used for the case that &quot;the id is the same, but structures are different / non-cachable).
So looking up byValInfo by binary search in each time is not good I think (it&apos;s now highly used).
So I would like to change byValInfo to stubInfo like one; allocated by Bag, operation takes the immediate byValInfo pointer. In my plan, byValInfo holds the ArrayProfile*. And current ArrayProfile* in the operation side is replaced by ByValInfo*. (If there&apos;s a room, we can pass the both)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115102</commentid>
    <comment_count>34</comment_count>
      <attachid>258296</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 13:33:34 -0700</bug_when>
    <thetext>Created attachment 258296
Patch

Fix the performance regressions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115104</commentid>
    <comment_count>35</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 13:36:19 -0700</bug_when>
    <thetext>Performance results including Octane and Kraken.

Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on Yusukes-MacBook-Pro (MacBookPro11,3).

VMs tested:
&quot;master&quot; at /Users/yusukesuzuki/development/WebKit/WebKitBuild/master-for-gen3/Release/jsc
&quot;ic&quot; at /Users/yusukesuzuki/development/WebKit/WebKitBuild/gen3/Release/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements.
Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level
timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                          master                      ic                                        
SunSpider:
   3d-cube                                            4.5282+-0.2485     ?      4.9453+-0.7707        ? might be 1.0921x slower
   3d-morph                                           5.3310+-0.1991     ?      5.4410+-0.2284        ? might be 1.0206x slower
   3d-raytrace                                        5.8653+-0.8088            5.5945+-0.3632          might be 1.0484x faster
   access-binary-trees                                2.0560+-0.1181     ?      2.1602+-0.1669        ? might be 1.0507x slower
   access-fannkuch                                    5.5486+-0.2242     ?      5.7419+-0.6789        ? might be 1.0348x slower
   access-nbody                                       2.4963+-0.0439     ?      2.5289+-0.1304        ? might be 1.0131x slower
   access-nsieve                                      3.0986+-0.1591            3.0718+-0.0874        
   bitops-3bit-bits-in-byte                           1.5406+-0.1011            1.4664+-0.0355          might be 1.0506x faster
   bitops-bits-in-byte                                3.2902+-0.0964            3.2783+-0.0971        
   bitops-bitwise-and                                 2.0684+-0.2158     ?      2.0852+-0.2163        ?
   bitops-nsieve-bits                                 2.9742+-0.0596            2.9232+-0.0656          might be 1.0175x faster
   controlflow-recursive                              2.1710+-0.1297            2.0672+-0.0367          might be 1.0502x faster
   crypto-aes                                         4.0428+-0.3877            3.9308+-0.1072          might be 1.0285x faster
   crypto-md5                                         2.5234+-0.1070            2.4905+-0.0859          might be 1.0132x faster
   crypto-sha1                                        2.3946+-0.1902     ?      2.5060+-0.2005        ? might be 1.0465x slower
   date-format-tofte                                  6.8201+-0.2537            6.7677+-0.1506        
   date-format-xparb                                  4.6736+-0.2267     ?      4.7784+-0.2501        ? might be 1.0224x slower
   math-cordic                                        2.8085+-0.0535            2.7977+-0.0656        
   math-partial-sums                                  5.3309+-0.3371     ?      5.5550+-0.4766        ? might be 1.0420x slower
   math-spectral-norm                                 1.8878+-0.2383            1.8329+-0.0530          might be 1.0299x faster
   regexp-dna                                         6.7020+-0.8181     ?      6.8414+-1.0744        ? might be 1.0208x slower
   string-base64                                      4.4441+-0.4511     ?      4.6030+-0.6046        ? might be 1.0358x slower
   string-fasta                                       5.9281+-0.2114     ?      6.1610+-0.7233        ? might be 1.0393x slower
   string-tagcloud                                    8.1575+-0.1615     ?      8.3894+-0.4561        ? might be 1.0284x slower
   string-unpack-code                                20.3569+-0.7611     ?     20.3917+-1.1216        ?
   string-validate-input                              4.5994+-0.3102     ?      4.6462+-0.3575        ? might be 1.0102x slower

   &lt;arithmetic&gt;                                       4.6784+-0.0156     ?      4.7306+-0.1227        ? might be 1.0112x slower

                                                          master                      ic                                        
LongSpider:
   3d-cube                                          806.5562+-13.3674         803.4470+-15.8815       
   3d-morph                                        1563.4717+-13.7225    ?   1583.1520+-40.2826       ? might be 1.0126x slower
   3d-raytrace                                      646.5690+-2.9499     ?    648.3439+-13.3386       ?
   access-binary-trees                              833.2377+-12.8893         828.8545+-10.4351       
   access-fannkuch                                  292.1420+-11.9482         291.2977+-2.5443        
   access-nbody                                     533.2036+-11.5947         530.7414+-10.3930       
   access-nsieve                                    370.8472+-11.2058    ?    377.9310+-14.2696       ? might be 1.0191x slower
   bitops-3bit-bits-in-byte                          40.9683+-0.5645     ?     41.2922+-1.1724        ?
   bitops-bits-in-byte                               84.0946+-6.1807     ?     86.5445+-7.4637        ? might be 1.0291x slower
   bitops-nsieve-bits                               419.8147+-14.8998    ?    420.5725+-6.5100        ?
   controlflow-recursive                            436.5338+-8.3128     ?    441.2347+-6.7535        ? might be 1.0108x slower
   crypto-aes                                       579.6600+-21.7291    ?    602.8971+-27.3378       ? might be 1.0401x slower
   crypto-md5                                       488.2917+-11.5858    ?    497.6625+-13.5016       ? might be 1.0192x slower
   crypto-sha1                                      662.7828+-8.6205     ?    667.2480+-28.4731       ?
   date-format-tofte                                542.8038+-27.8694         529.8138+-13.7247         might be 1.0245x faster
   date-format-xparb                                655.6882+-15.4961    ?    660.0057+-14.6466       ?
   hash-map                                         157.9012+-2.9534     ?    160.4095+-5.5077        ? might be 1.0159x slower
   math-cordic                                      505.8448+-3.0814     ?    518.2212+-12.0568       ? might be 1.0245x slower
   math-partial-sums                                519.8271+-7.3856          518.5653+-11.9173       
   math-spectral-norm                               578.2445+-17.4989         577.4418+-4.8732        
   string-base64                                    361.4495+-11.1843    ?    369.2320+-7.2116        ? might be 1.0215x slower
   string-fasta                                     370.2538+-4.2847     ?    377.1550+-10.1899       ? might be 1.0186x slower
   string-tagcloud                                  185.2253+-6.7053          183.9490+-4.4700        

   &lt;geometric&gt;                                      405.8323+-0.9512     ?    409.0743+-4.0670        ? might be 1.0080x slower

                                                          master                      ic                                        
V8Spider:
   crypto                                            53.5570+-12.4800          52.8669+-8.1601          might be 1.0131x faster
   deltablue                                         86.6597+-7.9606           83.1719+-10.9821         might be 1.0419x faster
   earley-boyer                                      41.5284+-3.4938           40.8287+-2.1071          might be 1.0171x faster
   raytrace                                          29.9363+-3.4531           29.6315+-2.5639          might be 1.0103x faster
   regexp                                            66.0772+-3.4537           63.9864+-1.1605          might be 1.0327x faster
   richards                                          72.3815+-1.8120     ?     72.6858+-6.2021        ?
   splay                                             35.7101+-1.2082           34.3097+-1.9061          might be 1.0408x faster

   &lt;geometric&gt;                                       51.5981+-0.9070           50.5330+-0.8915          might be 1.0211x faster

                                                          master                      ic                                        
Octane:
   encrypt                                           0.20956+-0.00657    ?     0.21101+-0.00603       ?
   decrypt                                           3.54623+-0.13018          3.52265+-0.04455       
   deltablue                                x2       0.16130+-0.00226    ?     0.16394+-0.00374       ? might be 1.0164x slower
   earley                                            0.31011+-0.00337    ?     0.31156+-0.00470       ?
   boyer                                             4.43421+-0.36312          4.39971+-0.26433       
   navier-stokes                            x2       5.22529+-0.04478    ?     5.24537+-0.08282       ?
   raytrace                                 x2       1.03838+-0.08028    ?     1.04428+-0.08834       ?
   richards                                 x2       0.10505+-0.00248    ?     0.10737+-0.00493       ? might be 1.0221x slower
   splay                                    x2       0.35686+-0.00530    ?     0.36002+-0.00939       ?
   regexp                                   x2      26.18337+-1.12246         25.68211+-0.74344         might be 1.0195x faster
   pdfjs                                    x2      38.63998+-0.56690         38.62293+-0.36230       
   mandreel                                 x2      46.29668+-0.37778    ?    46.40727+-0.85481       ?
   gbemu                                    x2      35.21303+-0.19831    ?    35.52619+-0.76761       ?
   closure                                           0.58360+-0.00624    ?     0.59320+-0.00658       ? might be 1.0165x slower
   jquery                                            7.50638+-0.09588    ?     7.56682+-0.17575       ?
   box2d                                    x2      10.57968+-0.40023         10.42192+-0.18990         might be 1.0151x faster
   zlib                                     x2     389.06496+-5.31756        385.30068+-34.70982      
   typescript                               x2     673.87708+-31.35682   ?   690.84283+-23.27015      ? might be 1.0252x slower

   &lt;geometric&gt;                                       5.84413+-0.05191    ?     5.86659+-0.03748       ? might be 1.0038x slower

                                                          master                      ic                                        
Kraken:
   ai-astar                                          246.713+-8.875            232.316+-16.921          might be 1.0620x faster
   audio-beat-detection                               59.483+-0.857             59.074+-0.352         
   audio-dft                                         101.256+-3.284             99.410+-3.223           might be 1.0186x faster
   audio-fft                                          35.688+-0.219      ?      35.698+-0.189         ?
   audio-oscillator                                   64.880+-1.876      ?      65.061+-5.336         ?
   imaging-darkroom                                   61.867+-2.631             61.193+-1.386           might be 1.0110x faster
   imaging-desaturate                                 57.659+-2.871             53.909+-6.815           might be 1.0696x faster
   imaging-gaussian-blur                              88.789+-4.806             87.531+-5.359           might be 1.0144x faster
   json-parse-financial                               40.382+-0.386      !      42.575+-1.446         ! definitely 1.0543x slower
   json-stringify-tinderbox                           22.748+-1.462      ?      23.567+-1.554         ? might be 1.0360x slower
   stanford-crypto-aes                                43.192+-3.254             42.372+-0.650           might be 1.0194x faster
   stanford-crypto-ccm                                36.771+-3.066             35.113+-1.615           might be 1.0472x faster
   stanford-crypto-pbkdf2                             98.899+-3.531             98.791+-6.183         
   stanford-crypto-sha256-iterative                   38.111+-3.312      ?      39.925+-2.583         ? might be 1.0476x slower

   &lt;arithmetic&gt;                                       71.174+-1.609             69.752+-1.036           might be 1.0204x faster

                                                          master                      ic                                        
JSRegress:
   abc-forward-loop-equal                            29.1677+-0.3676     ?     30.3741+-1.0654        ? might be 1.0414x slower
   abc-postfix-backward-loop                         29.7617+-1.0127     ?     30.9985+-2.7965        ? might be 1.0416x slower
   abc-simple-backward-loop                          30.0283+-0.7175     ?     30.2725+-2.9063        ?
   abc-simple-forward-loop                           30.4447+-1.8540           29.9425+-1.9338          might be 1.0168x faster
   abc-skippy-loop                                   21.5685+-0.5921           21.5358+-0.9275        
   abs-boolean                                        2.4841+-0.1485     ?      2.5024+-0.1864        ?
   adapt-to-double-divide                            17.0173+-0.7320     ?     17.5393+-1.9958        ? might be 1.0307x slower
   aliased-arguments-getbyval                         1.1360+-0.0695     ?      1.4144+-0.5924        ? might be 1.2450x slower
   allocate-big-object                                2.3381+-0.2634     ?      2.4282+-0.3081        ? might be 1.0385x slower
   arguments-named-and-reflective                    11.2994+-0.5595           10.9318+-0.3130          might be 1.0336x faster
   arguments-out-of-bounds                            9.9373+-0.6874            9.8275+-0.2430          might be 1.0112x faster
   arguments-strict-mode                              9.9556+-0.6040            9.7040+-0.7970          might be 1.0259x faster
   arguments                                          8.4682+-0.4456     ?      9.3926+-3.1602        ? might be 1.1092x slower
   arity-mismatch-inlining                            0.8540+-0.0754            0.7855+-0.0282          might be 1.0873x faster
   array-access-polymorphic-structure                 6.2924+-0.6596            6.1773+-0.2479          might be 1.0186x faster
   array-nonarray-polymorhpic-access                 26.1734+-0.6319           25.6730+-1.4229          might be 1.0195x faster
   array-prototype-every                             77.7406+-2.2229     ?     82.9680+-3.7002        ? might be 1.0672x slower
   array-prototype-forEach                           76.2050+-0.8694     ?     80.7188+-4.5448        ? might be 1.0592x slower
   array-prototype-map                               84.6564+-3.5170           83.4708+-3.0334          might be 1.0142x faster
   array-prototype-reduce                            75.4187+-6.0351           73.7213+-0.7984          might be 1.0230x faster
   array-prototype-reduceRight                       72.2633+-1.7126     ?     74.4540+-3.3253        ? might be 1.0303x slower
   array-prototype-some                              78.7365+-1.5492     ?     82.9426+-6.7842        ? might be 1.0534x slower
   array-splice-contiguous                           21.8065+-1.2714     ?     21.9171+-4.2385        ?
   array-with-double-add                              3.4127+-0.1246     ?      3.4438+-0.1419        ?
   array-with-double-increment                        3.0817+-0.0428            3.0614+-0.1056        
   array-with-double-mul-add                          4.3383+-0.2766            4.2430+-0.0908          might be 1.0225x faster
   array-with-double-sum                              3.1752+-0.0318     ?      3.2064+-0.0802        ?
   array-with-int32-add-sub                           6.0149+-0.1640            5.9641+-0.1148        
   array-with-int32-or-double-sum                     3.3884+-0.1952            3.3590+-0.2799        
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     30.1981+-3.0663           28.2600+-0.7667          might be 1.0686x faster
   ArrayBuffer-DataView-alloc-long-lived             14.1130+-3.8732           13.5988+-3.5600          might be 1.0378x faster
   ArrayBuffer-Int32Array-byteOffset                  3.6795+-0.2217     ?      3.7097+-0.2037        ?
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     28.4406+-1.3244           28.0223+-0.3597          might be 1.0149x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     21.0040+-0.8972     ?     22.0151+-3.7864        ? might be 1.0481x slower
   ArrayBuffer-Int8Array-alloc-long-lived            13.4361+-2.9611           12.7405+-2.1225          might be 1.0546x faster
   ArrayBuffer-Int8Array-alloc                       11.2585+-2.4529           10.7628+-0.3935          might be 1.0461x faster
   asmjs_bool_bug                                     7.3057+-0.5780     ?      7.7534+-0.6956        ? might be 1.0613x slower
   assign-custom-setter-polymorphic                   2.6929+-0.2065            2.6733+-0.0691        
   assign-custom-setter                               3.5984+-0.1068            3.5750+-0.1629        
   basic-set                                          8.2795+-0.2557            8.2755+-1.1139        
   big-int-mul                                        3.5844+-0.0950            3.5359+-0.0911          might be 1.0137x faster
   boolean-test                                       2.9197+-0.0451     ?      2.9272+-0.0560        ?
   branch-fold                                        3.7108+-0.1101            3.6453+-0.0257          might be 1.0180x faster
   branch-on-string-as-boolean                       17.0079+-1.2331           16.5284+-0.6909          might be 1.0290x faster
   by-val-generic                                     7.1727+-0.4127     ^      6.1404+-0.0561        ^ definitely 1.1681x faster
   call-spread-apply                                 27.0648+-1.1430     ?     27.1664+-2.0285        ?
   call-spread-call                                  21.7117+-0.6298           21.5172+-0.7480        
   captured-assignments                               0.4089+-0.0279            0.4040+-0.0115          might be 1.0121x faster
   cast-int-to-double                                 5.2700+-0.2375     ?      5.3121+-0.6351        ?
   cell-argument                                      6.2390+-0.2873     ?      6.3619+-0.0820        ? might be 1.0197x slower
   cfg-simplify                                       2.8525+-0.1148     ?      3.0408+-0.6041        ? might be 1.0660x slower
   chain-getter-access                                8.3180+-0.4650            8.1072+-0.1264          might be 1.0260x faster
   cmpeq-obj-to-obj-other                            11.3422+-1.9220     ?     11.7698+-2.3866        ? might be 1.0377x slower
   constant-test                                      5.1288+-0.6526            4.9953+-0.2795          might be 1.0267x faster
   create-lots-of-functions                           9.1982+-0.5133     ?      9.2998+-0.2678        ? might be 1.0110x slower
   cse-new-array-buffer                               2.2253+-0.3185     ?      2.3232+-0.1369        ? might be 1.0440x slower
   cse-new-array                                      2.3522+-0.2789     ?      2.5048+-0.5870        ? might be 1.0648x slower
   DataView-custom-properties                        33.0352+-1.2929           32.6660+-0.6440          might be 1.0113x faster
   delay-tear-off-arguments-strictmode               12.6254+-0.2109           12.4064+-0.6531          might be 1.0177x faster
   deltablue-varargs                                150.7604+-5.4167     ?    152.8066+-10.2665       ? might be 1.0136x slower
   destructuring-arguments                          172.4597+-8.7627     ?    173.9924+-6.6813        ?
   destructuring-parameters-overridden-by-function   
                                                      0.4433+-0.0292     ?      0.4434+-0.0577        ?
   destructuring-swap                                 4.8577+-0.1368     ?      4.9005+-0.3716        ?
   direct-arguments-getbyval                          1.1785+-0.1606            1.1710+-0.2048        
   div-boolean-double                                 5.4214+-0.1228     ?      5.5844+-0.5406        ? might be 1.0300x slower
   div-boolean                                        8.5823+-0.4712            8.5172+-0.3914        
   double-get-by-val-out-of-bounds                    4.2925+-0.1244            4.1372+-0.1546          might be 1.0375x faster
   double-pollution-getbyval                          8.8160+-0.1214     ?      8.9195+-0.2575        ? might be 1.0117x slower
   double-pollution-putbyoffset                       3.7980+-0.3552            3.7867+-0.0967        
   double-real-use                                   27.2012+-6.8952     ?     27.9280+-3.3763        ? might be 1.0267x slower
   double-to-int32-typed-array-no-inline              2.0956+-0.1633     ?      2.1830+-0.1824        ? might be 1.0417x slower
   double-to-int32-typed-array                        1.7710+-0.0962            1.7433+-0.0884          might be 1.0159x faster
   double-to-uint32-typed-array-no-inline             2.2479+-0.2060     ?      2.2887+-0.2850        ? might be 1.0181x slower
   double-to-uint32-typed-array                       1.9516+-0.4006            1.8837+-0.0655          might be 1.0361x faster
   elidable-new-object-dag                           33.9432+-0.3194     ?     34.1952+-0.6967        ?
   elidable-new-object-roflcopter                    33.0228+-0.7013     ?     33.4571+-1.8343        ? might be 1.0132x slower
   elidable-new-object-then-call                     31.7800+-1.7496           31.4551+-0.3465          might be 1.0103x faster
   elidable-new-object-tree                          36.3247+-0.5103           36.1536+-0.8549        
   empty-string-plus-int                              4.8400+-0.2318     ?      4.8997+-0.2301        ? might be 1.0123x slower
   emscripten-cube2hash                              25.8115+-1.1323     ?     26.9389+-2.2364        ? might be 1.0437x slower
   exit-length-on-plain-object                       12.9287+-0.3684           12.8127+-0.3865        
   external-arguments-getbyval                        1.2049+-0.1040            1.1964+-0.0792        
   external-arguments-putbyval                        2.3903+-0.4688            2.1387+-0.0838          might be 1.1176x faster
   fixed-typed-array-storage-var-index                1.1642+-0.0212            1.1472+-0.0311          might be 1.0148x faster
   fixed-typed-array-storage                          0.8970+-0.0906            0.8878+-0.0892          might be 1.0104x faster
   Float32Array-matrix-mult                           4.0172+-0.3712            3.9800+-0.1968        
   Float32Array-to-Float64Array-set                  49.6502+-2.9084           47.0181+-1.8577          might be 1.0560x faster
   Float64Array-alloc-long-lived                     58.2575+-1.3154     ?     58.8754+-2.2412        ? might be 1.0106x slower
   Float64Array-to-Int16Array-set                    56.4810+-0.4996     ?     58.0217+-2.3804        ? might be 1.0273x slower
   fold-double-to-int                                12.8971+-0.3155     ?     13.1835+-0.4332        ? might be 1.0222x slower
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.7560+-0.9063     ?     11.1981+-0.6799        ? might be 1.0411x slower
   fold-get-by-id-to-multi-get-by-offset              9.3020+-0.8969     ?      9.5156+-0.2223        ? might be 1.0230x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.6063+-0.5919            8.1846+-1.6486          might be 1.0515x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      7.0126+-1.7065     ?      7.8588+-1.2012        ? might be 1.1207x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.8015+-0.5103            7.7626+-0.1840        
   fold-multi-put-by-offset-to-put-by-offset   
                                                      6.4243+-0.6443            5.2300+-1.6441          might be 1.2283x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      8.6768+-0.5188     ?      8.6882+-1.1950        ?
   fold-put-by-id-to-multi-put-by-offset              9.2865+-1.5285            9.2689+-0.7901        
   fold-put-structure                                 5.6344+-0.7204            5.3468+-0.9463          might be 1.0538x faster
   for-of-iterate-array-entries                      11.9245+-0.3526     ?     12.2877+-0.4724        ? might be 1.0305x slower
   for-of-iterate-array-keys                          3.4141+-0.3316     ?      3.4384+-0.2072        ?
   for-of-iterate-array-values                        3.2635+-0.1525     ?      3.5128+-0.4783        ? might be 1.0764x slower
   fround                                            19.1564+-2.3145     ?     19.3178+-0.6534        ?
   ftl-library-inlining-dataview                     57.3265+-0.8368           57.2940+-1.0177        
   ftl-library-inlining                             111.8422+-5.9276          111.5262+-1.6971        
   function-dot-apply                                 2.0342+-0.0686     ?      2.1002+-0.1914        ? might be 1.0324x slower
   function-test                                      2.6610+-0.0605     ?      2.6829+-0.0930        ?
   function-with-eval                                99.6140+-4.4358     ?    104.6570+-5.1615        ? might be 1.0506x slower
   gcse-poly-get-less-obvious                        14.8087+-0.3191           14.5642+-0.1521          might be 1.0168x faster
   gcse-poly-get                                     14.6140+-0.5203     ?     14.9162+-1.2164        ? might be 1.0207x slower
   gcse                                               4.0215+-0.3739     ?      4.1222+-0.5814        ? might be 1.0250x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.6721+-0.1027            2.6370+-0.0190          might be 1.0133x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.0050+-0.2015     ?      6.0337+-0.3043        ?
   get-by-id-chain-from-try-block                     5.5519+-0.1072     ?      5.6056+-0.3163        ?
   get-by-id-check-structure-elimination              4.7066+-1.0565            4.5632+-0.3450          might be 1.0314x faster
   get-by-id-proto-or-self                           15.3929+-1.5138           15.3365+-1.6511        
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.9600+-0.1126     ?      2.9903+-0.1856        ? might be 1.0102x slower
   get-by-id-self-or-proto                           15.8895+-2.8521           15.2098+-1.9768          might be 1.0447x faster
   get-by-val-out-of-bounds                           3.9747+-0.2050            3.8967+-0.2508          might be 1.0200x faster
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                     16.8729+-1.0286     ^      2.8460+-0.0471        ^ definitely 5.9286x faster
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                    157.2448+-6.4139     ^      6.0943+-0.2173        ^ definitely 25.8019x faster
   get-by-val-with-string-chain-from-try-block   
                                                     58.6890+-3.1887     ^      6.1861+-0.2062        ^ definitely 9.4872x faster
   get-by-val-with-string-check-structure-elimination   
                                                    160.3820+-5.4887     ^      5.1985+-0.1929        ^ definitely 30.8517x faster
   get-by-val-with-string-proto-or-self              86.8782+-10.0196    ^     14.9386+-0.4761        ^ definitely 5.8157x faster
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                     17.3953+-0.6354     ^      3.1753+-0.0271        ^ definitely 5.4783x faster
   get-by-val-with-string-self-or-proto              84.3212+-4.3619     ^     16.6210+-1.1146        ^ definitely 5.0732x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                     20.6809+-0.5903     ^      3.2062+-0.3275        ^ definitely 6.4503x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                    222.3325+-8.4368     ^     12.5363+-0.0705        ^ definitely 17.7351x faster
   get-by-val-with-symbol-chain-from-try-block   
                                                     57.6683+-3.4113     ^      5.6364+-0.3109        ^ definitely 10.2314x faster
   get-by-val-with-symbol-check-structure-elimination   
                                                    218.3550+-5.9924     ^     11.2866+-0.0587        ^ definitely 19.3465x faster
   get-by-val-with-symbol-proto-or-self              88.8642+-4.6145     ^     15.6275+-2.4054        ^ definitely 5.6864x faster
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                     21.8210+-1.9445     ^      3.9825+-0.2270        ^ definitely 5.4792x faster
   get-by-val-with-symbol-self-or-proto              86.5010+-3.7340     ^     14.6815+-0.6708        ^ definitely 5.8918x faster
   get_callee_monomorphic                             2.3016+-0.2917            2.1713+-0.0970          might be 1.0600x faster
   get_callee_polymorphic                             3.2027+-0.0661     ?      3.3007+-0.2332        ? might be 1.0306x slower
   getter-no-activation                               4.9512+-0.3263     ?      4.9687+-0.1755        ?
   getter-prototype                                   9.9618+-0.1017            9.8992+-0.1713        
   getter-richards                                  123.9999+-8.3831          110.3110+-10.0817         might be 1.1241x faster
   getter                                             5.7173+-0.7573            5.4483+-0.3909          might be 1.0494x faster
   global-object-access-with-mutating-structure   
                                                      5.5243+-0.1308     ?      5.7130+-0.5435        ? might be 1.0342x slower
   global-var-const-infer-fire-from-opt               0.9075+-0.0858            0.8495+-0.0494          might be 1.0683x faster
   global-var-const-infer                             0.7606+-0.1246     ?      0.7736+-0.1883        ? might be 1.0171x slower
   HashMap-put-get-iterate-keys                      25.9922+-2.9405     ?     27.0355+-3.5112        ? might be 1.0401x slower
   HashMap-put-get-iterate                           27.2526+-2.3463           26.7664+-1.6821          might be 1.0182x faster
   HashMap-string-put-get-iterate                    25.4446+-1.6380     ?     25.8789+-1.8800        ? might be 1.0171x slower
   hoist-make-rope                                    7.4523+-0.3199     ?      8.4576+-0.7597        ? might be 1.1349x slower
   hoist-poly-check-structure-effectful-loop   
                                                      4.2081+-0.2210            4.1558+-0.0916          might be 1.0126x faster
   hoist-poly-check-structure                         3.3506+-0.0737            3.2533+-0.0744          might be 1.0299x faster
   imul-double-only                                   6.6213+-0.3132     ?      7.1595+-0.6789        ? might be 1.0813x slower
   imul-int-only                                      8.3401+-1.2264            8.0038+-0.1704          might be 1.0420x faster
   imul-mixed                                         6.7751+-0.6916            6.7377+-0.8769        
   in-four-cases                                     17.9575+-0.6242     ?     18.0943+-0.9951        ?
   in-one-case-false                                  9.4940+-0.2245            9.3679+-0.4159          might be 1.0135x faster
   in-one-case-true                                   9.2741+-0.1625     ?      9.6844+-0.9073        ? might be 1.0442x slower
   in-two-cases                                      10.0246+-0.5165            9.6175+-0.4733          might be 1.0423x faster
   indexed-properties-in-objects                      2.8920+-0.1017            2.8472+-0.0552          might be 1.0157x faster
   infer-closure-const-then-mov-no-inline             3.1927+-0.1615            3.0829+-0.1133          might be 1.0356x faster
   infer-closure-const-then-mov                      17.4760+-0.3793           16.9493+-0.2557          might be 1.0311x faster
   infer-closure-const-then-put-to-scope-no-inline   
                                                     12.0032+-0.2387           11.6786+-0.5139          might be 1.0278x faster
   infer-closure-const-then-put-to-scope             22.0292+-0.8473           21.8784+-0.6954        
   infer-closure-const-then-reenter-no-inline   
                                                     51.3146+-1.2408     ?     53.3607+-4.6672        ? might be 1.0399x slower
   infer-closure-const-then-reenter                  22.9749+-2.0646           22.3560+-0.7597          might be 1.0277x faster
   infer-constant-global-property                     3.3776+-0.0702     ?      3.4828+-0.0459        ? might be 1.0312x slower
   infer-constant-property                            2.7252+-0.1827            2.6159+-0.0467          might be 1.0418x faster
   infer-one-time-closure-ten-vars                    8.5019+-0.2477     ?      8.8345+-0.5685        ? might be 1.0391x slower
   infer-one-time-closure-two-vars                    8.4255+-0.6041            7.7767+-0.1320          might be 1.0834x faster
   infer-one-time-closure                             8.2621+-0.6275            7.8984+-0.3699          might be 1.0460x faster
   infer-one-time-deep-closure                       13.2109+-1.0035     ?     13.8286+-3.1377        ? might be 1.0468x slower
   inline-arguments-access                            3.7803+-0.3006            3.6257+-0.2589          might be 1.0426x faster
   inline-arguments-aliased-access                    3.8494+-0.6692            3.7727+-0.2718          might be 1.0203x faster
   inline-arguments-local-escape                      3.8195+-0.4821            3.7311+-0.1639          might be 1.0237x faster
   inline-get-scoped-var                              4.6532+-0.1400     ?      4.6552+-0.0913        ?
   inlined-put-by-id-transition                      10.4027+-1.1515           10.2960+-1.0971          might be 1.0104x faster
   int-or-other-abs-then-get-by-val                   4.9631+-0.2848            4.8627+-0.0706          might be 1.0206x faster
   int-or-other-abs-zero-then-get-by-val             16.4810+-1.2627     ?     16.7546+-1.0640        ? might be 1.0166x slower
   int-or-other-add-then-get-by-val                   4.3486+-0.9129            4.1300+-0.2131          might be 1.0529x faster
   int-or-other-add                                   5.0022+-0.2279            4.9957+-0.1536        
   int-or-other-div-then-get-by-val                   3.7665+-0.0900            3.7058+-0.0482          might be 1.0164x faster
   int-or-other-max-then-get-by-val                   4.2622+-0.3757            3.9645+-0.0909          might be 1.0751x faster
   int-or-other-min-then-get-by-val                   4.0549+-0.1254     ?      4.1049+-0.3559        ? might be 1.0123x slower
   int-or-other-mod-then-get-by-val                   3.6039+-0.2819            3.5809+-0.1669        
   int-or-other-mul-then-get-by-val                   3.7093+-0.1927     ?      3.8833+-0.9129        ? might be 1.0469x slower
   int-or-other-neg-then-get-by-val                   4.6777+-0.4534            4.5367+-0.2113          might be 1.0311x faster
   int-or-other-neg-zero-then-get-by-val             16.2246+-0.4694           16.0403+-0.5314          might be 1.0115x faster
   int-or-other-sub-then-get-by-val                   4.1643+-0.2353            4.1517+-0.2755        
   int-or-other-sub                                   3.4189+-0.0878     ?      3.4272+-0.0313        ?
   int-overflow-local                                 4.3443+-0.0733     ?      4.4653+-0.2924        ? might be 1.0278x slower
   Int16Array-alloc-long-lived                       43.0225+-1.9736           42.6326+-0.8218        
   Int16Array-bubble-sort-with-byteLength            17.7372+-0.2260     ?     17.7382+-0.3671        ?
   Int16Array-bubble-sort                            18.1882+-1.9488     ?     18.3118+-0.7128        ?
   Int16Array-load-int-mul                            1.5023+-0.1193            1.4521+-0.0238          might be 1.0346x faster
   Int16Array-to-Int32Array-set                      46.3752+-4.9819           43.8806+-1.2635          might be 1.0569x faster
   Int32Array-alloc-large                            12.5280+-0.6596     ?     12.9109+-1.4784        ? might be 1.0306x slower
   Int32Array-alloc-long-lived                       47.2256+-0.5114     ?     48.0411+-1.4854        ? might be 1.0173x slower
   Int32Array-alloc                                   2.7532+-0.3139     ?      2.7924+-0.3582        ? might be 1.0142x slower
   Int32Array-Int8Array-view-alloc                    6.4981+-0.1344            6.4710+-0.7353        
   int52-spill                                        4.7721+-0.2635     ?      4.8823+-0.2715        ? might be 1.0231x slower
   Int8Array-alloc-long-lived                        40.1775+-3.7636           39.8708+-3.4355        
   Int8Array-load-with-byteLength                     3.4295+-0.1224            3.4083+-0.0486        
   Int8Array-load                                     3.5062+-0.1500            3.4714+-0.2664          might be 1.0100x faster
   integer-divide                                    10.7535+-0.7009           10.5056+-0.3754          might be 1.0236x faster
   integer-modulo                                     1.6168+-0.0995     ?      1.6532+-0.0484        ? might be 1.0225x slower
   is-boolean-fold-tricky                             3.7715+-0.1454     ?      3.8497+-0.1989        ? might be 1.0207x slower
   is-boolean-fold                                    2.6472+-0.0382     ?      2.7357+-0.3211        ? might be 1.0334x slower
   is-function-fold-tricky-internal-function   
                                                     10.1465+-0.4450     ?     10.2383+-0.3193        ?
   is-function-fold-tricky                            4.1783+-0.0741     ?      4.2595+-0.2669        ? might be 1.0194x slower
   is-function-fold                                   2.6988+-0.1124     ?      2.9101+-0.6846        ? might be 1.0783x slower
   is-number-fold-tricky                              4.0613+-0.1382     ?      4.0797+-0.1552        ?
   is-number-fold                                     2.6277+-0.0494     ?      2.6942+-0.2209        ? might be 1.0253x slower
   is-object-or-null-fold-functions                   2.6985+-0.1092     ?      2.7450+-0.0838        ? might be 1.0172x slower
   is-object-or-null-fold-less-tricky                 4.1932+-0.2312     ?      4.3696+-0.8046        ? might be 1.0421x slower
   is-object-or-null-fold-tricky                      5.3980+-0.2246            5.2637+-0.1796          might be 1.0255x faster
   is-object-or-null-fold                             2.6528+-0.0806     ?      2.7194+-0.1091        ? might be 1.0251x slower
   is-object-or-null-trickier-function                4.1318+-0.0769            4.1230+-0.0575        
   is-object-or-null-trickier-internal-function   
                                                     11.0000+-0.4318           10.7465+-0.2660          might be 1.0236x faster
   is-object-or-null-tricky-function                  4.2324+-0.0976     ?      4.3441+-0.2761        ? might be 1.0264x slower
   is-object-or-null-tricky-internal-function   
                                                      8.0081+-0.1159     ?      8.0120+-0.2925        ?
   is-string-fold-tricky                              4.0966+-0.0838     ?      4.1592+-0.2719        ? might be 1.0153x slower
   is-string-fold                                     2.8082+-0.7047            2.6647+-0.0797          might be 1.0538x faster
   is-undefined-fold-tricky                           3.4359+-0.2286            3.4230+-0.1244        
   is-undefined-fold                                  2.6971+-0.0967     ?      2.7477+-0.3184        ? might be 1.0187x slower
   large-int-captured                                 3.8679+-0.0917     ?      3.9342+-0.3168        ? might be 1.0171x slower
   large-int-neg                                     15.0306+-2.4510           14.0783+-0.4475          might be 1.0676x faster
   large-int                                         14.0135+-0.7444           13.8254+-0.8839          might be 1.0136x faster
   load-varargs-elimination                          22.2371+-2.8835           21.7607+-0.0951          might be 1.0219x faster
   logical-not-weird-types                            3.0613+-0.3327            3.0161+-0.3661          might be 1.0150x faster
   logical-not                                        4.3324+-0.1772            4.2687+-0.0857          might be 1.0149x faster
   lots-of-fields                                     9.5287+-0.5307     ?      9.6821+-0.7142        ? might be 1.0161x slower
   make-indexed-storage                               2.9662+-0.6081            2.8135+-0.2031          might be 1.0543x faster
   make-rope-cse                                      3.7227+-0.2721            3.6138+-0.0983          might be 1.0301x faster
   marsaglia-larger-ints                             34.4193+-2.4644           34.3773+-2.2211        
   marsaglia-osr-entry                               21.9843+-1.4772           21.9124+-1.1741        
   math-with-out-of-bounds-array-values              21.9509+-1.1997     ?     23.2725+-1.6640        ? might be 1.0602x slower
   max-boolean                                        2.6942+-0.0769     ?      2.7352+-0.0786        ? might be 1.0152x slower
   method-on-number                                  18.6349+-1.3529           17.1440+-0.6715          might be 1.0870x faster
   min-boolean                                        2.8851+-0.4777            2.6718+-0.0779          might be 1.0798x faster
   minus-boolean-double                               3.1353+-0.1165            3.1278+-0.0943        
   minus-boolean                                      2.3303+-0.0283            2.3050+-0.0529          might be 1.0110x faster
   misc-strict-eq                                    32.0894+-3.0129           31.7198+-1.5799          might be 1.0117x faster
   mod-boolean-double                                11.6727+-0.5125     ?     11.6929+-0.5424        ?
   mod-boolean                                        8.4542+-0.2064     ?      8.5276+-0.4070        ?
   mul-boolean-double                                 3.6330+-0.0978     ?      3.6642+-0.1868        ?
   mul-boolean                                        2.8157+-0.0449     ?      2.8349+-0.1340        ?
   neg-boolean                                        3.2040+-0.2168     ?      3.2236+-0.1867        ?
   negative-zero-divide                               0.3403+-0.0889            0.3210+-0.0119          might be 1.0603x faster
   negative-zero-modulo                               0.3307+-0.0179            0.3234+-0.0082          might be 1.0226x faster
   negative-zero-negate                               0.3207+-0.0410            0.3171+-0.0529          might be 1.0115x faster
   nested-function-parsing                           44.9587+-3.3444     ?     46.2252+-3.2244        ? might be 1.0282x slower
   new-array-buffer-dead                             89.4360+-0.6870     ?     92.1055+-2.3942        ? might be 1.0298x slower
   new-array-buffer-push                              6.2070+-1.0219            5.9761+-0.4335          might be 1.0386x faster
   new-array-dead                                    14.1108+-0.3849           13.5817+-0.8201          might be 1.0390x faster
   new-array-push                                     3.4388+-0.0573     ?      3.4563+-0.1641        ?
   no-inline-constructor                             31.3398+-0.6795     ?     32.7883+-1.9389        ? might be 1.0462x slower
   number-test                                        2.8885+-0.1302            2.8829+-0.1103        
   object-closure-call                                5.5519+-1.4117            4.9561+-0.2815          might be 1.1202x faster
   object-get-own-property-symbols-on-large-array   
                                                      3.9253+-0.1247     ?      4.6427+-0.6729        ? might be 1.1828x slower
   object-test                                        2.9059+-0.4614            2.6388+-0.0942          might be 1.1012x faster
   obvious-sink-pathology-taken                     102.4652+-3.8537          102.2292+-4.4896        
   obvious-sink-pathology                            97.8555+-3.6470           96.8885+-2.7929        
   obviously-elidable-new-object                     28.6785+-0.5418     ?     29.2288+-0.3625        ? might be 1.0192x slower
   plus-boolean-arith                                 2.4104+-0.1011            2.3837+-0.0665          might be 1.0112x faster
   plus-boolean-double                                3.1282+-0.1328     ?      3.1647+-0.1391        ? might be 1.0117x slower
   plus-boolean                                       2.6492+-0.2262            2.6097+-0.0373          might be 1.0151x faster
   poly-chain-access-different-prototypes-simple   
                                                      3.3807+-0.2684     ?      3.4354+-0.7359        ? might be 1.0162x slower
   poly-chain-access-different-prototypes             2.8811+-0.0345     ?      2.9038+-0.1748        ?
   poly-chain-access-simpler                          3.2610+-0.0706     ?      3.2640+-0.0336        ?
   poly-chain-access                                  3.2858+-0.1224            3.2487+-0.0331          might be 1.0114x faster
   poly-stricteq                                     51.6788+-0.7968           51.5071+-3.0235        
   polymorphic-array-call                             1.2077+-0.0318     ?      1.2394+-0.1259        ? might be 1.0262x slower
   polymorphic-get-by-id                              2.9131+-0.1649            2.8693+-0.1032          might be 1.0153x faster
   polymorphic-put-by-id                             25.3835+-0.8750     ?     25.6607+-0.9373        ? might be 1.0109x slower
   polymorphic-structure                             13.0999+-0.1924     ?     13.4473+-0.3115        ? might be 1.0265x slower
   polyvariant-monomorphic-get-by-id                  6.5502+-1.4450     ?      6.5729+-0.5769        ?
   proto-getter-access                                8.1264+-0.0743            8.0548+-0.1249        
   prototype-access-with-mutating-prototype           5.4297+-0.1551     ?      5.5083+-0.1458        ? might be 1.0145x slower
   put-by-id-replace-and-transition                   8.3113+-1.1512            7.5284+-0.3681          might be 1.1040x faster
   put-by-id-slightly-polymorphic                     2.8956+-0.5948            2.7136+-0.1234          might be 1.0671x faster
   put-by-id                                          9.9277+-0.8230            9.7745+-0.2481          might be 1.0157x faster
   put-by-val-direct                                  0.3285+-0.0121     ?      0.3344+-0.0407        ? might be 1.0180x slower
   put-by-val-large-index-blank-indexing-type   
                                                      5.4322+-0.6050            5.3682+-0.2687          might be 1.0119x faster
   put-by-val-machine-int                             2.4142+-0.2101     ?      2.4523+-0.1301        ? might be 1.0158x slower
   rare-osr-exit-on-local                            14.8058+-0.3517     ?     15.5980+-1.1251        ? might be 1.0535x slower
   register-pressure-from-osr                        16.5261+-0.2232     ?     16.5311+-0.0608        ?
   repeat-multi-get-by-offset                        22.9243+-1.6596           22.6870+-1.6223          might be 1.0105x faster
   setter-prototype                                   7.9929+-0.8592            7.5597+-0.3653          might be 1.0573x faster
   setter                                             5.9709+-1.2162            5.6119+-1.0563          might be 1.0640x faster
   simple-activation-demo                            24.9536+-0.5949           24.8352+-0.5197        
   simple-getter-access                              10.6144+-0.3437     ?     10.6334+-0.4779        ?
   simple-poly-call-nested                            9.1161+-0.5402            8.7778+-0.4390          might be 1.0385x faster
   simple-poly-call                                   1.4379+-0.4586            1.3480+-0.3718          might be 1.0667x faster
   sin-boolean                                       18.3105+-0.6599           18.0956+-0.4130          might be 1.0119x faster
   singleton-scope                                   59.3531+-2.7158     ?     59.8433+-2.5407        ?
   sink-function                                      9.7374+-1.2433     ?     10.0952+-0.3029        ? might be 1.0367x slower
   sink-huge-activation                              16.6945+-1.2239           16.2399+-0.4988          might be 1.0280x faster
   sinkable-new-object-dag                           55.7596+-0.8708           55.6040+-1.7824        
   sinkable-new-object-taken                         43.0992+-1.8525     ?     43.7509+-2.3781        ? might be 1.0151x slower
   sinkable-new-object                               30.2158+-1.6669           29.9004+-1.0642          might be 1.0105x faster
   slow-array-profile-convergence                     2.5434+-0.0164     ?      2.5624+-0.1951        ?
   slow-convergence                                   2.4165+-0.1206            2.3785+-0.0892          might be 1.0160x faster
   slow-ternaries                                    17.9556+-0.6368     ?     18.5216+-1.5828        ? might be 1.0315x slower
   sorting-benchmark                                 17.4837+-0.9109     ?     17.5797+-0.9923        ?
   sparse-conditional                                 1.1068+-0.0219     ?      1.1379+-0.0171        ? might be 1.0281x slower
   splice-to-remove                                  12.6773+-0.7283           12.5941+-0.4259        
   string-char-code-at                               14.6116+-0.9458     ?     14.9512+-1.3786        ? might be 1.0232x slower
   string-concat-object                               2.1562+-0.1474     ?      2.1971+-0.1246        ? might be 1.0189x slower
   string-concat-pair-object                          2.3087+-0.2517            2.1105+-0.2346          might be 1.0939x faster
   string-concat-pair-simple                          9.1845+-0.4091     ?      9.2742+-0.4364        ?
   string-concat-simple                               9.4223+-0.6926     ?      9.8348+-0.4971        ? might be 1.0438x slower
   string-cons-repeat                                 6.5396+-0.2168     ?      6.6136+-0.3737        ? might be 1.0113x slower
   string-cons-tower                                  6.7027+-0.1844     ?      7.1450+-0.5072        ? might be 1.0660x slower
   string-equality                                   15.6179+-0.5769           15.3935+-0.2517          might be 1.0146x faster
   string-get-by-val-big-char                         6.8282+-0.2032            6.6762+-0.1174          might be 1.0228x faster
   string-get-by-val-out-of-bounds-insane             3.4084+-0.2441     ?      3.4189+-0.1750        ?
   string-get-by-val-out-of-bounds                    4.0852+-0.1302            4.0703+-0.2207        
   string-get-by-val                                  2.8434+-0.1178            2.7923+-0.0488          might be 1.0183x faster
   string-hash                                        1.8777+-0.1079            1.8750+-0.0510        
   string-long-ident-equality                        12.8035+-0.4007     ?     13.1295+-1.1315        ? might be 1.0255x slower
   string-out-of-bounds                              11.4664+-2.5984           10.7268+-0.3664          might be 1.0690x faster
   string-repeat-arith                               29.1561+-4.0133           28.3716+-2.6119          might be 1.0277x faster
   string-sub                                        54.6891+-2.6272     ?     55.8691+-1.3901        ? might be 1.0216x slower
   string-test                                        3.0932+-0.6517            2.7523+-0.0811          might be 1.1239x faster
   string-var-equality                               27.0202+-0.7150     ?     27.1647+-0.7421        ?
   structure-hoist-over-transitions                   2.6932+-1.1548            2.5090+-0.1557          might be 1.0734x faster
   substring-concat-weird                            36.9243+-1.7632           36.6645+-1.0809        
   substring-concat                                  40.9005+-2.7101           40.0550+-0.4989          might be 1.0211x faster
   substring                                         45.9892+-1.6446           45.5529+-0.8871        
   switch-char-constant                               2.7525+-0.3180            2.7253+-0.1565        
   switch-char                                        5.6788+-0.6634     ?      6.0493+-1.7805        ? might be 1.0652x slower
   switch-constant                                    7.2534+-0.8842     ?      7.5062+-0.8353        ? might be 1.0348x slower
   switch-string-basic-big-var                       15.6820+-0.3498     ?     16.4578+-1.8543        ? might be 1.0495x slower
   switch-string-basic-big                           15.0152+-0.2991     ?     15.5062+-0.6232        ? might be 1.0327x slower
   switch-string-basic-var                           13.3522+-0.2305     ?     13.5203+-0.6914        ? might be 1.0126x slower
   switch-string-basic                               13.1345+-0.2449           12.7780+-0.1207          might be 1.0279x faster
   switch-string-big-length-tower-var                18.8189+-2.3342           18.3903+-1.5058          might be 1.0233x faster
   switch-string-length-tower-var                    13.6707+-0.8904     ?     13.6878+-0.4991        ?
   switch-string-length-tower                        12.0916+-1.0234     ?     12.1678+-0.8041        ?
   switch-string-short                               12.3218+-1.0066           12.0699+-0.5257          might be 1.0209x faster
   switch                                            12.1093+-1.9052     ?     12.4273+-1.5127        ? might be 1.0263x slower
   tear-off-arguments-simple                          2.9920+-0.2210     ?      3.0480+-0.2324        ? might be 1.0187x slower
   tear-off-arguments                                 4.1530+-0.2180     ?      4.2695+-0.2502        ? might be 1.0281x slower
   temporal-structure                                12.4503+-0.5840     ?     12.6002+-0.9921        ? might be 1.0120x slower
   to-int32-boolean                                  13.2928+-0.2184     ?     13.3080+-0.2336        ?
   try-catch-get-by-val-cloned-arguments             14.4038+-0.3984     ?     14.8405+-0.9735        ? might be 1.0303x slower
   try-catch-get-by-val-direct-arguments              6.8928+-0.2283            6.6060+-0.1539          might be 1.0434x faster
   try-catch-get-by-val-scoped-arguments              8.1981+-1.3457            8.1331+-0.7967        
   typed-array-get-set-by-val-profiling              27.2023+-1.5437     ?     27.8602+-0.8436        ? might be 1.0242x slower
   undefined-property-access                        237.1367+-8.4459          229.4705+-2.5203          might be 1.0334x faster
   undefined-test                                     2.8498+-0.0366     ?      3.2413+-1.0211        ? might be 1.1374x slower
   unprofiled-licm                                   14.7122+-1.0909           14.4875+-0.2179          might be 1.0155x faster
   varargs-call                                      14.0012+-1.3736           13.9243+-0.5835        
   varargs-construct-inline                          22.0225+-0.3647     ?     23.0604+-1.0028        ? might be 1.0471x slower
   varargs-construct                                 20.3447+-0.8152     ?     21.3850+-1.6085        ? might be 1.0511x slower
   varargs-inline                                     8.5649+-0.0947     ?      8.7050+-0.2491        ? might be 1.0163x slower
   varargs-strict-mode                                9.6845+-0.8186            9.3750+-0.8853          might be 1.0330x faster
   varargs                                            9.2238+-0.3674     ?      9.2682+-0.2624        ?
   weird-inlining-const-prop                          2.1058+-0.0909     ?      2.1734+-0.2522        ? might be 1.0321x slower

   &lt;geometric&gt;                                        8.5870+-0.0275     ^      7.8601+-0.0545        ^ definitely 1.0925x faster

                                                          master                      ic                                        
Geomean of preferred means:
   &lt;scaled-result&gt;                                   26.5452+-0.1642     ^     26.0774+-0.1446        ^ definitely 1.0179x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115108</commentid>
    <comment_count>36</comment_count>
      <attachid>258297</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 13:50:45 -0700</bug_when>
    <thetext>Created attachment 258297
Patch

32bit build fix for ByValInfo change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115109</commentid>
    <comment_count>37</comment_count>
      <attachid>258298</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 13:59:35 -0700</bug_when>
    <thetext>Created attachment 258298
Patch

More 32bit build fix for ByValInfo change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115127</commentid>
    <comment_count>38</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 14:52:17 -0700</bug_when>
    <thetext>Just took the Octane and Kraken once more. Performance regression seems solved.
Before the change there&apos;s no slow path marking for byValInfo.
That hurt the performance because there&apos;s a GetByVal site that takes various strings; e.g. the visitor&apos;s dispatcher.
Now, after compiling the StubInfo for GetByVal, if we saw the identifier that has the different content, we mark the site as `tookSlowPath`.
When the site is marked as the `tookSlowPath`, we don&apos;t compile it to GetById in DFG.


Benchmark report for Octane on Yusukes-MacBook-Pro (MacBookPro11,3).

VMs tested:
&quot;master&quot; at /Users/yusukesuzuki/development/WebKit/WebKitBuild/master-for-gen3/Release/jsc
&quot;ic&quot; at /Users/yusukesuzuki/development/WebKit/WebKitBuild/gen3/Release/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc()
between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the
jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution
times with 95% confidence intervals in milliseconds.

                             master                      ic                                        

encrypt                 0.20645+-0.01263    ?     0.20994+-0.00367       ? might be 1.0169x slower
decrypt                 3.46799+-0.10343          3.44442+-0.06629       
deltablue      x2       0.16095+-0.00221          0.15908+-0.00242         might be 1.0117x faster
earley                  0.30712+-0.00630          0.30594+-0.00175       
boyer                   4.23893+-0.03866          4.21954+-0.02187       
navier-stokes  x2       5.13329+-0.09361          5.10126+-0.05561       
raytrace       x2       1.04448+-0.10666          1.01682+-0.07716         might be 1.0272x faster
richards       x2       0.10228+-0.00219    ?     0.10322+-0.00450       ?
splay          x2       0.35144+-0.00406    ?     0.35503+-0.01409       ? might be 1.0102x slower
regexp         x2      25.89405+-1.01996         25.76519+-0.83990       
pdfjs          x2      38.64633+-0.75806         38.30610+-0.38808       
mandreel       x2      46.51771+-3.05833         45.33829+-0.85716         might be 1.0260x faster
gbemu          x2      35.24815+-0.64332    ?    36.02632+-3.49362       ? might be 1.0221x slower
closure                 0.57375+-0.00463    ?     0.57742+-0.00819       ?
jquery                  7.36228+-0.05250          7.35817+-0.13623       
box2d          x2      10.25243+-0.14312    ?    10.35483+-0.21798       ?
zlib           x2     385.37445+-10.82611   ?   396.58673+-5.99523       ? might be 1.0291x slower
typescript     x2     693.66809+-16.90391       681.81860+-15.95877        might be 1.0174x faster

&lt;geometric&gt;             5.79061+-0.07737          5.78389+-0.11579         might be 1.0012x faster




Benchmark report for Kraken on Yusukes-MacBook-Pro (MacBookPro11,3).

VMs tested:
&quot;master&quot; at /Users/yusukesuzuki/development/WebKit/WebKitBuild/master-for-gen3/Release/jsc
&quot;ic&quot; at /Users/yusukesuzuki/development/WebKit/WebKitBuild/gen3/Release/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.

                                            master                      ic                                        

ai-astar                               240.118+-2.170      ?     241.977+-4.494         ?
audio-beat-detection                    59.008+-0.469             58.943+-0.654         
audio-dft                              100.688+-2.563             99.585+-4.820           might be 1.0111x faster
audio-fft                               35.633+-0.196      ?      35.754+-0.339         ?
audio-oscillator                        62.934+-0.390      ?      63.350+-3.572         ?
imaging-darkroom                        61.746+-4.314             61.457+-2.503         
imaging-desaturate                      53.199+-5.660      ?      54.540+-5.450         ? might be 1.0252x slower
imaging-gaussian-blur                   85.293+-1.125      ?      85.738+-1.710         ?
json-parse-financial                    40.263+-2.950             39.565+-2.053           might be 1.0176x faster
json-stringify-tinderbox                23.803+-0.703      ?      24.231+-2.275         ? might be 1.0180x slower
stanford-crypto-aes                     43.118+-1.706             42.140+-0.348           might be 1.0232x faster
stanford-crypto-ccm                     35.808+-1.734             35.032+-0.476           might be 1.0222x faster
stanford-crypto-pbkdf2                  98.387+-3.808      ?      98.696+-3.572         ?
stanford-crypto-sha256-iterative        37.095+-0.561      ?      37.432+-0.843         ?

&lt;arithmetic&gt;                            69.792+-0.323      ?      69.889+-0.556         ? might be 1.0014x slower</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115251</commentid>
    <comment_count>39</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-05 20:15:06 -0700</bug_when>
    <thetext>*** Bug 145001 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115569</commentid>
    <comment_count>40</comment_count>
      <attachid>258298</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-06 17:42:19 -0700</bug_when>
    <thetext>Comment on attachment 258298
Patch

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

Can you file a bug for doing the same thing to put_by_val+put_by_id? :-)

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3410
&gt; +                if (byValInfo &amp;&amp; byValInfo-&gt;stubInfo &amp;&amp; !byValInfo-&gt;tookSlowPath) {

Could also check for the BadIdent exit site.  In this case tookSlowPath probably covers it, but we often check the exit site anyway.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:107
&gt; +    // FIXME: We need to implement patchableBranch64.

Can you link to a bug for this FIXME and clarify more what you mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115577</commentid>
    <comment_count>41</comment_count>
      <attachid>258298</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-06 18:09:46 -0700</bug_when>
    <thetext>Comment on attachment 258298
Patch

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

Thank you for your review! I&apos;ve filed the same improvement for put_by_val. https://bugs.webkit.org/show_bug.cgi?id=147760

&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3410
&gt;&gt; +                if (byValInfo &amp;&amp; byValInfo-&gt;stubInfo &amp;&amp; !byValInfo-&gt;tookSlowPath) {
&gt; 
&gt; Could also check for the BadIdent exit site.  In this case tookSlowPath probably covers it, but we often check the exit site anyway.

I&apos;ve added it!

&gt;&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:107
&gt;&gt; +    // FIXME: We need to implement patchableBranch64.
&gt; 
&gt; Can you link to a bug for this FIXME and clarify more what you mean?

Yup. Currently, there&apos;s no patchableBranch64 helper function in MacroAssembler; it can reduce the following

cmp some condition
jump_ok pass
patchable jump
pass:

to

cmp some condition
patchable jump_ng

I saw patchableBranchPtr in MacroAssembler under 64bit environments.
However, I think the current MacroAssemblerARM64&apos;s patchableBranchPtr seems wrong.

2344     PatchableJump patchableBranchPtr(RelationalCondition cond, Address left, TrustedImmPtr right = TrustedImmPtr(0))
2345     {
2346         m_makeJumpPatchable = true;
2347         Jump result = branch32(cond, left, TrustedImm32(right));
2348         m_makeJumpPatchable = false;
2349         return PatchableJump(result);
2350     }

It truncate the pointer to imm32. (And there&apos;s no patchableBranchPtr user in WebKit currently)

I&apos;ve filed the bug. https://bugs.webkit.org/show_bug.cgi?id=147761 And I&apos;ll link this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115595</commentid>
    <comment_count>42</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-06 19:08:22 -0700</bug_when>
    <thetext>Committed r188105: &lt;http://trac.webkit.org/changeset/188105&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115680</commentid>
    <comment_count>43</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-07 00:45:52 -0700</bug_when>
    <thetext>Oops. ARMv7 on EFL fails.
https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Traditional%20Release/builds/14344/steps/jscore-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115681</commentid>
    <comment_count>44</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-07 01:00:23 -0700</bug_when>
    <thetext>Hm, it&apos;s already failed without this patch?
https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Traditional%20Release/builds/14343

I need to investigate it more...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115682</commentid>
    <comment_count>45</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-07 01:03:06 -0700</bug_when>
    <thetext>GTK ARMv7 also fails without this patch
https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/8207

So I guess the failure is not caused by this patch.
If it&apos;s not correct, please point it, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116130</commentid>
    <comment_count>46</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 15:10:52 -0700</bug_when>
    <thetext>Reopening as it is being rolled out via Bug 147818.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116151</commentid>
    <comment_count>47</comment_count>
      <attachid>258602</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-09 18:42:02 -0700</bug_when>
    <thetext>Created attachment 258602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116152</commentid>
    <comment_count>48</comment_count>
      <attachid>258602</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-09 18:49:47 -0700</bug_when>
    <thetext>Comment on attachment 258602
Patch

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

Because only ARMv7 related builds fail, we can consider the cause of the bug resides in 32 bit code.
And since only baseline / llint option tests fail in EFL / GTK ARM bot, we can consider the bug resides in baseline JIT&apos;s 32bit code.
So maybe, I&apos;ve found the bug. Please take a look. At least, JSC tests with 64_32 env in x86 pass.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:209
&gt; +    slowCases.append(emitJumpIfNotJSCell(regT1));

emitJumpIfNotJSCell(RegisterID) is defined in 64 env. But not defined in 32 env.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:250
&gt; +    slowCases.append(branch32(NotEqual, regT3, TrustedImm32(JSValue::CellTag)));

Previously, here, we used emitJumpIfNotJSCell.
But emitJumpIfNotJSCell(RegisterID) is defined in 64 env. But not defined in 32 env.
In 32 bit, only emitJumpIfNotJSCell(int virtualRegister) is defined. Since RegisterID is the simple enum (non C++11 scoped enum), this is implicitly converted to int and the compiler can build it without the errors.
Now, we fixed it.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:255
&gt; +        slowCases.append(branchStructure(NotEqual, Address(regT2, JSCell::structureIDOffset()), m_vm-&gt;stringStructure.get()));

We drop the JSString&apos;s StringImpl nullptr check and atomicity check.
Because, when m_value StringImpl is defined, we can just compare it with the cached id.

1. StringImpl is nullptr case
If the StringImpl of the given string is nullptr, comparison with the cached id fails.

2. StringImpl is non atomic one
If the StringImpl of the given string is non atomic one, comparison with the cached id always fails because cached one is always atomic one. So these 2 pointers are not the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116161</commentid>
    <comment_count>49</comment_count>
      <attachid>258602</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-08-09 19:32:46 -0700</bug_when>
    <thetext>Comment on attachment 258602
Patch

Attachment 258602 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/36302

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116162</commentid>
    <comment_count>50</comment_count>
      <attachid>258605</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-08-09 19:32:52 -0700</bug_when>
    <thetext>Created attachment 258605
Archive of layout-test-results from ews100 for mac-mavericks

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews100  Port: mac-mavericks  Platform: Mac OS X 10.9.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116163</commentid>
    <comment_count>51</comment_count>
      <attachid>258602</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-08-09 19:36:06 -0700</bug_when>
    <thetext>Comment on attachment 258602
Patch

Attachment 258602 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/36304

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116164</commentid>
    <comment_count>52</comment_count>
      <attachid>258606</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-08-09 19:36:10 -0700</bug_when>
    <thetext>Created attachment 258606
Archive of layout-test-results from ews105 for mac-mavericks-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews105  Port: mac-mavericks-wk2  Platform: Mac OS X 10.9.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116240</commentid>
    <comment_count>53</comment_count>
      <attachid>258621</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-10 10:47:28 -0700</bug_when>
    <thetext>Created attachment 258621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116242</commentid>
    <comment_count>54</comment_count>
      <attachid>258621</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-10 10:50:13 -0700</bug_when>
    <thetext>Comment on attachment 258621
Patch

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

Fixed the mis-rebasing.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:216
&gt; +        loadPtr(Address(regT1, JSString::offsetOfValue()), regT3);

Drop the atomic StringImpl checks.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:250
&gt; +    slowCases.append(branch32(NotEqual, regT3, TrustedImm32(JSValue::CellTag)));

Use `branch32(NotEqual, regT3, TrustedImm32(JSValue::CellTag))` instead of emitJumpIfNotJSCell.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:257
&gt; +    }

Drop the atomic / StringImpl check.
if the extracted StringImpl pointer is either nullptr or non-atomic pointer, comparison with the cached id always fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116252</commentid>
    <comment_count>55</comment_count>
      <attachid>258621</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-10 11:07:24 -0700</bug_when>
    <thetext>Comment on attachment 258621
Patch

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

Copy &amp; Paste the notes from the previous patch.

Because only ARMv7 related builds fail, we can consider the cause of the bug resides in 32 bit code.
And since only baseline / llint option tests fail in EFL / GTK ARM bot, we can consider the bug resides in baseline JIT&apos;s 32bit code.
So maybe, I&apos;ve found the bug. Please take a look. At least, JSC tests with 64_32 env in x86 pass.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:210
&gt; +    slowCases.append(emitJumpIfNotJSCell(regT1));

emitJumpIfNotJSCell(RegisterID) is defined in 64 env. But not defined in 32 env.

&gt;&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:250
&gt;&gt; +    slowCases.append(branch32(NotEqual, regT3, TrustedImm32(JSValue::CellTag)));
&gt; 
&gt; Use `branch32(NotEqual, regT3, TrustedImm32(JSValue::CellTag))` instead of emitJumpIfNotJSCell.

Previously, here, we used emitJumpIfNotJSCell.
But emitJumpIfNotJSCell(RegisterID) is defined in 64 env. But not defined in 32 env.
In 32 bit, only emitJumpIfNotJSCell(int virtualRegister) is defined. Since RegisterID is the simple enum (non C++11 scoped enum), this is implicitly converted to int.

&gt;&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:257
&gt;&gt; +    }
&gt; 
&gt; Drop the atomic / StringImpl check.
&gt; if the extracted StringImpl pointer is either nullptr or non-atomic pointer, comparison with the cached id always fails.

We drop the JSString&apos;s StringImpl nullptr check and atomicity check.
Because, when m_value StringImpl is defined, we can just compare it with the cached id.

1. StringImpl is nullptr case
If the StringImpl of the given string is nullptr, comparison with the cached id fails.

2. StringImpl is non atomic one
If the StringImpl of the given string is non atomic one, comparison with the cached id always fails because cached one is always atomic one. So these 2 pointers are not the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116301</commentid>
    <comment_count>56</comment_count>
      <attachid>258644</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-10 13:19:15 -0700</bug_when>
    <thetext>Created attachment 258644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116304</commentid>
    <comment_count>57</comment_count>
      <attachid>258644</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-10 13:27:41 -0700</bug_when>
    <thetext>Comment on attachment 258644
Patch

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

Move the notes from the previously submitted patch.

Because only ARMv7 related builds fail, we can consider the cause of the bug resides in 32 bit code.
And since only baseline / llint option tests fail in EFL / GTK ARM bot, we can consider the bug resides in baseline JIT&apos;s 32bit code.
So maybe, I&apos;ve found the bug. Please take a look. At least, JSC tests with 64_32 env in x86 pass.

I added the notes which are different from the roll-outed patch. The major changes are the following 3 parts.

1. emitJumpIfNotJSCell in 32bit is replaced with `branch32(NotEqual, regT3, TrustedImm32(JSValue::CellTag))`. This seems the cause of this failure.
2. Drop the atomic StringImpl checks. It&apos;s just an optimization.
3. Split the doneCases into fastDoneCase (done) and slowDoneCase (nextHotPath). It&apos;s just an optimization.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:212
&gt; +    slowCases.append(emitJumpIfNotJSCell(regT1));

emitJumpIfNotJSCell(RegisterID) is defined in 64 env. But not defined in 32 env.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:219
&gt; +    }

We drop the JSString&apos;s StringImpl nullptr check and atomicity check.
Because, when m_value StringImpl is defined, we can just compare it with the cached id.

1. StringImpl is nullptr case
If the StringImpl of the given string is nullptr, comparison with the cached id fails.

2. StringImpl is non atomic one
If the StringImpl of the given string is non atomic one, comparison with the cached id always fails because cached one is always atomic one. So these 2 pointers are not the same.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1058
&gt; +    patchBuffer.link(slowDoneCase, byValInfo-&gt;badTypeJump.labelAtOffset(byValInfo-&gt;badTypeJumpToNextHotPath));

And since callOperation (with profile tag), already has (1) profiling the value and (2) storing it to the dst register, we separate the doneCases into done &amp; nextHotPath.
When we run the fast path code by JITGetByIdGenerator, we jump to done. Later, in the hot path, value profiling and storing the result to dst will be executed.
But when we fall into the cold path of the JITGetByIdGenerator, since it calls `callOperation(WithProfile, ...)`, we can remove the above profiling and storing. So we jump to the nextHotPath case.

&gt; Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:252
&gt; +    slowCases.append(branch32(NotEqual, regT3, TrustedImm32(JSValue::CellTag)));

Previously, here, we used emitJumpIfNotJSCell.
But emitJumpIfNotJSCell(RegisterID) is defined in 64 env. But not defined in 32 env.
In 32 bit, only emitJumpIfNotJSCell(int virtualRegister) is defined. Since RegisterID is the simple enum (non C++11 scoped enum), this is implicitly converted to int.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116430</commentid>
    <comment_count>58</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-10 18:49:38 -0700</bug_when>
    <thetext>I&apos;ve ran the test which reproduced the crash with the latest patch and I&apos;m no longer seeing the crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116432</commentid>
    <comment_count>59</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-10 18:53:09 -0700</bug_when>
    <thetext>(In reply to comment #58)
&gt; I&apos;ve ran the test which reproduced the crash with the latest patch and I&apos;m
&gt; no longer seeing the crash.

Thank you so much! It helps me a lot :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116733</commentid>
    <comment_count>60</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-11 15:02:31 -0700</bug_when>
    <thetext>Committed r188299: &lt;http://trac.webkit.org/changeset/188299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116916</commentid>
    <comment_count>61</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-12 00:01:29 -0700</bug_when>
    <thetext>This improves the following benchmark result :)
http://arewefastyet.com/#machine=29&amp;view=single&amp;suite=misc&amp;subtest=bugs-1131099-lodash1</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257931</attachid>
            <date>2015-07-31 11:03:23 -0700</date>
            <delta_ts>2015-07-31 12:27:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150731110319.patch</filename>
            <type>text/plain</type>
            <size>22062</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YmRmMDg4NDgwNzk5MTlhMTQ4ODE2M2Y4MTc1M2UzYWNjNTE5MWRmLi45MDQ0ZjljYTJhYzYyZTk5
OTJjMjI4NzM2NmE2MTRkYTU4ZmNhYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAxNS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL1BvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjpT
dHJ1Y3R1cmVTdHViSW5mbyk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAg
ICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNl
dHVwU3R1YkFyZ3VtZW50czIzNCk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChK
U0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAg
KiBqaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKSVRHZXRC
eVZhbEdlbmVyYXRvcjo6SklUR2V0QnlWYWxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRH
ZXRCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVElu
bGluZUNhY2hlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJVEdldEJ5VmFsR2VuZXJhdG9y
OjpKSVRHZXRCeVZhbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVEdldEJ5VmFsR2VuZXJh
dG9yOjpzbG93UGF0aEp1bXBzKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25z
LmNwcDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3df
b3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgICogcnVudGltZS9Qcml2YXRlTmFtZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvU3ltYm9sLmg6CisKIDIwMTUtMDctMzAgIFN1a29sc2FrIFNha3NodXdvbmcg
IDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgQWRkIHRoZSAid2FzbSIgZGlyZWN0b3J5
IHRvIHRoZSBBZGRpdGlvbmFsIEluY2x1ZGUgRGlyZWN0b3JpZXMgZm9yIGpzYy5leGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAppbmRleCBkOTg4NTE2MTMyNThh
NzFiOWYwNGJhNDkwNzNmNDQwMzNlNTcxMDgzLi4xYjAxMzU0ZDFmYjhhZDIyNWVmMWM2NWVhNTg5
NzU1N2FmNmU0OTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QnlWYWxJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5m
by5oCkBAIC0xOTksMTYgKzE5OSwxOSBAQCBpbmxpbmUgSklUQXJyYXlNb2RlIGppdEFycmF5TW9k
ZUZvclN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICByZXR1cm4gaml0QXJyYXlN
b2RlRm9yQ2xhc3NJbmZvKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkpOwogfQogCitzdHJ1Y3QgU3Ry
dWN0dXJlU3R1YkluZm87CisKIHN0cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFsSW5mbygpIHsg
fQogICAgIAotICAgIEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRp
b25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5
cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorICAgIEJ5VmFs
SW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1w
LCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQx
Nl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8p
CiAgICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQogICAgICAgICAsIGJhZFR5
cGVKdW1wKGJhZFR5cGVKdW1wKQogICAgICAgICAsIGFycmF5TW9kZShhcnJheU1vZGUpCiAgICAg
ICAgICwgYmFkVHlwZUp1bXBUb0RvbmUoYmFkVHlwZUp1bXBUb0RvbmUpCiAgICAgICAgICwgcmV0
dXJuQWRkcmVzc1RvU2xvd1BhdGgocmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgICwg
c2xvd1BhdGhDb3VudCgwKQorICAgICAgICAsIHN0dWJJbmZvKHN0dWJJbmZvKQogICAgIHsKICAg
ICB9CiAgICAgCkBAIC0yMTksNiArMjIyLDcgQEAgc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgaW50
MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aDsKICAgICB1bnNpZ25lZCBzbG93UGF0aENvdW50
OwogICAgIFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmU7CisgICAgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvOwogfTsKIAogaW5saW5lIHVuc2lnbmVkIGdldEJ5VmFsSW5mb0J5
dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdC5o
CmluZGV4IGY4YjY0NzUwY2VkZGYxMjkyOGI4ZTljMjBhODRhZGU3MDExMTUyNzguLjQyNDg4YTVl
YTZmNTA0ZWVkMzgyN2Y3NzQxODc3OWQ4NzA2MGI0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1
cmVMaXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RydWN0IFBvbHltb3JwaGljQWNjZXNzU3RydWN0
dXJlTGlzdCB7CiAgICAgICAgIGJvb2wgaXNEaXJlY3QgOiAxOwogICAgICAgICB1bnNpZ25lZCBj
b3VudCA6IDMxOwogICAgICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOwor
ICAgICAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IGlkZW50aWZpZXJGb3JWYWw7CiAgICAg
ICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IGJhc2U7CiAgICAgICAgIFdyaXRlQmFycmllcjxT
dHJ1Y3R1cmVDaGFpbj4gY2hhaW47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKaW5kZXggZDQwMmFjZWU1NzkzYmI0Zjc4NjY5NTE3
MTY0MTQ4ZThhN2EyNzFjOC4uY2JjNDcwMmM5MWYwYzM3NDUyZjJlODFiYjU5MzQ5MWZlMmI2M2Fk
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmgKQEAgLTk1LDYgKzk1LDcgQEAgc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvIHsKICAg
ICAgICAgLCBzZWVuKGZhbHNlKQogICAgICAgICAsIHJlc2V0QnlHQyhmYWxzZSkKICAgICAgICAg
LCB0b29rU2xvd1BhdGgoZmFsc2UpCisgICAgICAgICwgYnlWYWwoZmFsc2UpCiAgICAgewogICAg
IH0KIApAQCAtMTg1LDYgKzE4Niw3IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAg
Ym9vbCBzZWVuIDogMTsKICAgICBib29sIHJlc2V0QnlHQyA6IDE7CiAgICAgYm9vbCB0b29rU2xv
d1BhdGggOiAxOworICAgIGJvb2wgYnlWYWwgOiAxOwogCiAgICAgQ29kZU9yaWdpbiBjb2RlT3Jp
Z2luOwogCkBAIC0xOTUsNiArMTk3LDcgQEAgc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvIHsKICAg
ICAgICAgaW50OF90IHZhbHVlVGFnR1BSOwogI2VuZGlmCiAgICAgICAgIGludDhfdCB2YWx1ZUdQ
UjsKKyAgICAgICAgaW50OF90IGlkZW50aWZpZXJHUFI7CiAgICAgICAgIFJlZ2lzdGVyU2V0IHVz
ZWRSZWdpc3RlcnM7CiAgICAgICAgIGludDMyX3QgZGVsdGFDYWxsVG9Eb25lOwogICAgICAgICBp
bnQzMl90IGRlbHRhQ2FsbFRvU3RvcmFnZUxvYWQ7CkBAIC0yNTAsNiArMjUzLDcgQEAgc3RydWN0
IFN0cnVjdHVyZVN0dWJJbmZvIHsKICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0
aW5lOwogICAgIENvZGVMb2NhdGlvbkNhbGwgY2FsbFJldHVybkxvY2F0aW9uOwogICAgIFJlZlB0
cjxXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm8+IHdhdGNocG9pbnRzOworICAgIFJlZlB0
cjxVbmlxdWVkU3RyaW5nSW1wbD4gaWRlbnRpZmllckZvckJ5VmFsOwogfTsKIAogaW5saW5lIENv
ZGVPcmlnaW4gZ2V0U3RydWN0dXJlU3R1YkluZm9Db2RlT3JpZ2luKFN0cnVjdHVyZVN0dWJJbmZv
JiBzdHJ1Y3R1cmVTdHViSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaAppbmRleCBhNWM0NDU0N2RhNjRiYzJiNjNmMDczYTE3MTFlNmExMTgwNmY1
OTViLi5kYzAxOGVlOGRmZGJiMDE5NTkzMTkyNDAxOTI4Y2E1NjNhN2FkNWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xNDU2LDYgKzE0
NTYsMTEgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihzdHViSW5mbyksIGFyZzEsIGFyZzIsIFRy
dXN0ZWRJbW1QdHIodWlkKSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKG9wZXJhdGlvbik7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBvcGVyYXRpb24sIFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbywgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMykKKyAgICB7
CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRy
KHN0dWJJbmZvKSwgYXJnMSwgYXJnMiwgYXJnMyk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSiBvcGVyYXRpb24sIEdQUlJlZyBh
cmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCA1ZmE2YjUzNjJkZTk4N2MzMDNiMGZhMDE2
NTI2MGQwMWExNmIwZmY4Li40M2U1YzIxODU4YzM0MDZlNzM5Y2RkMTg5MTdiYThlODVkZWU1Y2Vk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTY0NSw2ICs2
NDUsMTYgQEAgY2xhc3MgQ0NhbGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiAg
ICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc0KTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BS
UmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJSZWcgYXJnNCkKKyAgICB7CisgICAgICAgIHJlc2V0
Q2FsbEFyZ3VtZW50cygpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMSk7CisgICAgICAgIGFk
ZENhbGxBcmd1bWVudChhcmcyKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzMpOworICAg
ICAgICBhZGRDYWxsQXJndW1lbnQoYXJnNCk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJl
ZyBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMywgVHJ1c3RlZEltbVB0ciBhcmc0KQogICAgIHsKICAg
ICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CkBAIC0xNTE1LDYgKzE1MjUsMTIgQEAgY2xhc3Mg
Q0NhbGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiAgICAgICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKICAgICB9CiAKKyAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIg
YXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJSZWcgYXJnNCkKKyAgICB7CisgICAg
ICAgIHBva2UoYXJnNCwgUE9LRV9BUkdVTUVOVF9PRkZTRVQpOworICAgICAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CisgICAgfQorCiAgICAgQUxXQVlT
X0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyIGFy
ZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgVHJ1c3RlZEltbVB0ciBhcmc0KQogICAgIHsK
ICAgICAgICAgcG9rZShhcmc0LCBQT0tFX0FSR1VNRU5UX09GRlNFVCk7CkBAIC0xOTAzLDYgKzE5
MTksMTEgQEAgY2xhc3MgQ0NhbGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiAg
ICAgICAgIHNldHVwVGhyZWVTdHViQXJnc0dQUjxHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMywgR1BSSW5mbzo6YXJndW1lbnRHUFI0PihhcmcxLCBhcmczLCBhcmc0
KTsKICAgICB9CiAKKyAgICB2b2lkIHNldHVwU3R1YkFyZ3VtZW50czIzNChHUFJSZWcgYXJnMiwg
R1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAgICAgICAgc2V0dXBUaHJlZVN0dWJB
cmdzR1BSPEdQUkluZm86OmFyZ3VtZW50R1BSMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIzLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjQ+KGFyZzIsIGFyZzMsIGFyZzQpOworICAgIH0KKwogICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQ
UlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgVHJ1c3RlZEltbVB0ciBhcmc0KQogICAgIHsKICAgICAg
ICAgc2V0dXBUaHJlZVN0dWJBcmdzR1BSPEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIyLCBHUFJJbmZvOjphcmd1bWVudEdQUjM+KGFyZzEsIGFyZzIsIGFyZzMpOwpA
QCAtMTkzMiw3ICsxOTUzLDE0IEBAIGNsYXNzIENDYWxsSGVscGVycyA6IHB1YmxpYyBBc3NlbWJs
eUhlbHBlcnMgewogICAgICAgICBtb3ZlKGFyZzQsIEdQUkluZm86OmFyZ3VtZW50R1BSNCk7CiAg
ICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgfQotICAgIAorCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcg
YXJnMywgR1BSUmVnIGFyZzQpCisgICAgeworICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMyMzQo
YXJnMiwgYXJnMywgYXJnNCk7CisgICAgICAgIG1vdmUoYXJnMSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKKyAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIsIFRydXN0
ZWRJbW0zMiBhcmczLCBUcnVzdGVkSW1tMzIgYXJnNCkKICAgICB7CiAgICAgICAgIG1vdmUoYXJn
MiwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsgLy8gSW4gY2FzZSBhcmcyIGlzIGFyZ3VtZW50R1BS
MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCA5YWYzMzJlYjc4ZTE4OWFlNmE1M2Iy
MjM1MGFmNzdiNWY5ZDdlYjJiLi5mZGQ0Y2Q0ODhjNTg3YzcyNmQxYjRhYmZmMjNkYThjZGI1MWE5
YjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC02NzAsNyArNjcwLDggQEAgQ29t
cGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBl
ZmZvcnQpCiAgICAgICAgICAgICBiYWRUeXBlSnVtcCwKICAgICAgICAgICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm9baV0uYXJyYXlNb2RlLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5D
b2RlUHRyKGJhZFR5cGVKdW1wLCBkb25lVGFyZ2V0KSwKLSAgICAgICAgICAgIGRpZmZlcmVuY2VC
ZXR3ZWVuQ29kZVB0cihyZXR1cm5BZGRyZXNzLCBzbG93UGF0aFRhcmdldCkpOworICAgICAgICAg
ICAgZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKHJldHVybkFkZHJlc3MsIHNsb3dQYXRoVGFyZ2V0
KSwKKyAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uc3R1YkluZm8pOwogICAg
IH0KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9jYWxsQ29tcGlsYXRpb25JbmZvLnNp
emUoKTsgKytpKSB7CiAgICAgICAgIENhbGxDb21waWxhdGlvbkluZm8mIGNvbXBpbGF0aW9uSW5m
byA9IG1fY2FsbENvbXBpbGF0aW9uSW5mb1tpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4
IDAyMTM5NjM0YjFkZmVkNjEwNTYyZGVjYjU3OGRiMzhkNmIxNjAzNGUuLjdlMWU0NTdlNmZkNDRh
YjQzY2YyNTA5MjU2NDYwZjM0ZmU0Mjc5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAt
MTYzLDYgKzE2Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
TGFiZWwgZG9uZVRhcmdldDsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRo
VGFyZ2V0OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCByZXR1cm5BZGRyZXNzOworICAg
ICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8geyBudWxscHRyIH07CiAgICAgfTsKIAog
ICAgIHN0cnVjdCBDYWxsQ29tcGlsYXRpb25JbmZvIHsKQEAgLTY5Niw2ICs2OTcsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSiwgaW50LCBHUFJSZWcpOwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oV2l0aFByb2ZpbGVUYWcsIEpf
SklUT3BlcmF0aW9uX0VTc2lKSSwgaW50LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZywgVW5p
cXVlZFN0cmluZ0ltcGwqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihXaXRoUHJvZmlsZVRhZywgSl9KSVRPcGVyYXRpb25fRVNzaUpJLCBpbnQsIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgR1BSUmVnLCBHUFJSZWcpOwogI2Vsc2UKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZVRhZywgSl9KSVRPcGVyYXRpb25fRVNz
aUpJLCBpbnQsIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnLCBHUFJSZWcsIFVuaXF1ZWRTdHJp
bmdJbXBsKik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAKaW5kZXggYjVjNjgwODZkZDlhNzkwNWJjN2QxYmYw
MTE3MzhiNDBiNjYyMzdlYi4uNmE1ZmI5YzNiNjZiMGI4ZWExMGUyMjg3NmM5ZTI2M2UxMTMyOWM0
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNo
ZUdlbmVyYXRvci5jcHAKQEAgLTE3Niw2ICsxNzYsMzggQEAgVl9KSVRPcGVyYXRpb25fRVNzaUpK
SSBKSVRQdXRCeUlkR2VuZXJhdG9yOjpzbG93UGF0aEZ1bmN0aW9uKCkKICAgICByZXR1cm4gb3Bl
cmF0aW9uUHV0QnlJZE5vblN0cmljdE9wdGltaXplOwogfQogCitKSVRHZXRCeVZhbEdlbmVyYXRv
cjo6SklUR2V0QnlWYWxHZW5lcmF0b3IoCisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVP
cmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCisgICAg
SlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBpZGVudGlmaWVyLCBT
cGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlKQorICAgIDogSklUR2V0QnlJZEdlbmVyYXRvcihj
b2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCBzcGlsbE1v
ZGUpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKKyAgICBtX3N0dWJJbmZvLT5w
YXRjaC51c2VkUmVnaXN0ZXJzLnNldChpZGVudGlmaWVyKTsKKyAgICBtX3N0dWJJbmZvLT5wYXRj
aC5pZGVudGlmaWVyR1BSID0gc3RhdGljX2Nhc3Q8aW50OF90PihpZGVudGlmaWVyKTsKKyAgICBt
X3N0dWJJbmZvLT5ieVZhbCA9IHRydWU7Cit9CisKK3ZvaWQgSklUR2V0QnlWYWxHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3sKKyAgICBtX2lkZW50aWZp
ZXJDaGVjayA9IGppdC5wYXRjaGFibGVCcmFuY2hQdHJXaXRoUGF0Y2goCisgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpOb3RFcXVhbCwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9p
ZGVudGlmaWVyKSwKKyAgICAgICAgbV9pZGVudGlmaWVySW1tLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cigwKSk7CisgICAgZ2VuZXJhdGVGYXN0UGF0aENoZWNrcyhqaXQsIG1fdmFsdWUu
cGF5bG9hZEdQUigpKTsKKworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgbV9sb2FkT3JTdG9yZSA9
IGppdC5sb2FkNjRXaXRoQ29tcGFjdEFkZHJlc3NPZmZzZXRQYXRjaCgKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MobV92YWx1ZS5wYXlsb2FkR1BSKCksIDApLCBtX3ZhbHVlLnBheWxv
YWRHUFIoKSkubGFiZWwoKTsKKyNlbHNlCisgICAgbV90YWdMb2FkT3JTdG9yZSA9IGppdC5sb2Fk
MzJXaXRoQ29tcGFjdEFkZHJlc3NPZmZzZXRQYXRjaCgKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MobV92YWx1ZS5wYXlsb2FkR1BSKCksIDApLCBtX3ZhbHVlLnRhZ0dQUigpKS5sYWJl
bCgpOworICAgIG1fbG9hZE9yU3RvcmUgPSBqaXQubG9hZDMyV2l0aENvbXBhY3RBZGRyZXNzT2Zm
c2V0UGF0Y2goCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG1fdmFsdWUucGF5bG9h
ZEdQUigpLCAwKSwgbV92YWx1ZS5wYXlsb2FkR1BSKCkpLmxhYmVsKCk7CisjZW5kaWYKKworICAg
IG1fZG9uZSA9IGppdC5sYWJlbCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlm
IC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZUNhY2hlR2VuZXJhdG9yLmgKaW5kZXggMTJmNzUzNGY2NDc4NjcxY2Y1YTEyMWU5ZDhkOTMw
MDdhNGZhODk0NC4uOTk4OTk0MGMwZDU2OWY5ZTMwYWY5YTg1MjNiNmNlOGQ1Y2I5MjhiNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0
b3IuaApAQCAtNzgsNiArNzgsOCBAQCBjbGFzcyBKSVRCeUlkR2VuZXJhdG9yIDogcHVibGljIEpJ
VElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICBKU1ZhbHVlUmVncyBtX2Jhc2U7CiAgICAgSlNW
YWx1ZVJlZ3MgbV92YWx1ZTsKICAgICAKKyAgICBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsUHRy
IG1faWRlbnRpZmllckltbTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBtX2lk
ZW50aWZpZXJDaGVjazsKICAgICBNYWNyb0Fzc2VtYmxlcjo6RGF0YUxhYmVsMzIgbV9zdHJ1Y3R1
cmVJbW07CiAgICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zdHJ1Y3R1cmVDaGVj
azsKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q29udmVydGlibGVMb2FkTGFiZWwgbV9wcm9wZXJ0eVN0
b3JhZ2VMb2FkOwpAQCAtMTE5LDYgKzEyMSwzMCBAQCBjbGFzcyBKSVRQdXRCeUlkR2VuZXJhdG9y
IDogcHVibGljIEpJVEJ5SWRHZW5lcmF0b3IgewogICAgIFB1dEtpbmQgbV9wdXRLaW5kOwogfTsK
IAorY2xhc3MgSklUR2V0QnlWYWxHZW5lcmF0b3IgOiBwdWJsaWMgSklUR2V0QnlJZEdlbmVyYXRv
ciB7CitwdWJsaWM6CisgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IoKSA6IEpJVEdldEJ5SWRHZW5l
cmF0b3IoKSB7IH0KKworICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yKAorICAgICAgICBDb2RlQmxv
Y2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYsIEpTVmFsdWVSZWdzIGJhc2UsCisg
ICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgaWRlbnRpZmllciwgU3BpbGxSZWdpc3Rl
cnNNb2RlIHNwaWxsTW9kZSk7CisKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3Nl
bWJsZXImKTsKKworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93UGF0aEp1bXBzKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBqdW1wTGlzdDsK
KyAgICAgICAganVtcExpc3QuYXBwZW5kKG1fc3RydWN0dXJlQ2hlY2subV9qdW1wKTsKKyAgICAg
ICAganVtcExpc3QuYXBwZW5kKG1faWRlbnRpZmllckNoZWNrLm1fanVtcCk7CisgICAgICAgIHJl
dHVybiBqdW1wTGlzdDsKKyAgICB9CisKKyAgICBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJIHNsb3dQ
YXRoRnVuY3Rpb24oKTsKKworcHJpdmF0ZToKKyAgICBHUFJSZWcgbV9pZGVudGlmaWVyOworfTsK
KwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCBhNDk0ODRhM2U4MDNiYzhhNDc1OTI2NTE0
YjEwYjBmMWZlMTk4MDczLi5lMWQ5NjdhODQ2YmM0NWNjYTZlM2FiNmQ4MTBlMzJjZDFjNmYwMTk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtNDIzLDYgKzQyMywx
MiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVAogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQcm9maWxlKG9wZXJhdGlvbiwgZHN0KTsK
IH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oSklUOjpXaXRoUHJvZmlsZVRhZywgSl9KSVRPcGVyYXRpb25fRVNzaUpJIG9wZXJhdGlvbiwg
aW50IGRzdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBHUFJSZWcgYXJnMSwgR1BSUmVn
IGFyZzIpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIo
c3R1YkluZm8pLCBhcmcxLCBhcmcyKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRp
b25DaGVja1NldEpTVmFsdWVSZXN1bHRXaXRoUHJvZmlsZShvcGVyYXRpb24sIGRzdCk7Cit9CisK
IEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpJ
VDo6V2l0aFByb2ZpbGVUYWcsIEpfSklUT3BlcmF0aW9uX0VKSiBvcGVyYXRpb24sIGludCBkc3Qs
IEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoYXJnMSwgYXJnMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcAppbmRleCA0YjU4YjQ0ZDAwNDJkMjdiMjRjMDNjY2ZkNmNjYWY5OGRhYTc4MzFhLi4z
OWFlNTMxZjcxMzUxOGYwYzEzMWRkODUxMzNhOWVlYzEyOWEzMTZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTE1NTUsNyArMTU1NSwzNSBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsRGVmYXVsdChFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKUwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQot
ICAgIAorCisjaWYgMAorICAgIGlmIChzdWJzY3JpcHQuaXNTdHJpbmcoKSB8fCBzdWJzY3JpcHQu
aXNTeW1ib2woKSkgeworICAgICAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IHVpZDsKKyAg
ICAgICAgaWYgKHN1YnNjcmlwdC5pc1N5bWJvbCgpKQorICAgICAgICAgICAgdWlkID0gYXNTeW1i
b2woc3Vic2NyaXB0KS0+cHJpdmF0ZU5hbWUoKS51aWQoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdWlkID0gYXNTdHJpbmcoc3Vic2NyaXB0KS0+dG9FeGlzdGluZ0F0b21pY1N0cmluZyhl
eGVjKTsKKworICAgICAgICBpZiAodWlkKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29k
ZU9mZnNldCA9IGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOworICAgICAgICAgICAg
QVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZv
ID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwor
ICAgICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gYnlWYWxJbmZvLnN0dWJJ
bmZvOworICAgICAgICAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJv
bVVpZChleGVjLCB1aWQuZ2V0KCkpOworCisgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChi
YXNlVmFsdWUpOworICAgICAgICAgICAgYm9vbCBoYXNSZXN1bHQgPSBiYXNlVmFsdWUuZ2V0UHJv
cGVydHlTbG90KGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOworCisgICAgICAgICAgICBpZiAoc3R1
YkluZm8tPnNlZW4pCisgICAgICAgICAgICAgICAgcmVwYXRjaEdldEJ5SUQoZXhlYywgYmFzZVZh
bHVlLCBpZGVudGlmaWVyLCBzbG90LCAqc3R1YkluZm8pOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHN0dWJJbmZvLT5zZWVuID0gdHJ1ZTsKKworICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShoYXNSZXN1bHQgPyBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50aWZp
ZXIpIDoganNVbmRlZmluZWQoKSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKwogICAgIEpT
VmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGFycmF5
UHJvZmlsZSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IGMwYTU0YjdmOTM2NGZkMTdiNTRkYmQy
Yzg0ZTBjMjdkOTNmZjc2NmMuLmU1MWIxZDZmNDA0MzczNmEyMGNlMmMxMzNhMjc5ZGJmYzBkYzZh
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mu
Y3BwCkBAIC0xMDAsNiArMTAwLDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9
IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKICAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVycyhiYXNlLCByZWdUMCwgcHJvcGVydHksIHJlZ1QxKTsKKyAgICBlbWl0
SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOworCiAgICAgZW1pdEp1bXBTbG93
Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CiAKICAgICAvLyBUaGlzIGlzIHRlY2hu
aWNhbGx5IGluY29ycmVjdCAtIHdlJ3JlIHplcm8tZXh0ZW5kaW5nIGFuIGludDMyLiAgT24gdGhl
IGhvdCBwYXRoIHRoaXMgZG9lc24ndCBtYXR0ZXIuCkBAIC0xMTAsNyArMTEyLDYgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgIC8vIGV4dGVuZGluZyBzaW5jZSBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2
YWx1ZSBpbiB0aGUgc2xvdyBjYXNlLgogICAgIHplcm9FeHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdU
MSk7CiAKLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOwogICAg
IGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwog
ICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QyKTsKIApAQCAt
MjAxLDEwICsyMDIsNDMgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgYmFzZSA9
IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Ci0gICAgCi0gICAgbGlua1Ns
b3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjaworCiAgICAgbGlua1Nsb3dDYXNl
SWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjawogICAgIEp1bXAgbm9u
Q2VsbCA9IGp1bXAoKTsKKworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50
MzIgY2hlY2sKKworICAgIC8vIHJlZ1QwIGFuZCByZWdUMSBtdXN0IG5vdCBiZSBicm9rZW4uCisg
ICAgSnVtcExpc3QgZmFpbHVyZUNhc2VzOworICAgIHsKKyAgICAgICAgZmFpbHVyZUNhc2VzLmFw
cGVuZChlbWl0SnVtcElmTm90SlNDZWxsKHJlZ1QxKSk7CisgICAgICAgIEp1bXAgaXNTeW1ib2wg
PSBicmFuY2hTdHJ1Y3R1cmUoRXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJl
SURPZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQoKSk7CisgICAgICAgIGZhaWx1
cmVDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QxLCBK
U0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkp
KTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1
ZSgpKSwgcmVnVDEpOworICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIo
WmVybywgcmVnVDEpKTsKKyAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChicmFuY2hUZXN0MzIo
WmVybywgQWRkcmVzcyhyZWdUMSwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJ
bW0zMihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAgICAgICAgSnVtcCBpc1N0cmlu
ZyA9IGp1bXAoKTsKKyAgICAgICAgaXNTeW1ib2wubGluayh0aGlzKTsKKyAgICAgICAgbG9hZFB0
cihBZGRyZXNzKHJlZ1QxLCBTeW1ib2w6Om9mZnNldE9mVmFsdWUoKSksIHJlZ1QxKTsKKyAgICAg
ICAgaXNTdHJpbmcubGluayh0aGlzKTsKKyAgICB9CisKKyAgICAvLyByZWdUMSBob2xkcyBSZWZQ
dHI8VW5pcXVlZFN0cmluZ0ltcGw+IGNvbXBhdGlibGUgc3RydWN0dXJlLgorICAgIEpJVEdldEJ5
VmFsR2VuZXJhdG9yIGdlbigKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRl
Y29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpT
VmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCByZWdUMSwgRG9udFNwaWxsKTsK
KyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisgICAgSnVtcExpc3Qgc3VjY2Vzc0Nh
c2VzOworICAgIHN1Y2Nlc3NDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIHsKKyAgICAgICAg
Z2VuLnNsb3dQYXRoSnVtcHMoKS5saW5rKHRoaXMpOworICAgICAgICBMYWJlbCBzbG93UGF0aCA9
IGxhYmVsKCk7CisgICAgICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oV2l0aFByb2ZpbGUs
IG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgZHN0LCBnZW4uc3R1YkluZm8oKSwgcmVnVDAsIHJl
Z1QxKTsKKyAgICAgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChzbG93UGF0aCwgY2FsbCk7Cisg
ICAgICAgIHN1Y2Nlc3NDYXNlcy5hcHBlbmQoanVtcCgpKTsKKyAgICB9CisKICAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKICAgICBKdW1wIG5vdFN0cmluZyA9IGJy
YW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgCiAgICAgICAgIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6
c3RydWN0dXJlSURPZmZzZXQoKSksIApAQCAtMjE5LDE1ICsyNTMsMTkgQEAgdm9pZCBKSVQ6OmVt
aXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXMKICAgICAKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHZlY3RvciBsZW5n
dGggY2hlY2sKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGVtcHR5IHZhbHVlCi0gICAgCisg
ICAgZmFpbHVyZUNhc2VzLmxpbmsodGhpcyk7CisKICAgICBMYWJlbCBzbG93UGF0aCA9IGxhYmVs
KCk7CiAgICAgCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNlLCByZWdUMCk7CiAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm9wZXJ0eSwgcmVnVDEpOwogICAgIENhbGwgY2FsbCA9
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxEZWZhdWx0LCBkc3QsIHJlZ1QwLCByZWdU
MSwgcHJvZmlsZSk7CiAKKyAgICBzdWNjZXNzQ2FzZXMubGluayh0aGlzKTsKKwogICAgIG1fYnlW
YWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0
ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rp
b25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5m
b1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc3R1YkluZm8gPSBnZW4uc3R1YkluZm8oKTsKICAg
ICBtX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleCsrOwogCiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJpdmF0ZU5h
bWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ByaXZhdGVOYW1lLmgKaW5kZXgg
MmI2YmEwMTdkYjY3MDBkNWUxOTYwODg5YmM3YjQ3ZTViZTk0ZDkxNC4uZDcwZTA4ZGZmNzk4Y2Q1
NDk5MDRkYmY1ZDNhNmI5OGYyM2I2MWJkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJpdmF0ZU5hbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcml2YXRlTmFtZS5oCkBAIC01Nyw2ICs1Nyw5IEBAIGNsYXNzIFByaXZhdGVOYW1lIHsK
ICAgICBSZWZQdHI8U3ltYm9sSW1wbD4gbV91aWQ7CiB9OwogCitzdGF0aWNfYXNzZXJ0KHNpemVv
ZihQcml2YXRlTmFtZSkgPT0gc2l6ZW9mKFJlZlB0cjxTeW1ib2xJbXBsPiksICJUaGUgZmllbGQg
b2YgUHJpdmF0ZU5hbWUgaXMgbGltaXRlZCB0byBSZWZQdHI8U3ltYm9sSW1wbD4iKTsKK3N0YXRp
Y19hc3NlcnQoc2l6ZW9mKFByaXZhdGVOYW1lKSA9PSBzaXplb2YoU3RyaW5nKSwgIlRoZSBmaWVs
ZCBvZiBQcml2YXRlTmFtZSBpcyB0aGUgc2FtZSB0byBTdHJpbmciKTsKKwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggZTU3OTBkNzg3MjI2YmVh
NzYwMjRjOWQxZDY2YTY3NjBmNjRkZTVhMi4uY2Q0NzAxNGQyY2U5NGU5MTA4NDkwNWIyMmIxMDdm
Yzg1ZDhjMDYyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3lt
Ym9sLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTc5
LDYgKzc5LDggQEAgY2xhc3MgU3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNP
YmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAg
ZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCisgICAgc3RhdGljIHNpemVfdCBv
ZmZzZXRPZlZhbHVlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN5bWJvbCwgbV9wcml2YXRl
TmFtZSk7IH0KKwogcHJvdGVjdGVkOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257942</attachid>
            <date>2015-07-31 12:27:07 -0700</date>
            <delta_ts>2015-08-02 01:24:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150731122705.patch</filename>
            <type>text/plain</type>
            <size>35022</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YmRmMDg4NDgwNzk5MTlhMTQ4ODE2M2Y4MTc1M2UzYWNjNTE5MWRmLi45MDQ0ZjljYTJhYzYyZTk5
OTJjMjI4NzM2NmE2MTRkYTU4ZmNhYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAxNS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL1BvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdC5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjpT
dHJ1Y3R1cmVTdHViSW5mbyk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAg
ICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNl
dHVwU3R1YkFyZ3VtZW50czIzNCk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChK
U0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAg
KiBqaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKSVRHZXRC
eVZhbEdlbmVyYXRvcjo6SklUR2V0QnlWYWxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRH
ZXRCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVElu
bGluZUNhY2hlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpJVEdldEJ5VmFsR2VuZXJhdG9y
OjpKSVRHZXRCeVZhbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVEdldEJ5VmFsR2VuZXJh
dG9yOjpzbG93UGF0aEp1bXBzKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25z
LmNwcDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3df
b3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgICogcnVudGltZS9Qcml2YXRlTmFtZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvU3ltYm9sLmg6CisKIDIwMTUtMDctMzAgIFN1a29sc2FrIFNha3NodXdvbmcg
IDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgQWRkIHRoZSAid2FzbSIgZGlyZWN0b3J5
IHRvIHRoZSBBZGRpdGlvbmFsIEluY2x1ZGUgRGlyZWN0b3JpZXMgZm9yIGpzYy5leGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAppbmRleCBkOTg4NTE2MTMyNThh
NzFiOWYwNGJhNDkwNzNmNDQwMzNlNTcxMDgzLi4xYjAxMzU0ZDFmYjhhZDIyNWVmMWM2NWVhNTg5
NzU1N2FmNmU0OTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QnlWYWxJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5m
by5oCkBAIC0xOTksMTYgKzE5OSwxOSBAQCBpbmxpbmUgSklUQXJyYXlNb2RlIGppdEFycmF5TW9k
ZUZvclN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICByZXR1cm4gaml0QXJyYXlN
b2RlRm9yQ2xhc3NJbmZvKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkpOwogfQogCitzdHJ1Y3QgU3Ry
dWN0dXJlU3R1YkluZm87CisKIHN0cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFsSW5mbygpIHsg
fQogICAgIAotICAgIEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRp
b25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5
cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorICAgIEJ5VmFs
SW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1w
LCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQx
Nl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8p
CiAgICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQogICAgICAgICAsIGJhZFR5
cGVKdW1wKGJhZFR5cGVKdW1wKQogICAgICAgICAsIGFycmF5TW9kZShhcnJheU1vZGUpCiAgICAg
ICAgICwgYmFkVHlwZUp1bXBUb0RvbmUoYmFkVHlwZUp1bXBUb0RvbmUpCiAgICAgICAgICwgcmV0
dXJuQWRkcmVzc1RvU2xvd1BhdGgocmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgICwg
c2xvd1BhdGhDb3VudCgwKQorICAgICAgICAsIHN0dWJJbmZvKHN0dWJJbmZvKQogICAgIHsKICAg
ICB9CiAgICAgCkBAIC0yMTksNiArMjIyLDcgQEAgc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgaW50
MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aDsKICAgICB1bnNpZ25lZCBzbG93UGF0aENvdW50
OwogICAgIFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmU7CisgICAgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvOwogfTsKIAogaW5saW5lIHVuc2lnbmVkIGdldEJ5VmFsSW5mb0J5
dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzU3RydWN0dXJlTGlzdC5o
CmluZGV4IGY4YjY0NzUwY2VkZGYxMjkyOGI4ZTljMjBhODRhZGU3MDExMTUyNzguLjQyNDg4YTVl
YTZmNTA0ZWVkMzgyN2Y3NzQxODc3OWQ4NzA2MGI0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzc1N0cnVjdHVyZUxpc3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1
cmVMaXN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RydWN0IFBvbHltb3JwaGljQWNjZXNzU3RydWN0
dXJlTGlzdCB7CiAgICAgICAgIGJvb2wgaXNEaXJlY3QgOiAxOwogICAgICAgICB1bnNpZ25lZCBj
b3VudCA6IDMxOwogICAgICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOwor
ICAgICAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IGlkZW50aWZpZXJGb3JWYWw7CiAgICAg
ICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IGJhc2U7CiAgICAgICAgIFdyaXRlQmFycmllcjxT
dHJ1Y3R1cmVDaGFpbj4gY2hhaW47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0dldEJ5SWRMaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0dldEJ5SWRMaXN0LmNwcAppbmRleCBjMWU1ZTY3NTg0
NzY5YzVhZTIzZmMxNDUzYzE1ZGE0YWUyYzQ2MGFiLi41MzlkOTNjZWRhM2ZiOTNhMmY0MmRhOWE1
ODNiMmQwYzU5NjFhMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUG9seW1vcnBoaWNHZXRCeUlkTGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1BvbHltb3JwaGljR2V0QnlJZExpc3QuY3BwCkBAIC0zNywxMSArMzcsMTIgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKIEdldEJ5SWRBY2Nlc3M6OkdldEJ5SWRBY2Nlc3MoCiAgICAgVk0m
IHZtLCBKU0NlbGwqIG93bmVyLCBBY2Nlc3NUeXBlIHR5cGUsIFBhc3NSZWZQdHI8SklUU3R1YlJv
dXRpbmU+IHN0dWJSb3V0aW5lLAotICAgIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJ1Y3R1cmVD
aGFpbiogY2hhaW4sIHVuc2lnbmVkIGNoYWluQ291bnQpCisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFN0cnVjdHVyZUNoYWluKiBjaGFpbiwg
dW5zaWduZWQgY2hhaW5Db3VudCkKICAgICA6IG1fdHlwZSh0eXBlKQogICAgICwgbV9jaGFpbkNv
dW50KGNoYWluQ291bnQpCiAgICAgLCBtX3N0cnVjdHVyZSh2bSwgb3duZXIsIHN0cnVjdHVyZSkK
ICAgICAsIG1fc3R1YlJvdXRpbmUoc3R1YlJvdXRpbmUpCisgICAgLCBtX2lkZW50aWZpZXIoaWRl
bnRpZmllcikKIHsKICAgICBpZiAoY2hhaW4pCiAgICAgICAgIG1fY2hhaW4uc2V0KHZtLCBvd25l
ciwgY2hhaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Bv
bHltb3JwaGljR2V0QnlJZExpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
b2x5bW9ycGhpY0dldEJ5SWRMaXN0LmgKaW5kZXggNDg2N2Q0M2RmNTUzNDJmOWIwZWI4ODk0ZTJm
ZTU4OWNjODViYjE4Mi4uZjVmYTg2ZGFkN2UzM2Q4ZWYxNzY3NTc0NjQ2NDlmMDc1MDVhNjc1MiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljR2V0
QnlJZExpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBo
aWNHZXRCeUlkTGlzdC5oCkBAIC01OSw3ICs1OSw3IEBAIGNsYXNzIEdldEJ5SWRBY2Nlc3Mgewog
ICAgIAogICAgIEdldEJ5SWRBY2Nlc3MoCiAgICAgICAgIFZNJiwgSlNDZWxsKiBvd25lciwgQWNj
ZXNzVHlwZSwgUGFzc1JlZlB0cjxKSVRTdHViUm91dGluZT4sIFN0cnVjdHVyZSosCi0gICAgICAg
IFN0cnVjdHVyZUNoYWluKiA9IDAsIHVuc2lnbmVkIGNoYWluQ291bnQgPSAwKTsKKyAgICAgICAg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgU3RydWN0dXJlQ2hhaW4qID0gMCwgdW5zaWdu
ZWQgY2hhaW5Db3VudCA9IDApOwogICAgIAogICAgIH5HZXRCeUlkQWNjZXNzKCk7CiAgICAgCkBA
IC05NSw2ICs5NSw3IEBAIGNsYXNzIEdldEJ5SWRBY2Nlc3MgewogICAgIFdyaXRlQmFycmllcjxT
dHJ1Y3R1cmU+IG1fc3RydWN0dXJlOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmVDaGFpbj4g
bV9jaGFpbjsKICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+IG1fc3R1YlJvdXRpbmU7CisgICAg
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiB9OwogCiBjbGFzcyBQb2x5bW9ycGhpY0dldEJ5SWRM
aXN0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1
cmVTdHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmgKaW5kZXggZDQwMmFjZWU1NzkzYmI0Zjc4NjY5NTE3MTY0MTQ4ZThhN2EyNzFjOC4u
YTczY2UwYjM3ODliNzlkYmQ2MGNlNDYyMzhlNjNiYzYzNTVhYzI1OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAgLTk1LDYg
Kzk1LDcgQEAgc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvIHsKICAgICAgICAgLCBzZWVuKGZhbHNl
KQogICAgICAgICAsIHJlc2V0QnlHQyhmYWxzZSkKICAgICAgICAgLCB0b29rU2xvd1BhdGgoZmFs
c2UpCisgICAgICAgICwgYnlWYWwoZmFsc2UpCiAgICAgewogICAgIH0KIApAQCAtMTA1LDYgKzEw
NiwxMiBAQCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm8gewogICAgICAgICB1LmdldEJ5SWRTZWxm
LmJhc2VPYmplY3RTdHJ1Y3R1cmUuc2V0KHZtLCBvd25lciwgYmFzZU9iamVjdFN0cnVjdHVyZSk7
CiAgICAgfQogCisgICAgdm9pZCBpbml0R2V0QnlWYWxTZWxmKFZNJiB2bSwgSlNDZWxsKiBvd25l
ciwgU3RydWN0dXJlKiBiYXNlT2JqZWN0U3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpCisgICAgeworICAgICAgICBpbml0R2V0QnlJZFNlbGYodm0sIG93bmVyLCBiYXNl
T2JqZWN0U3RydWN0dXJlKTsKKyAgICAgICAgaWRlbnRpZmllckZvckJ5VmFsID0gcHJvcGVydHlO
YW1lOworICAgIH0KKwogICAgIHZvaWQgaW5pdEdldEJ5SWRMaXN0KFBvbHltb3JwaGljR2V0QnlJ
ZExpc3QqIGxpc3QpCiAgICAgewogICAgICAgICBhY2Nlc3NUeXBlID0gYWNjZXNzX2dldF9ieV9p
ZF9saXN0OwpAQCAtMTg1LDYgKzE5Miw3IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAg
ICAgYm9vbCBzZWVuIDogMTsKICAgICBib29sIHJlc2V0QnlHQyA6IDE7CiAgICAgYm9vbCB0b29r
U2xvd1BhdGggOiAxOworICAgIGJvb2wgYnlWYWwgOiAxOwogCiAgICAgQ29kZU9yaWdpbiBjb2Rl
T3JpZ2luOwogCkBAIC0xOTUsMTEgKzIwMywxMyBAQCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm8g
ewogICAgICAgICBpbnQ4X3QgdmFsdWVUYWdHUFI7CiAjZW5kaWYKICAgICAgICAgaW50OF90IHZh
bHVlR1BSOworICAgICAgICBpbnQ4X3QgaWRlbnRpZmllckdQUjsKICAgICAgICAgUmVnaXN0ZXJT
ZXQgdXNlZFJlZ2lzdGVyczsKICAgICAgICAgaW50MzJfdCBkZWx0YUNhbGxUb0RvbmU7CiAgICAg
ICAgIGludDMyX3QgZGVsdGFDYWxsVG9TdG9yYWdlTG9hZDsKICAgICAgICAgaW50MzJfdCBkZWx0
YUNhbGxUb0p1bXA7CiAgICAgICAgIGludDMyX3QgZGVsdGFDYWxsVG9TbG93Q2FzZTsKKyAgICAg
ICAgaW50MzJfdCBkZWx0YUNoZWNrSWRlbnRpZmllckltbVRvQ2FsbDsKICAgICAgICAgaW50MzJf
dCBkZWx0YUNoZWNrSW1tVG9DYWxsOwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIGludDMy
X3QgZGVsdGFDYWxsVG9Mb2FkT3JTdG9yZTsKQEAgLTI1MCw2ICsyNjAsNyBAQCBzdHJ1Y3QgU3Ry
dWN0dXJlU3R1YkluZm8gewogICAgIFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmU7
CiAgICAgQ29kZUxvY2F0aW9uQ2FsbCBjYWxsUmV0dXJuTG9jYXRpb247CiAgICAgUmVmUHRyPFdh
dGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbz4gd2F0Y2hwb2ludHM7CisgICAgSWRlbnRpZmll
ciBpZGVudGlmaWVyRm9yQnlWYWw7CiB9OwogCiBpbmxpbmUgQ29kZU9yaWdpbiBnZXRTdHJ1Y3R1
cmVTdHViSW5mb0NvZGVPcmlnaW4oU3RydWN0dXJlU3R1YkluZm8mIHN0cnVjdHVyZVN0dWJJbmZv
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4
IGE1YzQ0NTQ3ZGE2NGJjMmI2M2YwNzNhMTcxMWU2YTExODA2ZjU5NWIuLmRjMDE4ZWU4ZGZkYmIw
MTk1OTMxOTI0MDE5MjhjYTU2M2E3YWQ1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTE0NTYsNiArMTQ1NiwxMSBAQCBjbGFzcyBTcGVj
dWxhdGl2ZUpJVCB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShU
cnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwgYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cih1aWQpKTsK
ICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsK
ICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FU3NpSkpJIG9wZXJhdGlvbiwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBHUFJSZWcg
YXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCBhcmcxLCBh
cmcyLCBhcmczKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2so
b3BlcmF0aW9uKTsKKyAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihW
X0pJVE9wZXJhdGlvbl9FSkpKIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBH
UFJSZWcgYXJnMykKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVs
cGVycy5oCmluZGV4IDVmYTZiNTM2MmRlOTg3YzMwM2IwZmEwMTY1MjYwZDAxYTE2YjBmZjguLjQz
ZTVjMjE4NThjMzQwNmU3MzljZGQxODkxN2JhOGU4NWRlZTVjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtNjQ1LDYgKzY0NSwxNiBAQCBjbGFzcyBDQ2Fs
bEhlbHBlcnMgOiBwdWJsaWMgQXNzZW1ibHlIZWxwZXJzIHsKICAgICAgICAgYWRkQ2FsbEFyZ3Vt
ZW50KGFyZzQpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0ciBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFy
ZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7Cisg
ICAgICAgIGFkZENhbGxBcmd1bWVudChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAg
ICAgIGFkZENhbGxBcmd1bWVudChhcmcxKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIp
OworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMyk7CisgICAgICAgIGFkZENhbGxBcmd1bWVu
dChhcmc0KTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIsIFRydXN0ZWRJbW0z
MiBhcmczLCBUcnVzdGVkSW1tUHRyIGFyZzQpCiAgICAgewogICAgICAgICByZXNldENhbGxBcmd1
bWVudHMoKTsKQEAgLTE1MTUsNiArMTUyNSwxMiBAQCBjbGFzcyBDQ2FsbEhlbHBlcnMgOiBwdWJs
aWMgQXNzZW1ibHlIZWxwZXJzIHsKICAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KGFyZzEsIGFyZzIsIGFyZzMpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0ciBhcmcxLCBHUFJSZWcgYXJnMiwg
R1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAgICAgICAgcG9rZShhcmc0LCBQT0tF
X0FSR1VNRU5UX09GRlNFVCk7CisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShh
cmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIsIEdQ
UlJlZyBhcmczLCBUcnVzdGVkSW1tUHRyIGFyZzQpCiAgICAgewogICAgICAgICBwb2tlKGFyZzQs
IFBPS0VfQVJHVU1FTlRfT0ZGU0VUKTsKQEAgLTE5MDMsNiArMTkxOSwxMSBAQCBjbGFzcyBDQ2Fs
bEhlbHBlcnMgOiBwdWJsaWMgQXNzZW1ibHlIZWxwZXJzIHsKICAgICAgICAgc2V0dXBUaHJlZVN0
dWJBcmdzR1BSPEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIzLCBH
UFJJbmZvOjphcmd1bWVudEdQUjQ+KGFyZzEsIGFyZzMsIGFyZzQpOwogICAgIH0KIAorICAgIHZv
aWQgc2V0dXBTdHViQXJndW1lbnRzMjM0KEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgR1BSUmVn
IGFyZzQpCisgICAgeworICAgICAgICBzZXR1cFRocmVlU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJn
dW1lbnRHUFIyLCBHUFJJbmZvOjphcmd1bWVudEdQUjMsIEdQUkluZm86OmFyZ3VtZW50R1BSND4o
YXJnMiwgYXJnMywgYXJnNCk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBh
cmczLCBUcnVzdGVkSW1tUHRyIGFyZzQpCiAgICAgewogICAgICAgICBzZXR1cFRocmVlU3R1YkFy
Z3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjIsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMz4oYXJnMSwgYXJnMiwgYXJnMyk7CkBAIC0xOTMyLDcgKzE5NTMsMTQg
QEAgY2xhc3MgQ0NhbGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiAgICAgICAg
IG1vdmUoYXJnNCwgR1BSSW5mbzo6YXJndW1lbnRHUFI0KTsKICAgICAgICAgbW92ZShHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICB9Ci0gICAg
CisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRy
dXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJSZWcgYXJnNCkK
KyAgICB7CisgICAgICAgIHNldHVwU3R1YkFyZ3VtZW50czIzNChhcmcyLCBhcmczLCBhcmc0KTsK
KyAgICAgICAgbW92ZShhcmcxLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBtb3Zl
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAg
IH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
VHJ1c3RlZEltbVB0ciBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbTMyIGFyZzMsIFRydXN0
ZWRJbW0zMiBhcmc0KQogICAgIHsKICAgICAgICAgbW92ZShhcmcyLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjIpOyAvLyBJbiBjYXNlIGFyZzIgaXMgYXJndW1lbnRHUFIxLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCmluZGV4IDlhZjMzMmViNzhlMTg5YWU2YTUzYjIyMzUwYWY3N2I1ZjlkN2ViMmIu
LmUzZGEwZGQ4ZWRkZjVlZGQ2MzI1Y2YyNDRhMzM1MjgyZDJhMDQ1NjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5jcHAKQEAgLTc5LDYgKzc5LDcgQEAgSklUOjpKSVQoVk0qIHZtLCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaykKICAgICAsIG1fYnl0ZWNvZGVPZmZzZXQoc3RkOjpudW1lcmljX2xpbWl0
czx1bnNpZ25lZD46Om1heCgpKQogICAgICwgbV9nZXRCeUlkSW5kZXgoVUlOVF9NQVgpCiAgICAg
LCBtX3B1dEJ5SWRJbmRleChVSU5UX01BWCkKKyAgICAsIG1fZ2V0QnlWYWxJbmRleChVSU5UX01B
WCkKICAgICAsIG1fYnlWYWxJbnN0cnVjdGlvbkluZGV4KFVJTlRfTUFYKQogICAgICwgbV9jYWxs
TGlua0luZm9JbmRleChVSU5UX01BWCkKICAgICAsIG1fcmFuZG9tR2VuZXJhdG9yKGNyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyKCkpCkBAIC0zNDQsNiArMzQ1LDcgQEAgdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKIAogICAgIG1fZ2V0QnlJZEluZGV4ID0gMDsKICAgICBt
X3B1dEJ5SWRJbmRleCA9IDA7CisgICAgbV9nZXRCeVZhbEluZGV4ID0gMDsKICAgICBtX2J5VmFs
SW5zdHJ1Y3Rpb25JbmRleCA9IDA7CiAgICAgbV9jYWxsTGlua0luZm9JbmRleCA9IDA7CiAgICAg
CkBAIC00NTQsNiArNDU2LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkK
IAogICAgIFJFTEVBU0VfQVNTRVJUKG1fZ2V0QnlJZEluZGV4ID09IG1fZ2V0QnlJZHMuc2l6ZSgp
KTsKICAgICBSRUxFQVNFX0FTU0VSVChtX3B1dEJ5SWRJbmRleCA9PSBtX3B1dEJ5SWRzLnNpemUo
KSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV9nZXRCeVZhbEluZGV4ID09IG1fZ2V0QnlWYWxzLnNp
emUoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9jYWxsTGlua0luZm9JbmRleCA9PSBtX2NhbGxD
b21waWxhdGlvbkluZm8uc2l6ZSgpKTsKICAgICBSRUxFQVNFX0FTU0VSVChudW1iZXJPZlZhbHVl
UHJvZmlsZXMgPT0gbV9jb2RlQmxvY2stPm51bWJlck9mVmFsdWVQcm9maWxlcygpKTsKIApAQCAt
NjU3LDYgKzY2MCw4IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklU
Q29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogICAgICAgICBtX2dldEJ5SWRzW2ldLmZpbmFsaXpl
KHBhdGNoQnVmZmVyKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3B1dEJ5SWRzLnNpemUoKTsg
aS0tOykKICAgICAgICAgbV9wdXRCeUlkc1tpXS5maW5hbGl6ZShwYXRjaEJ1ZmZlcik7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gbV9nZXRCeVZhbHMuc2l6ZSgpOyBpLS07KQorICAgICAgICBtX2dl
dEJ5VmFsc1tpXS5maW5hbGl6ZShwYXRjaEJ1ZmZlcik7CiAKICAgICBtX2NvZGVCbG9jay0+c2V0
TnVtYmVyT2ZCeVZhbEluZm9zKG1fYnlWYWxDb21waWxhdGlvbkluZm8uc2l6ZSgpKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5zaXplKCk7ICsr
aSkgewpAQCAtNjcwLDcgKzY3NSw4IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNv
bXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogICAgICAgICAgICAgYmFkVHlwZUp1
bXAsCiAgICAgICAgICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmFycmF5TW9kZSwKICAg
ICAgICAgICAgIGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihiYWRUeXBlSnVtcCwgZG9uZVRhcmdl
dCksCi0gICAgICAgICAgICBkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIocmV0dXJuQWRkcmVzcywg
c2xvd1BhdGhUYXJnZXQpKTsKKyAgICAgICAgICAgIGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihy
ZXR1cm5BZGRyZXNzLCBzbG93UGF0aFRhcmdldCksCisgICAgICAgICAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvW2ldLnN0dWJJbmZvKTsKICAgICB9CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1fY2FsbENvbXBpbGF0aW9uSW5mby5zaXplKCk7ICsraSkgewogICAgICAgICBDYWxsQ29t
cGlsYXRpb25JbmZvJiBjb21waWxhdGlvbkluZm8gPSBtX2NhbGxDb21waWxhdGlvbkluZm9baV07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCAwMjEzOTYzNGIxZGZlZDYxMDU2MmRlY2I1Nzhk
YjM4ZDZiMTYwMzRlLi45MzNhY2IwNzhlNzYyMDU2ODc3NWFiMTQyMWE5MWMzMDZkNGRiMDY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTE2Myw2ICsxNjMsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQ7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpMYWJlbCBzbG93UGF0aFRhcmdldDsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgcmV0dXJuQWRkcmVzczsKKyAgICAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvIHsgbnVsbHB0ciB9OwogICAgIH07CiAKICAgICBzdHJ1Y3QgQ2FsbENvbXBpbGF0aW9uSW5m
byB7CkBAIC02OTYsNiArNjk3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUosIGludCwgR1BSUmVn
KTsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFdpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlvbl9FU3NpSkksIGludCwgU3Ry
dWN0dXJlU3R1YkluZm8qLCBHUFJSZWcsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oV2l0aFByb2ZpbGVUYWcsIEpfSklUT3Bl
cmF0aW9uX0VTc2lKSSwgaW50LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZywgR1BSUmVnKTsK
ICNlbHNlCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oV2l0aFBy
b2ZpbGVUYWcsIEpfSklUT3BlcmF0aW9uX0VTc2lKSSwgaW50LCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEdQUlJlZywgR1BSUmVnLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogI2VuZGlmCkBAIC04MzAsNiAr
ODMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFZlY3RvcjxMYWJlbD4gbV9sYWJlbHM7
CiAgICAgICAgIFZlY3RvcjxKSVRHZXRCeUlkR2VuZXJhdG9yPiBtX2dldEJ5SWRzOwogICAgICAg
ICBWZWN0b3I8SklUUHV0QnlJZEdlbmVyYXRvcj4gbV9wdXRCeUlkczsKKyAgICAgICAgVmVjdG9y
PEpJVEdldEJ5VmFsR2VuZXJhdG9yPiBtX2dldEJ5VmFsczsKICAgICAgICAgVmVjdG9yPEJ5VmFs
Q29tcGlsYXRpb25JbmZvPiBtX2J5VmFsQ29tcGlsYXRpb25JbmZvOwogICAgICAgICBWZWN0b3I8
Q2FsbENvbXBpbGF0aW9uSW5mbz4gbV9jYWxsQ29tcGlsYXRpb25JbmZvOwogICAgICAgICBWZWN0
b3I8SnVtcFRhYmxlPiBtX2ptcFRhYmxlOwpAQCAtODQzLDYgKzg0Niw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHVuc2lnbmVkIG1fZ2V0QnlJZEluZGV4OwogICAgICAgICB1bnNpZ25l
ZCBtX3B1dEJ5SWRJbmRleDsKKyAgICAgICAgdW5zaWduZWQgbV9nZXRCeVZhbEluZGV4OwogICAg
ICAgICB1bnNpZ25lZCBtX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleDsKICAgICAgICAgdW5zaWduZWQg
bV9jYWxsTGlua0luZm9JbmRleDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAppbmRleCBiNWM2ODA4NmRkOWE3OTA1YmM3
ZDFiZjAxMTczOGI0MGI2NjIzN2ViLi5mMDM0NzZmYjVkODBkMzUyNGUzOTNlOGViZTllMDcxODU0
MmJlNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNh
Y2hlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZUNhY2hlR2VuZXJhdG9yLmNwcApAQCAtNjcsNiArNjcsOSBAQCBKSVRCeUlkR2VuZXJhdG9yOjpK
SVRCeUlkR2VuZXJhdG9yKAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgbV9zdHViSW5mby0+
cGF0Y2gudmFsdWVUYWdHUFIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KHZhbHVlLnRhZ0dQUigpKTsK
ICNlbmRpZgorICAgIG1fc3R1YkluZm8tPnBhdGNoLmlkZW50aWZpZXJHUFIgPSAtMTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PGludDhfdD4oSW52YWxpZEdQUlJlZykgPT0gLTEsICJJ
bnZhbGlkR1BSUmVnIGNhbiBoZWxkIGFzIC0xIHVuZGVyIHRoZSBpbnQ4X3QgY29udGV4dCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8R1BSUmVnPihzdGF0aWNfY2FzdDxpbnQ4X3Q+
KC0xKSkgPT0gSW52YWxpZEdQUlJlZywgIkludmFsaWRHUFJSZWcgY2FuIGhlbGQgYXMgLTEgdW5k
ZXIgdGhlIGludDhfdCBjb250ZXh0Iik7CiB9CiAKIHZvaWQgSklUQnlJZEdlbmVyYXRvcjo6Zmlu
YWxpemUoTGlua0J1ZmZlciYgZmFzdFBhdGgsIExpbmtCdWZmZXImIHNsb3dQYXRoKQpAQCAtMTc2
LDYgKzE3OSwzOCBAQCBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJIEpJVFB1dEJ5SWRHZW5lcmF0b3I6
OnNsb3dQYXRoRnVuY3Rpb24oKQogICAgIHJldHVybiBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0
T3B0aW1pemU7CiB9CiAKK0pJVEdldEJ5VmFsR2VuZXJhdG9yOjpKSVRHZXRCeVZhbEdlbmVyYXRv
cigKKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25z
dCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKKyAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1Zh
bHVlUmVncyB2YWx1ZSwgR1BSUmVnIGlkZW50aWZpZXIsIFNwaWxsUmVnaXN0ZXJzTW9kZSBzcGls
bE1vZGUpCisgICAgOiBKSVRHZXRCeUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgY29kZU9yaWdpbiwg
dXNlZFJlZ2lzdGVycywgYmFzZSwgdmFsdWUsIHNwaWxsTW9kZSkKKyAgICAsIG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQoreworICAgIG1fc3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3RlcnMuc2V0
KGlkZW50aWZpZXIpOworICAgIG1fc3R1YkluZm8tPnBhdGNoLmlkZW50aWZpZXJHUFIgPSBzdGF0
aWNfY2FzdDxpbnQ4X3Q+KGlkZW50aWZpZXIpOworICAgIG1fc3R1YkluZm8tPmJ5VmFsID0gdHJ1
ZTsKK30KKwordm9pZCBKSVRHZXRCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNy
b0Fzc2VtYmxlciYgaml0KQoreworICAgIG1faWRlbnRpZmllckNoZWNrID0gaml0LnBhdGNoYWJs
ZUJyYW5jaFB0cldpdGhQYXRjaCgKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLAor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtX2lkZW50aWZpZXIpLAorICAgICAgICBt
X2lkZW50aWZpZXJJbW0sIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKDApKTsKKyAgICBn
ZW5lcmF0ZUZhc3RQYXRoQ2hlY2tzKGppdCwgbV92YWx1ZS5wYXlsb2FkR1BSKCkpOworCisjaWYg
VVNFKEpTVkFMVUU2NCkKKyAgICBtX2xvYWRPclN0b3JlID0gaml0LmxvYWQ2NFdpdGhDb21wYWN0
QWRkcmVzc09mZnNldFBhdGNoKAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtX3Zh
bHVlLnBheWxvYWRHUFIoKSwgMCksIG1fdmFsdWUucGF5bG9hZEdQUigpKS5sYWJlbCgpOworI2Vs
c2UKKyAgICBtX3RhZ0xvYWRPclN0b3JlID0gaml0LmxvYWQzMldpdGhDb21wYWN0QWRkcmVzc09m
ZnNldFBhdGNoKAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtX3ZhbHVlLnBheWxv
YWRHUFIoKSwgMCksIG1fdmFsdWUudGFnR1BSKCkpLmxhYmVsKCk7CisgICAgbV9sb2FkT3JTdG9y
ZSA9IGppdC5sb2FkMzJXaXRoQ29tcGFjdEFkZHJlc3NPZmZzZXRQYXRjaCgKKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MobV92YWx1ZS5wYXlsb2FkR1BSKCksIDApLCBtX3ZhbHVlLnBh
eWxvYWRHUFIoKSkubGFiZWwoKTsKKyNlbmRpZgorCisgICAgbV9kb25lID0gaml0LmxhYmVsKCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaApp
bmRleCAxMmY3NTM0ZjY0Nzg2NzFjZjVhMTIxZTlkOGQ5MzAwN2E0ZmE4OTQ0Li45OTg5OTQwYzBk
NTY5ZjllMzBhZjlhODUyM2I2Y2U4ZDVjYjkyOGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCkBAIC03OCw2ICs3OCw4IEBA
IGNsYXNzIEpJVEJ5SWRHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3Ig
ewogICAgIEpTVmFsdWVSZWdzIG1fYmFzZTsKICAgICBKU1ZhbHVlUmVncyBtX3ZhbHVlOwogICAg
IAorICAgIE1hY3JvQXNzZW1ibGVyOjpEYXRhTGFiZWxQdHIgbV9pZGVudGlmaWVySW1tOworICAg
IE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG1faWRlbnRpZmllckNoZWNrOwogICAgIE1h
Y3JvQXNzZW1ibGVyOjpEYXRhTGFiZWwzMiBtX3N0cnVjdHVyZUltbTsKICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6UGF0Y2hhYmxlSnVtcCBtX3N0cnVjdHVyZUNoZWNrOwogICAgIE1hY3JvQXNzZW1ibGVy
OjpDb252ZXJ0aWJsZUxvYWRMYWJlbCBtX3Byb3BlcnR5U3RvcmFnZUxvYWQ7CkBAIC0xMTksNiAr
MTIxLDMwIEBAIGNsYXNzIEpJVFB1dEJ5SWRHZW5lcmF0b3IgOiBwdWJsaWMgSklUQnlJZEdlbmVy
YXRvciB7CiAgICAgUHV0S2luZCBtX3B1dEtpbmQ7CiB9OwogCitjbGFzcyBKSVRHZXRCeVZhbEdl
bmVyYXRvciA6IHB1YmxpYyBKSVRHZXRCeUlkR2VuZXJhdG9yIHsKK3B1YmxpYzoKKyAgICBKSVRH
ZXRCeVZhbEdlbmVyYXRvcigpIDogSklUR2V0QnlJZEdlbmVyYXRvcigpIHsgfQorCisgICAgSklU
R2V0QnlWYWxHZW5lcmF0b3IoCisgICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0
IFJlZ2lzdGVyU2V0JiwgSlNWYWx1ZVJlZ3MgYmFzZSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MgdmFs
dWUsIEdQUlJlZyBpZGVudGlmaWVyLCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlKTsKKwor
ICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworCisgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dQYXRoSnVtcHMoKSBjb25zdAorICAgIHsKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGp1bXBMaXN0OworICAgICAgICBqdW1wTGlzdC5hcHBl
bmQobV9zdHJ1Y3R1cmVDaGVjay5tX2p1bXApOworICAgICAgICBqdW1wTGlzdC5hcHBlbmQobV9p
ZGVudGlmaWVyQ2hlY2subV9qdW1wKTsKKyAgICAgICAgcmV0dXJuIGp1bXBMaXN0OworICAgIH0K
KworICAgIFZfSklUT3BlcmF0aW9uX0VTc2lKSkkgc2xvd1BhdGhGdW5jdGlvbigpOworCitwcml2
YXRlOgorICAgIEdQUlJlZyBtX2lkZW50aWZpZXI7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
cy5oCmluZGV4IGE0OTQ4NGEzZTgwM2JjOGE0NzU5MjY1MTRiMTBiMGYxZmUxOTgwNzMuLmUxZDk2
N2E4NDZiYzQ1Y2NhNmUzYWI2ZDgxMGUzMmNkMWM2ZjAxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oCkBAIC00MjMsNiArNDIzLDEyIEBAIEFMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpJVDo6V2l0aFByb2ZpbGVUYWcs
IEpfSklUCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVl
UmVzdWx0V2l0aFByb2ZpbGUob3BlcmF0aW9uLCBkc3QpOwogfQogCitBTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFn
LCBKX0pJVE9wZXJhdGlvbl9FU3NpSkkgb3BlcmF0aW9uLCBpbnQgZHN0LCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKK3sKKyAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihzdHViSW5mbyksIGFyZzEsIGFyZzIp
OworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3Vs
dFdpdGhQcm9maWxlKG9wZXJhdGlvbiwgZHN0KTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSklUOjpXaXRoUHJvZmlsZVRhZywgSl9K
SVRPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBh
cmcyKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDRiNThiNDRk
MDA0MmQyN2IyNGMwM2NjZmQ2Y2NhZjk4ZGFhNzgzMWEuLjQ3YmMxOWNhYTNhMDZhZTUyODMxNDI5
MzhkOGZlNmI4ZGQyYWNlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcApAQCAtMTU1NSwxMSArMTU1NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsRGVmYXVsdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
UwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIAorCiAgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9maWxl
LCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKIH0KLSAgICAKKwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3Jp
cHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3Bw
CmluZGV4IGMwYTU0YjdmOTM2NGZkMTdiNTRkYmQyYzg0ZTBjMjdkOTNmZjc2NmMuLjM5ODQ2Njcy
ZmUxZGQ0ODg2M2MzYmE3MGNlNjk2YzZlMWEzMDQ3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0xMDAsNiArMTAwLDggQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFy
cmF5UHJvZmlsZTsKICAgICAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhiYXNlLCByZWdU
MCwgcHJvcGVydHksIHJlZ1QxKTsKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVn
VDAsIGJhc2UpOworCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihy
ZWdUMSk7CiAKICAgICAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGluY29ycmVjdCAtIHdlJ3JlIHpl
cm8tZXh0ZW5kaW5nIGFuIGludDMyLiAgT24gdGhlIGhvdCBwYXRoIHRoaXMgZG9lc24ndCBtYXR0
ZXIuCkBAIC0xMTAsNyArMTEyLDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIC8vIGV4dGVuZGluZyBzaW5jZSBpdCBt
YWtlcyBpdCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2YWx1ZSBpbiB0aGUgc2xvdyBjYXNlLgogICAg
IHplcm9FeHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdUMSk7CiAKLSAgICBlbWl0SnVtcFNsb3dDYXNl
SWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOwogICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRo
Q2VsbChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRl
eGluZ1NoYXBlTWFzayksIHJlZ1QyKTsKIApAQCAtMjAxLDEwICsyMDIsNDMgQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdG9yPFNsb3dDYXMKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9w
ZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5h
cnJheVByb2ZpbGU7Ci0gICAgCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBp
bnQzMiBjaGVjaworCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8v
IGJhc2UgY2VsbCBjaGVjawogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKKworICAgIGxpbmtT
bG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKKworICAgIC8vIHJlZ1QwIGFu
ZCByZWdUMSBtdXN0IG5vdCBiZSBicm9rZW4uCisgICAgSnVtcExpc3QgZmFpbHVyZUNhc2VzOwor
ICAgIHsKKyAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChlbWl0SnVtcElmTm90SlNDZWxsKHJl
Z1QxKSk7CisgICAgICAgIEp1bXAgaXNTeW1ib2wgPSBicmFuY2hTdHJ1Y3R1cmUoRXF1YWwsIEFk
ZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0
cnVjdHVyZS5nZXQoKSk7CisgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0
dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkp
LCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNz
KHJlZ1QxLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDEpOworICAgICAgICBmYWls
dXJlQ2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEpKTsKKyAgICAgICAgZmFp
bHVyZUNhc2VzLmFwcGVuZChicmFuY2hUZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMSwgU3RyaW5n
SW1wbDo6ZmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXNBdG9t
aWMoKSkpKTsKKyAgICAgICAgSnVtcCBpc1N0cmluZyA9IGp1bXAoKTsKKyAgICAgICAgaXNTeW1i
b2wubGluayh0aGlzKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBTeW1ib2w6Om9m
ZnNldE9mVmFsdWUoKSksIHJlZ1QxKTsKKyAgICAgICAgaXNTdHJpbmcubGluayh0aGlzKTsKKyAg
ICB9CisKKyAgICAvLyByZWdUMSBob2xkcyBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IGNvbXBh
dGlibGUgc3RydWN0dXJlLgorICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdlbigKKyAgICAgICAg
bV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0Ojpz
cGVjaWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJl
Z3MocmVnVDApLCByZWdUMSwgRG9udFNwaWxsKTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgq
dGhpcyk7CisgICAgSnVtcExpc3Qgc3VjY2Vzc0Nhc2VzOworICAgIHN1Y2Nlc3NDYXNlcy5hcHBl
bmQoanVtcCgpKTsKKworICAgIHsKKyAgICAgICAgZ2VuLnNsb3dQYXRoSnVtcHMoKS5saW5rKHRo
aXMpOworICAgICAgICBMYWJlbCBzbG93UGF0aCA9IGxhYmVsKCk7CisgICAgICAgIENhbGwgY2Fs
bCA9IGNhbGxPcGVyYXRpb24oV2l0aFByb2ZpbGUsIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwg
ZHN0LCBnZW4uc3R1YkluZm8oKSwgcmVnVDAsIHJlZ1QxKTsKKyAgICAgICAgZ2VuLnJlcG9ydFNs
b3dQYXRoQ2FsbChzbG93UGF0aCwgY2FsbCk7CisgICAgICAgIHN1Y2Nlc3NDYXNlcy5hcHBlbmQo
anVtcCgpKTsKKyAgICB9CisKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkg
Y2hlY2sKICAgICBKdW1wIG5vdFN0cmluZyA9IGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgCiAg
ICAgICAgIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIApAQCAt
MjE5LDE2ICsyNTMsMjIgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICAKICAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIHZlY3RvciBsZW5ndGggY2hlY2sKICAgICBsaW5rU2xvd0Nhc2Uo
aXRlcik7IC8vIGVtcHR5IHZhbHVlCi0gICAgCisgICAgZmFpbHVyZUNhc2VzLmxpbmsodGhpcyk7
CisKICAgICBMYWJlbCBzbG93UGF0aCA9IGxhYmVsKCk7CiAgICAgCiAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihiYXNlLCByZWdUMCk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm9w
ZXJ0eSwgcmVnVDEpOwogICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0
QnlWYWxEZWZhdWx0LCBkc3QsIHJlZ1QwLCByZWdUMSwgcHJvZmlsZSk7CiAKKyAgICBzdWNjZXNz
Q2FzZXMubGluayh0aGlzKTsKKwogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbElu
c3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENv
bXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNh
bGw7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0u
c3R1YkluZm8gPSBnZW4uc3R1YkluZm8oKTsKICAgICBtX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleCsr
OworICAgIG1fZ2V0QnlWYWxzLmFwcGVuZChnZW4pOworICAgIG1fZ2V0QnlWYWxJbmRleCsrOwog
CiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
UmVwYXRjaC5jcHAKaW5kZXggZmUwZDA2MTQ5NTA4MzhlZTZhYWVkNWQ0OWE3MjM1YjliYzM0YmUz
YS4uMDg0NjI5NDkyNTAzNmM4MTRjN2RlMGI2MzU0MmYzNTE5NzlmMzUxNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCkBAIC0xMTMsNiArMTEzLDEwIEBAIHN0YXRpYyB2b2lk
IHJlcGF0Y2hCeUlkU2VsZkFjY2VzcygKICAgICAvLyBPbmx5IG9wdGltaXplIG9uY2UhCiAgICAg
cmVwYXRjaENhbGwocmVwYXRjaEJ1ZmZlciwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLCBz
bG93UGF0aEZ1bmN0aW9uKTsKIAorICAgIC8vIFBhdGNoIHRoZSBpZGVudGlmaWVyIGNoZWNrLgor
ICAgIGlmIChzdHViSW5mby5ieVZhbCkKKyAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZXBhdGNoKHN0
dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5kYXRhTGFiZWxQdHJBdE9mZnNldCgtKGludHB0cl90
KXN0dWJJbmZvLnBhdGNoLmRlbHRhQ2hlY2tJZGVudGlmaWVySW1tVG9DYWxsKSwgYml0d2lzZV9j
YXN0PHZvaWQqPihwcm9wZXJ0eU5hbWUuaW1wbCgpKSk7CisKICAgICAvLyBQYXRjaCB0aGUgc3Ry
dWN0dXJlIGNoZWNrICYgdGhlIG9mZnNldCBvZiB0aGUgbG9hZC4KICAgICByZXBhdGNoQnVmZmVy
LnJlcGF0Y2goc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmRhdGFMYWJlbDMyQXRPZmZzZXQo
LShpbnRwdHJfdClzdHViSW5mby5wYXRjaC5kZWx0YUNoZWNrSW1tVG9DYWxsKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KHN0cnVjdHVyZS0+aWQoKSkpOwogICAgIHJlcGF0Y2hCdWZmZXIuc2V0TG9h
ZEluc3RydWN0aW9uSXNBY3RpdmUoc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmNvbnZlcnRp
YmxlTG9hZEF0T2Zmc2V0KHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvU3RvcmFnZUxvYWQpLCBp
c091dE9mTGluZU9mZnNldChvZmZzZXQpKTsKQEAgLTE3Nyw3ICsxODEsNyBAQCBzdGF0aWMgdm9p
ZCBhZGRTdHJ1Y3R1cmVUcmFuc2l0aW9uQ2hlY2soCiAKIHN0YXRpYyB2b2lkIHJlcGxhY2VXaXRo
SnVtcChSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyLCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1
YkluZm8sIGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB0YXJnZXQpCiB7Ci0gICAgaWYgKE1h
Y3JvQXNzZW1ibGVyOjpjYW5KdW1wUmVwbGFjZVBhdGNoYWJsZUJyYW5jaDMyV2l0aFBhdGNoKCkp
IHsKKyAgICBpZiAoTWFjcm9Bc3NlbWJsZXI6OmNhbkp1bXBSZXBsYWNlUGF0Y2hhYmxlQnJhbmNo
MzJXaXRoUGF0Y2goKSAmJiAhc3R1YkluZm8uYnlWYWwpIHsKICAgICAgICAgcmVwYXRjaEJ1ZmZl
ci5yZXBsYWNlV2l0aEp1bXAoCiAgICAgICAgICAgICBSZXBhdGNoQnVmZmVyOjpzdGFydE9mUGF0
Y2hhYmxlQnJhbmNoMzJXaXRoUGF0Y2hPbkFkZHJlc3MoCiAgICAgICAgICAgICAgICAgc3R1Yklu
Zm8uY2FsbFJldHVybkxvY2F0aW9uLmRhdGFMYWJlbDMyQXRPZmZzZXQoCkBAIC0zMDgsNiArMzEy
LDcgQEAgc3RhdGljIGJvb2wgZ2VuZXJhdGVCeUlkU3R1YigKICAgICAgICAgc3RhdGljX2Nhc3Q8
R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1ZVRhZ0dQUiksCiAjZW5kaWYKICAgICAgICAgc3Rh
dGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1ZUdQUikpOworICAgIEdQUlJlZyBp
ZGVudGlmaWVyR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5pZGVudGlm
aWVyR1BSKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IFRlbXBSZWdpc3RlclNldChzdHViSW5m
by5wYXRjaC51c2VkUmVnaXN0ZXJzKS5nZXRGcmVlR1BSKCk7CiAgICAgYm9vbCBuZWVkVG9SZXN0
b3JlU2NyYXRjaCA9IHNjcmF0Y2hHUFIgPT0gSW52YWxpZEdQUlJlZzsKICAgICBSRUxFQVNFX0FT
U0VSVCghbmVlZFRvUmVzdG9yZVNjcmF0Y2ggfHwgKGtpbmQgPT0gR2V0VmFsdWUgfHwga2luZCA9
PSBHZXRVbmRlZmluZWQpKTsKQEAgLTMxNSwxMyArMzIwLDE2IEBAIHN0YXRpYyBib29sIGdlbmVy
YXRlQnlJZFN0dWIoCiAgICAgQ0NhbGxIZWxwZXJzIHN0dWJKaXQoJmV4ZWMtPnZtKCksIGV4ZWMt
PmNvZGVCbG9jaygpKTsKICAgICBpZiAobmVlZFRvUmVzdG9yZVNjcmF0Y2gpIHsKICAgICAgICAg
c2NyYXRjaEdQUiA9IEFzc2VtYmx5SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUigKLSAgICAgICAg
ICAgIGJhc2VHUFIsIHZhbHVlUmVncy50YWdHUFIoKSwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7
CisgICAgICAgICAgICBiYXNlR1BSLCB2YWx1ZVJlZ3MudGFnR1BSKCksIHZhbHVlUmVncy5wYXls
b2FkR1BSKCksIGlkZW50aWZpZXJHUFIpOwogICAgICAgICBzdHViSml0LnB1c2hUb1NhdmUoc2Ny
YXRjaEdQUik7CiAgICAgICAgIG5lZWRUb1Jlc3RvcmVTY3JhdGNoID0gdHJ1ZTsKICAgICB9CiAg
ICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGZhaWx1cmVDYXNlczsKIAorICAgIGlm
IChzdHViSW5mby5ieVZhbCkKKyAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChzdHViSml0LmJy
YW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGlkZW50aWZpZXJHUFIsIE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKSk7CisKICAgICBHUFJS
ZWcgYmFzZUZvckdldEdQUjsKICAgICBpZiAobG9hZFRhcmdldEZyb21Qcm94eSkgewogICAgICAg
ICBiYXNlRm9yR2V0R1BSID0gdmFsdWVSZWdzLnBheWxvYWRHUFIoKTsKQEAgLTY1MCw2ICs2NTgs
NyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbgogICAgICAgICBHUFJSZWcgcmVzdWx0VGFnR1BS
ID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC52YWx1ZVRhZ0dQUik7CiAjZW5k
aWYKICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1Yklu
Zm8ucGF0Y2gudmFsdWVHUFIpOworICAgICAgICBHUFJSZWcgaWRlbnRpZmllckdQUiA9IHN0YXRp
Y19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guaWRlbnRpZmllckdQUik7CiAKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXIgc3R1YkppdDsKIApAQCAtNjU5LDkgKzY2OCw5IEBAIHN0YXRpYyBJbmxp
bmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJh
c2VWYWx1ZSwgY29uCiAKICAgICAgICAgICAgIGlmIChzY3JhdGNoR1BSID09IEludmFsaWRHUFJS
ZWcpIHsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBB
c3NlbWJseUhlbHBlcnM6OnNlbGVjdFNjcmF0Y2hHUFIoYmFzZUdQUiwgcmVzdWx0R1BSKTsKKyAg
ICAgICAgICAgICAgICBzY3JhdGNoR1BSID0gQXNzZW1ibHlIZWxwZXJzOjpzZWxlY3RTY3JhdGNo
R1BSKGJhc2VHUFIsIHJlc3VsdEdQUiwgaWRlbnRpZmllckdQUik7CiAjZWxzZQotICAgICAgICAg
ICAgICAgIHNjcmF0Y2hHUFIgPSBBc3NlbWJseUhlbHBlcnM6OnNlbGVjdFNjcmF0Y2hHUFIoYmFz
ZUdQUiwgcmVzdWx0R1BSLCByZXN1bHRUYWdHUFIpOworICAgICAgICAgICAgICAgIHNjcmF0Y2hH
UFIgPSBBc3NlbWJseUhlbHBlcnM6OnNlbGVjdFNjcmF0Y2hHUFIoYmFzZUdQUiwgcmVzdWx0R1BS
LCByZXN1bHRUYWdHUFIsIGlkZW50aWZpZXJHUFIpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAg
c3R1YkppdC5wdXNoVG9TYXZlKHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgIG5lZWRUb1Jl
c3RvcmVTY3JhdGNoID0gdHJ1ZTsKQEAgLTY2OSw2ICs2NzgsOSBAQCBzdGF0aWMgSW5saW5lQ2Fj
aGVBY3Rpb24gdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFs
dWUsIGNvbgogCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgZmFpbHVyZUNh
c2VzOwogCisgICAgICAgICAgICBpZiAoc3R1YkluZm8uYnlWYWwpCisgICAgICAgICAgICAgICAg
ZmFpbHVyZUNhc2VzLmFwcGVuZChzdHViSml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90
RXF1YWwsIGlkZW50aWZpZXJHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3Bl
cnR5TmFtZS5pbXBsKCkpKSk7CisKICAgICAgICAgICAgIHN0dWJKaXQubG9hZDgoTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjppbmRleGluZ1R5cGVPZmZzZXQoKSksIHNj
cmF0Y2hHUFIpOwogICAgICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChzdHViSml0LmJyYW5j
aFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgc2NyYXRjaEdQUiwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMihJc0FycmF5KSkpOwogICAgICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVu
ZChzdHViSml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgc2NyYXRjaEdQUiwg
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzaykpKTsKQEAgLTcw
OCw3ICs3MjAsMTIgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb24KICAgICAgICAgfQogCiAgICAg
ICAgIC8vIFN0cmluZy5sZW5ndGggY2FzZQotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBm
YWlsdXJlID0gc3R1YkppdC5icmFuY2g4KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSks
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoU3RyaW5nVHlwZSkpOworCisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIG5vdEV4cGVjdGVkSWRlbnRpZmllcjsKKyAgICAgICAgaWYgKHN0
dWJJbmZvLmJ5VmFsKQorICAgICAgICAgICAgbm90RXhwZWN0ZWRJZGVudGlmaWVyID0gc3R1Ykpp
dC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBpZGVudGlmaWVyR1BSLCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSk7CisKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90U3RyaW5nID0gc3R1YkppdC5icmFuY2g4KE1hY3Jv
QXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlND
ZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
U3RyaW5nVHlwZSkpOwogCiAgICAgICAgIHN0dWJKaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKGJhc2VHUFIsIEpTU3RyaW5nOjpvZmZzZXRPZkxlbmd0aCgpKSwgcmVzdWx0R1BSKTsK
IApAQCAtNzIwLDYgKzczNywxNCBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVH
ZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbgogCiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIHN1Y2Nlc3MgPSBzdHViSml0Lmp1bXAoKTsKIAorICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBmYWlsdXJlOworICAgICAgICBpZiAoc3R1YkluZm8uYnlW
YWwpIHsKKyAgICAgICAgICAgIG5vdEV4cGVjdGVkSWRlbnRpZmllci5saW5rKCZzdHViSml0KTsK
KyAgICAgICAgICAgIG5vdFN0cmluZy5saW5rKCZzdHViSml0KTsKKyAgICAgICAgICAgIGZhaWx1
cmUgPSBzdHViSml0Lmp1bXAoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBmYWlsdXJl
ID0gbm90U3RyaW5nOworCiAgICAgICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCBzdHVi
Sml0LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uQ2FuRmFpbCk7CiAgICAgICAgIGlmIChwYXRj
aEJ1ZmZlci5kaWRGYWlsVG9BbGxvY2F0ZSgpKQogICAgICAgICAgICAgcmV0dXJuIEdpdmVVcE9u
Q2FjaGU7CkBAIC03NjEsNyArNzg2LDEwIEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlD
YWNoZUdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uCiAgICAg
ICAgICYmIE1hY3JvQXNzZW1ibGVyOjppc0NvbXBhY3RQdHJBbGlnbmVkQWRkcmVzc09mZnNldCht
YXhPZmZzZXRSZWxhdGl2ZVRvUGF0Y2hlZFN0b3JhZ2Uoc2xvdC5jYWNoZWRPZmZzZXQoKSkpKSB7
CiAgICAgICAgIHN0cnVjdHVyZS0+c3RhcnRXYXRjaGluZ1Byb3BlcnR5Rm9yUmVwbGFjZW1lbnRz
KCp2bSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7CiAgICAgICAgIHJlcGF0Y2hCeUlkU2VsZkFjY2Vz
cygqdm0sIGNvZGVCbG9jaywgc3R1YkluZm8sIHN0cnVjdHVyZSwgcHJvcGVydHlOYW1lLCBzbG90
LmNhY2hlZE9mZnNldCgpLCBvcGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0LCB0cnVlKTsKLSAgICAg
ICAgc3R1YkluZm8uaW5pdEdldEJ5SWRTZWxmKCp2bSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFi
bGUoKSwgc3RydWN0dXJlKTsKKyAgICAgICAgaWYgKHN0dWJJbmZvLmJ5VmFsKQorICAgICAgICAg
ICAgc3R1YkluZm8uaW5pdEdldEJ5VmFsU2VsZigqdm0sIGNvZGVCbG9jay0+b3duZXJFeGVjdXRh
YmxlKCksIHN0cnVjdHVyZSwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgc3R1YkluZm8uaW5pdEdldEJ5SWRTZWxmKCp2bSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFi
bGUoKSwgc3RydWN0dXJlKTsKICAgICAgICAgcmV0dXJuIFJldHJ5Q2FjaGVMYXRlcjsKICAgICB9
CiAKQEAgLTg2OCw3ICs4OTYsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5QnVpbGRH
ZXRCeUlETGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLAogICAgICAgICBh
Y2Nlc3NUeXBlID0gR2V0QnlJZEFjY2Vzczo6Q3VzdG9tR2V0dGVyOwogICAgIAogICAgIGxpc3Qt
PmFkZEFjY2VzcyhHZXRCeUlkQWNjZXNzKAotICAgICAgICAqdm0sIGNvZGVCbG9jay0+b3duZXJF
eGVjdXRhYmxlKCksIGFjY2Vzc1R5cGUsIHN0dWJSb3V0aW5lLCBzdHJ1Y3R1cmUsCisgICAgICAg
ICp2bSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgYWNjZXNzVHlwZSwgc3R1YlJvdXRp
bmUsIHN0cnVjdHVyZSwgc3R1YkluZm8uYnlWYWwgPyBpZGVudCA6IGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5udWxsSWRlbnRpZmllciwKICAgICAgICAgcHJvdG90eXBlQ2hhaW4sIGNvdW50KSk7CiAg
ICAgCiAgICAgcGF0Y2hKdW1wVG9HZXRCeUlkU3R1Yihjb2RlQmxvY2ssIHN0dWJJbmZvLCBzdHVi
Um91dGluZS5nZXQoKSk7CkBAIC0xOTQ3LDcgKzE5NzUsNyBAQCB2b2lkIHJlc2V0R2V0QnlJRChS
ZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyLCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8p
CiB7CiAgICAgcmVwYXRjaENhbGwocmVwYXRjaEJ1ZmZlciwgc3R1YkluZm8uY2FsbFJldHVybkxv
Y2F0aW9uLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUpOwogICAgIENvZGVMb2NhdGlvbkRhdGFM
YWJlbDMyIHN0cnVjdHVyZUxhYmVsID0gc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmRhdGFM
YWJlbDMyQXRPZmZzZXQoLShpbnRwdHJfdClzdHViSW5mby5wYXRjaC5kZWx0YUNoZWNrSW1tVG9D
YWxsKTsKLSAgICBpZiAoTWFjcm9Bc3NlbWJsZXI6OmNhbkp1bXBSZXBsYWNlUGF0Y2hhYmxlQnJh
bmNoMzJXaXRoUGF0Y2goKSkgeworICAgIGlmIChNYWNyb0Fzc2VtYmxlcjo6Y2FuSnVtcFJlcGxh
Y2VQYXRjaGFibGVCcmFuY2gzMldpdGhQYXRjaCgpICYmIHN0dWJJbmZvLmJ5VmFsKSB7CiAgICAg
ICAgIHJlcGF0Y2hCdWZmZXIucmV2ZXJ0SnVtcFJlcGxhY2VtZW50VG9QYXRjaGFibGVCcmFuY2gz
MldpdGhQYXRjaCgKICAgICAgICAgICAgIFJlcGF0Y2hCdWZmZXI6OnN0YXJ0T2ZQYXRjaGFibGVC
cmFuY2gzMldpdGhQYXRjaE9uQWRkcmVzcyhzdHJ1Y3R1cmVMYWJlbCksCiAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcygKQEAgLTE5NTUsNiArMTk4Myw4IEBAIHZvaWQgcmVzZXRH
ZXRCeUlEKFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIsIFN0cnVjdHVyZVN0dWJJbmZvJiBz
dHViSW5mbykKICAgICAgICAgICAgICAgICBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLAog
ICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4odW51c2VkUG9pbnRlcikpOwogICAgIH0K
KyAgICBpZiAoc3R1YkluZm8uYnlWYWwpCisgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwYXRjaChz
dHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24uZGF0YUxhYmVsUHRyQXRPZmZzZXQoLShpbnRwdHJf
dClzdHViSW5mby5wYXRjaC5kZWx0YUNoZWNrSWRlbnRpZmllckltbVRvQ2FsbCksIGJpdHdpc2Vf
Y2FzdDx2b2lkKj4odW51c2VkUG9pbnRlcikpOwogICAgIHJlcGF0Y2hCdWZmZXIucmVwYXRjaChz
dHJ1Y3R1cmVMYWJlbCwgc3RhdGljX2Nhc3Q8aW50MzJfdD4odW51c2VkUG9pbnRlcikpOwogI2lm
IFVTRShKU1ZBTFVFNjQpCiAgICAgcmVwYXRjaEJ1ZmZlci5yZXBhdGNoKHN0dWJJbmZvLmNhbGxS
ZXR1cm5Mb2NhdGlvbi5kYXRhTGFiZWxDb21wYWN0QXRPZmZzZXQoc3R1YkluZm8ucGF0Y2guZGVs
dGFDYWxsVG9Mb2FkT3JTdG9yZSksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJpdmF0ZU5hbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ByaXZhdGVOYW1lLmgKaW5kZXggMmI2YmEwMTdkYjY3MDBkNWUxOTYwODg5YmM3YjQ3ZTViZTk0
ZDkxNC4uZDcwZTA4ZGZmNzk4Y2Q1NDk5MDRkYmY1ZDNhNmI5OGYyM2I2MWJkNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJpdmF0ZU5hbWUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcml2YXRlTmFtZS5oCkBAIC01Nyw2ICs1Nyw5IEBA
IGNsYXNzIFByaXZhdGVOYW1lIHsKICAgICBSZWZQdHI8U3ltYm9sSW1wbD4gbV91aWQ7CiB9Owog
CitzdGF0aWNfYXNzZXJ0KHNpemVvZihQcml2YXRlTmFtZSkgPT0gc2l6ZW9mKFJlZlB0cjxTeW1i
b2xJbXBsPiksICJUaGUgZmllbGQgb2YgUHJpdmF0ZU5hbWUgaXMgbGltaXRlZCB0byBSZWZQdHI8
U3ltYm9sSW1wbD4iKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFByaXZhdGVOYW1lKSA9PSBzaXpl
b2YoU3RyaW5nKSwgIlRoZSBmaWVsZCBvZiBQcml2YXRlTmFtZSBpcyB0aGUgc2FtZSB0byBTdHJp
bmciKTsKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgK
aW5kZXggZTU3OTBkNzg3MjI2YmVhNzYwMjRjOWQxZDY2YTY3NjBmNjRkZTVhMi4uY2Q0NzAxNGQy
Y2U5NGU5MTA4NDkwNWIyMmIxMDdmYzg1ZDhjMDYyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3ltYm9sLmgKQEAgLTc5LDYgKzc5LDggQEAgY2xhc3MgU3ltYm9sIGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiAgICAgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFs
T2JqZWN0KikgY29uc3Q7CiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0Owog
CisgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZlZhbHVlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKFN5bWJvbCwgbV9wcml2YXRlTmFtZSk7IH0KKwogcHJvdGVjdGVkOgogICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258031</attachid>
            <date>2015-08-02 01:24:45 -0700</date>
            <delta_ts>2015-08-02 01:28:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150802172440.patch</filename>
            <type>text/plain</type>
            <size>15917</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZjQ3Y2RkMDM1N2Q2OGY4NmRmY2ZkNjg2MDY0N2RjNTg3ODgzYWE4Li5jNmNkNmUzNzE0NmY5NDc5
MDQwMzg1NDgxNzYyMmNkMDY1OGI4N2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNS0wOC0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGppdC9K
SVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBq
aXQvSklULmg6CisgICAgICAgIChKU0M6OkJ5VmFsQ29tcGlsYXRpb25JbmZvOjpCeVZhbENvbXBp
bGF0aW9uSW5mbyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hl
ZFByb3BlcnR5TmFtZSk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9w
dXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKToK
KyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZFByb3Bl
cnR5TmFtZSk6CisgICAgICAgICogcnVudGltZS9TeW1ib2wuaDoKKwogMjAxNS0wNy0zMSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByZXBh
cmUgZm9yIFZTMjAxNQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5VmFsSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5o
CmluZGV4IGQ5ODg1MTYxMzI1OGE3MWI5ZjA0YmE0OTA3M2Y0NDAzM2U1NzEwODMuLmVlNWQ4MTA1
NTI1ZGU5YjhmMTlmMWVlODg5MGNhMzBjMGM4Y2RkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTIwMiw4ICsyMDIsOSBAQCBpbmxpbmUgSklUQXJy
YXlNb2RlIGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHN0
cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFsSW5mbygpIHsgfQogICAgIAotICAgIEJ5VmFsSW5m
byh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBK
SVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90
IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorICAgIEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRlY29k
ZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcCwgQ29kZUxvY2F0aW9uSnVtcCBi
YWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRv
RG9uZSwgaW50MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkKICAgICAgICAgOiBieXRlY29k
ZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4SnVt
cCkKICAgICAgICAgLCBiYWRUeXBlSnVtcChiYWRUeXBlSnVtcCkKICAgICAgICAgLCBhcnJheU1v
ZGUoYXJyYXlNb2RlKQogICAgICAgICAsIGJhZFR5cGVKdW1wVG9Eb25lKGJhZFR5cGVKdW1wVG9E
b25lKQpAQCAtMjExLDE0ICsyMTIsMTYgQEAgc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgICAgICwg
c2xvd1BhdGhDb3VudCgwKQogICAgIHsKICAgICB9Ci0gICAgCisKICAgICB1bnNpZ25lZCBieXRl
Y29kZUluZGV4OworICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wOwogICAgIENvZGVM
b2NhdGlvbkp1bXAgYmFkVHlwZUp1bXA7CiAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsgLy8g
VGhlIGFycmF5IG1vZGUgdGhhdCB3YXMgYmFrZWQgaW50byB0aGUgaW5saW5lIEpJVCBjb2RlLgog
ICAgIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmU7CiAgICAgaW50MTZfdCByZXR1cm5BZGRyZXNz
VG9TbG93UGF0aDsKICAgICB1bnNpZ25lZCBzbG93UGF0aENvdW50OwogICAgIFJlZlB0cjxKSVRT
dHViUm91dGluZT4gc3R1YlJvdXRpbmU7CisgICAgSWRlbnRpZmllciBjYWNoZWRQcm9wZXJ0eU5h
bWU7CiB9OwogCiBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZh
bEluZm8qIGluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOWFmMzMyZWI3OGUx
ODlhZTZhNTNiMjIzNTBhZjc3YjVmOWQ3ZWIyYi4uMDE4ZTZjZmIzYzg4ZjQyY2Y0NDM4Mjg5YzEw
Y2EzZDkxMDQ3OGFmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNjYwLDYgKzY2
MCw3IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRp
b25FZmZvcnQgZWZmb3J0KQogCiAgICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZv
cyhtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fYnlWYWxDb21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgQ29k
ZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVy
LmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5ub3RJbmRleEp1bXApKTsKICAg
ICAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0
Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1w
KSk7CiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5s
b2NhdGlvbk9mKG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uZG9uZVRhcmdldCk7CiAgICAgICAg
IENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLnNsb3dQYXRoVGFyZ2V0KTsKQEAgLTY2Nyw2ICs2
NjgsNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0
aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgCiAgICAgICAgIG1fY29kZUJsb2NrLT5ieVZhbElu
Zm8oaSkgPSBCeVZhbEluZm8oCiAgICAgICAgICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ld
LmJ5dGVjb2RlSW5kZXgsCisgICAgICAgICAgICBub3RJbmRleEp1bXAsCiAgICAgICAgICAgICBi
YWRUeXBlSnVtcCwKICAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYXJyYXlN
b2RlLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGJhZFR5cGVKdW1wLCBk
b25lVGFyZ2V0KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDAyMTM5NjM0YjFkZmVkNjEw
NTYyZGVjYjU3OGRiMzhkNmIxNjAzNGUuLmE3OTZiMDUzMzEzY2U0NDU1MzY5MjhjMWU5ZjY0ZmM4
ZjQ4YjM1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMTQ5LDggKzE0OSw5IEBACiAg
ICAgc3RydWN0IEJ5VmFsQ29tcGlsYXRpb25JbmZvIHsKICAgICAgICAgQnlWYWxDb21waWxhdGlv
bkluZm8oKSB7IH0KICAgICAgICAgCi0gICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKHVuc2ln
bmVkIGJ5dGVjb2RlSW5kZXgsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5cGVK
dW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRh
cmdldCkKKyAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbm90SW5kZXhKdW1wLCBNYWNyb0Fzc2Vt
Ymxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwg
TWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQpCiAgICAgICAgICAgICA6IGJ5dGVjb2Rl
SW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4
SnVtcCkKICAgICAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICAg
ICAsIGFycmF5TW9kZShhcnJheU1vZGUpCiAgICAgICAgICAgICAsIGRvbmVUYXJnZXQoZG9uZVRh
cmdldCkKQEAgLTE1OCw2ICsxNTksNyBAQAogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB1
bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxl
SnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1w
IGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldDsKQEAgLTIwNCw2ICsyMDYsMTMgQEAKICAg
ICAgICAgICAgIGppdC5wcml2YXRlQ29tcGlsZUdldEJ5VmFsKGJ5VmFsSW5mbywgcmV0dXJuQWRk
cmVzcywgYXJyYXlNb2RlKTsKICAgICAgICAgfQogCisgICAgICAgIHN0YXRpYyB2b2lkIGNvbXBp
bGVHZXRCeVZhbFdpdGhDYWNoZWRQcm9wZXJ0eU5hbWUoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVz
cywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgICAgICB7CisgICAgICAgICAg
ICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOworICAgICAgICAgICAgaml0Lm1fYnl0ZWNvZGVPZmZz
ZXQgPSBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisgICAgICAgICAgICBqaXQucHJpdmF0ZUNv
bXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRQcm9wZXJ0eU5hbWUoYnlWYWxJbmZvLCByZXR1cm5BZGRy
ZXNzLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICB9CisKICAgICAgICAgc3RhdGljIHZvaWQgY29t
cGlsZVB1dEJ5VmFsKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5VmFsSW5mbyogYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJh
eU1vZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9jayk7CkBA
IC0yNDYsNiArMjU1LDcgQEAKICAgICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcHJpdmF0ZUNvbXBp
bGUoSklUQ29tcGlsYXRpb25FZmZvcnQpOwogICAgICAgICAKICAgICAgICAgdm9pZCBwcml2YXRl
Q29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9k
ZSk7CisgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRQcm9wZXJ0
eU5hbWUoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgY29uc3QgSWRlbnRpZmllciYpOwog
ICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJbmZvKiwgUmV0dXJuQWRk
cmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKIAogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlSGFz
SW5kZXhlZFByb3BlcnR5KEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9k
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA5MGI1MzIx
NWFiMDRjNzQzMzhhZGJhODM2MzA0MGMzODRkZmZhMzFlLi5kYWYyYWZmMzdjMDAwMjVmODg2YmQz
MTBjNDQzN2RjMDdlMzUwOWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKQEAgLTExMDgsNyArMTEwOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVk
X3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUs
IG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENv
bXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBQYXRjaGFibGVKdW1wKCksIGJhZFR5cGUs
IG1vZGUsIGRvbmUpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3By
b3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAppbmRleCA0YjU4YjQ0ZDAwNDJkMjdiMjRjMDNjY2ZkNmNjYWY5OGRhYTc4MzFh
Li41ZGMwZjI3YTg1ZjNmZTFiZmEwNjZiNWU2ZmUzZjI2N2Q5NDUyOTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTE1NTUsNyArMTU1NSwyMyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsRGVmYXVsdChF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKUwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQotICAgIAorCisgICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpICYmIChzdWJzY3JpcHQuaXNT
eW1ib2woKSB8fCBzdWJzY3JpcHQuaXNTdHJpbmcoKSkpIHsKKyAgICAgICAgY29uc3QgSWRlbnRp
ZmllciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3JpcHQudG9Qcm9wZXJ0eUtleShleGVjKTsKKworICAg
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUpOworICAgICAgICBib29sIGhhc1Jlc3Vs
dCA9IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
KworICAgICAgICBpZiAoIXN1YnNjcmlwdC5pc1N0cmluZygpIHx8ICFwYXJzZUluZGV4KHByb3Bl
cnR5TmFtZSkpIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+
bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAgICAgICBBU1NFUlQoYnl0ZWNvZGVP
ZmZzZXQpOworICAgICAgICAgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBleGVjLT5jb2RlQmxv
Y2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CisgICAgICAgICAgICBBU1NF
UlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7CisgICAgICAgICAgICBKSVQ6OmNvbXBpbGVHZXRC
eVZhbFdpdGhDYWNoZWRQcm9wZXJ0eU5hbWUoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgJmJ5VmFs
SW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBwcm9wZXJ0eU5hbWUp
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGFzUmVzdWx0ID8g
c2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpIDoganNVbmRlZmluZWQoKSk7CisgICAg
fQorCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNj
cmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggYzBhNTRiN2Y5MzY0
ZmQxN2I1NGRiZDJjODRlMGMyN2Q5M2ZmNzY2Yy4uNGZkNzViMWNmNDI0NDE5MTljZDU4N2IzODli
ZWZhOWU4ZDk4NTBmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHAKQEAgLTEwMCw4ICsxMDAsMTUgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0
X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIEFycmF5UHJvZmls
ZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAK
ICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhiYXNlLCByZWdUMCwgcHJvcGVydHksIHJlZ1Qx
KTsKLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKIAor
ICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CisKKyAgICAvLyBG
SVhNRTogV2UgbmVlZCB0byBpbXBsZW1lbnQgcGF0Y2hhYmxlQnJhbmNoNjQuCisgICAgSnVtcCBp
c0luZGV4ID0gZW1pdEp1bXBJZk5vdEltbWVkaWF0ZUludGVnZXIocmVnVDEpOworICAgIFBhdGNo
YWJsZUp1bXAgbm90SW5kZXggPSBwYXRjaGFibGVKdW1wKCk7CisgICAgYWRkU2xvd0Nhc2Uobm90
SW5kZXgpOworCisgICAgaXNJbmRleC5saW5rKHRoaXMpOwogICAgIC8vIFRoaXMgaXMgdGVjaG5p
Y2FsbHkgaW5jb3JyZWN0IC0gd2UncmUgemVyby1leHRlbmRpbmcgYW4gaW50MzIuICBPbiB0aGUg
aG90IHBhdGggdGhpcyBkb2Vzbid0IG1hdHRlci4KICAgICAvLyBXZSBjaGVjayB0aGUgdmFsdWUg
YXMgaWYgaXQgd2FzIGEgdWludDMyIGFnYWluc3QgdGhlIG1fdmVjdG9yTGVuZ3RoIC0gd2hpY2gg
d2lsbCBhbHdheXMgZmFpbCBpZgogICAgIC8vIG51bWJlciB3YXMgc2lnbmVkIHNpbmNlIG1fdmVj
dG9yTGVuZ3RoIGlzIGFsd2F5cyBsZXNzIHRoYW4gaW50bWF4IChzaW5jZSB0aGUgdG90YWwgYWxs
b2NhdGlvbgpAQCAtMTEwLDcgKzExNyw2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAvLyBleHRlbmRpbmcgc2luY2Ug
aXQgbWFrZXMgaXQgZWFzaWVyIHRvIHJlLXRhZyB0aGUgdmFsdWUgaW4gdGhlIHNsb3cgY2FzZS4K
ICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihyZWdUMSwgcmVnVDEpOwogCi0gICAgZW1pdEp1bXBTbG93
Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRl
V2l0aENlbGwocmVnVDAsIHJlZ1QyLCBwcm9maWxlKTsKICAgICBhbmQzMihUcnVzdGVkSW1tMzIo
SW5kZXhpbmdTaGFwZU1hc2spLCByZWdUMik7CiAKQEAgLTE1MCw3ICsxNTYsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSgpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
ZHN0KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBp
bGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAg
bV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRl
Y29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklUOjpK
dW1wTGlzdCBKSVQ6OmVtaXREb3VibGVMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYg
YmFkVHlwZSkKQEAgLTIwMiw4ICsyMDgsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5
X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAg
IGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJy
YXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxl
OwogICAgIAotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sK
ICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNo
ZWNrCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAg
IEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2Ug
YXJyYXkgY2hlY2sKICAgICBKdW1wIG5vdFN0cmluZyA9IGJyYW5jaFN0cnVjdHVyZShOb3RFcXVh
bCwgCkBAIC0yNjUsNyArMjcxLDEzIEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAKICAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVycyhiYXNlLCByZWdUMCwgcHJvcGVydHksIHJlZ1QxKTsKLSAgICBlbWl0SnVt
cFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKKworICAgIC8vIEZJWE1FOiBX
ZSBuZWVkIHRvIGltcGxlbWVudCBwYXRjaGFibGVCcmFuY2g2NC4KKyAgICBKdW1wIGlzSW5kZXgg
PSBlbWl0SnVtcElmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CisgICAgUGF0Y2hhYmxlSnVt
cCBub3RJbmRleCA9IHBhdGNoYWJsZUp1bXAoKTsKKyAgICBhZGRTbG93Q2FzZShub3RJbmRleCk7
CisKKyAgICBpc0luZGV4LmxpbmsodGhpcyk7CiAgICAgLy8gU2VlIGNvbW1lbnQgaW4gb3BfZ2V0
X2J5X3ZhbC4KICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihyZWdUMSwgcmVnVDEpOwogICAgIGVtaXRK
dW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CkBAIC0yOTksNyArMzExLDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxD
b21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZz
ZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFw
cGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwgYmFk
VHlwZSwgbW9kZSwgZG9uZSkpOwogCiB9CiAKQEAgLTk5OSw2ICsxMDExLDYzIEBAIHZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRy
ZXNzUHRyIHJldHVybkFkCiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1bmN0aW9u
KHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYykpOwog
fQogCit2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRQcm9wZXJ0eU5h
bWUoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQoreworICAgIEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24gPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5
VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZDsKKworICAgIEp1bXBMaXN0IGRvbmVDYXNlczsKKyAgICBKdW1wTGlzdCBz
bG93Q2FzZXM7CisKKyAgICAvLyBTaW5jZSBzbG93IGNhc2UgcmVsb2FkIHRoZSB2YWx1ZXMgZnJv
bSB2aXJ0dWFsIHJlZ2lzdGVycywgc3R1YiBjb2RlIGNhbiBicmVhayB0aGUgcmVnaXN0ZXIgY29u
dGVudHMgaGVyZS4KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVn
VDEpKTsKKyAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgc2xvd0Nh
c2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2Vs
bDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQoKSkpOwor
ICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFt
ZSgpKSwgcmVnVDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJh
bmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVyZUlE
T2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0
cihBZGRyZXNzKHJlZ1QxLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDEpOworICAg
ICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEpKTsKKyAgICAg
ICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMSwgU3Ry
aW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXNB
dG9taWMoKSkpKTsKKyAgICB9CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLCByZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIo
cHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAor
ICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0
ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBK
U1ZhbHVlUmVncyhyZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgo
KnRoaXMpOworCisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSgpOworICAgIGVtaXRQdXRWaXJ0
dWFsUmVnaXN0ZXIoZHN0KTsKKyAgICBhc3NlcnRTdGFja1BvaW50ZXJPZmZzZXQoKTsKKworICAg
IGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIExhYmVsIGNvbGRQYXRoQmVnaW4gPSBs
YWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5saW5rKHRoaXMpOworCisgICAgQ2FsbCBj
YWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXpl
LCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMCwgcHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAg
Z2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJlZ2luLCBjYWxsKTsKKyAgICBkb25lQ2Fz
ZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCptX3ZtLCAq
dGhpcywgbV9jb2RlQmxvY2spOworCisgICAgcGF0Y2hCdWZmZXIubGluayhzbG93Q2FzZXMsIENv
ZGVMb2NhdGlvbkxhYmVsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlRnJvbUV4ZWN1dGFi
bGVBZGRyZXNzKHJldHVybkFkZHJlc3MudmFsdWUoKSkpLmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZv
LT5yZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkpOworCisgICAgcGF0Y2hCdWZmZXIubGluayhkb25l
Q2FzZXMsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxBdE9mZnNldChieVZhbEluZm8tPmJh
ZFR5cGVKdW1wVG9Eb25lKSk7CisKKyAgICBnZW4uZmluYWxpemUocGF0Y2hCdWZmZXIpOworCisg
ICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAg
ICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlf
dmFsIHdpdGggY2FjaGVkIHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZvciAlcywgcmV0dXJuIHBv
aW50ICVwIiwgcHJvcGVydHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEoKSwgdG9DU3RyaW5nKCpt
X2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKKyAgICBieVZhbElu
Zm8tPmNhY2hlZFByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTsKKworICAgIFJlcGF0Y2hCdWZm
ZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmso
YnlWYWxJbmZvLT5ub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1
YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkpKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxl
clRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxH
ZW5lcmljKSk7Cit9CisKIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5m
byogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9k
ZSBhcnJheU1vZGUpCiB7CiAgICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1f
Y29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUlu
ZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCBlNTc5MGQ3ODcy
MjZiZWE3NjAyNGM5ZDFkNjZhNjc2MGY2NGRlNWEyLi44M2Y1ZGUyNDg1MmJjMzc4ZWUwYTc3MDM5
ZjQ2MzE4MjVmZGRkYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaApA
QCAtNzksNiArNzksOCBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAg
ICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdDsK
ICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7CiAKKyAgICBzdGF0aWMgc2l6
ZV90IG9mZnNldE9mUHJpdmF0ZU5hbWUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3ltYm9s
LCBtX3ByaXZhdGVOYW1lKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIHZvaWQgZGVzdHJv
eShKU0NlbGwqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258032</attachid>
            <date>2015-08-02 01:28:04 -0700</date>
            <delta_ts>2015-08-03 13:34:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150802172759.patch</filename>
            <type>text/plain</type>
            <size>15911</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZjQ3Y2RkMDM1N2Q2OGY4NmRmY2ZkNjg2MDY0N2RjNTg3ODgzYWE4Li5jNmNkNmUzNzE0NmY5NDc5
MDQwMzg1NDgxNzYyMmNkMDY1OGI4N2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNS0wOC0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGppdC9K
SVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBq
aXQvSklULmg6CisgICAgICAgIChKU0M6OkJ5VmFsQ29tcGlsYXRpb25JbmZvOjpCeVZhbENvbXBp
bGF0aW9uSW5mbyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hl
ZFByb3BlcnR5TmFtZSk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9w
dXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKToK
KyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZFByb3Bl
cnR5TmFtZSk6CisgICAgICAgICogcnVudGltZS9TeW1ib2wuaDoKKwogMjAxNS0wNy0zMSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByZXBh
cmUgZm9yIFZTMjAxNQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5VmFsSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5o
CmluZGV4IGQ5ODg1MTYxMzI1OGE3MWI5ZjA0YmE0OTA3M2Y0NDAzM2U1NzEwODMuLmVlNWQ4MTA1
NTI1ZGU5YjhmMTlmMWVlODg5MGNhMzBjMGM4Y2RkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTIwMiw4ICsyMDIsOSBAQCBpbmxpbmUgSklUQXJy
YXlNb2RlIGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHN0
cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFsSW5mbygpIHsgfQogICAgIAotICAgIEJ5VmFsSW5m
byh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBK
SVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90
IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorICAgIEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRlY29k
ZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcCwgQ29kZUxvY2F0aW9uSnVtcCBi
YWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRv
RG9uZSwgaW50MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkKICAgICAgICAgOiBieXRlY29k
ZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4SnVt
cCkKICAgICAgICAgLCBiYWRUeXBlSnVtcChiYWRUeXBlSnVtcCkKICAgICAgICAgLCBhcnJheU1v
ZGUoYXJyYXlNb2RlKQogICAgICAgICAsIGJhZFR5cGVKdW1wVG9Eb25lKGJhZFR5cGVKdW1wVG9E
b25lKQpAQCAtMjExLDE0ICsyMTIsMTYgQEAgc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgICAgICwg
c2xvd1BhdGhDb3VudCgwKQogICAgIHsKICAgICB9Ci0gICAgCisKICAgICB1bnNpZ25lZCBieXRl
Y29kZUluZGV4OworICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wOwogICAgIENvZGVM
b2NhdGlvbkp1bXAgYmFkVHlwZUp1bXA7CiAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsgLy8g
VGhlIGFycmF5IG1vZGUgdGhhdCB3YXMgYmFrZWQgaW50byB0aGUgaW5saW5lIEpJVCBjb2RlLgog
ICAgIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmU7CiAgICAgaW50MTZfdCByZXR1cm5BZGRyZXNz
VG9TbG93UGF0aDsKICAgICB1bnNpZ25lZCBzbG93UGF0aENvdW50OwogICAgIFJlZlB0cjxKSVRT
dHViUm91dGluZT4gc3R1YlJvdXRpbmU7CisgICAgSWRlbnRpZmllciBjYWNoZWRQcm9wZXJ0eU5h
bWU7CiB9OwogCiBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZh
bEluZm8qIGluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOWFmMzMyZWI3OGUx
ODlhZTZhNTNiMjIzNTBhZjc3YjVmOWQ3ZWIyYi4uMDE4ZTZjZmIzYzg4ZjQyY2Y0NDM4Mjg5YzEw
Y2EzZDkxMDQ3OGFmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNjYwLDYgKzY2
MCw3IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRp
b25FZmZvcnQgZWZmb3J0KQogCiAgICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZv
cyhtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fYnlWYWxDb21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgQ29k
ZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVy
LmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5ub3RJbmRleEp1bXApKTsKICAg
ICAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0
Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1w
KSk7CiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5s
b2NhdGlvbk9mKG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uZG9uZVRhcmdldCk7CiAgICAgICAg
IENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLnNsb3dQYXRoVGFyZ2V0KTsKQEAgLTY2Nyw2ICs2
NjgsNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0
aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgCiAgICAgICAgIG1fY29kZUJsb2NrLT5ieVZhbElu
Zm8oaSkgPSBCeVZhbEluZm8oCiAgICAgICAgICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ld
LmJ5dGVjb2RlSW5kZXgsCisgICAgICAgICAgICBub3RJbmRleEp1bXAsCiAgICAgICAgICAgICBi
YWRUeXBlSnVtcCwKICAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYXJyYXlN
b2RlLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGJhZFR5cGVKdW1wLCBk
b25lVGFyZ2V0KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDAyMTM5NjM0YjFkZmVkNjEw
NTYyZGVjYjU3OGRiMzhkNmIxNjAzNGUuLmE3OTZiMDUzMzEzY2U0NDU1MzY5MjhjMWU5ZjY0ZmM4
ZjQ4YjM1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMTQ5LDggKzE0OSw5IEBACiAg
ICAgc3RydWN0IEJ5VmFsQ29tcGlsYXRpb25JbmZvIHsKICAgICAgICAgQnlWYWxDb21waWxhdGlv
bkluZm8oKSB7IH0KICAgICAgICAgCi0gICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKHVuc2ln
bmVkIGJ5dGVjb2RlSW5kZXgsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5cGVK
dW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRh
cmdldCkKKyAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbm90SW5kZXhKdW1wLCBNYWNyb0Fzc2Vt
Ymxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwg
TWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQpCiAgICAgICAgICAgICA6IGJ5dGVjb2Rl
SW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4
SnVtcCkKICAgICAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICAg
ICAsIGFycmF5TW9kZShhcnJheU1vZGUpCiAgICAgICAgICAgICAsIGRvbmVUYXJnZXQoZG9uZVRh
cmdldCkKQEAgLTE1OCw2ICsxNTksNyBAQAogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB1
bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxl
SnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1w
IGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldDsKQEAgLTIwNCw2ICsyMDYsMTMgQEAKICAg
ICAgICAgICAgIGppdC5wcml2YXRlQ29tcGlsZUdldEJ5VmFsKGJ5VmFsSW5mbywgcmV0dXJuQWRk
cmVzcywgYXJyYXlNb2RlKTsKICAgICAgICAgfQogCisgICAgICAgIHN0YXRpYyB2b2lkIGNvbXBp
bGVHZXRCeVZhbFdpdGhDYWNoZWRQcm9wZXJ0eU5hbWUoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVz
cywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgICAgICB7CisgICAgICAgICAg
ICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOworICAgICAgICAgICAgaml0Lm1fYnl0ZWNvZGVPZmZz
ZXQgPSBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisgICAgICAgICAgICBqaXQucHJpdmF0ZUNv
bXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRQcm9wZXJ0eU5hbWUoYnlWYWxJbmZvLCByZXR1cm5BZGRy
ZXNzLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICB9CisKICAgICAgICAgc3RhdGljIHZvaWQgY29t
cGlsZVB1dEJ5VmFsKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5VmFsSW5mbyogYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJh
eU1vZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9jayk7CkBA
IC0yNDYsNiArMjU1LDcgQEAKICAgICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcHJpdmF0ZUNvbXBp
bGUoSklUQ29tcGlsYXRpb25FZmZvcnQpOwogICAgICAgICAKICAgICAgICAgdm9pZCBwcml2YXRl
Q29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9k
ZSk7CisgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRQcm9wZXJ0
eU5hbWUoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgY29uc3QgSWRlbnRpZmllciYpOwog
ICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJbmZvKiwgUmV0dXJuQWRk
cmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKIAogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlSGFz
SW5kZXhlZFByb3BlcnR5KEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9k
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA5MGI1MzIx
NWFiMDRjNzQzMzhhZGJhODM2MzA0MGMzODRkZmZhMzFlLi5kYWYyYWZmMzdjMDAwMjVmODg2YmQz
MTBjNDQzN2RjMDdlMzUwOWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKQEAgLTExMDgsNyArMTEwOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVk
X3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUs
IG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENv
bXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBQYXRjaGFibGVKdW1wKCksIGJhZFR5cGUs
IG1vZGUsIGRvbmUpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3By
b3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAppbmRleCA0YjU4YjQ0ZDAwNDJkMjdiMjRjMDNjY2ZkNmNjYWY5OGRhYTc4MzFh
Li41ZGMwZjI3YTg1ZjNmZTFiZmEwNjZiNWU2ZmUzZjI2N2Q5NDUyOTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTE1NTUsNyArMTU1NSwyMyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsRGVmYXVsdChF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKUwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQotICAgIAorCisgICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpICYmIChzdWJzY3JpcHQuaXNT
eW1ib2woKSB8fCBzdWJzY3JpcHQuaXNTdHJpbmcoKSkpIHsKKyAgICAgICAgY29uc3QgSWRlbnRp
ZmllciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3JpcHQudG9Qcm9wZXJ0eUtleShleGVjKTsKKworICAg
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUpOworICAgICAgICBib29sIGhhc1Jlc3Vs
dCA9IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
KworICAgICAgICBpZiAoIXN1YnNjcmlwdC5pc1N0cmluZygpIHx8ICFwYXJzZUluZGV4KHByb3Bl
cnR5TmFtZSkpIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+
bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAgICAgICBBU1NFUlQoYnl0ZWNvZGVP
ZmZzZXQpOworICAgICAgICAgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBleGVjLT5jb2RlQmxv
Y2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CisgICAgICAgICAgICBBU1NF
UlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7CisgICAgICAgICAgICBKSVQ6OmNvbXBpbGVHZXRC
eVZhbFdpdGhDYWNoZWRQcm9wZXJ0eU5hbWUoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgJmJ5VmFs
SW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBwcm9wZXJ0eU5hbWUp
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGFzUmVzdWx0ID8g
c2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpIDoganNVbmRlZmluZWQoKSk7CisgICAg
fQorCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNj
cmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggYzBhNTRiN2Y5MzY0
ZmQxN2I1NGRiZDJjODRlMGMyN2Q5M2ZmNzY2Yy4uOTg4Y2NiZDI4ODhkNDgzNGYyNDE2MTdiYWQ5
YjJkOWRlYzhhNzg5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHAKQEAgLTEwMCw4ICsxMDAsMTUgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0
X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIEFycmF5UHJvZmls
ZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAK
ICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhiYXNlLCByZWdUMCwgcHJvcGVydHksIHJlZ1Qx
KTsKLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKIAor
ICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CisKKyAgICAvLyBG
SVhNRTogV2UgbmVlZCB0byBpbXBsZW1lbnQgcGF0Y2hhYmxlQnJhbmNoNjQuCisgICAgSnVtcCBp
c0luZGV4ID0gZW1pdEp1bXBJZkltbWVkaWF0ZUludGVnZXIocmVnVDEpOworICAgIFBhdGNoYWJs
ZUp1bXAgbm90SW5kZXggPSBwYXRjaGFibGVKdW1wKCk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5k
ZXgpOworCisgICAgaXNJbmRleC5saW5rKHRoaXMpOwogICAgIC8vIFRoaXMgaXMgdGVjaG5pY2Fs
bHkgaW5jb3JyZWN0IC0gd2UncmUgemVyby1leHRlbmRpbmcgYW4gaW50MzIuICBPbiB0aGUgaG90
IHBhdGggdGhpcyBkb2Vzbid0IG1hdHRlci4KICAgICAvLyBXZSBjaGVjayB0aGUgdmFsdWUgYXMg
aWYgaXQgd2FzIGEgdWludDMyIGFnYWluc3QgdGhlIG1fdmVjdG9yTGVuZ3RoIC0gd2hpY2ggd2ls
bCBhbHdheXMgZmFpbCBpZgogICAgIC8vIG51bWJlciB3YXMgc2lnbmVkIHNpbmNlIG1fdmVjdG9y
TGVuZ3RoIGlzIGFsd2F5cyBsZXNzIHRoYW4gaW50bWF4IChzaW5jZSB0aGUgdG90YWwgYWxsb2Nh
dGlvbgpAQCAtMTEwLDcgKzExNyw2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAvLyBleHRlbmRpbmcgc2luY2UgaXQg
bWFrZXMgaXQgZWFzaWVyIHRvIHJlLXRhZyB0aGUgdmFsdWUgaW4gdGhlIHNsb3cgY2FzZS4KICAg
ICB6ZXJvRXh0ZW5kMzJUb1B0cihyZWdUMSwgcmVnVDEpOwogCi0gICAgZW1pdEp1bXBTbG93Q2Fz
ZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0
aENlbGwocmVnVDAsIHJlZ1QyLCBwcm9maWxlKTsKICAgICBhbmQzMihUcnVzdGVkSW1tMzIoSW5k
ZXhpbmdTaGFwZU1hc2spLCByZWdUMik7CiAKQEAgLTE1MCw3ICsxNTYsNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSgpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0
KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0
aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9i
eVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29k
ZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklUOjpKdW1w
TGlzdCBKSVQ6OmVtaXREb3VibGVMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFk
VHlwZSkKQEAgLTIwMiw4ICsyMDgsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3Zh
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGlu
dCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQ
cm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwog
ICAgIAotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAg
ICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNr
CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIEp1
bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJy
YXkgY2hlY2sKICAgICBKdW1wIG5vdFN0cmluZyA9IGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwg
CkBAIC0yNjUsNyArMjcxLDEzIEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAKICAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVycyhiYXNlLCByZWdUMCwgcHJvcGVydHksIHJlZ1QxKTsKLSAgICBlbWl0SnVtcFNs
b3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKKworICAgIC8vIEZJWE1FOiBXZSBu
ZWVkIHRvIGltcGxlbWVudCBwYXRjaGFibGVCcmFuY2g2NC4KKyAgICBKdW1wIGlzSW5kZXggPSBl
bWl0SnVtcElmSW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJ
bmRleCA9IHBhdGNoYWJsZUp1bXAoKTsKKyAgICBhZGRTbG93Q2FzZShub3RJbmRleCk7CisKKyAg
ICBpc0luZGV4LmxpbmsodGhpcyk7CiAgICAgLy8gU2VlIGNvbW1lbnQgaW4gb3BfZ2V0X2J5X3Zh
bC4KICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihyZWdUMSwgcmVnVDEpOwogICAgIGVtaXRKdW1wU2xv
d0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CkBAIC0yOTksNyArMzExLDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJh
ZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChC
eVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwgYmFkVHlwZSwg
bW9kZSwgZG9uZSkpOwogCiB9CiAKQEAgLTk5OSw2ICsxMDExLDYzIEBAIHZvaWQgSklUOjpwcml2
YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRy
IHJldHVybkFkCiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVy
bkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYykpOwogfQogCit2
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRQcm9wZXJ0eU5hbWUoQnlW
YWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQoreworICAgIEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24gPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5VmFsSW5m
by0+Ynl0ZWNvZGVJbmRleDsKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZDsKKworICAgIEp1bXBMaXN0IGRvbmVDYXNlczsKKyAgICBKdW1wTGlzdCBzbG93Q2Fz
ZXM7CisKKyAgICAvLyBTaW5jZSBzbG93IGNhc2UgcmVsb2FkIHRoZSB2YWx1ZXMgZnJvbSB2aXJ0
dWFsIHJlZ2lzdGVycywgc3R1YiBjb2RlIGNhbiBicmVhayB0aGUgcmVnaXN0ZXIgY29udGVudHMg
aGVyZS4KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDEpKTsK
KyAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6c3Ry
dWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQoKSkpOworICAgICAg
ICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwg
cmVnVDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3Ry
dWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0
KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRy
ZXNzKHJlZ1QxLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDEpOworICAgICAgICBz
bG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEpKTsKKyAgICAgICAgc2xv
d0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMSwgU3RyaW5nSW1w
bDo6ZmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMo
KSkpKTsKKyAgICB9CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCByZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvcGVy
dHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAorICAgICAg
ICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6
OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVl
UmVncyhyZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMp
OworCisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSgpOworICAgIGVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIoZHN0KTsKKyAgICBhc3NlcnRTdGFja1BvaW50ZXJPZmZzZXQoKTsKKworICAgIGRvbmVD
YXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgp
OworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5saW5rKHRoaXMpOworCisgICAgQ2FsbCBjYWxsID0g
Y2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBkc3Qs
IGdlbi5zdHViSW5mbygpLCByZWdUMCwgcHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJl
cG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJlZ2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBw
ZW5kKGp1bXAoKSk7CisKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCptX3ZtLCAqdGhpcywg
bV9jb2RlQmxvY2spOworCisgICAgcGF0Y2hCdWZmZXIubGluayhzbG93Q2FzZXMsIENvZGVMb2Nh
dGlvbkxhYmVsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlRnJvbUV4ZWN1dGFibGVBZGRy
ZXNzKHJldHVybkFkZHJlc3MudmFsdWUoKSkpLmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZvLT5yZXR1
cm5BZGRyZXNzVG9TbG93UGF0aCkpOworCisgICAgcGF0Y2hCdWZmZXIubGluayhkb25lQ2FzZXMs
IGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxBdE9mZnNldChieVZhbEluZm8tPmJhZFR5cGVK
dW1wVG9Eb25lKSk7CisKKyAgICBnZW4uZmluYWxpemUocGF0Y2hCdWZmZXIpOworCisgICAgYnlW
YWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgIG1f
Y29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlfdmFsIHdp
dGggY2FjaGVkIHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVw
IiwgcHJvcGVydHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEoKSwgdG9DU3RyaW5nKCptX2NvZGVC
bG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKKyAgICBieVZhbEluZm8tPmNh
Y2hlZFByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTsKKworICAgIFJlcGF0Y2hCdWZmZXIgcmVw
YXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJ
bmZvLT5ub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRp
bmUtPmNvZGUoKS5jb2RlKCkpKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVu
Y3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmlj
KSk7Cit9CisKIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJh
eU1vZGUpCiB7CiAgICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJs
b2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCBlNTc5MGQ3ODcyMjZiZWE3
NjAyNGM5ZDFkNjZhNjc2MGY2NGRlNWEyLi44M2Y1ZGUyNDg1MmJjMzc4ZWUwYTc3MDM5ZjQ2MzE4
MjVmZGRkYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1i
b2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaApAQCAtNzks
NiArNzksOCBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBKU09i
amVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBk
b3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7CiAKKyAgICBzdGF0aWMgc2l6ZV90IG9m
ZnNldE9mUHJpdmF0ZU5hbWUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3ltYm9sLCBtX3By
aXZhdGVOYW1lKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0Nl
bGwqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258105</attachid>
            <date>2015-08-03 13:34:07 -0700</date>
            <delta_ts>2015-08-03 20:37:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150803133403.patch</filename>
            <type>text/plain</type>
            <size>20863</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2U5NmY0OWE0N2MwZjk1NWE0ZWJmMDA3MzdiOTEyMDI4Yjg3YTRiLi5hMjA4Yjk5ODRkZTVkNzVl
YWRhYzg3MTc0OGJmYTAyMTlhNjk0ZGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNiBAQAorMjAxNS0wOC0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGppdC9K
SVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBq
aXQvSklULmg6CisgICAgICAgIChKU0M6OkJ5VmFsQ29tcGlsYXRpb25JbmZvOjpCeVZhbENvbXBp
bGF0aW9uSW5mbyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hl
ZElkKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlv
bnMuY3BwOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0
QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9i
eV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6CisgICAgICAg
IChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6
cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgICogaml0L0pJVFBy
b3BlcnR5QWNjZXNzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5
X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX3B1dF9ieV92YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sLmg6CisK
IDIwMTUtMDgtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAg
ICAgICAgRG9uJ3Qgc2V0IHVwIHRoZSBjYWxsc2l0ZSB0byBvcGVyYXRpb25HZXRCeVZhbERlZmF1
bHQgd2hlbiB0aGUgb3B0aW1pemF0aW9uIGlzIGFscmVhZHkgZG9uZQogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NTc3CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAppbmRleCBkOTg4NTE2MTMyNThhNzFiOWYwNGJh
NDkwNzNmNDQwMzNlNTcxMDgzLi5lZTVkODEwNTUyNWRlOWI4ZjE5ZjFlZTg4OTBjYTMwYzBjOGNk
ZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZv
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCkBAIC0y
MDIsOCArMjAyLDkgQEAgaW5saW5lIEpJVEFycmF5TW9kZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1
cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiBzdHJ1Y3QgQnlWYWxJbmZvIHsKICAgICBCeVZhbElu
Zm8oKSB7IH0KICAgICAKLSAgICBCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgQ29k
ZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgaW50MTZf
dCBiYWRUeXBlSnVtcFRvRG9uZSwgaW50MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkKKyAg
ICBCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBub3RJ
bmRleEp1bXAsIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJh
eU1vZGUsIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmUsIGludDE2X3QgcmV0dXJuQWRkcmVzc1Rv
U2xvd1BhdGgpCiAgICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQorICAgICAg
ICAsIG5vdEluZGV4SnVtcChub3RJbmRleEp1bXApCiAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFk
VHlwZUp1bXApCiAgICAgICAgICwgYXJyYXlNb2RlKGFycmF5TW9kZSkKICAgICAgICAgLCBiYWRU
eXBlSnVtcFRvRG9uZShiYWRUeXBlSnVtcFRvRG9uZSkKQEAgLTIxMSwxNCArMjEyLDE2IEBAIHN0
cnVjdCBCeVZhbEluZm8gewogICAgICAgICAsIHNsb3dQYXRoQ291bnQoMCkKICAgICB7CiAgICAg
fQotICAgIAorCiAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleDsKKyAgICBDb2RlTG9jYXRpb25K
dW1wIG5vdEluZGV4SnVtcDsKICAgICBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wOwogICAg
IEpJVEFycmF5TW9kZSBhcnJheU1vZGU7IC8vIFRoZSBhcnJheSBtb2RlIHRoYXQgd2FzIGJha2Vk
IGludG8gdGhlIGlubGluZSBKSVQgY29kZS4KICAgICBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25l
OwogICAgIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGg7CiAgICAgdW5zaWduZWQgc2xv
d1BhdGhDb3VudDsKICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOworICAg
IElkZW50aWZpZXIgY2FjaGVkUHJvcGVydHlOYW1lOwogfTsKIAogaW5saW5lIHVuc2lnbmVkIGdl
dEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCmluZGV4IDlhZjMzMmViNzhlMTg5YWU2YTUzYjIyMzUwYWY3N2I1ZjlkN2ViMmIu
LjAxOGU2Y2ZiM2M4OGY0MmNmNDQzODI4OWMxMGNhM2Q5MTA0NzhhZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5jcHAKQEAgLTY2MCw2ICs2NjAsNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6
OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKIAogICAgIG1fY29k
ZUJsb2NrLT5zZXROdW1iZXJPZkJ5VmFsSW5mb3MobV9ieVZhbENvbXBpbGF0aW9uSW5mby5zaXpl
KCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
LnNpemUoKTsgKytpKSB7CisgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wID0g
Q29kZUxvY2F0aW9uSnVtcChwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKG1fYnlWYWxDb21waWxhdGlv
bkluZm9baV0ubm90SW5kZXhKdW1wKSk7CiAgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlw
ZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENv
bXBpbGF0aW9uSW5mb1tpXS5iYWRUeXBlSnVtcCkpOwogICAgICAgICBDb2RlTG9jYXRpb25MYWJl
bCBkb25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25J
bmZvW2ldLmRvbmVUYXJnZXQpOwogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFRh
cmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5z
bG93UGF0aFRhcmdldCk7CkBAIC02NjcsNiArNjY4LDcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklU
Ojpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgICAgIAog
ICAgICAgICBtX2NvZGVCbG9jay0+YnlWYWxJbmZvKGkpID0gQnlWYWxJbmZvKAogICAgICAgICAg
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5ieXRlY29kZUluZGV4LAorICAgICAgICAgICAg
bm90SW5kZXhKdW1wLAogICAgICAgICAgICAgYmFkVHlwZUp1bXAsCiAgICAgICAgICAgICBtX2J5
VmFsQ29tcGlsYXRpb25JbmZvW2ldLmFycmF5TW9kZSwKICAgICAgICAgICAgIGRpZmZlcmVuY2VC
ZXR3ZWVuQ29kZVB0cihiYWRUeXBlSnVtcCwgZG9uZVRhcmdldCksCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuaAppbmRleCAwMjEzOTYzNGIxZGZlZDYxMDU2MmRlY2I1NzhkYjM4ZDZiMTYwMzRlLi5kZWNm
NzllYTJiNGEzNmZlYjUwYWY0ZDViNDYzMDNmODQxNmYyMDk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgKQEAgLTE0OSw4ICsxNDksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBzdHJ1Y3QgQnlW
YWxDb21waWxhdGlvbkluZm8gewogICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbygpIHsgfQog
ICAgICAgICAKLSAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0ZWNvZGVJ
bmRleCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5
TW9kZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQorICAgICAg
ICBCeVZhbENvbXBpbGF0aW9uSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNyb0Fzc2Vt
Ymxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXAsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFi
bGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBNYWNyb0Fzc2VtYmxl
cjo6TGFiZWwgZG9uZVRhcmdldCkKICAgICAgICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29k
ZUluZGV4KQorICAgICAgICAgICAgLCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1wKQogICAgICAg
ICAgICAgLCBiYWRUeXBlSnVtcChiYWRUeXBlSnVtcCkKICAgICAgICAgICAgICwgYXJyYXlNb2Rl
KGFycmF5TW9kZSkKICAgICAgICAgICAgICwgZG9uZVRhcmdldChkb25lVGFyZ2V0KQpAQCAtMTU4
LDYgKzE1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hh
YmxlSnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVK
dW1wIGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldDsKQEAgLTIwNCw2ICsyMDYsMTMgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChi
eVZhbEluZm8sIHJldHVybkFkZHJlc3MsIGFycmF5TW9kZSk7CiAgICAgICAgIH0KIAorICAgICAg
ICBzdGF0aWMgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoVk0qIHZtLCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgICAgICB7Cisg
ICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOworICAgICAgICAgICAgaml0Lm1fYnl0
ZWNvZGVPZmZzZXQgPSBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisgICAgICAgICAgICBqaXQu
cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChieVZhbEluZm8sIHJldHVybkFkZHJl
c3MsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMgdm9pZCBjb21w
aWxlUHV0QnlWYWwoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZh
bEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSklUQXJyYXlNb2RlIGFycmF5
TW9kZSkKICAgICAgICAgewogICAgICAgICAgICAgSklUIGppdCh2bSwgY29kZUJsb2NrKTsKQEAg
LTI0Niw2ICsyNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ29tcGlsYXRpb25SZXN1
bHQgcHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQpOwogICAgICAgICAKICAgICAg
ICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQ
dHIsIEpJVEFycmF5TW9kZSk7CisgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdp
dGhDYWNoZWRJZChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBjb25zdCBJZGVudGlmaWVy
Jik7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVQdXRCeVZhbChCeVZhbEluZm8qLCBSZXR1
cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwogCiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBp
bGVIYXNJbmRleGVkUHJvcGVydHkoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgSklUQXJy
YXlNb2RlKTsKQEAgLTM3MSw3ICszODEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSnVt
cExpc3QgZW1pdEFycmF5U3RvcmFnZVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVt
cCYgYmFkVHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRJbnRUeXBlZEFycmF5UHV0QnlWYWwo
SW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBUeXBlZEFycmF5VHlwZSk7CiAg
ICAgICAgIEp1bXBMaXN0IGVtaXRGbG9hdFR5cGVkQXJyYXlQdXRCeVZhbChJbnN0cnVjdGlvbios
IFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlUeXBlKTsKLSAgICAgICAgCisKKyAg
ICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1
Y3Rpb24qLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3Qm
IHNsb3dDYXNlcyk7CisKICAgICAgICAgZW51bSBGaW5hbE9iamVjdE1vZGUgeyBNYXlCZUZpbmFs
LCBLbm93bk5vdEZpbmFsIH07CiAKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEp1bXAg
YnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24sIFQgbGVmdEhhbmRTaWRlLCBTdHJ1
Y3R1cmUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDkw
YjUzMjE1YWIwNGM3NDMzOGFkYmE4MzYzMDQwYzM4NGRmZmEzMWUuLmRhZjJhZmYzN2MwMDAyNWY4
ODZiZDMxMGM0NDM3ZGMwN2UzNTA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcApAQCAtMTEwOCw3ICsxMTA4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX2lu
ZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0
aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFk
VHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5
VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFk
VHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4
ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuY3BwCmluZGV4IDhhNjk3NWMxNmQ2Yjk2ZWNhMWYyOTYzZDRmNTkxMmJmMDU2
ODk2ZTUuLjZmMGQ4YTkwNzMxMWQ2MjRhNjU0ZDVkNjk1YzQ5NTRjOGU3NTJjYjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMTU1NSw3ICsxNTU1
LDIzIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRp
bWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgCisKKyAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkgJiYgKHN1YnNjcmlw
dC5pc1N5bWJvbCgpIHx8IHN1YnNjcmlwdC5pc1N0cmluZygpKSkgeworICAgICAgICBjb25zdCBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGV4ZWMpOwor
CisgICAgICAgIGlmICghc3Vic2NyaXB0LmlzU3RyaW5nKCkgfHwgIXBhcnNlSW5kZXgocHJvcGVy
dHlOYW1lKSkgeworICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5s
b2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKKyAgICAgICAgICAgIEFTU0VSVChieXRlY29kZU9m
ZnNldCk7CisgICAgICAgICAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGV4ZWMtPmNvZGVCbG9j
aygpLT5nZXRCeVZhbEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsKKyAgICAgICAgICAgIEFTU0VS
VCghYnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKKyAgICAgICAgICAgIEpJVDo6Y29tcGlsZUdldEJ5
VmFsV2l0aENhY2hlZElkKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVy
bkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAg
fQorCisgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSk7CisgICAgICAgIGJvb2wg
aGFzUmVzdWx0ID0gYmFzZVZhbHVlLmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGhhc1Jlc3VsdCA/IHNsb3Qu
Z2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSA6IGpzVW5kZWZpbmVkKCkpOworICAgIH0KKwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQs
IGFycmF5UHJvZmlsZSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDRlZjA2ZDkyMTNhMmIxZGJm
ZmJhNGM3YzMzNGQyZjZmMWM0NzkxN2UuLmUxMWNkYmIzMmUzNGJjYzcwNjk2NTBmOTVjYjE4M2Vh
ZGNhMTVkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwCkBAIC0xMDAsOCArMTAwLDE1IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92
YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBBcnJheVByb2ZpbGUqIHBy
b2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCiAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMSk7Ci0g
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CiAKKyAgICBl
bWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOworCisgICAgLy8gRklYTUU6
IFdlIG5lZWQgdG8gaW1wbGVtZW50IHBhdGNoYWJsZUJyYW5jaDY0LgorICAgIEp1bXAgaXNJbmRl
eCA9IGVtaXRKdW1wSWZJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKKyAgICBQYXRjaGFibGVKdW1w
IG5vdEluZGV4ID0gcGF0Y2hhYmxlSnVtcCgpOworICAgIGFkZFNsb3dDYXNlKG5vdEluZGV4KTsK
KworICAgIGlzSW5kZXgubGluayh0aGlzKTsKICAgICAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGlu
Y29ycmVjdCAtIHdlJ3JlIHplcm8tZXh0ZW5kaW5nIGFuIGludDMyLiAgT24gdGhlIGhvdCBwYXRo
IHRoaXMgZG9lc24ndCBtYXR0ZXIuCiAgICAgLy8gV2UgY2hlY2sgdGhlIHZhbHVlIGFzIGlmIGl0
IHdhcyBhIHVpbnQzMiBhZ2FpbnN0IHRoZSBtX3ZlY3Rvckxlbmd0aCAtIHdoaWNoIHdpbGwgYWx3
YXlzIGZhaWwgaWYKICAgICAvLyBudW1iZXIgd2FzIHNpZ25lZCBzaW5jZSBtX3ZlY3Rvckxlbmd0
aCBpcyBhbHdheXMgbGVzcyB0aGFuIGludG1heCAoc2luY2UgdGhlIHRvdGFsIGFsbG9jYXRpb24K
QEAgLTExMCw3ICsxMTcsNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgLy8gZXh0ZW5kaW5nIHNpbmNlIGl0IG1ha2Vz
IGl0IGVhc2llciB0byByZS10YWcgdGhlIHZhbHVlIGluIHRoZSBzbG93IGNhc2UuCiAgICAgemVy
b0V4dGVuZDMyVG9QdHIocmVnVDEsIHJlZ1QxKTsKIAotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEpTQ2VsbChyZWdUMCwgYmFzZSk7CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxs
KHJlZ1QwLCByZWdUMiwgcHJvZmlsZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5n
U2hhcGVNYXNrKSwgcmVnVDIpOwogCkBAIC0xNTAsNyArMTU2LDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAg
ICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbklu
Zm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxD
b21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZz
ZXQsIG5vdEluZGV4LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3Qg
SklUOjplbWl0RG91YmxlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUp
CkBAIC0xOTUsNiArMjAxLDM5IEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0QXJyYXlTdG9yYWdl
TG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCiAgICAgcmV0dXJuIHNs
b3dDYXNlczsKIH0KIAorSklUR2V0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZhbFdpdGhD
YWNoZWRJZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEp1bXBMaXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMp
Cit7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisKKyAg
ICBzbG93Q2FzZXMuYXBwZW5kKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDEpKTsKKyAgICBpZiAo
cHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFu
Y2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURP
ZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRy
KEFkZHJlc3MocmVnVDEsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDEpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5v
dEVxdWFsLCBBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3Zt
LT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1Qx
LCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDEpOworICAgICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hUZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMSwgU3RyaW5nSW1wbDo6ZmxhZ3NP
ZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAg
ICB9CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1QxLCBUcnVz
dGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJh
dG9yIGdlbigKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNl
dCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdz
KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBEb250U3BpbGwpOworICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKCp0aGlzKTsKKworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAg
IExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5s
aW5rKHRoaXMpOworCisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwg
b3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMCwgcHJv
cGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJl
Z2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICByZXR1cm4g
Z2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAt
MjAyLDggKzI0MSw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgaW50IHByb3BlcnR5
ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHBy
b2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCi0gICAg
bGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93
Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgSnVtcCBub25DZWxs
ID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawog
ICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCAKQEAgLTI5OSw3
ICszMzgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0g
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9i
eXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBh
dGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogCiB9CiAKQEAgLTk5OSw2ICsx
MDM4LDMzIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyogYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkCiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxp
bmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdl
dEJ5VmFsR2VuZXJpYykpOwogfQogCit2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdp
dGhDYWNoZWRJZChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OworCisgICAgSnVtcExpc3QgZG9uZUNhc2Vz
OworICAgIEp1bXBMaXN0IHNsb3dDYXNlczsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2Vu
ID0gZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKGN1cnJlbnRJbnN0cnVjdGlvbiwgcHJvcGVydHlO
YW1lLCBkb25lQ2FzZXMsIHNsb3dDYXNlcyk7CisKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVy
KCptX3ZtLCAqdGhpcywgbV9jb2RlQmxvY2spOworCisgICAgcGF0Y2hCdWZmZXIubGluayhzbG93
Q2FzZXMsIENvZGVMb2NhdGlvbkxhYmVsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlRnJv
bUV4ZWN1dGFibGVBZGRyZXNzKHJldHVybkFkZHJlc3MudmFsdWUoKSkpLmxhYmVsQXRPZmZzZXQo
YnlWYWxJbmZvLT5yZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkpOworCisgICAgcGF0Y2hCdWZmZXIu
bGluayhkb25lQ2FzZXMsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxBdE9mZnNldChieVZh
bEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7CisKKyAgICBnZW4uZmluYWxpemUocGF0Y2hCdWZm
ZXIpOworCisgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NU
VUIoCisgICAgICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJCYXNlbGlu
ZSBnZXRfYnlfdmFsIHdpdGggY2FjaGVkIHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZvciAlcywg
cmV0dXJuIHBvaW50ICVwIiwgcHJvcGVydHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEoKSwgdG9D
U3RyaW5nKCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKKyAg
ICBieVZhbEluZm8tPmNhY2hlZFByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTsKKworICAgIFJl
cGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CisgICAgcmVwYXRjaEJ1ZmZl
ci5yZWxpbmsoYnlWYWxJbmZvLT5ub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKGJ5VmFs
SW5mby0+c3R1YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkpKTsKKyAgICByZXBhdGNoQnVmZmVyLnJl
bGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9u
R2V0QnlWYWxHZW5lcmljKSk7Cit9CisKIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFs
KEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJ
VEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlWYWxJbmZvLT5i
eXRlY29kZUluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggNjA5Y2ExMzg4MjI3ZGI1YmRhNTM5Mjc1MzAzZGFk
ZDJkOGIxY2ViYy4uMzE1ZmNkYWVkY2VlMDVkOTZhMjZkZmE1NjgzODA1ZjU4YjFhYTlkMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwCkBAIC0xNTIsOCArMTUyLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVtaXRMb2FkMihiYXNl
LCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMywgcmVnVDIpOwogICAgIAotICAgIGFkZFNs
b3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6Oklu
dDMyVGFnKSkpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7
CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNoYWJsZUJyYW5jaDMyKE5vdEVxdWFs
LCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSk7CisgICAgYWRkU2xvd0Nh
c2Uobm90SW5kZXgpOwogICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwg
cmVnVDEsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFz
ayksIHJlZ1QxKTsKIApAQCAtMTkyLDcgKzE5Myw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9i
eV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKCk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKICAgICAKLSAg
ICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5
dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0
aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgbm90
SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklUOjpKdW1wTGlzdCBKSVQ6OmVt
aXRDb250aWd1b3VzTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIElu
ZGV4aW5nVHlwZSBleHBlY3RlZFNoYXBlKQpAQCAtMjM2LDcgKzIzNyw0MyBAQCBKSVQ6Okp1bXBM
aXN0IEpJVDo6ZW1pdEFycmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1w
JiBiYWRUeXBlKQogICAgIAogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9Ci0gICAgCisKK0pJVEdl
dEJ5SWRHZW5lcmF0b3IgSklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1w
TGlzdCYgZG9uZUNhc2VzLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQoreworICAgIGludCBkc3QgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworCisgICAgLy8gYmFzZTogdGFnKHJlZ1Qx
KSwgcGF5bG9hZChyZWdUMCkKKyAgICAvLyBwcm9wZXJ0eTogdGFnKHJlZ1QzKSwgcGF5bG9hZChy
ZWdUMikKKworICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMykp
OworICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7CisgICAg
ICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMiwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkp
LCByZWdUMik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hT
dHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFk
ZHJlc3MocmVnVDIsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMik7CisgICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMikpOworICAgICAgICBz
bG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QyLCBTdHJpbmdJ
bXBsOjpmbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21p
YygpKSkpOworICAgIH0KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwg
cmVnVDIsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdl
dEJ5SWRHZW5lcmF0b3IgZ2VuKAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5
dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAg
SlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgRG9u
dFNwaWxsKTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisKKyAgICBkb25lQ2Fz
ZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwoKTsK
KyAgICBnZW4uc2xvd1BhdGhKdW1wKCkubGluayh0aGlzKTsKKworICAgIENhbGwgY2FsbCA9IGNh
bGxPcGVyYXRpb24oV2l0aFByb2ZpbGUsIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgZHN0LCBn
ZW4uc3R1YkluZm8oKSwgcmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBn
ZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNl
cy5hcHBlbmQoanVtcCgpKTsKKworICAgIHJldHVybiBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0
U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBAIC0yNDQsOCArMjgxLDggQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlv
bls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKLSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHBy
b3BlcnR5IGludDMyIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFz
ZSk7IC8vIGJhc2UgY2VsbCBjaGVjaworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVy
dHkgaW50MzIgY2hlY2sKIAogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTMxNCw3ICszNTEsNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBp
bGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwg
YmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5k
KEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwg
YmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVy
aWNDb250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0
Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCmluZGV4IGU1NzkwZDc4NzIyNmJlYTc2MDI0Yzlk
MWQ2NmE2NzYwZjY0ZGU1YTIuLjgzZjVkZTI0ODUyYmMzNzhlZTBhNzcwMzlmNDYzMTgyNWZkZGRi
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC03OSw2ICs3OSw4
IEBAIGNsYXNzIFN5bWJvbCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIEpTT2JqZWN0KiB0
b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIGRvdWJsZSB0
b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKIAorICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZQ
cml2YXRlTmFtZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTeW1ib2wsIG1fcHJpdmF0ZU5h
bWUpOyB9CisKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258149</attachid>
            <date>2015-08-03 20:37:53 -0700</date>
            <delta_ts>2015-08-03 21:29:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150803203747.patch</filename>
            <type>text/plain</type>
            <size>26638</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2U5NmY0OWE0N2MwZjk1NWE0ZWJmMDA3MzdiOTEyMDI4Yjg3YTRiLi4yMTE4MWUwMzc1ZGZjZDQ2
YTA3N2JlZjg2Y2FiYzNiNjEzMDZkYjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0MiBAQAorMjAxNS0wOC0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0QnlWYWxJbmZv
TWFwKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3Rh
Y2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAg
ICAgICAgKEpTQzo6QnlWYWxDb21waWxhdGlvbkluZm86OkJ5VmFsQ29tcGlsYXRpb25JbmZvKToK
KyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAg
ICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2hhc19p
bmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNo
ZWRJZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpw
cml2YXRlQ29tcGlsZUdldEJ5VmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGls
ZUdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
cHV0X2J5X3ZhbCk6CisgICAgICAgICogcnVudGltZS9TeW1ib2wuaDoKKwogMjAxNS0wOC0wMyAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBEb24ndCBz
ZXQgdXAgdGhlIGNhbGxzaXRlIHRvIG9wZXJhdGlvbkdldEJ5VmFsRGVmYXVsdCB3aGVuIHRoZSBv
cHRpbWl6YXRpb24gaXMgYWxyZWFkeSBkb25lCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc1NzcKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5VmFsSW5mby5oCmluZGV4IGQ5ODg1MTYxMzI1OGE3MWI5ZjA0YmE0OTA3M2Y0NDAzM2U1
NzEwODMuLjE5YWQ3MTA0NjhhZDI4MDkxNDNmMzczZGNkN2Y5YWVkNTQ3NGQzYmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTI2LDE2ICsyNiwxNyBA
QAogI2lmbmRlZiBCeVZhbEluZm9faAogI2RlZmluZSBCeVZhbEluZm9faAogCi0jaWYgRU5BQkxF
KEpJVCkKLQogI2luY2x1ZGUgIkNsYXNzSW5mby5oIgogI2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5o
IgorI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNsdWRlICJJbmRleGluZ1R5cGUuaCIKICNp
bmNsdWRlICJKSVRTdHViUm91dGluZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAorI2lmIEVOQUJMRShKSVQpCisKIGVudW0gSklUQXJyYXlNb2RlIHsKICAg
ICBKSVRJbnQzMiwKICAgICBKSVREb3VibGUsCkBAIC0yMDIsOCArMjAzLDkgQEAgaW5saW5lIEpJ
VEFycmF5TW9kZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiBzdHJ1Y3QgQnlWYWxJbmZvIHsKICAgICBCeVZhbEluZm8oKSB7IH0KICAgICAKLSAgICBCeVZh
bEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVt
cCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZSwgaW50
MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkKKyAgICBCeVZhbEluZm8odW5zaWduZWQgYnl0
ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkp1
bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIGludDE2X3QgYmFkVHlwZUp1
bXBUb0RvbmUsIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgIDogYnl0
ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQorICAgICAgICAsIG5vdEluZGV4SnVtcChub3RJbmRl
eEp1bXApCiAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICwgYXJy
YXlNb2RlKGFycmF5TW9kZSkKICAgICAgICAgLCBiYWRUeXBlSnVtcFRvRG9uZShiYWRUeXBlSnVt
cFRvRG9uZSkKQEAgLTIxMSwxNCArMjEzLDE2IEBAIHN0cnVjdCBCeVZhbEluZm8gewogICAgICAg
ICAsIHNsb3dQYXRoQ291bnQoMCkKICAgICB7CiAgICAgfQotICAgIAorCiAgICAgdW5zaWduZWQg
Ynl0ZWNvZGVJbmRleDsKKyAgICBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcDsKICAgICBD
b2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wOwogICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGU7
IC8vIFRoZSBhcnJheSBtb2RlIHRoYXQgd2FzIGJha2VkIGludG8gdGhlIGlubGluZSBKSVQgY29k
ZS4KICAgICBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lOwogICAgIGludDE2X3QgcmV0dXJuQWRk
cmVzc1RvU2xvd1BhdGg7CiAgICAgdW5zaWduZWQgc2xvd1BhdGhDb3VudDsKICAgICBSZWZQdHI8
SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOworICAgIElkZW50aWZpZXIgY2FjaGVkSWQ7CiB9
OwogCiBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZhbEluZm8q
IGluZm8pCkBAIC0yMjYsOSArMjMwLDE1IEBAIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbEluZm9C
eXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5mbykKICAgICByZXR1cm4gaW5mby0+Ynl0ZWNvZGVJ
bmRleDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdp
biwgQnlWYWxJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFwOwor
CisjZWxzZSAvLyBFTkFCTEUoSklUKQorCit0eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4gQnlW
YWxJbmZvTWFwOwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorfSAvLyBuYW1lc3BhY2UgSlND
CisKICNlbmRpZiAvLyBCeVZhbEluZm9faAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDAyMzA5Mjc0NjMyODg0NmY0NzE5YjM3YTg5Zjk2ZmIz
YjU3YjE5NDcuLjdlZjgxNmU0OGEyMzE2NjNiMWY1YjVlYmE0ZTNhNjhiMTU0Mjg2NTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0yNjkzLDYg
KzI2OTMsMjIgQEAgdm9pZCBDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb01hcChDYWxsTGlua0lu
Zm9NYXAmIHJlc3VsdCkKICAgICBnZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCByZXN1bHQpOwog
fQogCit2b2lkIENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRM
b2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSklUKQorICAgIGZv
ciAoYXV0byYgYnlWYWxJbmZvIDogbV9ieVZhbEluZm9zKQorICAgICAgICByZXN1bHQuYWRkKENv
ZGVPcmlnaW4oYnlWYWxJbmZvLmJ5dGVjb2RlSW5kZXgpLCAmYnlWYWxJbmZvKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2RlQmxvY2s6Omdl
dEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyAgICBDb25jdXJyZW50SklU
TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIGdldEJ5VmFsSW5mb01hcChsb2NrZXIsIHJlc3Vs
dCk7Cit9CisKICNpZiBFTkFCTEUoSklUKQogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6
YWRkU3R1YkluZm8oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCmluZGV4IDZjM2ExMTVmNzc1ZWVjM2FiZDIyMDJmZWZhNTI2ZGY4MGEzZmM5MzguLjJhMzRl
MmQ2MmM5YmVlNzQ1YWQ0NWU1ZjRiYWVlYmM5Y2IyNTEyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTIwMCw2ICsyMDAsOSBAQCBjbGFzcyBDb2Rl
QmxvY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29kZUJsb2NrPiwgcHVibGljIFVu
Y29uZGl0aW9uYWxGaQogICAgIAogICAgIHZvaWQgZ2V0Q2FsbExpbmtJbmZvTWFwKGNvbnN0IENv
bmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlua0luZm9NYXAmIHJlc3VsdCk7CiAgICAgdm9pZCBn
ZXRDYWxsTGlua0luZm9NYXAoQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOworCisgICAgdm9pZCBn
ZXRCeVZhbEluZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIEJ5VmFsSW5mb01hcCYg
cmVzdWx0KTsKKyAgICB2b2lkIGdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCk7
CiAgICAgCiAjaWYgRU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1Yklu
Zm8oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKaW5kZXggMjk1YjQ0OGM1ODJkOTdjNDM2MjQ2YjZiYjZmNzFiZjRjZWMxYzNlYi4uZjk0OGUw
M2EyOTNkZjVjODc1MjQ5NTNjM2RjZjRjZDJlYjdjNjdjMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTkyMSw2ICs5MjEsNyBAQCBj
bGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgICAgIAogICAgICAgICBDYWxsTGlua0luZm9NYXAg
bV9jYWxsTGlua0luZm9zOwogICAgICAgICBTdHViSW5mb01hcCBtX3N0dWJJbmZvczsKKyAgICAg
ICAgQnlWYWxJbmZvTWFwIG1fYnlWYWxJbmZvczsKICAgICAgICAgCiAgICAgICAgIC8vIERpZCB3
ZSBzZWUgYW55IHJldHVybnM/IFdlIG5lZWQgdG8gaGFuZGxlIHRoZSAodW5jb21tb24gYnV0IG5l
Y2Vzc2FyeSkKICAgICAgICAgLy8gY2FzZSB3aGVyZSBhIHByb2NlZHVyZSB0aGF0IGRvZXMgbm90
IHJldHVybiB3YXMgaW5saW5lZC4KQEAgLTMwNTgsMTAgKzMwNTksMjcgQEAgYm9vbCBCeXRlQ29k
ZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIFNwZWN1bGF0
ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uV2l0aG91dE9TUkV4aXQoKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwotICAgICAgICAgICAgQXJyYXlNb2RlIGFy
cmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2Zp
bGUsIEFycmF5OjpSZWFkKTsKICAgICAgICAgICAgIE5vZGUqIHByb3BlcnR5ID0gZ2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7Ci0gICAgICAgICAg
ICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUu
YXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKLSAgICAgICAg
ICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCks
IGdldEJ5VmFsKTsKKyAgICAgICAgICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9pbmxpbmVT
dGFja1RvcC0+bV9ieVZhbEluZm9zLmdldChjdXJyZW50Q29kZU9yaWdpbigpKTsKKyAgICAgICAg
ICAgIGlmICghYnlWYWxJbmZvLT5jYWNoZWRJZC5pc051bGwoKSkgeworICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBtX2dyYXBoLmlkZW50aWZpZXJzKCkuZW5zdXJl
KGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgpKTsKKyAgICAgICAgICAgICAgICBVbmlxdWVkU3Ry
aW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOwor
CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IHVpZCBzaG91bGQgYmUgY2hlY2tlZC4KKyAgICAg
ICAgICAgICAgICAvLyBDdXJyZW50IHBsYW4gaXMgaW50cm9kdWNpbmcgYSBuZXcgREZHIG5vZGUs
IENoZWNrSWRlbnQuIEFuZCB3aXRoIHRoaXMgbm9kZSwgd2UgdXNlIFN0cmluZ0lkZW50VXNlIC8g
U3ltYm9sVXNlIGluIEZpeHVwIHBoYXNlLgorICAgICAgICAgICAgICAgIC8vIGFkZFRvR3JhcGgo
Q2hlY2tJZGVudCwgT3BJbmZvKHVpZCksIHByb3BlcnR5KTsKKworICAgICAgICAgICAgICAgIEdl
dEJ5SWRTdGF0dXMgZ2V0QnlJZFN0YXR1cyA9IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCisg
ICAgICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9k
ZmdDb2RlQmxvY2ssCisgICAgICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fc3R1
YkluZm9zLCBtX2RmZ1N0dWJJbmZvcywKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudENvZGVP
cmlnaW4oKSwgdWlkKTsKKworICAgICAgICAgICAgICAgIGhhbmRsZUdldEJ5SWQoY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlvbiwgYmFzZSwgaWRlbnRpZmllck51bWJl
ciwgZ2V0QnlJZFN0YXR1cyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IEFycmF5TW9kZSBhcnJheU1vZGUgPSBnZXRBcnJheU1vZGUoY3VycmVudEluc3RydWN0aW9uWzRd
LnUuYXJyYXlQcm9maWxlLCBBcnJheTo6UmVhZCk7CisgICAgICAgICAgICAgICAgTm9kZSogZ2V0
QnlWYWwgPSBhZGRUb0dyYXBoKEdldEJ5VmFsLCBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgpKSwg
T3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlLCBwcm9wZXJ0eSk7CisgICAgICAgICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgZ2V0QnlW
YWwpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfYnlf
dmFsKTsKICAgICAgICAgfQpAQCAtMzk2Myw2ICszOTgxLDcgQEAgQnl0ZUNvZGVQYXJzZXI6Oklu
bGluZVN0YWNrRW50cnk6OklubGluZVN0YWNrRW50cnkoCiAgICAgICAgIGlmIChtX3Byb2ZpbGVk
QmxvY2stPmhhc0Jhc2VsaW5lSklUUHJvZmlsaW5nKCkpIHsKICAgICAgICAgICAgIG1fcHJvZmls
ZWRCbG9jay0+Z2V0U3R1YkluZm9NYXAobG9ja2VyLCBtX3N0dWJJbmZvcyk7CiAgICAgICAgICAg
ICBtX3Byb2ZpbGVkQmxvY2stPmdldENhbGxMaW5rSW5mb01hcChsb2NrZXIsIG1fY2FsbExpbmtJ
bmZvcyk7CisgICAgICAgICAgICBtX3Byb2ZpbGVkQmxvY2stPmdldEJ5VmFsSW5mb01hcChsb2Nr
ZXIsIG1fYnlWYWxJbmZvcyk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKaW5kZXggOWFmMzMyZWI3OGUxODlhZTZhNTNiMjIzNTBhZjc3YjVmOWQ3ZWIy
Yi4uMDE4ZTZjZmIzYzg4ZjQyY2Y0NDM4Mjg5YzEwY2EzZDkxMDQ3OGFmMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcApAQCAtNjYwLDYgKzY2MCw3IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJ
VDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogCiAgICAgbV9j
b2RlQmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZvcyhtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNp
emUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYnlWYWxDb21waWxhdGlvbklu
Zm8uc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAg
PSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0
aW9uSW5mb1tpXS5ub3RJbmRleEp1bXApKTsKICAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRU
eXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFs
Q29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1wKSk7CiAgICAgICAgIENvZGVMb2NhdGlvbkxh
YmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKG1fYnlWYWxDb21waWxhdGlv
bkluZm9baV0uZG9uZVRhcmdldCk7CiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRo
VGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ld
LnNsb3dQYXRoVGFyZ2V0KTsKQEAgLTY2Nyw2ICs2NjgsNyBAQCBDb21waWxhdGlvblJlc3VsdCBK
SVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAg
CiAgICAgICAgIG1fY29kZUJsb2NrLT5ieVZhbEluZm8oaSkgPSBCeVZhbEluZm8oCiAgICAgICAg
ICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJ5dGVjb2RlSW5kZXgsCisgICAgICAgICAg
ICBub3RJbmRleEp1bXAsCiAgICAgICAgICAgICBiYWRUeXBlSnVtcCwKICAgICAgICAgICAgIG1f
YnlWYWxDb21waWxhdGlvbkluZm9baV0uYXJyYXlNb2RlLAogICAgICAgICAgICAgZGlmZmVyZW5j
ZUJldHdlZW5Db2RlUHRyKGJhZFR5cGVKdW1wLCBkb25lVGFyZ2V0KSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oCmluZGV4IDAyMTM5NjM0YjFkZmVkNjEwNTYyZGVjYjU3OGRiMzhkNmIxNjAzNGUuLmRl
Y2Y3OWVhMmI0YTM2ZmViNTBhZjRkNWI0NjMwM2Y4NDE2ZjIwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaApAQCAtMTQ5LDggKzE0OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHN0cnVjdCBC
eVZhbENvbXBpbGF0aW9uSW5mbyB7CiAgICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKCkgeyB9
CiAgICAgICAgIAotICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbyh1bnNpZ25lZCBieXRlY29k
ZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJy
YXlNb2RlIGFycmF5TW9kZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQpCisgICAg
ICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIE1hY3JvQXNz
ZW1ibGVyOjpQYXRjaGFibGVKdW1wIG5vdEluZGV4SnVtcCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNo
YWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1i
bGVyOjpMYWJlbCBkb25lVGFyZ2V0KQogICAgICAgICAgICAgOiBieXRlY29kZUluZGV4KGJ5dGVj
b2RlSW5kZXgpCisgICAgICAgICAgICAsIG5vdEluZGV4SnVtcChub3RJbmRleEp1bXApCiAgICAg
ICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1wKQogICAgICAgICAgICAgLCBhcnJheU1v
ZGUoYXJyYXlNb2RlKQogICAgICAgICAgICAgLCBkb25lVGFyZ2V0KGRvbmVUYXJnZXQpCkBAIC0x
NTgsNiArMTU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAg
ICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXg7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRj
aGFibGVKdW1wIG5vdEluZGV4SnVtcDsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJs
ZUp1bXAgYmFkVHlwZUp1bXA7CiAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGU7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0OwpAQCAtMjA0LDYgKzIwNiwxMyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGppdC5wcml2YXRlQ29tcGlsZUdldEJ5VmFs
KGJ5VmFsSW5mbywgcmV0dXJuQWRkcmVzcywgYXJyYXlNb2RlKTsKICAgICAgICAgfQogCisgICAg
ICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChWTSogdm0sIENvZGVC
bG9jayogY29kZUJsb2NrLCBCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciBy
ZXR1cm5BZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCisgICAgICAgIHsK
KyAgICAgICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9jayk7CisgICAgICAgICAgICBqaXQubV9i
eXRlY29kZU9mZnNldCA9IGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKKyAgICAgICAgICAgIGpp
dC5wcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKGJ5VmFsSW5mbywgcmV0dXJuQWRk
cmVzcywgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQorCiAgICAgICAgIHN0YXRpYyB2b2lkIGNv
bXBpbGVQdXRCeVZhbChWTSogdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBCeVZhbEluZm8qIGJ5
VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKSVRBcnJheU1vZGUgYXJy
YXlNb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOwpA
QCAtMjQ2LDYgKzI1NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBDb21waWxhdGlvblJl
c3VsdCBwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCk7CiAgICAgICAgIAogICAg
ICAgICB2b2lkIHByaXZhdGVDb21waWxlR2V0QnlWYWwoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVz
c1B0ciwgSklUQXJyYXlNb2RlKTsKKyAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFs
V2l0aENhY2hlZElkKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIGNvbnN0IElkZW50aWZp
ZXImKTsKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyosIFJl
dHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CiAKICAgICAgICAgdm9pZCBwcml2YXRlQ29t
cGlsZUhhc0luZGV4ZWRQcm9wZXJ0eShCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRB
cnJheU1vZGUpOwpAQCAtMzcxLDcgKzM4MSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBK
dW1wTGlzdCBlbWl0QXJyYXlTdG9yYWdlUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVK
dW1wJiBiYWRUeXBlKTsKICAgICAgICAgSnVtcExpc3QgZW1pdEludFR5cGVkQXJyYXlQdXRCeVZh
bChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlUeXBlKTsK
ICAgICAgICAgSnVtcExpc3QgZW1pdEZsb2F0VHlwZWRBcnJheVB1dEJ5VmFsKEluc3RydWN0aW9u
KiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgVHlwZWRBcnJheVR5cGUpOwotICAgICAgICAKKwor
ICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0
cnVjdGlvbiosIGNvbnN0IElkZW50aWZpZXImLCBKdW1wTGlzdCYgZG9uZUNhc2VzLCBKdW1wTGlz
dCYgc2xvd0Nhc2VzKTsKKwogICAgICAgICBlbnVtIEZpbmFsT2JqZWN0TW9kZSB7IE1heUJlRmlu
YWwsIEtub3duTm90RmluYWwgfTsKIAogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gSnVt
cCBicmFuY2hTdHJ1Y3R1cmUoUmVsYXRpb25hbENvbmRpdGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0
cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXgg
OTBiNTMyMTVhYjA0Yzc0MzM4YWRiYTgzNjMwNDBjMzg0ZGZmYTMxZS4uZGFmMmFmZjM3YzAwMDI1
Zjg4NmJkMzEwYzQ0MzdkYzA3ZTM1MDlhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCkBAIC0xMTA4LDcgKzExMDgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNf
aW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAog
ICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBi
YWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQo
QnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBi
YWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5k
ZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAKaW5kZXggOGE2OTc1YzE2ZDZiOTZlY2ExZjI5NjNkNGY1OTEyYmYw
NTY4OTZlNS4uNmYwZDhhOTA3MzExZDYyNGE2NTRkNWQ2OTVjNDk1NGM4ZTc1MmNiNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xNTU1LDcgKzE1
NTUsMjMgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9w
dGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEoKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KLSAgICAKKworICAgIGlmIChiYXNlVmFsdWUuaXNPYmplY3QoKSAmJiAoc3Vic2Ny
aXB0LmlzU3ltYm9sKCkgfHwgc3Vic2NyaXB0LmlzU3RyaW5nKCkpKSB7CisgICAgICAgIGNvbnN0
IElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZXhlYyk7
CisKKyAgICAgICAgaWYgKCFzdWJzY3JpcHQuaXNTdHJpbmcoKSB8fCAhcGFyc2VJbmRleChwcm9w
ZXJ0eU5hbWUpKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IGV4ZWMt
PmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOworICAgICAgICAgICAgQVNTRVJUKGJ5dGVjb2Rl
T2Zmc2V0KTsKKyAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJs
b2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOworICAgICAgICAgICAgQVNT
RVJUKCFieVZhbEluZm8uc3R1YlJvdXRpbmUpOworICAgICAgICAgICAgSklUOjpjb21waWxlR2V0
QnlWYWxXaXRoQ2FjaGVkSWQoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgJmJ5VmFsSW5mbywgUmV0
dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBwcm9wZXJ0eU5hbWUpOworICAgICAg
ICB9CisKKyAgICAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKKyAgICAgICAgYm9v
bCBoYXNSZXN1bHQgPSBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGFzUmVzdWx0ID8gc2xv
dC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpIDoganNVbmRlZmluZWQoKSk7CisgICAgfQor
CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlw
dCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggNGVmMDZkOTIxM2EyYjFk
YmZmYmE0YzdjMzM0ZDJmNmYxYzQ3OTE3ZS4uZTgyZDhiYjVjNzM1NDJlODhjMGE2YzI2NDBhOTIz
ODUwNTlkYmMxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAKQEAgLTEwMCw4ICsxMDAsMTUgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5
X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIEFycmF5UHJvZmlsZSog
cHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhiYXNlLCByZWdUMCwgcHJvcGVydHksIHJlZ1QxKTsK
LSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKIAorICAg
IGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CisKKyAgICAvLyBGSVhN
RTogV2UgbmVlZCB0byBpbXBsZW1lbnQgcGF0Y2hhYmxlQnJhbmNoNjQuCisgICAgSnVtcCBpc0lu
ZGV4ID0gZW1pdEp1bXBJZkltbWVkaWF0ZUludGVnZXIocmVnVDEpOworICAgIFBhdGNoYWJsZUp1
bXAgbm90SW5kZXggPSBwYXRjaGFibGVKdW1wKCk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgp
OworCisgICAgaXNJbmRleC5saW5rKHRoaXMpOwogICAgIC8vIFRoaXMgaXMgdGVjaG5pY2FsbHkg
aW5jb3JyZWN0IC0gd2UncmUgemVyby1leHRlbmRpbmcgYW4gaW50MzIuICBPbiB0aGUgaG90IHBh
dGggdGhpcyBkb2Vzbid0IG1hdHRlci4KICAgICAvLyBXZSBjaGVjayB0aGUgdmFsdWUgYXMgaWYg
aXQgd2FzIGEgdWludDMyIGFnYWluc3QgdGhlIG1fdmVjdG9yTGVuZ3RoIC0gd2hpY2ggd2lsbCBh
bHdheXMgZmFpbCBpZgogICAgIC8vIG51bWJlciB3YXMgc2lnbmVkIHNpbmNlIG1fdmVjdG9yTGVu
Z3RoIGlzIGFsd2F5cyBsZXNzIHRoYW4gaW50bWF4IChzaW5jZSB0aGUgdG90YWwgYWxsb2NhdGlv
bgpAQCAtMTEwLDcgKzExNyw2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAvLyBleHRlbmRpbmcgc2luY2UgaXQgbWFr
ZXMgaXQgZWFzaWVyIHRvIHJlLXRhZyB0aGUgdmFsdWUgaW4gdGhlIHNsb3cgY2FzZS4KICAgICB6
ZXJvRXh0ZW5kMzJUb1B0cihyZWdUMSwgcmVnVDEpOwogCi0gICAgZW1pdEp1bXBTbG93Q2FzZUlm
Tm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENl
bGwocmVnVDAsIHJlZ1QyLCBwcm9maWxlKTsKICAgICBhbmQzMihUcnVzdGVkSW1tMzIoSW5kZXhp
bmdTaGFwZU1hc2spLCByZWdUMik7CiAKQEAgLTE1MCw3ICsxNTYsNyBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZSgpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsK
ICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9u
SW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZh
bENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9m
ZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklUOjpKdW1wTGlz
dCBKSVQ6OmVtaXREb3VibGVMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlw
ZSkKQEAgLTE5NSw2ICsyMDEsMzkgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3Jh
Z2VMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICByZXR1cm4g
c2xvd0Nhc2VzOwogfQogCitKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0
aENhY2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNl
cykKK3sKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKwor
ICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMSkpOworICAgIGlm
IChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJy
YW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpzdHJ1Y3R1cmVJ
RE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQ
dHIoQWRkcmVzcyhyZWdUMSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMSk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUo
Tm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1f
dm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVn
VDEsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMSk7CisgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMSkpOworICAgICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QxLCBTdHJpbmdJbXBsOjpmbGFn
c09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21pYygpKSkpOwor
ICAgIH0KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDEsIFRy
dXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdldEJ5SWRHZW5l
cmF0b3IgZ2VuKAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zm
c2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAgSlNWYWx1ZVJl
Z3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVy
YXRlRmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisg
ICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgp
LmxpbmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxl
LCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QwLCBw
cm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRo
QmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIHJldHVy
biBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0
ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBA
IC0yMDIsOCArMjQxLDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVy
dHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSog
cHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKLSAg
ICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgbGlua1Ns
b3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjaworICAgIGxp
bmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBKdW1wIG5vbkNl
bGwgPSBqdW1wKCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNr
CiAgICAgSnVtcCBub3RTdHJpbmcgPSBicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIApAQCAtMjk5
LDcgKzMzOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBMYWJlbCBkb25lID0gbGFiZWwoKTsKICAgICAK
LSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyht
X2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBp
bGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwg
UGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiAKIH0KIApAQCAtOTk5LDYg
KzEwMzgsMzUgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwoQnlWYWxJbmZvKiBi
eVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWQKICAgICByZXBhdGNoQnVmZmVyLnJl
bGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9u
R2V0QnlWYWxHZW5lcmljKSk7CiB9CiAKK3ZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFs
V2l0aENhY2hlZElkKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVy
bkFkZHJlc3MsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKKyAgICBJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uID0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJl
Z2luKCkgKyBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisKKyAgICBKdW1wTGlzdCBkb25lQ2Fz
ZXM7CisgICAgSnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgSklUR2V0QnlJZEdlbmVyYXRvciBn
ZW4gPSBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoY3VycmVudEluc3RydWN0aW9uLCBwcm9wZXJ0
eU5hbWUsIGRvbmVDYXNlcywgc2xvd0Nhc2VzKTsKKworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fY29kZUJsb2NrLT5tX2xvY2spOworICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIo
Km1fdm0sICp0aGlzLCBtX2NvZGVCbG9jayk7CisgICAgcGF0Y2hCdWZmZXIubGluayhzbG93Q2Fz
ZXMsIENvZGVMb2NhdGlvbkxhYmVsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlRnJvbUV4
ZWN1dGFibGVBZGRyZXNzKHJldHVybkFkZHJlc3MudmFsdWUoKSkpLmxhYmVsQXRPZmZzZXQoYnlW
YWxJbmZvLT5yZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkpOworICAgIHBhdGNoQnVmZmVyLmxpbmso
ZG9uZUNhc2VzLCBieVZhbEluZm8tPmJhZFR5cGVKdW1wLmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZv
LT5iYWRUeXBlSnVtcFRvRG9uZSkpOworICAgIGZvciAoY29uc3QgYXV0byYgY2FsbFNpdGUgOiBt
X2NhbGxzKSB7CisgICAgICAgIGlmIChjYWxsU2l0ZS50bykKKyAgICAgICAgICAgIHBhdGNoQnVm
ZmVyLmxpbmsoY2FsbFNpdGUuZnJvbSwgRnVuY3Rpb25QdHIoY2FsbFNpdGUudG8pKTsKKyAgICB9
CisgICAgZ2VuLmZpbmFsaXplKHBhdGNoQnVmZmVyKTsKKworICAgIGJ5VmFsSW5mby0+c3R1YlJv
dXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICBtX2NvZGVCbG9jaywgcGF0
Y2hCdWZmZXIsCisgICAgICAgICgiQmFzZWxpbmUgZ2V0X2J5X3ZhbCB3aXRoIGNhY2hlZCBwcm9w
ZXJ0eSBuYW1lICclcycgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHByb3BlcnR5TmFt
ZS5pbXBsKCktPnV0ZjgoKS5kYXRhKCksIHRvQ1N0cmluZygqbV9jb2RlQmxvY2spLmRhdGEoKSwg
cmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CisgICAgYnlWYWxJbmZvLT5jYWNoZWRJZCA9IHByb3Bl
cnR5TmFtZTsKKworICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7
CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5ub3RJbmRleEp1bXAsIENvZGVM
b2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkpKTsKKyAg
ICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVu
Y3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7Cit9CisKIHZvaWQgSklUOjpwcml2
YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRy
IHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAgSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggNjA5Y2ExMzg4MjI3
ZGI1YmRhNTM5Mjc1MzAzZGFkZDJkOGIxY2ViYy4uMzE1ZmNkYWVkY2VlMDVkOTZhMjZkZmE1Njgz
ODA1ZjU4YjFhYTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xNTIsOCArMTUyLDkgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAog
ICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMywgcmVnVDIp
OwogICAgIAotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpT
Q2VsbChiYXNlLCByZWdUMSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNoYWJs
ZUJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFn
KSk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogICAgIGVtaXRBcnJheVByb2ZpbGluZ1Np
dGVXaXRoQ2VsbChyZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJbW0z
MihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QxKTsKIApAQCAtMTkyLDcgKzE5Myw3IEBAIHZvaWQg
SklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEs
IHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENv
bXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7Cisg
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9i
eXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklU
OjpKdW1wTGlzdCBKSVQ6OmVtaXRDb250aWd1b3VzTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJs
ZUp1bXAmIGJhZFR5cGUsIEluZGV4aW5nVHlwZSBleHBlY3RlZFNoYXBlKQpAQCAtMjM2LDcgKzIz
Nyw0MyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEFycmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rp
b24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQogICAgIAogICAgIHJldHVybiBzbG93Q2FzZXM7
CiB9Ci0gICAgCisKK0pJVEdldEJ5SWRHZW5lcmF0b3IgSklUOjplbWl0R2V0QnlWYWxXaXRoQ2Fj
aGVkSWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2VzLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQor
eworICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworCisgICAg
Ly8gYmFzZTogdGFnKHJlZ1QxKSwgcGF5bG9hZChyZWdUMCkKKyAgICAvLyBwcm9wZXJ0eTogdGFn
KHJlZ1QzKSwgcGF5bG9hZChyZWdUMikKKworICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJ
Zk5vdEpTQ2VsbChyZWdUMykpOworICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewor
ICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVz
cyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0
dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMiwgU3ltYm9sOjpvZmZz
ZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nh
c2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDIsIEpTQ2Vs
bDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOwor
ICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkp
LCByZWdUMik7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCBy
ZWdUMikpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRy
ZXNzKHJlZ1QyLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmlu
Z0ltcGw6OmZsYWdJc0F0b21pYygpKSkpOworICAgIH0KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJy
YW5jaFB0cihOb3RFcXVhbCwgcmVnVDIsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwo
KSkpKTsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAorICAgICAgICBtX2NvZGVCbG9j
aywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdp
c3RlcnMoKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3Mo
cmVnVDEsIHJlZ1QwKSwgRG9udFNwaWxsKTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhp
cyk7CisKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICBMYWJlbCBjb2xkUGF0
aEJlZ2luID0gbGFiZWwoKTsKKyAgICBnZW4uc2xvd1BhdGhKdW1wKCkubGluayh0aGlzKTsKKwor
ICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oV2l0aFByb2ZpbGUsIG9wZXJhdGlvbkdldEJ5
SWRPcHRpbWl6ZSwgZHN0LCBnZW4uc3R1YkluZm8oKSwgcmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eU5h
bWUuaW1wbCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNh
bGwpOworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIHJldHVybiBnZW47Cit9
CisKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAg
ICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBAIC0yNDQsOCAr
MjgxLDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9
IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKLSAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlSWZO
b3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjaworICAgIGxpbmtTbG93Q2Fz
ZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKIAogICAgIEp1bXAgbm9uQ2VsbCA9IGp1
bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTMx
NCw3ICszNTEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAg
Ci0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8o
bV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQs
IFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBM
aXN0IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4
aW5nU2hhcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1i
b2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCmluZGV4IGU1Nzkw
ZDc4NzIyNmJlYTc2MDI0YzlkMWQ2NmE2NzYwZjY0ZGU1YTIuLjgzZjVkZTI0ODUyYmMzNzhlZTBh
NzcwMzlmNDYzMTgyNWZkZGRiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJv
bC5oCkBAIC03OSw2ICs3OSw4IEBAIGNsYXNzIFN5bWJvbCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwg
ewogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNv
bnN0OwogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKIAorICAgIHN0YXRp
YyBzaXplX3Qgb2Zmc2V0T2ZQcml2YXRlTmFtZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihT
eW1ib2wsIG1fcHJpdmF0ZU5hbWUpOyB9CisKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95KEpTQ2VsbCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258153</attachid>
            <date>2015-08-03 21:29:41 -0700</date>
            <delta_ts>2015-08-04 00:24:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150803212935.patch</filename>
            <type>text/plain</type>
            <size>31891</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2U5NmY0OWE0N2MwZjk1NWE0ZWJmMDA3MzdiOTEyMDI4Yjg3YTRiLi5jZTIzYTcxMWNkNjhiNjg0
YTQyOWFkY2Y2M2Q2YzQyODdhMWJiZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1NSBAQAorMjAxNS0wOC0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0QnlWYWxJbmZv
TWFwKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3Rh
Y2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2Rl
KToKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6
OlNhZmVUb0V4ZWN1dGVFZGdlOjpvcGVyYXRvcigpKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVTeW1ib2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUp
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdV
c2VLaW5kLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogZGZn
L0RGR1VzZUtpbmQuaDoKKyAgICAgICAgKEpTQzo6REZHOjp0eXBlRmlsdGVyRm9yKToKKyAgICAg
ICAgKEpTQzo6REZHOjppc0NlbGwpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAg
IChKU0M6OkJ5VmFsQ29tcGlsYXRpb25JbmZvOjpCeVZhbENvbXBpbGF0aW9uSW5mbyk6CisgICAg
ICAgIChKU0M6OkpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKiBq
aXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhl
ZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAq
IGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9n
ZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0
ZUNvbXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRC
eVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0U2xvd19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9i
eV92YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sLmg6CisKIDIwMTUtMDgtMDMgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgRG9uJ3Qgc2V0IHVw
IHRoZSBjYWxsc2l0ZSB0byBvcGVyYXRpb25HZXRCeVZhbERlZmF1bHQgd2hlbiB0aGUgb3B0aW1p
emF0aW9uIGlzIGFscmVhZHkgZG9uZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ3NTc3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeVZhbEluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eVZhbEluZm8uaAppbmRleCBkOTg4NTE2MTMyNThhNzFiOWYwNGJhNDkwNzNmNDQwMzNlNTcxMDgz
Li4xOWFkNzEwNDY4YWQyODA5MTQzZjM3M2RjZDdmOWFlZDU0NzRkM2JlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCkBAIC0yNiwxNiArMjYsMTcgQEAKICNp
Zm5kZWYgQnlWYWxJbmZvX2gKICNkZWZpbmUgQnlWYWxJbmZvX2gKIAotI2lmIEVOQUJMRShKSVQp
Ci0KICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRlICJDb2RlTG9jYXRpb24uaCIKKyNp
bmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVkZSAiSW5kZXhpbmdUeXBlLmgiCiAjaW5jbHVk
ZSAiSklUU3R1YlJvdXRpbmUuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKKyNpZiBFTkFCTEUoSklUKQorCiBlbnVtIEpJVEFycmF5TW9kZSB7CiAgICAgSklU
SW50MzIsCiAgICAgSklURG91YmxlLApAQCAtMjAyLDggKzIwMyw5IEBAIGlubGluZSBKSVRBcnJh
eU1vZGUgaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKFN0cnVjdHVyZSogc3RydWN0dXJlKQogc3Ry
dWN0IEJ5VmFsSW5mbyB7CiAgICAgQnlWYWxJbmZvKCkgeyB9CiAgICAgCi0gICAgQnlWYWxJbmZv
KHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAsIEpJ
VEFycmF5TW9kZSBhcnJheU1vZGUsIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmUsIGludDE2X3Qg
cmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2Rl
SW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25KdW1wIGJh
ZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9E
b25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQogICAgICAgICA6IGJ5dGVjb2Rl
SW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgLCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1w
KQogICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1wKQogICAgICAgICAsIGFycmF5TW9k
ZShhcnJheU1vZGUpCiAgICAgICAgICwgYmFkVHlwZUp1bXBUb0RvbmUoYmFkVHlwZUp1bXBUb0Rv
bmUpCkBAIC0yMTEsMTQgKzIxMywxNiBAQCBzdHJ1Y3QgQnlWYWxJbmZvIHsKICAgICAgICAgLCBz
bG93UGF0aENvdW50KDApCiAgICAgewogICAgIH0KLSAgICAKKwogICAgIHVuc2lnbmVkIGJ5dGVj
b2RlSW5kZXg7CisgICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXA7CiAgICAgQ29kZUxv
Y2F0aW9uSnVtcCBiYWRUeXBlSnVtcDsKICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOyAvLyBU
aGUgYXJyYXkgbW9kZSB0aGF0IHdhcyBiYWtlZCBpbnRvIHRoZSBpbmxpbmUgSklUIGNvZGUuCiAg
ICAgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZTsKICAgICBpbnQxNl90IHJldHVybkFkZHJlc3NU
b1Nsb3dQYXRoOwogICAgIHVuc2lnbmVkIHNsb3dQYXRoQ291bnQ7CiAgICAgUmVmUHRyPEpJVFN0
dWJSb3V0aW5lPiBzdHViUm91dGluZTsKKyAgICBJZGVudGlmaWVyIGNhY2hlZElkOwogfTsKIAog
aW5saW5lIHVuc2lnbmVkIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZv
KQpAQCAtMjI2LDkgKzIzMCwxNSBAQCBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNv
ZGVJbmRleChCeVZhbEluZm8qIGluZm8pCiAgICAgcmV0dXJuIGluZm8tPmJ5dGVjb2RlSW5kZXg7
CiB9CiAKLX0gLy8gbmFtZXNwYWNlIEpTQwordHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIEJ5
VmFsSW5mbyosIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IEJ5VmFsSW5mb01hcDsKKworI2Vs
c2UgLy8gRU5BQkxFKEpJVCkKKwordHlwZWRlZiBIYXNoTWFwPGludCwgdm9pZCo+IEJ5VmFsSW5m
b01hcDsKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKK30gLy8gbmFtZXNwYWNlIEpTQworCiAj
ZW5kaWYgLy8gQnlWYWxJbmZvX2gKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmNwcAppbmRleCAwMjMwOTI3NDYzMjg4NDZmNDcxOWIzN2E4OWY5NmZiM2I1N2Ix
OTQ3Li43ZWY4MTZlNDhhMjMxNjYzYjFmNWI1ZWJhNGUzYTY4YjE1NDI4NjU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMjY5Myw2ICsyNjkz
LDIyIEBAIHZvaWQgQ29kZUJsb2NrOjpnZXRDYWxsTGlua0luZm9NYXAoQ2FsbExpbmtJbmZvTWFw
JiByZXN1bHQpCiAgICAgZ2V0Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsKIH0KIAor
dm9pZCBDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2Vy
JiwgQnlWYWxJbmZvTWFwJiByZXN1bHQpCit7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBmb3IgKGF1
dG8mIGJ5VmFsSW5mbyA6IG1fYnlWYWxJbmZvcykKKyAgICAgICAgcmVzdWx0LmFkZChDb2RlT3Jp
Z2luKGJ5VmFsSW5mby5ieXRlY29kZUluZGV4KSwgJmJ5VmFsSW5mbyk7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShyZXN1bHQpOworI2VuZGlmCit9CisKK3ZvaWQgQ29kZUJsb2NrOjpnZXRCeVZh
bEluZm9NYXAoQnlWYWxJbmZvTWFwJiByZXN1bHQpCit7CisgICAgQ29uY3VycmVudEpJVExvY2tl
ciBsb2NrZXIobV9sb2NrKTsKKyAgICBnZXRCeVZhbEluZm9NYXAobG9ja2VyLCByZXN1bHQpOwor
fQorCiAjaWYgRU5BQkxFKEpJVCkKIFN0cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmFkZFN0
dWJJbmZvKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApp
bmRleCA2YzNhMTE1Zjc3NWVlYzNhYmQyMjAyZmVmYTUyNmRmODBhM2ZjOTM4Li4yYTM0ZTJkNjJj
OWJlZTc0NWFkNDVlNWY0YmFlZWJjOWNiMjUxMjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0yMDAsNiArMjAwLDkgQEAgY2xhc3MgQ29kZUJsb2Nr
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRp
dGlvbmFsRmkKICAgICAKICAgICB2b2lkIGdldENhbGxMaW5rSW5mb01hcChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOwogICAgIHZvaWQgZ2V0Q2Fs
bExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KTsKKworICAgIHZvaWQgZ2V0QnlW
YWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3Vs
dCk7CisgICAgdm9pZCBnZXRCeVZhbEluZm9NYXAoQnlWYWxJbmZvTWFwJiByZXN1bHQpOwogICAg
IAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmlu
ZGV4IDI5NWI0NDhjNTgyZDk3YzQzNjI0NmI2YmI2ZjcxYmY0Y2VjMWMzZWIuLmY5NDhlMDNhMjkz
ZGY1Yzg3NTI0OTUzYzNkY2Y0Y2QyZWI3YzY3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC05MjEsNiArOTIxLDcgQEAgY2xhc3Mg
Qnl0ZUNvZGVQYXJzZXIgewogICAgICAgICAKICAgICAgICAgQ2FsbExpbmtJbmZvTWFwIG1fY2Fs
bExpbmtJbmZvczsKICAgICAgICAgU3R1YkluZm9NYXAgbV9zdHViSW5mb3M7CisgICAgICAgIEJ5
VmFsSW5mb01hcCBtX2J5VmFsSW5mb3M7CiAgICAgICAgIAogICAgICAgICAvLyBEaWQgd2Ugc2Vl
IGFueSByZXR1cm5zPyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgKHVuY29tbW9uIGJ1dCBuZWNlc3Nh
cnkpCiAgICAgICAgIC8vIGNhc2Ugd2hlcmUgYSBwcm9jZWR1cmUgdGhhdCBkb2VzIG5vdCByZXR1
cm4gd2FzIGlubGluZWQuCkBAIC0zMDU4LDEwICszMDU5LDI3IEBAIGJvb2wgQnl0ZUNvZGVQYXJz
ZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlw
ZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbldpdGhvdXRPU1JFeGl0KCk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKLSAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1v
ZGUgPSBnZXRBcnJheU1vZGUoY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlLCBB
cnJheTo6UmVhZCk7CiAgICAgICAgICAgICBOb2RlKiBwcm9wZXJ0eSA9IGdldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwotICAgICAgICAgICAgTm9k
ZSogZ2V0QnlWYWwgPSBhZGRUb0dyYXBoKEdldEJ5VmFsLCBPcEluZm8oYXJyYXlNb2RlLmFzV29y
ZCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlLCBwcm9wZXJ0eSk7Ci0gICAgICAgICAgICBz
ZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBnZXRC
eVZhbCk7CisgICAgICAgICAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1faW5saW5lU3RhY2tU
b3AtPm1fYnlWYWxJbmZvcy5nZXQoY3VycmVudENvZGVPcmlnaW4oKSk7CisgICAgICAgICAgICBp
ZiAoIWJ5VmFsSW5mby0+Y2FjaGVkSWQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9ncmFwaC5pZGVudGlmaWVycygpLmVuc3VyZShieVZh
bEluZm8tPmNhY2hlZElkLmltcGwoKSk7CisgICAgICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0lt
cGwqIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVyXTsKKworICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiB1aWQgc2hvdWxkIGJlIGNoZWNrZWQuCisgICAgICAgICAg
ICAgICAgLy8gQ3VycmVudCBwbGFuIGlzIGludHJvZHVjaW5nIGEgbmV3IERGRyBub2RlLCBDaGVj
a0lkZW50LiBBbmQgd2l0aCB0aGlzIG5vZGUsIHdlIHVzZSBTdHJpbmdJZGVudFVzZSAvIFN5bWJv
bFVzZSBpbiBGaXh1cCBwaGFzZS4KKyAgICAgICAgICAgICAgICAvLyBhZGRUb0dyYXBoKENoZWNr
SWRlbnQsIE9wSW5mbyh1aWQpLCBwcm9wZXJ0eSk7CisKKyAgICAgICAgICAgICAgICBHZXRCeUlk
U3RhdHVzIGdldEJ5SWRTdGF0dXMgPSBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAorICAgICAg
ICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1fZGZnQ29k
ZUJsb2NrLAorICAgICAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZv
cywgbV9kZmdTdHViSW5mb3MsCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb2RlT3JpZ2lu
KCksIHVpZCk7CisKKyAgICAgICAgICAgICAgICBoYW5kbGVHZXRCeUlkKGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51Lm9wZXJhbmQsIHByZWRpY3Rpb24sIGJhc2UsIGlkZW50aWZpZXJOdW1iZXIsIGdl
dEJ5SWRTdGF0dXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBcnJh
eU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFy
cmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOworICAgICAgICAgICAgICAgIE5vZGUqIGdldEJ5VmFs
ID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5m
byhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOworICAgICAgICAgICAgICAgIHNldChWaXJ0
dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGdldEJ5VmFsKTsK
KyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZ2V0X2J5X3ZhbCk7
CiAgICAgICAgIH0KQEAgLTM5NjMsNiArMzk4MSw3IEBAIEJ5dGVDb2RlUGFyc2VyOjpJbmxpbmVT
dGFja0VudHJ5OjpJbmxpbmVTdGFja0VudHJ5KAogICAgICAgICBpZiAobV9wcm9maWxlZEJsb2Nr
LT5oYXNCYXNlbGluZUpJVFByb2ZpbGluZygpKSB7CiAgICAgICAgICAgICBtX3Byb2ZpbGVkQmxv
Y2stPmdldFN0dWJJbmZvTWFwKGxvY2tlciwgbV9zdHViSW5mb3MpOwogICAgICAgICAgICAgbV9w
cm9maWxlZEJsb2NrLT5nZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCBtX2NhbGxMaW5rSW5mb3Mp
OworICAgICAgICAgICAgbV9wcm9maWxlZEJsb2NrLT5nZXRCeVZhbEluZm9NYXAobG9ja2VyLCBt
X2J5VmFsSW5mb3MpOwogICAgICAgICB9CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYzQ0MjMxMDE2MzI2NTdkM2U4M2Y5NzFl
NjZhODNmNjI1MDU3MTUyNC4uOTIwYjJlZWE3MmIzYTNmM2JmNzMwOWI3MDU0ZmE1OTJiM2QyNzg0
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0x
NzYwLDYgKzE3NjAsNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAg
ICAgY2FzZSBGdW5jdGlvblVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIGNh
c2UgS25vd25TdHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNl
IFN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToK
ICAgICAgICAgICAgIGlmIChhbHdheXNVbmJveFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCAwZmZhNmE4YTMwMDdk
ZjVjOGNhMmJlNTZmZmIzMzgzZGY3ZDUzYjlmLi5lYjkwOWRmZjdhNDA4NGQyZTY2ZjBiMjlmNjE2
Mjg4MjczMDk5MmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBTYWZlVG9FeGVjdXRlRWRnZSB7CiAgICAg
ICAgIGNhc2UgT2JqZWN0T3JPdGhlclVzZToKICAgICAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToK
ICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAg
ICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVj
dFVzZToKICAgICAgICAgY2FzZSBOb3RTdHJpbmdWYXJVc2U6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGYzZjhhZjdhNTJkNTBmOWEy
ZTcxYzRmOTAxOTk4NDdiZjA1MDBkNWUuLmFlYTFhMWEwZTE1NDgxNTk1YmI0ZmUwMjZlZWVjYTZk
MDIyMWVhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCkBAIC01NzMxLDYgKzU3MzEsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlTm90U3RyaW5nVmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxpbmsoJm1faml0KTsK
IH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSwgR1BS
UmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENl
bGwoY2VsbCksIGVkZ2UsIFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90U3ltYm9sKGNlbGwp
KTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkK
K3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOwor
ICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVk
c1R5cGVDaGVjayhlZGdlLCB+U3BlY0NlbGwpKQpAQCAtNTg0Miw2ICs1ODU2LDkgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBTdHJp
bmdVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsKKyAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0
cmluZ09iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYTVjNDQ1NDdkYTY0YmMyYjYzZjA3M2Ex
NzExZTZhMTE4MDZmNTk1Yi4uY2ViZjI4NjNiNDAzMTNhYjk2ZmYzOGM3OGJkNjBkM2E5NDVmYTBm
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApA
QCAtMjQwNiw2ICsyNDA2LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgc3Bl
Y3VsYXRlU3RyaW5nT2JqZWN0KEVkZ2UsIEdQUlJlZyk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJp
bmdPYmplY3QoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPclN0cmluZ09iamVjdChF
ZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAg
dm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVOb3RDZWxsKEVk
Z2UpOwogICAgIHZvaWQgc3BlY3VsYXRlT3RoZXIoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVN
aXNjKEVkZ2UsIEpTVmFsdWVSZWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuY3BwCmluZGV4IGVmYTEwNGYzZDA3MDAwYjdkN2JjNDczYmNkZjIwNmQxMDUzZmM5YjEuLjkz
NmVmNTU0YWYyNGUwYjY0ZmRmNDI4ZjE2M2FlOGQ3ODhlOThkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtOTcsNiArOTcsOSBAQCB2b2lkIHByaW50SW50
ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgS25vd25T
dHJpbmdVc2U6CiAgICAgICAgIG91dC5wcmludCgiS25vd25TdHJpbmciKTsKICAgICAgICAgcmV0
dXJuOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICBvdXQucHJpbnQoIlN5bWJvbCIpOwor
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIG91dC5w
cmludCgiU3RyaW5nT2JqZWN0Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggZWJmOTlkYWU2MDBjODgyNWQyMmNiYWM2MzgyMmQxNWI1
NTYwMDM1YS4uMjg5Yjc4M2U0MWJiMzYxMjkxYzgzYzhmYWQ3YjA4YTU3OGUwYTZmMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTU3LDYgKzU3LDcgQEAgZW51bSBV
c2VLaW5kIHsKICAgICBTdHJpbmdJZGVudFVzZSwKICAgICBTdHJpbmdVc2UsCiAgICAgS25vd25T
dHJpbmdVc2UsCisgICAgU3ltYm9sVXNlLAogICAgIFN0cmluZ09iamVjdFVzZSwKICAgICBTdHJp
bmdPclN0cmluZ09iamVjdFVzZSwKICAgICBOb3RTdHJpbmdWYXJVc2UsCkBAIC0xMTcsNiArMTE4
LDggQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5k
KQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAg
IHJldHVybiBTcGVjU3RyaW5nOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICByZXR1cm4g
U3BlY1N5bWJvbDsKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJuIFNw
ZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKQEAgLTE5
Niw2ICsxOTksNyBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAgIGNhc2Ug
U3RyaW5nSWRlbnRVc2U6CiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgY2FzZSBLbm93blN0cmlu
Z1VzZToKKyAgICBjYXNlIFN5bWJvbFVzZToKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAg
ICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCA5YWYzMzJlYjc4ZTE4OWFlNmE1M2IyMjM1MGFm
NzdiNWY5ZDdlYjJiLi5jNzhiNGMxOTU2YmY3MDhkOTFjYzJhMTczNzE5MWVmM2MyNGUwMjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC02NjAsNiArNjYwLDEwIEBAIENvbXBpbGF0
aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0
KQogCiAgICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZvcyhtX2J5VmFsQ29tcGls
YXRpb25JbmZvLnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYnlWYWxD
b21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgUGF0Y2hhYmxlSnVtcCBwYXRj
aGFibGVOb3RJbmRleEp1bXAgPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLm5vdEluZGV4SnVt
cDsKKyAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25K
dW1wKCk7CisgICAgICAgIGlmIChKdW1wKHBhdGNoYWJsZU5vdEluZGV4SnVtcCkuaXNTZXQoKSkK
KyAgICAgICAgICAgIG5vdEluZGV4SnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIu
bG9jYXRpb25PZihwYXRjaGFibGVOb3RJbmRleEp1bXApKTsKICAgICAgICAgQ29kZUxvY2F0aW9u
SnVtcCBiYWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1wKSk7CiAgICAgICAgIENvZGVM
b2NhdGlvbkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKG1fYnlWYWxD
b21waWxhdGlvbkluZm9baV0uZG9uZVRhcmdldCk7CiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVs
IHNsb3dQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRp
b25JbmZvW2ldLnNsb3dQYXRoVGFyZ2V0KTsKQEAgLTY2Nyw2ICs2NzEsNyBAQCBDb21waWxhdGlv
blJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkK
ICAgICAgICAgCiAgICAgICAgIG1fY29kZUJsb2NrLT5ieVZhbEluZm8oaSkgPSBCeVZhbEluZm8o
CiAgICAgICAgICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJ5dGVjb2RlSW5kZXgsCisg
ICAgICAgICAgICBub3RJbmRleEp1bXAsCiAgICAgICAgICAgICBiYWRUeXBlSnVtcCwKICAgICAg
ICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYXJyYXlNb2RlLAogICAgICAgICAgICAg
ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGJhZFR5cGVKdW1wLCBkb25lVGFyZ2V0KSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5oCmluZGV4IDAyMTM5NjM0YjFkZmVkNjEwNTYyZGVjYjU3OGRiMzhkNmIx
NjAzNGUuLmRlY2Y3OWVhMmI0YTM2ZmViNTBhZjRkNWI0NjMwM2Y4NDE2ZjIwOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaApAQCAtMTQ5LDggKzE0OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IHN0cnVjdCBCeVZhbENvbXBpbGF0aW9uSW5mbyB7CiAgICAgICAgIEJ5VmFsQ29tcGlsYXRpb25J
bmZvKCkgeyB9CiAgICAgICAgIAotICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbyh1bnNpZ25l
ZCBieXRlY29kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVt
cCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJn
ZXQpCisgICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgs
IE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG5vdEluZGV4SnVtcCwgTWFjcm9Bc3NlbWJs
ZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIE1h
Y3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQogICAgICAgICAgICAgOiBieXRlY29kZUlu
ZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICAgICAsIG5vdEluZGV4SnVtcChub3RJbmRleEp1
bXApCiAgICAgICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1wKQogICAgICAgICAgICAg
LCBhcnJheU1vZGUoYXJyYXlNb2RlKQogICAgICAgICAgICAgLCBkb25lVGFyZ2V0KGRvbmVUYXJn
ZXQpCkBAIC0xNTgsNiArMTU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXg7CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpQYXRjaGFibGVKdW1wIG5vdEluZGV4SnVtcDsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXA7CiAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJheU1v
ZGU7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0OwpAQCAtMjA0LDYg
KzIwNiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGppdC5wcml2YXRlQ29tcGls
ZUdldEJ5VmFsKGJ5VmFsSW5mbywgcmV0dXJuQWRkcmVzcywgYXJyYXlNb2RlKTsKICAgICAgICAg
fQogCisgICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChWTSog
dm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRk
cmVzc1B0ciByZXR1cm5BZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9jayk7CisgICAgICAgICAg
ICBqaXQubV9ieXRlY29kZU9mZnNldCA9IGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKKyAgICAg
ICAgICAgIGppdC5wcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKGJ5VmFsSW5mbywg
cmV0dXJuQWRkcmVzcywgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQorCiAgICAgICAgIHN0YXRp
YyB2b2lkIGNvbXBpbGVQdXRCeVZhbChWTSogdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBCeVZh
bEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKSVRBcnJh
eU1vZGUgYXJyYXlNb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICBKSVQgaml0KHZtLCBjb2Rl
QmxvY2spOwpAQCAtMjQ2LDYgKzI1NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBDb21w
aWxhdGlvblJlc3VsdCBwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCk7CiAgICAg
ICAgIAogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlR2V0QnlWYWwoQnlWYWxJbmZvKiwgUmV0
dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKKyAgICAgICAgdm9pZCBwcml2YXRlQ29tcGls
ZUdldEJ5VmFsV2l0aENhY2hlZElkKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIGNvbnN0
IElkZW50aWZpZXImKTsKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFs
SW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CiAKICAgICAgICAgdm9pZCBw
cml2YXRlQ29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eShCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNz
UHRyLCBKSVRBcnJheU1vZGUpOwpAQCAtMzcxLDcgKzM4MSw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBKdW1wTGlzdCBlbWl0QXJyYXlTdG9yYWdlUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQ
YXRjaGFibGVKdW1wJiBiYWRUeXBlKTsKICAgICAgICAgSnVtcExpc3QgZW1pdEludFR5cGVkQXJy
YXlQdXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJy
YXlUeXBlKTsKICAgICAgICAgSnVtcExpc3QgZW1pdEZsb2F0VHlwZWRBcnJheVB1dEJ5VmFsKElu
c3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgVHlwZWRBcnJheVR5cGUpOwotICAg
ICAgICAKKworICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGVtaXRHZXRCeVZhbFdpdGhDYWNo
ZWRJZChJbnN0cnVjdGlvbiosIGNvbnN0IElkZW50aWZpZXImLCBKdW1wTGlzdCYgZG9uZUNhc2Vz
LCBKdW1wTGlzdCYgc2xvd0Nhc2VzKTsKKwogICAgICAgICBlbnVtIEZpbmFsT2JqZWN0TW9kZSB7
IE1heUJlRmluYWwsIEtub3duTm90RmluYWwgfTsKIAogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gSnVtcCBicmFuY2hTdHJ1Y3R1cmUoUmVsYXRpb25hbENvbmRpdGlvbiwgVCBsZWZ0SGFu
ZFNpZGUsIFN0cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKaW5kZXggOTBiNTMyMTVhYjA0Yzc0MzM4YWRiYTgzNjMwNDBjMzg0ZGZmYTMxZS4uZGFmMmFm
ZjM3YzAwMDI1Zjg4NmJkMzEwYzQ0MzdkYzA3ZTM1MDlhYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0xMTA4LDcgKzExMDgsNyBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogICAgIAogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAKLSAgICBtX2J5
VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2Rl
T2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5m
by5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxl
SnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19v
cF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBW
ZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggOGE2OTc1YzE2ZDZiOTZlY2ExZjI5NjNk
NGY1OTEyYmYwNTY4OTZlNS4uNmYwZDhhOTA3MzExZDYyNGE2NTRkNWQ2OTVjNDk1NGM4ZTc1MmNi
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0x
NTU1LDcgKzE1NTUsMjMgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25H
ZXRCeVZhbE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEoKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KLSAgICAKKworICAgIGlmIChiYXNlVmFsdWUuaXNPYmplY3QoKSAm
JiAoc3Vic2NyaXB0LmlzU3ltYm9sKCkgfHwgc3Vic2NyaXB0LmlzU3RyaW5nKCkpKSB7CisgICAg
ICAgIGNvbnN0IElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gc3Vic2NyaXB0LnRvUHJvcGVydHlL
ZXkoZXhlYyk7CisKKyAgICAgICAgaWYgKCFzdWJzY3JpcHQuaXNTdHJpbmcoKSB8fCAhcGFyc2VJ
bmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNl
dCA9IGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOworICAgICAgICAgICAgQVNTRVJU
KGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhl
Yy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOworICAgICAg
ICAgICAgQVNTRVJUKCFieVZhbEluZm8uc3R1YlJvdXRpbmUpOworICAgICAgICAgICAgSklUOjpj
b21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgJmJ5VmFs
SW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBwcm9wZXJ0eU5hbWUp
OworICAgICAgICB9CisKKyAgICAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKKyAg
ICAgICAgYm9vbCBoYXNSZXN1bHQgPSBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGFzUmVz
dWx0ID8gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpIDoganNVbmRlZmluZWQoKSk7
CisgICAgfQorCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUs
IHN1YnNjcmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQURE
UkVTUykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggNGVmMDZk
OTIxM2EyYjFkYmZmYmE0YzdjMzM0ZDJmNmYxYzQ3OTE3ZS4uZTgyZDhiYjVjNzM1NDJlODhjMGE2
YzI2NDBhOTIzODUwNTlkYmMxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTEwMCw4ICsxMDAsMTUgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIEFycmF5
UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsK
ICAgICAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhiYXNlLCByZWdUMCwgcHJvcGVydHks
IHJlZ1QxKTsKLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1Qx
KTsKIAorICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CisKKyAg
ICAvLyBGSVhNRTogV2UgbmVlZCB0byBpbXBsZW1lbnQgcGF0Y2hhYmxlQnJhbmNoNjQuCisgICAg
SnVtcCBpc0luZGV4ID0gZW1pdEp1bXBJZkltbWVkaWF0ZUludGVnZXIocmVnVDEpOworICAgIFBh
dGNoYWJsZUp1bXAgbm90SW5kZXggPSBwYXRjaGFibGVKdW1wKCk7CisgICAgYWRkU2xvd0Nhc2Uo
bm90SW5kZXgpOworCisgICAgaXNJbmRleC5saW5rKHRoaXMpOwogICAgIC8vIFRoaXMgaXMgdGVj
aG5pY2FsbHkgaW5jb3JyZWN0IC0gd2UncmUgemVyby1leHRlbmRpbmcgYW4gaW50MzIuICBPbiB0
aGUgaG90IHBhdGggdGhpcyBkb2Vzbid0IG1hdHRlci4KICAgICAvLyBXZSBjaGVjayB0aGUgdmFs
dWUgYXMgaWYgaXQgd2FzIGEgdWludDMyIGFnYWluc3QgdGhlIG1fdmVjdG9yTGVuZ3RoIC0gd2hp
Y2ggd2lsbCBhbHdheXMgZmFpbCBpZgogICAgIC8vIG51bWJlciB3YXMgc2lnbmVkIHNpbmNlIG1f
dmVjdG9yTGVuZ3RoIGlzIGFsd2F5cyBsZXNzIHRoYW4gaW50bWF4IChzaW5jZSB0aGUgdG90YWwg
YWxsb2NhdGlvbgpAQCAtMTEwLDcgKzExNyw2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92
YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAvLyBleHRlbmRpbmcgc2lu
Y2UgaXQgbWFrZXMgaXQgZWFzaWVyIHRvIHJlLXRhZyB0aGUgdmFsdWUgaW4gdGhlIHNsb3cgY2Fz
ZS4KICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihyZWdUMSwgcmVnVDEpOwogCi0gICAgZW1pdEp1bXBT
bG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKICAgICBlbWl0QXJyYXlQcm9maWxpbmdT
aXRlV2l0aENlbGwocmVnVDAsIHJlZ1QyLCBwcm9maWxlKTsKICAgICBhbmQzMihUcnVzdGVkSW1t
MzIoSW5kZXhpbmdTaGFwZU1hc2spLCByZWdUMik7CiAKQEAgLTE1MCw3ICsxNTYsNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSgpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIoZHN0KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENv
bXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7Cisg
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9i
eXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklU
OjpKdW1wTGlzdCBKSVQ6OmVtaXREb3VibGVMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVt
cCYgYmFkVHlwZSkKQEAgLTE5NSw2ICsyMDEsMzkgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRB
cnJheVN0b3JhZ2VMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAg
ICByZXR1cm4gc2xvd0Nhc2VzOwogfQogCitKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdl
dEJ5VmFsV2l0aENhY2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3Qm
IHNsb3dDYXNlcykKK3sKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZDsKKworICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMSkp
OworICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7CisgICAg
ICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkp
LCByZWdUMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hT
dHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFk
ZHJlc3MocmVnVDEsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMSk7CisgICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMSkpOworICAgICAgICBz
bG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QxLCBTdHJpbmdJ
bXBsOjpmbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21p
YygpKSkpOworICAgIH0KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwg
cmVnVDEsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdl
dEJ5SWRHZW5lcmF0b3IgZ2VuKAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5
dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAg
SlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIERvbnRTcGlsbCk7CisgICAg
Z2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1w
KCkpOworCisgICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQ
YXRoSnVtcCgpLmxpbmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdp
dGhQcm9maWxlLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCks
IHJlZ1QwLCBwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxs
KGNvbGRQYXRoQmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKwor
ICAgIHJldHVybiBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQ7CkBAIC0yMDIsOCArMjQxLDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92
YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBp
bnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5
UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsK
ICAgICAKLSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAg
ICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVj
aworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBK
dW1wIG5vbkNlbGwgPSBqdW1wKCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFy
cmF5IGNoZWNrCiAgICAgSnVtcCBub3RTdHJpbmcgPSBicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWws
IApAQCAtMjk5LDcgKzMzOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBMYWJlbCBkb25lID0gbGFiZWwo
KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0
aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9i
eVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29k
ZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiAKIH0KIApA
QCAtOTk5LDYgKzEwMzgsMzUgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwoQnlW
YWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWQKICAgICByZXBhdGNo
QnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIo
b3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7CiB9CiAKK3ZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZUdldEJ5VmFsV2l0aENhY2hlZElkKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKKyAg
ICBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uID0gbV9jb2RlQmxvY2stPmluc3RydWN0
aW9ucygpLmJlZ2luKCkgKyBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisKKyAgICBKdW1wTGlz
dCBkb25lQ2FzZXM7CisgICAgSnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgSklUR2V0QnlJZEdl
bmVyYXRvciBnZW4gPSBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoY3VycmVudEluc3RydWN0aW9u
LCBwcm9wZXJ0eU5hbWUsIGRvbmVDYXNlcywgc2xvd0Nhc2VzKTsKKworICAgIENvbmN1cnJlbnRK
SVRMb2NrZXIgbG9ja2VyKG1fY29kZUJsb2NrLT5tX2xvY2spOworICAgIExpbmtCdWZmZXIgcGF0
Y2hCdWZmZXIoKm1fdm0sICp0aGlzLCBtX2NvZGVCbG9jayk7CisgICAgcGF0Y2hCdWZmZXIubGlu
ayhzbG93Q2FzZXMsIENvZGVMb2NhdGlvbkxhYmVsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3Jl
YXRlRnJvbUV4ZWN1dGFibGVBZGRyZXNzKHJldHVybkFkZHJlc3MudmFsdWUoKSkpLmxhYmVsQXRP
ZmZzZXQoYnlWYWxJbmZvLT5yZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkpOworICAgIHBhdGNoQnVm
ZmVyLmxpbmsoZG9uZUNhc2VzLCBieVZhbEluZm8tPmJhZFR5cGVKdW1wLmxhYmVsQXRPZmZzZXQo
YnlWYWxJbmZvLT5iYWRUeXBlSnVtcFRvRG9uZSkpOworICAgIGZvciAoY29uc3QgYXV0byYgY2Fs
bFNpdGUgOiBtX2NhbGxzKSB7CisgICAgICAgIGlmIChjYWxsU2l0ZS50bykKKyAgICAgICAgICAg
IHBhdGNoQnVmZmVyLmxpbmsoY2FsbFNpdGUuZnJvbSwgRnVuY3Rpb25QdHIoY2FsbFNpdGUudG8p
KTsKKyAgICB9CisgICAgZ2VuLmZpbmFsaXplKHBhdGNoQnVmZmVyKTsKKworICAgIGJ5VmFsSW5m
by0+c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICBtX2NvZGVC
bG9jaywgcGF0Y2hCdWZmZXIsCisgICAgICAgICgiQmFzZWxpbmUgZ2V0X2J5X3ZhbCB3aXRoIGNh
Y2hlZCBwcm9wZXJ0eSBuYW1lICclcycgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHBy
b3BlcnR5TmFtZS5pbXBsKCktPnV0ZjgoKS5kYXRhKCksIHRvQ1N0cmluZygqbV9jb2RlQmxvY2sp
LmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CisgICAgYnlWYWxJbmZvLT5jYWNoZWRJ
ZCA9IHByb3BlcnR5TmFtZTsKKworICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2Nv
ZGVCbG9jayk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5ub3RJbmRleEp1
bXAsIENvZGVMb2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUtPmNvZGUoKS5jb2Rl
KCkpKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRk
cmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7Cit9CisKIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAg
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlv
bnMoKS5iZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggNjA5
Y2ExMzg4MjI3ZGI1YmRhNTM5Mjc1MzAzZGFkZDJkOGIxY2ViYy4uMzE1ZmNkYWVkY2VlMDVkOTZh
MjZkZmE1NjgzODA1ZjU4YjFhYTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xNTIsOCArMTUyLDkgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogICAgIAogICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCByZWdU
MywgcmVnVDIpOwogICAgIAotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdU
MywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAgIGVtaXRKdW1wU2xvd0Nh
c2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9
IHBhdGNoYWJsZUJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkludDMyVGFnKSk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogICAgIGVtaXRBcnJheVBy
b2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRy
dXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QxKTsKIApAQCAtMTkyLDcgKzE5Myw3
IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgZW1pdFN0b3JlKGRz
dCwgcmVnVDEsIHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVu
ZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBk
b25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlv
bkluZm8obV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsK
IH0KIAogSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRDb250aWd1b3VzTG9hZChJbnN0cnVjdGlvbios
IFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIEluZGV4aW5nVHlwZSBleHBlY3RlZFNoYXBlKQpAQCAt
MjM2LDcgKzIzNyw0MyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEFycmF5U3RvcmFnZUxvYWQo
SW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQogICAgIAogICAgIHJldHVybiBz
bG93Q2FzZXM7CiB9Ci0gICAgCisKK0pJVEdldEJ5SWRHZW5lcmF0b3IgSklUOjplbWl0R2V0QnlW
YWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2VzLCBKdW1wTGlzdCYgc2xv
d0Nhc2VzKQoreworICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
OworCisgICAgLy8gYmFzZTogdGFnKHJlZ1QxKSwgcGF5bG9hZChyZWdUMCkKKyAgICAvLyBwcm9w
ZXJ0eTogdGFnKHJlZ1QzKSwgcGF5bG9hZChyZWdUMikKKworICAgIHNsb3dDYXNlcy5hcHBlbmQo
ZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMykpOworICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1i
b2woKSkgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVh
bCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3lt
Ym9sU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMiwgU3lt
Ym9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMik7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVn
VDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5n
ZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIEpTU3RyaW5nOjpvZmZzZXRP
ZlZhbHVlKCkpLCByZWdUMik7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0
cihaZXJvLCByZWdUMikpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3QzMiha
ZXJvLCBBZGRyZXNzKHJlZ1QyLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNldCgpKSwgVHJ1c3RlZElt
bTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21pYygpKSkpOworICAgIH0KKyAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDIsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlO
YW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAorICAgICAgICBt
X2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNw
ZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgSlNW
YWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgRG9udFNwaWxsKTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0
UGF0aCgqdGhpcyk7CisKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICBMYWJl
bCBjb2xkUGF0aEJlZ2luID0gbGFiZWwoKTsKKyAgICBnZW4uc2xvd1BhdGhKdW1wKCkubGluayh0
aGlzKTsKKworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oV2l0aFByb2ZpbGUsIG9wZXJh
dGlvbkdldEJ5SWRPcHRpbWl6ZSwgZHN0LCBnZW4uc3R1YkluZm8oKSwgcmVnVDEsIHJlZ1QwLCBw
cm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRo
QmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIHJldHVy
biBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0
ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBA
IC0yNDQsOCArMjgxLDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVy
dHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSog
cHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKLSAg
ICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgbGlua1Ns
b3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjaworICAgIGxp
bmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKIAogICAgIEp1bXAgbm9u
Q2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hl
Y2sKQEAgLTMxNCw3ICszNTEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVs
KCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxh
dGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1f
YnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNv
ZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBK
SVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdU
eXBlIGluZGV4aW5nU2hhcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCmlu
ZGV4IGU1NzkwZDc4NzIyNmJlYTc2MDI0YzlkMWQ2NmE2NzYwZjY0ZGU1YTIuLjgzZjVkZTI0ODUy
YmMzNzhlZTBhNzcwMzlmNDYzMTgyNWZkZGRiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbC5oCkBAIC03OSw2ICs3OSw4IEBAIGNsYXNzIFN5bWJvbCBmaW5hbCA6IHB1Ymxp
YyBKU0NlbGwgewogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9i
amVjdCopIGNvbnN0OwogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKIAor
ICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZQcml2YXRlTmFtZSgpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihTeW1ib2wsIG1fcHJpdmF0ZU5hbWUpOyB9CisKIHByb3RlY3RlZDoKICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258160</attachid>
            <date>2015-08-04 00:24:50 -0700</date>
            <delta_ts>2015-08-04 14:19:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150804002443.patch</filename>
            <type>text/plain</type>
            <size>47152</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2U5NmY0OWE0N2MwZjk1NWE0ZWJmMDA3MzdiOTEyMDI4Yjg3YTRiLi41YTFmNmYwZDFhYzc4ODAw
MjdiMjVkMGMwYmM1YjA0MzJjNzkzNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MSBAQAorMjAxNS0wOC0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0QnlWYWxJbmZv
TWFwKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAg
ICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNv
ZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjpJbmxpbmVTdGFja0VudHJ5OjpJbmxpbmVTdGFja0VudHJ5KToKKyAgICAgICAgKiBkZmcvREZH
Q2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAq
IGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q29u
c3RhbnRGb2xkaW5nUGhhc2U6OmZvbGRDb25zdGFudHMpOgorICAgICAgICAqIGRmZy9ERkdEb2Vz
R0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6b2JzZXJ2ZVVzZUtpbmRPbk5vZGUpOgor
ICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzVWlk
T3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6dWlkT3BlcmFuZCk6CisgICAgICAg
ICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAg
ICAgICAoSlNDOjpERkc6OlNhZmVUb0V4ZWN1dGVFZGdlOjpvcGVyYXRvcigpKToKKyAgICAgICAg
KEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTeW1i
b2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpwcmludElu
dGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlNDOjpERkc6
OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAgICAgICog
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBm
dGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9MTFZNOjpjb21waWxlQ2hlY2tJZGVudCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvTExWTTo6bG93U3ltYm9sKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9MTFZNOjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xM
Vk06OmlzTm90U3ltYm9sKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZN
OjpzcGVjdWxhdGVTeW1ib2wpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgIChK
U0M6OkJ5VmFsQ29tcGlsYXRpb25JbmZvOjpCeVZhbENvbXBpbGF0aW9uSW5mbyk6CisgICAgICAg
IChKU0M6OkpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKiBqaXQv
SklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9w
cm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRf
YnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNv
bXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZh
bFdpdGhDYWNoZWRJZCk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
U2xvd19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92
YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sLmg6CisKIDIwMTUtMDgtMDMgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgRG9uJ3Qgc2V0IHVwIHRo
ZSBjYWxsc2l0ZSB0byBvcGVyYXRpb25HZXRCeVZhbERlZmF1bHQgd2hlbiB0aGUgb3B0aW1pemF0
aW9uIGlzIGFscmVhZHkgZG9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5VmFsSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFs
SW5mby5oCmluZGV4IGQ5ODg1MTYxMzI1OGE3MWI5ZjA0YmE0OTA3M2Y0NDAzM2U1NzEwODMuLjE5
YWQ3MTA0NjhhZDI4MDkxNDNmMzczZGNkN2Y5YWVkNTQ3NGQzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTI2LDE2ICsyNiwxNyBAQAogI2lmbmRl
ZiBCeVZhbEluZm9faAogI2RlZmluZSBCeVZhbEluZm9faAogCi0jaWYgRU5BQkxFKEpJVCkKLQog
I2luY2x1ZGUgIkNsYXNzSW5mby5oIgogI2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5oIgorI2luY2x1
ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNsdWRlICJJbmRleGluZ1R5cGUuaCIKICNpbmNsdWRlICJK
SVRTdHViUm91dGluZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIAorI2lmIEVOQUJMRShKSVQpCisKIGVudW0gSklUQXJyYXlNb2RlIHsKICAgICBKSVRJbnQz
MiwKICAgICBKSVREb3VibGUsCkBAIC0yMDIsOCArMjAzLDkgQEAgaW5saW5lIEpJVEFycmF5TW9k
ZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiBzdHJ1Y3Qg
QnlWYWxJbmZvIHsKICAgICBCeVZhbEluZm8oKSB7IH0KICAgICAKLSAgICBCeVZhbEluZm8odW5z
aWduZWQgYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJy
YXlNb2RlIGFycmF5TW9kZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZSwgaW50MTZfdCByZXR1
cm5BZGRyZXNzVG9TbG93UGF0aCkKKyAgICBCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCwgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlw
ZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmUs
IGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgIDogYnl0ZWNvZGVJbmRl
eChieXRlY29kZUluZGV4KQorICAgICAgICAsIG5vdEluZGV4SnVtcChub3RJbmRleEp1bXApCiAg
ICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICwgYXJyYXlNb2RlKGFy
cmF5TW9kZSkKICAgICAgICAgLCBiYWRUeXBlSnVtcFRvRG9uZShiYWRUeXBlSnVtcFRvRG9uZSkK
QEAgLTIxMSwxNCArMjEzLDE2IEBAIHN0cnVjdCBCeVZhbEluZm8gewogICAgICAgICAsIHNsb3dQ
YXRoQ291bnQoMCkKICAgICB7CiAgICAgfQotICAgIAorCiAgICAgdW5zaWduZWQgYnl0ZWNvZGVJ
bmRleDsKKyAgICBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcDsKICAgICBDb2RlTG9jYXRp
b25KdW1wIGJhZFR5cGVKdW1wOwogICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGU7IC8vIFRoZSBh
cnJheSBtb2RlIHRoYXQgd2FzIGJha2VkIGludG8gdGhlIGlubGluZSBKSVQgY29kZS4KICAgICBp
bnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lOwogICAgIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xv
d1BhdGg7CiAgICAgdW5zaWduZWQgc2xvd1BhdGhDb3VudDsKICAgICBSZWZQdHI8SklUU3R1YlJv
dXRpbmU+IHN0dWJSb3V0aW5lOworICAgIElkZW50aWZpZXIgY2FjaGVkSWQ7CiB9OwogCiBpbmxp
bmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZhbEluZm8qIGluZm8pCkBA
IC0yMjYsOSArMjMwLDE1IEBAIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbEluZm9CeXRlY29kZUlu
ZGV4KEJ5VmFsSW5mbyogaW5mbykKICAgICByZXR1cm4gaW5mby0+Ynl0ZWNvZGVJbmRleDsKIH0K
IAotfSAvLyBuYW1lc3BhY2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQnlWYWxJ
bmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFwOworCisjZWxzZSAv
LyBFTkFCTEUoSklUKQorCit0eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4gQnlWYWxJbmZvTWFw
OwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorfSAvLyBuYW1lc3BhY2UgSlNDCisKICNlbmRp
ZiAvLyBCeVZhbEluZm9faAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwCmluZGV4IDAyMzA5Mjc0NjMyODg0NmY0NzE5YjM3YTg5Zjk2ZmIzYjU3YjE5NDcu
LjdlZjgxNmU0OGEyMzE2NjNiMWY1YjVlYmE0ZTNhNjhiMTU0Mjg2NTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0yNjkzLDYgKzI2OTMsMjIg
QEAgdm9pZCBDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb01hcChDYWxsTGlua0luZm9NYXAmIHJl
c3VsdCkKICAgICBnZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCByZXN1bHQpOwogfQogCit2b2lk
IENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBC
eVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSklUKQorICAgIGZvciAoYXV0byYg
YnlWYWxJbmZvIDogbV9ieVZhbEluZm9zKQorICAgICAgICByZXN1bHQuYWRkKENvZGVPcmlnaW4o
YnlWYWxJbmZvLmJ5dGVjb2RlSW5kZXgpLCAmYnlWYWxJbmZvKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2RlQmxvY2s6OmdldEJ5VmFsSW5m
b01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2xvY2spOworICAgIGdldEJ5VmFsSW5mb01hcChsb2NrZXIsIHJlc3VsdCk7Cit9CisK
ICNpZiBFTkFCTEUoSklUKQogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1Yklu
Zm8oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4
IDZjM2ExMTVmNzc1ZWVjM2FiZDIyMDJmZWZhNTI2ZGY4MGEzZmM5MzguLjJhMzRlMmQ2MmM5YmVl
NzQ1YWQ0NWU1ZjRiYWVlYmM5Y2IyNTEyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTIwMCw2ICsyMDAsOSBAQCBjbGFzcyBDb2RlQmxvY2sgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29kZUJsb2NrPiwgcHVibGljIFVuY29uZGl0aW9u
YWxGaQogICAgIAogICAgIHZvaWQgZ2V0Q2FsbExpbmtJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImLCBDYWxsTGlua0luZm9NYXAmIHJlc3VsdCk7CiAgICAgdm9pZCBnZXRDYWxsTGlu
a0luZm9NYXAoQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOworCisgICAgdm9pZCBnZXRCeVZhbElu
Zm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIEJ5VmFsSW5mb01hcCYgcmVzdWx0KTsK
KyAgICB2b2lkIGdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCk7CiAgICAgCiAj
aWYgRU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAppbmRleCAwMDdmYzlhYzMxZjQwNmNiM2FmOTYxOWIyMzY0MjVlNDI5ZmIz
OTFlLi43NWZmMGNhNWMyYzJkZGMyYTdjMDE4MmFjMTlkODIyY2MwMzBlODAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCkBAIC0yMTY4LDYgKzIxNjgsMjggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBDaGVja0lkZW50OiB7CisgICAgICAg
IEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
IFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7CisgICAgICAgIEFT
U0VSVCh1aWQtPmlzU3ltYm9sKCkgPyAhKHZhbHVlLm1fdHlwZSAmIH5TcGVjU3ltYm9sKSA6ICEo
dmFsdWUubV90eXBlICYgflNwZWNTdHJpbmdJZGVudCkpOyAvLyBFZGdlIGZpbHRlcmluZyBzaG91
bGQgaGF2ZSBhbHJlYWR5IGVuc3VyZWQgdGhpcy4KKworICAgICAgICBKU1ZhbHVlIGNoaWxkQ29u
c3RhbnQgPSB2YWx1ZS52YWx1ZSgpOworICAgICAgICBpZiAoY2hpbGRDb25zdGFudCkgeworICAg
ICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgeworICAgICAgICAgICAgICAgIEFTU0VSVChj
aGlsZENvbnN0YW50LmlzU3ltYm9sKCkpOworICAgICAgICAgICAgICAgIGlmIChhc1N5bWJvbChj
aGlsZENvbnN0YW50KS0+cHJpdmF0ZU5hbWUoKS51aWQoKSA9PSB1aWQpCisgICAgICAgICAgICAg
ICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICB9IGVs
c2UgeworLy8gICAgICAgICAgICAgICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkg
JiYgYXNTdHJpbmcoY2hpbGRDb25zdGFudCktPnRvRXhpc3RpbmdBdG9taWNTdHJpbmcoKSk7Cisv
LyAgICAgICAgICAgICAgICAgaWYgKGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50b0V4aXN0aW5n
QXRvbWljU3RyaW5nKCkgPT0gdWlkKQorLy8gICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnNl
dEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgZmlsdGVyKHZhbHVlLCB1aWQtPmlzU3ltYm9sKCkgPyBTcGVjU3ltYm9sIDogU3BlY1N0cmlu
Z0lkZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBDaGVja0luQm91bmRz
OiB7CiAgICAgICAgIEpTVmFsdWUgbGVmdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVl
KCk7CiAgICAgICAgIEpTVmFsdWUgcmlnaHQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cAppbmRleCAyOTViNDQ4YzU4MmQ5N2M0MzYyNDZiNmJiNmY3MWJmNGNlYzFjM2ViLi42YTY2MDg0
ZGFiMjIwZjgzMDdmZmMxZmM4M2NjN2RkM2E3N2FhMWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtOTIxLDYgKzkyMSw3IEBAIGNs
YXNzIEJ5dGVDb2RlUGFyc2VyIHsKICAgICAgICAgCiAgICAgICAgIENhbGxMaW5rSW5mb01hcCBt
X2NhbGxMaW5rSW5mb3M7CiAgICAgICAgIFN0dWJJbmZvTWFwIG1fc3R1YkluZm9zOworICAgICAg
ICBCeVZhbEluZm9NYXAgbV9ieVZhbEluZm9zOwogICAgICAgICAKICAgICAgICAgLy8gRGlkIHdl
IHNlZSBhbnkgcmV0dXJucz8gV2UgbmVlZCB0byBoYW5kbGUgdGhlICh1bmNvbW1vbiBidXQgbmVj
ZXNzYXJ5KQogICAgICAgICAvLyBjYXNlIHdoZXJlIGEgcHJvY2VkdXJlIHRoYXQgZG9lcyBub3Qg
cmV0dXJuIHdhcyBpbmxpbmVkLgpAQCAtMzA1OCwxMCArMzA1OSwyNiBAQCBib29sIEJ5dGVDb2Rl
UGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgU3BlY3VsYXRl
ZFR5cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb25XaXRob3V0T1NSRXhpdCgpOwogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBBcnJheU1vZGUgYXJy
YXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmls
ZSwgQXJyYXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKLSAgICAgICAgICAg
IE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5h
c1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOwotICAgICAgICAg
ICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwg
Z2V0QnlWYWwpOworICAgICAgICAgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2lubGluZVN0
YWNrVG9wLT5tX2J5VmFsSW5mb3MuZ2V0KENvZGVPcmlnaW4oY3VycmVudENvZGVPcmlnaW4oKS5i
eXRlY29kZUluZGV4KSk7CisgICAgICAgICAgICBBU1NFUlQoYnlWYWxJbmZvKTsKKyAgICAgICAg
ICAgIGlmICghYnlWYWxJbmZvLT5jYWNoZWRJZC5pc051bGwoKSkgeworICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBtX2dyYXBoLmlkZW50aWZpZXJzKCkuZW5zdXJl
KGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgpKTsKKyAgICAgICAgICAgICAgICBVbmlxdWVkU3Ry
aW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOwor
CisgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja0lkZW50LCBPcEluZm8odWlkKSwgcHJv
cGVydHkpOworCisgICAgICAgICAgICAgICAgR2V0QnlJZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0g
R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKKyAgICAgICAgICAgICAgICAgICAgbV9pbmxpbmVT
dGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCBtX2RmZ0NvZGVCbG9jaywKKyAgICAgICAgICAgICAg
ICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5mb3MsIG1fZGZnU3R1YkluZm9zLAorICAg
ICAgICAgICAgICAgICAgICBjdXJyZW50Q29kZU9yaWdpbigpLCB1aWQpOworCisgICAgICAgICAg
ICAgICAgaGFuZGxlR2V0QnlJZChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBwcmVk
aWN0aW9uLCBiYXNlLCBpZGVudGlmaWVyTnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFy
cmF5TW9kZShjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFk
KTsKKyAgICAgICAgICAgICAgICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWws
IE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHBy
b3BlcnR5KTsKKyAgICAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBnZXRCeVZhbCk7CisgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIE5FWFRfT1BDT0RFKG9wX2dldF9ieV92YWwpOwogICAgICAgICB9CkBAIC0zOTYzLDYg
KzM5ODAsNyBAQCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tF
bnRyeSgKICAgICAgICAgaWYgKG1fcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxp
bmcoKSkgewogICAgICAgICAgICAgbV9wcm9maWxlZEJsb2NrLT5nZXRTdHViSW5mb01hcChsb2Nr
ZXIsIG1fc3R1YkluZm9zKTsKICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExp
bmtJbmZvTWFwKGxvY2tlciwgbV9jYWxsTGlua0luZm9zKTsKKyAgICAgICAgICAgIG1fcHJvZmls
ZWRCbG9jay0+Z2V0QnlWYWxJbmZvTWFwKGxvY2tlciwgbV9ieVZhbEluZm9zKTsKICAgICAgICAg
fQogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgK
aW5kZXggMjk2NzQ5ZGMzMWIyM2M4OTk4NDk0YjU2ZWYxNDMwODY0YjEyN2VjNi4uNDZmNWZlNDhk
MjVjMjdkZDMxOTZjNTgxMjlkYmU1ODU3ZmJkN2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTI2OCw2ICsyNjgsMTAgQEAgdm9pZCBjbG9iYmVyaXpl
KEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0
IFdyaXRlRnUKICAgICAgICAgZGVmKFB1cmVWYWx1ZShDaGVja05vdEVtcHR5LCBBZGphY2VuY3lM
aXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgcmV0
dXJuOwogCisgICAgY2FzZSBDaGVja0lkZW50OgorICAgICAgICBkZWYoUHVyZVZhbHVlKENoZWNr
SWRlbnQsIEFkamFjZW5jeUxpc3QoQWRqYWNlbmN5TGlzdDo6Rml4ZWQsIG5vZGUtPmNoaWxkMSgp
KSwgbm9kZS0+dWlkT3BlcmFuZCgpKSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ29u
c3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5z
dG9yYWdlUG9pbnRlcigpKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggZmQ4ZGY0
ZDk5NDE4YzYzN2Q0OGRmYTE5YTM4ODMwYTVmZWMyMzhjNC4uMTg2MTc3N2U3ZDkwOGUyMzYyYzVl
OTY3MGFlMjVjMjdiOGY0NGExOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTIwOCw2ICsyMDgsMjcgQEAgY2xh
c3MgQ29uc3RhbnRGb2xkaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBjYXNlIENoZWNrSWRlbnQ6IHsK
KyAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFu
ZCgpOworICAgICAgICAgICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdGFudCA9IG1fc3RhdGUuZm9y
Tm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBVbmlxdWVkU3Ry
aW5nSW1wbCogY29uc3RhbnRVaWQgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjaGls
ZENvbnN0YW50KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRVaWQgPSBhc1N5bWJvbChjaGlsZENv
bnN0YW50KS0+cHJpdmF0ZU5hbWUoKS51aWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3RyaW5n
KCkpCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbmRVaWQgPSBhc1N0cmlu
ZyhjaGlsZENvbnN0YW50KS0+dG9FeGlzdGluZ0F0b21pY1N0cmluZygpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGNvbnN0
YW50VWlkID09IHVpZCkgeworICAgICAgICAgICAgICAgICAgICBub2RlLT5yZW1vdmUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBjYXNl
IENoZWNrSW5Cb3VuZHM6IHsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIGxlZnQgPSBtX3N0YXRl
LmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAgICAgICAgICAgICAgSlNWYWx1
ZSByaWdodCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCAwOGZmYjJhOTEyOTM4NzIxMzEx
Y2FkMjc3NDY3NjFhMjA2NTNhYTVmLi5lNDcwYjhkZGFiOTk0MzhmZDg5MDM1MmU0NWUwOTEwMjlm
MWE2MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC0xMDcs
NiArMTA3LDcgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNh
c2UgVmFySW5qZWN0aW9uV2F0Y2hwb2ludDoKICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICBjYXNl
IENoZWNrTm90RW1wdHk6CisgICAgY2FzZSBDaGVja0lkZW50OgogICAgIGNhc2UgUmVnRXhwRXhl
YzoKICAgICBjYXNlIFJlZ0V4cFRlc3Q6CiAgICAgY2FzZSBDb21wYXJlTGVzczoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGM0NDIzMTAxNjMyNjU3
ZDNlODNmOTcxZTY2YTgzZjYyNTA1NzE1MjQuLmQ2YTk3OTBiMTNjZTAwNjJkOTc4MTE0MGVkY2Uy
MjE1MmU0MDBiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcApAQCAtMTAxMiw2ICsxMDEyLDE1IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQorCisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDogewor
ICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsK
KyAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpCisgICAgICAgICAgICAgICAgZml4RWRn
ZTxTeW1ib2xVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBmaXhFZGdlPFN0cmluZ0lkZW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXlp
Znk6CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZTogewpAQCAtMTc2MCw2ICsxNzY5
LDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgRnVu
Y3Rpb25Vc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgogICAgICAgICBjYXNlIEtub3duU3Ry
aW5nVXNlOgorICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPYmpl
Y3RVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAg
ICBpZiAoYWx3YXlzVW5ib3hTaW1wbGVQcmltaXRpdmVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmgKaW5kZXggZGYyMWNkZTYzNTQ3M2MxYTJkZjc3NDMyNjZhMGE5MThjN2NiZGZhYS4u
NmU4NGFjNjM5YmJmNDc1NGJhYjBlNTU1NWVmYjc0MTgyMTZhNjRhNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmgKQEAgLTEzMzIsNiArMTMzMiwxNyBAQCBzdHJ1Y3QgTm9kZSB7CiAg
ICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPihtX29wSW5mbyk7CiAgICAgfQog
CisgICAgYm9vbCBoYXNVaWRPcGVyYW5kKCkKKyAgICB7CisgICAgICAgIHJldHVybiBvcCgpID09
IENoZWNrSWRlbnQ7CisgICAgfQorCisgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZE9wZXJhbmQo
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1VpZE9wZXJhbmQoKSk7CisgICAgICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PFVuaXF1ZWRTdHJpbmdJbXBsKj4obV9vcEluZm8pOworICAgIH0K
KwogICAgIGJvb2wgaGFzVHJhbnNpdGlvbigpCiAgICAgewogICAgICAgICBzd2l0Y2ggKG9wKCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCA2MmU3Y2E5OGE1
MjExMmQ4MmQwZWI2ZjBkMTcyOGJlYWY0YjllMTMxLi5lOWJmNzI3MDRiMTdhYTY4Njc5ZTliYmVh
MGY0ZjJhZGNlZjk2M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
CkBAIC0yMDksNiArMjA5LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAg
IG1hY3JvKENoZWNrTm90RW1wdHksIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVj
a0JhZENlbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja0luQm91bmRzLCBO
b2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oQ2hlY2tJZGVudCwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIFwKICAgICAvKiBPcHRpbWl6YXRpb25zIGZvciBhcnJheSBtdXRhdGlvbi4gKi9c
CiAgICAgbWFjcm8oQXJyYXlQdXNoLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDc2YWY2YTJmM2U0NTJiMGYxMTdhYmMzYTZiYjVk
ZGQyZmFhYjE5OGEuLjM2ZjJkZjdjNzVjNTBjYWZkMDZlYzljMjc4NTFlZWE5ZjEwZmZhOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC02NDksNiArNjQ5LDcgQEAgY2xhc3MgUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIENoZWNrU3Ry
dWN0dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICAgICAgY2FzZSBDaGVja05vdEVt
cHR5OgorICAgICAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxs
OgogICAgICAgICBjYXNlIFB1dFN0cnVjdHVyZToKICAgICAgICAgY2FzZSBWYXJJbmplY3Rpb25X
YXRjaHBvaW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZl
VG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aAppbmRleCAwZmZhNmE4YTMwMDdkZjVjOGNhMmJlNTZmZmIzMzgzZGY3ZDUzYjlmLi44MzIzMjIx
ODFlMGEzMjg0NjY3NDIwNmRjYzczZWY1NWI0NzkxZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBTYWZl
VG9FeGVjdXRlRWRnZSB7CiAgICAgICAgIGNhc2UgT2JqZWN0T3JPdGhlclVzZToKICAgICAgICAg
Y2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CisgICAgICAgIGNh
c2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2Fz
ZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBOb3RTdHJpbmdWYXJVc2U6
CkBAIC0xODgsNiArMTg5LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBl
JiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tDZWxsOgog
ICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNl
IENoZWNrSWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoK
ICAgICBjYXNlIENvbXBhcmVMZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBmM2Y4YWY3YTUyZDUwZjlhMmU3MWM0ZjkwMTk5ODQ3
YmYwNTAwZDVlLi5hZWExYTFhMGUxNTQ4MTU5NWJiNGZlMDI2ZWVlY2E2ZDAyMjFlYTdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAt
NTczMSw2ICs1NzMxLDIwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN0cmlu
Z1ZhcihFZGdlIGVkZ2UpCiAgICAgbm90Q2VsbC5saW5rKCZtX2ppdCk7CiB9CiAKK3ZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQorewor
ICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGNlbGwpLCBlZGdl
LCBTcGVjU3ltYm9sLCBtX2ppdC5icmFuY2hJZk5vdFN5bWJvbChjZWxsKSk7Cit9CisKK3ZvaWQg
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UpCit7CisgICAgaWYgKCFu
ZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjU3ltYm9sKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVT
eW1ib2woZWRnZSwgb3BlcmFuZC5ncHIoKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZU5vdENlbGwoRWRnZSBlZGdlKQogewogICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRn
ZSwgflNwZWNDZWxsKSkKQEAgLTU4NDIsNiArNTg1Niw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgICAg
ICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3ltYm9s
VXNlOgorICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSk7CisgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3QoZWRn
ZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCmluZGV4IGE1YzQ0NTQ3ZGE2NGJjMmI2M2YwNzNhMTcxMWU2YTExODA2ZjU5
NWIuLmNlYmYyODYzYjQwMzEzYWI5NmZmMzhjNzhiZDYwZDNhOTQ1ZmEwZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTI0MDYsNiArMjQw
Niw4IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09i
amVjdChFZGdlLCBHUFJSZWcpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT2JqZWN0KEVkZ2Up
OwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JTdHJpbmdPYmplY3QoRWRnZSk7CisgICAgdm9p
ZCBzcGVjdWxhdGVTeW1ib2woRWRnZSwgR1BSUmVnIGNlbGwpOworICAgIHZvaWQgc3BlY3VsYXRl
U3ltYm9sKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTm90Q2VsbChFZGdlKTsKICAgICB2b2lk
IHNwZWN1bGF0ZU90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTWlzYyhFZGdlLCBKU1Zh
bHVlUmVncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAppbmRleCA3NzBiZGE1OGNhYjUwMjNhMWZhMGMzOGY0YzdhMDMwOGQ0MDgwYTMw
Li5hNTU4ZGI1ZWZkNWE0ODBlZTk2Y2NjNTg2MGE5ODFkNWY5ZTY4OTY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTM4NTAs
NiArMzg1MCwzMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgQ2hlY2tJZGVudDogeworICAgICAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAg
aWYgKHVpZC0+aXNTeW1ib2woKSkgeworICAgICAgICAgICAgc3BlY3VsYXRlU3ltYm9sKG5vZGUt
PmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
CisgICAgICAgICAgICAgICAgQmFkQ29uc3RhbnRDYWNoZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hl
ZENlbGwob3BlcmFuZC5ncHIoKSksIG51bGxwdHIsCisgICAgICAgICAgICAgICAgbV9qaXQuYnJh
bmNoUHRyKAorICAgICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWwsCisgICAg
ICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKG9wZXJhbmQuZ3ByKCksIFN5bWJv
bDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZElt
bVB0cih1aWQpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJp
bmcobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOworICAgICAgICAgICAgc3BlY3VsYXRl
U3RyaW5nSWRlbnQobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOworICAgICAgICAgICAg
c3BlY3VsYXRpb25DaGVjaygKKyAgICAgICAgICAgICAgICBCYWRDb25zdGFudENhY2hlLCBKU1Zh
bHVlU291cmNlOjp1bmJveGVkQ2VsbChvcGVyYW5kLmdwcigpKSwgbnVsbHB0ciwKKyAgICAgICAg
ICAgICAgICBtX2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVy
OjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3Bl
cmFuZC5ncHIoKSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksCisgICAgICAgICAgICAgICAg
ICAgIFRydXN0ZWRJbW1QdHIodWlkKSkpOworICAgICAgICB9CisgICAgICAgIG5vUmVzdWx0KG5v
ZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6IHsK
ICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZnVuY3Rpb24odGhpcywgbm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBmdW5jdGlvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCBlZmExMDRmM2Qw
NzAwMGI3ZDdiYzQ3M2JjZGYyMDZkMTA1M2ZjOWIxLi45MzZlZjU1NGFmMjRlMGI2NGZkZjQyOGYx
NjNhZThkNzg4ZTk4ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1VzZUtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5j
cHAKQEAgLTk3LDYgKzk3LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQs
IFVzZUtpbmQgdXNlS2luZCkKICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICBvdXQu
cHJpbnQoIktub3duU3RyaW5nIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFN5bWJvbFVz
ZToKKyAgICAgICAgb3V0LnByaW50KCJTeW1ib2wiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBvdXQucHJpbnQoIlN0cmluZ09iamVjdCIpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCmluZGV4
IGViZjk5ZGFlNjAwYzg4MjVkMjJjYmFjNjM4MjJkMTViNTU2MDAzNWEuLjI4OWI3ODNlNDFiYjM2
MTI5MWM4M2M4ZmFkN2IwOGE1NzhlMGE2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVXNlS2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5oCkBAIC01Nyw2ICs1Nyw3IEBAIGVudW0gVXNlS2luZCB7CiAgICAgU3RyaW5nSWRl
bnRVc2UsCiAgICAgU3RyaW5nVXNlLAogICAgIEtub3duU3RyaW5nVXNlLAorICAgIFN5bWJvbFVz
ZSwKICAgICBTdHJpbmdPYmplY3RVc2UsCiAgICAgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2UsCiAg
ICAgTm90U3RyaW5nVmFyVXNlLApAQCAtMTE3LDYgKzExOCw4IEBAIGlubGluZSBTcGVjdWxhdGVk
VHlwZSB0eXBlRmlsdGVyRm9yKFVzZUtpbmQgdXNlS2luZCkKICAgICBjYXNlIFN0cmluZ1VzZToK
ICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICByZXR1cm4gU3BlY1N0cmluZzsKKyAg
ICBjYXNlIFN5bWJvbFVzZToKKyAgICAgICAgcmV0dXJuIFNwZWNTeW1ib2w7CiAgICAgY2FzZSBT
dHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGNh
c2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CkBAIC0xOTYsNiArMTk5LDcgQEAgaW5saW5lIGJv
b2wgaXNDZWxsKFVzZUtpbmQga2luZCkKICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgIGNh
c2UgU3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CisgICAgY2FzZSBTeW1ib2xV
c2U6CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09i
amVjdFVzZToKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCmluZGV4IDkxMjc1NGRmYzQw
MTUyYjBlZDI0ODM2YWM3NWI4Zjk2OTg0Mzk5YmIuLjU4MWY0Y2JkOWE3NjhiOWFiMmE4MzkyMWNm
MjRkMzUyNGJjODU3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
QWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBAIC04Nyw3ICs4Nyw4IEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhTdHJ1Y3R1cmVfY2xhc3NJbmZvLCBTdHJ1
Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX2dsb2JhbE9i
amVjdCwgU3RydWN0dXJlOjpnbG9iYWxPYmplY3RPZmZzZXQoKSkgXAogICAgIG1hY3JvKFN0cnVj
dHVyZV9wcm90b3R5cGUsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkpIFwKLSAgICBtYWNy
byhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSkK
KyAgICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURP
ZmZzZXQoKSkgXAorICAgIG1hY3JvKFN5bWJvbF9wcml2YXRlTmFtZSwgU3ltYm9sOjpvZmZzZXRP
ZlByaXZhdGVOYW1lKCkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQ
KG1hY3JvKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2UsIERpcmVjdEFyZ3Vt
ZW50czo6c3RvcmFnZU9mZnNldCgpLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggNjI3MjhjNzQ2
ZWY5MWQ3NGI3ODI5YmIzZjlhNDRjNmQ3ZjYxZDdiMy4uYjQ5M2YzMDI3ZTgyY2ZjY2U5YzNjY2Y0
ODJjMTU1ODYxZDY4Yjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcApAQCAtMTE4LDYgKzExOCw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwg
Y2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hl
Y2tCYWRDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6
CiAgICAgY2FzZSBTdHJpbmdDaGFyQ29kZUF0OgogICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0
b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgpAQCAtNDE1LDYgKzQx
Niw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAg
ICAgICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5n
T2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6
CisgICAgICAgICAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBG
aW5hbE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE5vdENlbGxVc2U6CiAgICAgICAg
ICAgICAgICAgY2FzZSBPdGhlclVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5jcHAKaW5kZXggNTJkZWE1ZWMyMDk1YjkzZmRmMWI4OTZmZGNmYjcx
YzI0ZDE1NzZlNC4uZWI1NmFjMDZjMWU4MTZmOTk4YWNkYzBjNmQ2MWQ3ZGQ5NWJhYWMwMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAg
LTUzMiw2ICs1MzIsOSBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgIGNhc2UgQ2hl
Y2tCYWRDZWxsOgogICAgICAgICAgICAgY29tcGlsZUNoZWNrQmFkQ2VsbCgpOwogICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDoKKyAgICAgICAgICAgIGNvbXBpbGVD
aGVja0lkZW50KCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHZXRFeGVjdXRh
YmxlOgogICAgICAgICAgICAgY29tcGlsZUdldEV4ZWN1dGFibGUoKTsKICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtMjAyOSw2ICsyMDMyLDIwIEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAg
ICAgc3BlY3VsYXRlKFREWkZhaWx1cmUsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQuaXNaZXJv
NjQobG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSkpOwogICAgIH0KIAorICAgIHZvaWQgY29t
cGlsZUNoZWNrSWRlbnQoKQorICAgIHsKKyAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9
IG1fbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7Cisg
ICAgICAgICAgICBMVmFsdWUgc3ltYm9sID0gbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQxKCkpOwor
ICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN5bWJvbCwgbV9o
ZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUpOworICAgICAgICAgICAgc3BlY3VsYXRlKEJhZENvbnN0
YW50Q2FjaGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwg
bV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
TFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywgbV9oZWFwcy5K
U1N0cmluZ192YWx1ZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkQ29uc3RhbnRDYWNoZSwg
bm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5ub3RFcXVhbChzdHJpbmdJbXBsLCBtX291dC5jb25z
dEludFB0cih1aWQpKSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICB2b2lkIGNvbXBpbGVHZXRF
eGVjdXRhYmxlKCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUt
PmNoaWxkMSgpKTsKQEAgLTcwMjYsNyArNzA0MywxNiBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7
CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50KGVkZ2UsIHN0cmluZywgc3RyaW5nSW1wbCk7
CiAgICAgICAgIHJldHVybiBzdHJpbmdJbXBsOwogICAgIH0KLSAgICAKKworICAgIExWYWx1ZSBs
b3dTeW1ib2woRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0
aWNPcGVyYW5kU3BlY3VsYXRpb24pCisgICAgeworICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUs
IG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IFN5
bWJvbFVzZSk7CisKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGxvd0NlbGwoZWRnZSwgbW9kZSk7
CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCByZXN1bHQpOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKwogICAgIExWYWx1ZSBsb3dOb25OdWxsT2JqZWN0KEVkZ2UgZWRnZSwg
T3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9u
KQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJh
bmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBPYmplY3RVc2UpOwpAQCAtNzQyMyw2
ICs3NDQ5LDkgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBjYXNlIFN0cmluZ0lk
ZW50VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQoZWRnZSk7CiAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAgICAgICBzcGVjdWxh
dGVTeW1ib2woZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdP
YmplY3RVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3QoZWRnZSk7CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTc1MTksNyArNzU0OCwxNiBAQCBjbGFzcyBMb3dlckRGR1RvTExW
TSB7CiAgICAgICAgICAgICBtX291dC5sb2FkMzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0
dXJlSUQpLAogICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMih2bSgpLnN0cmluZ1N0cnVjdHVy
ZS0+aWQoKSkpOwogICAgIH0KLSAgICAKKworICAgIExWYWx1ZSBpc05vdFN5bWJvbChMVmFsdWUg
Y2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQorICAgIHsKKyAgICAgICAg
aWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUgJiBTcGVjQ2VsbCwgflNwZWNT
eW1ib2wpKQorICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsKKyAgICAgICAgcmV0dXJuIG1fb3V0
Lm5vdEVxdWFsKAorICAgICAgICAgICAgbV9vdXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxs
X3N0cnVjdHVyZUlEKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIodm0oKS5zeW1ib2xT
dHJ1Y3R1cmUtPmlkKCkpKTsKKyAgICB9CisKICAgICBMVmFsdWUgaXNBcnJheVR5cGUoTFZhbHVl
IGNlbGwsIEFycmF5TW9kZSBhcnJheU1vZGUpCiAgICAgewogICAgICAgICBzd2l0Y2ggKGFycmF5
TW9kZS50eXBlKCkpIHsKQEAgLTc3NDIsNyArNzc4MCwxNyBAQCBjbGFzcyBMb3dlckRGR1RvTExW
TSB7CiAgICAgICAgICAgICBOb3RTdHJpbmdPYmplY3QsIG5vVmFsdWUoKSwgMCwKICAgICAgICAg
ICAgIG1fb3V0Lm5vdEVxdWFsKHN0cnVjdHVyZUlELCB3ZWFrU3RydWN0dXJlSUQoc3RyaW5nT2Jq
ZWN0U3RydWN0dXJlKSkpOwogICAgIH0KLSAgICAKKworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9s
KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSyhq
c1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNTeW1ib2wgfCB+U3BlY0NlbGwsIGlzTm90U3lt
Ym9sKGNlbGwpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2Up
CisgICAgeworICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSwgbG93Q2VsbChlZGdlKSk7Cisg
ICAgfQorCiAgICAgdm9pZCBzcGVjdWxhdGVOb25OdWxsT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVl
IGNlbGwpCiAgICAgewogICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCks
IGVkZ2UsIFNwZWNPYmplY3QsIGlzTm90T2JqZWN0KGNlbGwpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcAppbmRleCA5YWYzMzJlYjc4ZTE4OWFlNmE1M2IyMjM1MGFmNzdiNWY5ZDdlYjJiLi5j
NzhiNGMxOTU2YmY3MDhkOTFjYzJhMTczNzE5MWVmM2MyNGUwMjVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCkBAIC02NjAsNiArNjYwLDEwIEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6
cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogCiAgICAgbV9jb2Rl
QmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZvcyhtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUo
KSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYnlWYWxDb21waWxhdGlvbkluZm8u
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgUGF0Y2hhYmxlSnVtcCBwYXRjaGFibGVOb3RJbmRleEp1
bXAgPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLm5vdEluZGV4SnVtcDsKKyAgICAgICAgQ29k
ZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKCk7CisgICAgICAg
IGlmIChKdW1wKHBhdGNoYWJsZU5vdEluZGV4SnVtcCkuaXNTZXQoKSkKKyAgICAgICAgICAgIG5v
dEluZGV4SnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihwYXRj
aGFibGVOb3RJbmRleEp1bXApKTsKICAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVt
cCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGls
YXRpb25JbmZvW2ldLmJhZFR5cGVKdW1wKSk7CiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIGRv
bmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKG1fYnlWYWxDb21waWxhdGlvbkluZm9b
aV0uZG9uZVRhcmdldCk7CiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRoVGFyZ2V0
ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLnNsb3dQ
YXRoVGFyZ2V0KTsKQEAgLTY2Nyw2ICs2NzEsNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnBy
aXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgCiAgICAg
ICAgIG1fY29kZUJsb2NrLT5ieVZhbEluZm8oaSkgPSBCeVZhbEluZm8oCiAgICAgICAgICAgICBt
X2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJ5dGVjb2RlSW5kZXgsCisgICAgICAgICAgICBub3RJ
bmRleEp1bXAsCiAgICAgICAgICAgICBiYWRUeXBlSnVtcCwKICAgICAgICAgICAgIG1fYnlWYWxD
b21waWxhdGlvbkluZm9baV0uYXJyYXlNb2RlLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdl
ZW5Db2RlUHRyKGJhZFR5cGVKdW1wLCBkb25lVGFyZ2V0KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
CmluZGV4IDAyMTM5NjM0YjFkZmVkNjEwNTYyZGVjYjU3OGRiMzhkNmIxNjAzNGUuLmRlY2Y3OWVh
MmI0YTM2ZmViNTBhZjRkNWI0NjMwM2Y4NDE2ZjIwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
aApAQCAtMTQ5LDggKzE0OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHN0cnVjdCBCeVZhbENv
bXBpbGF0aW9uSW5mbyB7CiAgICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKCkgeyB9CiAgICAg
ICAgIAotICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4
LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2Rl
IGFycmF5TW9kZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQpCisgICAgICAgIEJ5
VmFsQ29tcGlsYXRpb25JbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIE1hY3JvQXNzZW1ibGVy
OjpQYXRjaGFibGVKdW1wIG5vdEluZGV4SnVtcCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1
bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpM
YWJlbCBkb25lVGFyZ2V0KQogICAgICAgICAgICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5k
ZXgpCisgICAgICAgICAgICAsIG5vdEluZGV4SnVtcChub3RJbmRleEp1bXApCiAgICAgICAgICAg
ICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1wKQogICAgICAgICAgICAgLCBhcnJheU1vZGUoYXJy
YXlNb2RlKQogICAgICAgICAgICAgLCBkb25lVGFyZ2V0KGRvbmVUYXJnZXQpCkBAIC0xNTgsNiAr
MTU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHVu
c2lnbmVkIGJ5dGVjb2RlSW5kZXg7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVK
dW1wIG5vdEluZGV4SnVtcDsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAg
YmFkVHlwZUp1bXA7CiAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGU7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0OwpAQCAtMjA0LDYgKzIwNiwxMyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIGppdC5wcml2YXRlQ29tcGlsZUdldEJ5VmFsKGJ5VmFs
SW5mbywgcmV0dXJuQWRkcmVzcywgYXJyYXlNb2RlKTsKICAgICAgICAgfQogCisgICAgICAgIHN0
YXRpYyB2b2lkIGNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChWTSogdm0sIENvZGVCbG9jayog
Y29kZUJsb2NrLCBCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9jayk7CisgICAgICAgICAgICBqaXQubV9ieXRlY29k
ZU9mZnNldCA9IGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKKyAgICAgICAgICAgIGppdC5wcml2
YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKGJ5VmFsSW5mbywgcmV0dXJuQWRkcmVzcywg
cHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQorCiAgICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVQ
dXRCeVZhbChWTSogdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBCeVZhbEluZm8qIGJ5VmFsSW5m
bywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKSVRBcnJheU1vZGUgYXJyYXlNb2Rl
KQogICAgICAgICB7CiAgICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOwpAQCAtMjQ2
LDYgKzI1NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBDb21waWxhdGlvblJlc3VsdCBw
cml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCk7CiAgICAgICAgIAogICAgICAgICB2
b2lkIHByaXZhdGVDb21waWxlR2V0QnlWYWwoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwg
SklUQXJyYXlNb2RlKTsKKyAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENh
Y2hlZElkKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIGNvbnN0IElkZW50aWZpZXImKTsK
ICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVybkFk
ZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CiAKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUhh
c0luZGV4ZWRQcm9wZXJ0eShCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1v
ZGUpOwpAQCAtMzcxLDcgKzM4MSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKdW1wTGlz
dCBlbWl0QXJyYXlTdG9yYWdlUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBi
YWRUeXBlKTsKICAgICAgICAgSnVtcExpc3QgZW1pdEludFR5cGVkQXJyYXlQdXRCeVZhbChJbnN0
cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlUeXBlKTsKICAgICAg
ICAgSnVtcExpc3QgZW1pdEZsb2F0VHlwZWRBcnJheVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0
Y2hhYmxlSnVtcCYgYmFkVHlwZSwgVHlwZWRBcnJheVR5cGUpOwotICAgICAgICAKKworICAgICAg
ICBKSVRHZXRCeUlkR2VuZXJhdG9yIGVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0cnVjdGlv
biosIGNvbnN0IElkZW50aWZpZXImLCBKdW1wTGlzdCYgZG9uZUNhc2VzLCBKdW1wTGlzdCYgc2xv
d0Nhc2VzKTsKKwogICAgICAgICBlbnVtIEZpbmFsT2JqZWN0TW9kZSB7IE1heUJlRmluYWwsIEtu
b3duTm90RmluYWwgfTsKIAogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gSnVtcCBicmFu
Y2hTdHJ1Y3R1cmUoUmVsYXRpb25hbENvbmRpdGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0cnVjdHVy
ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggOTBiNTMy
MTVhYjA0Yzc0MzM4YWRiYTgzNjMwNDBjMzg0ZGZmYTMxZS4uZGFmMmFmZjM3YzAwMDI1Zjg4NmJk
MzEwYzQ0MzdkYzA3ZTM1MDlhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCkBAIC0xMTA4LDcgKzExMDgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhl
ZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25J
bmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBl
LCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxD
b21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBl
LCBtb2RlLCBkb25lKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9w
cm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VF
bnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKaW5kZXggOGE2OTc1YzE2ZDZiOTZlY2ExZjI5NjNkNGY1OTEyYmYwNTY4OTZl
NS4uNmYwZDhhOTA3MzExZDYyNGE2NTRkNWQ2OTVjNDk1NGM4ZTc1MmNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xNTU1LDcgKzE1NTUsMjMg
QEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXpl
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEoKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KLSAgICAKKworICAgIGlmIChiYXNlVmFsdWUuaXNPYmplY3QoKSAmJiAoc3Vic2NyaXB0Lmlz
U3ltYm9sKCkgfHwgc3Vic2NyaXB0LmlzU3RyaW5nKCkpKSB7CisgICAgICAgIGNvbnN0IElkZW50
aWZpZXIgcHJvcGVydHlOYW1lID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZXhlYyk7CisKKyAg
ICAgICAgaWYgKCFzdWJzY3JpcHQuaXNTdHJpbmcoKSB8fCAhcGFyc2VJbmRleChwcm9wZXJ0eU5h
bWUpKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IGV4ZWMtPmxvY2F0
aW9uQXNCeXRlY29kZU9mZnNldCgpOworICAgICAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0
KTsKKyAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCkt
PmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOworICAgICAgICAgICAgQVNTRVJUKCFi
eVZhbEluZm8uc3R1YlJvdXRpbmUpOworICAgICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWxX
aXRoQ2FjaGVkSWQoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgJmJ5VmFsSW5mbywgUmV0dXJuQWRk
cmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICB9CisK
KyAgICAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKKyAgICAgICAgYm9vbCBoYXNS
ZXN1bHQgPSBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGFzUmVzdWx0ID8gc2xvdC5nZXRW
YWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpIDoganNVbmRlZmluZWQoKSk7CisgICAgfQorCiAgICAg
SlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJy
YXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggNGVmMDZkOTIxM2EyYjFkYmZmYmE0
YzdjMzM0ZDJmNmYxYzQ3OTE3ZS4uZTgyZDhiYjVjNzM1NDJlODhjMGE2YzI2NDBhOTIzODUwNTlk
YmMxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
cy5jcHAKQEAgLTEwMCw4ICsxMDAsMTUgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIEFycmF5UHJvZmlsZSogcHJvZmls
ZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKICAgICBlbWl0
R2V0VmlydHVhbFJlZ2lzdGVycyhiYXNlLCByZWdUMCwgcHJvcGVydHksIHJlZ1QxKTsKLSAgICBl
bWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKIAorICAgIGVtaXRK
dW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CisKKyAgICAvLyBGSVhNRTogV2Ug
bmVlZCB0byBpbXBsZW1lbnQgcGF0Y2hhYmxlQnJhbmNoNjQuCisgICAgSnVtcCBpc0luZGV4ID0g
ZW1pdEp1bXBJZkltbWVkaWF0ZUludGVnZXIocmVnVDEpOworICAgIFBhdGNoYWJsZUp1bXAgbm90
SW5kZXggPSBwYXRjaGFibGVKdW1wKCk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOworCisg
ICAgaXNJbmRleC5saW5rKHRoaXMpOwogICAgIC8vIFRoaXMgaXMgdGVjaG5pY2FsbHkgaW5jb3Jy
ZWN0IC0gd2UncmUgemVyby1leHRlbmRpbmcgYW4gaW50MzIuICBPbiB0aGUgaG90IHBhdGggdGhp
cyBkb2Vzbid0IG1hdHRlci4KICAgICAvLyBXZSBjaGVjayB0aGUgdmFsdWUgYXMgaWYgaXQgd2Fz
IGEgdWludDMyIGFnYWluc3QgdGhlIG1fdmVjdG9yTGVuZ3RoIC0gd2hpY2ggd2lsbCBhbHdheXMg
ZmFpbCBpZgogICAgIC8vIG51bWJlciB3YXMgc2lnbmVkIHNpbmNlIG1fdmVjdG9yTGVuZ3RoIGlz
IGFsd2F5cyBsZXNzIHRoYW4gaW50bWF4IChzaW5jZSB0aGUgdG90YWwgYWxsb2NhdGlvbgpAQCAt
MTEwLDcgKzExNyw2IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAvLyBleHRlbmRpbmcgc2luY2UgaXQgbWFrZXMgaXQg
ZWFzaWVyIHRvIHJlLXRhZyB0aGUgdmFsdWUgaW4gdGhlIHNsb3cgY2FzZS4KICAgICB6ZXJvRXh0
ZW5kMzJUb1B0cihyZWdUMSwgcmVnVDEpOwogCi0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlND
ZWxsKHJlZ1QwLCBiYXNlKTsKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwocmVn
VDAsIHJlZ1QyLCBwcm9maWxlKTsKICAgICBhbmQzMihUcnVzdGVkSW1tMzIoSW5kZXhpbmdTaGFw
ZU1hc2spLCByZWdUMik7CiAKQEAgLTE1MCw3ICsxNTYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZSgpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAK
LSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyht
X2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBp
bGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwg
bm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklUOjpKdW1wTGlzdCBKSVQ6
OmVtaXREb3VibGVMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKQEAg
LTE5NSw2ICsyMDEsMzkgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2Fk
KEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICByZXR1cm4gc2xvd0Nh
c2VzOwogfQogCitKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hl
ZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykKK3sK
KyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKworICAgIHNs
b3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMSkpOworICAgIGlmIChwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0
cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNl
dCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRk
cmVzcyhyZWdUMSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMSk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1
YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0
cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIEpT
U3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMSk7CisgICAgICAgIHNsb3dDYXNlcy5hcHBl
bmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMSkpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5k
KGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QxLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNl
dCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21pYygpKSkpOworICAgIH0K
KyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDEsIFRydXN0ZWRJ
bW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3Ig
Z2VuKAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwg
UmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVn
VDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisgICAgTGFi
ZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgpLmxpbmso
dGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlLCBvcGVy
YXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QwLCBwcm9wZXJ0
eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4s
IGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIHJldHVybiBnZW47
Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7
CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBAIC0yMDIs
OCArMjQxLDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmls
ZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKLSAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNl
SWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjaworICAgIGxpbmtTbG93
Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBKdW1wIG5vbkNlbGwgPSBq
dW1wKCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNrCiAgICAg
SnVtcCBub3RTdHJpbmcgPSBicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIApAQCAtMjk5LDcgKzMz
OCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICAKICAgICBMYWJlbCBkb25lID0gbGFiZWwoKTsKICAgICAKLSAgICBt
X2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVj
b2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9u
SW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgUGF0Y2hh
YmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiAKIH0KIApAQCAtOTk5LDYgKzEwMzgs
MzUgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwoQnlWYWxJbmZvKiBieVZhbElu
Zm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWQKICAgICByZXBhdGNoQnVmZmVyLnJlbGlua0Nh
bGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlW
YWxHZW5lcmljKSk7CiB9CiAKK3ZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENh
Y2hlZElkKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJl
c3MsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKKyAgICBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uID0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkg
KyBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisKKyAgICBKdW1wTGlzdCBkb25lQ2FzZXM7Cisg
ICAgSnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4gPSBl
bWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoY3VycmVudEluc3RydWN0aW9uLCBwcm9wZXJ0eU5hbWUs
IGRvbmVDYXNlcywgc2xvd0Nhc2VzKTsKKworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2Vy
KG1fY29kZUJsb2NrLT5tX2xvY2spOworICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKm1fdm0s
ICp0aGlzLCBtX2NvZGVCbG9jayk7CisgICAgcGF0Y2hCdWZmZXIubGluayhzbG93Q2FzZXMsIENv
ZGVMb2NhdGlvbkxhYmVsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlRnJvbUV4ZWN1dGFi
bGVBZGRyZXNzKHJldHVybkFkZHJlc3MudmFsdWUoKSkpLmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZv
LT5yZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkpOworICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZUNh
c2VzLCBieVZhbEluZm8tPmJhZFR5cGVKdW1wLmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZvLT5iYWRU
eXBlSnVtcFRvRG9uZSkpOworICAgIGZvciAoY29uc3QgYXV0byYgY2FsbFNpdGUgOiBtX2NhbGxz
KSB7CisgICAgICAgIGlmIChjYWxsU2l0ZS50bykKKyAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxp
bmsoY2FsbFNpdGUuZnJvbSwgRnVuY3Rpb25QdHIoY2FsbFNpdGUudG8pKTsKKyAgICB9CisgICAg
Z2VuLmZpbmFsaXplKHBhdGNoQnVmZmVyKTsKKworICAgIGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUg
PSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICBtX2NvZGVCbG9jaywgcGF0Y2hCdWZm
ZXIsCisgICAgICAgICgiQmFzZWxpbmUgZ2V0X2J5X3ZhbCB3aXRoIGNhY2hlZCBwcm9wZXJ0eSBu
YW1lICclcycgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHByb3BlcnR5TmFtZS5pbXBs
KCktPnV0ZjgoKS5kYXRhKCksIHRvQ1N0cmluZygqbV9jb2RlQmxvY2spLmRhdGEoKSwgcmV0dXJu
QWRkcmVzcy52YWx1ZSgpKSk7CisgICAgYnlWYWxJbmZvLT5jYWNoZWRJZCA9IHByb3BlcnR5TmFt
ZTsKKworICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CisgICAg
cmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5ub3RJbmRleEp1bXAsIENvZGVMb2NhdGlv
bkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkpKTsKKyAgICByZXBh
dGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25Q
dHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7Cit9CisKIHZvaWQgSklUOjpwcml2YXRlQ29t
cGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVy
bkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAgSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsg
YnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggNjA5Y2ExMzg4MjI3ZGI1YmRh
NTM5Mjc1MzAzZGFkZDJkOGIxY2ViYy4uMzE1ZmNkYWVkY2VlMDVkOTZhMjZkZmE1NjgzODA1ZjU4
YjFhYTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xNTIsOCArMTUyLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
Z2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVt
aXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMywgcmVnVDIpOwogICAg
IAotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChi
YXNlLCByZWdUMSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNoYWJsZUJyYW5j
aDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSk7Cisg
ICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRo
Q2VsbChyZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRl
eGluZ1NoYXBlTWFzayksIHJlZ1QxKTsKIApAQCAtMTkyLDcgKzE5Myw3IEBAIHZvaWQgSklUOjpl
bWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1Qw
KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0
aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9i
eVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29k
ZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklUOjpKdW1w
TGlzdCBKSVQ6OmVtaXRDb250aWd1b3VzTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAm
IGJhZFR5cGUsIEluZGV4aW5nVHlwZSBleHBlY3RlZFNoYXBlKQpAQCAtMjM2LDcgKzIzNyw0MyBA
QCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEFycmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQ
YXRjaGFibGVKdW1wJiBiYWRUeXBlKQogICAgIAogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9Ci0g
ICAgCisKK0pJVEdldEJ5SWRHZW5lcmF0b3IgSklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2VzLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQoreworICAg
IGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworCisgICAgLy8gYmFz
ZTogdGFnKHJlZ1QxKSwgcGF5bG9hZChyZWdUMCkKKyAgICAvLyBwcm9wZXJ0eTogdGFnKHJlZ1Qz
KSwgcGF5bG9hZChyZWdUMikKKworICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpT
Q2VsbChyZWdUMykpOworICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAg
ICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdU
MiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdl
dCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMiwgU3ltYm9sOjpvZmZzZXRPZlBy
aXZhdGVOYW1lKCkpLCByZWdUMik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3Ry
dWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAg
ICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdU
Mik7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMikp
OworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJl
Z1QyLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6
OmZsYWdJc0F0b21pYygpKSkpOworICAgIH0KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0
cihOb3RFcXVhbCwgcmVnVDIsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsK
KworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAorICAgICAgICBtX2NvZGVCbG9jaywgQ29k
ZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMo
KSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEs
IHJlZ1QwKSwgRG9udFNwaWxsKTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisK
KyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICBMYWJlbCBjb2xkUGF0aEJlZ2lu
ID0gbGFiZWwoKTsKKyAgICBnZW4uc2xvd1BhdGhKdW1wKCkubGluayh0aGlzKTsKKworICAgIENh
bGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oV2l0aFByb2ZpbGUsIG9wZXJhdGlvbkdldEJ5SWRPcHRp
bWl6ZSwgZHN0LCBnZW4uc3R1YkluZm8oKSwgcmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eU5hbWUuaW1w
bCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOwor
ICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIHJldHVybiBnZW47Cit9CisKIHZv
aWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50
IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBAIC0yNDQsOCArMjgxLDgg
QEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJl
bnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKLSAgICBsaW5rU2xvd0Nhc2Uo
aXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0Nl
bGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjaworICAgIGxpbmtTbG93Q2FzZShpdGVy
KTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKIAogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsK
ICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTMxNCw3ICsz
NTEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0gICAg
bV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRl
Y29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlv
bkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNo
YWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJ
VDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nU2hh
cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCmluZGV4IGU1NzkwZDc4NzIy
NmJlYTc2MDI0YzlkMWQ2NmE2NzYwZjY0ZGU1YTIuLjgzZjVkZTI0ODUyYmMzNzhlZTBhNzcwMzlm
NDYzMTgyNWZkZGRiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N5bWJvbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBA
IC03OSw2ICs3OSw4IEBAIGNsYXNzIFN5bWJvbCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAg
IEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0Owog
ICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKIAorICAgIHN0YXRpYyBzaXpl
X3Qgb2Zmc2V0T2ZQcml2YXRlTmFtZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTeW1ib2ws
IG1fcHJpdmF0ZU5hbWUpOyB9CisKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95
KEpTQ2VsbCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258209</attachid>
            <date>2015-08-04 14:19:51 -0700</date>
            <delta_ts>2015-08-04 15:41:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150804141944.patch</filename>
            <type>text/plain</type>
            <size>47292</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2U5NmY0OWE0N2MwZjk1NWE0ZWJmMDA3MzdiOTEyMDI4Yjg3YTRiLi41YTFmNmYwZDFhYzc4ODAw
MjdiMjVkMGMwYmM1YjA0MzJjNzkzNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MSBAQAorMjAxNS0wOC0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0QnlWYWxJbmZv
TWFwKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAg
ICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNv
ZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2Vy
OjpJbmxpbmVTdGFja0VudHJ5OjpJbmxpbmVTdGFja0VudHJ5KToKKyAgICAgICAgKiBkZmcvREZH
Q2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAq
IGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q29u
c3RhbnRGb2xkaW5nUGhhc2U6OmZvbGRDb25zdGFudHMpOgorICAgICAgICAqIGRmZy9ERkdEb2Vz
R0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6b2JzZXJ2ZVVzZUtpbmRPbk5vZGUpOgor
ICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzVWlk
T3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6dWlkT3BlcmFuZCk6CisgICAgICAg
ICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAg
ICAgICAoSlNDOjpERkc6OlNhZmVUb0V4ZWN1dGVFZGdlOjpvcGVyYXRvcigpKToKKyAgICAgICAg
KEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTeW1i
b2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpwcmludElu
dGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlNDOjpERkc6
OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAgICAgICog
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBm
dGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9MTFZNOjpjb21waWxlQ2hlY2tJZGVudCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvTExWTTo6bG93U3ltYm9sKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9MTFZNOjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xM
Vk06OmlzTm90U3ltYm9sKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZN
OjpzcGVjdWxhdGVTeW1ib2wpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgIChK
U0M6OkJ5VmFsQ29tcGlsYXRpb25JbmZvOjpCeVZhbENvbXBpbGF0aW9uSW5mbyk6CisgICAgICAg
IChKU0M6OkpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKiBqaXQv
SklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9w
cm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGpp
dC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRf
YnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNv
bXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZh
bFdpdGhDYWNoZWRJZCk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
U2xvd19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92
YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sLmg6CisKIDIwMTUtMDgtMDMgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgRG9uJ3Qgc2V0IHVwIHRo
ZSBjYWxsc2l0ZSB0byBvcGVyYXRpb25HZXRCeVZhbERlZmF1bHQgd2hlbiB0aGUgb3B0aW1pemF0
aW9uIGlzIGFscmVhZHkgZG9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5VmFsSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFs
SW5mby5oCmluZGV4IGQ5ODg1MTYxMzI1OGE3MWI5ZjA0YmE0OTA3M2Y0NDAzM2U1NzEwODMuLjE5
YWQ3MTA0NjhhZDI4MDkxNDNmMzczZGNkN2Y5YWVkNTQ3NGQzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTI2LDE2ICsyNiwxNyBAQAogI2lmbmRl
ZiBCeVZhbEluZm9faAogI2RlZmluZSBCeVZhbEluZm9faAogCi0jaWYgRU5BQkxFKEpJVCkKLQog
I2luY2x1ZGUgIkNsYXNzSW5mby5oIgogI2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5oIgorI2luY2x1
ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNsdWRlICJJbmRleGluZ1R5cGUuaCIKICNpbmNsdWRlICJK
SVRTdHViUm91dGluZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIAorI2lmIEVOQUJMRShKSVQpCisKIGVudW0gSklUQXJyYXlNb2RlIHsKICAgICBKSVRJbnQz
MiwKICAgICBKSVREb3VibGUsCkBAIC0yMDIsOCArMjAzLDkgQEAgaW5saW5lIEpJVEFycmF5TW9k
ZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiBzdHJ1Y3Qg
QnlWYWxJbmZvIHsKICAgICBCeVZhbEluZm8oKSB7IH0KICAgICAKLSAgICBCeVZhbEluZm8odW5z
aWduZWQgYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJy
YXlNb2RlIGFycmF5TW9kZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZSwgaW50MTZfdCByZXR1
cm5BZGRyZXNzVG9TbG93UGF0aCkKKyAgICBCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCwgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlw
ZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmUs
IGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgIDogYnl0ZWNvZGVJbmRl
eChieXRlY29kZUluZGV4KQorICAgICAgICAsIG5vdEluZGV4SnVtcChub3RJbmRleEp1bXApCiAg
ICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICwgYXJyYXlNb2RlKGFy
cmF5TW9kZSkKICAgICAgICAgLCBiYWRUeXBlSnVtcFRvRG9uZShiYWRUeXBlSnVtcFRvRG9uZSkK
QEAgLTIxMSwxNCArMjEzLDE2IEBAIHN0cnVjdCBCeVZhbEluZm8gewogICAgICAgICAsIHNsb3dQ
YXRoQ291bnQoMCkKICAgICB7CiAgICAgfQotICAgIAorCiAgICAgdW5zaWduZWQgYnl0ZWNvZGVJ
bmRleDsKKyAgICBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcDsKICAgICBDb2RlTG9jYXRp
b25KdW1wIGJhZFR5cGVKdW1wOwogICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGU7IC8vIFRoZSBh
cnJheSBtb2RlIHRoYXQgd2FzIGJha2VkIGludG8gdGhlIGlubGluZSBKSVQgY29kZS4KICAgICBp
bnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lOwogICAgIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xv
d1BhdGg7CiAgICAgdW5zaWduZWQgc2xvd1BhdGhDb3VudDsKICAgICBSZWZQdHI8SklUU3R1YlJv
dXRpbmU+IHN0dWJSb3V0aW5lOworICAgIElkZW50aWZpZXIgY2FjaGVkSWQ7CiB9OwogCiBpbmxp
bmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZhbEluZm8qIGluZm8pCkBA
IC0yMjYsOSArMjMwLDE1IEBAIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbEluZm9CeXRlY29kZUlu
ZGV4KEJ5VmFsSW5mbyogaW5mbykKICAgICByZXR1cm4gaW5mby0+Ynl0ZWNvZGVJbmRleDsKIH0K
IAotfSAvLyBuYW1lc3BhY2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQnlWYWxJ
bmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFwOworCisjZWxzZSAv
LyBFTkFCTEUoSklUKQorCit0eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4gQnlWYWxJbmZvTWFw
OwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorfSAvLyBuYW1lc3BhY2UgSlNDCisKICNlbmRp
ZiAvLyBCeVZhbEluZm9faAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwCmluZGV4IDAyMzA5Mjc0NjMyODg0NmY0NzE5YjM3YTg5Zjk2ZmIzYjU3YjE5NDcu
LjdlZjgxNmU0OGEyMzE2NjNiMWY1YjVlYmE0ZTNhNjhiMTU0Mjg2NTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0yNjkzLDYgKzI2OTMsMjIg
QEAgdm9pZCBDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb01hcChDYWxsTGlua0luZm9NYXAmIHJl
c3VsdCkKICAgICBnZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCByZXN1bHQpOwogfQogCit2b2lk
IENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBC
eVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSklUKQorICAgIGZvciAoYXV0byYg
YnlWYWxJbmZvIDogbV9ieVZhbEluZm9zKQorICAgICAgICByZXN1bHQuYWRkKENvZGVPcmlnaW4o
YnlWYWxJbmZvLmJ5dGVjb2RlSW5kZXgpLCAmYnlWYWxJbmZvKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2RlQmxvY2s6OmdldEJ5VmFsSW5m
b01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2xvY2spOworICAgIGdldEJ5VmFsSW5mb01hcChsb2NrZXIsIHJlc3VsdCk7Cit9CisK
ICNpZiBFTkFCTEUoSklUKQogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1Yklu
Zm8oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4
IDZjM2ExMTVmNzc1ZWVjM2FiZDIyMDJmZWZhNTI2ZGY4MGEzZmM5MzguLjJhMzRlMmQ2MmM5YmVl
NzQ1YWQ0NWU1ZjRiYWVlYmM5Y2IyNTEyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTIwMCw2ICsyMDAsOSBAQCBjbGFzcyBDb2RlQmxvY2sgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29kZUJsb2NrPiwgcHVibGljIFVuY29uZGl0aW9u
YWxGaQogICAgIAogICAgIHZvaWQgZ2V0Q2FsbExpbmtJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImLCBDYWxsTGlua0luZm9NYXAmIHJlc3VsdCk7CiAgICAgdm9pZCBnZXRDYWxsTGlu
a0luZm9NYXAoQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOworCisgICAgdm9pZCBnZXRCeVZhbElu
Zm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIEJ5VmFsSW5mb01hcCYgcmVzdWx0KTsK
KyAgICB2b2lkIGdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCk7CiAgICAgCiAj
aWYgRU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1YkluZm8oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAppbmRleCAwMDdmYzlhYzMxZjQwNmNiM2FmOTYxOWIyMzY0MjVlNDI5ZmIz
OTFlLi5mYTFiMjk1NzZjNjk0OGFmNjM2NTg1MzMzOTQ3ODM2MzZkNDNjNTk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCkBAIC0yMTY4LDYgKzIxNjgsMjggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBDaGVja0lkZW50OiB7CisgICAgICAg
IEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
IFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7CisgICAgICAgIEFT
U0VSVCh1aWQtPmlzU3ltYm9sKCkgPyAhKHZhbHVlLm1fdHlwZSAmIH5TcGVjU3ltYm9sKSA6ICEo
dmFsdWUubV90eXBlICYgflNwZWNTdHJpbmdJZGVudCkpOyAvLyBFZGdlIGZpbHRlcmluZyBzaG91
bGQgaGF2ZSBhbHJlYWR5IGVuc3VyZWQgdGhpcy4KKworICAgICAgICBKU1ZhbHVlIGNoaWxkQ29u
c3RhbnQgPSB2YWx1ZS52YWx1ZSgpOworICAgICAgICBpZiAoY2hpbGRDb25zdGFudCkgeworICAg
ICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgeworICAgICAgICAgICAgICAgIEFTU0VSVChj
aGlsZENvbnN0YW50LmlzU3ltYm9sKCkpOworICAgICAgICAgICAgICAgIGlmIChhc1N5bWJvbChj
aGlsZENvbnN0YW50KS0+cHJpdmF0ZU5hbWUoKS51aWQoKSA9PSB1aWQpCisgICAgICAgICAgICAg
ICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpOwor
ICAgICAgICAgICAgICAgIGlmIChhc1N0cmluZyhjaGlsZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJ
bXBsKCkgPT0gdWlkKQorICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3Rh
bnRzKHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmlsdGVyKHZh
bHVlLCB1aWQtPmlzU3ltYm9sKCkgPyBTcGVjU3ltYm9sIDogU3BlY1N0cmluZ0lkZW50KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBDaGVja0luQm91bmRzOiB7CiAgICAgICAg
IEpTVmFsdWUgbGVmdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAgICAg
IEpTVmFsdWUgcmlnaHQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAyOTVi
NDQ4YzU4MmQ5N2M0MzYyNDZiNmJiNmY3MWJmNGNlYzFjM2ViLi42YTY2MDg0ZGFiMjIwZjgzMDdm
ZmMxZmM4M2NjN2RkM2E3N2FhMWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtOTIxLDYgKzkyMSw3IEBAIGNsYXNzIEJ5dGVDb2Rl
UGFyc2VyIHsKICAgICAgICAgCiAgICAgICAgIENhbGxMaW5rSW5mb01hcCBtX2NhbGxMaW5rSW5m
b3M7CiAgICAgICAgIFN0dWJJbmZvTWFwIG1fc3R1YkluZm9zOworICAgICAgICBCeVZhbEluZm9N
YXAgbV9ieVZhbEluZm9zOwogICAgICAgICAKICAgICAgICAgLy8gRGlkIHdlIHNlZSBhbnkgcmV0
dXJucz8gV2UgbmVlZCB0byBoYW5kbGUgdGhlICh1bmNvbW1vbiBidXQgbmVjZXNzYXJ5KQogICAg
ICAgICAvLyBjYXNlIHdoZXJlIGEgcHJvY2VkdXJlIHRoYXQgZG9lcyBub3QgcmV0dXJuIHdhcyBp
bmxpbmVkLgpAQCAtMzA1OCwxMCArMzA1OSwyNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJz
ZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgU3BlY3VsYXRlZFR5cGUgcHJlZGlj
dGlvbiA9IGdldFByZWRpY3Rpb25XaXRob3V0T1NSRXhpdCgpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0
QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJl
YWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKLSAgICAgICAgICAgIE5vZGUqIGdldEJ5
VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9w
SW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOwotICAgICAgICAgICAgc2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgZ2V0QnlWYWwpOwor
ICAgICAgICAgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2lubGluZVN0YWNrVG9wLT5tX2J5
VmFsSW5mb3MuZ2V0KENvZGVPcmlnaW4oY3VycmVudENvZGVPcmlnaW4oKS5ieXRlY29kZUluZGV4
KSk7CisgICAgICAgICAgICBBU1NFUlQoYnlWYWxJbmZvKTsKKyAgICAgICAgICAgIGlmICghYnlW
YWxJbmZvLT5jYWNoZWRJZC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlk
ZW50aWZpZXJOdW1iZXIgPSBtX2dyYXBoLmlkZW50aWZpZXJzKCkuZW5zdXJlKGJ5VmFsSW5mby0+
Y2FjaGVkSWQuaW1wbCgpKTsKKyAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
ID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOworCisgICAgICAgICAg
ICAgICAgYWRkVG9HcmFwaChDaGVja0lkZW50LCBPcEluZm8odWlkKSwgcHJvcGVydHkpOworCisg
ICAgICAgICAgICAgICAgR2V0QnlJZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1
czo6Y29tcHV0ZUZvcigKKyAgICAgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9w
cm9maWxlZEJsb2NrLCBtX2RmZ0NvZGVCbG9jaywKKyAgICAgICAgICAgICAgICAgICAgbV9pbmxp
bmVTdGFja1RvcC0+bV9zdHViSW5mb3MsIG1fZGZnU3R1YkluZm9zLAorICAgICAgICAgICAgICAg
ICAgICBjdXJyZW50Q29kZU9yaWdpbigpLCB1aWQpOworCisgICAgICAgICAgICAgICAgaGFuZGxl
R2V0QnlJZChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNl
LCBpZGVudGlmaWVyTnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFkKTsKKyAgICAgICAg
ICAgICAgICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJh
eU1vZGUuYXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKKyAg
ICAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQpLCBnZXRCeVZhbCk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIE5FWFRf
T1BDT0RFKG9wX2dldF9ieV92YWwpOwogICAgICAgICB9CkBAIC0zOTYzLDYgKzM5ODAsNyBAQCBC
eXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAg
ICAgaWYgKG1fcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewogICAg
ICAgICAgICAgbV9wcm9maWxlZEJsb2NrLT5nZXRTdHViSW5mb01hcChsb2NrZXIsIG1fc3R1Yklu
Zm9zKTsKICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZvTWFwKGxv
Y2tlciwgbV9jYWxsTGlua0luZm9zKTsKKyAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0
QnlWYWxJbmZvTWFwKGxvY2tlciwgbV9ieVZhbEluZm9zKTsKICAgICAgICAgfQogICAgIH0KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMjk2NzQ5
ZGMzMWIyM2M4OTk4NDk0YjU2ZWYxNDMwODY0YjEyN2VjNi4uNDZmNWZlNDhkMjVjMjdkZDMxOTZj
NTgxMjlkYmU1ODU3ZmJkN2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmgKQEAgLTI2OCw2ICsyNjgsMTAgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAg
ICAgICAgZGVmKFB1cmVWYWx1ZShDaGVja05vdEVtcHR5LCBBZGphY2VuY3lMaXN0KEFkamFjZW5j
eUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAg
Y2FzZSBDaGVja0lkZW50OgorICAgICAgICBkZWYoUHVyZVZhbHVlKENoZWNrSWRlbnQsIEFkamFj
ZW5jeUxpc3QoQWRqYWNlbmN5TGlzdDo6Rml4ZWQsIG5vZGUtPmNoaWxkMSgpKSwgbm9kZS0+dWlk
T3BlcmFuZCgpKSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdl
UG9pbnRlcjoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5zdG9yYWdlUG9pbnRl
cigpKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggZmQ4ZGY0ZDk5NDE4YzYzN2Q0
OGRmYTE5YTM4ODMwYTVmZWMyMzhjNC4uOGI2ZmQ4NTdmNjA5ODIwNjI0Y2ZhOTNjMzQwYWY4ODU0
MzQ3ZjZmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFu
dEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTIwOCw2ICsyMDgsMzEgQEAgY2xhc3MgQ29uc3RhbnRG
b2xkaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQogCisgICAgICAgICAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgICAg
ICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAg
ICAgICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5j
aGlsZDEoKSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBVbmlxdWVkU3RyaW5nSW1w
bCogY29uc3RhbnRVaWQgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0
YW50KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRVaWQgPSBhc1N5bWJvbChjaGlsZENvbnN0YW50
KS0+cHJpdmF0ZU5hbWUoKS51aWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogaW1wbCA9IGFzU3RyaW5nKGNoaWxk
Q29uc3RhbnQpLT50cnlHZXRWYWx1ZUltcGwoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoaW1wbC0+aXNBdG9taWMoKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0YW50VWlkID0gc3RhdGljX2Nhc3Q8Y29uc3QgVW5pcXVlZFN0cmluZ0lt
cGwqPihpbXBsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBpZiAoY29uc3RhbnRVaWQgPT0gdWlkKSB7CisgICAgICAgICAgICAg
ICAgICAgIG5vZGUtPnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICBlbGltaW5hdGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisKICAgICAgICAgICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICAgICAg
ICAgIEpTVmFsdWUgbGVmdCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUo
KTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUt
PmNoaWxkMigpKS52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
CmluZGV4IDA4ZmZiMmE5MTI5Mzg3MjEzMTFjYWQyNzc0Njc2MWEyMDY1M2FhNWYuLmU0NzBiOGRk
YWI5OTQzOGZkODkwMzUyZTQ1ZTA5MTAyOWYxYTYyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTEwNyw2ICsxMDcsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50OgogICAg
IGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNr
SWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBj
YXNlIENvbXBhcmVMZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKaW5kZXggYzQ0MjMxMDE2MzI2NTdkM2U4M2Y5NzFlNjZhODNmNjI1MDU3MTUyNC4uZDZh
OTc5MGIxM2NlMDA2MmQ5NzgxMTQwZWRjZTIyMTUyZTQwMGI4NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMDEyLDYgKzEwMTIsMTUgQEAgY2xh
c3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxV
c2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAg
ICAgICAgY2FzZSBDaGVja0lkZW50OiB7CisgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCog
dWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2wo
KSkKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRlbnRVc2U+
KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgY2FzZSBBcnJheWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3Ry
dWN0dXJlOiB7CkBAIC0xNzYwLDYgKzE3NjksNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGlj
IFBoYXNlIHsKICAgICAgICAgY2FzZSBGdW5jdGlvblVzZToKICAgICAgICAgY2FzZSBTdHJpbmdV
c2U6CiAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNl
OgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0
cmluZ09iamVjdFVzZToKICAgICAgICAgICAgIGlmIChhbHdheXNVbmJveFNpbXBsZVByaW1pdGl2
ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCBkZjIxY2RlNjM1NDczYzFh
MmRmNzc0MzI2NmEwYTkxOGM3Y2JkZmFhLi42ZTg0YWM2MzliYmY0NzU0YmFiMGU1NTU1ZWZiNzQx
ODIxNmE2NGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTMzMiw2ICsx
MzMyLDE3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KG1fb3BJbmZvKTsKICAgICB9CiAKKyAgICBib29sIGhhc1VpZE9wZXJhbmQoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tJZGVudDsKKyAgICB9CisKKyAgICBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkT3BlcmFuZCgpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzVWlk
T3BlcmFuZCgpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5pcXVlZFN0cmlu
Z0ltcGwqPihtX29wSW5mbyk7CisgICAgfQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAg
ICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlVHlwZS5oCmluZGV4IDYyZTdjYTk4YTUyMTEyZDgyZDBlYjZmMGQxNzI4YmVhZjRiOWUxMzEu
LmU5YmY3MjcwNGIxN2FhNjg2NzllOWJiZWEwZjRmMmFkY2VmOTYzYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTIwOSw2ICsyMDksNyBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAog
ICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhD
aGVja0lkZW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlv
bnMgZm9yIGFycmF5IG11dGF0aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1
bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNzZh
ZjZhMmYzZTQ1MmIwZjExN2FiYzNhNmJiNWRkZDJmYWFiMTk4YS4uMzZmMmRmN2M3NWM1MGNhZmQw
NmVjOWMyNzg1MWVlYTlmMTBmZmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTY0OSw2
ICs2NDksNyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFz
ZSB7CiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxs
OgogICAgICAgICBjYXNlIENoZWNrTm90RW1wdHk6CisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDoK
ICAgICAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgog
ICAgICAgICBjYXNlIFZhckluamVjdGlvbldhdGNocG9pbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDBmZmE2YThhMzAwN2RmNWM4Y2EyYmU1
NmZmYjMzODNkZjdkNTNiOWYuLjgzMjMyMjE4MWUwYTMyODQ2Njc0MjA2ZGNjNzNlZjU1YjQ3OTFk
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBA
IC01OSw2ICs1OSw3IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBP
YmplY3RPck90aGVyVXNlOgogICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBj
YXNlIFN0cmluZ1VzZToKKyAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgIGNhc2UgU3Ry
aW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAg
ICAgICBjYXNlIE5vdFN0cmluZ1ZhclVzZToKQEAgLTE4OCw2ICsxODksNyBAQCBib29sIHNhZmVU
b0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2Fz
ZSBDaGVja05vdEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4
ZWM6CiAgICAgY2FzZSBSZWdFeHBUZXN0OgogICAgIGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGYzZjhh
ZjdhNTJkNTBmOWEyZTcxYzRmOTAxOTk4NDdiZjA1MDBkNWUuLmFlYTFhMWEwZTE1NDgxNTk1YmI0
ZmUwMjZlZWVjYTZkMDIyMWVhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC01NzMxLDYgKzU3MzEsMjAgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlTm90U3RyaW5nVmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxp
bmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVk
Z2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90
U3ltYm9sKGNlbGwpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9s
KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wp
KQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRo
aXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30K
Kwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAg
ICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCB+U3BlY0NlbGwpKQpAQCAtNTg0Miw2ICs1ODU2
LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAg
ICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChl
ZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAg
IHNwZWN1bGF0ZVN0cmluZ09iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYTVjNDQ1NDdkYTY0
YmMyYjYzZjA3M2ExNzExZTZhMTE4MDZmNTk1Yi4uY2ViZjI4NjNiNDAzMTNhYjk2ZmYzOGM3OGJk
NjBkM2E5NDVmYTBmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaApAQCAtMjQwNiw2ICsyNDA2LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewog
ICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT2JqZWN0KEVkZ2UsIEdQUlJlZyk7CiAgICAgdm9pZCBz
cGVjdWxhdGVTdHJpbmdPYmplY3QoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPclN0
cmluZ09iamVjdChFZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlLCBHUFJSZWcg
Y2VsbCk7CisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxh
dGVOb3RDZWxsKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlT3RoZXIoRWRnZSk7CiAgICAgdm9p
ZCBzcGVjdWxhdGVNaXNjKEVkZ2UsIEpTVmFsdWVSZWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDc3MGJkYTU4Y2FiNTAy
M2ExZmEwYzM4ZjRjN2EwMzA4ZDQwODBhMzAuLmE1NThkYjVlZmQ1YTQ4MGVlOTZjY2M1ODYwYTk4
MWQ1ZjllNjg5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcApAQCAtMzg1MCw2ICszODUwLDMxIEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2Fz
ZSBDaGVja0lkZW50OiB7CisgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhp
cywgbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9k
ZS0+dWlkT3BlcmFuZCgpOworICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAg
ICAgICBzcGVjdWxhdGVTeW1ib2wobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOworICAg
ICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKKyAgICAgICAgICAgICAgICBCYWRDb25zdGFudENh
Y2hlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcGVyYW5kLmdwcigpKSwgbnVsbHB0ciwK
KyAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgICAgIEpJ
VENvbXBpbGVyOjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFk
ZHJlc3Mob3BlcmFuZC5ncHIoKSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLAorICAg
ICAgICAgICAgICAgICAgICBUcnVzdGVkSW1tUHRyKHVpZCkpKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIo
KSk7CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChub2RlLT5jaGlsZDEoKSwgb3Bl
cmFuZC5ncHIoKSk7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAg
ICAgIEJhZENvbnN0YW50Q2FjaGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wZXJhbmQu
Z3ByKCkpLCBudWxscHRyLAorICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAg
ICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Ok5vdEVxdWFsLAorICAgICAgICAgICAgICAgICAg
ICBKSVRDb21waWxlcjo6QWRkcmVzcyhvcGVyYW5kLmdwcigpLCBKU1N0cmluZzo6b2Zmc2V0T2ZW
YWx1ZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAg
ICAgIH0KKyAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwog
ICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBm
dW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1
bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Vz
ZUtpbmQuY3BwCmluZGV4IGVmYTEwNGYzZDA3MDAwYjdkN2JjNDczYmNkZjIwNmQxMDUzZmM5YjEu
LjkzNmVmNTU0YWYyNGUwYjY0ZmRmNDI4ZjE2M2FlOGQ3ODhlOThkOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtOTcsNiArOTcsOSBAQCB2b2lkIHByaW50
SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgS25v
d25TdHJpbmdVc2U6CiAgICAgICAgIG91dC5wcmludCgiS25vd25TdHJpbmciKTsKICAgICAgICAg
cmV0dXJuOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICBvdXQucHJpbnQoIlN5bWJvbCIp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIG91
dC5wcmludCgiU3RyaW5nT2JqZWN0Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggZWJmOTlkYWU2MDBjODgyNWQyMmNiYWM2MzgyMmQx
NWI1NTYwMDM1YS4uMjg5Yjc4M2U0MWJiMzYxMjkxYzgzYzhmYWQ3YjA4YTU3OGUwYTZmMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTU3LDYgKzU3LDcgQEAgZW51
bSBVc2VLaW5kIHsKICAgICBTdHJpbmdJZGVudFVzZSwKICAgICBTdHJpbmdVc2UsCiAgICAgS25v
d25TdHJpbmdVc2UsCisgICAgU3ltYm9sVXNlLAogICAgIFN0cmluZ09iamVjdFVzZSwKICAgICBT
dHJpbmdPclN0cmluZ09iamVjdFVzZSwKICAgICBOb3RTdHJpbmdWYXJVc2UsCkBAIC0xMTcsNiAr
MTE4LDggQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VL
aW5kKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAg
ICAgIHJldHVybiBTcGVjU3RyaW5nOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICByZXR1
cm4gU3BlY1N5bWJvbDsKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJu
IFNwZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKQEAg
LTE5Niw2ICsxOTksNyBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAgIGNh
c2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgY2FzZSBLbm93blN0
cmluZ1VzZToKKyAgICBjYXNlIFN5bWJvbFVzZToKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToK
ICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmgKaW5kZXggOTEyNzU0ZGZjNDAxNTJiMGVkMjQ4MzZhYzc1YjhmOTY5ODQzOTliYi4u
NTgxZjRjYmQ5YTc2OGI5YWIyYTgzOTIxY2YyNGQzNTI0YmM4NTcxOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAg
LTg3LDcgKzg3LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3Jv
KFN0cnVjdHVyZV9jbGFzc0luZm8sIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpIFwKICAg
ICBtYWNybyhTdHJ1Y3R1cmVfZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9m
ZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX3Byb3RvdHlwZSwgU3RydWN0dXJlOjpwcm90
b3R5cGVPZmZzZXQoKSkgXAotICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0
dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKQorICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJ
RCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSBcCisgICAgbWFjcm8oU3ltYm9sX3By
aXZhdGVOYW1lLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSkKIAogI2RlZmluZSBGT1Jf
RUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhEaXJlY3RBcmd1
bWVudHNfc3RvcmFnZSwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCksIHNpemVvZihF
bmNvZGVkSlNWYWx1ZSkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcAppbmRleCA2MjcyOGM3NDZlZjkxZDc0Yjc4MjliYjNmOWE0NGM2ZDdmNjFkN2Iz
Li5iNDkzZjMwMjdlODJjZmNjZTljM2NjZjQ4MmMxNTU4NjFkNjhiOTQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMTgsNiArMTE4LDcg
QEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2Fz
ZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVt
cHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFN0cmluZ0NoYXJDb2RlQXQ6CiAg
ICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICBjYXNlIFJlYWxsb2NhdGVQcm9w
ZXJ0eVN0b3JhZ2U6CkBAIC00MTUsNiArNDE2LDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBp
bGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAg
ICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2Fz
ZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbFVz
ZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNlOgogICAgICAgICAgICAgICAg
IGNhc2UgTm90Q2VsbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE90aGVyVXNlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCA1MmRl
YTVlYzIwOTViOTNmZGYxYjg5NmZkY2ZiNzFjMjRkMTU3NmU0Li5lYjU2YWMwNmMxZTgxNmY5OThh
Y2RjMGM2ZDYxZDdkZDk1YmFhYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNTMyLDYgKzUzMiw5IEBAIGNsYXNzIExvd2VyREZH
VG9MTFZNIHsKICAgICAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgICAgICAgICBjb21waWxl
Q2hlY2tCYWRDZWxsKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja0lk
ZW50OgorICAgICAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQoKTsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgICAgICAgICBjb21waWxlR2V0RXhl
Y3V0YWJsZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMDI5LDYgKzIwMzIsMjAgQEAgY2xh
c3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGUoVERaRmFpbHVyZSwgbm9WYWx1
ZSgpLCBudWxscHRyLCBtX291dC5pc1plcm82NChsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkp
KSk7CiAgICAgfQogCisgICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudCgpCisgICAgeworICAgICAg
ICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ub2RlLT51aWRPcGVyYW5kKCk7CisgICAgICAg
IGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dT
eW1ib2wobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9
IG1fb3V0LmxvYWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7CisgICAg
ICAgICAgICBzcGVjdWxhdGUoQmFkQ29uc3RhbnRDYWNoZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBt
X291dC5ub3RFcXVhbChzdHJpbmdJbXBsLCBtX291dC5jb25zdEludFB0cih1aWQpKSk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBMVmFsdWUgc3RyaW5nID0gbG93U3RyaW5nSWRlbnQo
bV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0
LmxvYWRQdHIoc3RyaW5nLCBtX2hlYXBzLkpTU3RyaW5nX3ZhbHVlKTsKKyAgICAgICAgICAgIHNw
ZWN1bGF0ZShCYWRDb25zdGFudENhY2hlLCBub1ZhbHVlKCksIG51bGxwdHIsIG1fb3V0Lm5vdEVx
dWFsKHN0cmluZ0ltcGwsIG1fb3V0LmNvbnN0SW50UHRyKHVpZCkpKTsKKyAgICAgICAgfQorICAg
IH0KKwogICAgIHZvaWQgY29tcGlsZUdldEV4ZWN1dGFibGUoKQogICAgIHsKICAgICAgICAgTFZh
bHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwpAQCAtNzAyNiw3ICs3MDQzLDE2
IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQo
ZWRnZSwgc3RyaW5nLCBzdHJpbmdJbXBsKTsKICAgICAgICAgcmV0dXJuIHN0cmluZ0ltcGw7CiAg
ICAgfQotICAgIAorCisgICAgTFZhbHVlIGxvd1N5bWJvbChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVj
dWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKKyAgICB7Cisg
ICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRp
b24gfHwgZWRnZS51c2VLaW5kKCkgPT0gU3ltYm9sVXNlKTsKKworICAgICAgICBMVmFsdWUgcmVz
dWx0ID0gbG93Q2VsbChlZGdlLCBtb2RlKTsKKyAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2Us
IHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAgICAgTFZhbHVlIGxv
d05vbk51bGxPYmplY3QoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBB
dXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VE
KG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uIHx8IGVkZ2UudXNlS2luZCgp
ID09IE9iamVjdFVzZSk7CkBAIC03NDIzLDYgKzc0NDksOSBAQCBjbGFzcyBMb3dlckRGR1RvTExW
TSB7CiAgICAgICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVT
dHJpbmdJZGVudChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFN5bWJv
bFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsKKyAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0
ZVN0cmluZ09iamVjdChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNzUxOSw3ICs3NTQ4
LDE2IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgICAgIG1fb3V0LmxvYWQzMihj
ZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCiAgICAgICAgICAgICBtX291dC5jb25z
dEludDMyKHZtKCkuc3RyaW5nU3RydWN0dXJlLT5pZCgpKSk7CiAgICAgfQotICAgIAorCisgICAg
TFZhbHVlIGlzTm90U3ltYm9sKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3Bl
Y0Z1bGxUb3ApCisgICAgeworICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFs
dWUodHlwZSAmIFNwZWNDZWxsLCB+U3BlY1N5bWJvbCkpCisgICAgICAgICAgICByZXR1cm4gcHJv
dmVuOworICAgICAgICByZXR1cm4gbV9vdXQubm90RXF1YWwoCisgICAgICAgICAgICBtX291dC5s
b2FkMzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpLAorICAgICAgICAgICAgbV9v
dXQuY29uc3RJbnQzMih2bSgpLnN5bWJvbFN0cnVjdHVyZS0+aWQoKSkpOworICAgIH0KKwogICAg
IExWYWx1ZSBpc0FycmF5VHlwZShMVmFsdWUgY2VsbCwgQXJyYXlNb2RlIGFycmF5TW9kZSkKICAg
ICB7CiAgICAgICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewpAQCAtNzc0Miw3ICs3Nzgw
LDE3IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgICAgIE5vdFN0cmluZ09iamVj
dCwgbm9WYWx1ZSgpLCAwLAogICAgICAgICAgICAgbV9vdXQubm90RXF1YWwoc3RydWN0dXJlSUQs
IHdlYWtTdHJ1Y3R1cmVJRChzdHJpbmdPYmplY3RTdHJ1Y3R1cmUpKSk7CiAgICAgfQotICAgIAor
CisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7
CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1N5
bWJvbCB8IH5TcGVjQ2VsbCwgaXNOb3RTeW1ib2woY2VsbCkpOworICAgIH0KKworICAgIHZvaWQg
c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZVN5bWJv
bChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9CisKICAgICB2b2lkIHNwZWN1bGF0ZU5vbk51
bGxPYmplY3QoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CiAgICAgICAgIEZUTF9UWVBF
X0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY09iamVjdCwgaXNOb3RPYmplY3Qo
Y2VsbCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDlhZjMzMmViNzhlMTg5YWU2
YTUzYjIyMzUwYWY3N2I1ZjlkN2ViMmIuLmM3OGI0YzE5NTZiZjcwOGQ5MWNjMmExNzM3MTkxZWYz
YzI0ZTAyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTY2MCw2ICs2NjAsMTAg
QEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVm
Zm9ydCBlZmZvcnQpCiAKICAgICBtX2NvZGVCbG9jay0+c2V0TnVtYmVyT2ZCeVZhbEluZm9zKG1f
YnlWYWxDb21waWxhdGlvbkluZm8uc2l6ZSgpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5zaXplKCk7ICsraSkgeworICAgICAgICBQYXRjaGFi
bGVKdW1wIHBhdGNoYWJsZU5vdEluZGV4SnVtcCA9IG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0u
bm90SW5kZXhKdW1wOworICAgICAgICBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcCA9IENv
ZGVMb2NhdGlvbkp1bXAoKTsKKyAgICAgICAgaWYgKEp1bXAocGF0Y2hhYmxlTm90SW5kZXhKdW1w
KS5pc1NldCgpKQorICAgICAgICAgICAgbm90SW5kZXhKdW1wID0gQ29kZUxvY2F0aW9uSnVtcChw
YXRjaEJ1ZmZlci5sb2NhdGlvbk9mKHBhdGNoYWJsZU5vdEluZGV4SnVtcCkpOwogICAgICAgICBD
b2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wID0gQ29kZUxvY2F0aW9uSnVtcChwYXRjaEJ1ZmZl
ci5sb2NhdGlvbk9mKG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYmFkVHlwZUp1bXApKTsKICAg
ICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgZG9uZVRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9u
T2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5kb25lVGFyZ2V0KTsKICAgICAgICAgQ29kZUxv
Y2F0aW9uTGFiZWwgc2xvd1BhdGhUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKG1fYnlW
YWxDb21waWxhdGlvbkluZm9baV0uc2xvd1BhdGhUYXJnZXQpOwpAQCAtNjY3LDYgKzY3MSw3IEBA
IENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZv
cnQgZWZmb3J0KQogICAgICAgICAKICAgICAgICAgbV9jb2RlQmxvY2stPmJ5VmFsSW5mbyhpKSA9
IEJ5VmFsSW5mbygKICAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYnl0ZWNv
ZGVJbmRleCwKKyAgICAgICAgICAgIG5vdEluZGV4SnVtcCwKICAgICAgICAgICAgIGJhZFR5cGVK
dW1wLAogICAgICAgICAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5hcnJheU1vZGUsCiAg
ICAgICAgICAgICBkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoYmFkVHlwZUp1bXAsIGRvbmVUYXJn
ZXQpLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggMDIxMzk2MzRiMWRmZWQ2MTA1NjJkZWNi
NTc4ZGIzOGQ2YjE2MDM0ZS4uZGVjZjc5ZWEyYjRhMzZmZWI1MGFmNGQ1YjQ2MzAzZjg0MTZmMjA5
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC0xNDksOCArMTQ5LDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgc3RydWN0IEJ5VmFsQ29tcGlsYXRpb25JbmZvIHsKICAgICAgICAgQnlWYWxD
b21waWxhdGlvbkluZm8oKSB7IH0KICAgICAgICAgCi0gICAgICAgIEJ5VmFsQ29tcGlsYXRpb25J
bmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1w
IGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBNYWNyb0Fzc2VtYmxlcjo6TGFi
ZWwgZG9uZVRhcmdldCkKKyAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0
ZWNvZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbm90SW5kZXhKdW1wLCBN
YWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFy
cmF5TW9kZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQpCiAgICAgICAgICAgICA6
IGJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgICAgICwgbm90SW5kZXhKdW1w
KG5vdEluZGV4SnVtcCkKICAgICAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAg
ICAgICAgICAgICAsIGFycmF5TW9kZShhcnJheU1vZGUpCiAgICAgICAgICAgICAsIGRvbmVUYXJn
ZXQoZG9uZVRhcmdldCkKQEAgLTE1OCw2ICsxNTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgfQogICAgICAgICAKICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleDsKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbm90SW5kZXhKdW1wOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcDsKICAgICAgICAgSklUQXJyYXlN
b2RlIGFycmF5TW9kZTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQ7
CkBAIC0yMDQsNiArMjA2LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaml0LnBy
aXZhdGVDb21waWxlR2V0QnlWYWwoYnlWYWxJbmZvLCByZXR1cm5BZGRyZXNzLCBhcnJheU1vZGUp
OwogICAgICAgICB9CiAKKyAgICAgICAgc3RhdGljIHZvaWQgY29tcGlsZUdldEJ5VmFsV2l0aENh
Y2hlZElkKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5VmFsSW5mbyogYnlWYWxJbmZv
LCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgSklUIGppdCh2bSwgY29kZUJsb2NrKTsK
KyAgICAgICAgICAgIGppdC5tX2J5dGVjb2RlT2Zmc2V0ID0gYnlWYWxJbmZvLT5ieXRlY29kZUlu
ZGV4OworICAgICAgICAgICAgaml0LnByaXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQo
YnlWYWxJbmZvLCByZXR1cm5BZGRyZXNzLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICB9CisKICAg
ICAgICAgc3RhdGljIHZvaWQgY29tcGlsZVB1dEJ5VmFsKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJl
c3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEpJVCBq
aXQodm0sIGNvZGVCbG9jayk7CkBAIC0yNDYsNiArMjU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIENvbXBpbGF0aW9uUmVzdWx0IHByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZm
b3J0KTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChCeVZh
bEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOworICAgICAgICB2b2lkIHBy
aXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVz
c1B0ciwgY29uc3QgSWRlbnRpZmllciYpOwogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlUHV0
QnlWYWwoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKIAogICAg
ICAgICB2b2lkIHByaXZhdGVDb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KEJ5VmFsSW5mbyosIFJl
dHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CkBAIC0zNzEsNyArMzgxLDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRBcnJheVN0b3JhZ2VQdXRCeVZhbChJbnN0
cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpOwogICAgICAgICBKdW1wTGlzdCBlbWl0
SW50VHlwZWRBcnJheVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlw
ZSwgVHlwZWRBcnJheVR5cGUpOwogICAgICAgICBKdW1wTGlzdCBlbWl0RmxvYXRUeXBlZEFycmF5
UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBUeXBlZEFycmF5
VHlwZSk7Ci0gICAgICAgIAorCisgICAgICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZW1pdEdldEJ5
VmFsV2l0aENhY2hlZElkKEluc3RydWN0aW9uKiwgY29uc3QgSWRlbnRpZmllciYsIEp1bXBMaXN0
JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMpOworCiAgICAgICAgIGVudW0gRmluYWxP
YmplY3RNb2RlIHsgTWF5QmVGaW5hbCwgS25vd25Ob3RGaW5hbCB9OwogCiAgICAgICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiBKdW1wIGJyYW5jaFN0cnVjdHVyZShSZWxhdGlvbmFsQ29uZGl0aW9u
LCBUIGxlZnRIYW5kU2lkZSwgU3RydWN0dXJlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzLmNwcAppbmRleCA5MGI1MzIxNWFiMDRjNzQzMzhhZGJhODM2MzA0MGMzODRkZmZh
MzFlLi5kYWYyYWZmMzdjMDAwMjVmODg2YmQzMTBjNDQzN2RjMDdlMzUwOWFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTExMDgsNyArMTEwOCw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAg
IAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZv
KG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0
LCBQYXRjaGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogdm9pZCBKSVQ6
OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCA4YTY5NzVjMTZkNmI5
NmVjYTFmMjk2M2Q0ZjU5MTJiZjA1Njg5NmU1Li42ZjBkOGE5MDczMTFkNjI0YTY1NGQ1ZDY5NWM0
OTU0YzhlNzUyY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKQEAgLTE1NTUsNyArMTU1NSwyMyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSgogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIAorCisgICAgaWYgKGJhc2VWYWx1ZS5p
c09iamVjdCgpICYmIChzdWJzY3JpcHQuaXNTeW1ib2woKSB8fCBzdWJzY3JpcHQuaXNTdHJpbmco
KSkpIHsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3JpcHQu
dG9Qcm9wZXJ0eUtleShleGVjKTsKKworICAgICAgICBpZiAoIXN1YnNjcmlwdC5pc1N0cmluZygp
IHx8ICFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGJ5
dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAg
ICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICAgICAgQnlWYWxJbmZvJiBieVZh
bEluZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0g
MSk7CisgICAgICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7CisgICAgICAg
ICAgICBKSVQ6OmNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZCgmdm0sIGV4ZWMtPmNvZGVCbG9j
aygpLCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIHBy
b3BlcnR5TmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNl
VmFsdWUpOworICAgICAgICBib29sIGhhc1Jlc3VsdCA9IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0eVNs
b3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShoYXNSZXN1bHQgPyBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSkgOiBqc1Vu
ZGVmaW5lZCgpKTsKKyAgICB9CisKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMs
IGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBhcnJheVByb2ZpbGUsIFJldHVybkFkZHJlc3NQdHIoT1VS
X1JFVFVSTl9BRERSRVNTKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApp
bmRleCA0ZWYwNmQ5MjEzYTJiMWRiZmZiYTRjN2MzMzRkMmY2ZjFjNDc5MTdlLi5lODJkOGJiNWM3
MzU0MmU4OGMwYTZjMjY0MGE5MjM4NTA1OWRiYzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtMTAwLDggKzEwMCwxNSBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJy
YXlQcm9maWxlOwogICAgIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1Qw
LCBwcm9wZXJ0eSwgcmVnVDEpOwotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUlu
dGVnZXIocmVnVDEpOwogCisgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBi
YXNlKTsKKworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGltcGxlbWVudCBwYXRjaGFibGVCcmFu
Y2g2NC4KKyAgICBKdW1wIGlzSW5kZXggPSBlbWl0SnVtcElmSW1tZWRpYXRlSW50ZWdlcihyZWdU
MSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNoYWJsZUp1bXAoKTsKKyAgICBh
ZGRTbG93Q2FzZShub3RJbmRleCk7CisKKyAgICBpc0luZGV4LmxpbmsodGhpcyk7CiAgICAgLy8g
VGhpcyBpcyB0ZWNobmljYWxseSBpbmNvcnJlY3QgLSB3ZSdyZSB6ZXJvLWV4dGVuZGluZyBhbiBp
bnQzMi4gIE9uIHRoZSBob3QgcGF0aCB0aGlzIGRvZXNuJ3QgbWF0dGVyLgogICAgIC8vIFdlIGNo
ZWNrIHRoZSB2YWx1ZSBhcyBpZiBpdCB3YXMgYSB1aW50MzIgYWdhaW5zdCB0aGUgbV92ZWN0b3JM
ZW5ndGggLSB3aGljaCB3aWxsIGFsd2F5cyBmYWlsIGlmCiAgICAgLy8gbnVtYmVyIHdhcyBzaWdu
ZWQgc2luY2UgbV92ZWN0b3JMZW5ndGggaXMgYWx3YXlzIGxlc3MgdGhhbiBpbnRtYXggKHNpbmNl
IHRoZSB0b3RhbCBhbGxvY2F0aW9uCkBAIC0xMTAsNyArMTE3LDYgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIC8vIGV4
dGVuZGluZyBzaW5jZSBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2YWx1ZSBpbiB0
aGUgc2xvdyBjYXNlLgogICAgIHplcm9FeHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdUMSk7CiAKLSAg
ICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOwogICAgIGVtaXRBcnJh
eVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwogICAgIGFuZDMy
KFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QyKTsKIApAQCAtMTUwLDcgKzE1
Niw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgZW1pdFB1dFZp
cnR1YWxSZWdpc3Rlcihkc3QpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBw
ZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUs
IGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0
aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkp
OwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdERvdWJsZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQ
YXRjaGFibGVKdW1wJiBiYWRUeXBlKQpAQCAtMTk1LDYgKzIwMSwzOSBAQCBKSVQ6Okp1bXBMaXN0
IEpJVDo6ZW1pdEFycmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBi
YWRUeXBlKQogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9CiAKK0pJVEdldEJ5SWRHZW5lcmF0b3Ig
SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2Vz
LCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQoreworICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOworCisgICAgc2xvd0Nhc2VzLmFwcGVuZChlbWl0SnVtcElmTm90SlND
ZWxsKHJlZ1QxKSk7CisgICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7CisgICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1Qx
LCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zeW1ib2xTdHJ1Y3R1cmUuZ2V0
KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBTeW1ib2w6Om9mZnNldE9mUHJp
dmF0ZU5hbWUoKSksIHJlZ1QxKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzbG93Q2FzZXMuYXBw
ZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpzdHJ1
Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAg
IGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksIHJlZ1Qx
KTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0UHRyKFplcm8sIHJlZ1QxKSk7
CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdDMyKFplcm8sIEFkZHJlc3MocmVn
VDEsIFN0cmluZ0ltcGw6OmZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoU3RyaW5nSW1wbDo6
ZmxhZ0lzQXRvbWljKCkpKSk7CisgICAgfQorICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRy
KE5vdEVxdWFsLCByZWdUMSwgVHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSkpOwor
CisgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCisgICAgICAgIG1fY29kZUJsb2NrLCBDb2Rl
T3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygp
LAorICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgRG9udFNw
aWxsKTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisKKyAgICBkb25lQ2FzZXMu
YXBwZW5kKGp1bXAoKSk7CisKKyAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwoKTsKKyAg
ICBnZW4uc2xvd1BhdGhKdW1wKCkubGluayh0aGlzKTsKKworICAgIENhbGwgY2FsbCA9IGNhbGxP
cGVyYXRpb24oV2l0aFByb2ZpbGUsIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgZHN0LCBnZW4u
c3R1YkluZm8oKSwgcmVnVDAsIHByb3BlcnR5TmFtZS5pbXBsKCkpOworICAgIGdlbi5yZXBvcnRT
bG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7CisgICAgZG9uZUNhc2VzLmFwcGVuZChq
dW1wKCkpOworCisgICAgcmV0dXJuIGdlbjsKK30KKwogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dl
dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKQEAgLTIwMiw4ICsyNDEsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0NhcwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7
CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJy
YXlQcm9maWxlOwogICAgIAotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50
MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFz
ZSBjZWxsIGNoZWNrCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBj
aGVjawogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7
IC8vIGJhc2UgYXJyYXkgY2hlY2sKICAgICBKdW1wIG5vdFN0cmluZyA9IGJyYW5jaFN0cnVjdHVy
ZShOb3RFcXVhbCwgCkBAIC0yOTksNyArMzM4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5
X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRv
bmUgPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5
VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUp
KTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5m
byhtX2J5dGVjb2RlT2Zmc2V0LCBQYXRjaGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIGRvbmUp
KTsKIAogfQogCkBAIC05OTksNiArMTAzOCwzNSBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVH
ZXRCeVZhbChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZAog
ICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBG
dW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMpKTsKIH0KIAordm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJl
dHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKQoreworICAgIEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24gPSBtX2NvZGVCbG9j
ay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKKwor
ICAgIEp1bXBMaXN0IGRvbmVDYXNlczsKKyAgICBKdW1wTGlzdCBzbG93Q2FzZXM7CisKKyAgICBK
SVRHZXRCeUlkR2VuZXJhdG9yIGdlbiA9IGVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChjdXJyZW50
SW5zdHJ1Y3Rpb24sIHByb3BlcnR5TmFtZSwgZG9uZUNhc2VzLCBzbG93Q2FzZXMpOworCisgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9jb2RlQmxvY2stPm1fbG9jayk7CisgICAgTGlu
a0J1ZmZlciBwYXRjaEJ1ZmZlcigqbV92bSwgKnRoaXMsIG1fY29kZUJsb2NrKTsKKyAgICBwYXRj
aEJ1ZmZlci5saW5rKHNsb3dDYXNlcywgQ29kZUxvY2F0aW9uTGFiZWwoTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyOjpjcmVhdGVGcm9tRXhlY3V0YWJsZUFkZHJlc3MocmV0dXJuQWRkcmVzcy52YWx1ZSgp
KSkubGFiZWxBdE9mZnNldChieVZhbEluZm8tPnJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKSk7Cisg
ICAgcGF0Y2hCdWZmZXIubGluayhkb25lQ2FzZXMsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFi
ZWxBdE9mZnNldChieVZhbEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7CisgICAgZm9yIChjb25z
dCBhdXRvJiBjYWxsU2l0ZSA6IG1fY2FsbHMpIHsKKyAgICAgICAgaWYgKGNhbGxTaXRlLnRvKQor
ICAgICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhjYWxsU2l0ZS5mcm9tLCBGdW5jdGlvblB0cihj
YWxsU2l0ZS50bykpOworICAgIH0KKyAgICBnZW4uZmluYWxpemUocGF0Y2hCdWZmZXIpOworCisg
ICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAg
ICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlf
dmFsIHdpdGggY2FjaGVkIHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZvciAlcywgcmV0dXJuIHBv
aW50ICVwIiwgcHJvcGVydHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEoKSwgdG9DU3RyaW5nKCpt
X2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKKyAgICBieVZhbElu
Zm8tPmNhY2hlZElkID0gcHJvcGVydHlOYW1lOworCisgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNo
QnVmZmVyKG1fY29kZUJsb2NrKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGluayhieVZhbEluZm8t
Pm5vdEluZGV4SnVtcCwgQ29kZUxvY2F0aW9uTGFiZWwoYnlWYWxJbmZvLT5zdHViUm91dGluZS0+
Y29kZSgpLmNvZGUoKSkpOworICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlv
bihyZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMpKTsK
K30KKwogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJbmZvKiBieVZhbElu
Zm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSklUQXJyYXlNb2RlIGFycmF5TW9k
ZSkKIHsKICAgICBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uID0gbV9jb2RlQmxvY2st
Pmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cAppbmRleCA2MDljYTEzODgyMjdkYjViZGE1MzkyNzUzMDNkYWRkMmQ4YjFjZWJjLi4zMTVmY2Rh
ZWRjZWUwNWQ5NmEyNmRmYTU2ODM4MDVmNThiMWFhOWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAgLTE1Miw4ICsx
NTIsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdExvYWQyKGJhc2UsIHJlZ1QxLCByZWdUMCwgcHJv
cGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCi0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90
RXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKSk7CiAgICAgZW1p
dEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKKyAgICBQYXRjaGFibGVKdW1w
IG5vdEluZGV4ID0gcGF0Y2hhYmxlQnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6SW50MzJUYWcpKTsKKyAgICBhZGRTbG93Q2FzZShub3RJbmRleCk7CiAgICAg
ZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdUMSwgcHJvZmlsZSk7CiAg
ICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVNYXNrKSwgcmVnVDEpOwogCkBAIC0x
OTIsNyArMTkzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBl
bWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlv
bkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5
cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZh
bENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwgYmFkVHlwZSwgbW9k
ZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdENvbnRpZ3VvdXNMb2FkKElu
c3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGV4cGVjdGVk
U2hhcGUpCkBAIC0yMzYsNyArMjM3LDQzIEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0QXJyYXlT
dG9yYWdlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCiAgICAgCiAg
ICAgcmV0dXJuIHNsb3dDYXNlczsKIH0KLSAgICAKKworSklUR2V0QnlJZEdlbmVyYXRvciBKSVQ6
OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEp1bXBMaXN0JiBkb25lQ2FzZXMsIEp1
bXBMaXN0JiBzbG93Q2FzZXMpCit7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQ7CisKKyAgICAvLyBiYXNlOiB0YWcocmVnVDEpLCBwYXlsb2FkKHJlZ1QwKQor
ICAgIC8vIHByb3BlcnR5OiB0YWcocmVnVDMpLCBwYXlsb2FkKHJlZ1QyKQorCisgICAgc2xvd0Nh
c2VzLmFwcGVuZChlbWl0SnVtcElmTm90SlNDZWxsKHJlZ1QzKSk7CisgICAgaWYgKHByb3BlcnR5
TmFtZS5pc1N5bWJvbCgpKSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0
dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkp
LCBtX3ZtLT5zeW1ib2xTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNz
KHJlZ1QyLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSksIHJlZ1QyKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwg
QWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3RyaW5n
U3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMiwgSlNTdHJp
bmc6Om9mZnNldE9mVmFsdWUoKSksIHJlZ1QyKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChi
cmFuY2hUZXN0UHRyKFplcm8sIHJlZ1QyKSk7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJh
bmNoVGVzdDMyKFplcm8sIEFkZHJlc3MocmVnVDIsIFN0cmluZ0ltcGw6OmZsYWdzT2Zmc2V0KCkp
LCBUcnVzdGVkSW1tMzIoU3RyaW5nSW1wbDo6ZmxhZ0lzQXRvbWljKCkpKSk7CisgICAgfQorICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCByZWdUMiwgVHJ1c3RlZEltbVB0
cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSkpOworCisgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4o
CisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdp
c3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAorICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMSwg
cmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBEb250U3BpbGwpOworICAgIGdlbi5n
ZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKKworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsK
KworICAgIExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1
bXAoKS5saW5rKHRoaXMpOworCisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJv
ZmlsZSwgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdU
MSwgcmVnVDAsIHByb3BlcnR5TmFtZS5pbXBsKCkpOworICAgIGdlbi5yZXBvcnRTbG93UGF0aENh
bGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7CisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwor
CisgICAgcmV0dXJuIGdlbjsKK30KKwogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ojpp
dGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZDsKQEAgLTI0NCw4ICsyODEsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5
X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAg
IGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJy
YXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxl
OwogICAgIAotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sK
ICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNo
ZWNrCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogCiAg
ICAgSnVtcCBub25DZWxsID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFz
ZSBhcnJheSBjaGVjawpAQCAtMzE0LDcgKzM1MSw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9i
eV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBMYWJlbCBk
b25lID0gbGFiZWwoKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChC
eVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25l
KSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbklu
Zm8obV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBkb25l
KSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0R2VuZXJpY0NvbnRpZ3VvdXNQdXRCeVZh
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBl
LCBJbmRleGluZ1R5cGUgaW5kZXhpbmdTaGFwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3ltYm9sLmgKaW5kZXggZTU3OTBkNzg3MjI2YmVhNzYwMjRjOWQxZDY2YTY3NjBmNjRkZTVhMi4u
ODNmNWRlMjQ4NTJiYzM3OGVlMGE3NzAzOWY0NjMxODI1ZmRkZGJiZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTc5LDYgKzc5LDggQEAgY2xhc3MgU3ltYm9sIGZp
bmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSos
IEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSop
IGNvbnN0OwogCisgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZlByaXZhdGVOYW1lKCkgeyByZXR1
cm4gT0JKRUNUX09GRlNFVE9GKFN5bWJvbCwgbV9wcml2YXRlTmFtZSk7IH0KKwogcHJvdGVjdGVk
OgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258222</attachid>
            <date>2015-08-04 15:41:53 -0700</date>
            <delta_ts>2015-08-04 17:20:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150804154146.patch</filename>
            <type>text/plain</type>
            <size>48260</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2U5NmY0OWE0N2MwZjk1NWE0ZWJmMDA3MzdiOTEyMDI4Yjg3YTRiLi42MGIwOWViZWI1MzM1NTI4
NDIyODg5ZjQzYmM5N2U0M2ZlY2NhYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MyBAQAorMjAxNS0wOC0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0QnlWYWxJbmZv
TWFwKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZyb21MTEludCk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAg
ICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5l
U3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29u
c3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
Ojpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVw
UGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2RlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1VpZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVj
dXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdVc2VL
aW5kLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogZGZnL0RG
R1VzZUtpbmQuaDoKKyAgICAgICAgKEpTQzo6REZHOjp0eXBlRmlsdGVyRm9yKToKKyAgICAgICAg
KEpTQzo6REZHOjppc0NlbGwpOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTm9kZSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNoZWNrSWRlbnQp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06Omxvd1N5bWJvbCk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6c3BlY3VsYXRlKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjppc05vdFN5bWJvbCk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6c3BlY3VsYXRlU3ltYm9sKToKKyAgICAg
ICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZSk6Cisg
ICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAoSlNDOjpCeVZhbENvbXBpbGF0aW9uSW5mbzo6
QnlWYWxDb21waWxhdGlvbkluZm8pOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVHZXRCeVZh
bFdpdGhDYWNoZWRJZCk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xv
d19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwp
OgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwpOgorICAgICAgICAo
SlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAq
IGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNo
ZWRJZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKToKKyAgICAgICAgKiBydW50aW1lL1N5
bWJvbC5oOgorCiAyMDE1LTA4LTAzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgogCiAgICAgICAgIERvbid0IHNldCB1cCB0aGUgY2FsbHNpdGUgdG8gb3BlcmF0aW9uR2V0
QnlWYWxEZWZhdWx0IHdoZW4gdGhlIG9wdGltaXphdGlvbiBpcyBhbHJlYWR5IGRvbmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAppbmRleCBkOTg4NTE2MTMyNThh
NzFiOWYwNGJhNDkwNzNmNDQwMzNlNTcxMDgzLi4xOWFkNzEwNDY4YWQyODA5MTQzZjM3M2RjZDdm
OWFlZDU0NzRkM2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QnlWYWxJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5m
by5oCkBAIC0yNiwxNiArMjYsMTcgQEAKICNpZm5kZWYgQnlWYWxJbmZvX2gKICNkZWZpbmUgQnlW
YWxJbmZvX2gKIAotI2lmIEVOQUJMRShKSVQpCi0KICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNp
bmNsdWRlICJDb2RlTG9jYXRpb24uaCIKKyNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVk
ZSAiSW5kZXhpbmdUeXBlLmgiCiAjaW5jbHVkZSAiSklUU3R1YlJvdXRpbmUuaCIKICNpbmNsdWRl
ICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBFTkFCTEUoSklUKQorCiBl
bnVtIEpJVEFycmF5TW9kZSB7CiAgICAgSklUSW50MzIsCiAgICAgSklURG91YmxlLApAQCAtMjAy
LDggKzIwMyw5IEBAIGlubGluZSBKSVRBcnJheU1vZGUgaml0QXJyYXlNb2RlRm9yU3RydWN0dXJl
KFN0cnVjdHVyZSogc3RydWN0dXJlKQogc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgQnlWYWxJbmZv
KCkgeyB9CiAgICAgCi0gICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVM
b2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIGludDE2X3Qg
YmFkVHlwZUp1bXBUb0RvbmUsIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCisgICAg
QnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgbm90SW5k
ZXhKdW1wLCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlN
b2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Ns
b3dQYXRoKQogICAgICAgICA6IGJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAg
LCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1wKQogICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5
cGVKdW1wKQogICAgICAgICAsIGFycmF5TW9kZShhcnJheU1vZGUpCiAgICAgICAgICwgYmFkVHlw
ZUp1bXBUb0RvbmUoYmFkVHlwZUp1bXBUb0RvbmUpCkBAIC0yMTEsMTQgKzIxMywxNiBAQCBzdHJ1
Y3QgQnlWYWxJbmZvIHsKICAgICAgICAgLCBzbG93UGF0aENvdW50KDApCiAgICAgewogICAgIH0K
LSAgICAKKwogICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXg7CisgICAgQ29kZUxvY2F0aW9uSnVt
cCBub3RJbmRleEp1bXA7CiAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcDsKICAgICBK
SVRBcnJheU1vZGUgYXJyYXlNb2RlOyAvLyBUaGUgYXJyYXkgbW9kZSB0aGF0IHdhcyBiYWtlZCBp
bnRvIHRoZSBpbmxpbmUgSklUIGNvZGUuCiAgICAgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZTsK
ICAgICBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoOwogICAgIHVuc2lnbmVkIHNsb3dQ
YXRoQ291bnQ7CiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZTsKKyAgICBJ
ZGVudGlmaWVyIGNhY2hlZElkOwogfTsKIAogaW5saW5lIHVuc2lnbmVkIGdldEJ5VmFsSW5mb0J5
dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQpAQCAtMjI2LDkgKzIzMCwxNSBAQCBpbmxpbmUg
dW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZhbEluZm8qIGluZm8pCiAgICAg
cmV0dXJuIGluZm8tPmJ5dGVjb2RlSW5kZXg7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIEpTQwordHlw
ZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIEJ5VmFsSW5mbyosIENvZGVPcmlnaW5BcHByb3hpbWF0
ZUhhc2g+IEJ5VmFsSW5mb01hcDsKKworI2Vsc2UgLy8gRU5BQkxFKEpJVCkKKwordHlwZWRlZiBI
YXNoTWFwPGludCwgdm9pZCo+IEJ5VmFsSW5mb01hcDsKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQp
CiAKK30gLy8gbmFtZXNwYWNlIEpTQworCiAjZW5kaWYgLy8gQnlWYWxJbmZvX2gKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCAwMjMwOTI3NDYz
Mjg4NDZmNDcxOWIzN2E4OWY5NmZiM2I1N2IxOTQ3Li43ZWY4MTZlNDhhMjMxNjYzYjFmNWI1ZWJh
NGUzYTY4YjE1NDI4NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcApAQCAtMjY5Myw2ICsyNjkzLDIyIEBAIHZvaWQgQ29kZUJsb2NrOjpnZXRDYWxs
TGlua0luZm9NYXAoQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpCiAgICAgZ2V0Q2FsbExpbmtJbmZv
TWFwKGxvY2tlciwgcmVzdWx0KTsKIH0KIAordm9pZCBDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01h
cChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQnlWYWxJbmZvTWFwJiByZXN1bHQpCit7Cisj
aWYgRU5BQkxFKEpJVCkKKyAgICBmb3IgKGF1dG8mIGJ5VmFsSW5mbyA6IG1fYnlWYWxJbmZvcykK
KyAgICAgICAgcmVzdWx0LmFkZChDb2RlT3JpZ2luKGJ5VmFsSW5mby5ieXRlY29kZUluZGV4KSwg
JmJ5VmFsSW5mbyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworI2VuZGlmCit9
CisKK3ZvaWQgQ29kZUJsb2NrOjpnZXRCeVZhbEluZm9NYXAoQnlWYWxJbmZvTWFwJiByZXN1bHQp
Cit7CisgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBnZXRCeVZh
bEluZm9NYXAobG9ja2VyLCByZXN1bHQpOworfQorCiAjaWYgRU5BQkxFKEpJVCkKIFN0cnVjdHVy
ZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmFkZFN0dWJJbmZvKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA2YzNhMTE1Zjc3NWVlYzNhYmQyMjAyZmVm
YTUyNmRmODBhM2ZjOTM4Li4yYTM0ZTJkNjJjOWJlZTc0NWFkNDVlNWY0YmFlZWJjOWNiMjUxMjc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0yMDAs
NiArMjAwLDkgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PENvZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFsRmkKICAgICAKICAgICB2b2lkIGdldENh
bGxMaW5rSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ2FsbExpbmtJbmZvTWFw
JiByZXN1bHQpOwogICAgIHZvaWQgZ2V0Q2FsbExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01hcCYg
cmVzdWx0KTsKKworICAgIHZvaWQgZ2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRM
b2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCk7CisgICAgdm9pZCBnZXRCeVZhbEluZm9NYXAo
QnlWYWxJbmZvTWFwJiByZXN1bHQpOwogICAgIAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0
dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5kZXggN2FmYWY5MjNiNzczMjA0ZTQyOTlkMDc5
MGYwNTViYThlMzBhNjU0YS4uNzNjMzk3NDQ0M2M1NDA3ZDM2ZTRmYTI5YTk4NDE3MGJkNTczMDY4
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVz
LmNwcApAQCAtNzYsNiArNzYsMTAgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21w
dXRlRnJvbUxMSW50KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQKICAgICBpZiAo
aW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUgPT0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlf
bGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgZmFs
c2UpOwogCisgICAgLy8gT25seSB0aWVycyBoaWdoZXIgdGhhbiBMTEludCB1c2UgR2V0QnlJZCBJ
QyBmb3Igb3BfZ2V0X2J5X3ZhbC4KKyAgICBpZiAoaW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUgPT0g
TExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfdmFsKSkKKyAgICAgICAgcmV0dXJuIEdldEJ5SWRT
dGF0dXMoTm9JbmZvcm1hdGlvbiwgZmFsc2UpOworCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBpbnN0cnVjdGlvbls0XS51LnN0cnVjdHVyZS5nZXQoKTsKICAgICBpZiAoIXN0cnVjdHVyZSkK
ICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgZmFsc2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCmluZGV4IDAwN2ZjOWFjMzFmNDA2Y2IzYWY5NjE5YjIzNjQyNWU0MjlmYjM5
MWUuLmZhMWIyOTU3NmM2OTQ4YWY2MzY1ODUzMzM5NDc4MzYzNmQ0M2M1OTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKQEAgLTIxNjgsNiArMjE2OCwyOCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQog
ICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAg
QWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
VW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAgQVNT
RVJUKHVpZC0+aXNTeW1ib2woKSA/ICEodmFsdWUubV90eXBlICYgflNwZWNTeW1ib2wpIDogISh2
YWx1ZS5tX3R5cGUgJiB+U3BlY1N0cmluZ0lkZW50KSk7IC8vIEVkZ2UgZmlsdGVyaW5nIHNob3Vs
ZCBoYXZlIGFscmVhZHkgZW5zdXJlZCB0aGlzLgorCisgICAgICAgIEpTVmFsdWUgY2hpbGRDb25z
dGFudCA9IHZhbHVlLnZhbHVlKCk7CisgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7CisgICAg
ICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGNo
aWxkQ29uc3RhbnQuaXNTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgaWYgKGFzU3ltYm9sKGNo
aWxkQ29uc3RhbnQpLT5wcml2YXRlTmFtZSgpLnVpZCgpID09IHVpZCkKKyAgICAgICAgICAgICAg
ICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGNoaWxkQ29uc3RhbnQuaXNTdHJpbmcoKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUlt
cGwoKSA9PSB1aWQpCisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFu
dHModHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaWx0ZXIodmFs
dWUsIHVpZC0+aXNTeW1ib2woKSA/IFNwZWNTeW1ib2wgOiBTcGVjU3RyaW5nSWRlbnQpOworICAg
ICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6IHsKICAgICAgICAg
SlNWYWx1ZSBsZWZ0ID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAg
SlNWYWx1ZSByaWdodCA9IGZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDI5NWI0
NDhjNTgyZDk3YzQzNjI0NmI2YmI2ZjcxYmY0Y2VjMWMzZWIuLjZhNjYwODRkYWIyMjBmODMwN2Zm
YzFmYzgzY2M3ZGQzYTc3YWExZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC05MjEsNiArOTIxLDcgQEAgY2xhc3MgQnl0ZUNvZGVQ
YXJzZXIgewogICAgICAgICAKICAgICAgICAgQ2FsbExpbmtJbmZvTWFwIG1fY2FsbExpbmtJbmZv
czsKICAgICAgICAgU3R1YkluZm9NYXAgbV9zdHViSW5mb3M7CisgICAgICAgIEJ5VmFsSW5mb01h
cCBtX2J5VmFsSW5mb3M7CiAgICAgICAgIAogICAgICAgICAvLyBEaWQgd2Ugc2VlIGFueSByZXR1
cm5zPyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgKHVuY29tbW9uIGJ1dCBuZWNlc3NhcnkpCiAgICAg
ICAgIC8vIGNhc2Ugd2hlcmUgYSBwcm9jZWR1cmUgdGhhdCBkb2VzIG5vdCByZXR1cm4gd2FzIGlu
bGluZWQuCkBAIC0zMDU4LDEwICszMDU5LDI2IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNl
QmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0
aW9uID0gZ2V0UHJlZGljdGlvbldpdGhvdXRPU1JFeGl0KCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQpKTsKLSAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBnZXRB
cnJheU1vZGUoY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlLCBBcnJheTo6UmVh
ZCk7CiAgICAgICAgICAgICBOb2RlKiBwcm9wZXJ0eSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwotICAgICAgICAgICAgTm9kZSogZ2V0QnlW
YWwgPSBhZGRUb0dyYXBoKEdldEJ5VmFsLCBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgpKSwgT3BJ
bmZvKHByZWRpY3Rpb24pLCBiYXNlLCBwcm9wZXJ0eSk7Ci0gICAgICAgICAgICBzZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBnZXRCeVZhbCk7Cisg
ICAgICAgICAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1faW5saW5lU3RhY2tUb3AtPm1fYnlW
YWxJbmZvcy5nZXQoQ29kZU9yaWdpbihjdXJyZW50Q29kZU9yaWdpbigpLmJ5dGVjb2RlSW5kZXgp
KTsKKyAgICAgICAgICAgIEFTU0VSVChieVZhbEluZm8pOworICAgICAgICAgICAgaWYgKCFieVZh
bEluZm8tPmNhY2hlZElkLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgaWRl
bnRpZmllck51bWJlciA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKS5lbnN1cmUoYnlWYWxJbmZvLT5j
YWNoZWRJZC5pbXBsKCkpOworICAgICAgICAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQg
PSBtX2dyYXBoLmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl07CisKKyAgICAgICAgICAg
ICAgICBhZGRUb0dyYXBoKENoZWNrSWRlbnQsIE9wSW5mbyh1aWQpLCBwcm9wZXJ0eSk7CisKKyAg
ICAgICAgICAgICAgICBHZXRCeUlkU3RhdHVzIGdldEJ5SWRTdGF0dXMgPSBHZXRCeUlkU3RhdHVz
Ojpjb21wdXRlRm9yKAorICAgICAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3By
b2ZpbGVkQmxvY2ssIG1fZGZnQ29kZUJsb2NrLAorICAgICAgICAgICAgICAgICAgICBtX2lubGlu
ZVN0YWNrVG9wLT5tX3N0dWJJbmZvcywgbV9kZmdTdHViSW5mb3MsCisgICAgICAgICAgICAgICAg
ICAgIGN1cnJlbnRDb2RlT3JpZ2luKCksIHVpZCk7CisKKyAgICAgICAgICAgICAgICBoYW5kbGVH
ZXRCeUlkKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHByZWRpY3Rpb24sIGJhc2Us
IGlkZW50aWZpZXJOdW1iZXIsIGdldEJ5SWRTdGF0dXMpOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJl
bnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOworICAgICAgICAg
ICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5
TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOworICAg
ICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCksIGdldEJ5VmFsKTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgTkVYVF9P
UENPREUob3BfZ2V0X2J5X3ZhbCk7CiAgICAgICAgIH0KQEAgLTM5NjMsNiArMzk4MCw3IEBAIEJ5
dGVDb2RlUGFyc2VyOjpJbmxpbmVTdGFja0VudHJ5OjpJbmxpbmVTdGFja0VudHJ5KAogICAgICAg
ICBpZiAobV9wcm9maWxlZEJsb2NrLT5oYXNCYXNlbGluZUpJVFByb2ZpbGluZygpKSB7CiAgICAg
ICAgICAgICBtX3Byb2ZpbGVkQmxvY2stPmdldFN0dWJJbmZvTWFwKGxvY2tlciwgbV9zdHViSW5m
b3MpOwogICAgICAgICAgICAgbV9wcm9maWxlZEJsb2NrLT5nZXRDYWxsTGlua0luZm9NYXAobG9j
a2VyLCBtX2NhbGxMaW5rSW5mb3MpOworICAgICAgICAgICAgbV9wcm9maWxlZEJsb2NrLT5nZXRC
eVZhbEluZm9NYXAobG9ja2VyLCBtX2J5VmFsSW5mb3MpOwogICAgICAgICB9CiAgICAgfQogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCAyOTY3NDlk
YzMxYjIzYzg5OTg0OTRiNTZlZjE0MzA4NjRiMTI3ZWM2Li40NmY1ZmU0OGQyNWMyN2RkMzE5NmM1
ODEyOWRiZTU4NTdmYmQ3ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2Ji
ZXJpemUuaApAQCAtMjY4LDYgKzI2OCwxMCBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBo
LCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAg
ICAgICBkZWYoUHVyZVZhbHVlKENoZWNrTm90RW1wdHksIEFkamFjZW5jeUxpc3QoQWRqYWNlbmN5
TGlzdDo6Rml4ZWQsIG5vZGUtPmNoaWxkMSgpKSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICBj
YXNlIENoZWNrSWRlbnQ6CisgICAgICAgIGRlZihQdXJlVmFsdWUoQ2hlY2tJZGVudCwgQWRqYWNl
bmN5TGlzdChBZGphY2VuY3lMaXN0OjpGaXhlZCwgbm9kZS0+Y2hpbGQxKCkpLCBub2RlLT51aWRP
cGVyYW5kKCkpKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBDb25zdGFudFN0b3JhZ2VQ
b2ludGVyOgogICAgICAgICBkZWYoUHVyZVZhbHVlKG5vZGUsIG5vZGUtPnN0b3JhZ2VQb2ludGVy
KCkpKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAppbmRleCBmZDhkZjRkOTk0MThjNjM3ZDQ4
ZGZhMTlhMzg4MzBhNWZlYzIzOGM0Li44YjZmZDg1N2Y2MDk4MjA2MjRjZmE5M2MzNDBhZjg4NTQz
NDdmNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50
Rm9sZGluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0
YW50Rm9sZGluZ1BoYXNlLmNwcApAQCAtMjA4LDYgKzIwOCwzMSBAQCBjbGFzcyBDb25zdGFudEZv
bGRpbmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CiAKKyAgICAgICAgICAgIGNhc2UgQ2hlY2tJZGVudDogeworICAgICAgICAgICAg
ICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7CisgICAgICAg
ICAgICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNo
aWxkMSgpKS52YWx1ZSgpOworICAgICAgICAgICAgICAgIGNvbnN0IFVuaXF1ZWRTdHJpbmdJbXBs
KiBjb25zdGFudFVpZCA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgaWYgKGNoaWxkQ29uc3Rh
bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkQ29uc3RhbnQuaXNTeW1ib2woKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdGFudFVpZCA9IGFzU3ltYm9sKGNoaWxkQ29uc3RhbnQp
LT5wcml2YXRlTmFtZSgpLnVpZCgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkQ29uc3RhbnQuaXNTdHJpbmcoKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBpbXBsID0gYXNTdHJpbmcoY2hpbGRD
b25zdGFudCktPnRyeUdldFZhbHVlSW1wbCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFTU0VSVChpbXBsLT5pc0F0b21pYygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3RhbnRVaWQgPSBzdGF0aWNfY2FzdDxjb25zdCBVbmlxdWVkU3RyaW5nSW1w
bCo+KGltcGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIGlmIChjb25zdGFudFVpZCA9PSB1aWQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgbm9kZS0+cmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIGVsaW1pbmF0ZWQgPSB0
cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKwogICAgICAgICAgICAgY2FzZSBDaGVja0luQm91bmRzOiB7CiAgICAgICAgICAgICAg
ICAgSlNWYWx1ZSBsZWZ0ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgp
OwogICAgICAgICAgICAgICAgIEpTVmFsdWUgcmlnaHQgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+
Y2hpbGQyKCkpLnZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
aW5kZXggMDhmZmIyYTkxMjkzODcyMTMxMWNhZDI3NzQ2NzYxYTIwNjUzYWE1Zi4uZTQ3MGI4ZGRh
Yjk5NDM4ZmQ4OTAzNTJlNDVlMDkxMDI5ZjFhNjI3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRG9lc0dDLmNwcApAQCAtMTA3LDYgKzEwNyw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFZhckluamVjdGlvbldhdGNocG9pbnQ6CiAgICAg
Y2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJ
ZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdFeHBUZXN0OgogICAgIGNh
c2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcAppbmRleCBjNDQyMzEwMTYzMjY1N2QzZTgzZjk3MWU2NmE4M2Y2MjUwNTcxNTI0Li5kNmE5
NzkwYjEzY2UwMDYyZDk3ODExNDBlZGNlMjIxNTJlNDAwYjg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTEwMTIsNiArMTAxMiwxNSBAQCBjbGFz
cyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKworICAg
ICAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7CisgICAgICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgp
KQorICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3ltYm9sVXNlPihub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZml4RWRnZTxTdHJpbmdJZGVudFVzZT4o
bm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAg
ICAgIAogICAgICAgICBjYXNlIEFycmF5aWZ5OgogICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1
Y3R1cmU6IHsKQEAgLTE3NjAsNiArMTc2OSw3IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMg
UGhhc2UgewogICAgICAgICBjYXNlIEZ1bmN0aW9uVXNlOgogICAgICAgICBjYXNlIFN0cmluZ1Vz
ZToKICAgICAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKKyAgICAgICAgY2FzZSBTeW1ib2xVc2U6
CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFN0cmluZ09yU3Ry
aW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgaWYgKGFsd2F5c1VuYm94U2ltcGxlUHJpbWl0aXZl
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IGRmMjFjZGU2MzU0NzNjMWEy
ZGY3NzQzMjY2YTBhOTE4YzdjYmRmYWEuLjZlODRhYzYzOWJiZjQ3NTRiYWIwZTU1NTVlZmI3NDE4
MjE2YTY0YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xMzMyLDYgKzEz
MzIsMTcgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4obV9vcEluZm8pOwogICAgIH0KIAorICAgIGJvb2wgaGFzVWlkT3BlcmFuZCgpCisgICAg
eworICAgICAgICByZXR1cm4gb3AoKSA9PSBDaGVja0lkZW50OworICAgIH0KKworICAgIFVuaXF1
ZWRTdHJpbmdJbXBsKiB1aWRPcGVyYW5kKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChoYXNVaWRP
cGVyYW5kKCkpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxVbmlxdWVkU3RyaW5n
SW1wbCo+KG1fb3BJbmZvKTsKKyAgICB9CisKICAgICBib29sIGhhc1RyYW5zaXRpb24oKQogICAg
IHsKICAgICAgICAgc3dpdGNoIChvcCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgKaW5kZXggNjJlN2NhOThhNTIxMTJkODJkMGViNmYwZDE3MjhiZWFmNGI5ZTEzMS4u
ZTliZjcyNzA0YjE3YWE2ODY3OWU5YmJlYTBmNGYyYWRjZWY5NjNhMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMjA5LDYgKzIwOSw3IEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhDaGVja05vdEVtcHR5LCBOb2RlTXVzdEdl
bmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tCYWRDZWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAg
ICAgbWFjcm8oQ2hlY2tJbkJvdW5kcywgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKENo
ZWNrSWRlbnQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBcCiAgICAgLyogT3B0aW1pemF0aW9u
cyBmb3IgYXJyYXkgbXV0YXRpb24uICovXAogICAgIG1hY3JvKEFycmF5UHVzaCwgTm9kZVJlc3Vs
dEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCA3NmFm
NmEyZjNlNDUyYjBmMTE3YWJjM2E2YmI1ZGRkMmZhYWIxOThhLi4zNmYyZGY3Yzc1YzUwY2FmZDA2
ZWM5YzI3ODUxZWVhOWYxMGZmYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNjQ5LDYg
KzY0OSw3IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNl
IHsKICAgICAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICAgICAgY2FzZSBDaGVja0NlbGw6
CiAgICAgICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICAgICAgY2FzZSBDaGVja0lkZW50Ogog
ICAgICAgICBjYXNlIENoZWNrQmFkQ2VsbDoKICAgICAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CiAg
ICAgICAgIGNhc2UgVmFySW5qZWN0aW9uV2F0Y2hwb2ludDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggMGZmYTZhOGEzMDA3ZGY1YzhjYTJiZTU2
ZmZiMzM4M2RmN2Q1M2I5Zi4uODMyMzIyMTgxZTBhMzI4NDY2NzQyMDZkY2M3M2VmNTViNDc5MWQ3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAg
LTU5LDYgKzU5LDcgQEAgY2xhc3MgU2FmZVRvRXhlY3V0ZUVkZ2UgewogICAgICAgICBjYXNlIE9i
amVjdE9yT3RoZXJVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgICAgIGNh
c2UgU3RyaW5nVXNlOgorICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAgICAgICAgY2FzZSBTdHJp
bmdPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAg
ICAgIGNhc2UgTm90U3RyaW5nVmFyVXNlOgpAQCAtMTg4LDYgKzE4OSw3IEBAIGJvb2wgc2FmZVRv
RXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSkKICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICBjYXNlIENoZWNrQmFkQ2VsbDoKICAgICBjYXNl
IENoZWNrTm90RW1wdHk6CisgICAgY2FzZSBDaGVja0lkZW50OgogICAgIGNhc2UgUmVnRXhwRXhl
YzoKICAgICBjYXNlIFJlZ0V4cFRlc3Q6CiAgICAgY2FzZSBDb21wYXJlTGVzczoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZjNmOGFm
N2E1MmQ1MGY5YTJlNzFjNGY5MDE5OTg0N2JmMDUwMGQ1ZS4uYWVhMWExYTBlMTU0ODE1OTViYjRm
ZTAyNmVlZWNhNmQwMjIxZWE3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTU3MzEsNiArNTczMSwyMCBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpzcGVjdWxhdGVOb3RTdHJpbmdWYXIoRWRnZSBlZGdlKQogICAgIG5vdENlbGwubGlu
aygmbV9qaXQpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTeW1ib2woRWRn
ZSBlZGdlLCBHUFJSZWcgY2VsbCkKK3sKKyAgICBERkdfVFlQRV9DSEVDSyhKU1ZhbHVlU291cmNl
Ojp1bmJveGVkQ2VsbChjZWxsKSwgZWRnZSwgU3BlY1N5bWJvbCwgbV9qaXQuYnJhbmNoSWZOb3RT
eW1ib2woY2VsbCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTeW1ib2wo
RWRnZSBlZGdlKQoreworICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY1N5bWJvbCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhp
cywgZWRnZSk7CisgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOworfQor
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVOb3RDZWxsKEVkZ2UgZWRnZSkKIHsKICAg
ICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIH5TcGVjQ2VsbCkpCkBAIC01ODQyLDYgKzU4NTYs
OSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUoTm9kZSosIEVkZ2UgZWRnZSkKICAg
ICBjYXNlIFN0cmluZ1VzZToKICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKGVkZ2UpOwogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFN5bWJvbFVzZToKKyAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVk
Z2UpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAg
c3BlY3VsYXRlU3RyaW5nT2JqZWN0KGVkZ2UpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBhNWM0NDU0N2RhNjRi
YzJiNjNmMDczYTE3MTFlNmExMTgwNmY1OTViLi5jZWJmMjg2M2I0MDMxM2FiOTZmZjM4Yzc4YmQ2
MGQzYTk0NWZhMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCkBAIC0yNDA2LDYgKzI0MDYsOCBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAg
ICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3QoRWRnZSwgR1BSUmVnKTsKICAgICB2b2lkIHNw
ZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09yU3Ry
aW5nT2JqZWN0KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UsIEdQUlJlZyBj
ZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0
ZU5vdENlbGwoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVPdGhlcihFZGdlKTsKICAgICB2b2lk
IHNwZWN1bGF0ZU1pc2MoRWRnZSwgSlNWYWx1ZVJlZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNzcwYmRhNThjYWI1MDIz
YTFmYTBjMzhmNGM3YTAzMDhkNDA4MGEzMC4uYTU1OGRiNWVmZDVhNDgwZWU5NmNjYzU4NjBhOTgx
ZDVmOWU2ODk2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCkBAIC0zODUwLDYgKzM4NTAsMzEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNl
IENoZWNrSWRlbnQ6IHsKKyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlz
LCBub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2Rl
LT51aWRPcGVyYW5kKCk7CisgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAg
ICAgIHNwZWN1bGF0ZVN5bWJvbChub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7CisgICAg
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgICAgIEJhZENvbnN0YW50Q2Fj
aGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wZXJhbmQuZ3ByKCkpLCBudWxscHRyLAor
ICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICAgICAgSklU
Q29tcGlsZXI6Ok5vdEVxdWFsLAorICAgICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWRk
cmVzcyhvcGVyYW5kLmdwcigpLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSksCisgICAg
ICAgICAgICAgICAgICAgIFRydXN0ZWRJbW1QdHIodWlkKSkpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigp
KTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50KG5vZGUtPmNoaWxkMSgpLCBvcGVy
YW5kLmdwcigpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCisgICAgICAgICAgICAg
ICAgQmFkQ29uc3RhbnRDYWNoZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3BlcmFuZC5n
cHIoKSksIG51bGxwdHIsCisgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAg
ICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgICAg
IEpJVENvbXBpbGVyOjpBZGRyZXNzKG9wZXJhbmQuZ3ByKCksIEpTU3RyaW5nOjpvZmZzZXRPZlZh
bHVlKCkpLAorICAgICAgICAgICAgICAgICAgICBUcnVzdGVkSW1tUHRyKHVpZCkpKTsKKyAgICAg
ICAgfQorICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAg
ICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGZ1
bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3Vs
dCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNl
S2luZC5jcHAKaW5kZXggZWZhMTA0ZjNkMDcwMDBiN2Q3YmM0NzNiY2RmMjA2ZDEwNTNmYzliMS4u
OTM2ZWY1NTRhZjI0ZTBiNjRmZGY0MjhmMTYzYWU4ZDc4OGU5OGQ5NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCkBAIC05Nyw2ICs5Nyw5IEBAIHZvaWQgcHJpbnRJ
bnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBVc2VLaW5kIHVzZUtpbmQpCiAgICAgY2FzZSBLbm93
blN0cmluZ1VzZToKICAgICAgICAgb3V0LnByaW50KCJLbm93blN0cmluZyIpOwogICAgICAgICBy
ZXR1cm47CisgICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAgIG91dC5wcmludCgiU3ltYm9sIik7
CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgb3V0
LnByaW50KCJTdHJpbmdPYmplY3QiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1VzZUtpbmQuaAppbmRleCBlYmY5OWRhZTYwMGM4ODI1ZDIyY2JhYzYzODIyZDE1
YjU1NjAwMzVhLi4yODliNzgzZTQxYmIzNjEyOTFjODNjOGZhZDdiMDhhNTc4ZTBhNmYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaApAQCAtNTcsNiArNTcsNyBAQCBlbnVt
IFVzZUtpbmQgewogICAgIFN0cmluZ0lkZW50VXNlLAogICAgIFN0cmluZ1VzZSwKICAgICBLbm93
blN0cmluZ1VzZSwKKyAgICBTeW1ib2xVc2UsCiAgICAgU3RyaW5nT2JqZWN0VXNlLAogICAgIFN0
cmluZ09yU3RyaW5nT2JqZWN0VXNlLAogICAgIE5vdFN0cmluZ1ZhclVzZSwKQEAgLTExNyw2ICsx
MTgsOCBAQCBpbmxpbmUgU3BlY3VsYXRlZFR5cGUgdHlwZUZpbHRlckZvcihVc2VLaW5kIHVzZUtp
bmQpCiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKICAgICAg
ICAgcmV0dXJuIFNwZWNTdHJpbmc7CisgICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAgIHJldHVy
biBTcGVjU3ltYm9sOwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4g
U3BlY1N0cmluZ09iamVjdDsKICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgpAQCAt
MTk2LDYgKzE5OSw3IEBAIGlubGluZSBib29sIGlzQ2VsbChVc2VLaW5kIGtpbmQpCiAgICAgY2Fz
ZSBTdHJpbmdJZGVudFVzZToKICAgICBjYXNlIFN0cmluZ1VzZToKICAgICBjYXNlIEtub3duU3Ry
aW5nVXNlOgorICAgIGNhc2UgU3ltYm9sVXNlOgogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgog
ICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuaAppbmRleCA5MTI3NTRkZmM0MDE1MmIwZWQyNDgzNmFjNzViOGY5Njk4NDM5OWJiLi41
ODFmNGNiZDlhNzY4YjlhYjJhODM5MjFjZjI0ZDM1MjRiYzg1NzE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaApAQCAt
ODcsNyArODcsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8o
U3RydWN0dXJlX2NsYXNzSW5mbywgU3RydWN0dXJlOjpjbGFzc0luZm9PZmZzZXQoKSkgXAogICAg
IG1hY3JvKFN0cnVjdHVyZV9nbG9iYWxPYmplY3QsIFN0cnVjdHVyZTo6Z2xvYmFsT2JqZWN0T2Zm
c2V0KCkpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVfcHJvdG90eXBlLCBTdHJ1Y3R1cmU6OnByb3Rv
dHlwZU9mZnNldCgpKSBcCi0gICAgbWFjcm8oU3RydWN0dXJlX3N0cnVjdHVyZUlELCBTdHJ1Y3R1
cmU6OnN0cnVjdHVyZUlET2Zmc2V0KCkpCisgICAgbWFjcm8oU3RydWN0dXJlX3N0cnVjdHVyZUlE
LCBTdHJ1Y3R1cmU6OnN0cnVjdHVyZUlET2Zmc2V0KCkpIFwKKyAgICBtYWNybyhTeW1ib2xfcHJp
dmF0ZU5hbWUsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKQogCiAjZGVmaW5lIEZPUl9F
QUNIX0lOREVYRURfQUJTVFJBQ1RfSEVBUChtYWNybykgXAogICAgIG1hY3JvKERpcmVjdEFyZ3Vt
ZW50c19zdG9yYWdlLCBEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQoKSwgc2l6ZW9mKEVu
Y29kZWRKU1ZhbHVlKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmls
aXRpZXMuY3BwCmluZGV4IDYyNzI4Yzc0NmVmOTFkNzRiNzgyOWJiM2Y5YTQ0YzZkN2Y2MWQ3YjMu
LmI0OTNmMzAyN2U4MmNmY2NlOWMzY2NmNDgyYzE1NTg2MWQ2OGI5NDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTExOCw2ICsxMTgsNyBA
QCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNl
IENoZWNrQ2VsbDoKICAgICBjYXNlIENoZWNrQmFkQ2VsbDoKICAgICBjYXNlIENoZWNrTm90RW1w
dHk6CisgICAgY2FzZSBDaGVja0lkZW50OgogICAgIGNhc2UgU3RyaW5nQ2hhckNvZGVBdDoKICAg
ICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgIGNhc2UgUmVhbGxvY2F0ZVByb3Bl
cnR5U3RvcmFnZToKQEAgLTQxNSw2ICs0MTYsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGls
ZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgICAgICAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKICAg
ICAgICAgICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNl
IFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgorICAgICAgICAgICAgICAgIGNhc2UgU3ltYm9sVXNl
OgogICAgICAgICAgICAgICAgIGNhc2UgRmluYWxPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAg
Y2FzZSBOb3RDZWxsVXNlOgogICAgICAgICAgICAgICAgIGNhc2UgT3RoZXJVc2U6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCmluZGV4IDUyZGVh
NWVjMjA5NWI5M2ZkZjFiODk2ZmRjZmI3MWMyNGQxNTc2ZTQuLmViNTZhYzA2YzFlODE2Zjk5OGFj
ZGMwYzZkNjFkN2RkOTViYWFjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC01MzIsNiArNTMyLDkgQEAgY2xhc3MgTG93ZXJERkdU
b0xMVk0gewogICAgICAgICBjYXNlIENoZWNrQmFkQ2VsbDoKICAgICAgICAgICAgIGNvbXBpbGVD
aGVja0JhZENlbGwoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENoZWNrSWRl
bnQ6CisgICAgICAgICAgICBjb21waWxlQ2hlY2tJZGVudCgpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICAgICAgICAgIGNvbXBpbGVHZXRFeGVj
dXRhYmxlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTIwMjksNiArMjAzMiwyMCBAQCBjbGFz
cyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgIHNwZWN1bGF0ZShURFpGYWlsdXJlLCBub1ZhbHVl
KCksIG51bGxwdHIsIG1fb3V0LmlzWmVybzY0KGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSkp
KTsKICAgICB9CiAKKyAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KCkKKyAgICB7CisgICAgICAg
IFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBtX25vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAg
aWYgKHVpZC0+aXNTeW1ib2woKSkgeworICAgICAgICAgICAgTFZhbHVlIHN5bWJvbCA9IGxvd1N5
bWJvbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0g
bV9vdXQubG9hZFB0cihzeW1ib2wsIG1faGVhcHMuU3ltYm9sX3ByaXZhdGVOYW1lKTsKKyAgICAg
ICAgICAgIHNwZWN1bGF0ZShCYWRDb25zdGFudENhY2hlLCBub1ZhbHVlKCksIG51bGxwdHIsIG1f
b3V0Lm5vdEVxdWFsKHN0cmluZ0ltcGwsIG1fb3V0LmNvbnN0SW50UHRyKHVpZCkpKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJpbmcgPSBsb3dTdHJpbmdJZGVudCht
X25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0gbV9vdXQu
bG9hZFB0cihzdHJpbmcsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOworICAgICAgICAgICAgc3Bl
Y3VsYXRlKEJhZENvbnN0YW50Q2FjaGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1
YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAgICB9CisgICAg
fQorCiAgICAgdm9pZCBjb21waWxlR2V0RXhlY3V0YWJsZSgpCiAgICAgewogICAgICAgICBMVmFs
dWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC03MDI2LDcgKzcwNDMsMTYg
QEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChl
ZGdlLCBzdHJpbmcsIHN0cmluZ0ltcGwpOwogICAgICAgICByZXR1cm4gc3RyaW5nSW1wbDsKICAg
ICB9Ci0gICAgCisKKyAgICBMVmFsdWUgbG93U3ltYm9sKEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1
bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlv
biB8fCBlZGdlLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpOworCisgICAgICAgIExWYWx1ZSByZXN1
bHQgPSBsb3dDZWxsKGVkZ2UsIG1vZGUpOworICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSwg
cmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBMVmFsdWUgbG93
Tm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1
dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQo
bW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkg
PT0gT2JqZWN0VXNlKTsKQEAgLTc0MjMsNiArNzQ0OSw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZN
IHsKICAgICAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0
cmluZ0lkZW50KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3ltYm9s
VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UpOworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRl
U3RyaW5nT2JqZWN0KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03NTE5LDcgKzc1NDgs
MTYgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgbV9vdXQubG9hZDMyKGNl
bGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50MzIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9Ci0gICAgCisKKyAgICBM
VmFsdWUgaXNOb3RTeW1ib2woTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVj
RnVsbFRvcCkKKyAgICB7CisgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1
ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjU3ltYm9sKSkKKyAgICAgICAgICAgIHJldHVybiBwcm92
ZW47CisgICAgICAgIHJldHVybiBtX291dC5ub3RFcXVhbCgKKyAgICAgICAgICAgIG1fb3V0Lmxv
YWQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCisgICAgICAgICAgICBtX291
dC5jb25zdEludDMyKHZtKCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7CisgICAgfQorCiAgICAg
TFZhbHVlIGlzQXJyYXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlNb2RlKQogICAg
IHsKICAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkBAIC03NzQyLDcgKzc3ODAs
MTcgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0
LCBub1ZhbHVlKCksIDAsCiAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChzdHJ1Y3R1cmVJRCwg
d2Vha1N0cnVjdHVyZUlEKHN0cmluZ09iamVjdFN0cnVjdHVyZSkpKTsKICAgICB9Ci0gICAgCisK
KyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsK
KyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjU3lt
Ym9sIHwgflNwZWNDZWxsLCBpc05vdFN5bWJvbChjZWxsKSk7CisgICAgfQorCisgICAgdm9pZCBz
cGVjdWxhdGVTeW1ib2woRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlU3ltYm9s
KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKwogICAgIHZvaWQgc3BlY3VsYXRlTm9uTnVs
bE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAgRlRMX1RZUEVf
Q0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjT2JqZWN0LCBpc05vdE9iamVjdChj
ZWxsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOWFmMzMyZWI3OGUxODlhZTZh
NTNiMjIzNTBhZjc3YjVmOWQ3ZWIyYi4uYzc4YjRjMTk1NmJmNzA4ZDkxY2MyYTE3MzcxOTFlZjNj
MjRlMDI1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNjYwLDYgKzY2MCwxMCBA
QCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZm
b3J0IGVmZm9ydCkKIAogICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJPZkJ5VmFsSW5mb3MobV9i
eVZhbENvbXBpbGF0aW9uSW5mby5zaXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKTsgKytpKSB7CisgICAgICAgIFBhdGNoYWJs
ZUp1bXAgcGF0Y2hhYmxlTm90SW5kZXhKdW1wID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5u
b3RJbmRleEp1bXA7CisgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wID0gQ29k
ZUxvY2F0aW9uSnVtcCgpOworICAgICAgICBpZiAoSnVtcChwYXRjaGFibGVOb3RJbmRleEp1bXAp
LmlzU2V0KCkpCisgICAgICAgICAgICBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBh
dGNoQnVmZmVyLmxvY2F0aW9uT2YocGF0Y2hhYmxlTm90SW5kZXhKdW1wKSk7CiAgICAgICAgIENv
ZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVy
LmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5iYWRUeXBlSnVtcCkpOwogICAg
ICAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmRvbmVUYXJnZXQpOwogICAgICAgICBDb2RlTG9j
YXRpb25MYWJlbCBzbG93UGF0aFRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZh
bENvbXBpbGF0aW9uSW5mb1tpXS5zbG93UGF0aFRhcmdldCk7CkBAIC02NjcsNiArNjcxLDcgQEAg
Q29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9y
dCBlZmZvcnQpCiAgICAgICAgIAogICAgICAgICBtX2NvZGVCbG9jay0+YnlWYWxJbmZvKGkpID0g
QnlWYWxJbmZvKAogICAgICAgICAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5ieXRlY29k
ZUluZGV4LAorICAgICAgICAgICAgbm90SW5kZXhKdW1wLAogICAgICAgICAgICAgYmFkVHlwZUp1
bXAsCiAgICAgICAgICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmFycmF5TW9kZSwKICAg
ICAgICAgICAgIGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihiYWRUeXBlSnVtcCwgZG9uZVRhcmdl
dCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCAwMjEzOTYzNGIxZGZlZDYxMDU2MmRlY2I1
NzhkYjM4ZDZiMTYwMzRlLi5kZWNmNzllYTJiNGEzNmZlYjUwYWY0ZDViNDYzMDNmODQxNmYyMDk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTE0OSw4ICsxNDksOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBzdHJ1Y3QgQnlWYWxDb21waWxhdGlvbkluZm8gewogICAgICAgICBCeVZhbENv
bXBpbGF0aW9uSW5mbygpIHsgfQogICAgICAgICAKLSAgICAgICAgQnlWYWxDb21waWxhdGlvbklu
Zm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAg
YmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJl
bCBkb25lVGFyZ2V0KQorICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbyh1bnNpZ25lZCBieXRl
Y29kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXAsIE1h
Y3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJy
YXlNb2RlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldCkKICAgICAgICAgICAgIDog
Ynl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQorICAgICAgICAgICAgLCBub3RJbmRleEp1bXAo
bm90SW5kZXhKdW1wKQogICAgICAgICAgICAgLCBiYWRUeXBlSnVtcChiYWRUeXBlSnVtcCkKICAg
ICAgICAgICAgICwgYXJyYXlNb2RlKGFycmF5TW9kZSkKICAgICAgICAgICAgICwgZG9uZVRhcmdl
dChkb25lVGFyZ2V0KQpAQCAtMTU4LDYgKzE1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1v
ZGUgYXJyYXlNb2RlOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldDsK
QEAgLTIwNCw2ICsyMDYsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBqaXQucHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbChieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIGFycmF5TW9kZSk7
CiAgICAgICAgIH0KIAorICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRoQ2Fj
aGVkSWQoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8s
IFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOwor
ICAgICAgICAgICAgaml0Lm1fYnl0ZWNvZGVPZmZzZXQgPSBieVZhbEluZm8tPmJ5dGVjb2RlSW5k
ZXg7CisgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChi
eVZhbEluZm8sIHJldHVybkFkZHJlc3MsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKwogICAg
ICAgICBzdGF0aWMgdm9pZCBjb21waWxlUHV0QnlWYWwoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVz
cywgSklUQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICAgICAgewogICAgICAgICAgICAgSklUIGpp
dCh2bSwgY29kZUJsb2NrKTsKQEAgLTI0Niw2ICsyNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZv
cnQpOwogICAgICAgICAKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFs
SW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CisgICAgICAgIHZvaWQgcHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNz
UHRyLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVQdXRC
eVZhbChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwogCiAgICAg
ICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoQnlWYWxJbmZvKiwgUmV0
dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKQEAgLTM3MSw3ICszODEsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgSnVtcExpc3QgZW1pdEFycmF5U3RvcmFnZVB1dEJ5VmFsKEluc3Ry
dWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRJ
bnRUeXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBl
LCBUeXBlZEFycmF5VHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRGbG9hdFR5cGVkQXJyYXlQ
dXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlU
eXBlKTsKLSAgICAgICAgCisKKyAgICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlW
YWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3Qm
IGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcyk7CisKICAgICAgICAgZW51bSBGaW5hbE9i
amVjdE1vZGUgeyBNYXlCZUZpbmFsLCBLbm93bk5vdEZpbmFsIH07CiAKICAgICAgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24s
IFQgbGVmdEhhbmRTaWRlLCBTdHJ1Y3R1cmUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCmluZGV4IDkwYjUzMjE1YWIwNGM3NDMzOGFkYmE4MzYzMDQwYzM4NGRmZmEz
MWUuLmRhZjJhZmYzN2MwMDAyNWY4ODZiZDMxMGM0NDM3ZGMwN2UzNTA5YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTEwOCw3ICsxMTA4LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICAKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAg
Ci0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8o
bV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQs
IFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDhhNjk3NWMxNmQ2Yjk2
ZWNhMWYyOTYzZDRmNTkxMmJmMDU2ODk2ZTUuLjZmMGQ4YTkwNzMxMWQ2MjRhNjU0ZDVkNjk1YzQ5
NTRjOGU3NTJjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcApAQCAtMTU1NSw3ICsxNTU1LDIzIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKKyAgICBpZiAoYmFzZVZhbHVlLmlz
T2JqZWN0KCkgJiYgKHN1YnNjcmlwdC5pc1N5bWJvbCgpIHx8IHN1YnNjcmlwdC5pc1N0cmluZygp
KSkgeworICAgICAgICBjb25zdCBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IHN1YnNjcmlwdC50
b1Byb3BlcnR5S2V5KGV4ZWMpOworCisgICAgICAgIGlmICghc3Vic2NyaXB0LmlzU3RyaW5nKCkg
fHwgIXBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgeworICAgICAgICAgICAgdW5zaWduZWQgYnl0
ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKKyAgICAgICAg
ICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7CisgICAgICAgICAgICBCeVZhbEluZm8mIGJ5VmFs
SW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRCeVZhbEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAx
KTsKKyAgICAgICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKKyAgICAgICAg
ICAgIEpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKCZ2bSwgZXhlYy0+Y29kZUJsb2Nr
KCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgcHJv
cGVydHlOYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VW
YWx1ZSk7CisgICAgICAgIGJvb2wgaGFzUmVzdWx0ID0gYmFzZVZhbHVlLmdldFByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGhhc1Jlc3VsdCA/IHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSA6IGpzVW5k
ZWZpbmVkKCkpOworICAgIH0KKwogICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywg
YmFzZVZhbHVlLCBzdWJzY3JpcHQsIGFycmF5UHJvZmlsZSwgUmV0dXJuQWRkcmVzc1B0cihPVVJf
UkVUVVJOX0FERFJFU1MpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmlu
ZGV4IDRlZjA2ZDkyMTNhMmIxZGJmZmJhNGM3YzMzNGQyZjZmMWM0NzkxN2UuLmU4MmQ4YmI1Yzcz
NTQyZTg4YzBhNmMyNjQwYTkyMzg1MDU5ZGJjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0xMDAsOCArMTAwLDE1IEBAIHZvaWQg
SklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJh
eVByb2ZpbGU7CiAgICAgCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAs
IHByb3BlcnR5LCByZWdUMSk7Ci0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50
ZWdlcihyZWdUMSk7CiAKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJh
c2UpOworCisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gaW1wbGVtZW50IHBhdGNoYWJsZUJyYW5j
aDY0LgorICAgIEp1bXAgaXNJbmRleCA9IGVtaXRKdW1wSWZJbW1lZGlhdGVJbnRlZ2VyKHJlZ1Qx
KTsKKyAgICBQYXRjaGFibGVKdW1wIG5vdEluZGV4ID0gcGF0Y2hhYmxlSnVtcCgpOworICAgIGFk
ZFNsb3dDYXNlKG5vdEluZGV4KTsKKworICAgIGlzSW5kZXgubGluayh0aGlzKTsKICAgICAvLyBU
aGlzIGlzIHRlY2huaWNhbGx5IGluY29ycmVjdCAtIHdlJ3JlIHplcm8tZXh0ZW5kaW5nIGFuIGlu
dDMyLiAgT24gdGhlIGhvdCBwYXRoIHRoaXMgZG9lc24ndCBtYXR0ZXIuCiAgICAgLy8gV2UgY2hl
Y2sgdGhlIHZhbHVlIGFzIGlmIGl0IHdhcyBhIHVpbnQzMiBhZ2FpbnN0IHRoZSBtX3ZlY3Rvckxl
bmd0aCAtIHdoaWNoIHdpbGwgYWx3YXlzIGZhaWwgaWYKICAgICAvLyBudW1iZXIgd2FzIHNpZ25l
ZCBzaW5jZSBtX3ZlY3Rvckxlbmd0aCBpcyBhbHdheXMgbGVzcyB0aGFuIGludG1heCAoc2luY2Ug
dGhlIHRvdGFsIGFsbG9jYXRpb24KQEAgLTExMCw3ICsxMTcsNiBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgLy8gZXh0
ZW5kaW5nIHNpbmNlIGl0IG1ha2VzIGl0IGVhc2llciB0byByZS10YWcgdGhlIHZhbHVlIGluIHRo
ZSBzbG93IGNhc2UuCiAgICAgemVyb0V4dGVuZDMyVG9QdHIocmVnVDEsIHJlZ1QxKTsKIAotICAg
IGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7CiAgICAgZW1pdEFycmF5
UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdUMiwgcHJvZmlsZSk7CiAgICAgYW5kMzIo
VHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVNYXNrKSwgcmVnVDIpOwogCkBAIC0xNTAsNyArMTU2
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBl
bmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwg
ZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRp
b25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIG5vdEluZGV4LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7
CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0RG91YmxlTG9hZChJbnN0cnVjdGlvbiosIFBh
dGNoYWJsZUp1bXAmIGJhZFR5cGUpCkBAIC0xOTUsNiArMjAxLDM5IEBAIEpJVDo6SnVtcExpc3Qg
SklUOjplbWl0QXJyYXlTdG9yYWdlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJh
ZFR5cGUpCiAgICAgcmV0dXJuIHNsb3dDYXNlczsKIH0KIAorSklUR2V0QnlJZEdlbmVyYXRvciBK
SVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEp1bXBMaXN0JiBkb25lQ2FzZXMs
IEp1bXBMaXN0JiBzbG93Q2FzZXMpCit7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7CisKKyAgICBzbG93Q2FzZXMuYXBwZW5kKGVtaXRKdW1wSWZOb3RKU0Nl
bGwocmVnVDEpKTsKKyAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAg
c2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEs
IEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQo
KSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2
YXRlTmFtZSgpKSwgcmVnVDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBl
bmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVj
dHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAg
bG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDEp
OworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEpKTsK
KyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0MzIoWmVybywgQWRkcmVzcyhyZWdU
MSwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpm
bGFnSXNBdG9taWMoKSkpKTsKKyAgICB9CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIo
Tm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKSk7CisK
KyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVP
cmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCks
CisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBEb250U3Bp
bGwpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKKworICAgIGRvbmVDYXNlcy5h
cHBlbmQoanVtcCgpKTsKKworICAgIExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOworICAg
IGdlbi5zbG93UGF0aEp1bXAoKS5saW5rKHRoaXMpOworCisgICAgQ2FsbCBjYWxsID0gY2FsbE9w
ZXJhdGlvbihXaXRoUHJvZmlsZSwgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBkc3QsIGdlbi5z
dHViSW5mbygpLCByZWdUMCwgcHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNs
b3dQYXRoQ2FsbChjb2xkUGF0aEJlZ2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1
bXAoKSk7CisKKyAgICByZXR1cm4gZ2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0
X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VF
bnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOwpAQCAtMjAyLDggKzI0MSw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93
Q2FzCiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsK
ICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJh
eVByb2ZpbGU7CiAgICAgCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQz
MiBjaGVjawogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNl
IGNlbGwgY2hlY2sKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNo
ZWNrCiAgICAgSnVtcCBub25DZWxsID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsg
Ly8gYmFzZSBhcnJheSBjaGVjawogICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNoU3RydWN0dXJl
KE5vdEVxdWFsLCAKQEAgLTI5OSw3ICszMzgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlf
dmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9u
ZSA9IGxhYmVsKCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlW
YWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkp
OworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZv
KG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkp
OwogCiB9CiAKQEAgLTk5OSw2ICsxMDM4LDM1IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdl
dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkCiAg
ICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1
bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYykpOwogfQogCit2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpCit7CisgICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2Nr
LT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OworCisg
ICAgSnVtcExpc3QgZG9uZUNhc2VzOworICAgIEp1bXBMaXN0IHNsb3dDYXNlczsKKworICAgIEpJ
VEdldEJ5SWRHZW5lcmF0b3IgZ2VuID0gZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKGN1cnJlbnRJ
bnN0cnVjdGlvbiwgcHJvcGVydHlOYW1lLCBkb25lQ2FzZXMsIHNsb3dDYXNlcyk7CisKKyAgICBD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKKyAgICBMaW5r
QnVmZmVyIHBhdGNoQnVmZmVyKCptX3ZtLCAqdGhpcywgbV9jb2RlQmxvY2spOworICAgIHBhdGNo
QnVmZmVyLmxpbmsoc2xvd0Nhc2VzLCBDb2RlTG9jYXRpb25MYWJlbChNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI6OmNyZWF0ZUZyb21FeGVjdXRhYmxlQWRkcmVzcyhyZXR1cm5BZGRyZXNzLnZhbHVlKCkp
KS5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+cmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpKTsKKyAg
ICBwYXRjaEJ1ZmZlci5saW5rKGRvbmVDYXNlcywgYnlWYWxJbmZvLT5iYWRUeXBlSnVtcC5sYWJl
bEF0T2Zmc2V0KGJ5VmFsSW5mby0+YmFkVHlwZUp1bXBUb0RvbmUpKTsKKyAgICBmb3IgKGNvbnN0
IGF1dG8mIGNhbGxTaXRlIDogbV9jYWxscykgeworICAgICAgICBpZiAoY2FsbFNpdGUudG8pCisg
ICAgICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGNhbGxTaXRlLmZyb20sIEZ1bmN0aW9uUHRyKGNh
bGxTaXRlLnRvKSk7CisgICAgfQorICAgIGdlbi5maW5hbGl6ZShwYXRjaEJ1ZmZlcik7CisKKyAg
ICBieVZhbEluZm8tPnN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAg
ICAgbV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAorICAgICAgICAoIkJhc2VsaW5lIGdldF9ieV92
YWwgd2l0aCBjYWNoZWQgcHJvcGVydHkgbmFtZSAnJXMnIHN0dWIgZm9yICVzLCByZXR1cm4gcG9p
bnQgJXAiLCBwcm9wZXJ0eU5hbWUuaW1wbCgpLT51dGY4KCkuZGF0YSgpLCB0b0NTdHJpbmcoKm1f
Y29kZUJsb2NrKS5kYXRhKCksIHJldHVybkFkZHJlc3MudmFsdWUoKSkpOworICAgIGJ5VmFsSW5m
by0+Y2FjaGVkSWQgPSBwcm9wZXJ0eU5hbWU7CisKKyAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hC
dWZmZXIobV9jb2RlQmxvY2spOworICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGJ5VmFsSW5mby0+
bm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25MYWJlbChieVZhbEluZm8tPnN0dWJSb3V0aW5lLT5j
b2RlKCkuY29kZSgpKSk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1bmN0aW9u
KHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYykpOwor
fQorCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVQdXRCeVZhbChCeVZhbEluZm8qIGJ5VmFsSW5m
bywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKSVRBcnJheU1vZGUgYXJyYXlNb2Rl
KQogewogICAgIEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24gPSBtX2NvZGVCbG9jay0+
aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3Bw
CmluZGV4IDYwOWNhMTM4ODIyN2RiNWJkYTUzOTI3NTMwM2RhZGQyZDhiMWNlYmMuLjMxNWZjZGFl
ZGNlZTA1ZDk2YTI2ZGZhNTY4MzgwNWY1OGIxYWE5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtMTUyLDggKzE1
Miw5IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICAKICAgICBlbWl0TG9hZDIoYmFzZSwgcmVnVDEsIHJlZ1QwLCBwcm9w
ZXJ0eSwgcmVnVDMsIHJlZ1QyKTsKICAgICAKLSAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RF
cXVhbCwgcmVnVDMsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZykpKTsKICAgICBlbWl0
SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOworICAgIFBhdGNoYWJsZUp1bXAg
bm90SW5kZXggPSBwYXRjaGFibGVCcmFuY2gzMihOb3RFcXVhbCwgcmVnVDMsIFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpJbnQzMlRhZykpOworICAgIGFkZFNsb3dDYXNlKG5vdEluZGV4KTsKICAgICBl
bWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwocmVnVDAsIHJlZ1QxLCBwcm9maWxlKTsKICAg
ICBhbmQzMihUcnVzdGVkSW1tMzIoSW5kZXhpbmdTaGFwZU1hc2spLCByZWdUMSk7CiAKQEAgLTE5
Miw3ICsxOTMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSgpOwogICAgIGVt
aXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9u
SW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlw
ZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFs
Q29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIG5vdEluZGV4LCBiYWRUeXBlLCBtb2Rl
LCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0Q29udGlndW91c0xvYWQoSW5z
dHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBJbmRleGluZ1R5cGUgZXhwZWN0ZWRT
aGFwZSkKQEAgLTIzNiw3ICsyMzcsNDMgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0
b3JhZ2VMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICAKICAg
ICByZXR1cm4gc2xvd0Nhc2VzOwogfQotICAgIAorCitKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6
ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24s
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVt
cExpc3QmIHNsb3dDYXNlcykKK3sKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZDsKKworICAgIC8vIGJhc2U6IHRhZyhyZWdUMSksIHBheWxvYWQocmVnVDApCisg
ICAgLy8gcHJvcGVydHk6IHRhZyhyZWdUMyksIHBheWxvYWQocmVnVDIpCisKKyAgICBzbG93Q2Fz
ZXMuYXBwZW5kKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDMpKTsKKyAgICBpZiAocHJvcGVydHlO
YW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1
cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSks
IG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3Mo
cmVnVDIsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDIpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBB
ZGRyZXNzKHJlZ1QyLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdT
dHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBKU1N0cmlu
Zzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDIpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJy
YW5jaFRlc3RQdHIoWmVybywgcmVnVDIpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFu
Y2hUZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMiwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSks
IFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAgICB9CisgICAg
c2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1QyLCBUcnVzdGVkSW1tUHRy
KHByb3BlcnR5TmFtZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigK
KyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lz
dGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QxLCBy
ZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdl
bmVyYXRlRmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwor
CisgICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRoSnVt
cCgpLmxpbmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9m
aWxlLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1Qx
LCByZWdUMCwgcHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2Fs
bChjb2xkUGF0aEJlZ2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisK
KyAgICByZXR1cm4gZ2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJiBpdGVyKQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kOwpAQCAtMjQ0LDggKzI4MSw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlf
dmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAg
aW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJh
eVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7
CiAgICAgCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawog
ICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hl
Y2sKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAKICAg
ICBKdW1wIG5vbkNlbGwgPSBqdW1wKCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNl
IGFycmF5IGNoZWNrCkBAIC0zMTQsNyArMzUxLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5
X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRv
bmUgPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5
VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUp
KTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5m
byhtX2J5dGVjb2RlT2Zmc2V0LCBQYXRjaGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIGRvbmUp
KTsKIH0KIAogSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRHZW5lcmljQ29udGlndW91c1B1dEJ5VmFs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUs
IEluZGV4aW5nVHlwZSBpbmRleGluZ1NoYXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3ltYm9sLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
eW1ib2wuaAppbmRleCBlNTc5MGQ3ODcyMjZiZWE3NjAyNGM5ZDFkNjZhNjc2MGY2NGRlNWEyLi44
M2Y1ZGUyNDg1MmJjMzc4ZWUwYTc3MDM5ZjQ2MzE4MjVmZGRkYmJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2wuaApAQCAtNzksNiArNzksOCBAQCBjbGFzcyBTeW1ib2wgZmlu
YWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikg
Y29uc3Q7CiAKKyAgICBzdGF0aWMgc2l6ZV90IG9mZnNldE9mUHJpdmF0ZU5hbWUoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoU3ltYm9sLCBtX3ByaXZhdGVOYW1lKTsgfQorCiBwcm90ZWN0ZWQ6
CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258242</attachid>
            <date>2015-08-04 17:20:13 -0700</date>
            <delta_ts>2015-08-04 17:51:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150804172005.patch</filename>
            <type>text/plain</type>
            <size>48695</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
N2U5NmY0OWE0N2MwZjk1NWE0ZWJmMDA3MzdiOTEyMDI4Yjg3YTRiLi42MGIwOWViZWI1MzM1NTI4
NDIyODg5ZjQzYmM5N2U0M2ZlY2NhYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MyBAQAorMjAxNS0wOC0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0QnlWYWxJbmZv
TWFwKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZyb21MTEludCk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAg
ICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5l
U3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29u
c3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
Ojpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVw
UGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2RlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1VpZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVj
dXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdVc2VL
aW5kLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogZGZnL0RG
R1VzZUtpbmQuaDoKKyAgICAgICAgKEpTQzo6REZHOjp0eXBlRmlsdGVyRm9yKToKKyAgICAgICAg
KEpTQzo6REZHOjppc0NlbGwpOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6
OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTm9kZSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNoZWNrSWRlbnQp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06Omxvd1N5bWJvbCk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6c3BlY3VsYXRlKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjppc05vdFN5bWJvbCk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6c3BlY3VsYXRlU3ltYm9sKToKKyAgICAg
ICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZSk6Cisg
ICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAoSlNDOjpCeVZhbENvbXBpbGF0aW9uSW5mbzo6
QnlWYWxDb21waWxhdGlvbkluZm8pOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVHZXRCeVZh
bFdpdGhDYWNoZWRJZCk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xv
d19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwp
OgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwpOgorICAgICAgICAo
SlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAq
IGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNo
ZWRJZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKToKKyAgICAgICAgKiBydW50aW1lL1N5
bWJvbC5oOgorCiAyMDE1LTA4LTAzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgogCiAgICAgICAgIERvbid0IHNldCB1cCB0aGUgY2FsbHNpdGUgdG8gb3BlcmF0aW9uR2V0
QnlWYWxEZWZhdWx0IHdoZW4gdGhlIG9wdGltaXphdGlvbiBpcyBhbHJlYWR5IGRvbmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAppbmRleCBkOTg4NTE2MTMyNThh
NzFiOWYwNGJhNDkwNzNmNDQwMzNlNTcxMDgzLi4xOWFkNzEwNDY4YWQyODA5MTQzZjM3M2RjZDdm
OWFlZDU0NzRkM2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QnlWYWxJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5m
by5oCkBAIC0yNiwxNiArMjYsMTcgQEAKICNpZm5kZWYgQnlWYWxJbmZvX2gKICNkZWZpbmUgQnlW
YWxJbmZvX2gKIAotI2lmIEVOQUJMRShKSVQpCi0KICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNp
bmNsdWRlICJDb2RlTG9jYXRpb24uaCIKKyNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVk
ZSAiSW5kZXhpbmdUeXBlLmgiCiAjaW5jbHVkZSAiSklUU3R1YlJvdXRpbmUuaCIKICNpbmNsdWRl
ICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBFTkFCTEUoSklUKQorCiBl
bnVtIEpJVEFycmF5TW9kZSB7CiAgICAgSklUSW50MzIsCiAgICAgSklURG91YmxlLApAQCAtMjAy
LDggKzIwMyw5IEBAIGlubGluZSBKSVRBcnJheU1vZGUgaml0QXJyYXlNb2RlRm9yU3RydWN0dXJl
KFN0cnVjdHVyZSogc3RydWN0dXJlKQogc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgQnlWYWxJbmZv
KCkgeyB9CiAgICAgCi0gICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVM
b2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIGludDE2X3Qg
YmFkVHlwZUp1bXBUb0RvbmUsIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCisgICAg
QnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgbm90SW5k
ZXhKdW1wLCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlN
b2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Ns
b3dQYXRoKQogICAgICAgICA6IGJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAg
LCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1wKQogICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5
cGVKdW1wKQogICAgICAgICAsIGFycmF5TW9kZShhcnJheU1vZGUpCiAgICAgICAgICwgYmFkVHlw
ZUp1bXBUb0RvbmUoYmFkVHlwZUp1bXBUb0RvbmUpCkBAIC0yMTEsMTQgKzIxMywxNiBAQCBzdHJ1
Y3QgQnlWYWxJbmZvIHsKICAgICAgICAgLCBzbG93UGF0aENvdW50KDApCiAgICAgewogICAgIH0K
LSAgICAKKwogICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXg7CisgICAgQ29kZUxvY2F0aW9uSnVt
cCBub3RJbmRleEp1bXA7CiAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcDsKICAgICBK
SVRBcnJheU1vZGUgYXJyYXlNb2RlOyAvLyBUaGUgYXJyYXkgbW9kZSB0aGF0IHdhcyBiYWtlZCBp
bnRvIHRoZSBpbmxpbmUgSklUIGNvZGUuCiAgICAgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZTsK
ICAgICBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoOwogICAgIHVuc2lnbmVkIHNsb3dQ
YXRoQ291bnQ7CiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZTsKKyAgICBJ
ZGVudGlmaWVyIGNhY2hlZElkOwogfTsKIAogaW5saW5lIHVuc2lnbmVkIGdldEJ5VmFsSW5mb0J5
dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQpAQCAtMjI2LDkgKzIzMCwxNSBAQCBpbmxpbmUg
dW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZhbEluZm8qIGluZm8pCiAgICAg
cmV0dXJuIGluZm8tPmJ5dGVjb2RlSW5kZXg7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIEpTQwordHlw
ZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIEJ5VmFsSW5mbyosIENvZGVPcmlnaW5BcHByb3hpbWF0
ZUhhc2g+IEJ5VmFsSW5mb01hcDsKKworI2Vsc2UgLy8gRU5BQkxFKEpJVCkKKwordHlwZWRlZiBI
YXNoTWFwPGludCwgdm9pZCo+IEJ5VmFsSW5mb01hcDsKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQp
CiAKK30gLy8gbmFtZXNwYWNlIEpTQworCiAjZW5kaWYgLy8gQnlWYWxJbmZvX2gKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCAwMjMwOTI3NDYz
Mjg4NDZmNDcxOWIzN2E4OWY5NmZiM2I1N2IxOTQ3Li43ZWY4MTZlNDhhMjMxNjYzYjFmNWI1ZWJh
NGUzYTY4YjE1NDI4NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcApAQCAtMjY5Myw2ICsyNjkzLDIyIEBAIHZvaWQgQ29kZUJsb2NrOjpnZXRDYWxs
TGlua0luZm9NYXAoQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpCiAgICAgZ2V0Q2FsbExpbmtJbmZv
TWFwKGxvY2tlciwgcmVzdWx0KTsKIH0KIAordm9pZCBDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01h
cChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQnlWYWxJbmZvTWFwJiByZXN1bHQpCit7Cisj
aWYgRU5BQkxFKEpJVCkKKyAgICBmb3IgKGF1dG8mIGJ5VmFsSW5mbyA6IG1fYnlWYWxJbmZvcykK
KyAgICAgICAgcmVzdWx0LmFkZChDb2RlT3JpZ2luKGJ5VmFsSW5mby5ieXRlY29kZUluZGV4KSwg
JmJ5VmFsSW5mbyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOworI2VuZGlmCit9
CisKK3ZvaWQgQ29kZUJsb2NrOjpnZXRCeVZhbEluZm9NYXAoQnlWYWxJbmZvTWFwJiByZXN1bHQp
Cit7CisgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBnZXRCeVZh
bEluZm9NYXAobG9ja2VyLCByZXN1bHQpOworfQorCiAjaWYgRU5BQkxFKEpJVCkKIFN0cnVjdHVy
ZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmFkZFN0dWJJbmZvKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA2YzNhMTE1Zjc3NWVlYzNhYmQyMjAyZmVm
YTUyNmRmODBhM2ZjOTM4Li4yYTM0ZTJkNjJjOWJlZTc0NWFkNDVlNWY0YmFlZWJjOWNiMjUxMjc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0yMDAs
NiArMjAwLDkgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PENvZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFsRmkKICAgICAKICAgICB2b2lkIGdldENh
bGxMaW5rSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ2FsbExpbmtJbmZvTWFw
JiByZXN1bHQpOwogICAgIHZvaWQgZ2V0Q2FsbExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01hcCYg
cmVzdWx0KTsKKworICAgIHZvaWQgZ2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRM
b2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCk7CisgICAgdm9pZCBnZXRCeVZhbEluZm9NYXAo
QnlWYWxJbmZvTWFwJiByZXN1bHQpOwogICAgIAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0
dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5kZXggN2FmYWY5MjNiNzczMjA0ZTQyOTlkMDc5
MGYwNTViYThlMzBhNjU0YS4uNzNjMzk3NDQ0M2M1NDA3ZDM2ZTRmYTI5YTk4NDE3MGJkNTczMDY4
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVz
LmNwcApAQCAtNzYsNiArNzYsMTAgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21w
dXRlRnJvbUxMSW50KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQKICAgICBpZiAo
aW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUgPT0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlf
bGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgZmFs
c2UpOwogCisgICAgLy8gT25seSB0aWVycyBoaWdoZXIgdGhhbiBMTEludCB1c2UgR2V0QnlJZCBJ
QyBmb3Igb3BfZ2V0X2J5X3ZhbC4KKyAgICBpZiAoaW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUgPT0g
TExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfdmFsKSkKKyAgICAgICAgcmV0dXJuIEdldEJ5SWRT
dGF0dXMoTm9JbmZvcm1hdGlvbiwgZmFsc2UpOworCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBpbnN0cnVjdGlvbls0XS51LnN0cnVjdHVyZS5nZXQoKTsKICAgICBpZiAoIXN0cnVjdHVyZSkK
ICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgZmFsc2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCmluZGV4IDAwN2ZjOWFjMzFmNDA2Y2IzYWY5NjE5YjIzNjQyNWU0MjlmYjM5
MWUuLmRlN2FiMDMwODgxY2IzMWY1N2EzNGVhMjkzNDIyYTMyYjY3ODkxNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKQEAgLTIxNjgsNiArMjE2OCwzMiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQog
ICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAg
QWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
VW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAgQVNT
RVJUKHVpZC0+aXNTeW1ib2woKSA/ICEodmFsdWUubV90eXBlICYgflNwZWNTeW1ib2wpIDogISh2
YWx1ZS5tX3R5cGUgJiB+U3BlY1N0cmluZ0lkZW50KSk7IC8vIEVkZ2UgZmlsdGVyaW5nIHNob3Vs
ZCBoYXZlIGFscmVhZHkgZW5zdXJlZCB0aGlzLgorCisgICAgICAgIEpTVmFsdWUgY2hpbGRDb25z
dGFudCA9IHZhbHVlLnZhbHVlKCk7CisgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7CisgICAg
ICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGNo
aWxkQ29uc3RhbnQuaXNTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgaWYgKGFzU3ltYm9sKGNo
aWxkQ29uc3RhbnQpLT5wcml2YXRlTmFtZSgpLnVpZCgpID09IHVpZCkgeworICAgICAgICAgICAg
ICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpOworICAgICAgICAg
ICAgICAgIGlmIChhc1N0cmluZyhjaGlsZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBsKCkgPT0g
dWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1
ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbHRlcih2YWx1ZSwgdWlkLT5pc1N5bWJv
bCgpID8gU3BlY1N5bWJvbCA6IFNwZWNTdHJpbmdJZGVudCk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKwogICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICBKU1ZhbHVlIGxlZnQgPSBm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0g
Zm9yTm9kZShub2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMjk1YjQ0OGM1ODJkOTdjNDM2MjQ2
YjZiYjZmNzFiZjRjZWMxYzNlYi4uY2E5NDJmMzVjMGZjY2FlODJhNzA4Y2RjN2YzMzliZDU4NWEz
ZjdjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKQEAgLTkyMSw2ICs5MjEsNyBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgICAg
IAogICAgICAgICBDYWxsTGlua0luZm9NYXAgbV9jYWxsTGlua0luZm9zOwogICAgICAgICBTdHVi
SW5mb01hcCBtX3N0dWJJbmZvczsKKyAgICAgICAgQnlWYWxJbmZvTWFwIG1fYnlWYWxJbmZvczsK
ICAgICAgICAgCiAgICAgICAgIC8vIERpZCB3ZSBzZWUgYW55IHJldHVybnM/IFdlIG5lZWQgdG8g
aGFuZGxlIHRoZSAodW5jb21tb24gYnV0IG5lY2Vzc2FyeSkKICAgICAgICAgLy8gY2FzZSB3aGVy
ZSBhIHByb2NlZHVyZSB0aGF0IGRvZXMgbm90IHJldHVybiB3YXMgaW5saW5lZC4KQEAgLTMwNTgs
MTAgKzMwNTksMjcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBs
aW1pdCkKICAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0
aW9uV2l0aG91dE9TUkV4aXQoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTm9kZSogYmFz
ZSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkp
OwotICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50
SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFkKTsKICAgICAgICAgICAg
IE5vZGUqIHByb3BlcnR5ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25b
M10udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgo
R2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiks
IGJhc2UsIHByb3BlcnR5KTsKLSAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGdldEJ5VmFsKTsKKyAgICAgICAgICAgIEJ5VmFs
SW5mbyogYnlWYWxJbmZvID0gbV9pbmxpbmVTdGFja1RvcC0+bV9ieVZhbEluZm9zLmdldChDb2Rl
T3JpZ2luKGN1cnJlbnRDb2RlT3JpZ2luKCkuYnl0ZWNvZGVJbmRleCkpOworICAgICAgICAgICAg
Ly8gRklYTUU6IFdoZW4gdGhlIGJ5dGVjb2RlIGlzIG5vdCBjb21waWxlZCBpbiB0aGUgYmFzZWxp
bmUgSklULCBieVZhbEluZm8gYmVjb21lcyBudWxsLgorICAgICAgICAgICAgLy8gQXQgdGhhdCB0
aW1lLCB0aGVyZSBpcyBubyBpbmZvcm1hdGlvbi4KKyAgICAgICAgICAgIGlmIChieVZhbEluZm8g
JiYgIWJ5VmFsSW5mby0+Y2FjaGVkSWQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9ncmFwaC5pZGVudGlmaWVycygpLmVuc3VyZShieVZh
bEluZm8tPmNhY2hlZElkLmltcGwoKSk7CisgICAgICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0lt
cGwqIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVtYmVyXTsKKworICAg
ICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tJZGVudCwgT3BJbmZvKHVpZCksIHByb3BlcnR5
KTsKKworICAgICAgICAgICAgICAgIEdldEJ5SWRTdGF0dXMgZ2V0QnlJZFN0YXR1cyA9IEdldEJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3IoCisgICAgICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tU
b3AtPm1fcHJvZmlsZWRCbG9jaywgbV9kZmdDb2RlQmxvY2ssCisgICAgICAgICAgICAgICAgICAg
IG1faW5saW5lU3RhY2tUb3AtPm1fc3R1YkluZm9zLCBtX2RmZ1N0dWJJbmZvcywKKyAgICAgICAg
ICAgICAgICAgICAgY3VycmVudENvZGVPcmlnaW4oKSwgdWlkKTsKKworICAgICAgICAgICAgICAg
IGhhbmRsZUdldEJ5SWQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlv
biwgYmFzZSwgaWRlbnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1cyk7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBnZXRBcnJheU1v
ZGUoY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlLCBBcnJheTo6UmVhZCk7Cisg
ICAgICAgICAgICAgICAgTm9kZSogZ2V0QnlWYWwgPSBhZGRUb0dyYXBoKEdldEJ5VmFsLCBPcElu
Zm8oYXJyYXlNb2RlLmFzV29yZCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlLCBwcm9wZXJ0
eSk7CisgICAgICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kKSwgZ2V0QnlWYWwpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBORVhUX09QQ09ERShvcF9nZXRfYnlfdmFsKTsKICAgICAgICAgfQpAQCAtMzk2Myw2ICszOTgx
LDcgQEAgQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZVN0YWNrRW50cnko
CiAgICAgICAgIGlmIChtX3Byb2ZpbGVkQmxvY2stPmhhc0Jhc2VsaW5lSklUUHJvZmlsaW5nKCkp
IHsKICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0U3R1YkluZm9NYXAobG9ja2VyLCBt
X3N0dWJJbmZvcyk7CiAgICAgICAgICAgICBtX3Byb2ZpbGVkQmxvY2stPmdldENhbGxMaW5rSW5m
b01hcChsb2NrZXIsIG1fY2FsbExpbmtJbmZvcyk7CisgICAgICAgICAgICBtX3Byb2ZpbGVkQmxv
Y2stPmdldEJ5VmFsSW5mb01hcChsb2NrZXIsIG1fYnlWYWxJbmZvcyk7CiAgICAgICAgIH0KICAg
ICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2Ji
ZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4
IDI5Njc0OWRjMzFiMjNjODk5ODQ5NGI1NmVmMTQzMDg2NGIxMjdlYzYuLjQ2ZjVmZTQ4ZDI1YzI3
ZGQzMTk2YzU4MTI5ZGJlNTg1N2ZiZDdlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2xvYmJlcml6ZS5oCkBAIC0yNjgsNiArMjY4LDEwIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0
ZUZ1CiAgICAgICAgIGRlZihQdXJlVmFsdWUoQ2hlY2tOb3RFbXB0eSwgQWRqYWNlbmN5TGlzdChB
ZGphY2VuY3lMaXN0OjpGaXhlZCwgbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgIHJldHVybjsK
IAorICAgIGNhc2UgQ2hlY2tJZGVudDoKKyAgICAgICAgZGVmKFB1cmVWYWx1ZShDaGVja0lkZW50
LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEoKSksIG5v
ZGUtPnVpZE9wZXJhbmQoKSkpOworICAgICAgICByZXR1cm47CisKICAgICBjYXNlIENvbnN0YW50
U3RvcmFnZVBvaW50ZXI6CiAgICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSwgbm9kZS0+c3RvcmFn
ZVBvaW50ZXIoKSkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IGZkOGRmNGQ5OTQx
OGM2MzdkNDhkZmExOWEzODgzMGE1ZmVjMjM4YzQuLmUwZGE0MjlmZjlmNThlOThmZDBmOTdkZjg0
NjdiZDc5ZjAzNjllNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC0yMDgsNiArMjA4LDMzIEBAIGNsYXNzIENv
bnN0YW50Rm9sZGluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgY2FzZSBDaGVja0lkZW50OiB7CisgICAg
ICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsK
KyAgICAgICAgICAgICAgICBKU1ZhbHVlIGNoaWxkQ29uc3RhbnQgPSBtX3N0YXRlLmZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgY29uc3QgVW5pcXVlZFN0
cmluZ0ltcGwqIGNvbnN0YW50VWlkID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpZiAoY2hp
bGRDb25zdGFudCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRDb25zdGFudC5pc1N5bWJvbCgpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50VWlkID0gYXNTeW1ib2woY2hpbGRD
b25zdGFudCktPnByaXZhdGVOYW1lKCkudWlkKCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRDb25zdGFudC5pc1N0cmluZygp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2luY2Ugd2UgYWxyZWFkeSBmaWx0
ZXJlZCB0aGUgdmFsdWUgd2l0aCBTdHJpbmdJZGVudFVzZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyB0aGUgaGVsZCBpbXBsIGlzIGFsd2F5cyBhdG9taWMuCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGNvbnN0IGF1dG8qIGltcGwgPSBhc1N0cmluZyhjaGlsZENvbnN0
YW50KS0+dHJ5R2V0VmFsdWVJbXBsKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKGltcGwtPmlzQXRvbWljKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdGFudFVpZCA9IHN0YXRpY19jYXN0PGNvbnN0IFVuaXF1ZWRTdHJpbmdJbXBsKj4o
aW1wbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgaWYgKGNvbnN0YW50VWlkID09IHVpZCkgeworICAgICAgICAgICAgICAgICAg
ICBub2RlLT5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9IHRydWU7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorCiAgICAgICAgICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6IHsKICAgICAgICAgICAgICAgICBK
U1ZhbHVlIGxlZnQgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAg
ICAgICAgICAgICAgICAgSlNWYWx1ZSByaWdodCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGls
ZDIoKSkudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRl
eCAwOGZmYjJhOTEyOTM4NzIxMzExY2FkMjc3NDY3NjFhMjA2NTNhYTVmLi5lNDcwYjhkZGFiOTk0
MzhmZDg5MDM1MmU0NWUwOTEwMjlmMWE2MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdEb2VzR0MuY3BwCkBAIC0xMDcsNiArMTA3LDcgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBo
LCBOb2RlKiBub2RlKQogICAgIGNhc2UgVmFySW5qZWN0aW9uV2F0Y2hwb2ludDoKICAgICBjYXNl
IENoZWNrQ2VsbDoKICAgICBjYXNlIENoZWNrTm90RW1wdHk6CisgICAgY2FzZSBDaGVja0lkZW50
OgogICAgIGNhc2UgUmVnRXhwRXhlYzoKICAgICBjYXNlIFJlZ0V4cFRlc3Q6CiAgICAgY2FzZSBD
b21wYXJlTGVzczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
CmluZGV4IGM0NDIzMTAxNjMyNjU3ZDNlODNmOTcxZTY2YTgzZjYyNTA1NzE1MjQuLmQ2YTk3OTBi
MTNjZTAwNjJkOTc4MTE0MGVkY2UyMjE1MmU0MDBiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTAxMiw2ICsxMDEyLDE1IEBAIGNsYXNzIEZp
eHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihu
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorCisgICAgICAg
IGNhc2UgQ2hlY2tJZGVudDogeworICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9
IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpCisg
ICAgICAgICAgICAgICAgZml4RWRnZTxTeW1ib2xVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ0lkZW50VXNlPihub2Rl
LT5jaGlsZDEoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICAgICAg
CiAgICAgICAgIGNhc2UgQXJyYXlpZnk6CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVy
ZTogewpAQCAtMTc2MCw2ICsxNzY5LDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFz
ZSB7CiAgICAgICAgIGNhc2UgRnVuY3Rpb25Vc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgog
ICAgICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgorICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAg
ICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdP
YmplY3RVc2U6CiAgICAgICAgICAgICBpZiAoYWx3YXlzVW5ib3hTaW1wbGVQcmltaXRpdmVzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggZGYyMWNkZTYzNTQ3M2MxYTJkZjc3
NDMyNjZhMGE5MThjN2NiZGZhYS4uNmU4NGFjNjM5YmJmNDc1NGJhYjBlNTU1NWVmYjc0MTgyMTZh
NjRhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTEzMzIsNiArMTMzMiwx
NyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHZvaWQq
PihtX29wSW5mbyk7CiAgICAgfQogCisgICAgYm9vbCBoYXNVaWRPcGVyYW5kKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBvcCgpID09IENoZWNrSWRlbnQ7CisgICAgfQorCisgICAgVW5pcXVlZFN0
cmluZ0ltcGwqIHVpZE9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1VpZE9wZXJh
bmQoKSk7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFVuaXF1ZWRTdHJpbmdJbXBs
Kj4obV9vcEluZm8pOworICAgIH0KKwogICAgIGJvb2wgaGFzVHJhbnNpdGlvbigpCiAgICAgewog
ICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaAppbmRleCA2MmU3Y2E5OGE1MjExMmQ4MmQwZWI2ZjBkMTcyOGJlYWY0YjllMTMxLi5lOWJm
NzI3MDRiMTdhYTY4Njc5ZTliYmVhMGY0ZjJhZGNlZjk2M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yMDksNiArMjA5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKENoZWNrTm90RW1wdHksIE5vZGVNdXN0R2VuZXJh
dGUpIFwKICAgICBtYWNybyhDaGVja0JhZENlbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBt
YWNybyhDaGVja0luQm91bmRzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oQ2hlY2tJ
ZGVudCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIFwKICAgICAvKiBPcHRpbWl6YXRpb25zIGZv
ciBhcnJheSBtdXRhdGlvbi4gKi9cCiAgICAgbWFjcm8oQXJyYXlQdXNoLCBOb2RlUmVzdWx0SlMg
fCBOb2RlTXVzdEdlbmVyYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDc2YWY2YTJm
M2U0NTJiMGYxMTdhYmMzYTZiYjVkZGQyZmFhYjE5OGEuLjM2ZjJkZjdjNzVjNTBjYWZkMDZlYzlj
Mjc4NTFlZWE5ZjEwZmZhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC02NDksNiArNjQ5
LDcgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2Ugewog
ICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKICAg
ICAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgICAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAg
ICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgICAgICBjYXNlIFB1dFN0cnVjdHVyZToKICAgICAg
ICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCAwZmZhNmE4YTMwMDdkZjVjOGNhMmJlNTZmZmIz
MzgzZGY3ZDUzYjlmLi44MzIzMjIxODFlMGEzMjg0NjY3NDIwNmRjYzczZWY1NWI0NzkxZDdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNTks
NiArNTksNyBAQCBjbGFzcyBTYWZlVG9FeGVjdXRlRWRnZSB7CiAgICAgICAgIGNhc2UgT2JqZWN0
T3JPdGhlclVzZToKICAgICAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgY2FzZSBT
dHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09i
amVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAg
Y2FzZSBOb3RTdHJpbmdWYXJVc2U6CkBAIC0xODgsNiArMTg5LDcgQEAgYm9vbCBzYWZlVG9FeGVj
dXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQog
ICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgIGNhc2UgQ2hl
Y2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBFeGVjOgog
ICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBmM2Y4YWY3YTUy
ZDUwZjlhMmU3MWM0ZjkwMTk5ODQ3YmYwNTAwZDVlLi5hZWExYTFhMGUxNTQ4MTU5NWJiNGZlMDI2
ZWVlY2E2ZDAyMjFlYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcApAQCAtNTczMSw2ICs1NzMxLDIwIEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZU5vdFN0cmluZ1ZhcihFZGdlIGVkZ2UpCiAgICAgbm90Q2VsbC5saW5rKCZt
X2ppdCk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVk
Z2UsIEdQUlJlZyBjZWxsKQoreworICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVu
Ym94ZWRDZWxsKGNlbGwpLCBlZGdlLCBTcGVjU3ltYm9sLCBtX2ppdC5icmFuY2hJZk5vdFN5bWJv
bChjZWxsKSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdl
IGVkZ2UpCit7CisgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjU3ltYm9sKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBl
ZGdlKTsKKyAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSwgb3BlcmFuZC5ncHIoKSk7Cit9CisKIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdENlbGwoRWRnZSBlZGdlKQogewogICAgIGlm
ICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgflNwZWNDZWxsKSkKQEAgLTU4NDIsNiArNTg1Niw5IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNh
c2UgU3RyaW5nVXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSk7
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBzcGVj
dWxhdGVTdHJpbmdPYmplY3QoZWRnZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IGE1YzQ0NTQ3ZGE2NGJjMmI2
M2YwNzNhMTcxMWU2YTExODA2ZjU5NWIuLmNlYmYyODYzYjQwMzEzYWI5NmZmMzhjNzhiZDYwZDNh
OTQ1ZmEwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgKQEAgLTI0MDYsNiArMjQwNiw4IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2
b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlLCBHUFJSZWcpOwogICAgIHZvaWQgc3BlY3Vs
YXRlU3RyaW5nT2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JTdHJpbmdP
YmplY3QoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSwgR1BSUmVnIGNlbGwp
OworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTm90
Q2VsbChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3Bl
Y3VsYXRlTWlzYyhFZGdlLCBKU1ZhbHVlUmVncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA3NzBiZGE1OGNhYjUwMjNhMWZh
MGMzOGY0YzdhMDMwOGQ0MDgwYTMwLi5hNGI4NjAxNjg5N2YxNTRhMjFmYmE5ZTg5YzczMmUwY2Q0
MTA3MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKQEAgLTM4NTAsNiArMzg1MCwzMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgQ2hl
Y2tJZGVudDogeworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVp
ZE9wZXJhbmQoKTsKKyAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgeworICAgICAgICAgICAg
c3BlY3VsYXRlU3ltYm9sKG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKKyAgICAgICAg
ICAgIHNwZWN1bGF0aW9uQ2hlY2soCisgICAgICAgICAgICAgICAgQmFkQ29uc3RhbnRDYWNoZSwg
SlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3BlcmFuZC5ncHIoKSksIG5vZGUtPmNoaWxkMSgp
LAorICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICAgICAg
SklUQ29tcGlsZXI6Ok5vdEVxdWFsLAorICAgICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6
QWRkcmVzcyhvcGVyYW5kLmdwcigpLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSksCisg
ICAgICAgICAgICAgICAgICAgIFRydXN0ZWRJbW1QdHIodWlkKSkpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdw
cigpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50KG5vZGUtPmNoaWxkMSgpLCBv
cGVyYW5kLmdwcigpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCisgICAgICAgICAg
ICAgICAgQmFkQ29uc3RhbnRDYWNoZSwgSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3BlcmFu
ZC5ncHIoKSksIG5vZGUtPmNoaWxkMSgpLAorICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFB0
cigKKyAgICAgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Ok5vdEVxdWFsLAorICAgICAgICAg
ICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhvcGVyYW5kLmdwcigpLCBKU1N0cmluZzo6
b2Zmc2V0T2ZWYWx1ZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQp
KSk7CisgICAgICAgIH0KKyAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKwogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAgICBTcGVjdWxhdGVDZWxs
T3BlcmFuZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBv
cmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1VzZUtpbmQuY3BwCmluZGV4IGVmYTEwNGYzZDA3MDAwYjdkN2JjNDczYmNkZjIwNmQx
MDUzZmM5YjEuLjkzNmVmNTU0YWYyNGUwYjY0ZmRmNDI4ZjE2M2FlOGQ3ODhlOThkOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtOTcsNiArOTcsOSBAQCB2
b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAg
IGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIG91dC5wcmludCgiS25vd25TdHJpbmciKTsK
ICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICBvdXQucHJpbnQo
IlN5bWJvbCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAg
ICAgICAgIG91dC5wcmludCgiU3RyaW5nT2JqZWN0Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggZWJmOTlkYWU2MDBjODgyNWQyMmNi
YWM2MzgyMmQxNWI1NTYwMDM1YS4uMjg5Yjc4M2U0MWJiMzYxMjkxYzgzYzhmYWQ3YjA4YTU3OGUw
YTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTU3LDYgKzU3
LDcgQEAgZW51bSBVc2VLaW5kIHsKICAgICBTdHJpbmdJZGVudFVzZSwKICAgICBTdHJpbmdVc2Us
CiAgICAgS25vd25TdHJpbmdVc2UsCisgICAgU3ltYm9sVXNlLAogICAgIFN0cmluZ09iamVjdFVz
ZSwKICAgICBTdHJpbmdPclN0cmluZ09iamVjdFVzZSwKICAgICBOb3RTdHJpbmdWYXJVc2UsCkBA
IC0xMTcsNiArMTE4LDggQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNl
S2luZCB1c2VLaW5kKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdV
c2U6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAg
ICAgICByZXR1cm4gU3BlY1N5bWJvbDsKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAg
ICAgcmV0dXJuIFNwZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVj
dFVzZToKQEAgLTE5Niw2ICsxOTksNyBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5k
KQogICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgY2Fz
ZSBLbm93blN0cmluZ1VzZToKKyAgICBjYXNlIFN5bWJvbFVzZToKICAgICBjYXNlIFN0cmluZ09i
amVjdFVzZToKICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggOTEyNzU0ZGZjNDAxNTJiMGVkMjQ4MzZhYzc1YjhmOTY5
ODQzOTliYi4uNTgxZjRjYmQ5YTc2OGI5YWIyYTgzOTIxY2YyNGQzNTI0YmM4NTcxOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmgKQEAgLTg3LDcgKzg3LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewog
ICAgIG1hY3JvKFN0cnVjdHVyZV9jbGFzc0luZm8sIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0
KCkpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVfZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU6Omdsb2Jh
bE9iamVjdE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX3Byb3RvdHlwZSwgU3RydWN0
dXJlOjpwcm90b3R5cGVPZmZzZXQoKSkgXAotICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJ
RCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKQorICAgIG1hY3JvKFN0cnVjdHVyZV9z
dHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSBcCisgICAgbWFjcm8o
U3ltYm9sX3ByaXZhdGVOYW1lLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSkKIAogI2Rl
ZmluZSBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhE
aXJlY3RBcmd1bWVudHNfc3RvcmFnZSwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCks
IHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA2MjcyOGM3NDZlZjkxZDc0Yjc4MjliYjNmOWE0NGM2
ZDdmNjFkN2IzLi5iNDkzZjMwMjdlODJjZmNjZTljM2NjZjQ4MmMxNTU4NjFkNjhiOTQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMTgs
NiArMTE4LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUp
CiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBD
aGVja05vdEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFN0cmluZ0NoYXJD
b2RlQXQ6CiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICBjYXNlIFJlYWxs
b2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CkBAIC00MTUsNiArNDE2LDcgQEAgQ2FwYWJpbGl0eUxldmVs
IGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAgIGNhc2UgS25vd25TdHJp
bmdVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAg
ICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgICAgICBjYXNl
IFN5bWJvbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNlOgogICAgICAg
ICAgICAgICAgIGNhc2UgTm90Q2VsbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE90aGVyVXNl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExW
TS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApp
bmRleCA1MmRlYTVlYzIwOTViOTNmZGYxYjg5NmZkY2ZiNzFjMjRkMTU3NmU0Li40OWIwYmY3ODVh
ZmI3OGE1ZTdkMGRkNDBlYThjY2NmY2I5NWRkMTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNTMyLDYgKzUzMiw5IEBAIGNsYXNz
IExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgICAgICAg
ICBjb21waWxlQ2hlY2tCYWRDZWxsKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDaGVja0lkZW50OgorICAgICAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQoKTsKKyAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgICAgICAgICBjb21w
aWxlR2V0RXhlY3V0YWJsZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMDI5LDYgKzIwMzIs
MjAgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGUoVERaRmFpbHVy
ZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5pc1plcm82NChsb3dKU1ZhbHVlKG1fbm9kZS0+
Y2hpbGQxKCkpKSk7CiAgICAgfQogCisgICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudCgpCisgICAg
eworICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ub2RlLT51aWRPcGVyYW5kKCk7
CisgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgIExWYWx1ZSBzeW1i
b2wgPSBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgc3Ry
aW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFt
ZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkQ29uc3RhbnRDYWNoZSwgc3ltYm9sLCBtX25v
ZGUtPmNoaWxkMSgpLm5vZGUoKSwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29u
c3RJbnRQdHIodWlkKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTFZhbHVlIHN0
cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZh
bHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ192
YWx1ZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkQ29uc3RhbnRDYWNoZSwgc3RyaW5nLCBt
X25vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQu
Y29uc3RJbnRQdHIodWlkKSkpOworICAgICAgICB9CisgICAgfQorCiAgICAgdm9pZCBjb21waWxl
R2V0RXhlY3V0YWJsZSgpCiAgICAgewogICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9u
b2RlLT5jaGlsZDEoKSk7CkBAIC03MDI2LDcgKzcwNDMsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xM
Vk0gewogICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChlZGdlLCBzdHJpbmcsIHN0cmluZ0lt
cGwpOwogICAgICAgICByZXR1cm4gc3RyaW5nSW1wbDsKICAgICB9Ci0gICAgCisKKyAgICBMVmFs
dWUgbG93U3ltYm9sKEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0
b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQorICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRCht
b2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9
PSBTeW1ib2xVc2UpOworCisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UsIG1v
ZGUpOworICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSwgcmVzdWx0KTsKKyAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBMVmFsdWUgbG93Tm9uTnVsbE9iamVjdChFZGdlIGVk
Z2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxh
dGlvbikKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gT2JqZWN0VXNlKTsKQEAgLTc0
MjMsNiArNzQ0OSw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBTdHJp
bmdJZGVudFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50KGVkZ2UpOwogICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICAgICAgc3Bl
Y3VsYXRlU3ltYm9sKGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3Ry
aW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0KGVkZ2UpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC03NTE5LDcgKzc1NDgsMTYgQEAgY2xhc3MgTG93ZXJERkdU
b0xMVk0gewogICAgICAgICAgICAgbV9vdXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0
cnVjdHVyZUlEKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIodm0oKS5zdHJpbmdTdHJ1
Y3R1cmUtPmlkKCkpKTsKICAgICB9Ci0gICAgCisKKyAgICBMVmFsdWUgaXNOb3RTeW1ib2woTFZh
bHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKKyAgICB7CisgICAg
ICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5T
cGVjU3ltYm9sKSkKKyAgICAgICAgICAgIHJldHVybiBwcm92ZW47CisgICAgICAgIHJldHVybiBt
X291dC5ub3RFcXVhbCgKKyAgICAgICAgICAgIG1fb3V0LmxvYWQzMihjZWxsLCBtX2hlYXBzLkpT
Q2VsbF9zdHJ1Y3R1cmVJRCksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHZtKCkuc3lt
Ym9sU3RydWN0dXJlLT5pZCgpKSk7CisgICAgfQorCiAgICAgTFZhbHVlIGlzQXJyYXlUeXBlKExW
YWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlNb2RlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChh
cnJheU1vZGUudHlwZSgpKSB7CkBAIC03NzQyLDcgKzc3ODAsMTcgQEAgY2xhc3MgTG93ZXJERkdU
b0xMVk0gewogICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCiAgICAg
ICAgICAgICBtX291dC5ub3RFcXVhbChzdHJ1Y3R1cmVJRCwgd2Vha1N0cnVjdHVyZUlEKHN0cmlu
Z09iamVjdFN0cnVjdHVyZSkpKTsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIHNwZWN1bGF0ZVN5
bWJvbChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hF
Q0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjU3ltYm9sIHwgflNwZWNDZWxsLCBpc05v
dFN5bWJvbChjZWxsKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSBl
ZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIGxvd0NlbGwoZWRnZSkp
OworICAgIH0KKwogICAgIHZvaWQgc3BlY3VsYXRlTm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIExW
YWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNl
bGwpLCBlZGdlLCBTcGVjT2JqZWN0LCBpc05vdE9iamVjdChjZWxsKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKaW5kZXggOWFmMzMyZWI3OGUxODlhZTZhNTNiMjIzNTBhZjc3YjVmOWQ3ZWIy
Yi4uYzc4YjRjMTk1NmJmNzA4ZDkxY2MyYTE3MzcxOTFlZjNjMjRlMDI1YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcApAQCAtNjYwLDYgKzY2MCwxMCBAQCBDb21waWxhdGlvblJlc3VsdCBK
SVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKIAogICAgIG1f
Y29kZUJsb2NrLT5zZXROdW1iZXJPZkJ5VmFsSW5mb3MobV9ieVZhbENvbXBpbGF0aW9uSW5mby5z
aXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2J5VmFsQ29tcGlsYXRpb25J
bmZvLnNpemUoKTsgKytpKSB7CisgICAgICAgIFBhdGNoYWJsZUp1bXAgcGF0Y2hhYmxlTm90SW5k
ZXhKdW1wID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5ub3RJbmRleEp1bXA7CisgICAgICAg
IENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wID0gQ29kZUxvY2F0aW9uSnVtcCgpOworICAg
ICAgICBpZiAoSnVtcChwYXRjaGFibGVOb3RJbmRleEp1bXApLmlzU2V0KCkpCisgICAgICAgICAg
ICBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2Yo
cGF0Y2hhYmxlTm90SW5kZXhKdW1wKSk7CiAgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlw
ZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENv
bXBpbGF0aW9uSW5mb1tpXS5iYWRUeXBlSnVtcCkpOwogICAgICAgICBDb2RlTG9jYXRpb25MYWJl
bCBkb25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25J
bmZvW2ldLmRvbmVUYXJnZXQpOwogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFRh
cmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5z
bG93UGF0aFRhcmdldCk7CkBAIC02NjcsNiArNjcxLDcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklU
Ojpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgICAgIAog
ICAgICAgICBtX2NvZGVCbG9jay0+YnlWYWxJbmZvKGkpID0gQnlWYWxJbmZvKAogICAgICAgICAg
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5ieXRlY29kZUluZGV4LAorICAgICAgICAgICAg
bm90SW5kZXhKdW1wLAogICAgICAgICAgICAgYmFkVHlwZUp1bXAsCiAgICAgICAgICAgICBtX2J5
VmFsQ29tcGlsYXRpb25JbmZvW2ldLmFycmF5TW9kZSwKICAgICAgICAgICAgIGRpZmZlcmVuY2VC
ZXR3ZWVuQ29kZVB0cihiYWRUeXBlSnVtcCwgZG9uZVRhcmdldCksCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuaAppbmRleCAwMjEzOTYzNGIxZGZlZDYxMDU2MmRlY2I1NzhkYjM4ZDZiMTYwMzRlLi5kZWNm
NzllYTJiNGEzNmZlYjUwYWY0ZDViNDYzMDNmODQxNmYyMDk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgKQEAgLTE0OSw4ICsxNDksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBzdHJ1Y3QgQnlW
YWxDb21waWxhdGlvbkluZm8gewogICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbygpIHsgfQog
ICAgICAgICAKLSAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0ZWNvZGVJ
bmRleCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5
TW9kZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQorICAgICAg
ICBCeVZhbENvbXBpbGF0aW9uSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNyb0Fzc2Vt
Ymxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXAsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFi
bGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBNYWNyb0Fzc2VtYmxl
cjo6TGFiZWwgZG9uZVRhcmdldCkKICAgICAgICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29k
ZUluZGV4KQorICAgICAgICAgICAgLCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1wKQogICAgICAg
ICAgICAgLCBiYWRUeXBlSnVtcChiYWRUeXBlSnVtcCkKICAgICAgICAgICAgICwgYXJyYXlNb2Rl
KGFycmF5TW9kZSkKICAgICAgICAgICAgICwgZG9uZVRhcmdldChkb25lVGFyZ2V0KQpAQCAtMTU4
LDYgKzE1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hh
YmxlSnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVK
dW1wIGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldDsKQEAgLTIwNCw2ICsyMDYsMTMgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChi
eVZhbEluZm8sIHJldHVybkFkZHJlc3MsIGFycmF5TW9kZSk7CiAgICAgICAgIH0KIAorICAgICAg
ICBzdGF0aWMgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoVk0qIHZtLCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgICAgICB7Cisg
ICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOworICAgICAgICAgICAgaml0Lm1fYnl0
ZWNvZGVPZmZzZXQgPSBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisgICAgICAgICAgICBqaXQu
cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChieVZhbEluZm8sIHJldHVybkFkZHJl
c3MsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMgdm9pZCBjb21w
aWxlUHV0QnlWYWwoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZh
bEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSklUQXJyYXlNb2RlIGFycmF5
TW9kZSkKICAgICAgICAgewogICAgICAgICAgICAgSklUIGppdCh2bSwgY29kZUJsb2NrKTsKQEAg
LTI0Niw2ICsyNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ29tcGlsYXRpb25SZXN1
bHQgcHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQpOwogICAgICAgICAKICAgICAg
ICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQ
dHIsIEpJVEFycmF5TW9kZSk7CisgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdp
dGhDYWNoZWRJZChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBjb25zdCBJZGVudGlmaWVy
Jik7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVQdXRCeVZhbChCeVZhbEluZm8qLCBSZXR1
cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwogCiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBp
bGVIYXNJbmRleGVkUHJvcGVydHkoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgSklUQXJy
YXlNb2RlKTsKQEAgLTM3MSw3ICszODEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSnVt
cExpc3QgZW1pdEFycmF5U3RvcmFnZVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVt
cCYgYmFkVHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRJbnRUeXBlZEFycmF5UHV0QnlWYWwo
SW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBUeXBlZEFycmF5VHlwZSk7CiAg
ICAgICAgIEp1bXBMaXN0IGVtaXRGbG9hdFR5cGVkQXJyYXlQdXRCeVZhbChJbnN0cnVjdGlvbios
IFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlUeXBlKTsKLSAgICAgICAgCisKKyAg
ICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1
Y3Rpb24qLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3Qm
IHNsb3dDYXNlcyk7CisKICAgICAgICAgZW51bSBGaW5hbE9iamVjdE1vZGUgeyBNYXlCZUZpbmFs
LCBLbm93bk5vdEZpbmFsIH07CiAKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEp1bXAg
YnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24sIFQgbGVmdEhhbmRTaWRlLCBTdHJ1
Y3R1cmUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDkw
YjUzMjE1YWIwNGM3NDMzOGFkYmE4MzYzMDQwYzM4NGRmZmEzMWUuLmRhZjJhZmYzN2MwMDAyNWY4
ODZiZDMxMGM0NDM3ZGMwN2UzNTA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcApAQCAtMTEwOCw3ICsxMTA4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX2lu
ZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0
aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFk
VHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5
VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFk
VHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4
ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuY3BwCmluZGV4IDhhNjk3NWMxNmQ2Yjk2ZWNhMWYyOTYzZDRmNTkxMmJmMDU2
ODk2ZTUuLjZmMGQ4YTkwNzMxMWQ2MjRhNjU0ZDVkNjk1YzQ5NTRjOGU3NTJjYjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMTU1NSw3ICsxNTU1
LDIzIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRp
bWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKCiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgCisKKyAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkgJiYgKHN1YnNjcmlw
dC5pc1N5bWJvbCgpIHx8IHN1YnNjcmlwdC5pc1N0cmluZygpKSkgeworICAgICAgICBjb25zdCBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGV4ZWMpOwor
CisgICAgICAgIGlmICghc3Vic2NyaXB0LmlzU3RyaW5nKCkgfHwgIXBhcnNlSW5kZXgocHJvcGVy
dHlOYW1lKSkgeworICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5s
b2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKKyAgICAgICAgICAgIEFTU0VSVChieXRlY29kZU9m
ZnNldCk7CisgICAgICAgICAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGV4ZWMtPmNvZGVCbG9j
aygpLT5nZXRCeVZhbEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsKKyAgICAgICAgICAgIEFTU0VS
VCghYnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKKyAgICAgICAgICAgIEpJVDo6Y29tcGlsZUdldEJ5
VmFsV2l0aENhY2hlZElkKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVy
bkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAg
fQorCisgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSk7CisgICAgICAgIGJvb2wg
aGFzUmVzdWx0ID0gYmFzZVZhbHVlLmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGhhc1Jlc3VsdCA/IHNsb3Qu
Z2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSA6IGpzVW5kZWZpbmVkKCkpOworICAgIH0KKwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQs
IGFycmF5UHJvZmlsZSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDRlZjA2ZDkyMTNhMmIxZGJm
ZmJhNGM3YzMzNGQyZjZmMWM0NzkxN2UuLmU4MmQ4YmI1YzczNTQyZTg4YzBhNmMyNjQwYTkyMzg1
MDU5ZGJjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwCkBAIC0xMDAsOCArMTAwLDE1IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92
YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBBcnJheVByb2ZpbGUqIHBy
b2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCiAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMSk7Ci0g
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CiAKKyAgICBl
bWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOworCisgICAgLy8gRklYTUU6
IFdlIG5lZWQgdG8gaW1wbGVtZW50IHBhdGNoYWJsZUJyYW5jaDY0LgorICAgIEp1bXAgaXNJbmRl
eCA9IGVtaXRKdW1wSWZJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKKyAgICBQYXRjaGFibGVKdW1w
IG5vdEluZGV4ID0gcGF0Y2hhYmxlSnVtcCgpOworICAgIGFkZFNsb3dDYXNlKG5vdEluZGV4KTsK
KworICAgIGlzSW5kZXgubGluayh0aGlzKTsKICAgICAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGlu
Y29ycmVjdCAtIHdlJ3JlIHplcm8tZXh0ZW5kaW5nIGFuIGludDMyLiAgT24gdGhlIGhvdCBwYXRo
IHRoaXMgZG9lc24ndCBtYXR0ZXIuCiAgICAgLy8gV2UgY2hlY2sgdGhlIHZhbHVlIGFzIGlmIGl0
IHdhcyBhIHVpbnQzMiBhZ2FpbnN0IHRoZSBtX3ZlY3Rvckxlbmd0aCAtIHdoaWNoIHdpbGwgYWx3
YXlzIGZhaWwgaWYKICAgICAvLyBudW1iZXIgd2FzIHNpZ25lZCBzaW5jZSBtX3ZlY3Rvckxlbmd0
aCBpcyBhbHdheXMgbGVzcyB0aGFuIGludG1heCAoc2luY2UgdGhlIHRvdGFsIGFsbG9jYXRpb24K
QEAgLTExMCw3ICsxMTcsNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgLy8gZXh0ZW5kaW5nIHNpbmNlIGl0IG1ha2Vz
IGl0IGVhc2llciB0byByZS10YWcgdGhlIHZhbHVlIGluIHRoZSBzbG93IGNhc2UuCiAgICAgemVy
b0V4dGVuZDMyVG9QdHIocmVnVDEsIHJlZ1QxKTsKIAotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEpTQ2VsbChyZWdUMCwgYmFzZSk7CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxs
KHJlZ1QwLCByZWdUMiwgcHJvZmlsZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5n
U2hhcGVNYXNrKSwgcmVnVDIpOwogCkBAIC0xNTAsNyArMTU2LDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAg
ICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbklu
Zm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxD
b21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZz
ZXQsIG5vdEluZGV4LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3Qg
SklUOjplbWl0RG91YmxlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUp
CkBAIC0xOTUsNiArMjAxLDM5IEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0QXJyYXlTdG9yYWdl
TG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCiAgICAgcmV0dXJuIHNs
b3dDYXNlczsKIH0KIAorSklUR2V0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZhbFdpdGhD
YWNoZWRJZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEp1bXBMaXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMp
Cit7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisKKyAg
ICBzbG93Q2FzZXMuYXBwZW5kKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDEpKTsKKyAgICBpZiAo
cHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFu
Y2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURP
ZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRy
KEFkZHJlc3MocmVnVDEsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDEpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5v
dEVxdWFsLCBBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3Zt
LT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1Qx
LCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDEpOworICAgICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDEpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hUZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMSwgU3RyaW5nSW1wbDo6ZmxhZ3NP
ZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAg
ICB9CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1QxLCBUcnVz
dGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJh
dG9yIGdlbigKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNl
dCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdz
KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBEb250U3BpbGwpOworICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKCp0aGlzKTsKKworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAg
IExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5s
aW5rKHRoaXMpOworCisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwg
b3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMCwgcHJv
cGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJl
Z2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICByZXR1cm4g
Z2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAt
MjAyLDggKzI0MSw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgaW50IHByb3BlcnR5
ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHBy
b2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCi0gICAg
bGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93
Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgSnVtcCBub25DZWxs
ID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawog
ICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCAKQEAgLTI5OSw3
ICszMzgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0g
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9i
eXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBh
dGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogCiB9CiAKQEAgLTk5OSw2ICsx
MDM4LDM1IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyogYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkCiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxp
bmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdl
dEJ5VmFsR2VuZXJpYykpOwogfQogCit2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdp
dGhDYWNoZWRJZChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OworCisgICAgSnVtcExpc3QgZG9uZUNhc2Vz
OworICAgIEp1bXBMaXN0IHNsb3dDYXNlczsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2Vu
ID0gZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKGN1cnJlbnRJbnN0cnVjdGlvbiwgcHJvcGVydHlO
YW1lLCBkb25lQ2FzZXMsIHNsb3dDYXNlcyk7CisKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCpt
X3ZtLCAqdGhpcywgbV9jb2RlQmxvY2spOworICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvd0Nhc2Vz
LCBDb2RlTG9jYXRpb25MYWJlbChNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUZyb21FeGVj
dXRhYmxlQWRkcmVzcyhyZXR1cm5BZGRyZXNzLnZhbHVlKCkpKS5sYWJlbEF0T2Zmc2V0KGJ5VmFs
SW5mby0+cmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpKTsKKyAgICBwYXRjaEJ1ZmZlci5saW5rKGRv
bmVDYXNlcywgYnlWYWxJbmZvLT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+
YmFkVHlwZUp1bXBUb0RvbmUpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNhbGxTaXRlIDogbV9j
YWxscykgeworICAgICAgICBpZiAoY2FsbFNpdGUudG8pCisgICAgICAgICAgICBwYXRjaEJ1ZmZl
ci5saW5rKGNhbGxTaXRlLmZyb20sIEZ1bmN0aW9uUHRyKGNhbGxTaXRlLnRvKSk7CisgICAgfQor
ICAgIGdlbi5maW5hbGl6ZShwYXRjaEJ1ZmZlcik7CisKKyAgICBieVZhbEluZm8tPnN0dWJSb3V0
aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNo
QnVmZmVyLAorICAgICAgICAoIkJhc2VsaW5lIGdldF9ieV92YWwgd2l0aCBjYWNoZWQgcHJvcGVy
dHkgbmFtZSAnJXMnIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCBwcm9wZXJ0eU5hbWUu
aW1wbCgpLT51dGY4KCkuZGF0YSgpLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJl
dHVybkFkZHJlc3MudmFsdWUoKSkpOworICAgIGJ5VmFsSW5mby0+Y2FjaGVkSWQgPSBwcm9wZXJ0
eU5hbWU7CisKKyAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIobV9jb2RlQmxvY2spOwor
ICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGJ5VmFsSW5mby0+bm90SW5kZXhKdW1wLCBDb2RlTG9j
YXRpb25MYWJlbChieVZhbEluZm8tPnN0dWJSb3V0aW5lLT5jb2RlKCkuY29kZSgpKSk7CisgICAg
cmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0
aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYykpOworfQorCiB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVQdXRCeVZhbChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciBy
ZXR1cm5BZGRyZXNzLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlKQogewogICAgIEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24gPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4o
KSArIGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4IDYwOWNhMTM4ODIyN2Ri
NWJkYTUzOTI3NTMwM2RhZGQyZDhiMWNlYmMuLjMxNWZjZGFlZGNlZTA1ZDk2YTI2ZGZhNTY4Mzgw
NWY1OGIxYWE5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtMTUyLDggKzE1Miw5IEBAIHZvaWQgSklUOjplbWl0
X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAg
ICBlbWl0TG9hZDIoYmFzZSwgcmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QyKTsK
ICAgICAKLSAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDMsIFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpJbnQzMlRhZykpKTsKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0Nl
bGwoYmFzZSwgcmVnVDEpOworICAgIFBhdGNoYWJsZUp1bXAgbm90SW5kZXggPSBwYXRjaGFibGVC
cmFuY2gzMihOb3RFcXVhbCwgcmVnVDMsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZykp
OworICAgIGFkZFNsb3dDYXNlKG5vdEluZGV4KTsKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRl
V2l0aENlbGwocmVnVDAsIHJlZ1QxLCBwcm9maWxlKTsKICAgICBhbmQzMihUcnVzdGVkSW1tMzIo
SW5kZXhpbmdTaGFwZU1hc2spLCByZWdUMSk7CiAKQEAgLTE5Miw3ICsxOTMsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSgpOwogICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCBy
ZWdUMCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21w
aWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAg
IG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0
ZWNvZGVPZmZzZXQsIG5vdEluZGV4LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIEpJVDo6
SnVtcExpc3QgSklUOjplbWl0Q29udGlndW91c0xvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVK
dW1wJiBiYWRUeXBlLCBJbmRleGluZ1R5cGUgZXhwZWN0ZWRTaGFwZSkKQEAgLTIzNiw3ICsyMzcs
NDMgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2FkKEluc3RydWN0aW9u
KiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICAKICAgICByZXR1cm4gc2xvd0Nhc2VzOwog
fQotICAgIAorCitKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hl
ZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykKK3sK
KyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKworICAgIC8v
IGJhc2U6IHRhZyhyZWdUMSksIHBheWxvYWQocmVnVDApCisgICAgLy8gcHJvcGVydHk6IHRhZyhy
ZWdUMyksIHBheWxvYWQocmVnVDIpCisKKyAgICBzbG93Q2FzZXMuYXBwZW5kKGVtaXRKdW1wSWZO
b3RKU0NlbGwocmVnVDMpKTsKKyAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3Mo
cmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVy
ZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIFN5bWJvbDo6b2Zmc2V0
T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6
OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwg
cmVnVDIpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVn
VDIpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0MzIoWmVybywgQWRkcmVz
cyhyZWdUMiwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdJ
bXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAgICB9CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFu
Y2hQdHIoTm90RXF1YWwsIHJlZ1QyLCBUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkp
KSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKKyAgICAgICAgbV9jb2RlQmxvY2ss
IENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0
ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzKHJl
Z1QxLCByZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMp
OworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisgICAgTGFiZWwgY29sZFBhdGhC
ZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgpLmxpbmsodGhpcyk7CisKKyAg
ICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlLCBvcGVyYXRpb25HZXRCeUlk
T3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QxLCByZWdUMCwgcHJvcGVydHlOYW1l
LmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJlZ2luLCBjYWxs
KTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICByZXR1cm4gZ2VuOworfQor
CiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAg
IGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAtMjQ0LDggKzI4
MSw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCi0gICAgbGlua1Nsb3dD
YXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93Q2FzZUlmTm90
SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBsaW5rU2xvd0Nhc2Uo
aXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAKICAgICBKdW1wIG5vbkNlbGwgPSBqdW1w
KCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNrCkBAIC0zMTQs
NyArMzUxLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAot
ICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1f
Ynl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBQ
YXRjaGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklUOjpKdW1wTGlz
dCBKSVQ6OmVtaXRHZW5lcmljQ29udGlndW91c1B1dEJ5VmFsKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24sIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIEluZGV4aW5nVHlwZSBpbmRleGlu
Z1NoYXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9s
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCBlNTc5MGQ3
ODcyMjZiZWE3NjAyNGM5ZDFkNjZhNjc2MGY2NGRlNWEyLi44M2Y1ZGUyNDg1MmJjMzc4ZWUwYTc3
MDM5ZjQ2MzE4MjVmZGRkYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wu
aApAQCAtNzksNiArNzksOCBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25z
dDsKICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7CiAKKyAgICBzdGF0aWMg
c2l6ZV90IG9mZnNldE9mUHJpdmF0ZU5hbWUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3lt
Ym9sLCBtX3ByaXZhdGVOYW1lKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIHZvaWQgZGVz
dHJveShKU0NlbGwqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258246</attachid>
            <date>2015-08-04 17:51:12 -0700</date>
            <delta_ts>2015-08-04 19:50:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150804175105.patch</filename>
            <type>text/plain</type>
            <size>50431</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MzllNTViYTc1MTg0NTIwNDA5MjVmODQ5N2Y2MDI4MzFhYzhiOGExLi5mMDM5ZDhhZTk2OTRjNTdj
OWU0ZDJmZWZiNzljZjhmZDJjOWIxNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NSBAQAorMjAxNS0wOC0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0QnlWYWxJbmZv
TWFwKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZyb21MTEludCk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAg
ICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5l
U3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29u
c3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
Ojpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVw
UGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2RlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1VpZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVj
dXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpw
cmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlND
OjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAg
ICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAg
ICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9MTFZNOjpjb21waWxlQ2hlY2tJZGVudCk6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvTExWTTo6bG93U3ltYm9sKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9MTFZNOjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0xMVk06OmlzTm90U3ltYm9sKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9MTFZNOjpzcGVjdWxhdGVTeW1ib2wpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgIChKU0M6OkJ5VmFsQ29tcGlsYXRpb25JbmZvOjpCeVZhbENvbXBpbGF0aW9uSW5mbyk6Cisg
ICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAg
KiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9oYXNfaW5k
ZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVk
SWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVH
ZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1
dF9ieV92YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sLmg6CisKIDIwMTUtMDgtMDQgIEJy
ZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVXBkYXRl
IEFwcGxlIFdpbmRvd3MgYnVpbGQgZm9yIFZTMjAxNQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5VmFsSW5mby5oCmluZGV4IGQ5ODg1MTYxMzI1OGE3MWI5ZjA0YmE0OTA3M2Y0NDAz
M2U1NzEwODMuLjE5YWQ3MTA0NjhhZDI4MDkxNDNmMzczZGNkN2Y5YWVkNTQ3NGQzYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTI2LDE2ICsyNiwx
NyBAQAogI2lmbmRlZiBCeVZhbEluZm9faAogI2RlZmluZSBCeVZhbEluZm9faAogCi0jaWYgRU5B
QkxFKEpJVCkKLQogI2luY2x1ZGUgIkNsYXNzSW5mby5oIgogI2luY2x1ZGUgIkNvZGVMb2NhdGlv
bi5oIgorI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNsdWRlICJJbmRleGluZ1R5cGUuaCIK
ICNpbmNsdWRlICJKSVRTdHViUm91dGluZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIAorI2lmIEVOQUJMRShKSVQpCisKIGVudW0gSklUQXJyYXlNb2RlIHsK
ICAgICBKSVRJbnQzMiwKICAgICBKSVREb3VibGUsCkBAIC0yMDIsOCArMjAzLDkgQEAgaW5saW5l
IEpJVEFycmF5TW9kZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiBzdHJ1Y3QgQnlWYWxJbmZvIHsKICAgICBCeVZhbEluZm8oKSB7IH0KICAgICAKLSAgICBC
eVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBl
SnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZSwg
aW50MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkKKyAgICBCeVZhbEluZm8odW5zaWduZWQg
Ynl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAsIENvZGVMb2NhdGlv
bkp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIGludDE2X3QgYmFkVHlw
ZUp1bXBUb0RvbmUsIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgIDog
Ynl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQorICAgICAgICAsIG5vdEluZGV4SnVtcChub3RJ
bmRleEp1bXApCiAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICwg
YXJyYXlNb2RlKGFycmF5TW9kZSkKICAgICAgICAgLCBiYWRUeXBlSnVtcFRvRG9uZShiYWRUeXBl
SnVtcFRvRG9uZSkKQEAgLTIxMSwxNCArMjEzLDE2IEBAIHN0cnVjdCBCeVZhbEluZm8gewogICAg
ICAgICAsIHNsb3dQYXRoQ291bnQoMCkKICAgICB7CiAgICAgfQotICAgIAorCiAgICAgdW5zaWdu
ZWQgYnl0ZWNvZGVJbmRleDsKKyAgICBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcDsKICAg
ICBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wOwogICAgIEpJVEFycmF5TW9kZSBhcnJheU1v
ZGU7IC8vIFRoZSBhcnJheSBtb2RlIHRoYXQgd2FzIGJha2VkIGludG8gdGhlIGlubGluZSBKSVQg
Y29kZS4KICAgICBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lOwogICAgIGludDE2X3QgcmV0dXJu
QWRkcmVzc1RvU2xvd1BhdGg7CiAgICAgdW5zaWduZWQgc2xvd1BhdGhDb3VudDsKICAgICBSZWZQ
dHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOworICAgIElkZW50aWZpZXIgY2FjaGVkSWQ7
CiB9OwogCiBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZhbElu
Zm8qIGluZm8pCkBAIC0yMjYsOSArMjMwLDE1IEBAIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbElu
Zm9CeXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5mbykKICAgICByZXR1cm4gaW5mby0+Ynl0ZWNv
ZGVJbmRleDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8Q29kZU9y
aWdpbiwgQnlWYWxJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFw
OworCisjZWxzZSAvLyBFTkFCTEUoSklUKQorCit0eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4g
QnlWYWxJbmZvTWFwOwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorfSAvLyBuYW1lc3BhY2Ug
SlNDCisKICNlbmRpZiAvLyBCeVZhbEluZm9faAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDlmOTQ4Njg5NzBiZjA1ODAzNjU4YzNjZTg1ZmE4
YWFjOWM2OTQ1MTcuLjJkZmU4ZDg4OWE5YzJiOTUzNDU2MDAwZjAxMmM3OGU4MWIyOWJlMmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0yNjgz
LDYgKzI2ODMsMjIgQEAgdm9pZCBDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb01hcChDYWxsTGlu
a0luZm9NYXAmIHJlc3VsdCkKICAgICBnZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCByZXN1bHQp
OwogfQogCit2b2lkIENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSklUKQorICAg
IGZvciAoYXV0byYgYnlWYWxJbmZvIDogbV9ieVZhbEluZm9zKQorICAgICAgICByZXN1bHQuYWRk
KENvZGVPcmlnaW4oYnlWYWxJbmZvLmJ5dGVjb2RlSW5kZXgpLCAmYnlWYWxJbmZvKTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2RlQmxvY2s6
OmdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIGdldEJ5VmFsSW5mb01hcChsb2NrZXIsIHJl
c3VsdCk7Cit9CisKICNpZiBFTkFCTEUoSklUKQogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9j
azo6YWRkU3R1YkluZm8oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5oCmluZGV4IDZjM2ExMTVmNzc1ZWVjM2FiZDIyMDJmZWZhNTI2ZGY4MGEzZmM5MzguLjJh
MzRlMmQ2MmM5YmVlNzQ1YWQ0NWU1ZjRiYWVlYmM5Y2IyNTEyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTIwMCw2ICsyMDAsOSBAQCBjbGFzcyBD
b2RlQmxvY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29kZUJsb2NrPiwgcHVibGlj
IFVuY29uZGl0aW9uYWxGaQogICAgIAogICAgIHZvaWQgZ2V0Q2FsbExpbmtJbmZvTWFwKGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlua0luZm9NYXAmIHJlc3VsdCk7CiAgICAgdm9p
ZCBnZXRDYWxsTGlua0luZm9NYXAoQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOworCisgICAgdm9p
ZCBnZXRCeVZhbEluZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIEJ5VmFsSW5mb01h
cCYgcmVzdWx0KTsKKyAgICB2b2lkIGdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3Vs
dCk7CiAgICAgCiAjaWYgRU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1
YkluZm8oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRC
eUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcAppbmRleCAxZDk3YzlmZmRiYTZkOTRlMzVjYjY3Y2VkM2RiZWVhNTBiYzcxOWVlLi4w
YjU3YjNlZjhkYzRhZWRjMDE3NjQ1ZWM4MGRiYjllNzkxNTY1MGQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC03Niw2ICs3Niwx
MCBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJs
b2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZAogICAgIGlmIChpbnN0cnVjdGlvblswXS51Lm9w
Y29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9hcnJheV9sZW5ndGgpKQogICAgICAgICBy
ZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCBmYWxzZSk7CiAKKyAgICAvLyBPbmx5
IHRpZXJzIGhpZ2hlciB0aGFuIExMSW50IHVzZSBHZXRCeUlkIElDIGZvciBvcF9nZXRfYnlfdmFs
LgorICAgIGlmIChpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9w
X2dldF9ieV92YWwpKQorICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9u
LCBmYWxzZSk7CisKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGluc3RydWN0aW9uWzRdLnUu
c3RydWN0dXJlLmdldCgpOwogICAgIGlmICghc3RydWN0dXJlKQogICAgICAgICByZXR1cm4gR2V0
QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXgg
MzczNGM3NmQxZWU4N2E4NGEwZTY2ZDU1Njc0ZDEwYjJhZDJhYTA1NC4uMjI5MDg3ZGNjNDM2NDM5
Nzk1NDgwZTNkNWMxMjk2MDNhMTZjMWI3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjE2Myw2
ICsyMTYzLDMyIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46
OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorICAgIGNhc2UgQ2hlY2tJZGVudDogeworICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1
ZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCog
dWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICBBU1NFUlQodWlkLT5pc1N5bWJvbCgp
ID8gISh2YWx1ZS5tX3R5cGUgJiB+U3BlY1N5bWJvbCkgOiAhKHZhbHVlLm1fdHlwZSAmIH5TcGVj
U3RyaW5nSWRlbnQpKTsgLy8gRWRnZSBmaWx0ZXJpbmcgc2hvdWxkIGhhdmUgYWxyZWFkeSBlbnN1
cmVkIHRoaXMuCisKKyAgICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50ID0gdmFsdWUudmFsdWUo
KTsKKyAgICAgICAgaWYgKGNoaWxkQ29uc3RhbnQpIHsKKyAgICAgICAgICAgIGlmICh1aWQtPmlz
U3ltYm9sKCkpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoY2hpbGRDb25zdGFudC5pc1N5bWJv
bCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXNTeW1ib2woY2hpbGRDb25zdGFudCktPnByaXZh
dGVOYW1lKCkudWlkKCkgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0
Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJU
KGNoaWxkQ29uc3RhbnQuaXNTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGFzU3RyaW5n
KGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUltcGwoKSA9PSB1aWQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisKKyAgICAgICAgZmlsdGVyKHZhbHVlLCB1aWQtPmlzU3ltYm9sKCkgPyBTcGVjU3ltYm9sIDog
U3BlY1N0cmluZ0lkZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBDaGVj
a0luQm91bmRzOiB7CiAgICAgICAgIEpTVmFsdWUgbGVmdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQx
KCkpLnZhbHVlKCk7CiAgICAgICAgIEpTVmFsdWUgcmlnaHQgPSBmb3JOb2RlKG5vZGUtPmNoaWxk
MigpKS52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAppbmRleCA1NjQyMmIxOGEyNDY1MDg2ZjgwNjk0MjgwZGEzNjc2MDAyZTZjNWU0
Li45ZGMzMzRhM2ZlYmZlYjY1M2IwYWY3N2E1MWU4NjY3NGQ5NDkxMjM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtOTY5LDYgKzk2
OSw3IEBAIGNsYXNzIEJ5dGVDb2RlUGFyc2VyIHsKICAgICAgICAgCiAgICAgICAgIENhbGxMaW5r
SW5mb01hcCBtX2NhbGxMaW5rSW5mb3M7CiAgICAgICAgIFN0dWJJbmZvTWFwIG1fc3R1YkluZm9z
OworICAgICAgICBCeVZhbEluZm9NYXAgbV9ieVZhbEluZm9zOwogICAgICAgICAKICAgICAgICAg
Ly8gRGlkIHdlIHNlZSBhbnkgcmV0dXJucz8gV2UgbmVlZCB0byBoYW5kbGUgdGhlICh1bmNvbW1v
biBidXQgbmVjZXNzYXJ5KQogICAgICAgICAvLyBjYXNlIHdoZXJlIGEgcHJvY2VkdXJlIHRoYXQg
ZG9lcyBub3QgcmV0dXJuIHdhcyBpbmxpbmVkLgpAQCAtMzM5OSwxMCArMzQwMCwyNyBAQCBib29s
IEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAg
U3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb25XaXRob3V0T1NSRXhpdCgp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBBcnJh
eU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFy
cmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBn
ZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKLSAg
ICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFy
cmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOwot
ICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kKSwgZ2V0QnlWYWwpOworICAgICAgICAgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBt
X2lubGluZVN0YWNrVG9wLT5tX2J5VmFsSW5mb3MuZ2V0KENvZGVPcmlnaW4oY3VycmVudENvZGVP
cmlnaW4oKS5ieXRlY29kZUluZGV4KSk7CisgICAgICAgICAgICAvLyBGSVhNRTogV2hlbiB0aGUg
Ynl0ZWNvZGUgaXMgbm90IGNvbXBpbGVkIGluIHRoZSBiYXNlbGluZSBKSVQsIGJ5VmFsSW5mbyBi
ZWNvbWVzIG51bGwuCisgICAgICAgICAgICAvLyBBdCB0aGF0IHRpbWUsIHRoZXJlIGlzIG5vIGlu
Zm9ybWF0aW9uLgorICAgICAgICAgICAgaWYgKGJ5VmFsSW5mbyAmJiAhYnlWYWxJbmZvLT5jYWNo
ZWRJZC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1i
ZXIgPSBtX2dyYXBoLmlkZW50aWZpZXJzKCkuZW5zdXJlKGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1w
bCgpKTsKKyAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5p
ZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOworCisgICAgICAgICAgICAgICAgYWRkVG9H
cmFwaChDaGVja0lkZW50LCBPcEluZm8odWlkKSwgcHJvcGVydHkpOworCisgICAgICAgICAgICAg
ICAgR2V0QnlJZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
cigKKyAgICAgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2Nr
LCBtX2RmZ0NvZGVCbG9jaywKKyAgICAgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+
bV9zdHViSW5mb3MsIG1fZGZnU3R1YkluZm9zLAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50
Q29kZU9yaWdpbigpLCB1aWQpOworCisgICAgICAgICAgICAgICAgaGFuZGxlR2V0QnlJZChjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNlLCBpZGVudGlmaWVy
TnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFkKTsKKyAgICAgICAgICAgICAgICBOb2Rl
KiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUuYXNXb3Jk
KCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKKyAgICAgICAgICAgICAg
ICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBn
ZXRCeVZhbCk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dl
dF9ieV92YWwpOwogICAgICAgICB9CkBAIC00MzA1LDYgKzQzMjMsNyBAQCBCeXRlQ29kZVBhcnNl
cjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAgICAgaWYgKG1fcHJv
ZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewogICAgICAgICAgICAgbV9w
cm9maWxlZEJsb2NrLT5nZXRTdHViSW5mb01hcChsb2NrZXIsIG1fc3R1YkluZm9zKTsKICAgICAg
ICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwgbV9jYWxs
TGlua0luZm9zKTsKKyAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0QnlWYWxJbmZvTWFw
KGxvY2tlciwgbV9ieVZhbEluZm9zKTsKICAgICAgICAgfQogICAgIH0KICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMjk2NzQ5ZGMzMWIyM2M4OTk4
NDk0YjU2ZWYxNDMwODY0YjEyN2VjNi4uNDZmNWZlNDhkMjVjMjdkZDMxOTZjNTgxMjlkYmU1ODU3
ZmJkN2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAg
LTI2OCw2ICsyNjgsMTAgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKFB1
cmVWYWx1ZShDaGVja05vdEVtcHR5LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVk
LCBub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBDaGVja0lk
ZW50OgorICAgICAgICBkZWYoUHVyZVZhbHVlKENoZWNrSWRlbnQsIEFkamFjZW5jeUxpc3QoQWRq
YWNlbmN5TGlzdDo6Rml4ZWQsIG5vZGUtPmNoaWxkMSgpKSwgbm9kZS0+dWlkT3BlcmFuZCgpKSk7
CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAg
ICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5zdG9yYWdlUG9pbnRlcigpKSk7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggYmE0YzAzNTQ5NDY0OTJmNTlmZGZiZDVhNmY2MWE1
YTY3ZDI1MDMyMC4uM2Q4NWNhYWJkNjE1NzNmZGQ1NDlkNWZlNzViYzY0ZjNlNTY0ZjFlNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQ
aGFzZS5jcHAKQEAgLTIwOCw2ICsyMDgsMzMgQEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5nUGhhc2Ug
OiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
CisgICAgICAgICAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgICAgICAgICBVbmlxdWVk
U3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAgICAgIEpT
VmFsdWUgY2hpbGRDb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFs
dWUoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBVbmlxdWVkU3RyaW5nSW1wbCogY29uc3RhbnRV
aWQgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3RhbnRVaWQgPSBhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJpdmF0ZU5h
bWUoKS51aWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBhbHJlYWR5IGZpbHRlcmVkIHRoZSB2YWx1ZSB3aXRo
IFN0cmluZ0lkZW50VXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBoZWxk
IGltcGwgaXMgYWx3YXlzIGF0b21pYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
Y29uc3QgYXV0byogaW1wbCA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUlt
cGwoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaW1wbC0+aXNB
dG9taWMoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50VWlkID0g
c3RhdGljX2Nhc3Q8Y29uc3QgVW5pcXVlZFN0cmluZ0ltcGwqPihpbXBsKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoY29u
c3RhbnRVaWQgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlbW92ZSgpOwor
ICAgICAgICAgICAgICAgICAgICBlbGltaW5hdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGNh
c2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICAgICAgICAgIEpTVmFsdWUgbGVmdCA9IG1fc3Rh
dGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAgICBKU1Zh
bHVlIHJpZ2h0ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDA4ZmZiMmE5MTI5Mzg3MjEz
MTFjYWQyNzc0Njc2MWEyMDY1M2FhNWYuLmU0NzBiOGRkYWI5OTQzOGZkODkwMzUyZTQ1ZTA5MTAy
OWYxYTYyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTEw
Nyw2ICsxMDcsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50OgogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNh
c2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBF
eGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYzQ0MjMxMDE2MzI2
NTdkM2U4M2Y5NzFlNjZhODNmNjI1MDU3MTUyNC4uZDZhOTc5MGIxM2NlMDA2MmQ5NzgxMTQwZWRj
ZTIyMTUyZTQwMGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCkBAIC0xMDEyLDYgKzEwMTIsMTUgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQ
aGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDaGVja0lkZW50OiB7
CisgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgp
OworICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkKKyAgICAgICAgICAgICAgICBmaXhF
ZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJh
eWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOiB7CkBAIC0xNzYwLDYgKzE3
NjksNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBG
dW5jdGlvblVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIGNhc2UgS25vd25T
dHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09i
amVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAg
ICAgIGlmIChhbHdheXNVbmJveFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaAppbmRleCAyOGNhYjA1MWU1MzA5ZTM2ODg2OTRjYmJjNDY1Mzk2NjkyZGU4MDlh
Li44M2ZjZjVjMTAxZTBjN2M3N2E5ZWQyMDk1ZDQ1NWRhNjljNGU2YWYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTMyOCw2ICsxMzI4LDE3IEBAIHN0cnVjdCBOb2RlIHsK
ICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsKICAgICB9
CiAKKyAgICBib29sIGhhc1VpZE9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkg
PT0gQ2hlY2tJZGVudDsKKyAgICB9CisKKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkT3BlcmFu
ZCgpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzVWlkT3BlcmFuZCgpKTsKKyAgICAgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7CisgICAg
fQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3Ao
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDYyZTdjYTk4
YTUyMTEyZDgyZDBlYjZmMGQxNzI4YmVhZjRiOWUxMzEuLmU5YmY3MjcwNGIxN2FhNjg2NzllOWJi
ZWEwZjRmMmFkY2VmOTYzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmgKQEAgLTIwOSw2ICsyMDksNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAg
ICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENo
ZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMs
IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVzdEdlbmVy
YXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5IG11dGF0aW9uLiAq
L1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNzZhZjZhMmYzZTQ1MmIwZjExN2FiYzNhNmJi
NWRkZDJmYWFiMTk4YS4uMzZmMmRmN2M3NWM1MGNhZmQwNmVjOWMyNzg1MWVlYTlmMTBmZmE5OCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTY0OSw2ICs2NDksNyBAQCBjbGFzcyBQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgQ2hlY2tT
dHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgICAgICBjYXNlIENoZWNrTm90
RW1wdHk6CisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICAgICAgY2FzZSBDaGVja0JhZENl
bGw6CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAgICAgICBjYXNlIFZhckluamVjdGlv
bldhdGNocG9pbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oCmluZGV4IDBjMGEyNzc2MDUwZWYxYzYzOGMyMGQ4OGNmZWZlMzIzYzczYTU5MTQuLmIyZDA3
ZDU1ZTUzNjI2ODQ1YjVkM2Y1YzlmZWVhNGU3YmQ4NGRkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIFNh
ZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAg
ICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKKyAgICAgICAg
Y2FzZSBTeW1ib2xVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBj
YXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE5vdFN0cmluZ1ZhclVz
ZToKQEAgLTE4OCw2ICsxODksNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5
cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6
CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgIGNh
c2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdFeHBUZXN0
OgogICAgIGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGYzZjhhZjdhNTJkNTBmOWEyZTcxYzRmOTAxOTk4
NDdiZjA1MDBkNWUuLmFlYTFhMWEwZTE1NDgxNTk1YmI0ZmUwMjZlZWVjYTZkMDIyMWVhN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBA
IC01NzMxLDYgKzU3MzEsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90U3Ry
aW5nVmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7
CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVk
Z2UsIFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90U3ltYm9sKGNlbGwpKTsKK30KKwordm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAo
IW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0
ZVN5bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhl
ZGdlLCB+U3BlY0NlbGwpKQpAQCAtNTg0Miw2ICs1ODU2LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAg
ICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTeW1i
b2xVc2U6CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdChl
ZGdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKaW5kZXggYTVjNDQ1NDdkYTY0YmMyYjYzZjA3M2ExNzExZTZhMTE4MDZm
NTk1Yi4uY2ViZjI4NjNiNDAzMTNhYjk2ZmYzOGM3OGJkNjBkM2E5NDVmYTBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMjQwNiw2ICsy
NDA2LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5n
T2JqZWN0KEVkZ2UsIEdQUlJlZyk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3QoRWRn
ZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPclN0cmluZ09iamVjdChFZGdlKTsKKyAgICB2
b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAgdm9pZCBzcGVjdWxh
dGVTeW1ib2woRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVOb3RDZWxsKEVkZ2UpOwogICAgIHZv
aWQgc3BlY3VsYXRlT3RoZXIoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVNaXNjKEVkZ2UsIEpT
VmFsdWVSZWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDUwNDI5MDViNjJiNTI2YzllZGFkM2ZmYmI1NjdjNDZm
NjdmODBlYWUuLjdiNmMyNWVmMzQyMDMyZjY5NGRjNjRhYWJmOTAyNzNjNGNmNGQ5YjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcApAQCAtMzgyMCw2ICszODIwLDMxIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBDaGVja0lkZW50
OiB7CisgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOworICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFu
ZCgpOworICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICBzcGVjdWxh
dGVTeW1ib2wobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOworICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjaygKKyAgICAgICAgICAgICAgICBCYWRDb25zdGFudENhY2hlLCBKU1ZhbHVl
U291cmNlOjp1bmJveGVkQ2VsbChvcGVyYW5kLmdwcigpKSwgbm9kZS0+Y2hpbGQxKCksCisgICAg
ICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNz
KG9wZXJhbmQuZ3ByKCksIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwKKyAgICAgICAg
ICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBzcGVjdWxhdGVTdHJpbmcobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOwor
ICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQu
Z3ByKCkpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKKyAgICAgICAgICAgICAgICBC
YWRDb25zdGFudENhY2hlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcGVyYW5kLmdwcigp
KSwgbm9kZS0+Y2hpbGQxKCksCisgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAg
ICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAg
ICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKG9wZXJhbmQuZ3ByKCksIEpTU3RyaW5nOjpvZmZzZXRP
ZlZhbHVlKCkpLAorICAgICAgICAgICAgICAgICAgICBUcnVzdGVkSW1tUHRyKHVpZCkpKTsKKyAg
ICAgICAgfQorICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGZ1bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJl
c3VsdCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNzcwYmRhNThjYWI1MDIzYTFmYTBj
MzhmNGM3YTAzMDhkNDA4MGEzMC4uYTRiODYwMTY4OTdmMTU0YTIxZmJhOWU4OWM3MzJlMGNkNDEw
NzJiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCkBAIC0zODUwLDYgKzM4NTAsMzEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNr
SWRlbnQ6IHsKKyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBub2Rl
LT5jaGlsZDEoKSk7CisgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRP
cGVyYW5kKCk7CisgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgIHNw
ZWN1bGF0ZVN5bWJvbChub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7CisgICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgICAgIEJhZENvbnN0YW50Q2FjaGUsIEpT
VmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wZXJhbmQuZ3ByKCkpLCBub2RlLT5jaGlsZDEoKSwK
KyAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgICAgIEpJ
VENvbXBpbGVyOjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFk
ZHJlc3Mob3BlcmFuZC5ncHIoKSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLAorICAg
ICAgICAgICAgICAgICAgICBUcnVzdGVkSW1tUHRyKHVpZCkpKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIo
KSk7CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChub2RlLT5jaGlsZDEoKSwgb3Bl
cmFuZC5ncHIoKSk7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAg
ICAgIEJhZENvbnN0YW50Q2FjaGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wZXJhbmQu
Z3ByKCkpLCBub2RlLT5jaGlsZDEoKSwKKyAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIo
CisgICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpOb3RFcXVhbCwKKyAgICAgICAgICAg
ICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3BlcmFuZC5ncHIoKSwgSlNTdHJpbmc6Om9m
ZnNldE9mVmFsdWUoKSksCisgICAgICAgICAgICAgICAgICAgIFRydXN0ZWRJbW1QdHIodWlkKSkp
OworICAgICAgICB9CisgICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICBicmVhazsKKyAg
ICB9CisKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6IHsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgZnVuY3Rpb24odGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMsIFJldXNlLCBmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmNwcAppbmRleCBlZmExMDRmM2QwNzAwMGI3ZDdiYzQ3M2JjZGYyMDZkMTA1
M2ZjOWIxLi45MzZlZjU1NGFmMjRlMGI2NGZkZjQyOGYxNjNhZThkNzg4ZTk4ZDk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKQEAgLTk3LDYgKzk3LDkgQEAgdm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtpbmQgdXNlS2luZCkKICAgICBj
YXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICBvdXQucHJpbnQoIktub3duU3RyaW5nIik7CiAg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIFN5bWJvbFVzZToKKyAgICAgICAgb3V0LnByaW50KCJT
eW1ib2wiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAg
ICAgICBvdXQucHJpbnQoIlN0cmluZ09iamVjdCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCmluZGV4IGViZjk5ZGFlNjAwYzg4MjVkMjJjYmFj
NjM4MjJkMTViNTU2MDAzNWEuLjI4OWI3ODNlNDFiYjM2MTI5MWM4M2M4ZmFkN2IwOGE1NzhlMGE2
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCkBAIC01Nyw2ICs1Nyw3
IEBAIGVudW0gVXNlS2luZCB7CiAgICAgU3RyaW5nSWRlbnRVc2UsCiAgICAgU3RyaW5nVXNlLAog
ICAgIEtub3duU3RyaW5nVXNlLAorICAgIFN5bWJvbFVzZSwKICAgICBTdHJpbmdPYmplY3RVc2Us
CiAgICAgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2UsCiAgICAgTm90U3RyaW5nVmFyVXNlLApAQCAt
MTE3LDYgKzExOCw4IEBAIGlubGluZSBTcGVjdWxhdGVkVHlwZSB0eXBlRmlsdGVyRm9yKFVzZUtp
bmQgdXNlS2luZCkKICAgICBjYXNlIFN0cmluZ1VzZToKICAgICBjYXNlIEtub3duU3RyaW5nVXNl
OgogICAgICAgICByZXR1cm4gU3BlY1N0cmluZzsKKyAgICBjYXNlIFN5bWJvbFVzZToKKyAgICAg
ICAgcmV0dXJuIFNwZWNTeW1ib2w7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAg
IHJldHVybiBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RV
c2U6CkBAIC0xOTYsNiArMTk5LDcgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkK
ICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2Ug
S25vd25TdHJpbmdVc2U6CisgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgY2FzZSBTdHJpbmdPYmpl
Y3RVc2U6CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5oCmluZGV4IDkxMjc1NGRmYzQwMTUyYjBlZDI0ODM2YWM3NWI4Zjk2OTg0
Mzk5YmIuLjU4MWY0Y2JkOWE3NjhiOWFiMmE4MzkyMWNmMjRkMzUyNGJjODU3MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9y
eS5oCkBAIC04Nyw3ICs4Nyw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAg
ICBtYWNybyhTdHJ1Y3R1cmVfY2xhc3NJbmZvLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgp
KSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX2dsb2JhbE9iamVjdCwgU3RydWN0dXJlOjpnbG9iYWxP
YmplY3RPZmZzZXQoKSkgXAogICAgIG1hY3JvKFN0cnVjdHVyZV9wcm90b3R5cGUsIFN0cnVjdHVy
ZTo6cHJvdG90eXBlT2Zmc2V0KCkpIFwKLSAgICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQs
IFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSkKKyAgICBtYWNybyhTdHJ1Y3R1cmVfc3Ry
dWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSkgXAorICAgIG1hY3JvKFN5
bWJvbF9wcml2YXRlTmFtZSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpCiAKICNkZWZp
bmUgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8oRGly
ZWN0QXJndW1lbnRzX3N0b3JhZ2UsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpLCBz
aXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHAKaW5kZXggNjI3MjhjNzQ2ZWY5MWQ3NGI3ODI5YmIzZjlhNDRjNmQ3
ZjYxZDdiMy4uYjQ5M2YzMDI3ZTgyY2ZjY2U5YzNjY2Y0ODJjMTU1ODYxZDY4Yjk0MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTE4LDYg
KzExOCw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQog
ICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgIGNhc2UgQ2hl
Y2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBTdHJpbmdDaGFyQ29k
ZUF0OgogICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9j
YXRlUHJvcGVydHlTdG9yYWdlOgpAQCAtNDE1LDYgKzQxNiw3IEBAIENhcGFiaWxpdHlMZXZlbCBj
YW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIEtub3duU3RyaW5n
VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAg
ICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBT
eW1ib2xVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBGaW5hbE9iamVjdFVzZToKICAgICAgICAg
ICAgICAgICBjYXNlIE5vdENlbGxVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBPdGhlclVzZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKaW5k
ZXggNWI1ODdkZDA0ODgzY2E3OTQ2NWZiNGUzMGQ5ZDVlZWQ5MzM5MTJmZS4uMDRlMzQ3YjA2YTIz
ODQ1Mjk0YWUyMzc0N2E2MTg0YzVmYTBkMGNlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTUzMiw2ICs1MzIsOSBAQCBjbGFzcyBM
b3dlckRGR1RvTExWTSB7CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgICAgICAgICAg
Y29tcGlsZUNoZWNrQmFkQ2VsbCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q2hlY2tJZGVudDoKKyAgICAgICAgICAgIGNvbXBpbGVDaGVja0lkZW50KCk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgICAgICAgICAgY29tcGls
ZUdldEV4ZWN1dGFibGUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjAyOSw2ICsyMDMyLDIw
IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgc3BlY3VsYXRlKFREWkZhaWx1cmUs
IG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQuaXNaZXJvNjQobG93SlNWYWx1ZShtX25vZGUtPmNo
aWxkMSgpKSkpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGlsZUNoZWNrSWRlbnQoKQorICAgIHsK
KyAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG1fbm9kZS0+dWlkT3BlcmFuZCgpOwor
ICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICBMVmFsdWUgc3ltYm9s
ID0gbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0cmlu
Z0ltcGwgPSBtX291dC5sb2FkUHRyKHN5bWJvbCwgbV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUp
OworICAgICAgICAgICAgc3BlY3VsYXRlKEJhZENvbnN0YW50Q2FjaGUsIGpzVmFsdWVWYWx1ZShz
eW1ib2wpLCBtX25vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1w
bCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgTFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywgbV9oZWFw
cy5KU1N0cmluZ192YWx1ZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkQ29uc3RhbnRDYWNo
ZSwganNWYWx1ZVZhbHVlKHN0cmluZyksIG1fbm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBtX291dC5u
b3RFcXVhbChzdHJpbmdJbXBsLCBtX291dC5jb25zdEludFB0cih1aWQpKSk7CisgICAgICAgIH0K
KyAgICB9CisKICAgICB2b2lkIGNvbXBpbGVHZXRFeGVjdXRhYmxlKCkKICAgICB7CiAgICAgICAg
IExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKQEAgLTcwMzMsNyArNzA1
MCwxNiBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lk
ZW50KGVkZ2UsIHN0cmluZywgc3RyaW5nSW1wbCk7CiAgICAgICAgIHJldHVybiBzdHJpbmdJbXBs
OwogICAgIH0KLSAgICAKKworICAgIExWYWx1ZSBsb3dTeW1ib2woRWRnZSBlZGdlLCBPcGVyYW5k
U3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCisgICAg
eworICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1
bGF0aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IFN5bWJvbFVzZSk7CisKKyAgICAgICAgTFZhbHVl
IHJlc3VsdCA9IGxvd0NlbGwoZWRnZSwgbW9kZSk7CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChl
ZGdlLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAgIExWYWx1
ZSBsb3dOb25OdWxsT2JqZWN0KEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2Rl
ID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VO
VVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtp
bmQoKSA9PSBPYmplY3RVc2UpOwpAQCAtNzQzMCw2ICs3NDU2LDkgQEAgY2xhc3MgTG93ZXJERkdU
b0xMVk0gewogICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICAgICAgc3BlY3Vs
YXRlU3RyaW5nSWRlbnQoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBT
eW1ib2xVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICBzcGVj
dWxhdGVTdHJpbmdPYmplY3QoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTc1MjYsNyAr
NzU1NSwxNiBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgICAgICBtX291dC5sb2Fk
MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpLAogICAgICAgICAgICAgbV9vdXQu
Y29uc3RJbnQzMih2bSgpLnN0cmluZ1N0cnVjdHVyZS0+aWQoKSkpOwogICAgIH0KLSAgICAKKwor
ICAgIExWYWx1ZSBpc05vdFN5bWJvbChMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9
IFNwZWNGdWxsVG9wKQorICAgIHsKKyAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3Zl
blZhbHVlKHR5cGUgJiBTcGVjQ2VsbCwgflNwZWNTeW1ib2wpKQorICAgICAgICAgICAgcmV0dXJu
IHByb3ZlbjsKKyAgICAgICAgcmV0dXJuIG1fb3V0Lm5vdEVxdWFsKAorICAgICAgICAgICAgbV9v
dXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKKyAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50MzIodm0oKS5zeW1ib2xTdHJ1Y3R1cmUtPmlkKCkpKTsKKyAgICB9CisK
ICAgICBMVmFsdWUgaXNBcnJheVR5cGUoTFZhbHVlIGNlbGwsIEFycmF5TW9kZSBhcnJheU1vZGUp
CiAgICAgewogICAgICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKQEAgLTc3NDksNyAr
Nzc4NywxNyBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgICAgICBOb3RTdHJpbmdP
YmplY3QsIG5vVmFsdWUoKSwgMCwKICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKHN0cnVjdHVy
ZUlELCB3ZWFrU3RydWN0dXJlSUQoc3RyaW5nT2JqZWN0U3RydWN0dXJlKSkpOwogICAgIH0KLSAg
ICAKKworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisg
ICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNw
ZWNTeW1ib2wgfCB+U3BlY0NlbGwsIGlzTm90U3ltYm9sKGNlbGwpKTsKKyAgICB9CisKKyAgICB2
b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxhdGVT
eW1ib2woZWRnZSwgbG93Q2VsbChlZGdlKSk7CisgICAgfQorCiAgICAgdm9pZCBzcGVjdWxhdGVO
b25OdWxsT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewogICAgICAgICBGVExf
VFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNPYmplY3QsIGlzTm90T2Jq
ZWN0KGNlbGwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCA5YWYzMzJlYjc4ZTE4
OWFlNmE1M2IyMjM1MGFmNzdiNWY5ZDdlYjJiLi5jNzhiNGMxOTU2YmY3MDhkOTFjYzJhMTczNzE5
MWVmM2MyNGUwMjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC02NjAsNiArNjYw
LDEwIEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRp
b25FZmZvcnQgZWZmb3J0KQogCiAgICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZv
cyhtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fYnlWYWxDb21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgUGF0
Y2hhYmxlSnVtcCBwYXRjaGFibGVOb3RJbmRleEp1bXAgPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
W2ldLm5vdEluZGV4SnVtcDsKKyAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAg
PSBDb2RlTG9jYXRpb25KdW1wKCk7CisgICAgICAgIGlmIChKdW1wKHBhdGNoYWJsZU5vdEluZGV4
SnVtcCkuaXNTZXQoKSkKKyAgICAgICAgICAgIG5vdEluZGV4SnVtcCA9IENvZGVMb2NhdGlvbkp1
bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihwYXRjaGFibGVOb3RJbmRleEp1bXApKTsKICAgICAg
ICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hC
dWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1wKSk7
CiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2Nh
dGlvbk9mKG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uZG9uZVRhcmdldCk7CiAgICAgICAgIENv
ZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZiht
X2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLnNsb3dQYXRoVGFyZ2V0KTsKQEAgLTY2Nyw2ICs2NzEs
NyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9u
RWZmb3J0IGVmZm9ydCkKICAgICAgICAgCiAgICAgICAgIG1fY29kZUJsb2NrLT5ieVZhbEluZm8o
aSkgPSBCeVZhbEluZm8oCiAgICAgICAgICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJ5
dGVjb2RlSW5kZXgsCisgICAgICAgICAgICBub3RJbmRleEp1bXAsCiAgICAgICAgICAgICBiYWRU
eXBlSnVtcCwKICAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYXJyYXlNb2Rl
LAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGJhZFR5cGVKdW1wLCBkb25l
VGFyZ2V0KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDFhZGU2NjVkZjc5MjgyYzYwYzJh
ODg1Njg1ZmQ1MzE3ZDdhNTU0ZDUuLmRlMjVjOTg2OTBlNDNjN2FlZDJhNTRmYTdiYTQ4NWFkODJj
ZjYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMTQ5LDggKzE0OSw5IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHN0cnVjdCBCeVZhbENvbXBpbGF0aW9uSW5mbyB7CiAgICAgICAgIEJ5
VmFsQ29tcGlsYXRpb25JbmZvKCkgeyB9CiAgICAgICAgIAotICAgICAgICBCeVZhbENvbXBpbGF0
aW9uSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxl
SnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgTWFjcm9Bc3NlbWJsZXI6
OkxhYmVsIGRvbmVUYXJnZXQpCisgICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKHVuc2lnbmVk
IGJ5dGVjb2RlSW5kZXgsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG5vdEluZGV4SnVt
cCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9k
ZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQogICAgICAgICAg
ICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICAgICAsIG5vdEluZGV4
SnVtcChub3RJbmRleEp1bXApCiAgICAgICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1w
KQogICAgICAgICAgICAgLCBhcnJheU1vZGUoYXJyYXlNb2RlKQogICAgICAgICAgICAgLCBkb25l
VGFyZ2V0KGRvbmVUYXJnZXQpCkBAIC0xNTgsNiArMTU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXg7CisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG5vdEluZGV4SnVtcDsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXA7CiAgICAgICAgIEpJVEFy
cmF5TW9kZSBhcnJheU1vZGU7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFy
Z2V0OwpAQCAtMjA0LDYgKzIwNiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGpp
dC5wcml2YXRlQ29tcGlsZUdldEJ5VmFsKGJ5VmFsSW5mbywgcmV0dXJuQWRkcmVzcywgYXJyYXlN
b2RlKTsKICAgICAgICAgfQogCisgICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVHZXRCeVZhbFdp
dGhDYWNoZWRJZChWTSogdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBCeVZhbEluZm8qIGJ5VmFs
SW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9j
ayk7CisgICAgICAgICAgICBqaXQubV9ieXRlY29kZU9mZnNldCA9IGJ5VmFsSW5mby0+Ynl0ZWNv
ZGVJbmRleDsKKyAgICAgICAgICAgIGppdC5wcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hl
ZElkKGJ5VmFsSW5mbywgcmV0dXJuQWRkcmVzcywgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQor
CiAgICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVQdXRCeVZhbChWTSogdm0sIENvZGVCbG9jayog
Y29kZUJsb2NrLCBCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICBK
SVQgaml0KHZtLCBjb2RlQmxvY2spOwpAQCAtMjQ2LDYgKzI1NSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBDb21waWxhdGlvblJlc3VsdCBwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlv
bkVmZm9ydCk7CiAgICAgICAgIAogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlR2V0QnlWYWwo
QnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKKyAgICAgICAgdm9p
ZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKEJ5VmFsSW5mbyosIFJldHVybkFk
ZHJlc3NQdHIsIGNvbnN0IElkZW50aWZpZXImKTsKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGls
ZVB1dEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CiAK
ICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eShCeVZhbEluZm8q
LCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwpAQCAtMzcxLDcgKzM4MSw5IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBKdW1wTGlzdCBlbWl0QXJyYXlTdG9yYWdlUHV0QnlWYWwo
SW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKTsKICAgICAgICAgSnVtcExpc3Qg
ZW1pdEludFR5cGVkQXJyYXlQdXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJh
ZFR5cGUsIFR5cGVkQXJyYXlUeXBlKTsKICAgICAgICAgSnVtcExpc3QgZW1pdEZsb2F0VHlwZWRB
cnJheVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgVHlwZWRB
cnJheVR5cGUpOwotICAgICAgICAKKworICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGVtaXRH
ZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0cnVjdGlvbiosIGNvbnN0IElkZW50aWZpZXImLCBKdW1w
TGlzdCYgZG9uZUNhc2VzLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKTsKKwogICAgICAgICBlbnVtIEZp
bmFsT2JqZWN0TW9kZSB7IE1heUJlRmluYWwsIEtub3duTm90RmluYWwgfTsKIAogICAgICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gSnVtcCBicmFuY2hTdHJ1Y3R1cmUoUmVsYXRpb25hbENvbmRp
dGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggOTBiNTMyMTVhYjA0Yzc0MzM4YWRiYTgzNjMwNDBjMzg0
ZGZmYTMxZS4uZGFmMmFmZjM3YzAwMDI1Zjg4NmJkMzEwYzQ0MzdkYzA3ZTM1MDlhYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0xMTA4LDcgKzExMDgsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsK
ICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9u
SW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZh
bENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9m
ZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIHZvaWQg
SklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggOTY5NmZjZWQ5
ZDJmODQ3Mjc1OWIzZDczZTYxZWRjM2E1YjQyYzRhYS4uYzE4MjI2MGVmYTU2YWI5M2FiZjRlMzMx
OWYwMzQ4OWM2MWI5MjI1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCkBAIC0xNTU1LDcgKzE1NTUsMjMgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEoK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLSAgICAKKworICAgIGlmIChiYXNlVmFs
dWUuaXNPYmplY3QoKSAmJiAoc3Vic2NyaXB0LmlzU3ltYm9sKCkgfHwgc3Vic2NyaXB0LmlzU3Ry
aW5nKCkpKSB7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gc3Vic2Ny
aXB0LnRvUHJvcGVydHlLZXkoZXhlYyk7CisKKyAgICAgICAgaWYgKCFzdWJzY3JpcHQuaXNTdHJp
bmcoKSB8fCAhcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgICAgICB1bnNpZ25l
ZCBieXRlY29kZU9mZnNldCA9IGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOworICAg
ICAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgICAgIEJ5VmFsSW5mbyYg
YnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNl
dCAtIDEpOworICAgICAgICAgICAgQVNTRVJUKCFieVZhbEluZm8uc3R1YlJvdXRpbmUpOworICAg
ICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoJnZtLCBleGVjLT5jb2Rl
QmxvY2soKSwgJmJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1Mp
LCBwcm9wZXJ0eU5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgUHJvcGVydHlTbG90IHNsb3Qo
YmFzZVZhbHVlKTsKKyAgICAgICAgYm9vbCBoYXNSZXN1bHQgPSBiYXNlVmFsdWUuZ2V0UHJvcGVy
dHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoaGFzUmVzdWx0ID8gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpIDog
anNVbmRlZmluZWQoKSk7CisgICAgfQorCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChl
eGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRy
KE9VUl9SRVRVUk5fQUREUkVTUykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHAKaW5kZXggNGVmMDZkOTIxM2EyYjFkYmZmYmE0YzdjMzM0ZDJmNmYxYzQ3OTE3ZS4uZTgyZDhi
YjVjNzM1NDJlODhjMGE2YzI2NDBhOTIzODUwNTlkYmMxNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTEwMCw4ICsxMDAsMTUgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
LmFycmF5UHJvZmlsZTsKICAgICAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhiYXNlLCBy
ZWdUMCwgcHJvcGVydHksIHJlZ1QxKTsKLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlh
dGVJbnRlZ2VyKHJlZ1QxKTsKIAorICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdU
MCwgYmFzZSk7CisKKyAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBpbXBsZW1lbnQgcGF0Y2hhYmxl
QnJhbmNoNjQuCisgICAgSnVtcCBpc0luZGV4ID0gZW1pdEp1bXBJZkltbWVkaWF0ZUludGVnZXIo
cmVnVDEpOworICAgIFBhdGNoYWJsZUp1bXAgbm90SW5kZXggPSBwYXRjaGFibGVKdW1wKCk7Cisg
ICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOworCisgICAgaXNJbmRleC5saW5rKHRoaXMpOwogICAg
IC8vIFRoaXMgaXMgdGVjaG5pY2FsbHkgaW5jb3JyZWN0IC0gd2UncmUgemVyby1leHRlbmRpbmcg
YW4gaW50MzIuICBPbiB0aGUgaG90IHBhdGggdGhpcyBkb2Vzbid0IG1hdHRlci4KICAgICAvLyBX
ZSBjaGVjayB0aGUgdmFsdWUgYXMgaWYgaXQgd2FzIGEgdWludDMyIGFnYWluc3QgdGhlIG1fdmVj
dG9yTGVuZ3RoIC0gd2hpY2ggd2lsbCBhbHdheXMgZmFpbCBpZgogICAgIC8vIG51bWJlciB3YXMg
c2lnbmVkIHNpbmNlIG1fdmVjdG9yTGVuZ3RoIGlzIGFsd2F5cyBsZXNzIHRoYW4gaW50bWF4IChz
aW5jZSB0aGUgdG90YWwgYWxsb2NhdGlvbgpAQCAtMTEwLDcgKzExNyw2IEBAIHZvaWQgSklUOjpl
bWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAv
LyBleHRlbmRpbmcgc2luY2UgaXQgbWFrZXMgaXQgZWFzaWVyIHRvIHJlLXRhZyB0aGUgdmFsdWUg
aW4gdGhlIHNsb3cgY2FzZS4KICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihyZWdUMSwgcmVnVDEpOwog
Ci0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKICAgICBlbWl0
QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwocmVnVDAsIHJlZ1QyLCBwcm9maWxlKTsKICAgICBh
bmQzMihUcnVzdGVkSW1tMzIoSW5kZXhpbmdTaGFwZU1hc2spLCByZWdUMik7CiAKQEAgLTE1MCw3
ICsxNTYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSgpOwogICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
LmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBt
b2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21w
aWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRv
bmUpKTsKIH0KIAogSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXREb3VibGVMb2FkKEluc3RydWN0aW9u
KiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKQEAgLTE5NSw2ICsyMDEsMzkgQEAgSklUOjpKdW1w
TGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVt
cCYgYmFkVHlwZSkKICAgICByZXR1cm4gc2xvd0Nhc2VzOwogfQogCitKSVRHZXRCeUlkR2VuZXJh
dG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVD
YXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykKK3sKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZDsKKworICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5v
dEpTQ2VsbChyZWdUMSkpOworICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAg
ICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhy
ZWdUMSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJl
LmdldCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgU3ltYm9sOjpvZmZzZXRP
ZlByaXZhdGVOYW1lKCkpLCByZWdUMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2Vz
LmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6
c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAg
ICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCBy
ZWdUMSk7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdU
MSkpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNz
KHJlZ1QxLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0lt
cGw6OmZsYWdJc0F0b21pYygpKSkpOworICAgIH0KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5j
aFB0cihOb3RFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkp
KTsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAorICAgICAgICBtX2NvZGVCbG9jaywg
Q29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3Rl
cnMoKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIERv
bnRTcGlsbCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNh
c2VzLmFwcGVuZChqdW1wKCkpOworCisgICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7
CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgpLmxpbmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBj
YWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwg
Z2VuLnN0dWJJbmZvKCksIHJlZ1QwLCBwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVw
b3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBl
bmQoanVtcCgpKTsKKworICAgIHJldHVybiBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19v
cF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93
Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBAIC0yMDIsOCArMjQxLDggQEAgdm9pZCBKSVQ6OmVtaXRT
bG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9y
PFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
LmFycmF5UHJvZmlsZTsKICAgICAKLSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5
IGludDMyIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8v
IGJhc2UgY2VsbCBjaGVjaworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50
MzIgY2hlY2sKICAgICBKdW1wIG5vbkNlbGwgPSBqdW1wKCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNrCiAgICAgSnVtcCBub3RTdHJpbmcgPSBicmFuY2hTdHJ1
Y3R1cmUoTm90RXF1YWwsIApAQCAtMjk5LDcgKzMzOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1
dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBMYWJl
bCBkb25lID0gbGFiZWwoKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVu
ZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBk
b25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlv
bkluZm8obV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBk
b25lKSk7CiAKIH0KIApAQCAtOTk5LDYgKzEwMzgsMzUgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21w
aWxlR2V0QnlWYWwoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJu
QWQKICAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVz
cywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7CiB9CiAKK3ZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKEJ5VmFsSW5mbyogYnlWYWxJbmZv
LCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSkKK3sKKyAgICBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uID0gbV9jb2Rl
QmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7
CisKKyAgICBKdW1wTGlzdCBkb25lQ2FzZXM7CisgICAgSnVtcExpc3Qgc2xvd0Nhc2VzOworCisg
ICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4gPSBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoY3Vy
cmVudEluc3RydWN0aW9uLCBwcm9wZXJ0eU5hbWUsIGRvbmVDYXNlcywgc2xvd0Nhc2VzKTsKKwor
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fY29kZUJsb2NrLT5tX2xvY2spOworICAg
IExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKm1fdm0sICp0aGlzLCBtX2NvZGVCbG9jayk7CisgICAg
cGF0Y2hCdWZmZXIubGluayhzbG93Q2FzZXMsIENvZGVMb2NhdGlvbkxhYmVsKE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjo6Y3JlYXRlRnJvbUV4ZWN1dGFibGVBZGRyZXNzKHJldHVybkFkZHJlc3MudmFs
dWUoKSkpLmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZvLT5yZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkp
OworICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZUNhc2VzLCBieVZhbEluZm8tPmJhZFR5cGVKdW1w
LmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZvLT5iYWRUeXBlSnVtcFRvRG9uZSkpOworICAgIGZvciAo
Y29uc3QgYXV0byYgY2FsbFNpdGUgOiBtX2NhbGxzKSB7CisgICAgICAgIGlmIChjYWxsU2l0ZS50
bykKKyAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoY2FsbFNpdGUuZnJvbSwgRnVuY3Rpb25Q
dHIoY2FsbFNpdGUudG8pKTsKKyAgICB9CisgICAgZ2VuLmZpbmFsaXplKHBhdGNoQnVmZmVyKTsK
KworICAgIGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAor
ICAgICAgICBtX2NvZGVCbG9jaywgcGF0Y2hCdWZmZXIsCisgICAgICAgICgiQmFzZWxpbmUgZ2V0
X2J5X3ZhbCB3aXRoIGNhY2hlZCBwcm9wZXJ0eSBuYW1lICclcycgc3R1YiBmb3IgJXMsIHJldHVy
biBwb2ludCAlcCIsIHByb3BlcnR5TmFtZS5pbXBsKCktPnV0ZjgoKS5kYXRhKCksIHRvQ1N0cmlu
ZygqbV9jb2RlQmxvY2spLmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CisgICAgYnlW
YWxJbmZvLT5jYWNoZWRJZCA9IHByb3BlcnR5TmFtZTsKKworICAgIFJlcGF0Y2hCdWZmZXIgcmVw
YXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJ
bmZvLT5ub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRp
bmUtPmNvZGUoKS5jb2RlKCkpKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVu
Y3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmlj
KSk7Cit9CisKIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJh
eU1vZGUpCiB7CiAgICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJs
b2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMy
XzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAKaW5kZXggNjA5Y2ExMzg4MjI3ZGI1YmRhNTM5Mjc1MzAzZGFkZDJkOGIxY2ViYy4uMzE1
ZmNkYWVkY2VlMDVkOTZhMjZkZmE1NjgzODA1ZjU4YjFhYTlkMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xNTIs
OCArMTUyLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAs
IHByb3BlcnR5LCByZWdUMywgcmVnVDIpOwogICAgIAotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMy
KE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAg
IGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CisgICAgUGF0Y2hhYmxl
SnVtcCBub3RJbmRleCA9IHBhdGNoYWJsZUJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwog
ICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDEsIHByb2ZpbGUp
OwogICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QxKTsKIApA
QCAtMTkyLDcgKzE5Myw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAg
ICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBi
YWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQo
QnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUs
IG1vZGUsIGRvbmUpKTsKIH0KIAogSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRDb250aWd1b3VzTG9h
ZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIEluZGV4aW5nVHlwZSBleHBl
Y3RlZFNoYXBlKQpAQCAtMjM2LDcgKzIzNyw0MyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEFy
cmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQogICAg
IAogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9Ci0gICAgCisKK0pJVEdldEJ5SWRHZW5lcmF0b3Ig
SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2Vz
LCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQoreworICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOworCisgICAgLy8gYmFzZTogdGFnKHJlZ1QxKSwgcGF5bG9hZChyZWdU
MCkKKyAgICAvLyBwcm9wZXJ0eTogdGFnKHJlZ1QzKSwgcGF5bG9hZChyZWdUMikKKworICAgIHNs
b3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMykpOworICAgIGlmIChwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0
cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNl
dCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRk
cmVzcyhyZWdUMiwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1
YWwsIEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0
cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIEpT
U3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMik7CisgICAgICAgIHNsb3dDYXNlcy5hcHBl
bmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMikpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5k
KGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QyLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNl
dCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21pYygpKSkpOworICAgIH0K
KyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDIsIFRydXN0ZWRJ
bW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3Ig
Z2VuKAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwg
UmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVn
VDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgRG9udFNwaWxsKTsKKyAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAo
KSk7CisKKyAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwoKTsKKyAgICBnZW4uc2xvd1Bh
dGhKdW1wKCkubGluayh0aGlzKTsKKworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oV2l0
aFByb2ZpbGUsIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgZHN0LCBnZW4uc3R1YkluZm8oKSwg
cmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1Bh
dGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgp
KTsKKworICAgIHJldHVybiBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlf
dmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5
Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQ7CkBAIC0yNDQsOCArMjgxLDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dl
dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMK
ICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAg
IEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJv
ZmlsZTsKICAgICAKLSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNo
ZWNrCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2Vs
bCBjaGVjaworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sK
IAogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8v
IGJhc2UgYXJyYXkgY2hlY2sKQEAgLTMxNCw3ICszNTEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9w
dXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFi
ZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBl
bmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwg
ZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRp
b25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwg
ZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0
QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFk
VHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbC5oCmluZGV4IGU1NzkwZDc4NzIyNmJlYTc2MDI0YzlkMWQ2NmE2NzYwZjY0ZGU1
YTIuLjgzZjVkZTI0ODUyYmMzNzhlZTBhNzcwMzlmNDYzMTgyNWZkZGRiYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC03OSw2ICs3OSw4IEBAIGNsYXNzIFN5bWJv
bCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3Rh
dGUqKSBjb25zdDsKIAorICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZQcml2YXRlTmFtZSgpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTeW1ib2wsIG1fcHJpdmF0ZU5hbWUpOyB9CisKIHByb3Rl
Y3RlZDoKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258259</attachid>
            <date>2015-08-04 19:50:45 -0700</date>
            <delta_ts>2015-08-05 01:39:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150804195037.patch</filename>
            <type>text/plain</type>
            <size>89304</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MzllNTViYTc1MTg0NTIwNDA5MjVmODQ5N2Y2MDI4MzFhYzhiOGExLi5mMDM5ZDhhZTk2OTRjNTdj
OWU0ZDJmZWZiNzljZjhmZDJjOWIxNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NSBAQAorMjAxNS0wOC0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlf
dmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjpCeVZhbEluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0QnlWYWxJbmZv
TWFwKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZyb21MTEludCk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAg
ICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5l
U3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29u
c3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
Ojpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVw
UGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2RlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1VpZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAg
ICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVj
dXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpw
cmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlND
OjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAg
ICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAg
ICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9MTFZNOjpjb21waWxlQ2hlY2tJZGVudCk6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvTExWTTo6bG93U3ltYm9sKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9MTFZNOjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0xMVk06OmlzTm90U3ltYm9sKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9MTFZNOjpzcGVjdWxhdGVTeW1ib2wpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgIChKU0M6OkJ5VmFsQ29tcGlsYXRpb25JbmZvOjpCeVZhbENvbXBpbGF0aW9uSW5mbyk6Cisg
ICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAg
KiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9oYXNfaW5k
ZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVk
SWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVH
ZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1
dF9ieV92YWwpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sLmg6CisKIDIwMTUtMDgtMDQgIEJy
ZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVXBkYXRl
IEFwcGxlIFdpbmRvd3MgYnVpbGQgZm9yIFZTMjAxNQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5VmFsSW5mby5oCmluZGV4IGQ5ODg1MTYxMzI1OGE3MWI5ZjA0YmE0OTA3M2Y0NDAz
M2U1NzEwODMuLjE5YWQ3MTA0NjhhZDI4MDkxNDNmMzczZGNkN2Y5YWVkNTQ3NGQzYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTI2LDE2ICsyNiwx
NyBAQAogI2lmbmRlZiBCeVZhbEluZm9faAogI2RlZmluZSBCeVZhbEluZm9faAogCi0jaWYgRU5B
QkxFKEpJVCkKLQogI2luY2x1ZGUgIkNsYXNzSW5mby5oIgogI2luY2x1ZGUgIkNvZGVMb2NhdGlv
bi5oIgorI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNsdWRlICJJbmRleGluZ1R5cGUuaCIK
ICNpbmNsdWRlICJKSVRTdHViUm91dGluZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIAorI2lmIEVOQUJMRShKSVQpCisKIGVudW0gSklUQXJyYXlNb2RlIHsK
ICAgICBKSVRJbnQzMiwKICAgICBKSVREb3VibGUsCkBAIC0yMDIsOCArMjAzLDkgQEAgaW5saW5l
IEpJVEFycmF5TW9kZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiBzdHJ1Y3QgQnlWYWxJbmZvIHsKICAgICBCeVZhbEluZm8oKSB7IH0KICAgICAKLSAgICBC
eVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBl
SnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZSwg
aW50MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkKKyAgICBCeVZhbEluZm8odW5zaWduZWQg
Ynl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAsIENvZGVMb2NhdGlv
bkp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIGludDE2X3QgYmFkVHlw
ZUp1bXBUb0RvbmUsIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgIDog
Ynl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQorICAgICAgICAsIG5vdEluZGV4SnVtcChub3RJ
bmRleEp1bXApCiAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICwg
YXJyYXlNb2RlKGFycmF5TW9kZSkKICAgICAgICAgLCBiYWRUeXBlSnVtcFRvRG9uZShiYWRUeXBl
SnVtcFRvRG9uZSkKQEAgLTIxMSwxNCArMjEzLDE2IEBAIHN0cnVjdCBCeVZhbEluZm8gewogICAg
ICAgICAsIHNsb3dQYXRoQ291bnQoMCkKICAgICB7CiAgICAgfQotICAgIAorCiAgICAgdW5zaWdu
ZWQgYnl0ZWNvZGVJbmRleDsKKyAgICBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcDsKICAg
ICBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wOwogICAgIEpJVEFycmF5TW9kZSBhcnJheU1v
ZGU7IC8vIFRoZSBhcnJheSBtb2RlIHRoYXQgd2FzIGJha2VkIGludG8gdGhlIGlubGluZSBKSVQg
Y29kZS4KICAgICBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lOwogICAgIGludDE2X3QgcmV0dXJu
QWRkcmVzc1RvU2xvd1BhdGg7CiAgICAgdW5zaWduZWQgc2xvd1BhdGhDb3VudDsKICAgICBSZWZQ
dHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOworICAgIElkZW50aWZpZXIgY2FjaGVkSWQ7
CiB9OwogCiBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZhbElu
Zm8qIGluZm8pCkBAIC0yMjYsOSArMjMwLDE1IEBAIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbElu
Zm9CeXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5mbykKICAgICByZXR1cm4gaW5mby0+Ynl0ZWNv
ZGVJbmRleDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8Q29kZU9y
aWdpbiwgQnlWYWxJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFw
OworCisjZWxzZSAvLyBFTkFCTEUoSklUKQorCit0eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4g
QnlWYWxJbmZvTWFwOwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorfSAvLyBuYW1lc3BhY2Ug
SlNDCisKICNlbmRpZiAvLyBCeVZhbEluZm9faAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDlmOTQ4Njg5NzBiZjA1ODAzNjU4YzNjZTg1ZmE4
YWFjOWM2OTQ1MTcuLjJkZmU4ZDg4OWE5YzJiOTUzNDU2MDAwZjAxMmM3OGU4MWIyOWJlMmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0yNjgz
LDYgKzI2ODMsMjIgQEAgdm9pZCBDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb01hcChDYWxsTGlu
a0luZm9NYXAmIHJlc3VsdCkKICAgICBnZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCByZXN1bHQp
OwogfQogCit2b2lkIENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRK
SVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSklUKQorICAg
IGZvciAoYXV0byYgYnlWYWxJbmZvIDogbV9ieVZhbEluZm9zKQorICAgICAgICByZXN1bHQuYWRk
KENvZGVPcmlnaW4oYnlWYWxJbmZvLmJ5dGVjb2RlSW5kZXgpLCAmYnlWYWxJbmZvKTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2RlQmxvY2s6
OmdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIGdldEJ5VmFsSW5mb01hcChsb2NrZXIsIHJl
c3VsdCk7Cit9CisKICNpZiBFTkFCTEUoSklUKQogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9j
azo6YWRkU3R1YkluZm8oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5oCmluZGV4IDZjM2ExMTVmNzc1ZWVjM2FiZDIyMDJmZWZhNTI2ZGY4MGEzZmM5MzguLjJh
MzRlMmQ2MmM5YmVlNzQ1YWQ0NWU1ZjRiYWVlYmM5Y2IyNTEyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTIwMCw2ICsyMDAsOSBAQCBjbGFzcyBD
b2RlQmxvY2sgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29kZUJsb2NrPiwgcHVibGlj
IFVuY29uZGl0aW9uYWxGaQogICAgIAogICAgIHZvaWQgZ2V0Q2FsbExpbmtJbmZvTWFwKGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlua0luZm9NYXAmIHJlc3VsdCk7CiAgICAgdm9p
ZCBnZXRDYWxsTGlua0luZm9NYXAoQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOworCisgICAgdm9p
ZCBnZXRCeVZhbEluZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIEJ5VmFsSW5mb01h
cCYgcmVzdWx0KTsKKyAgICB2b2lkIGdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3Vs
dCk7CiAgICAgCiAjaWYgRU5BQkxFKEpJVCkKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogYWRkU3R1
YkluZm8oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRC
eUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcAppbmRleCAxZDk3YzlmZmRiYTZkOTRlMzVjYjY3Y2VkM2RiZWVhNTBiYzcxOWVlLi4w
YjU3YjNlZjhkYzRhZWRjMDE3NjQ1ZWM4MGRiYjllNzkxNTY1MGQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC03Niw2ICs3Niwx
MCBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJs
b2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZAogICAgIGlmIChpbnN0cnVjdGlvblswXS51Lm9w
Y29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9hcnJheV9sZW5ndGgpKQogICAgICAgICBy
ZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCBmYWxzZSk7CiAKKyAgICAvLyBPbmx5
IHRpZXJzIGhpZ2hlciB0aGFuIExMSW50IHVzZSBHZXRCeUlkIElDIGZvciBvcF9nZXRfYnlfdmFs
LgorICAgIGlmIChpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9w
X2dldF9ieV92YWwpKQorICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9u
LCBmYWxzZSk7CisKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGluc3RydWN0aW9uWzRdLnUu
c3RydWN0dXJlLmdldCgpOwogICAgIGlmICghc3RydWN0dXJlKQogICAgICAgICByZXR1cm4gR2V0
QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXgg
MzczNGM3NmQxZWU4N2E4NGEwZTY2ZDU1Njc0ZDEwYjJhZDJhYTA1NC4uMjI5MDg3ZGNjNDM2NDM5
Nzk1NDgwZTNkNWMxMjk2MDNhMTZjMWI3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjE2Myw2
ICsyMTYzLDMyIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46
OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorICAgIGNhc2UgQ2hlY2tJZGVudDogeworICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1
ZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCog
dWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICBBU1NFUlQodWlkLT5pc1N5bWJvbCgp
ID8gISh2YWx1ZS5tX3R5cGUgJiB+U3BlY1N5bWJvbCkgOiAhKHZhbHVlLm1fdHlwZSAmIH5TcGVj
U3RyaW5nSWRlbnQpKTsgLy8gRWRnZSBmaWx0ZXJpbmcgc2hvdWxkIGhhdmUgYWxyZWFkeSBlbnN1
cmVkIHRoaXMuCisKKyAgICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50ID0gdmFsdWUudmFsdWUo
KTsKKyAgICAgICAgaWYgKGNoaWxkQ29uc3RhbnQpIHsKKyAgICAgICAgICAgIGlmICh1aWQtPmlz
U3ltYm9sKCkpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoY2hpbGRDb25zdGFudC5pc1N5bWJv
bCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXNTeW1ib2woY2hpbGRDb25zdGFudCktPnByaXZh
dGVOYW1lKCkudWlkKCkgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0
Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJU
KGNoaWxkQ29uc3RhbnQuaXNTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWYgKGFzU3RyaW5n
KGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUltcGwoKSA9PSB1aWQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisKKyAgICAgICAgZmlsdGVyKHZhbHVlLCB1aWQtPmlzU3ltYm9sKCkgPyBTcGVjU3ltYm9sIDog
U3BlY1N0cmluZ0lkZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBDaGVj
a0luQm91bmRzOiB7CiAgICAgICAgIEpTVmFsdWUgbGVmdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQx
KCkpLnZhbHVlKCk7CiAgICAgICAgIEpTVmFsdWUgcmlnaHQgPSBmb3JOb2RlKG5vZGUtPmNoaWxk
MigpKS52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAppbmRleCA1NjQyMmIxOGEyNDY1MDg2ZjgwNjk0MjgwZGEzNjc2MDAyZTZjNWU0
Li45ZGMzMzRhM2ZlYmZlYjY1M2IwYWY3N2E1MWU4NjY3NGQ5NDkxMjM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtOTY5LDYgKzk2
OSw3IEBAIGNsYXNzIEJ5dGVDb2RlUGFyc2VyIHsKICAgICAgICAgCiAgICAgICAgIENhbGxMaW5r
SW5mb01hcCBtX2NhbGxMaW5rSW5mb3M7CiAgICAgICAgIFN0dWJJbmZvTWFwIG1fc3R1YkluZm9z
OworICAgICAgICBCeVZhbEluZm9NYXAgbV9ieVZhbEluZm9zOwogICAgICAgICAKICAgICAgICAg
Ly8gRGlkIHdlIHNlZSBhbnkgcmV0dXJucz8gV2UgbmVlZCB0byBoYW5kbGUgdGhlICh1bmNvbW1v
biBidXQgbmVjZXNzYXJ5KQogICAgICAgICAvLyBjYXNlIHdoZXJlIGEgcHJvY2VkdXJlIHRoYXQg
ZG9lcyBub3QgcmV0dXJuIHdhcyBpbmxpbmVkLgpAQCAtMzM5OSwxMCArMzQwMCwyNyBAQCBib29s
IEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAg
U3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb25XaXRob3V0T1NSRXhpdCgp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBBcnJh
eU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFy
cmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBn
ZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKLSAg
ICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFy
cmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOwot
ICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kKSwgZ2V0QnlWYWwpOworICAgICAgICAgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBt
X2lubGluZVN0YWNrVG9wLT5tX2J5VmFsSW5mb3MuZ2V0KENvZGVPcmlnaW4oY3VycmVudENvZGVP
cmlnaW4oKS5ieXRlY29kZUluZGV4KSk7CisgICAgICAgICAgICAvLyBGSVhNRTogV2hlbiB0aGUg
Ynl0ZWNvZGUgaXMgbm90IGNvbXBpbGVkIGluIHRoZSBiYXNlbGluZSBKSVQsIGJ5VmFsSW5mbyBi
ZWNvbWVzIG51bGwuCisgICAgICAgICAgICAvLyBBdCB0aGF0IHRpbWUsIHRoZXJlIGlzIG5vIGlu
Zm9ybWF0aW9uLgorICAgICAgICAgICAgaWYgKGJ5VmFsSW5mbyAmJiAhYnlWYWxJbmZvLT5jYWNo
ZWRJZC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1i
ZXIgPSBtX2dyYXBoLmlkZW50aWZpZXJzKCkuZW5zdXJlKGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1w
bCgpKTsKKyAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5p
ZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOworCisgICAgICAgICAgICAgICAgYWRkVG9H
cmFwaChDaGVja0lkZW50LCBPcEluZm8odWlkKSwgcHJvcGVydHkpOworCisgICAgICAgICAgICAg
ICAgR2V0QnlJZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
cigKKyAgICAgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2Nr
LCBtX2RmZ0NvZGVCbG9jaywKKyAgICAgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+
bV9zdHViSW5mb3MsIG1fZGZnU3R1YkluZm9zLAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50
Q29kZU9yaWdpbigpLCB1aWQpOworCisgICAgICAgICAgICAgICAgaGFuZGxlR2V0QnlJZChjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNlLCBpZGVudGlmaWVy
TnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFkKTsKKyAgICAgICAgICAgICAgICBOb2Rl
KiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUuYXNXb3Jk
KCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKKyAgICAgICAgICAgICAg
ICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBn
ZXRCeVZhbCk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dl
dF9ieV92YWwpOwogICAgICAgICB9CkBAIC00MzA1LDYgKzQzMjMsNyBAQCBCeXRlQ29kZVBhcnNl
cjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAgICAgaWYgKG1fcHJv
ZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewogICAgICAgICAgICAgbV9w
cm9maWxlZEJsb2NrLT5nZXRTdHViSW5mb01hcChsb2NrZXIsIG1fc3R1YkluZm9zKTsKICAgICAg
ICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwgbV9jYWxs
TGlua0luZm9zKTsKKyAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0QnlWYWxJbmZvTWFw
KGxvY2tlciwgbV9ieVZhbEluZm9zKTsKICAgICAgICAgfQogICAgIH0KICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMjk2NzQ5ZGMzMWIyM2M4OTk4
NDk0YjU2ZWYxNDMwODY0YjEyN2VjNi4uNDZmNWZlNDhkMjVjMjdkZDMxOTZjNTgxMjlkYmU1ODU3
ZmJkN2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAg
LTI2OCw2ICsyNjgsMTAgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKFB1
cmVWYWx1ZShDaGVja05vdEVtcHR5LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVk
LCBub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBDaGVja0lk
ZW50OgorICAgICAgICBkZWYoUHVyZVZhbHVlKENoZWNrSWRlbnQsIEFkamFjZW5jeUxpc3QoQWRq
YWNlbmN5TGlzdDo6Rml4ZWQsIG5vZGUtPmNoaWxkMSgpKSwgbm9kZS0+dWlkT3BlcmFuZCgpKSk7
CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAg
ICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5zdG9yYWdlUG9pbnRlcigpKSk7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggYmE0YzAzNTQ5NDY0OTJmNTlmZGZiZDVhNmY2MWE1
YTY3ZDI1MDMyMC4uM2Q4NWNhYWJkNjE1NzNmZGQ1NDlkNWZlNzViYzY0ZjNlNTY0ZjFlNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQ
aGFzZS5jcHAKQEAgLTIwOCw2ICsyMDgsMzMgQEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5nUGhhc2Ug
OiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
CisgICAgICAgICAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgICAgICAgICBVbmlxdWVk
U3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAgICAgIEpT
VmFsdWUgY2hpbGRDb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFs
dWUoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBVbmlxdWVkU3RyaW5nSW1wbCogY29uc3RhbnRV
aWQgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3RhbnRVaWQgPSBhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJpdmF0ZU5h
bWUoKS51aWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBhbHJlYWR5IGZpbHRlcmVkIHRoZSB2YWx1ZSB3aXRo
IFN0cmluZ0lkZW50VXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBoZWxk
IGltcGwgaXMgYWx3YXlzIGF0b21pYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
Y29uc3QgYXV0byogaW1wbCA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUlt
cGwoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaW1wbC0+aXNB
dG9taWMoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50VWlkID0g
c3RhdGljX2Nhc3Q8Y29uc3QgVW5pcXVlZFN0cmluZ0ltcGwqPihpbXBsKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoY29u
c3RhbnRVaWQgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlbW92ZSgpOwor
ICAgICAgICAgICAgICAgICAgICBlbGltaW5hdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGNh
c2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICAgICAgICAgIEpTVmFsdWUgbGVmdCA9IG1fc3Rh
dGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAgICBKU1Zh
bHVlIHJpZ2h0ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDA4ZmZiMmE5MTI5Mzg3MjEz
MTFjYWQyNzc0Njc2MWEyMDY1M2FhNWYuLmU0NzBiOGRkYWI5OTQzOGZkODkwMzUyZTQ1ZTA5MTAy
OWYxYTYyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTEw
Nyw2ICsxMDcsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50OgogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNh
c2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBF
eGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYzQ0MjMxMDE2MzI2
NTdkM2U4M2Y5NzFlNjZhODNmNjI1MDU3MTUyNC4uZDZhOTc5MGIxM2NlMDA2MmQ5NzgxMTQwZWRj
ZTIyMTUyZTQwMGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCkBAIC0xMDEyLDYgKzEwMTIsMTUgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQ
aGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDaGVja0lkZW50OiB7
CisgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgp
OworICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkKKyAgICAgICAgICAgICAgICBmaXhF
ZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJh
eWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOiB7CkBAIC0xNzYwLDYgKzE3
NjksNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBG
dW5jdGlvblVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIGNhc2UgS25vd25T
dHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09i
amVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAg
ICAgIGlmIChhbHdheXNVbmJveFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaAppbmRleCAyOGNhYjA1MWU1MzA5ZTM2ODg2OTRjYmJjNDY1Mzk2NjkyZGU4MDlh
Li44M2ZjZjVjMTAxZTBjN2M3N2E5ZWQyMDk1ZDQ1NWRhNjljNGU2YWYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTMyOCw2ICsxMzI4LDE3IEBAIHN0cnVjdCBOb2RlIHsK
ICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsKICAgICB9
CiAKKyAgICBib29sIGhhc1VpZE9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkg
PT0gQ2hlY2tJZGVudDsKKyAgICB9CisKKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkT3BlcmFu
ZCgpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzVWlkT3BlcmFuZCgpKTsKKyAgICAgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7CisgICAg
fQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3Ao
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDYyZTdjYTk4
YTUyMTEyZDgyZDBlYjZmMGQxNzI4YmVhZjRiOWUxMzEuLmU5YmY3MjcwNGIxN2FhNjg2NzllOWJi
ZWEwZjRmMmFkY2VmOTYzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmgKQEAgLTIwOSw2ICsyMDksNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAg
ICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENo
ZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMs
IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVzdEdlbmVy
YXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5IG11dGF0aW9uLiAq
L1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNzZhZjZhMmYzZTQ1MmIwZjExN2FiYzNhNmJi
NWRkZDJmYWFiMTk4YS4uMzZmMmRmN2M3NWM1MGNhZmQwNmVjOWMyNzg1MWVlYTlmMTBmZmE5OCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTY0OSw2ICs2NDksNyBAQCBjbGFzcyBQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgQ2hlY2tT
dHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgICAgICBjYXNlIENoZWNrTm90
RW1wdHk6CisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICAgICAgY2FzZSBDaGVja0JhZENl
bGw6CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAgICAgICBjYXNlIFZhckluamVjdGlv
bldhdGNocG9pbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oCmluZGV4IDBjMGEyNzc2MDUwZWYxYzYzOGMyMGQ4OGNmZWZlMzIzYzczYTU5MTQuLmIyZDA3
ZDU1ZTUzNjI2ODQ1YjVkM2Y1YzlmZWVhNGU3YmQ4NGRkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIFNh
ZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAg
ICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKKyAgICAgICAg
Y2FzZSBTeW1ib2xVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBj
YXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE5vdFN0cmluZ1ZhclVz
ZToKQEAgLTE4OCw2ICsxODksNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5
cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6
CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgIGNh
c2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdFeHBUZXN0
OgogICAgIGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGYzZjhhZjdhNTJkNTBmOWEyZTcxYzRmOTAxOTk4
NDdiZjA1MDBkNWUuLmFlYTFhMWEwZTE1NDgxNTk1YmI0ZmUwMjZlZWVjYTZkMDIyMWVhN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBA
IC01NzMxLDYgKzU3MzEsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90U3Ry
aW5nVmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7
CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVk
Z2UsIFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90U3ltYm9sKGNlbGwpKTsKK30KKwordm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAo
IW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0
ZVN5bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhl
ZGdlLCB+U3BlY0NlbGwpKQpAQCAtNTg0Miw2ICs1ODU2LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAg
ICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTeW1i
b2xVc2U6CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdChl
ZGdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKaW5kZXggYTVjNDQ1NDdkYTY0YmMyYjYzZjA3M2ExNzExZTZhMTE4MDZm
NTk1Yi4uY2ViZjI4NjNiNDAzMTNhYjk2ZmYzOGM3OGJkNjBkM2E5NDVmYTBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMjQwNiw2ICsy
NDA2LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5n
T2JqZWN0KEVkZ2UsIEdQUlJlZyk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3QoRWRn
ZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPclN0cmluZ09iamVjdChFZGdlKTsKKyAgICB2
b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAgdm9pZCBzcGVjdWxh
dGVTeW1ib2woRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVOb3RDZWxsKEVkZ2UpOwogICAgIHZv
aWQgc3BlY3VsYXRlT3RoZXIoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVNaXNjKEVkZ2UsIEpT
VmFsdWVSZWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDUwNDI5MDViNjJiNTI2YzllZGFkM2ZmYmI1NjdjNDZm
NjdmODBlYWUuLjdiNmMyNWVmMzQyMDMyZjY5NGRjNjRhYWJmOTAyNzNjNGNmNGQ5YjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcApAQCAtMzgyMCw2ICszODIwLDMxIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBDaGVja0lkZW50
OiB7CisgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOworICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFu
ZCgpOworICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICBzcGVjdWxh
dGVTeW1ib2wobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOworICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjaygKKyAgICAgICAgICAgICAgICBCYWRDb25zdGFudENhY2hlLCBKU1ZhbHVl
U291cmNlOjp1bmJveGVkQ2VsbChvcGVyYW5kLmdwcigpKSwgbm9kZS0+Y2hpbGQxKCksCisgICAg
ICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNz
KG9wZXJhbmQuZ3ByKCksIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwKKyAgICAgICAg
ICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBzcGVjdWxhdGVTdHJpbmcobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOwor
ICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQu
Z3ByKCkpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKKyAgICAgICAgICAgICAgICBC
YWRDb25zdGFudENhY2hlLCBKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcGVyYW5kLmdwcigp
KSwgbm9kZS0+Y2hpbGQxKCksCisgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAg
ICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAg
ICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKG9wZXJhbmQuZ3ByKCksIEpTU3RyaW5nOjpvZmZzZXRP
ZlZhbHVlKCkpLAorICAgICAgICAgICAgICAgICAgICBUcnVzdGVkSW1tUHRyKHVpZCkpKTsKKyAg
ICAgICAgfQorICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGZ1bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJl
c3VsdCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNzcwYmRhNThjYWI1MDIzYTFmYTBj
MzhmNGM3YTAzMDhkNDA4MGEzMC4uYTRiODYwMTY4OTdmMTU0YTIxZmJhOWU4OWM3MzJlMGNkNDEw
NzJiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCkBAIC0zODUwLDYgKzM4NTAsMzEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNr
SWRlbnQ6IHsKKyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBub2Rl
LT5jaGlsZDEoKSk7CisgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRP
cGVyYW5kKCk7CisgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgIHNw
ZWN1bGF0ZVN5bWJvbChub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7CisgICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgICAgIEJhZENvbnN0YW50Q2FjaGUsIEpT
VmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wZXJhbmQuZ3ByKCkpLCBub2RlLT5jaGlsZDEoKSwK
KyAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgICAgIEpJ
VENvbXBpbGVyOjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFk
ZHJlc3Mob3BlcmFuZC5ncHIoKSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLAorICAg
ICAgICAgICAgICAgICAgICBUcnVzdGVkSW1tUHRyKHVpZCkpKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIo
KSk7CisgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChub2RlLT5jaGlsZDEoKSwgb3Bl
cmFuZC5ncHIoKSk7CisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAg
ICAgIEJhZENvbnN0YW50Q2FjaGUsIEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wZXJhbmQu
Z3ByKCkpLCBub2RlLT5jaGlsZDEoKSwKKyAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIo
CisgICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpOb3RFcXVhbCwKKyAgICAgICAgICAg
ICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3BlcmFuZC5ncHIoKSwgSlNTdHJpbmc6Om9m
ZnNldE9mVmFsdWUoKSksCisgICAgICAgICAgICAgICAgICAgIFRydXN0ZWRJbW1QdHIodWlkKSkp
OworICAgICAgICB9CisgICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICBicmVhazsKKyAg
ICB9CisKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6IHsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgZnVuY3Rpb24odGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMsIFJldXNlLCBmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmNwcAppbmRleCBlZmExMDRmM2QwNzAwMGI3ZDdiYzQ3M2JjZGYyMDZkMTA1
M2ZjOWIxLi45MzZlZjU1NGFmMjRlMGI2NGZkZjQyOGYxNjNhZThkNzg4ZTk4ZDk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKQEAgLTk3LDYgKzk3LDkgQEAgdm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtpbmQgdXNlS2luZCkKICAgICBj
YXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICBvdXQucHJpbnQoIktub3duU3RyaW5nIik7CiAg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIFN5bWJvbFVzZToKKyAgICAgICAgb3V0LnByaW50KCJT
eW1ib2wiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAg
ICAgICBvdXQucHJpbnQoIlN0cmluZ09iamVjdCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCmluZGV4IGViZjk5ZGFlNjAwYzg4MjVkMjJjYmFj
NjM4MjJkMTViNTU2MDAzNWEuLjI4OWI3ODNlNDFiYjM2MTI5MWM4M2M4ZmFkN2IwOGE1NzhlMGE2
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCkBAIC01Nyw2ICs1Nyw3
IEBAIGVudW0gVXNlS2luZCB7CiAgICAgU3RyaW5nSWRlbnRVc2UsCiAgICAgU3RyaW5nVXNlLAog
ICAgIEtub3duU3RyaW5nVXNlLAorICAgIFN5bWJvbFVzZSwKICAgICBTdHJpbmdPYmplY3RVc2Us
CiAgICAgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2UsCiAgICAgTm90U3RyaW5nVmFyVXNlLApAQCAt
MTE3LDYgKzExOCw4IEBAIGlubGluZSBTcGVjdWxhdGVkVHlwZSB0eXBlRmlsdGVyRm9yKFVzZUtp
bmQgdXNlS2luZCkKICAgICBjYXNlIFN0cmluZ1VzZToKICAgICBjYXNlIEtub3duU3RyaW5nVXNl
OgogICAgICAgICByZXR1cm4gU3BlY1N0cmluZzsKKyAgICBjYXNlIFN5bWJvbFVzZToKKyAgICAg
ICAgcmV0dXJuIFNwZWNTeW1ib2w7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAg
IHJldHVybiBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RV
c2U6CkBAIC0xOTYsNiArMTk5LDcgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkK
ICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2Ug
S25vd25TdHJpbmdVc2U6CisgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgY2FzZSBTdHJpbmdPYmpl
Y3RVc2U6CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5oCmluZGV4IDkxMjc1NGRmYzQwMTUyYjBlZDI0ODM2YWM3NWI4Zjk2OTg0
Mzk5YmIuLjU4MWY0Y2JkOWE3NjhiOWFiMmE4MzkyMWNmMjRkMzUyNGJjODU3MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9y
eS5oCkBAIC04Nyw3ICs4Nyw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAg
ICBtYWNybyhTdHJ1Y3R1cmVfY2xhc3NJbmZvLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgp
KSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX2dsb2JhbE9iamVjdCwgU3RydWN0dXJlOjpnbG9iYWxP
YmplY3RPZmZzZXQoKSkgXAogICAgIG1hY3JvKFN0cnVjdHVyZV9wcm90b3R5cGUsIFN0cnVjdHVy
ZTo6cHJvdG90eXBlT2Zmc2V0KCkpIFwKLSAgICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQs
IFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSkKKyAgICBtYWNybyhTdHJ1Y3R1cmVfc3Ry
dWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSkgXAorICAgIG1hY3JvKFN5
bWJvbF9wcml2YXRlTmFtZSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpCiAKICNkZWZp
bmUgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8oRGly
ZWN0QXJndW1lbnRzX3N0b3JhZ2UsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpLCBz
aXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHAKaW5kZXggNjI3MjhjNzQ2ZWY5MWQ3NGI3ODI5YmIzZjlhNDRjNmQ3
ZjYxZDdiMy4uYjQ5M2YzMDI3ZTgyY2ZjY2U5YzNjY2Y0ODJjMTU1ODYxZDY4Yjk0MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTE4LDYg
KzExOCw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQog
ICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgIGNhc2UgQ2hl
Y2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBTdHJpbmdDaGFyQ29k
ZUF0OgogICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9j
YXRlUHJvcGVydHlTdG9yYWdlOgpAQCAtNDE1LDYgKzQxNiw3IEBAIENhcGFiaWxpdHlMZXZlbCBj
YW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIEtub3duU3RyaW5n
VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAg
ICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBT
eW1ib2xVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBGaW5hbE9iamVjdFVzZToKICAgICAgICAg
ICAgICAgICBjYXNlIE5vdENlbGxVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBPdGhlclVzZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKaW5k
ZXggNWI1ODdkZDA0ODgzY2E3OTQ2NWZiNGUzMGQ5ZDVlZWQ5MzM5MTJmZS4uMDRlMzQ3YjA2YTIz
ODQ1Mjk0YWUyMzc0N2E2MTg0YzVmYTBkMGNlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTUzMiw2ICs1MzIsOSBAQCBjbGFzcyBM
b3dlckRGR1RvTExWTSB7CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgICAgICAgICAg
Y29tcGlsZUNoZWNrQmFkQ2VsbCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q2hlY2tJZGVudDoKKyAgICAgICAgICAgIGNvbXBpbGVDaGVja0lkZW50KCk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgICAgICAgICAgY29tcGls
ZUdldEV4ZWN1dGFibGUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjAyOSw2ICsyMDMyLDIw
IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgc3BlY3VsYXRlKFREWkZhaWx1cmUs
IG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQuaXNaZXJvNjQobG93SlNWYWx1ZShtX25vZGUtPmNo
aWxkMSgpKSkpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGlsZUNoZWNrSWRlbnQoKQorICAgIHsK
KyAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG1fbm9kZS0+dWlkT3BlcmFuZCgpOwor
ICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICBMVmFsdWUgc3ltYm9s
ID0gbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0cmlu
Z0ltcGwgPSBtX291dC5sb2FkUHRyKHN5bWJvbCwgbV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUp
OworICAgICAgICAgICAgc3BlY3VsYXRlKEJhZENvbnN0YW50Q2FjaGUsIGpzVmFsdWVWYWx1ZShz
eW1ib2wpLCBtX25vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1w
bCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgTFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywgbV9oZWFw
cy5KU1N0cmluZ192YWx1ZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkQ29uc3RhbnRDYWNo
ZSwganNWYWx1ZVZhbHVlKHN0cmluZyksIG1fbm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBtX291dC5u
b3RFcXVhbChzdHJpbmdJbXBsLCBtX291dC5jb25zdEludFB0cih1aWQpKSk7CisgICAgICAgIH0K
KyAgICB9CisKICAgICB2b2lkIGNvbXBpbGVHZXRFeGVjdXRhYmxlKCkKICAgICB7CiAgICAgICAg
IExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKQEAgLTcwMzMsNyArNzA1
MCwxNiBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lk
ZW50KGVkZ2UsIHN0cmluZywgc3RyaW5nSW1wbCk7CiAgICAgICAgIHJldHVybiBzdHJpbmdJbXBs
OwogICAgIH0KLSAgICAKKworICAgIExWYWx1ZSBsb3dTeW1ib2woRWRnZSBlZGdlLCBPcGVyYW5k
U3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCisgICAg
eworICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1
bGF0aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IFN5bWJvbFVzZSk7CisKKyAgICAgICAgTFZhbHVl
IHJlc3VsdCA9IGxvd0NlbGwoZWRnZSwgbW9kZSk7CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChl
ZGdlLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAgIExWYWx1
ZSBsb3dOb25OdWxsT2JqZWN0KEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2Rl
ID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VO
VVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtp
bmQoKSA9PSBPYmplY3RVc2UpOwpAQCAtNzQzMCw2ICs3NDU2LDkgQEAgY2xhc3MgTG93ZXJERkdU
b0xMVk0gewogICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICAgICAgc3BlY3Vs
YXRlU3RyaW5nSWRlbnQoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBT
eW1ib2xVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICBzcGVj
dWxhdGVTdHJpbmdPYmplY3QoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTc1MjYsNyAr
NzU1NSwxNiBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgICAgICBtX291dC5sb2Fk
MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpLAogICAgICAgICAgICAgbV9vdXQu
Y29uc3RJbnQzMih2bSgpLnN0cmluZ1N0cnVjdHVyZS0+aWQoKSkpOwogICAgIH0KLSAgICAKKwor
ICAgIExWYWx1ZSBpc05vdFN5bWJvbChMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9
IFNwZWNGdWxsVG9wKQorICAgIHsKKyAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3Zl
blZhbHVlKHR5cGUgJiBTcGVjQ2VsbCwgflNwZWNTeW1ib2wpKQorICAgICAgICAgICAgcmV0dXJu
IHByb3ZlbjsKKyAgICAgICAgcmV0dXJuIG1fb3V0Lm5vdEVxdWFsKAorICAgICAgICAgICAgbV9v
dXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKKyAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50MzIodm0oKS5zeW1ib2xTdHJ1Y3R1cmUtPmlkKCkpKTsKKyAgICB9CisK
ICAgICBMVmFsdWUgaXNBcnJheVR5cGUoTFZhbHVlIGNlbGwsIEFycmF5TW9kZSBhcnJheU1vZGUp
CiAgICAgewogICAgICAgICBzd2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKQEAgLTc3NDksNyAr
Nzc4NywxNyBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgICAgICBOb3RTdHJpbmdP
YmplY3QsIG5vVmFsdWUoKSwgMCwKICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKHN0cnVjdHVy
ZUlELCB3ZWFrU3RydWN0dXJlSUQoc3RyaW5nT2JqZWN0U3RydWN0dXJlKSkpOwogICAgIH0KLSAg
ICAKKworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisg
ICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNw
ZWNTeW1ib2wgfCB+U3BlY0NlbGwsIGlzTm90U3ltYm9sKGNlbGwpKTsKKyAgICB9CisKKyAgICB2
b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxhdGVT
eW1ib2woZWRnZSwgbG93Q2VsbChlZGdlKSk7CisgICAgfQorCiAgICAgdm9pZCBzcGVjdWxhdGVO
b25OdWxsT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewogICAgICAgICBGVExf
VFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNPYmplY3QsIGlzTm90T2Jq
ZWN0KGNlbGwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCA5YWYzMzJlYjc4ZTE4
OWFlNmE1M2IyMjM1MGFmNzdiNWY5ZDdlYjJiLi5jNzhiNGMxOTU2YmY3MDhkOTFjYzJhMTczNzE5
MWVmM2MyNGUwMjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC02NjAsNiArNjYw
LDEwIEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRp
b25FZmZvcnQgZWZmb3J0KQogCiAgICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZv
cyhtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fYnlWYWxDb21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgUGF0
Y2hhYmxlSnVtcCBwYXRjaGFibGVOb3RJbmRleEp1bXAgPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
W2ldLm5vdEluZGV4SnVtcDsKKyAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAg
PSBDb2RlTG9jYXRpb25KdW1wKCk7CisgICAgICAgIGlmIChKdW1wKHBhdGNoYWJsZU5vdEluZGV4
SnVtcCkuaXNTZXQoKSkKKyAgICAgICAgICAgIG5vdEluZGV4SnVtcCA9IENvZGVMb2NhdGlvbkp1
bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihwYXRjaGFibGVOb3RJbmRleEp1bXApKTsKICAgICAg
ICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hC
dWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1wKSk7
CiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2Nh
dGlvbk9mKG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uZG9uZVRhcmdldCk7CiAgICAgICAgIENv
ZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZiht
X2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLnNsb3dQYXRoVGFyZ2V0KTsKQEAgLTY2Nyw2ICs2NzEs
NyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9u
RWZmb3J0IGVmZm9ydCkKICAgICAgICAgCiAgICAgICAgIG1fY29kZUJsb2NrLT5ieVZhbEluZm8o
aSkgPSBCeVZhbEluZm8oCiAgICAgICAgICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJ5
dGVjb2RlSW5kZXgsCisgICAgICAgICAgICBub3RJbmRleEp1bXAsCiAgICAgICAgICAgICBiYWRU
eXBlSnVtcCwKICAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYXJyYXlNb2Rl
LAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGJhZFR5cGVKdW1wLCBkb25l
VGFyZ2V0KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDFhZGU2NjVkZjc5MjgyYzYwYzJh
ODg1Njg1ZmQ1MzE3ZDdhNTU0ZDUuLmRlMjVjOTg2OTBlNDNjN2FlZDJhNTRmYTdiYTQ4NWFkODJj
ZjYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMTQ5LDggKzE0OSw5IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHN0cnVjdCBCeVZhbENvbXBpbGF0aW9uSW5mbyB7CiAgICAgICAgIEJ5
VmFsQ29tcGlsYXRpb25JbmZvKCkgeyB9CiAgICAgICAgIAotICAgICAgICBCeVZhbENvbXBpbGF0
aW9uSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxl
SnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgTWFjcm9Bc3NlbWJsZXI6
OkxhYmVsIGRvbmVUYXJnZXQpCisgICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKHVuc2lnbmVk
IGJ5dGVjb2RlSW5kZXgsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG5vdEluZGV4SnVt
cCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9k
ZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQogICAgICAgICAg
ICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICAgICAsIG5vdEluZGV4
SnVtcChub3RJbmRleEp1bXApCiAgICAgICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1w
KQogICAgICAgICAgICAgLCBhcnJheU1vZGUoYXJyYXlNb2RlKQogICAgICAgICAgICAgLCBkb25l
VGFyZ2V0KGRvbmVUYXJnZXQpCkBAIC0xNTgsNiArMTU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXg7CisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG5vdEluZGV4SnVtcDsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXA7CiAgICAgICAgIEpJVEFy
cmF5TW9kZSBhcnJheU1vZGU7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFy
Z2V0OwpAQCAtMjA0LDYgKzIwNiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGpp
dC5wcml2YXRlQ29tcGlsZUdldEJ5VmFsKGJ5VmFsSW5mbywgcmV0dXJuQWRkcmVzcywgYXJyYXlN
b2RlKTsKICAgICAgICAgfQogCisgICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVHZXRCeVZhbFdp
dGhDYWNoZWRJZChWTSogdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBCeVZhbEluZm8qIGJ5VmFs
SW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9j
ayk7CisgICAgICAgICAgICBqaXQubV9ieXRlY29kZU9mZnNldCA9IGJ5VmFsSW5mby0+Ynl0ZWNv
ZGVJbmRleDsKKyAgICAgICAgICAgIGppdC5wcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hl
ZElkKGJ5VmFsSW5mbywgcmV0dXJuQWRkcmVzcywgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQor
CiAgICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVQdXRCeVZhbChWTSogdm0sIENvZGVCbG9jayog
Y29kZUJsb2NrLCBCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICBK
SVQgaml0KHZtLCBjb2RlQmxvY2spOwpAQCAtMjQ2LDYgKzI1NSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBDb21waWxhdGlvblJlc3VsdCBwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlv
bkVmZm9ydCk7CiAgICAgICAgIAogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlR2V0QnlWYWwo
QnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKKyAgICAgICAgdm9p
ZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKEJ5VmFsSW5mbyosIFJldHVybkFk
ZHJlc3NQdHIsIGNvbnN0IElkZW50aWZpZXImKTsKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGls
ZVB1dEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CiAK
ICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eShCeVZhbEluZm8q
LCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwpAQCAtMzcxLDcgKzM4MSw5IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBKdW1wTGlzdCBlbWl0QXJyYXlTdG9yYWdlUHV0QnlWYWwo
SW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKTsKICAgICAgICAgSnVtcExpc3Qg
ZW1pdEludFR5cGVkQXJyYXlQdXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJh
ZFR5cGUsIFR5cGVkQXJyYXlUeXBlKTsKICAgICAgICAgSnVtcExpc3QgZW1pdEZsb2F0VHlwZWRB
cnJheVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgVHlwZWRB
cnJheVR5cGUpOwotICAgICAgICAKKworICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGVtaXRH
ZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0cnVjdGlvbiosIGNvbnN0IElkZW50aWZpZXImLCBKdW1w
TGlzdCYgZG9uZUNhc2VzLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKTsKKwogICAgICAgICBlbnVtIEZp
bmFsT2JqZWN0TW9kZSB7IE1heUJlRmluYWwsIEtub3duTm90RmluYWwgfTsKIAogICAgICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gSnVtcCBicmFuY2hTdHJ1Y3R1cmUoUmVsYXRpb25hbENvbmRp
dGlvbiwgVCBsZWZ0SGFuZFNpZGUsIFN0cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggOTBiNTMyMTVhYjA0Yzc0MzM4YWRiYTgzNjMwNDBjMzg0
ZGZmYTMxZS4uZGFmMmFmZjM3YzAwMDI1Zjg4NmJkMzEwYzQ0MzdkYzA3ZTM1MDlhYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0xMTA4LDcgKzExMDgsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsK
ICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9u
SW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZh
bENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9m
ZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIHZvaWQg
SklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggOTY5NmZjZWQ5
ZDJmODQ3Mjc1OWIzZDczZTYxZWRjM2E1YjQyYzRhYS4uYzE4MjI2MGVmYTU2YWI5M2FiZjRlMzMx
OWYwMzQ4OWM2MWI5MjI1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCkBAIC0xNTU1LDcgKzE1NTUsMjMgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEoK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLSAgICAKKworICAgIGlmIChiYXNlVmFs
dWUuaXNPYmplY3QoKSAmJiAoc3Vic2NyaXB0LmlzU3ltYm9sKCkgfHwgc3Vic2NyaXB0LmlzU3Ry
aW5nKCkpKSB7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gc3Vic2Ny
aXB0LnRvUHJvcGVydHlLZXkoZXhlYyk7CisKKyAgICAgICAgaWYgKCFzdWJzY3JpcHQuaXNTdHJp
bmcoKSB8fCAhcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgICAgICB1bnNpZ25l
ZCBieXRlY29kZU9mZnNldCA9IGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOworICAg
ICAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgICAgIEJ5VmFsSW5mbyYg
YnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNl
dCAtIDEpOworICAgICAgICAgICAgQVNTRVJUKCFieVZhbEluZm8uc3R1YlJvdXRpbmUpOworICAg
ICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoJnZtLCBleGVjLT5jb2Rl
QmxvY2soKSwgJmJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1Mp
LCBwcm9wZXJ0eU5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgUHJvcGVydHlTbG90IHNsb3Qo
YmFzZVZhbHVlKTsKKyAgICAgICAgYm9vbCBoYXNSZXN1bHQgPSBiYXNlVmFsdWUuZ2V0UHJvcGVy
dHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoaGFzUmVzdWx0ID8gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpIDog
anNVbmRlZmluZWQoKSk7CisgICAgfQorCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChl
eGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRy
KE9VUl9SRVRVUk5fQUREUkVTUykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHAKaW5kZXggNGVmMDZkOTIxM2EyYjFkYmZmYmE0YzdjMzM0ZDJmNmYxYzQ3OTE3ZS4uZTgyZDhi
YjVjNzM1NDJlODhjMGE2YzI2NDBhOTIzODUwNTlkYmMxNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTEwMCw4ICsxMDAsMTUgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
LmFycmF5UHJvZmlsZTsKICAgICAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhiYXNlLCBy
ZWdUMCwgcHJvcGVydHksIHJlZ1QxKTsKLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlh
dGVJbnRlZ2VyKHJlZ1QxKTsKIAorICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdU
MCwgYmFzZSk7CisKKyAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBpbXBsZW1lbnQgcGF0Y2hhYmxl
QnJhbmNoNjQuCisgICAgSnVtcCBpc0luZGV4ID0gZW1pdEp1bXBJZkltbWVkaWF0ZUludGVnZXIo
cmVnVDEpOworICAgIFBhdGNoYWJsZUp1bXAgbm90SW5kZXggPSBwYXRjaGFibGVKdW1wKCk7Cisg
ICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOworCisgICAgaXNJbmRleC5saW5rKHRoaXMpOwogICAg
IC8vIFRoaXMgaXMgdGVjaG5pY2FsbHkgaW5jb3JyZWN0IC0gd2UncmUgemVyby1leHRlbmRpbmcg
YW4gaW50MzIuICBPbiB0aGUgaG90IHBhdGggdGhpcyBkb2Vzbid0IG1hdHRlci4KICAgICAvLyBX
ZSBjaGVjayB0aGUgdmFsdWUgYXMgaWYgaXQgd2FzIGEgdWludDMyIGFnYWluc3QgdGhlIG1fdmVj
dG9yTGVuZ3RoIC0gd2hpY2ggd2lsbCBhbHdheXMgZmFpbCBpZgogICAgIC8vIG51bWJlciB3YXMg
c2lnbmVkIHNpbmNlIG1fdmVjdG9yTGVuZ3RoIGlzIGFsd2F5cyBsZXNzIHRoYW4gaW50bWF4IChz
aW5jZSB0aGUgdG90YWwgYWxsb2NhdGlvbgpAQCAtMTEwLDcgKzExNyw2IEBAIHZvaWQgSklUOjpl
bWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAv
LyBleHRlbmRpbmcgc2luY2UgaXQgbWFrZXMgaXQgZWFzaWVyIHRvIHJlLXRhZyB0aGUgdmFsdWUg
aW4gdGhlIHNsb3cgY2FzZS4KICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihyZWdUMSwgcmVnVDEpOwog
Ci0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKICAgICBlbWl0
QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwocmVnVDAsIHJlZ1QyLCBwcm9maWxlKTsKICAgICBh
bmQzMihUcnVzdGVkSW1tMzIoSW5kZXhpbmdTaGFwZU1hc2spLCByZWdUMik7CiAKQEAgLTE1MCw3
ICsxNTYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSgpOwogICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
LmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBt
b2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21w
aWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIGRv
bmUpKTsKIH0KIAogSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXREb3VibGVMb2FkKEluc3RydWN0aW9u
KiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKQEAgLTE5NSw2ICsyMDEsMzkgQEAgSklUOjpKdW1w
TGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVt
cCYgYmFkVHlwZSkKICAgICByZXR1cm4gc2xvd0Nhc2VzOwogfQogCitKSVRHZXRCeUlkR2VuZXJh
dG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVD
YXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykKK3sKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZDsKKworICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5v
dEpTQ2VsbChyZWdUMSkpOworICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAg
ICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhy
ZWdUMSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJl
LmdldCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgU3ltYm9sOjpvZmZzZXRP
ZlByaXZhdGVOYW1lKCkpLCByZWdUMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2Vz
LmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6
c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAg
ICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCBy
ZWdUMSk7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdU
MSkpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNz
KHJlZ1QxLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0lt
cGw6OmZsYWdJc0F0b21pYygpKSkpOworICAgIH0KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5j
aFB0cihOb3RFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkp
KTsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAorICAgICAgICBtX2NvZGVCbG9jaywg
Q29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3Rl
cnMoKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIERv
bnRTcGlsbCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNh
c2VzLmFwcGVuZChqdW1wKCkpOworCisgICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7
CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgpLmxpbmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBj
YWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwg
Z2VuLnN0dWJJbmZvKCksIHJlZ1QwLCBwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVw
b3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBl
bmQoanVtcCgpKTsKKworICAgIHJldHVybiBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19v
cF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93
Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBAIC0yMDIsOCArMjQxLDggQEAgdm9pZCBKSVQ6OmVtaXRT
bG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9y
PFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
LmFycmF5UHJvZmlsZTsKICAgICAKLSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5
IGludDMyIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8v
IGJhc2UgY2VsbCBjaGVjaworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50
MzIgY2hlY2sKICAgICBKdW1wIG5vbkNlbGwgPSBqdW1wKCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNrCiAgICAgSnVtcCBub3RTdHJpbmcgPSBicmFuY2hTdHJ1
Y3R1cmUoTm90RXF1YWwsIApAQCAtMjk5LDcgKzMzOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1
dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBMYWJl
bCBkb25lID0gbGFiZWwoKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVu
ZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBk
b25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlv
bkluZm8obV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBk
b25lKSk7CiAKIH0KIApAQCAtOTk5LDYgKzEwMzgsMzUgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21w
aWxlR2V0QnlWYWwoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJu
QWQKICAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVz
cywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7CiB9CiAKK3ZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKEJ5VmFsSW5mbyogYnlWYWxJbmZv
LCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSkKK3sKKyAgICBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uID0gbV9jb2Rl
QmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7
CisKKyAgICBKdW1wTGlzdCBkb25lQ2FzZXM7CisgICAgSnVtcExpc3Qgc2xvd0Nhc2VzOworCisg
ICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4gPSBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoY3Vy
cmVudEluc3RydWN0aW9uLCBwcm9wZXJ0eU5hbWUsIGRvbmVDYXNlcywgc2xvd0Nhc2VzKTsKKwor
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fY29kZUJsb2NrLT5tX2xvY2spOworICAg
IExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKm1fdm0sICp0aGlzLCBtX2NvZGVCbG9jayk7CisgICAg
cGF0Y2hCdWZmZXIubGluayhzbG93Q2FzZXMsIENvZGVMb2NhdGlvbkxhYmVsKE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjo6Y3JlYXRlRnJvbUV4ZWN1dGFibGVBZGRyZXNzKHJldHVybkFkZHJlc3MudmFs
dWUoKSkpLmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZvLT5yZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkp
OworICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZUNhc2VzLCBieVZhbEluZm8tPmJhZFR5cGVKdW1w
LmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZvLT5iYWRUeXBlSnVtcFRvRG9uZSkpOworICAgIGZvciAo
Y29uc3QgYXV0byYgY2FsbFNpdGUgOiBtX2NhbGxzKSB7CisgICAgICAgIGlmIChjYWxsU2l0ZS50
bykKKyAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoY2FsbFNpdGUuZnJvbSwgRnVuY3Rpb25Q
dHIoY2FsbFNpdGUudG8pKTsKKyAgICB9CisgICAgZ2VuLmZpbmFsaXplKHBhdGNoQnVmZmVyKTsK
KworICAgIGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAor
ICAgICAgICBtX2NvZGVCbG9jaywgcGF0Y2hCdWZmZXIsCisgICAgICAgICgiQmFzZWxpbmUgZ2V0
X2J5X3ZhbCB3aXRoIGNhY2hlZCBwcm9wZXJ0eSBuYW1lICclcycgc3R1YiBmb3IgJXMsIHJldHVy
biBwb2ludCAlcCIsIHByb3BlcnR5TmFtZS5pbXBsKCktPnV0ZjgoKS5kYXRhKCksIHRvQ1N0cmlu
ZygqbV9jb2RlQmxvY2spLmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CisgICAgYnlW
YWxJbmZvLT5jYWNoZWRJZCA9IHByb3BlcnR5TmFtZTsKKworICAgIFJlcGF0Y2hCdWZmZXIgcmVw
YXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJ
bmZvLT5ub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRp
bmUtPmNvZGUoKS5jb2RlKCkpKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVu
Y3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmlj
KSk7Cit9CisKIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJh
eU1vZGUpCiB7CiAgICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJs
b2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMy
XzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAKaW5kZXggNjA5Y2ExMzg4MjI3ZGI1YmRhNTM5Mjc1MzAzZGFkZDJkOGIxY2ViYy4uMzE1
ZmNkYWVkY2VlMDVkOTZhMjZkZmE1NjgzODA1ZjU4YjFhYTlkMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xNTIs
OCArMTUyLDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAs
IHByb3BlcnR5LCByZWdUMywgcmVnVDIpOwogICAgIAotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMy
KE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAg
IGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CisgICAgUGF0Y2hhYmxl
SnVtcCBub3RJbmRleCA9IHBhdGNoYWJsZUJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwog
ICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDEsIHByb2ZpbGUp
OwogICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QxKTsKIApA
QCAtMTkyLDcgKzE5Myw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAg
ICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBi
YWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQo
QnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUs
IG1vZGUsIGRvbmUpKTsKIH0KIAogSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRDb250aWd1b3VzTG9h
ZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIEluZGV4aW5nVHlwZSBleHBl
Y3RlZFNoYXBlKQpAQCAtMjM2LDcgKzIzNyw0MyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEFy
cmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQogICAg
IAogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9Ci0gICAgCisKK0pJVEdldEJ5SWRHZW5lcmF0b3Ig
SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2Vz
LCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQoreworICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOworCisgICAgLy8gYmFzZTogdGFnKHJlZ1QxKSwgcGF5bG9hZChyZWdU
MCkKKyAgICAvLyBwcm9wZXJ0eTogdGFnKHJlZ1QzKSwgcGF5bG9hZChyZWdUMikKKworICAgIHNs
b3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMykpOworICAgIGlmIChwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0
cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNl
dCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRk
cmVzcyhyZWdUMiwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1
YWwsIEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0
cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIEpT
U3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMik7CisgICAgICAgIHNsb3dDYXNlcy5hcHBl
bmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMikpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5k
KGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QyLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNl
dCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21pYygpKSkpOworICAgIH0K
KyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDIsIFRydXN0ZWRJ
bW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3Ig
Z2VuKAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwg
UmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAgSlNWYWx1ZVJlZ3MocmVn
VDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgRG9udFNwaWxsKTsKKyAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAo
KSk7CisKKyAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwoKTsKKyAgICBnZW4uc2xvd1Bh
dGhKdW1wKCkubGluayh0aGlzKTsKKworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oV2l0
aFByb2ZpbGUsIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgZHN0LCBnZW4uc3R1YkluZm8oKSwg
cmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1Bh
dGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgp
KTsKKworICAgIHJldHVybiBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlf
dmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5
Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQ7CkBAIC0yNDQsOCArMjgxLDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dl
dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMK
ICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAg
IEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJv
ZmlsZTsKICAgICAKLSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNo
ZWNrCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2Vs
bCBjaGVjaworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sK
IAogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8v
IGJhc2UgYXJyYXkgY2hlY2sKQEAgLTMxNCw3ICszNTEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9w
dXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFi
ZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBl
bmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwg
ZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRp
b25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwg
ZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0
QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFk
VHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbC5oCmluZGV4IGU1NzkwZDc4NzIyNmJlYTc2MDI0YzlkMWQ2NmE2NzYwZjY0ZGU1
YTIuLjgzZjVkZTI0ODUyYmMzNzhlZTBhNzcwMzlmNDYzMTgyNWZkZGRiYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC03OSw2ICs3OSw4IEBAIGNsYXNzIFN5bWJv
bCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3Rh
dGUqKSBjb25zdDsKIAorICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZQcml2YXRlTmFtZSgpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTeW1ib2wsIG1fcHJpdmF0ZU5hbWUpOyB9CisKIHByb3Rl
Y3RlZDoKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2I2ZTdh
NGJhOGFiYjI5NWI0ZDUxMzEwNTI0MWNlZmMzZDgxMGZkZi4uNGU5MDQxNGUxY2NiODIzMmU1MzE3
MTk1OGNmZjMxZDY2YjIxMzlhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE1LTA4LTA0ICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIEludHJvZHVj
ZSBnZXRfYnlfaWQgbGlrZSBJQyBpbnRvIGdldF9ieV92YWwgd2hlbiB0aGUgZ2l2ZW4gbmFtZSBp
cyBTdHJpbmcgb3IgU3ltYm9sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDc0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3ludGhldGljIGJlbmNobWFya3MgdGhhdCByZXBsYWNlcyBub3JtYWwg
cHJvcGVydHkgbG9hZCB3aXRoIHN5bWJvbC9zdHJpbmcga2V5ZWQgbG9hZC4KKworICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1m
cm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJv
dG8tb3Itc2VsZi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1w
cm90by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4t
ZnJvbS10cnktYmxvY2suaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3It
c2VsZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxm
LW9yLXByb3RvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRtbDogQWRkZWQuCisgICAgICAgICog
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qczogQWRkZWQuCisgICAgICAgICog
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJs
b2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKEEpOgorICAgICAgICAoQik6CisgICAgICAgIChDKToK
KyAgICAgICAgKEQpOgorICAgICAgICAoRSk6CisgICAgICAgIChGKToKKyAgICAgICAgKEcpOgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qczogQWRkZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1w
cm90by1vci1zZWxmLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgor
ICAgICAgICAoRm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qczogQWRkZWQuCisgICAgICAgIChmb28p
OgorICAgICAgICAoYmFyKToKKyAgICAgICAgKEZvbyk6CisgICAgICAgICoganMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzOiBBZGRl
ZC4KKyAgICAgICAgKEEpOgorICAgICAgICAoQik6CisgICAgICAgIChDKToKKyAgICAgICAgKEQp
OgorICAgICAgICAoRSk6CisgICAgICAgIChGKToKKyAgICAgICAgKEcpOgorICAgICAgICAoZm9v
KToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qczogQWRkZWQuCisgICAgICAgICoganMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxm
LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoRm9v
KToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFk
ZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtc2VsZi1vci1wcm90by5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAo
YmFyKToKKyAgICAgICAgKEZvbyk6CisKIDIwMTUtMDgtMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNjcmlwdCBwYXRocyBpbiB0aGVzZSB0
ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
Y2NmNDNhZmEwN2QzYzhlMGYxNzg5MmVlZGE3OTI3ZTIxYjgxOGIwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
bm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiMzdjNTAwMDBjMGExZDFlMmYyNjI4NTdmNzliNGVjNDE0
N2UwYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ODJjNDUwZDk1NWFl
OTk2NGVlMjViZmYyYjVmYzBjYjY2ZjQ1MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU5ZWYxNDE1NzU4NGNhNjE2MDY0Njg3NTk4Y2ZiZDRkYjc5N2ZlZmIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWlu
LWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTZhNjY3Mjk3MDM2YTQ1
YzVmMzJiNzAxYzBiYzdlZmIyZmJkYTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jaworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnkt
YmxvY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmM5NjNhMDEyYjAyY2YzNjE0NDVmNjdjNmVjYmQ4Y2Qx
OGIwYjJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwKQEAgLTAsMCArMSwxMiBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlYzBmYzcwZWU3YTI0
NTU1ZmIwZmQ4YWJiNmEzZTQ2YTdmZDUwNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzZm
NThkNDE1N2I1MWJiOTg1MzgyZGM4MWE2ZDk0OGZiOWRiMDI3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iZWY5MmM5MDc5Y2MyZGJkZGFiZTRjYjY1M2IzMjNmZmZlNTM5NzQ0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3Rv
LW9yLXNlbGYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc2YWI2MTFiZDQ1ZGUzMDQyNmY2YmI1NGJlNjk1MzkwYjczMGEwODcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctcHJvdG8tb3Itc2VsZi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
cHJvdG8tb3Itc2VsZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWIxYWE1N2VjYWI2YTFhMWE3ODRkYjVlODg0MmZlMmJhZGI4NWMyOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzc1MWI2NGU4MjJhYjJkZWM0N2FkOWE5ZjQ2
NjhlMzc5ZTFmMDc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA0MjE3MTM0Zjk4Mjg5MDQzOTU2ODJmODg3MDZkMmM2N2FkODhiNDYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNS
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90bworCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8u
aHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxm
LW9yLXByb3RvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA0YTZiOTljNWI1ZTMwNmQ4M2I2ZjI1MzQyM2Ew
ZmY4MTM1OGUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmh0bWwKQEAgLTAsMCArMSwxMiBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTAw
YzVkOGI4ZjhjZTI4NTYxYzdiNTEwYTc4M2Q2NTEyNTNiZGUyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8g
ZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQzOTBlZDk1MmNlZWUyYTIwZWZlYzRkYjEwOTM1M2I3NzNiMjhm
YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ODJjNDUwZDk1NWFlOTk2
NGVlMjViZmYyYjVmYzBjYjY2ZjQ1MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5
ZWYxNDE1NzU4NGNhNjE2MDY0Njg3NTk4Y2ZiZDRkYjc5N2ZlZmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZy
b20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzU0YmIwZThlNTY4YzhkMDIw
NmU2NDllNTI5NzRiM2Y5ZTQyYTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1jaGFpbi1mcm9tLXRyeS1ibG9jaworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxv
Y2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43OTc1Zjk5MjgwZTcyMzM1YzJiNTRkM2Q5M2YwODYxMTgzMTk3
NDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwKQEAgLTAsMCArMSwxMiBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzMTQ5NGE5YjQ1NjJmOWUx
NjkwNDc4OTdhYjYwNjM1ZGYxMTQ4NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWJmYWNh
N2E1ZTRiNzI4OGVjZWQyNmU4NTM2MGQ1NmUwNjdjN2ExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1w
cm90by1vci1zZWxmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MTVkMjYyY2VhNTIwNWNmNWYzY2I2MzdhNzg4ZGEzMmIwZTNhNmM0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9y
LXNlbGYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU1ODE1Y2UzM2U4YWM3NzUxMDZkYWIyYzJhN2I0MjYxNGY5MzhjZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtcHJvdG8tb3Itc2VsZi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJv
dG8tb3Itc2VsZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ2
MDVjMDc2MWMyMDhiZWZkNjI5ZWJkMjJhNGZkZjlmZTg0OGMzYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWNlNDYyNDVlODg2YmUyN2Y1MTA2NmE1MTczYzQ5
NTFmMmEyMGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA3NjY5MTA4YmFjMWNlNmQxZWE4NTA4MDM0NDUzODFjZGM1ZGFmNmQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90bworCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRt
bCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9y
LXByb3RvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY1ZjNkNzA0ODFhY2NhYWYwNWEwMDAwNGE1ZmU1Mjk2
YTMyZWJkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkyNTg5ZjFlYmI4YzEyZGUxY2EwM2Y4MTIyZmQ0MjI1NDMxMDE3NDcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlLmpzCkBAIC0wLDAgKzEsMTQgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9ICdh
JywgbCA9ICdsJzsKKyAgICB2YXIgbyA9IHtbYV06MX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFts
XToxM307CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07CisgICAgICAgIHZhciB0bXAgPSBv
OworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHRtcDsKKyAgICB9CisgICAgaWYgKHJlc3Vs
dCAhPSAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9
KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRiNTk0MDFkN2Y1NzI4NDcxNGZlN2QzZDVlMDQ1MjExYmQ0N2MxNTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKQEAgLTAs
MCArMSwxNCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gJ2EnLCBiID0gJ2InLCBjID0g
J2MnLCBkID0gJ2QnLCBlID0gJ2UnLCBmID0gJ2YnLCBnID0gJ2cnLCBoID0gJ2gnLCBpID0gJ2kn
LCBqID0gJ2onLCBrID0gJ2snLCBsID0gJ2wnOworICAgIHZhciBvID0ge1thXToxLCBbYl06Miwg
W2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwg
W2tdOjExfTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2JdOjMsIFtjXTo0LCBbZF06NSwgW2VdOjYs
IFtmXTo3LCBbZ106OCwgW2hdOjksIFtpXToxMCwgW2pdOjExLCBba106MTIsIFtsXToxM307Cisg
ICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IDEwMDAw
MDA7ICsraW5kZXgpIHsKKyAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIF4gb1tjXSBeIG9b
ZF0gXiBvW2VdIF4gb1tmXSBeIG9bZ10gXiBvW2hdIF4gb1tpXSBeIG9bal0gXiBvW2tdOworICAg
ICAgICB2YXIgdG1wID0gbzsKKyAgICAgICAgbyA9IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAg
fQorICAgIGlmIChyZXN1bHQgIT0gNjUwMDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnkt
YmxvY2suanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmOTcwZmVl
MjRiMGVmNjU1MjkyY2FlZGE0MWM2YmViMDBlMGQ0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
YWluLWZyb20tdHJ5LWJsb2NrLmpzCkBAIC0wLDAgKzEsNDkgQEAKK3ZhciBmID0gJ2YnOworCitm
dW5jdGlvbiBBKCkgeyB9CisKK0EucHJvdG90eXBlID0ge1tmXTo0Mn07CisKK2Z1bmN0aW9uIEIo
KSB7IH0KKworQi5wcm90b3R5cGUgPSBuZXcgQSgpOworCitmdW5jdGlvbiBDKCkgeyB9CisKK0Mu
cHJvdG90eXBlID0gbmV3IEIoKTsKKworZnVuY3Rpb24gRCgpIHsgfQorCitELnByb3RvdHlwZSA9
IG5ldyBDKCk7CisKK2Z1bmN0aW9uIEUoKSB7IH0KKworRS5wcm90b3R5cGUgPSBuZXcgRCgpOwor
CitmdW5jdGlvbiBGKCkgeyB9CisKK0YucHJvdG90eXBlID0gbmV3IEUoKTsKKworZnVuY3Rpb24g
RygpIHsgfQorCitHLnByb3RvdHlwZSA9IG5ldyBGKCk7CisKK2Z1bmN0aW9uIGZvbyhvKSB7Cisg
ICAgdHJ5IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDsgKytpKQorICAgICAgICAgICAgcmVzdWx0ICs9IG9bZl07CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4gNTI7CisgICAg
fQorfQorCit2YXIgcmVzdWx0ID0gMDsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kp
CisgICAgcmVzdWx0ICs9IGZvbyhuZXcgRygpKTsKKworaWYgKHJlc3VsdCAhPSA0MjAwMDAwMCkK
KyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI4OGFhNWJiYTEyZWYwMzk5ZjgxZjkwNGNmZGJlNDhk
MzhkOWMyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LmpzCkBAIC0wLDAgKzEsOSBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gJ2EnLCBiID0g
J2InLCBjID0gJ2MnLCBkID0gJ2QnLCBlID0gJ2UnLCBmID0gJ2YnLCBnID0gJ2cnLCBoID0gJ2gn
LCBpID0gJ2knLCBqID0gJ2onLCBrID0gJ2snOworICAgIHZhciBvID0ge1thXToxLCBbYl06Miwg
W2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwg
W2tdOjExfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGlu
ZGV4IDwgMTAwMDAwMDsgKytpbmRleCkKKyAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIHwg
b1tjXSBeIG9bZF0gJiBvW2VdIF4gb1tmXSB8IG9bZ10gXiBvW2hdICYgb1tpXSBeIG9bal0gfCBv
W2tdOworICAgIGlmIChyZXN1bHQgIT0gMTUwMDAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNl
bGYuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY3NDkzYjk4ZjYxMGQxYzRh
ZDliODNlZWNmNjFhNjdmOWVjYWFiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2Vs
Zi5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9ICdmJzsKKworZnVuY3Rpb24gZm9vKG8pIHsK
KyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0
ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgeworICAgICAgICBm
b3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0g
Zm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28o
KSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9IGJhcihbbmV3
IEZvbygpLCB7W2ZdOjI0fV0pOworCitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJv
dyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTFkY2Uz
YzI1N2Q4ZDlkODA0ZTU0MGE4MDhmNjg0YjQ5N2YzMjkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1x
dWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAg
KzEsMjIgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9ICdhJzsKKyAgICB2YXIgbCA9ICds
JzsKKyAgICB2YXIgYiA9ICdiJzsKKyAgICB2YXIgYyA9ICdjJzsKKworICAgIHZhciBvID0ge1th
XToxfTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKKyAgICB2YXIgcSA9IHtbYV06Mywg
W2JdOjN9OworICAgIHZhciByID0ge1thXTo0LCBbY106NX07CisgICAgdmFyIHJlc3VsdCA9IDA7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0
IF49IG9bYV07CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAg
cCA9IHE7CisgICAgICAgIHEgPSByOworICAgICAgICByID0gdG1wOworICAgIH0KKyAgICBpZiAo
cmVzdWx0ICE9IDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanMgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJv
dG8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWJlYzEwN2NhN2ZhMzgwZjFiYzk2ZWY3ZTlhZTNhZmNkNTExNzJj
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qcwpAQCAtMCwwICsxLDI0IEBA
Cit2YXIgZiA9ICdmJzsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30K
KworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEu
bGVuZ3RoOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5
cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9IGJhcihbe1tmXToyNH0sIG5ldyBGb28oKV0pOwor
CitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NWQzMmFmNTAzMmNkMDQ1ODU3ODQ5NWMzNzc5OTI1
OTg1ZjMwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTQgQEAKKyhmdW5jdGlvbigpIHsKKyAg
ICB2YXIgYSA9IFN5bWJvbCgpLCBsID0gU3ltYm9sKCk7CisgICAgdmFyIG8gPSB7W2FdOjF9Owor
ICAgIHZhciBwID0ge1thXToyLCBbbF06MTN9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKSB7CisgICAgICAgIHJlc3VsdCBePSBvW2Fd
OworICAgICAgICB2YXIgdG1wID0gbzsKKyAgICAgICAgbyA9IHA7CisgICAgICAgIHAgPSB0bXA7
CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmJlOTcxYjYxNjM1OTRjZTIwNDNlMjc5NTUwMDdl
ODMwYjA1YjhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLmpzCkBAIC0wLDAgKzEsMTQgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIg
YSA9IFN5bWJvbCgpLCBiID0gU3ltYm9sKCksIGMgPSBTeW1ib2woKSwgZCA9IFN5bWJvbCgpLCBl
ID0gU3ltYm9sKCksIGYgPSBTeW1ib2woKSwgZyA9IFN5bWJvbCgpLCBoID0gU3ltYm9sKCksIGkg
PSBTeW1ib2woKSwgaiA9IFN5bWJvbCgpLCBrID0gU3ltYm9sKCksIGwgPSBTeW1ib2woKTsKKyAg
ICB2YXIgbyA9IHtbYV06MSwgW2JdOjIsIFtjXTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106
NywgW2hdOjgsIFtpXTo5LCBbal06MTAsIFtrXToxMX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFti
XTozLCBbY106NCwgW2RdOjUsIFtlXTo2LCBbZl06NywgW2ddOjgsIFtoXTo5LCBbaV06MTAsIFtq
XToxMSwgW2tdOjEyLCBbbF06IDEzfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZh
ciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkgeworICAgICAgICByZXN1bHQg
Kz0gb1thXSBeIG9bYl0gXiBvW2NdIF4gb1tkXSBeIG9bZV0gXiBvW2ZdIF4gb1tnXSBeIG9baF0g
XiBvW2ldIF4gb1tqXSBeIG9ba107CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0g
cDsKKyAgICAgICAgcCA9IHRtcDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSA2NTAwMDAwKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxv
Y2suanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2Y4YWM3OGE4NjA0MzBkYjY3YWNjNGVlMzc3MGQzMjczMzgwMmUx
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMKQEAgLTAsMCAr
MSw0OSBAQAordmFyIGYgPSBTeW1ib2woIkNvY29hIik7CisKK2Z1bmN0aW9uIEEoKSB7IH0KKwor
QS5wcm90b3R5cGUgPSB7W2ZdOjQyfTsKKworZnVuY3Rpb24gQigpIHsgfQorCitCLnByb3RvdHlw
ZSA9IG5ldyBBKCk7CisKK2Z1bmN0aW9uIEMoKSB7IH0KKworQy5wcm90b3R5cGUgPSBuZXcgQigp
OworCitmdW5jdGlvbiBEKCkgeyB9CisKK0QucHJvdG90eXBlID0gbmV3IEMoKTsKKworZnVuY3Rp
b24gRSgpIHsgfQorCitFLnByb3RvdHlwZSA9IG5ldyBEKCk7CisKK2Z1bmN0aW9uIEYoKSB7IH0K
KworRi5wcm90b3R5cGUgPSBuZXcgRSgpOworCitmdW5jdGlvbiBHKCkgeyB9CisKK0cucHJvdG90
eXBlID0gbmV3IEYoKTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICB0cnkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisg
ICAgICAgICAgICByZXN1bHQgKz0gb1tmXTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVybiA1MjsKKyAgICB9Cit9CisKK3ZhciByZXN1bHQg
PSAwOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICByZXN1bHQgKz0gZm9v
KG5ldyBHKCkpOworCitpZiAocmVzdWx0ICE9IDQyMDAwMDAwKQorICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZDU5ZmQ4ZTBiYjk5MTRlZWQ2YmY0ZWVkMTU1MDBjNDhmMmM0NDJhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKQEAgLTAsMCArMSw5IEBA
CisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSBTeW1ib2woKSwgYiA9IFN5bWJvbCgpLCBjID0g
U3ltYm9sKCksIGQgPSBTeW1ib2woKSwgZSA9IFN5bWJvbCgpLCBmID0gU3ltYm9sKCksIGcgPSBT
eW1ib2woKSwgaCA9IFN5bWJvbCgpLCBpID0gU3ltYm9sKCksIGogPSBTeW1ib2woKSwgayA9IFN5
bWJvbCgpOworICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwg
W2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcmVz
dWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRl
eCkKKyAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIHwgb1tjXSBeIG9bZF0gJiBvW2VdIF4g
b1tmXSB8IG9bZ10gXiBvW2hdICYgb1tpXSBeIG9bal0gfCBvW2tdOworICAgIGlmIChyZXN1bHQg
IT0gMTUwMDAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanMgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNl
bGYuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTJmODJhYjI2OGE3MzI5MzcwODU3NmJjNzgwNmVjYTY3YjZhZWI4
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcwpAQCAtMCwwICsxLDI0IEBA
Cit2YXIgZiA9IFN5bWJvbCgiQ29jb2EiKTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1
cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBq
ID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0p
OworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisK
K0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9IGJhcihbbmV3IEZvbygpLCB7
W2ZdOjI0fV0pOworCitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3Ig
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTgzNjJhZGVhNzBhYjgy
MDRkZTVkNTViOWU0YzU2OGMxMTBkMDc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMjIgQEAK
KyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgiQ29jb2EiKTsKKyAgICB2YXIgbCA9
IFN5bWJvbCgpOworICAgIHZhciBiID0gU3ltYm9sKCk7CisgICAgdmFyIGMgPSBTeW1ib2woKTsK
KworICAgIHZhciBvID0ge1thXToxfTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKKyAg
ICB2YXIgcSA9IHtbYV06MywgW2JdOjN9OworICAgIHZhciByID0ge1thXTo0LCBbY106NX07Cisg
ICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kp
IHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAg
ICBvID0gcDsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSByOworICAgICAgICByID0gdG1w
OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8u
anMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLXNlbGYtb3ItcHJvdG8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzAwOGMzNjQxMjBiZjJhYTQ4YWQ3
NGFhM2I1YTZmYzdiOTY3YmZiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5q
cwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9IFN5bWJvbCgnQ29jb2EnKTsKKworZnVuY3Rpb24g
Zm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2
YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgewor
ICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisgICAgICAgICAgICBy
ZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmdW5j
dGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9
IGJhcihbe1tmXToyNH0sIG5ldyBGb28oKV0pOworCitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkK
KyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258270</attachid>
            <date>2015-08-05 01:39:09 -0700</date>
            <delta_ts>2015-08-05 01:49:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150805013901.patch</filename>
            <type>text/plain</type>
            <size>103860</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MzllNTViYTc1MTg0NTIwNDA5MjVmODQ5N2Y2MDI4MzFhYzhiOGExLi5iMDE2MGE0M2U4Y2EwYjg1
NDI1YzU4NWRiODVhYWI2YjJlOWQ0NTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDIgQEAKKzIwMTUtMDgtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGdldF9ieV9pZCBsaWtlIElDIGludG8gZ2V0X2J5
X3ZhbCB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIFN0cmluZyBvciBTeW1ib2wKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBnZXRf
YnlfaWQgSUMgdG8gZ2V0X2J5X3ZhbCBvcGVyYXRpb24gYnkgY2FjaGluZyB0aGUgc3RyaW5nIC8g
c3ltYm9sIGlkLgorICAgICAgICBUaGUgSUMgc2l0ZSBvbmx5IGNhY2hlcyBvbmUgaWQuIEFmdGVy
IGNoZWNraW5nIHRoYXQgdGhlIGdpdmVuIGlkIGlzIHRoZSBzYW1lIHRvIHRoZQorICAgICAgICBj
YWNoZWQgb25lLCB3ZSBwZXJmb3JtIHRoZSBnZXRfYnlfaWQgSUMgb250byBpdC4KKyAgICAgICAg
QW5kIGJ5IGNvbGxlY3RpbmcgSUMgU3RydWN0dXJlU3R1YkluZm8gaW5mb3JtYXRpb24sIHdlIHBh
c3MgaXQgdG8gdGhlIERGRyBhbmQgREZHCisgICAgICAgIGNvbXBpbGVzIGdldF9ieV92YWwgb3Ag
Y29kZSBpbnRvIENoZWNrSWRlbnQgKHdpdGggZWRnZSB0eXBlIGNoZWNrKSBhbmQgR2V0QnlJZCBy
ZWxhdGVkCisgICAgICAgIG9wZXJhdGlvbnMgd2hlbiB0aGUgZ2l2ZW4gZ2V0X2J5X3ZhbCBsZXZl
cmFnZXMgdGhlIHByb3BlcnR5IGxvYWQgd2l0aCB0aGUgY2FjaGVkIGlkLgorCisgICAgICAgIFRv
IGVuc3VyZSB0aGUgaW5jb21pbmcgdmFsdWUgaXMgdGhlIGV4cGVjdGVkIGlkLCBpbiBERkcgbGF5
ZXIsIHdlIHVzZSBTeW1ib2xVc2UgYW5kCisgICAgICAgIFN0cmluZ0lkZW50VXNlIHRvIGVuZm9y
Y2UgdGhlIHR5cGUuIFRvIHVzZSBpdCwgdGhpcyBwYXRjaCBpbXBsZW1lbnRzIFN5bWJvbFVzZS4K
KyAgICAgICAgVGhpcyBjYW4gYmUgbGV2ZXJhZ2VkIHRvIG9wdGltaXplIHN5bWJvbCBvcGVyYXRp
b25zIGluIERGRy4KKworICAgICAgICAqIGJ5dGVjb2RlL0J5VmFsSW5mby5oOgorICAgICAgICAo
SlNDOjpCeVZhbEluZm86OkJ5VmFsSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm9NYXApOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmNw
cDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAgICAgICogYnl0ZWNvZGUv
RXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OkdldEJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgIChKU0M6OkdldEJ5SWRTdGF0
dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKToKKyAgICAgICAg
KiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRl
cjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3Rh
Y2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGlu
Z1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2RlKToKKyAgICAgICAgKiBk
ZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1VpZE9wZXJhbmQpOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAgICAgICAqIGRmZy9ERkdO
b2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3Bh
Z2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6
REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6
c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSWRlbnQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTeW1ib2wpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5jcHA6Cisg
ICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5kLmg6
CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChKU0M6OkRGRzo6
aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAg
ICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNv
bXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja0lkZW50KToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb3dTeW1ib2wpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZSk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RTeW1ib2wpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN5bWJvbCk6CisgICAgICAgICogaml0L0pJ
VC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOgorICAgICAgICAqIGpp
dC9KSVQuaDoKKyAgICAgICAgKEpTQzo6QnlWYWxDb21waWxhdGlvbkluZm86OkJ5VmFsQ29tcGls
YXRpb25JbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVk
SWQpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9u
cy5jcHA6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRHZXRC
eVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5
X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKToKKyAgICAgICAg
KEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpw
cml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKToKKyAgICAgICAgKiBqaXQvSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlf
dmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6CisgICAgICAgICogcnVudGltZS9TeW1ib2wuaDoKKyAg
ICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5q
czogQWRkZWQuCisgICAgICAgIChIZWxsbyk6CisgICAgICAgIChnZXQgSGVsbG8ucHJvdG90eXBl
LmdlbmVyYXRlKToKKyAgICAgICAgKG9rKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1leGl0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAg
ICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAgKGdldFN0cjEpOgorICAgICAgICAoZ2V0U3RyMik6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2VuZXJhdGVk
LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAg
ICAgICAgKGdldFN0cjEpOgorICAgICAgICAoZ2V0U3RyMik6CisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2V0dGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKG9i
amVjdC5nZXQgaGVsbG8pOgorICAgICAgICAob2spOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAg
ICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAgKGdldFN0cjEpOgorICAgICAgICAoZ2V0U3RyMik6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0
b3IuanM6IEFkZGVkLgorICAgICAgICAoSGVsbG8pOgorICAgICAgICAoZ2V0IEhlbGxvLnByb3Rv
dHlwZS5nZW5lcmF0ZSk6CisgICAgICAgIChvayk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtZXhpdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6
CisgICAgICAgIChnZXRCeVZhbCk6CisgICAgICAgIChnZXRTeW0xKToKKyAgICAgICAgKGdldFN5
bTIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWdldHRl
ci5qczogQWRkZWQuCisgICAgICAgIChvYmplY3QuZ2V0IGhlbGxvKToKKyAgICAgICAgKC5nZXQg
b2spOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAg
KGdldFN5bTEpOgorICAgICAgICAoZ2V0U3ltMik6CisKIDIwMTUtMDgtMDQgIEJyZW50IEZ1bGdo
YW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVXBkYXRlIEFwcGxlIFdp
bmRvd3MgYnVpbGQgZm9yIFZTMjAxNQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5VmFsSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
VmFsSW5mby5oCmluZGV4IGQ5ODg1MTYxMzI1OGE3MWI5ZjA0YmE0OTA3M2Y0NDAzM2U1NzEwODMu
LmNlNzZiMzkwNzIxMDhjYmNhMTM4OGM0OTZjNzBkNTE2ODk2MzY5NmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTI2LDE2ICsyNiwxOCBAQAogI2lm
bmRlZiBCeVZhbEluZm9faAogI2RlZmluZSBCeVZhbEluZm9faAogCi0jaWYgRU5BQkxFKEpJVCkK
LQogI2luY2x1ZGUgIkNsYXNzSW5mby5oIgogI2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5oIgorI2lu
Y2x1ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNsdWRlICJJbmRleGluZ1R5cGUuaCIKICNpbmNsdWRl
ICJKSVRTdHViUm91dGluZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1ZGUgIlN0
cnVjdHVyZVN0dWJJbmZvLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCisjaWYgRU5BQkxFKEpJVCkK
KwogZW51bSBKSVRBcnJheU1vZGUgewogICAgIEpJVEludDMyLAogICAgIEpJVERvdWJsZSwKQEAg
LTIwMiwyMyArMjA0LDI4IEBAIGlubGluZSBKSVRBcnJheU1vZGUgaml0QXJyYXlNb2RlRm9yU3Ry
dWN0dXJlKFN0cnVjdHVyZSogc3RydWN0dXJlKQogc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgQnlW
YWxJbmZvKCkgeyB9CiAgICAgCi0gICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgs
IENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIGlu
dDE2X3QgYmFkVHlwZUp1bXBUb0RvbmUsIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgp
CisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAg
bm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUg
YXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJl
c3NUb1Nsb3dQYXRoKQogICAgICAgICA6IGJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAg
ICAgICAgLCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1wKQogICAgICAgICAsIGJhZFR5cGVKdW1w
KGJhZFR5cGVKdW1wKQogICAgICAgICAsIGFycmF5TW9kZShhcnJheU1vZGUpCiAgICAgICAgICwg
YmFkVHlwZUp1bXBUb0RvbmUoYmFkVHlwZUp1bXBUb0RvbmUpCiAgICAgICAgICwgcmV0dXJuQWRk
cmVzc1RvU2xvd1BhdGgocmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgICwgc2xvd1Bh
dGhDb3VudCgwKQorICAgICAgICAsIHN0dWJJbmZvKG51bGxwdHIpCiAgICAgewogICAgIH0KLSAg
ICAKKwogICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXg7CisgICAgQ29kZUxvY2F0aW9uSnVtcCBu
b3RJbmRleEp1bXA7CiAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcDsKICAgICBKSVRB
cnJheU1vZGUgYXJyYXlNb2RlOyAvLyBUaGUgYXJyYXkgbW9kZSB0aGF0IHdhcyBiYWtlZCBpbnRv
IHRoZSBpbmxpbmUgSklUIGNvZGUuCiAgICAgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZTsKICAg
ICBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoOwogICAgIHVuc2lnbmVkIHNsb3dQYXRo
Q291bnQ7CiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZTsKKyAgICBJZGVu
dGlmaWVyIGNhY2hlZElkOworICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbzsKIH07CiAK
IGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbEluZm9CeXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5m
bykKQEAgLTIyNiw5ICsyMzMsMTUgQEAgaW5saW5lIHVuc2lnbmVkIGdldEJ5VmFsSW5mb0J5dGVj
b2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQogICAgIHJldHVybiBpbmZvLT5ieXRlY29kZUluZGV4
OwogfQogCi19IC8vIG5hbWVzcGFjZSBKU0MKK3R5cGVkZWYgSGFzaE1hcDxDb2RlT3JpZ2luLCBC
eVZhbEluZm8qLCBDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoPiBCeVZhbEluZm9NYXA7CisKKyNl
bHNlIC8vIEVOQUJMRShKSVQpCisKK3R5cGVkZWYgSGFzaE1hcDxpbnQsIHZvaWQqPiBCeVZhbElu
Zm9NYXA7CiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCit9IC8vIG5hbWVzcGFjZSBKU0MKKwog
I2VuZGlmIC8vIEJ5VmFsSW5mb19oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKaW5kZXggOWY5NDg2ODk3MGJmMDU4MDM2NThjM2NlODVmYThhYWM5YzY5
NDUxNy4uMmRmZThkODg5YTljMmI5NTM0NTYwMDBmMDEyYzc4ZTgxYjI5YmUyZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTI2ODMsNiArMjY4
MywyMiBAQCB2b2lkIENvZGVCbG9jazo6Z2V0Q2FsbExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01h
cCYgcmVzdWx0KQogICAgIGdldENhbGxMaW5rSW5mb01hcChsb2NrZXIsIHJlc3VsdCk7CiB9CiAK
K3ZvaWQgQ29kZUJsb2NrOjpnZXRCeVZhbEluZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIEJ5VmFsSW5mb01hcCYgcmVzdWx0KQoreworI2lmIEVOQUJMRShKSVQpCisgICAgZm9yIChh
dXRvJiBieVZhbEluZm8gOiBtX2J5VmFsSW5mb3MpCisgICAgICAgIHJlc3VsdC5hZGQoQ29kZU9y
aWdpbihieVZhbEluZm8uYnl0ZWNvZGVJbmRleCksICZieVZhbEluZm8pOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0ocmVzdWx0KTsKKyNlbmRpZgorfQorCit2b2lkIENvZGVCbG9jazo6Z2V0QnlW
YWxJbmZvTWFwKEJ5VmFsSW5mb01hcCYgcmVzdWx0KQoreworICAgIENvbmN1cnJlbnRKSVRMb2Nr
ZXIgbG9ja2VyKG1fbG9jayk7CisgICAgZ2V0QnlWYWxJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsK
K30KKwogI2lmIEVOQUJMRShKSVQpCiBTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRT
dHViSW5mbygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgK
aW5kZXggNmMzYTExNWY3NzVlZWMzYWJkMjIwMmZlZmE1MjZkZjgwYTNmYzkzOC4uMmEzNGUyZDYy
YzliZWU3NDVhZDQ1ZTVmNGJhZWViYzljYjI1MTI3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtMjAwLDYgKzIwMCw5IEBAIGNsYXNzIENvZGVCbG9j
ayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25k
aXRpb25hbEZpCiAgICAgCiAgICAgdm9pZCBnZXRDYWxsTGlua0luZm9NYXAoY29uc3QgQ29uY3Vy
cmVudEpJVExvY2tlciYsIENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KTsKICAgICB2b2lkIGdldENh
bGxMaW5rSW5mb01hcChDYWxsTGlua0luZm9NYXAmIHJlc3VsdCk7CisKKyAgICB2b2lkIGdldEJ5
VmFsSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQnlWYWxJbmZvTWFwJiByZXN1
bHQpOworICAgIHZvaWQgZ2V0QnlWYWxJbmZvTWFwKEJ5VmFsSW5mb01hcCYgcmVzdWx0KTsKICAg
ICAKICNpZiBFTkFCTEUoSklUKQogICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5mbygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKaW5kZXggNGY3
OWYyYzFjNWU0ZTdmZGJlMDQzYTA0OTUyNTEwMGFkNTBmZjQ3Yi4uMjUyNDMwMGY3MzM3NjllZDli
ZTAwMWQ3NjYwZjM2ODU5YjZkODkwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V4aXRLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvRXhpdEtpbmQuY3BwCkBAIC00MCw2ICs0MCw4IEBAIGNvbnN0IGNoYXIqIGV4aXRLaW5kVG9T
dHJpbmcoRXhpdEtpbmQga2luZCkKICAgICAgICAgcmV0dXJuICJCYWRUeXBlIjsKICAgICBjYXNl
IEJhZENlbGw6CiAgICAgICAgIHJldHVybiAiQmFkQ2VsbCI7CisgICAgY2FzZSBCYWRJZGVudDoK
KyAgICAgICAgcmV0dXJuICJCYWRJZGVudCI7CiAgICAgY2FzZSBCYWRFeGVjdXRhYmxlOgogICAg
ICAgICByZXR1cm4gIkJhZEV4ZWN1dGFibGUiOwogICAgIGNhc2UgQmFkQ2FjaGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCmluZGV4IDU5Y2JiZjVhMmIzODc3OTdl
M2VlMmJhODFmMzZlMWM2MWMwM2I5MjMuLjZmOGM1MTIwMDcwMDUwNWJmOTFkZWY3NDkwMDNlMzAw
NWUzZjcxODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0
S2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCkBA
IC0zMiw2ICszMiw3IEBAIGVudW0gRXhpdEtpbmQgOiB1aW50OF90IHsKICAgICBFeGl0S2luZFVu
c2V0LAogICAgIEJhZFR5cGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGEgdHlwZSBwcmVkaWN0aW9u
IHdhcyB3cm9uZy4KICAgICBCYWRDZWxsLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFu
IGluY29ycmVjdCBhc3N1bXB0aW9uIGFib3V0IHdoYXQgY2VsbCB3ZSB3b3VsZCBzZWUuIFVzdWFs
bHkgdXNlZCBmb3IgZnVuY3Rpb24gY2hlY2tzLgorICAgIEJhZElkZW50LCAvLyBXZSBleGl0ZWQg
YmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVjdCBhc3N1bXB0aW9uIGFib3V0IHdoYXQgaWRlbnRp
ZmllciB3ZSB3b3VsZCBzZWUuIFVzdWFsbHkgdXNlZCBmb3IgY2FjaGVkIElkIGNoZWNrIGluIGdl
dF9ieV92YWwuCiAgICAgQmFkRXhlY3V0YWJsZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFk
ZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBhYm91dCB3aGF0IGV4ZWN1dGFibGUgd2Ugd291bGQg
c2VlLgogICAgIEJhZENhY2hlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhbiBpbmxpbmUgY2FjaGUg
d2FzIHdyb25nLgogICAgIEJhZENvbnN0YW50Q2FjaGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGEg
Y2FjaGUgb24gYSB3ZWFrIGNvbnN0YW50ICh1c3VhbGx5IGEgcHJvdG90eXBlKSB3YXMgd3Jvbmcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAK
aW5kZXggMWQ5N2M5ZmZkYmE2ZDk0ZTM1Y2I2N2NlZDNkYmVlYTUwYmM3MTllZS4uODllNTAzNWYz
MGEzZjBiNzliYjIwODMyYTEyZDlkNjg0ODg4Y2YwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAtOTgsNyArOTgsNyBAQCBHZXRC
eUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJs
b2NrLCBTdHViSW5mb01hcCYgbQogICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0OwogCiAjaWYgRU5B
QkxFKERGR19KSVQpCi0gICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKAorICAgIHJlc3Vs
dCA9IGNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAgICBs
b2NrZXIsIHByb2ZpbGVkQmxvY2ssIG1hcC5nZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSks
IHVpZCwKICAgICAgICAgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVFeGl0U2l0ZURhdGEobG9ja2Vy
LCBwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KSk7CiAgICAgCkBAIC0xMTYsNyArMTE2LDIw
IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIHBy
b2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBtCiB9CiAKICNpZiBFTkFCTEUoSklUKQotR2V0QnlJ
ZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8oCitHZXRCeUlkU3RhdHVz
IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9j
a2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8q
IHN0dWJJbmZvLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQp
Cit7CisgICAgR2V0QnlJZFN0YXR1cyByZXN1bHQgPSBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9y
U3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjaygKKyAgICAgICAgbG9ja2VyLCBwcm9maWxl
ZEJsb2NrLCBzdHViSW5mbywgdWlkLAorICAgICAgICBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUV4
aXRTaXRlRGF0YShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRl
eCkpOworCisgICAgaWYgKCFyZXN1bHQudGFrZXNTbG93UGF0aCgpICYmIEdldEJ5SWRTdGF0dXM6
Omhhc0V4aXRTaXRlKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUlu
ZGV4KSkKKyAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMocmVzdWx0Lm1ha2VzQ2FsbHMoKSA/
IEdldEJ5SWRTdGF0dXM6Ok1ha2VzQ2FsbHMgOiBHZXRCeUlkU3RhdHVzOjpUYWtlc1Nsb3dQYXRo
LCB0cnVlKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCisK
KyNpZiBFTkFCTEUoSklUKQorR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9y
U3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjaygKICAgICBjb25zdCBDb25jdXJyZW50SklU
TG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1Yklu
Zm8qIHN0dWJJbmZvLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLAogICAgIENhbGxMaW5rU3RhdHVz
OjpFeGl0U2l0ZURhdGEgY2FsbEV4aXRTaXRlRGF0YSkKIHsKQEAgLTI0Miw3ICsyNTUsNyBAQCBH
ZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCiAgICAgICAgIEdldEJ5SWRT
dGF0dXMgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2Vy
IGxvY2tlcihkZmdCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVG
b3JTdHViSW5mbygKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mb1dpdGhv
dXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAgICAgICAgICAgIGxvY2tlciwgZGZnQmxvY2ssIGRm
Z01hcC5nZXQoY29kZU9yaWdpbiksIHVpZCwgZXhpdFNpdGVEYXRhKTsKICAgICAgICAgfQogICAg
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlk
U3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5o
CmluZGV4IDMyMzcyY2RkZjVlMjViMGYzODhlNmNmZWRjNDY2MjBiMmQzOGQyZDAuLmQ3ZjBhZTQ5
NmNiYTJmMzBmZGNkMTI4ODZiMTVmYjNiNDgyOGY5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaApAQCAtNzEsNyArNzEsMTEgQEAgY2xhc3Mg
R2V0QnlJZFN0YXR1cyB7CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihjb25z
dCBTdHJ1Y3R1cmVTZXQmLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKTsKICAgICAKICAgICBzdGF0
aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29k
ZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01hcCYg
ZGZnTWFwLCBDb2RlT3JpZ2luLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKTsKLSAgICAKKworI2lm
IEVOQUJMRShKSVQpCisgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZv
KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIFN0
cnVjdHVyZVN0dWJJbmZvKiwgQ29kZU9yaWdpbiwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCk7Cisj
ZW5kaWYKKwogICAgIFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogICAg
IAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlICE9IE5vSW5mb3JtYXRp
b247IH0KQEAgLTk1LDcgKzk5LDcgQEAgY2xhc3MgR2V0QnlJZFN0YXR1cyB7CiAgICAgc3RhdGlj
IGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayos
IHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEpJVCkKLSAgICBz
dGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oCisgICAgc3RhdGljIEdldEJ5
SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAg
ICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ss
IFN0cnVjdHVyZVN0dWJJbmZvKiwKICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgQ2Fs
bExpbmtTdGF0dXM6OkV4aXRTaXRlRGF0YSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRl
eCAzNzM0Yzc2ZDFlZTg3YTg0YTBlNjZkNTU2NzRkMTBiMmFkMmFhMDU0Li4yMjkwODdkY2M0MzY0
Mzk3OTU0ODBlM2Q1YzEyOTYwM2ExNmMxYjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0yMTYz
LDYgKzIxNjMsMzIgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBl
Pjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCisgICAgY2FzZSBDaGVja0lkZW50OiB7CisgICAgICAgIEFic3RyYWN0VmFsdWUmIHZh
bHVlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBs
KiB1aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7CisgICAgICAgIEFTU0VSVCh1aWQtPmlzU3ltYm9s
KCkgPyAhKHZhbHVlLm1fdHlwZSAmIH5TcGVjU3ltYm9sKSA6ICEodmFsdWUubV90eXBlICYgflNw
ZWNTdHJpbmdJZGVudCkpOyAvLyBFZGdlIGZpbHRlcmluZyBzaG91bGQgaGF2ZSBhbHJlYWR5IGVu
c3VyZWQgdGhpcy4KKworICAgICAgICBKU1ZhbHVlIGNoaWxkQ29uc3RhbnQgPSB2YWx1ZS52YWx1
ZSgpOworICAgICAgICBpZiAoY2hpbGRDb25zdGFudCkgeworICAgICAgICAgICAgaWYgKHVpZC0+
aXNTeW1ib2woKSkgeworICAgICAgICAgICAgICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3lt
Ym9sKCkpOworICAgICAgICAgICAgICAgIGlmIChhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJp
dmF0ZU5hbWUoKS51aWQoKSA9PSB1aWQpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZS5z
ZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NF
UlQoY2hpbGRDb25zdGFudC5pc1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBpZiAoYXNTdHJp
bmcoY2hpbGRDb25zdGFudCktPnRyeUdldFZhbHVlSW1wbCgpID09IHVpZCkgeworICAgICAgICAg
ICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICBmaWx0ZXIodmFsdWUsIHVpZC0+aXNTeW1ib2woKSA/IFNwZWNTeW1ib2wg
OiBTcGVjU3RyaW5nSWRlbnQpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIENo
ZWNrSW5Cb3VuZHM6IHsKICAgICAgICAgSlNWYWx1ZSBsZWZ0ID0gZm9yTm9kZShub2RlLT5jaGls
ZDEoKSkudmFsdWUoKTsKICAgICAgICAgSlNWYWx1ZSByaWdodCA9IGZvck5vZGUobm9kZS0+Y2hp
bGQyKCkpLnZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCmluZGV4IDU2NDIyYjE4YTI0NjUwODZmODA2OTQyODBkYTM2NzYwMDJlNmM1
ZTQuLjA3NjgxMmI2MWI5YTViN2VmMjQ5NTI1ZTU1YWRhZDY5M2RiY2U5ODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC05NjksNiAr
OTY5LDcgQEAgY2xhc3MgQnl0ZUNvZGVQYXJzZXIgewogICAgICAgICAKICAgICAgICAgQ2FsbExp
bmtJbmZvTWFwIG1fY2FsbExpbmtJbmZvczsKICAgICAgICAgU3R1YkluZm9NYXAgbV9zdHViSW5m
b3M7CisgICAgICAgIEJ5VmFsSW5mb01hcCBtX2J5VmFsSW5mb3M7CiAgICAgICAgIAogICAgICAg
ICAvLyBEaWQgd2Ugc2VlIGFueSByZXR1cm5zPyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgKHVuY29t
bW9uIGJ1dCBuZWNlc3NhcnkpCiAgICAgICAgIC8vIGNhc2Ugd2hlcmUgYSBwcm9jZWR1cmUgdGhh
dCBkb2VzIG5vdCByZXR1cm4gd2FzIGlubGluZWQuCkBAIC0zMzk3LDEyICszMzk4LDM3IEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAKICAgICAgICAg
Y2FzZSBvcF9nZXRfYnlfdmFsOiB7CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0
aW9uID0gZ2V0UHJlZGljdGlvbldpdGhvdXRPU1JFeGl0KCk7Ci0gICAgICAgICAgICAKKwogICAg
ICAgICAgICAgTm9kZSogYmFzZSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzJdLnUub3BlcmFuZCkpOwotICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdl
dEFycmF5TW9kZShjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpS
ZWFkKTsKICAgICAgICAgICAgIE5vZGUqIHByb3BlcnR5ID0gZ2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBOb2RlKiBnZXRC
eVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBP
cEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKLSAgICAgICAgICAgIHNldChWaXJ0
dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGdldEJ5VmFsKTsK
KyAgICAgICAgICAgIGJvb2wgY29tcGlsZWRBc0dldEJ5SWQgPSBmYWxzZTsKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2lubGluZVN0
YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICAgICAgQnlWYWxJ
bmZvKiBieVZhbEluZm8gPSBtX2lubGluZVN0YWNrVG9wLT5tX2J5VmFsSW5mb3MuZ2V0KENvZGVP
cmlnaW4oY3VycmVudENvZGVPcmlnaW4oKS5ieXRlY29kZUluZGV4KSk7CisgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IFdoZW4gdGhlIGJ5dGVjb2RlIGlzIG5vdCBjb21waWxlZCBpbiB0aGUgYmFz
ZWxpbmUgSklULCBieVZhbEluZm8gYmVjb21lcyBudWxsLgorICAgICAgICAgICAgICAgIC8vIEF0
IHRoYXQgdGltZSwgdGhlcmUgaXMgbm8gaW5mb3JtYXRpb24uCisgICAgICAgICAgICAgICAgaWYg
KGJ5VmFsSW5mbyAmJiBieVZhbEluZm8tPnN0dWJJbmZvKSB7CisgICAgICAgICAgICAgICAgICAg
IGNvbXBpbGVkQXNHZXRCeUlkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aWRlbnRpZmllck51bWJlciA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKS5lbnN1cmUoYnlWYWxJbmZv
LT5jYWNoZWRJZC5pbXBsKCkpOworICAgICAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1w
bCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOworCisgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBQb3RlbnRpYWxseSwgd2UgY2FuIGZ1cnRoZXIgb3B0
aW1pemUgaGVyZS4gSWYgd2Ugc2F3IHRoZSBleGl0IGZvciB0aGlzIENoZWNrSWRlbnQsCisgICAg
ICAgICAgICAgICAgICAgIC8vIGRvbid0IHRha2UgdGhlIEdldEJ5SWQgcGF0aCBhbmQgdXNlIHRo
ZSBnZW5lcmljIEdldEJ5VmFsLgorICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNr
SWRlbnQsIE9wSW5mbyh1aWQpLCBwcm9wZXJ0eSk7CisKKyAgICAgICAgICAgICAgICAgICAgR2V0
QnlJZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJ
bmZvKAorICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VyLCBtX2lubGluZVN0YWNrVG9wLT5t
X3Byb2ZpbGVkQmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8tPnN0dWJJ
bmZvLCBjdXJyZW50Q29kZU9yaWdpbigpLCB1aWQpOworCisgICAgICAgICAgICAgICAgICAgIGhh
bmRsZUdldEJ5SWQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlvbiwg
YmFzZSwgaWRlbnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1cyk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWNvbXBpbGVkQXNHZXRCeUlkKSB7
CisgICAgICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFkKTsKKyAgICAgICAg
ICAgICAgICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJh
eU1vZGUuYXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKKyAg
ICAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQpLCBnZXRCeVZhbCk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIE5FWFRf
T1BDT0RFKG9wX2dldF9ieV92YWwpOwogICAgICAgICB9CkBAIC00MzA1LDYgKzQzMzEsNyBAQCBC
eXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAg
ICAgaWYgKG1fcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewogICAg
ICAgICAgICAgbV9wcm9maWxlZEJsb2NrLT5nZXRTdHViSW5mb01hcChsb2NrZXIsIG1fc3R1Yklu
Zm9zKTsKICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZvTWFwKGxv
Y2tlciwgbV9jYWxsTGlua0luZm9zKTsKKyAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0
QnlWYWxJbmZvTWFwKGxvY2tlciwgbV9ieVZhbEluZm9zKTsKICAgICAgICAgfQogICAgIH0KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMjk2NzQ5
ZGMzMWIyM2M4OTk4NDk0YjU2ZWYxNDMwODY0YjEyN2VjNi4uNDZmNWZlNDhkMjVjMjdkZDMxOTZj
NTgxMjlkYmU1ODU3ZmJkN2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmgKQEAgLTI2OCw2ICsyNjgsMTAgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAg
ICAgICAgZGVmKFB1cmVWYWx1ZShDaGVja05vdEVtcHR5LCBBZGphY2VuY3lMaXN0KEFkamFjZW5j
eUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAg
Y2FzZSBDaGVja0lkZW50OgorICAgICAgICBkZWYoUHVyZVZhbHVlKENoZWNrSWRlbnQsIEFkamFj
ZW5jeUxpc3QoQWRqYWNlbmN5TGlzdDo6Rml4ZWQsIG5vZGUtPmNoaWxkMSgpKSwgbm9kZS0+dWlk
T3BlcmFuZCgpKSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdl
UG9pbnRlcjoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5zdG9yYWdlUG9pbnRl
cigpKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggYmE0YzAzNTQ5NDY0OTJmNTlm
ZGZiZDVhNmY2MWE1YTY3ZDI1MDMyMC4uM2Q4NWNhYWJkNjE1NzNmZGQ1NDlkNWZlNzViYzY0ZjNl
NTY0ZjFlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFu
dEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTIwOCw2ICsyMDgsMzMgQEAgY2xhc3MgQ29uc3RhbnRG
b2xkaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQogCisgICAgICAgICAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgICAg
ICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAg
ICAgICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5j
aGlsZDEoKSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBVbmlxdWVkU3RyaW5nSW1w
bCogY29uc3RhbnRVaWQgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0
YW50KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRVaWQgPSBhc1N5bWJvbChjaGlsZENvbnN0YW50
KS0+cHJpdmF0ZU5hbWUoKS51aWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBhbHJlYWR5IGZpbHRlcmVkIHRo
ZSB2YWx1ZSB3aXRoIFN0cmluZ0lkZW50VXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIHRoZSBoZWxkIGltcGwgaXMgYWx3YXlzIGF0b21pYy4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoY29uc3QgYXV0byogaW1wbCA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50
cnlHZXRWYWx1ZUltcGwoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NF
UlQoaW1wbC0+aXNBdG9taWMoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0YW50VWlkID0gc3RhdGljX2Nhc3Q8Y29uc3QgVW5pcXVlZFN0cmluZ0ltcGwqPihpbXBsKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBpZiAoY29uc3RhbnRVaWQgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUt
PnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICBlbGltaW5hdGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKICAg
ICAgICAgICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICAgICAgICAgIEpTVmFsdWUg
bGVmdCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAg
ICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52
YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0Mu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDA4ZmZi
MmE5MTI5Mzg3MjEzMTFjYWQyNzc0Njc2MWEyMDY1M2FhNWYuLmU0NzBiOGRkYWI5OTQzOGZkODkw
MzUyZTQ1ZTA5MTAyOWYxYTYyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNH
Qy5jcHAKQEAgLTEwNyw2ICsxMDcsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUpCiAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50OgogICAgIGNhc2UgQ2hlY2tD
ZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAg
Y2FzZSBSZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVM
ZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXgg
YzQ0MjMxMDE2MzI2NTdkM2U4M2Y5NzFlNjZhODNmNjI1MDU3MTUyNC4uZDZhOTc5MGIxM2NlMDA2
MmQ5NzgxMTQwZWRjZTIyMTUyZTQwMGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMDEyLDYgKzEwMTIsMTUgQEAgY2xhc3MgRml4dXBQaGFz
ZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBD
aGVja0lkZW50OiB7CisgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+
dWlkT3BlcmFuZCgpOworICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkKKyAgICAgICAg
ICAgICAgICBmaXhFZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxk
MSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAg
ICAgY2FzZSBBcnJheWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOiB7CkBA
IC0xNzYwLDYgKzE3NjksNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgY2FzZSBGdW5jdGlvblVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAg
IGNhc2UgS25vd25TdHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBj
YXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVz
ZToKICAgICAgICAgICAgIGlmIChhbHdheXNVbmJveFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCAyOGNhYjA1MWU1MzA5ZTM2ODg2OTRjYmJjNDY1
Mzk2NjkyZGU4MDlhLi44M2ZjZjVjMTAxZTBjN2M3N2E5ZWQyMDk1ZDQ1NWRhNjljNGU2YWYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTMyOCw2ICsxMzI4LDE3IEBAIHN0
cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fb3BJ
bmZvKTsKICAgICB9CiAKKyAgICBib29sIGhhc1VpZE9wZXJhbmQoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG9wKCkgPT0gQ2hlY2tJZGVudDsKKyAgICB9CisKKyAgICBVbmlxdWVkU3RyaW5nSW1w
bCogdWlkT3BlcmFuZCgpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzVWlkT3BlcmFuZCgpKTsK
KyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29w
SW5mbyk7CisgICAgfQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAg
IHN3aXRjaCAob3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmlu
ZGV4IDYyZTdjYTk4YTUyMTEyZDgyZDBlYjZmMGQxNzI4YmVhZjRiOWUxMzEuLmU5YmY3MjcwNGIx
N2FhNjg2NzllOWJiZWEwZjRmMmFkY2VmOTYzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVUeXBlLmgKQEAgLTIwOSw2ICsyMDksNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAog
ICAgIG1hY3JvKENoZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENo
ZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja0lkZW50LCBO
b2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5
IG11dGF0aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVN
dXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNzZhZjZhMmYzZTQ1MmIw
ZjExN2FiYzNhNmJiNWRkZDJmYWFiMTk4YS4uMzZmMmRmN2M3NWM1MGNhZmQwNmVjOWMyNzg1MWVl
YTlmMTBmZmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTY0OSw2ICs2NDksNyBAQCBj
bGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAg
IGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgICAgICBj
YXNlIENoZWNrTm90RW1wdHk6CisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICAgICAgY2Fz
ZSBDaGVja0JhZENlbGw6CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAgICAgICBjYXNl
IFZhckluamVjdGlvbldhdGNocG9pbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCmluZGV4IDBjMGEyNzc2MDUwZWYxYzYzOGMyMGQ4OGNmZWZlMzIzYzcz
YTU5MTQuLmIyZDA3ZDU1ZTUzNjI2ODQ1YjVkM2Y1YzlmZWVhNGU3YmQ4NGRkOTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw2ICs1OSw3
IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBPYmplY3RPck90aGVy
VXNlOgogICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBjYXNlIFN0cmluZ1Vz
ZToKKyAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNl
OgogICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE5v
dFN0cmluZ1ZhclVzZToKQEAgLTE4OCw2ICsxODksNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJz
dHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2Fz
ZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVt
cHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2Fz
ZSBSZWdFeHBUZXN0OgogICAgIGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGYzZjhhZjdhNTJkNTBmOWEy
ZTcxYzRmOTAxOTk4NDdiZjA1MDBkNWUuLjA1MzczNjM0YmRlMTFkNjY0NjE5MTNhMjBjNWE1YmVh
OTY4ZmE0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCkBAIC00NTc2LDYgKzQ1NzYsMzEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCiAgICAgfSB9CiB9CiAKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVDaGVja0lkZW50KE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgVW5pcXVlZFN0
cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICBpZiAodWlkLT5pc1N5bWJv
bCgpKSB7CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5n
cHIoKSk7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCisgICAgICAgICAgICBCYWRJZGVudCwg
SlNWYWx1ZVNvdXJjZSgpLCBudWxscHRyLAorICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAor
ICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICBK
SVRDb21waWxlcjo6QWRkcmVzcyhvcGVyYW5kLmdwcigpLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0
ZU5hbWUoKSksCisgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdw
cigpKTsKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQobm9kZS0+Y2hpbGQxKCksIG9wZXJh
bmQuZ3ByKCkpOworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgQmFkSWRl
bnQsIEpTVmFsdWVTb3VyY2UoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0
cigKKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAg
ICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3BlcmFuZC5ncHIoKSwgSlNTdHJpbmc6Om9mZnNldE9m
VmFsdWUoKSksCisgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfQor
ICAgIG5vUmVzdWx0KG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3
RnVuY3Rpb24oTm9kZSogbm9kZSkKIHsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzY29wZSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC01NzMxLDYgKzU3NTYsMjAgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlTm90U3RyaW5nVmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxp
bmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVk
Z2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90
U3ltYm9sKGNlbGwpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9s
KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wp
KQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRo
aXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30K
Kwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAg
ICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCB+U3BlY0NlbGwpKQpAQCAtNTg0Miw2ICs1ODgx
LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAg
ICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChl
ZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAg
IHNwZWN1bGF0ZVN0cmluZ09iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYTVjNDQ1NDdkYTY0
YmMyYjYzZjA3M2ExNzExZTZhMTE4MDZmNTk1Yi4uNTQ1ZmYyYTZlYmQxMGVlZjgyYjFmZTdjMjJj
Y2U5ZjcxN2VkZDE0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaApAQCAtMjE5MSw2ICsyMTkxLDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewog
ICAgIHZvaWQgY29tcGlsZVNraXBTY29wZShOb2RlKik7CiAKICAgICB2b2lkIGNvbXBpbGVHZXRB
cnJheUxlbmd0aChOb2RlKik7CisKKyAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KE5vZGUqKTsK
ICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7CiAgICAgdm9pZCBjb21waWxl
RG91YmxlUmVwKE5vZGUqKTsKQEAgLTI0MDYsNiArMjQwOCw4IEBAIGNsYXNzIFNwZWN1bGF0aXZl
SklUIHsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlLCBHUFJSZWcpOwogICAg
IHZvaWQgc3BlY3VsYXRlU3RyaW5nT2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3Ry
aW5nT3JTdHJpbmdPYmplY3QoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSwg
R1BSUmVnIGNlbGwpOworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UpOwogICAgIHZvaWQg
c3BlY3VsYXRlTm90Q2VsbChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU90aGVyKEVkZ2UpOwog
ICAgIHZvaWQgc3BlY3VsYXRlTWlzYyhFZGdlLCBKU1ZhbHVlUmVncyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA1
MDQyOTA1YjYyYjUyNmM5ZWRhZDNmZmJiNTY3YzQ2ZjY3ZjgwZWFlLi4xMmFiOGQwODVkMDcwNTEw
Zjc2ZmQ0ZWU3MjU0Zjg4ZTMzMjJiN2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTM4MjAsNiArMzgyMCwxMCBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFr
OwogICAgIH0KIAorICAgIGNhc2UgQ2hlY2tJZGVudDoKKyAgICAgICAgY29tcGlsZUNoZWNrSWRl
bnQobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAg
ICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGZ1bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
aW5kZXggNzcwYmRhNThjYWI1MDIzYTFmYTBjMzhmNGM3YTAzMDhkNDA4MGEzMC4uMTNjN2M4N2Q4
MDZmN2E3YTg2NzMwZjA3OWFkODgzNDU0MjZjN2ZjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0zODUwLDYgKzM4NTAsMTAg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVh
azsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6CisgICAgICAgIGNvbXBpbGVDaGVja0lk
ZW50KG5vZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewog
ICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCmluZGV4IGVmYTEwNGYzZDA3
MDAwYjdkN2JjNDczYmNkZjIwNmQxMDUzZmM5YjEuLjkzNmVmNTU0YWYyNGUwYjY0ZmRmNDI4ZjE2
M2FlOGQ3ODhlOThkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNw
cApAQCAtOTcsNiArOTcsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwg
VXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIG91dC5w
cmludCgiS25vd25TdHJpbmciKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgU3ltYm9sVXNl
OgorICAgICAgICBvdXQucHJpbnQoIlN5bWJvbCIpOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIG91dC5wcmludCgiU3RyaW5nT2JqZWN0Iik7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXgg
ZWJmOTlkYWU2MDBjODgyNWQyMmNiYWM2MzgyMmQxNWI1NTYwMDM1YS4uMjg5Yjc4M2U0MWJiMzYx
MjkxYzgzYzhmYWQ3YjA4YTU3OGUwYTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdV
c2VLaW5kLmgKQEAgLTU3LDYgKzU3LDcgQEAgZW51bSBVc2VLaW5kIHsKICAgICBTdHJpbmdJZGVu
dFVzZSwKICAgICBTdHJpbmdVc2UsCiAgICAgS25vd25TdHJpbmdVc2UsCisgICAgU3ltYm9sVXNl
LAogICAgIFN0cmluZ09iamVjdFVzZSwKICAgICBTdHJpbmdPclN0cmluZ09iamVjdFVzZSwKICAg
ICBOb3RTdHJpbmdWYXJVc2UsCkBAIC0xMTcsNiArMTE4LDggQEAgaW5saW5lIFNwZWN1bGF0ZWRU
eXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgU3RyaW5nVXNlOgog
ICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nOworICAg
IGNhc2UgU3ltYm9sVXNlOgorICAgICAgICByZXR1cm4gU3BlY1N5bWJvbDsKICAgICBjYXNlIFN0
cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJuIFNwZWNTdHJpbmdPYmplY3Q7CiAgICAgY2Fz
ZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKQEAgLTE5Niw2ICsxOTksNyBAQCBpbmxpbmUgYm9v
bCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgY2Fz
ZSBTdHJpbmdVc2U6CiAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKKyAgICBjYXNlIFN5bWJvbFVz
ZToKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2Jq
ZWN0VXNlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggOTEyNzU0ZGZjNDAx
NTJiMGVkMjQ4MzZhYzc1YjhmOTY5ODQzOTliYi4uNTgxZjRjYmQ5YTc2OGI5YWIyYTgzOTIxY2Yy
NGQzNTI0YmM4NTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTg3LDcgKzg3LDggQEAgbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV9jbGFzc0luZm8sIFN0cnVj
dHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVfZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0
dXJlX3Byb3RvdHlwZSwgU3RydWN0dXJlOjpwcm90b3R5cGVPZmZzZXQoKSkgXAotICAgIG1hY3Jv
KFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKQor
ICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9m
ZnNldCgpKSBcCisgICAgbWFjcm8oU3ltYm9sX3ByaXZhdGVOYW1lLCBTeW1ib2w6Om9mZnNldE9m
UHJpdmF0ZU5hbWUoKSkKIAogI2RlZmluZSBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAo
bWFjcm8pIFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfc3RvcmFnZSwgRGlyZWN0QXJndW1l
bnRzOjpzdG9yYWdlT2Zmc2V0KCksIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA2MjcyOGM3NDZl
ZjkxZDc0Yjc4MjliYjNmOWE0NGM2ZDdmNjFkN2IzLi5iNDkzZjMwMjdlODJjZmNjZTljM2NjZjQ4
MmMxNTU4NjFkNjhiOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBh
YmlsaXRpZXMuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBj
YW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVj
a0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoK
ICAgICBjYXNlIFN0cmluZ0NoYXJDb2RlQXQ6CiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3Rv
cmFnZToKICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CkBAIC00MTUsNiArNDE2
LDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAg
ICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdP
YmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToK
KyAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZp
bmFsT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgTm90Q2VsbFVzZToKICAgICAgICAg
ICAgICAgICBjYXNlIE90aGVyVXNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9MTFZNLmNwcAppbmRleCA1YjU4N2RkMDQ4ODNjYTc5NDY1ZmI0ZTMwZDlkNWVl
ZDkzMzkxMmZlLi44MmNhYmJhODFiMjE3Y2NkYWM2YTNkNDUzZTBjZWJlZmM2MjlhYWY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAt
NTMyLDYgKzUzMiw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBDaGVj
a0JhZENlbGw6CiAgICAgICAgICAgICBjb21waWxlQ2hlY2tCYWRDZWxsKCk7CiAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja0lkZW50OgorICAgICAgICAgICAgY29tcGlsZUNo
ZWNrSWRlbnQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdldEV4ZWN1dGFi
bGU6CiAgICAgICAgICAgICBjb21waWxlR2V0RXhlY3V0YWJsZSgpOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC0yMDI5LDYgKzIwMzIsMjAgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAg
ICBzcGVjdWxhdGUoVERaRmFpbHVyZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5pc1plcm82
NChsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgfQogCisgICAgdm9pZCBjb21w
aWxlQ2hlY2tJZGVudCgpCisgICAgeworICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0g
bV9ub2RlLT51aWRPcGVyYW5kKCk7CisgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAg
ICAgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIoc3ltYm9sLCBtX2hl
YXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQs
IG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29u
c3RJbnRQdHIodWlkKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTFZhbHVlIHN0
cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZh
bHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ192
YWx1ZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0
ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOwor
ICAgICAgICB9CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlR2V0RXhlY3V0YWJsZSgpCiAgICAg
ewogICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC03
MDMzLDcgKzcwNTAsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxh
dGVTdHJpbmdJZGVudChlZGdlLCBzdHJpbmcsIHN0cmluZ0ltcGwpOwogICAgICAgICByZXR1cm4g
c3RyaW5nSW1wbDsKICAgICB9Ci0gICAgCisKKyAgICBMVmFsdWUgbG93U3ltYm9sKEVkZ2UgZWRn
ZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0
aW9uKQorICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9w
ZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpOworCisgICAg
ICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UsIG1vZGUpOworICAgICAgICBzcGVjdWxh
dGVTeW1ib2woZWRnZSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisK
ICAgICBMVmFsdWUgbG93Tm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlv
bk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAgICB7CiAgICAgICAg
IEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwg
ZWRnZS51c2VLaW5kKCkgPT0gT2JqZWN0VXNlKTsKQEAgLTc0MzAsNiArNzQ1Niw5IEBAIGNsYXNz
IExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAg
ICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UpOwor
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAg
ICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CkBA
IC03NTI2LDcgKzc1NTUsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAg
bV9vdXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAg
ICAgIG1fb3V0LmNvbnN0SW50MzIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9
Ci0gICAgCisKKyAgICBMVmFsdWUgaXNOb3RTeW1ib2woTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRU
eXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKKyAgICB7CisgICAgICAgIGlmIChMVmFsdWUgcHJvdmVu
ID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjU3ltYm9sKSkKKyAgICAgICAg
ICAgIHJldHVybiBwcm92ZW47CisgICAgICAgIHJldHVybiBtX291dC5ub3RFcXVhbCgKKyAgICAg
ICAgICAgIG1fb3V0LmxvYWQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCisg
ICAgICAgICAgICBtX291dC5jb25zdEludDMyKHZtKCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7
CisgICAgfQorCiAgICAgTFZhbHVlIGlzQXJyYXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUg
YXJyYXlNb2RlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkBA
IC03NzQ5LDcgKzc3ODcsMTcgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAg
Tm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCiAgICAgICAgICAgICBtX291dC5ub3RFcXVh
bChzdHJ1Y3R1cmVJRCwgd2Vha1N0cnVjdHVyZUlEKHN0cmluZ09iamVjdFN0cnVjdHVyZSkpKTsK
ICAgICB9Ci0gICAgCisKKyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIExWYWx1
ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwp
LCBlZGdlLCBTcGVjU3ltYm9sIHwgflNwZWNDZWxsLCBpc05vdFN5bWJvbChjZWxsKSk7CisgICAg
fQorCisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAg
c3BlY3VsYXRlU3ltYm9sKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKwogICAgIHZvaWQg
c3BlY3VsYXRlTm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAg
ICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjT2JqZWN0
LCBpc05vdE9iamVjdChjZWxsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOWFm
MzMyZWI3OGUxODlhZTZhNTNiMjIzNTBhZjc3YjVmOWQ3ZWIyYi4uYzc4YjRjMTk1NmJmNzA4ZDkx
Y2MyYTE3MzcxOTFlZjNjMjRlMDI1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAt
NjYwLDYgKzY2MCwxMCBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJ
VENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKIAogICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJP
ZkJ5VmFsSW5mb3MobV9ieVZhbENvbXBpbGF0aW9uSW5mby5zaXplKCkpOwogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKTsgKytpKSB7Cisg
ICAgICAgIFBhdGNoYWJsZUp1bXAgcGF0Y2hhYmxlTm90SW5kZXhKdW1wID0gbV9ieVZhbENvbXBp
bGF0aW9uSW5mb1tpXS5ub3RJbmRleEp1bXA7CisgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgbm90
SW5kZXhKdW1wID0gQ29kZUxvY2F0aW9uSnVtcCgpOworICAgICAgICBpZiAoSnVtcChwYXRjaGFi
bGVOb3RJbmRleEp1bXApLmlzU2V0KCkpCisgICAgICAgICAgICBub3RJbmRleEp1bXAgPSBDb2Rl
TG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YocGF0Y2hhYmxlTm90SW5kZXhKdW1w
KSk7CiAgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAgPSBDb2RlTG9jYXRpb25K
dW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5iYWRU
eXBlSnVtcCkpOwogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lVGFyZ2V0ID0gcGF0Y2hC
dWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmRvbmVUYXJnZXQpOwog
ICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFRhcmdldCA9IHBhdGNoQnVmZmVyLmxv
Y2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5zbG93UGF0aFRhcmdldCk7CkBAIC02
NjcsNiArNjcxLDcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRD
b21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgICAgIAogICAgICAgICBtX2NvZGVCbG9jay0+
YnlWYWxJbmZvKGkpID0gQnlWYWxJbmZvKAogICAgICAgICAgICAgbV9ieVZhbENvbXBpbGF0aW9u
SW5mb1tpXS5ieXRlY29kZUluZGV4LAorICAgICAgICAgICAgbm90SW5kZXhKdW1wLAogICAgICAg
ICAgICAgYmFkVHlwZUp1bXAsCiAgICAgICAgICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ld
LmFycmF5TW9kZSwKICAgICAgICAgICAgIGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihiYWRUeXBl
SnVtcCwgZG9uZVRhcmdldCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCAxYWRlNjY1ZGY3
OTI4MmM2MGMyYTg4NTY4NWZkNTMxN2Q3YTU1NGQ1Li5kZTI1Yzk4NjkwZTQzYzdhZWQyYTU0ZmE3
YmE0ODVhZDgyY2Y2MDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTE0OSw4ICsxNDks
OSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBzdHJ1Y3QgQnlWYWxDb21waWxhdGlvbkluZm8gewog
ICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbygpIHsgfQogICAgICAgICAKLSAgICAgICAgQnlW
YWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6
OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIE1hY3Jv
QXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQorICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5m
byh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBu
b3RJbmRleEp1bXAsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wLCBK
SVRBcnJheU1vZGUgYXJyYXlNb2RlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldCkK
ICAgICAgICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQorICAgICAgICAgICAg
LCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1wKQogICAgICAgICAgICAgLCBiYWRUeXBlSnVtcChi
YWRUeXBlSnVtcCkKICAgICAgICAgICAgICwgYXJyYXlNb2RlKGFycmF5TW9kZSkKICAgICAgICAg
ICAgICwgZG9uZVRhcmdldChkb25lVGFyZ2V0KQpAQCAtMTU4LDYgKzE1OSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB1bnNpZ25lZCBieXRlY29kZUlu
ZGV4OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXA7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wOwogICAg
ICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFi
ZWwgZG9uZVRhcmdldDsKQEAgLTIwNCw2ICsyMDYsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChieVZhbEluZm8sIHJldHVybkFkZHJl
c3MsIGFycmF5TW9kZSk7CiAgICAgICAgIH0KIAorICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxl
R2V0QnlWYWxXaXRoQ2FjaGVkSWQoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJ
bmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBKSVQgaml0KHZt
LCBjb2RlQmxvY2spOworICAgICAgICAgICAgaml0Lm1fYnl0ZWNvZGVPZmZzZXQgPSBieVZhbElu
Zm8tPmJ5dGVjb2RlSW5kZXg7CisgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZh
bFdpdGhDYWNoZWRJZChieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIHByb3BlcnR5TmFtZSk7Cisg
ICAgICAgIH0KKwogICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlUHV0QnlWYWwoVk0qIHZtLCBD
b2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQ
dHIgcmV0dXJuQWRkcmVzcywgSklUQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICAgICAgewogICAg
ICAgICAgICAgSklUIGppdCh2bSwgY29kZUJsb2NrKTsKQEAgLTI0Niw2ICsyNTUsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcHJpdmF0ZUNvbXBpbGUoSklU
Q29tcGlsYXRpb25FZmZvcnQpOwogICAgICAgICAKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGls
ZUdldEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7Cisg
ICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbEluZm8q
LCBSZXR1cm5BZGRyZXNzUHRyLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIHZvaWQgcHJp
dmF0ZUNvbXBpbGVQdXRCeVZhbChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJh
eU1vZGUpOwogCiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHko
QnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKQEAgLTM3MSw3ICsz
ODEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSnVtcExpc3QgZW1pdEFycmF5U3RvcmFn
ZVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSk7CiAgICAgICAg
IEp1bXBMaXN0IGVtaXRJbnRUeXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFi
bGVKdW1wJiBiYWRUeXBlLCBUeXBlZEFycmF5VHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRG
bG9hdFR5cGVkQXJyYXlQdXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5
cGUsIFR5cGVkQXJyYXlUeXBlKTsKLSAgICAgICAgCisKKyAgICAgICAgSklUR2V0QnlJZEdlbmVy
YXRvciBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qLCBjb25zdCBJZGVudGlm
aWVyJiwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcyk7CisKICAgICAg
ICAgZW51bSBGaW5hbE9iamVjdE1vZGUgeyBNYXlCZUZpbmFsLCBLbm93bk5vdEZpbmFsIH07CiAK
ICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0
aW9uYWxDb25kaXRpb24sIFQgbGVmdEhhbmRTaWRlLCBTdHJ1Y3R1cmUqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDkwYjUzMjE1YWIwNGM3NDMzOGFkYmE4
MzYzMDQwYzM4NGRmZmEzMWUuLmRhZjJhZmYzN2MwMDAyNWY4ODZiZDMxMGM0NDM3ZGMwN2UzNTA5
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTEwOCw3
ICsxMTA4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGRzdCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxD
b21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwor
ICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1f
Ynl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwog
fQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYg
aXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4
IDk2OTZmY2VkOWQyZjg0NzI3NTliM2Q3M2U2MWVkYzNhNWI0MmM0YWEuLmMxODIyNjBlZmE1NmFi
OTNhYmY0ZTMzMTlmMDM0ODljNjFiOTIyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMTU1NSw3ICsxNTU1LDIzIEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKKyAgICBp
ZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkgJiYgKHN1YnNjcmlwdC5pc1N5bWJvbCgpIHx8IHN1YnNj
cmlwdC5pc1N0cmluZygpKSkgeworICAgICAgICBjb25zdCBJZGVudGlmaWVyIHByb3BlcnR5TmFt
ZSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGV4ZWMpOworCisgICAgICAgIGlmICghc3Vic2Ny
aXB0LmlzU3RyaW5nKCkgfHwgIXBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgeworICAgICAgICAg
ICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZz
ZXQoKTsKKyAgICAgICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7CisgICAgICAgICAgICBC
eVZhbEluZm8mIGJ5VmFsSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRCeVZhbEluZm8oYnl0
ZWNvZGVPZmZzZXQgLSAxKTsKKyAgICAgICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLnN0dWJSb3V0
aW5lKTsKKyAgICAgICAgICAgIEpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKCZ2bSwg
ZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVS
Tl9BRERSRVNTKSwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIFByb3BlcnR5
U2xvdCBzbG90KGJhc2VWYWx1ZSk7CisgICAgICAgIGJvb2wgaGFzUmVzdWx0ID0gYmFzZVZhbHVl
LmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGhhc1Jlc3VsdCA/IHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVy
dHlOYW1lKSA6IGpzVW5kZWZpbmVkKCkpOworICAgIH0KKwogICAgIEpTVmFsdWUgcmVzdWx0ID0g
Z2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGFycmF5UHJvZmlsZSwgUmV0dXJu
QWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwCmluZGV4IDRlZjA2ZDkyMTNhMmIxZGJmZmJhNGM3YzMzNGQyZjZmMWM0Nzkx
N2UuLmQxMjAzNzM3NWQ4ZjFmODU1OThhYmY3NDlhYzM4MTlmMWViZmZjMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0xMDAsOCAr
MTAwLDE1IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMSk7Ci0gICAgZW1pdEp1bXBTbG93Q2FzZUlm
Tm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CiAKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RK
U0NlbGwocmVnVDAsIGJhc2UpOworCisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gaW1wbGVtZW50
IHBhdGNoYWJsZUJyYW5jaDY0LgorICAgIEp1bXAgaXNJbmRleCA9IGVtaXRKdW1wSWZJbW1lZGlh
dGVJbnRlZ2VyKHJlZ1QxKTsKKyAgICBQYXRjaGFibGVKdW1wIG5vdEluZGV4ID0gcGF0Y2hhYmxl
SnVtcCgpOworICAgIGFkZFNsb3dDYXNlKG5vdEluZGV4KTsKKworICAgIGlzSW5kZXgubGluayh0
aGlzKTsKICAgICAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGluY29ycmVjdCAtIHdlJ3JlIHplcm8t
ZXh0ZW5kaW5nIGFuIGludDMyLiAgT24gdGhlIGhvdCBwYXRoIHRoaXMgZG9lc24ndCBtYXR0ZXIu
CiAgICAgLy8gV2UgY2hlY2sgdGhlIHZhbHVlIGFzIGlmIGl0IHdhcyBhIHVpbnQzMiBhZ2FpbnN0
IHRoZSBtX3ZlY3Rvckxlbmd0aCAtIHdoaWNoIHdpbGwgYWx3YXlzIGZhaWwgaWYKICAgICAvLyBu
dW1iZXIgd2FzIHNpZ25lZCBzaW5jZSBtX3ZlY3Rvckxlbmd0aCBpcyBhbHdheXMgbGVzcyB0aGFu
IGludG1heCAoc2luY2UgdGhlIHRvdGFsIGFsbG9jYXRpb24KQEAgLTExMCw3ICsxMTcsNiBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgLy8gZXh0ZW5kaW5nIHNpbmNlIGl0IG1ha2VzIGl0IGVhc2llciB0byByZS10YWcg
dGhlIHZhbHVlIGluIHRoZSBzbG93IGNhc2UuCiAgICAgemVyb0V4dGVuZDMyVG9QdHIocmVnVDEs
IHJlZ1QxKTsKIAotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZSk7
CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdUMiwgcHJvZmls
ZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVNYXNrKSwgcmVnVDIpOwog
CkBAIC0xNTAsNyArMTU2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsK
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBp
bGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwg
YmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5k
KEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIG5vdEluZGV4LCBiYWRUeXBl
LCBtb2RlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0RG91YmxlTG9hZChJ
bnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCkBAIC0xOTUsNiArMjAxLDQzIEBA
IEpJVDo6SnVtcExpc3QgSklUOjplbWl0QXJyYXlTdG9yYWdlTG9hZChJbnN0cnVjdGlvbiosIFBh
dGNoYWJsZUp1bXAmIGJhZFR5cGUpCiAgICAgcmV0dXJuIHNsb3dDYXNlczsKIH0KIAorSklUR2V0
QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEp1bXBM
aXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCit7CisgICAgLy8gYmFzZTogcmVn
VDAKKyAgICAvLyBwcm9wZXJ0eTogcmVnVDEKKyAgICAvLyBzY3JhdGNoOiByZWdUMworCisgICAg
aW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisKKyAgICBzbG93Q2Fz
ZXMuYXBwZW5kKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDEpKTsKKyAgICBpZiAocHJvcGVydHlO
YW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1
cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSks
IG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3Mo
cmVnVDEsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDMpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBB
ZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdT
dHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBKU1N0cmlu
Zzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDMpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJy
YW5jaFRlc3RQdHIoWmVybywgcmVnVDMpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFu
Y2hUZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMywgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSks
IFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAgICB9CisgICAg
c2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1tUHRy
KHByb3BlcnR5TmFtZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigK
KyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lz
dGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QwKSwg
SlNWYWx1ZVJlZ3MocmVnVDApLCBEb250U3BpbGwpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRo
KCp0aGlzKTsKKworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIExhYmVsIGNv
bGRQYXRoQmVnaW4gPSBsYWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5saW5rKHRoaXMp
OworCisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwgb3BlcmF0aW9u
R2V0QnlJZE9wdGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMCwgcHJvcGVydHlOYW1l
LmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJlZ2luLCBjYWxs
KTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICByZXR1cm4gZ2VuOworfQor
CiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAg
IGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAtMjAyLDggKzI0
NSw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCi0gICAgbGlua1Nsb3dD
YXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93Q2FzZUlmTm90
SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBsaW5rU2xvd0Nhc2Uo
aXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgSnVtcCBub25DZWxsID0ganVtcCgp
OwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawogICAgIEp1bXAg
bm90U3RyaW5nID0gYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCAKQEAgLTI5OSw3ICszNDIsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0gICAgbV9ieVZh
bENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9m
ZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8u
YXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1
bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogCiB9CiAKQEAgLTk5OSw2ICsxMDQyLDM2IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBS
ZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkCiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJU
b0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2Vu
ZXJpYykpOwogfQogCit2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJ
ZChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlW
YWxJbmZvLT5ieXRlY29kZUluZGV4OworCisgICAgSnVtcExpc3QgZG9uZUNhc2VzOworICAgIEp1
bXBMaXN0IHNsb3dDYXNlczsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuID0gZW1pdEdl
dEJ5VmFsV2l0aENhY2hlZElkKGN1cnJlbnRJbnN0cnVjdGlvbiwgcHJvcGVydHlOYW1lLCBkb25l
Q2FzZXMsIHNsb3dDYXNlcyk7CisKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2Nv
ZGVCbG9jay0+bV9sb2NrKTsKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCptX3ZtLCAqdGhp
cywgbV9jb2RlQmxvY2spOworICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvd0Nhc2VzLCBDb2RlTG9j
YXRpb25MYWJlbChNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUZyb21FeGVjdXRhYmxlQWRk
cmVzcyhyZXR1cm5BZGRyZXNzLnZhbHVlKCkpKS5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+cmV0
dXJuQWRkcmVzc1RvU2xvd1BhdGgpKTsKKyAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmVDYXNlcywg
YnlWYWxJbmZvLT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+YmFkVHlwZUp1
bXBUb0RvbmUpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNhbGxTaXRlIDogbV9jYWxscykgewor
ICAgICAgICBpZiAoY2FsbFNpdGUudG8pCisgICAgICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGNh
bGxTaXRlLmZyb20sIEZ1bmN0aW9uUHRyKGNhbGxTaXRlLnRvKSk7CisgICAgfQorICAgIGdlbi5m
aW5hbGl6ZShwYXRjaEJ1ZmZlcik7CisKKyAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5lID0gRklO
QUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAor
ICAgICAgICAoIkJhc2VsaW5lIGdldF9ieV92YWwgd2l0aCBjYWNoZWQgcHJvcGVydHkgbmFtZSAn
JXMnIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCBwcm9wZXJ0eU5hbWUuaW1wbCgpLT51
dGY4KCkuZGF0YSgpLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJldHVybkFkZHJl
c3MudmFsdWUoKSkpOworICAgIGJ5VmFsSW5mby0+Y2FjaGVkSWQgPSBwcm9wZXJ0eU5hbWU7Cisg
ICAgYnlWYWxJbmZvLT5zdHViSW5mbyA9IGdlbi5zdHViSW5mbygpOworCisgICAgUmVwYXRjaEJ1
ZmZlciByZXBhdGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGlu
ayhieVZhbEluZm8tPm5vdEluZGV4SnVtcCwgQ29kZUxvY2F0aW9uTGFiZWwoYnlWYWxJbmZvLT5z
dHViUm91dGluZS0+Y29kZSgpLmNvZGUoKSkpOworICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2Fs
bGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZh
bEdlbmVyaWMpKTsKK30KKwogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJ
bmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSklUQXJyYXlN
b2RlIGFycmF5TW9kZSkKIHsKICAgICBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uID0g
bV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBieVZhbEluZm8tPmJ5dGVjb2Rl
SW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcAppbmRleCA2MDljYTEzODgyMjdkYjViZGE1MzkyNzUzMDNkYWRkMmQ4YjFj
ZWJjLi43ZDI5OTc2NmE4NDU0YjE1OTExNjI1OGRlMmY0ODVlYTg3MjRhNjRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAK
QEAgLTE1Miw4ICsxNTIsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdExvYWQyKGJhc2UsIHJlZ1Qx
LCByZWdUMCwgcHJvcGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCi0gICAgYWRkU2xvd0Nhc2Uo
YnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcp
KSk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKKyAgICBQ
YXRjaGFibGVKdW1wIG5vdEluZGV4ID0gcGF0Y2hhYmxlQnJhbmNoMzIoTm90RXF1YWwsIHJlZ1Qz
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKTsKKyAgICBhZGRTbG93Q2FzZShub3RJ
bmRleCk7CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdUMSwg
cHJvZmlsZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVNYXNrKSwgcmVn
VDEpOwogCkBAIC0xOTIsNyArMTkzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1Np
dGUoKTsKICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogICAgIAotICAgIG1fYnlW
YWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVP
ZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
LmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwg
YmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdENvbnRp
Z3VvdXNMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdU
eXBlIGV4cGVjdGVkU2hhcGUpCkBAIC0yMzYsNyArMjM3LDQ0IEBAIEpJVDo6SnVtcExpc3QgSklU
OjplbWl0QXJyYXlTdG9yYWdlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5
cGUpCiAgICAgCiAgICAgcmV0dXJuIHNsb3dDYXNlczsKIH0KLSAgICAKKworSklUR2V0QnlJZEdl
bmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEp1bXBMaXN0JiBk
b25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCit7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisKKyAgICAvLyBiYXNlOiB0YWcocmVnVDEpLCBwYXls
b2FkKHJlZ1QwKQorICAgIC8vIHByb3BlcnR5OiB0YWcocmVnVDMpLCBwYXlsb2FkKHJlZ1QyKQor
ICAgIC8vIHNjcmF0Y2g6IHJlZ1Q0CisKKyAgICBzbG93Q2FzZXMuYXBwZW5kKGVtaXRKdW1wSWZO
b3RKU0NlbGwocmVnVDMpKTsKKyAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3Mo
cmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVy
ZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIFN5bWJvbDo6b2Zmc2V0
T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6
OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwg
cmVnVDQpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVn
VDQpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0MzIoWmVybywgQWRkcmVz
cyhyZWdUNCwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdJ
bXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAgICB9CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFu
Y2hQdHIoTm90RXF1YWwsIHJlZ1Q0LCBUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkp
KSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKKyAgICAgICAgbV9jb2RlQmxvY2ss
IENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0
ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzKHJl
Z1QxLCByZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMp
OworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisgICAgTGFiZWwgY29sZFBhdGhC
ZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgpLmxpbmsodGhpcyk7CisKKyAg
ICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlLCBvcGVyYXRpb25HZXRCeUlk
T3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QxLCByZWdUMCwgcHJvcGVydHlOYW1l
LmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJlZ2luLCBjYWxs
KTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICByZXR1cm4gZ2VuOworfQor
CiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAg
IGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAtMjQ0LDggKzI4
Miw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCi0gICAgbGlua1Nsb3dD
YXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93Q2FzZUlmTm90
SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBsaW5rU2xvd0Nhc2Uo
aXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAKICAgICBKdW1wIG5vbkNlbGwgPSBqdW1w
KCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNrCkBAIC0zMTQs
NyArMzUyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAot
ICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1f
Ynl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBQ
YXRjaGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklUOjpKdW1wTGlz
dCBKSVQ6OmVtaXRHZW5lcmljQ29udGlndW91c1B1dEJ5VmFsKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24sIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIEluZGV4aW5nVHlwZSBpbmRleGlu
Z1NoYXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9s
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCBlNTc5MGQ3
ODcyMjZiZWE3NjAyNGM5ZDFkNjZhNjc2MGY2NGRlNWEyLi44M2Y1ZGUyNDg1MmJjMzc4ZWUwYTc3
MDM5ZjQ2MzE4MjVmZGRkYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wu
aApAQCAtNzksNiArNzksOCBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsK
ICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25z
dDsKICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7CiAKKyAgICBzdGF0aWMg
c2l6ZV90IG9mZnNldE9mUHJpdmF0ZU5hbWUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3lt
Ym9sLCBtX3ByaXZhdGVOYW1lKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIHZvaWQgZGVz
dHJveShKU0NlbGwqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNvbnN0cnVj
dG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFjNTg1MTYwMmU5MzRiMzM2NjhhZWQyY2ZmNGRkY2I3ODc2ZWUx
ODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY29uc3RydWN0b3IuanMKQEAgLTAsMCArMSwyMyBAQAor
dmFyIHN5bWJvbCA9ICJAQHNwZWNpZXMiOworZnVuY3Rpb24gSGVsbG8oKSB7Cit9CisKK09iamVj
dC5kZWZpbmVQcm9wZXJ0eShIZWxsbywgc3ltYm9sLCB7CisgICAgZ2V0OiBmdW5jdGlvbiAoKSB7
CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KK30pOworCitIZWxsby5wcm90b3R5cGUuZ2Vu
ZXJhdGUgPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yW3N5
bWJvbF0oKTsKK307CisKK2Z1bmN0aW9uIG9rKCkgeworICAgIHZhciBvYmplY3QgPSBuZXcgSGVs
bG8oKTsKKyAgICBpZiAoIShvYmplY3QuZ2VuZXJhdGUoKSBpbnN0YW5jZW9mIEhlbGxvKSkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgaW5zdGFuY2UiKTsKK30KK25vSW5saW5lKG9rKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIG9rKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctZXhpdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1leGl0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhYTI2MmQ2NGE2NjE0OTY0NjY5YWI3
NGNiMmYwMWZhNGVkODAyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZXhpdC5qcwpAQCAtMCwwICsx
LDM0IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAn
ICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQoreworICAg
IHJldHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRCeVZhbCk7CisKK2Z1bmN0aW9u
IGdldFN0cjEoKQoreworICAgIHJldHVybiAiaGVsbG8iOworfQorbm9JbmxpbmUoZ2V0U3RyMSk7
CisKK2Z1bmN0aW9uIGdldFN0cjIoKQoreworICAgIHJldHVybiAiaGVsbG8iOworfQorbm9Jbmxp
bmUoZ2V0U3RyMik7CisKK3ZhciBvYmplY3QgPSB7CisgICAgaGVsbG86IDQyCit9OworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwg
aSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7CitzaG91bGRCZShnZXRC
eVZhbChvYmplY3QsIHsgdG9TdHJpbmcoKSB7IHJldHVybiAnaGVsbG8nOyB9IH0pLCA0Mik7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChv
YmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigpKSwgNDIpOworc2hvdWxk
QmUoZ2V0QnlWYWwob2JqZWN0LCB7IHRvU3RyaW5nKCkgeyByZXR1cm4gJ2hlbGxvJzsgfSB9KSwg
NDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTgxM2E3ZTE0MGQzODY2NTNmYmMzNTRjNTBlYWQ1OGUxMjE5ZDNhNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1nZW5lcmF0ZWQuanMKQEAgLTAsMCArMSwzMyBAQAorZnVuY3Rpb24gc2hvdWxkQmUo
YWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9u
IGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKK3sKKyAgICByZXR1cm4gb2JqZWN0W25hbWVdOworfQor
bm9JbmxpbmUoZ2V0QnlWYWwpOworCit2YXIgdmFsdWUgPSAnbG8nOworCitmdW5jdGlvbiBnZXRT
dHIxKCkKK3sKKyAgICByZXR1cm4gImhlbCIgKyB2YWx1ZTsKK30KK25vSW5saW5lKGdldFN0cjEp
OworCitmdW5jdGlvbiBnZXRTdHIyKCkKK3sKKyAgICByZXR1cm4gImhlbGxvIjsKK30KK25vSW5s
aW5lKGdldFN0cjIpOworCit2YXIgb2JqZWN0ID0geworICAgIGhlbGxvOiA0MiwKKyAgICB3b3Js
ZDogNTAKK307CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRC
ZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigpKSwg
NDIpOworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCAnd29ybGQnKSwgNTApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWdldHRlci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU4ZWMwYTg2ZGI5NTRkODQ3
ZjZiOGY3NjJkMjk2YmVkY2ViMWJmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIuanMKQEAg
LTAsMCArMSwxNiBAQAorCit2YXIgb2JqZWN0ID0geworICAgIGdldCBoZWxsbygpIHsKKyAgICAg
ICAgcmV0dXJuIDQyOworICAgIH0KK307CisKK2Z1bmN0aW9uIG9rKCkgeworICAgIHZhciB2YWx1
ZSA9ICdoZWxsbyc7CisgICAgaWYgKG9iamVjdFt2YWx1ZV0gKyAyMCAhPT0gNjIpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcigpOworfQorbm9JbmxpbmUob2spOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwOyArK2kpCisgICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5qcyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ZGIzM2Q5YmVjYjE0YWQyMDViODc1NWJkZmUxZjk1YmIzOTdiYjQ4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBnZXRCeVZh
bChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30KK25vSW5saW5l
KGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3RyMSgpCit7CisgICAgcmV0dXJuICJoZWxsbyI7
Cit9Citub0lubGluZShnZXRTdHIxKTsKKworZnVuY3Rpb24gZ2V0U3RyMigpCit7CisgICAgcmV0
dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIyKTsKKwordmFyIG9iamVjdCA9IHsKKyAg
ICBoZWxsbzogNDIsCisgICAgd29ybGQ6IDUwCit9OworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdl
dFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ3dv
cmxkJyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yODk1YzI2NDUxZDI1N2E5N2EyZGIzZWM1ODkyOWI5ZDU1MzQzMjUxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzCkBAIC0wLDAgKzEsMjMgQEAKK3ZhciBz
eW1ib2wgPSBTeW1ib2woKTsKK2Z1bmN0aW9uIEhlbGxvKCkgeworfQorCitPYmplY3QuZGVmaW5l
UHJvcGVydHkoSGVsbG8sIHN5bWJvbCwgeworICAgIGdldDogZnVuY3Rpb24gKCkgeworICAgICAg
ICByZXR1cm4gdGhpczsKKyAgICB9Cit9KTsKKworSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlID0g
ZnVuY3Rpb24gKCkgeworICAgIHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcltzeW1ib2xdKCk7
Cit9OworCitmdW5jdGlvbiBvaygpIHsKKyAgICB2YXIgb2JqZWN0ID0gbmV3IEhlbGxvKCk7Cisg
ICAgaWYgKCEob2JqZWN0LmdlbmVyYXRlKCkgaW5zdGFuY2VvZiBIZWxsbykpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiYmFkIGluc3RhbmNlIik7Cit9Citub0lubGluZShvayk7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtZXhpdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGNkY2I2NzZkOTRlNDZiNmMxMDFhOGE3N2QwMGI2
NjQ0YThjMTBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanMKQEAgLTAsMCArMSwzOCBAQAor
dmFyIHN5bWJvbDEgPSBTeW1ib2woKTsKK3ZhciBzeW1ib2wyID0gT2JqZWN0LmdldE93blByb3Bl
cnR5U3ltYm9scyh7IFtzeW1ib2wxXTogNDIgfSlbMF07CisKK2Z1bmN0aW9uIHNob3VsZEJlKGFj
dHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBn
ZXRCeVZhbChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30KK25v
SW5saW5lKGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3ltMSgpCit7CisgICAgcmV0dXJuIHN5
bWJvbDE7Cit9Citub0lubGluZShnZXRTeW0xKTsKKworZnVuY3Rpb24gZ2V0U3ltMigpCit7Cisg
ICAgcmV0dXJuIHN5bWJvbDI7Cit9Citub0lubGluZShnZXRTeW0yKTsKKwordmFyIG9iamVjdCA9
IHsKKyAgICBbc3ltYm9sMV06IDQyLAorICAgIGhlbGxvOiA1MAorfTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09
PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOworc2hvdWxkQmUoZ2V0QnlWYWwob2Jq
ZWN0LCAnaGVsbG8nKSwgNTApOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisg
ICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN5bTEoKSA6IGdl
dFN5bTIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ2hlbGxvJyksIDUwKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1nZXR0ZXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwMzVlNGIw
MzhhNDY1ZDQzZWJjMjhlNWNmNDgxOWI1OWU2NjY4N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0
dGVyLmpzCkBAIC0wLDAgKzEsMjMgQEAKKwordmFyIG9iamVjdCA9IHsKKyAgICBnZXQgaGVsbG8o
KSB7CisgICAgICAgIHJldHVybiA0MjsKKyAgICB9Cit9OworCit2YXIgc3ltYm9sID0gU3ltYm9s
KCk7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIHN5bWJvbCwgeworICAgIGdldDog
ZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gNDI7CisgICAgfQorfSk7CisKK2Z1bmN0aW9u
IG9rKCkgeworICAgIGlmIChvYmplY3Rbc3ltYm9sXSArIDIwICE9PSA2MikKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCk7Cit9Citub0lubGluZShvayk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJjODM0ZWIyNmJlMzI2ZTFjOTE4NDkxZjBlMTliN2ZhMzhiYjA5MDMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wuanMKQEAgLTAsMCArMSwzMyBAQAordmFyIHN5bWJvbDEgPSBTeW1ib2woKTsKK3ZhciBz
eW1ib2wyID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh7IFtzeW1ib2wxXTogNDIgfSlb
MF07CisKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0
dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcg
KyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUpCit7CisgICAg
cmV0dXJuIG9iamVjdFtuYW1lXTsKK30KK25vSW5saW5lKGdldEJ5VmFsKTsKKworZnVuY3Rpb24g
Z2V0U3ltMSgpCit7CisgICAgcmV0dXJuIHN5bWJvbDE7Cit9Citub0lubGluZShnZXRTeW0xKTsK
KworZnVuY3Rpb24gZ2V0U3ltMigpCit7CisgICAgcmV0dXJuIHN5bWJvbDI7Cit9Citub0lubGlu
ZShnZXRTeW0yKTsKKwordmFyIG9iamVjdCA9IHsKKyAgICBbc3ltYm9sMV06IDQyLAorICAgIGhl
bGxvOiA1MAorfTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3Vs
ZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0xKCkgOiBnZXRTeW0yKCkp
LCA0Mik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggN2I2ZTdhNGJhOGFiYjI5NWI0ZDUxMzEwNTI0MWNlZmMzZDgxMGZkZi4u
YTY2MWQzN2E0ZDE2NzJkMjBkNGM2MTgyM2I4MDhkNjBjNjQ1YmVhOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDgzIEBACisyMDE1LTA4LTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29t
PgorCisgICAgICAgIEludHJvZHVjZSBnZXRfYnlfaWQgbGlrZSBJQyBpbnRvIGdldF9ieV92YWwg
d2hlbiB0aGUgZ2l2ZW4gbmFtZSBpcyBTdHJpbmcgb3IgU3ltYm9sCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc0ODAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3ludGhldGljIGJlbmNobWFya3Mg
dGhhdCByZXBsYWNlcyBub3JtYWwgcHJvcGVydHkgbG9hZCB3aXRoIHN5bWJvbC9zdHJpbmcga2V5
ZWQgbG9hZC4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRy
eS1ibG9jay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1x
dWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1
YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJv
dG8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnkt
YmxvY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNl
bGYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5q
czogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKEEpOgorICAgICAg
ICAoQik6CisgICAgICAgIChDKToKKyAgICAgICAgKEQpOgorICAgICAgICAoRSk6CisgICAgICAg
IChGKToKKyAgICAgICAgKEcpOgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoRm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qczog
QWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKEZvbyk6Cisg
ICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qczogQWRkZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZy
b20tdHJ5LWJsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKEEpOgorICAgICAgICAoQik6CisgICAg
ICAgIChDKToKKyAgICAgICAgKEQpOgorICAgICAgICAoRSk6CisgICAgICAgIChGKToKKyAgICAg
ICAgKEcpOgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qczog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1wcm90by1vci1zZWxmLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAg
IChiYXIpOgorICAgICAgICAoRm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qczogQWRkZWQuCisgICAg
ICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKEZvbyk6CisKIDIwMTUtMDgtMDQg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNj
cmlwdCBwYXRocyBpbiB0aGVzZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hY2NmNDNhZmEwN2QzYzhlMGYxNzg5MmVlZGE3OTI3ZTIxYjgx
OGIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiMzdjNTAwMDBjMGEx
ZDFlMmYyNjI4NTdmNzliNGVjNDE0N2UwYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pT
UmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA0ODJjNDUwZDk1NWFlOTk2NGVlMjViZmYyYjVmYzBjYjY2ZjQ1MzUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCww
ICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5ZWYxNDE1NzU4NGNhNjE2MDY0Njg3NTk4Y2ZiZDRkYjc5
N2ZlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1s
CkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJv
bS10cnktYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMTZhNjY3Mjk3MDM2YTQ1YzVmMzJiNzAxYzBiYzdlZmIyZmJkYTE4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
YWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jaworCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20t
dHJ5LWJsb2NrLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmM5NjNhMDEyYjAy
Y2YzNjE0NDVmNjdjNmVjYmQ4Y2QxOGIwYjJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2Nr
Lmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9j
ay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVlYzBmYzcwZWU3YTI0NTU1ZmIwZmQ4YWJiNmEzZTQ2YTdmZDUwNDQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9u
IHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44MzZmNThkNDE1N2I1MWJiOTg1MzgyZGM4MWE2ZDk0OGZiOWRiMDI3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCkBAIC0wLDAgKzEsMTIg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWY5MmM5MDc5Y2MyZGJkZGFiZTRjYjY1M2IzMjNmZmZl
NTM5NzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1v
ci1zZWxmLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctcHJvdG8tb3Itc2VsZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2YWI2MTFiZDQ1ZGUzMDQyNmY2YmI1
NGJlNjk1MzkwYjczMGEwODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIxYWE1N2VjYWI2YTFhMWE3ODRkYjVlODg0MmZlMmJhZGI4
NWMyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJv
d24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
cXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzc1MWI2
NGU4MjJhYjJkZWM0N2FkOWE5ZjQ2NjhlMzc5ZTFmMDc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNl
bGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MjE3MTM0Zjk4Mjg5MDQzOTU2
ODJmODg3MDZkMmM2N2FkODhiNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1v
ci1wcm90bworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRp
b24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXNlbGYtb3ItcHJvdG8uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA0YTZiOTlj
NWI1ZTMwNmQ4M2I2ZjI1MzQyM2EwZmY4MTM1OGUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmh0
bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MTAwYzVkOGI4ZjhjZTI4NTYxYzdiNTEwYTc4M2Q2NTEyNTNiZGUy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzOTBlZDk1MmNlZWUyYTIw
ZWZlYzRkYjEwOTM1M2I3NzNiMjhmYmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5v
IGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA0ODJjNDUwZDk1NWFlOTk2NGVlMjViZmYyYjVmYzBjYjY2ZjQ1MzUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCwwICsx
LDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU5ZWYxNDE1NzU4NGNhNjE2MDY0Njg3NTk4Y2ZiZDRkYjc5N2Zl
ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCkBA
IC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10
cnktYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNzU0YmIwZThlNTY4YzhkMDIwNmU2NDllNTI5NzRiM2Y5ZTQyYTQxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWlu
LWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jaworCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5
LWJsb2NrLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTc1Zjk5MjgwZTcyMzM1
YzJiNTRkM2Q5M2YwODYxMTgzMTk3NDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0
bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQzMTQ5NGE5YjQ1NjJmOWUxNjkwNDc4OTdhYjYwNjM1ZGYxMTQ4NWIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitK
U1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kOWJmYWNhN2E1ZTRiNzI4OGVjZWQyNmU4NTM2MGQ1NmUwNjdjN2ExCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCkBAIC0wLDAgKzEsMTIgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMTVkMjYyY2VhNTIwNWNmNWYzY2I2MzdhNzg4ZGEzMmIwZTNh
NmM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1z
ZWxmLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
cHJvdG8tb3Itc2VsZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ODE1Y2UzM2U4YWM3NzUxMDZkYWIyYzJh
N2I0MjYxNGY5MzhjZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sCkBAIC0wLDAgKzEsMTIg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjQ2MDVjMDc2MWMyMDhiZWZkNjI5ZWJkMjJhNGZkZjlmZTg0OGMz
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVh
ZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWNlNDYyNDVl
ODg2YmUyN2Y1MTA2NmE1MTczYzQ5NTFmMmEyMGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYt
b3ItcHJvdG8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NjY5MTA4YmFjMWNlNmQxZWE4NTA4
MDM0NDUzODFjZGM1ZGFmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1w
cm90bworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24g
dGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXNlbGYtb3ItcHJvdG8uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY1ZjNkNzA0ODFh
Y2NhYWYwNWEwMDAwNGE1ZmU1Mjk2YTMyZWJkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWwK
QEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyNTg5ZjFlYmI4YzEyZGUxY2EwM2Y4
MTIyZmQ0MjI1NDMxMDE3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTQgQEAKKyhmdW5jdGlv
bigpIHsKKyAgICB2YXIgYSA9ICdhJywgbCA9ICdsJzsKKyAgICB2YXIgbyA9IHtbYV06MX07Cisg
ICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07
CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHRtcDsK
KyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNTk0MDFkN2Y1NzI4NDcxNGZlN2QzZDVlMDQ1MjEx
YmQ0N2MxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24uanMKQEAgLTAsMCArMSwxNCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBh
ID0gJ2EnLCBiID0gJ2InLCBjID0gJ2MnLCBkID0gJ2QnLCBlID0gJ2UnLCBmID0gJ2YnLCBnID0g
J2cnLCBoID0gJ2gnLCBpID0gJ2knLCBqID0gJ2onLCBrID0gJ2snLCBsID0gJ2wnOworICAgIHZh
ciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBb
aF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2JdOjMs
IFtjXTo0LCBbZF06NSwgW2VdOjYsIFtmXTo3LCBbZ106OCwgW2hdOjksIFtpXToxMCwgW2pdOjEx
LCBba106MTIsIFtsXToxM307CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaW5k
ZXggPSAwOyBpbmRleCA8IDEwMDAwMDA7ICsraW5kZXgpIHsKKyAgICAgICAgcmVzdWx0ICs9IG9b
YV0gXiBvW2JdIF4gb1tjXSBeIG9bZF0gXiBvW2VdIF4gb1tmXSBeIG9bZ10gXiBvW2hdIF4gb1tp
XSBeIG9bal0gXiBvW2tdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAgICAgICAgbyA9IHA7Cisg
ICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gNjUwMDAwMCkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRmOTcwZmVlMjRiMGVmNjU1MjkyY2FlZGE0MWM2YmViMDBlMGQ0MjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzCkBAIC0wLDAgKzEsNDkg
QEAKK3ZhciBmID0gJ2YnOworCitmdW5jdGlvbiBBKCkgeyB9CisKK0EucHJvdG90eXBlID0ge1tm
XTo0Mn07CisKK2Z1bmN0aW9uIEIoKSB7IH0KKworQi5wcm90b3R5cGUgPSBuZXcgQSgpOworCitm
dW5jdGlvbiBDKCkgeyB9CisKK0MucHJvdG90eXBlID0gbmV3IEIoKTsKKworZnVuY3Rpb24gRCgp
IHsgfQorCitELnByb3RvdHlwZSA9IG5ldyBDKCk7CisKK2Z1bmN0aW9uIEUoKSB7IH0KKworRS5w
cm90b3R5cGUgPSBuZXcgRCgpOworCitmdW5jdGlvbiBGKCkgeyB9CisKK0YucHJvdG90eXBlID0g
bmV3IEUoKTsKKworZnVuY3Rpb24gRygpIHsgfQorCitHLnByb3RvdHlwZSA9IG5ldyBGKCk7CisK
K2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IDA7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgICAgICAgICAgcmVzdWx0
ICs9IG9bZl07CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICByZXR1cm4gNTI7CisgICAgfQorfQorCit2YXIgcmVzdWx0ID0gMDsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgcmVzdWx0ICs9IGZvbyhuZXcgRygpKTsKKworaWYg
KHJlc3VsdCAhPSA0MjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI4OGFhNWJiYTEy
ZWYwMzk5ZjgxZjkwNGNmZGJlNDhkMzhkOWMyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0wLDAgKzEsOSBAQAorKGZ1bmN0aW9uKCkgewor
ICAgIHZhciBhID0gJ2EnLCBiID0gJ2InLCBjID0gJ2MnLCBkID0gJ2QnLCBlID0gJ2UnLCBmID0g
J2YnLCBnID0gJ2cnLCBoID0gJ2gnLCBpID0gJ2knLCBqID0gJ2onLCBrID0gJ2snOworICAgIHZh
ciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBb
aF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBm
b3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkKKyAgICAgICAgcmVz
dWx0ICs9IG9bYV0gXiBvW2JdIHwgb1tjXSBeIG9bZF0gJiBvW2VdIF4gb1tmXSB8IG9bZ10gXiBv
W2hdICYgb1tpXSBeIG9bal0gfCBvW2tdOworICAgIGlmIChyZXN1bHQgIT0gMTUwMDAwMDApCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWY3NDkzYjk4ZjYxMGQxYzRhZDliODNlZWNmNjFhNjdmOWVjYWFiOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9ICdmJzsK
KworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFy
KGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAw
MDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisg
ICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwor
dmFyIHJlc3VsdCA9IGJhcihbbmV3IEZvbygpLCB7W2ZdOjI0fV0pOworCitpZiAocmVzdWx0ICE9
IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45OTFkY2UzYzI1N2Q4ZDlkODA0ZTU0MGE4MDhmNjg0YjQ5N2YzMjkzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMjIgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9
ICdhJzsKKyAgICB2YXIgbCA9ICdsJzsKKyAgICB2YXIgYiA9ICdiJzsKKyAgICB2YXIgYyA9ICdj
JzsKKworICAgIHZhciBvID0ge1thXToxfTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsK
KyAgICB2YXIgcSA9IHtbYV06MywgW2JdOjN9OworICAgIHZhciByID0ge1thXTo0LCBbY106NX07
CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyAr
K2kpIHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07CisgICAgICAgIHZhciB0bXAgPSBvOworICAg
ICAgICBvID0gcDsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSByOworICAgICAgICByID0g
dG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJv
dG8uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJlYzEwN2NhN2ZhMzgwZjFi
Yzk2ZWY3ZTlhZTNhZmNkNTExNzJjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90
by5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9ICdmJzsKKworZnVuY3Rpb24gZm9vKG8pIHsK
KyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0
ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgeworICAgICAgICBm
b3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0g
Zm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28o
KSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9IGJhcihbe1tm
XToyNH0sIG5ldyBGb28oKV0pOworCitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJv
dyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NWQzMmFmNTAz
MmNkMDQ1ODU3ODQ5NWMzNzc5OTI1OTg1ZjMwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTQg
QEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgpLCBsID0gU3ltYm9sKCk7Cisg
ICAgdmFyIG8gPSB7W2FdOjF9OworICAgIHZhciBwID0ge1thXToyLCBbbF06MTN9OworICAgIHZh
ciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKSB7Cisg
ICAgICAgIHJlc3VsdCBePSBvW2FdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAgICAgICAgbyA9
IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gMCkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmJlOTcxYjYx
NjM1OTRjZTIwNDNlMjc5NTUwMDdlODMwYjA1YjhlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0wLDAgKzEsMTQgQEAKKyhm
dW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgpLCBiID0gU3ltYm9sKCksIGMgPSBTeW1i
b2woKSwgZCA9IFN5bWJvbCgpLCBlID0gU3ltYm9sKCksIGYgPSBTeW1ib2woKSwgZyA9IFN5bWJv
bCgpLCBoID0gU3ltYm9sKCksIGkgPSBTeW1ib2woKSwgaiA9IFN5bWJvbCgpLCBrID0gU3ltYm9s
KCksIGwgPSBTeW1ib2woKTsKKyAgICB2YXIgbyA9IHtbYV06MSwgW2JdOjIsIFtjXTozLCBbZF06
NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06MTAsIFtrXToxMX07Cisg
ICAgdmFyIHAgPSB7W2FdOjIsIFtiXTozLCBbY106NCwgW2RdOjUsIFtlXTo2LCBbZl06NywgW2dd
OjgsIFtoXTo5LCBbaV06MTAsIFtqXToxMSwgW2tdOjEyLCBbbF06IDEzfTsKKyAgICB2YXIgcmVz
dWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRl
eCkgeworICAgICAgICByZXN1bHQgKz0gb1thXSBeIG9bYl0gXiBvW2NdIF4gb1tkXSBeIG9bZV0g
XiBvW2ZdIF4gb1tnXSBeIG9baF0gXiBvW2ldIF4gb1tqXSBeIG9ba107CisgICAgICAgIHZhciB0
bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHRtcDsKKyAgICB9CisgICAgaWYg
KHJlc3VsdCAhPSA2NTAwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y4YWM3OGE4NjA0MzBkYjY3
YWNjNGVlMzc3MGQzMjczMzgwMmUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10
cnktYmxvY2suanMKQEAgLTAsMCArMSw0OSBAQAordmFyIGYgPSBTeW1ib2woIkNvY29hIik7CisK
K2Z1bmN0aW9uIEEoKSB7IH0KKworQS5wcm90b3R5cGUgPSB7W2ZdOjQyfTsKKworZnVuY3Rpb24g
QigpIHsgfQorCitCLnByb3RvdHlwZSA9IG5ldyBBKCk7CisKK2Z1bmN0aW9uIEMoKSB7IH0KKwor
Qy5wcm90b3R5cGUgPSBuZXcgQigpOworCitmdW5jdGlvbiBEKCkgeyB9CisKK0QucHJvdG90eXBl
ID0gbmV3IEMoKTsKKworZnVuY3Rpb24gRSgpIHsgfQorCitFLnByb3RvdHlwZSA9IG5ldyBEKCk7
CisKK2Z1bmN0aW9uIEYoKSB7IH0KKworRi5wcm90b3R5cGUgPSBuZXcgRSgpOworCitmdW5jdGlv
biBHKCkgeyB9CisKK0cucHJvdG90eXBlID0gbmV3IEYoKTsKKworZnVuY3Rpb24gZm9vKG8pIHsK
KyAgICB0cnkgeworICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgICAgICByZXN1bHQgKz0gb1tmXTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVybiA1MjsKKyAg
ICB9Cit9CisKK3ZhciByZXN1bHQgPSAwOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsr
aSkKKyAgICByZXN1bHQgKz0gZm9vKG5ldyBHKCkpOworCitpZiAocmVzdWx0ICE9IDQyMDAwMDAw
KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDU5ZmQ4ZTBiYjk5MTRlZWQ2YmY0ZWVkMTU1MDBj
NDhmMmM0NDJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24uanMKQEAgLTAsMCArMSw5IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSBTeW1ib2wo
KSwgYiA9IFN5bWJvbCgpLCBjID0gU3ltYm9sKCksIGQgPSBTeW1ib2woKSwgZSA9IFN5bWJvbCgp
LCBmID0gU3ltYm9sKCksIGcgPSBTeW1ib2woKSwgaCA9IFN5bWJvbCgpLCBpID0gU3ltYm9sKCks
IGogPSBTeW1ib2woKSwgayA9IFN5bWJvbCgpOworICAgIHZhciBvID0ge1thXToxLCBbYl06Miwg
W2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwg
W2tdOjExfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGlu
ZGV4IDwgMTAwMDAwMDsgKytpbmRleCkKKyAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIHwg
b1tjXSBeIG9bZF0gJiBvW2VdIF4gb1tmXSB8IG9bZ10gXiBvW2hdICYgb1tpXSBeIG9bal0gfCBv
W2tdOworICAgIGlmIChyZXN1bHQgIT0gMTUwMDAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNl
bGYuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJmODJhYjI2OGE3MzI5Mzcw
ODU3NmJjNzgwNmVjYTY3YjZhZWI4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2Vs
Zi5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9IFN5bWJvbCgiQ29jb2EiKTsKKworZnVuY3Rp
b24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFyKGEpIHsKKyAg
ICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkg
eworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisgICAgICAgICAg
ICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitm
dW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwordmFyIHJlc3Vs
dCA9IGJhcihbbmV3IEZvbygpLCB7W2ZdOjI0fV0pOworCitpZiAocmVzdWx0ICE9IDEzMjAwMDAw
MCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
cXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNTgzNjJhZGVhNzBhYjgyMDRkZTVkNTViOWU0YzU2OGMxMTBkMDc3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
LmpzCkBAIC0wLDAgKzEsMjIgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgi
Q29jb2EiKTsKKyAgICB2YXIgbCA9IFN5bWJvbCgpOworICAgIHZhciBiID0gU3ltYm9sKCk7Cisg
ICAgdmFyIGMgPSBTeW1ib2woKTsKKworICAgIHZhciBvID0ge1thXToxfTsKKyAgICB2YXIgcCA9
IHtbYV06MiwgW2xdOjEzfTsKKyAgICB2YXIgcSA9IHtbYV06MywgW2JdOjN9OworICAgIHZhciBy
ID0ge1thXTo0LCBbY106NX07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07CisgICAgICAg
IHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEg
PSByOworICAgICAgICByID0gdG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLXNlbGYtb3ItcHJvdG8uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzAwOGMzNjQxMjBiZjJhYTQ4YWQ3NGFhM2I1YTZmYzdiOTY3YmZiYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtc2VsZi1vci1wcm90by5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9IFN5bWJvbCgn
Q29jb2EnKTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVu
Y3Rpb24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDIwMDAwMDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3Ro
OyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1
cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0g
PSA0MjsKKwordmFyIHJlc3VsdCA9IGJhcihbe1tmXToyNH0sIG5ldyBGb28oKV0pOworCitpZiAo
cmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258271</attachid>
            <date>2015-08-05 01:49:32 -0700</date>
            <delta_ts>2015-08-05 02:01:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150805014923.patch</filename>
            <type>text/plain</type>
            <size>104724</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MzllNTViYTc1MTg0NTIwNDA5MjVmODQ5N2Y2MDI4MzFhYzhiOGExLi4zOTgzODY5YzdjODNkMWU1
MzEyZTZkOGRlOTY4NmRmNDcwZjYwYzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDQgQEAKKzIwMTUtMDgtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGdldF9ieV9pZCBsaWtlIElDIGludG8gZ2V0X2J5
X3ZhbCB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIFN0cmluZyBvciBTeW1ib2wKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBnZXRf
YnlfaWQgSUMgdG8gZ2V0X2J5X3ZhbCBvcGVyYXRpb24gYnkgY2FjaGluZyB0aGUgc3RyaW5nIC8g
c3ltYm9sIGlkLgorICAgICAgICBUaGUgSUMgc2l0ZSBvbmx5IGNhY2hlcyBvbmUgaWQuIEFmdGVy
IGNoZWNraW5nIHRoYXQgdGhlIGdpdmVuIGlkIGlzIHRoZSBzYW1lIHRvIHRoZQorICAgICAgICBj
YWNoZWQgb25lLCB3ZSBwZXJmb3JtIHRoZSBnZXRfYnlfaWQgSUMgb250byBpdC4KKyAgICAgICAg
QW5kIGJ5IGNvbGxlY3RpbmcgSUMgU3RydWN0dXJlU3R1YkluZm8gaW5mb3JtYXRpb24sIHdlIHBh
c3MgaXQgdG8gdGhlIERGRyBhbmQgREZHCisgICAgICAgIGNvbXBpbGVzIGdldF9ieV92YWwgb3Ag
Y29kZSBpbnRvIENoZWNrSWRlbnQgKHdpdGggZWRnZSB0eXBlIGNoZWNrKSBhbmQgR2V0QnlJZCBy
ZWxhdGVkCisgICAgICAgIG9wZXJhdGlvbnMgd2hlbiB0aGUgZ2l2ZW4gZ2V0X2J5X3ZhbCBsZXZl
cmFnZXMgdGhlIHByb3BlcnR5IGxvYWQgd2l0aCB0aGUgY2FjaGVkIGlkLgorCisgICAgICAgIFRv
IGVuc3VyZSB0aGUgaW5jb21pbmcgdmFsdWUgaXMgdGhlIGV4cGVjdGVkIGlkLCBpbiBERkcgbGF5
ZXIsIHdlIHVzZSBTeW1ib2xVc2UgYW5kCisgICAgICAgIFN0cmluZ0lkZW50VXNlIHRvIGVuZm9y
Y2UgdGhlIHR5cGUuIFRvIHVzZSBpdCwgdGhpcyBwYXRjaCBpbXBsZW1lbnRzIFN5bWJvbFVzZS4K
KyAgICAgICAgVGhpcyBjYW4gYmUgbGV2ZXJhZ2VkIHRvIG9wdGltaXplIHN5bWJvbCBvcGVyYXRp
b25zIGluIERGRy4KKworICAgICAgICAqIGJ5dGVjb2RlL0J5VmFsSW5mby5oOgorICAgICAgICAo
SlNDOjpCeVZhbEluZm86OkJ5VmFsSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm9NYXApOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmNw
cDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAgICAgICogYnl0ZWNvZGUv
RXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OkdldEJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgIChKU0M6OkdldEJ5SWRTdGF0
dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKToKKyAgICAgICAg
KiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRl
cjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3Rh
Y2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGlu
Z1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2RlKToKKyAgICAgICAgKiBk
ZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1VpZE9wZXJhbmQpOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAgICAgICAqIGRmZy9ERkdO
b2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3Bh
Z2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6
REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6
c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSWRlbnQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTeW1ib2wpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5jcHA6Cisg
ICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5kLmg6
CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChKU0M6OkRGRzo6
aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAg
ICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNv
bXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja0lkZW50KToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb3dTeW1ib2wpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZSk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RTeW1ib2wpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN5bWJvbCk6CisgICAgICAgICogaml0L0pJ
VC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOgorICAgICAgICAqIGpp
dC9KSVQuaDoKKyAgICAgICAgKEpTQzo6QnlWYWxDb21waWxhdGlvbkluZm86OkJ5VmFsQ29tcGls
YXRpb25JbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVk
SWQpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMy
XzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5
KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVFBy
b3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV92YWwp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9wdXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdl
dEJ5VmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENh
Y2hlZElkKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29w
X2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6Cisg
ICAgICAgICogcnVudGltZS9TeW1ib2wuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisgICAgICAgIChIZWxsbyk6
CisgICAgICAgIChnZXQgSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlKToKKyAgICAgICAgKG9rKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAg
KGdldFN0cjEpOgorICAgICAgICAoZ2V0U3RyMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctZ2VuZXJhdGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3Vs
ZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAgKGdldFN0cjEpOgorICAgICAgICAo
Z2V0U3RyMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Z2V0dGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKG9iamVjdC5nZXQgaGVsbG8pOgorICAgICAgICAo
b2spOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAg
KGdldFN0cjEpOgorICAgICAgICAoZ2V0U3RyMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0b3IuanM6IEFkZGVkLgorICAgICAgICAoSGVs
bG8pOgorICAgICAgICAoZ2V0IEhlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSk6CisgICAgICAgIChv
ayk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZXhpdC5q
czogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChnZXRCeVZhbCk6CisgICAg
ICAgIChnZXRTeW0xKToKKyAgICAgICAgKGdldFN5bTIpOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWdldHRlci5qczogQWRkZWQuCisgICAgICAgIChvYmpl
Y3QuZ2V0IGhlbGxvKToKKyAgICAgICAgKC5nZXQgb2spOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToK
KyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAgKGdldFN5bTEpOgorICAgICAgICAoZ2V0U3lt
Mik6CisKIDIwMTUtMDgtMDQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dpbl0gVXBkYXRlIEFwcGxlIFdpbmRvd3MgYnVpbGQgZm9yIFZTMjAxNQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCmluZGV4IGQ5ODg1MTYxMzI1
OGE3MWI5ZjA0YmE0OTA3M2Y0NDAzM2U1NzEwODMuLmNlNzZiMzkwNzIxMDhjYmNhMTM4OGM0OTZj
NzBkNTE2ODk2MzY5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeVZhbEluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJ
bmZvLmgKQEAgLTI2LDE2ICsyNiwxOCBAQAogI2lmbmRlZiBCeVZhbEluZm9faAogI2RlZmluZSBC
eVZhbEluZm9faAogCi0jaWYgRU5BQkxFKEpJVCkKLQogI2luY2x1ZGUgIkNsYXNzSW5mby5oIgog
I2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5oIgorI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNs
dWRlICJJbmRleGluZ1R5cGUuaCIKICNpbmNsdWRlICJKSVRTdHViUm91dGluZS5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZVN0dWJJbmZvLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCisjaWYgRU5BQkxFKEpJVCkKKwogZW51bSBKSVRBcnJheU1vZGUgewogICAg
IEpJVEludDMyLAogICAgIEpJVERvdWJsZSwKQEAgLTIwMiwyMyArMjA0LDI4IEBAIGlubGluZSBK
SVRBcnJheU1vZGUgaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKFN0cnVjdHVyZSogc3RydWN0dXJl
KQogc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgQnlWYWxJbmZvKCkgeyB9CiAgICAgCi0gICAgQnlW
YWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1
bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmUsIGlu
dDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5
dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25K
dW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVK
dW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQogICAgICAgICA6IGJ5
dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgLCBub3RJbmRleEp1bXAobm90SW5k
ZXhKdW1wKQogICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1wKQogICAgICAgICAsIGFy
cmF5TW9kZShhcnJheU1vZGUpCiAgICAgICAgICwgYmFkVHlwZUp1bXBUb0RvbmUoYmFkVHlwZUp1
bXBUb0RvbmUpCiAgICAgICAgICwgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgocmV0dXJuQWRkcmVz
c1RvU2xvd1BhdGgpCiAgICAgICAgICwgc2xvd1BhdGhDb3VudCgwKQorICAgICAgICAsIHN0dWJJ
bmZvKG51bGxwdHIpCiAgICAgewogICAgIH0KLSAgICAKKwogICAgIHVuc2lnbmVkIGJ5dGVjb2Rl
SW5kZXg7CisgICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXA7CiAgICAgQ29kZUxvY2F0
aW9uSnVtcCBiYWRUeXBlSnVtcDsKICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOyAvLyBUaGUg
YXJyYXkgbW9kZSB0aGF0IHdhcyBiYWtlZCBpbnRvIHRoZSBpbmxpbmUgSklUIGNvZGUuCiAgICAg
aW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZTsKICAgICBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Ns
b3dQYXRoOwogICAgIHVuc2lnbmVkIHNsb3dQYXRoQ291bnQ7CiAgICAgUmVmUHRyPEpJVFN0dWJS
b3V0aW5lPiBzdHViUm91dGluZTsKKyAgICBJZGVudGlmaWVyIGNhY2hlZElkOworICAgIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbzsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbElu
Zm9CeXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5mbykKQEAgLTIyNiw5ICsyMzMsMTUgQEAgaW5s
aW5lIHVuc2lnbmVkIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQog
ICAgIHJldHVybiBpbmZvLT5ieXRlY29kZUluZGV4OwogfQogCi19IC8vIG5hbWVzcGFjZSBKU0MK
K3R5cGVkZWYgSGFzaE1hcDxDb2RlT3JpZ2luLCBCeVZhbEluZm8qLCBDb2RlT3JpZ2luQXBwcm94
aW1hdGVIYXNoPiBCeVZhbEluZm9NYXA7CisKKyNlbHNlIC8vIEVOQUJMRShKSVQpCisKK3R5cGVk
ZWYgSGFzaE1hcDxpbnQsIHZvaWQqPiBCeVZhbEluZm9NYXA7CiAKICNlbmRpZiAvLyBFTkFCTEUo
SklUKQogCit9IC8vIG5hbWVzcGFjZSBKU0MKKwogI2VuZGlmIC8vIEJ5VmFsSW5mb19oCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggOWY5NDg2
ODk3MGJmMDU4MDM2NThjM2NlODVmYThhYWM5YzY5NDUxNy4uMmRmZThkODg5YTljMmI5NTM0NTYw
MDBmMDEyYzc4ZTgxYjI5YmUyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKQEAgLTI2ODMsNiArMjY4MywyMiBAQCB2b2lkIENvZGVCbG9jazo6Z2V0
Q2FsbExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KQogICAgIGdldENhbGxMaW5r
SW5mb01hcChsb2NrZXIsIHJlc3VsdCk7CiB9CiAKK3ZvaWQgQ29kZUJsb2NrOjpnZXRCeVZhbElu
Zm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIEJ5VmFsSW5mb01hcCYgcmVzdWx0KQor
eworI2lmIEVOQUJMRShKSVQpCisgICAgZm9yIChhdXRvJiBieVZhbEluZm8gOiBtX2J5VmFsSW5m
b3MpCisgICAgICAgIHJlc3VsdC5hZGQoQ29kZU9yaWdpbihieVZhbEluZm8uYnl0ZWNvZGVJbmRl
eCksICZieVZhbEluZm8pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKKyNlbmRp
ZgorfQorCit2b2lkIENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKEJ5VmFsSW5mb01hcCYgcmVz
dWx0KQoreworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgZ2V0
QnlWYWxJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsKK30KKwogI2lmIEVOQUJMRShKSVQpCiBTdHJ1
Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRTdHViSW5mbygpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggNmMzYTExNWY3NzVlZWMzYWJkMjIw
MmZlZmE1MjZkZjgwYTNmYzkzOC4uMmEzNGUyZDYyYzliZWU3NDVhZDQ1ZTVmNGJhZWViYzljYjI1
MTI3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAt
MjAwLDYgKzIwMCw5IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25kaXRpb25hbEZpCiAgICAgCiAgICAgdm9pZCBn
ZXRDYWxsTGlua0luZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENhbGxMaW5rSW5m
b01hcCYgcmVzdWx0KTsKICAgICB2b2lkIGdldENhbGxMaW5rSW5mb01hcChDYWxsTGlua0luZm9N
YXAmIHJlc3VsdCk7CisKKyAgICB2b2lkIGdldEJ5VmFsSW5mb01hcChjb25zdCBDb25jdXJyZW50
SklUTG9ja2VyJiwgQnlWYWxJbmZvTWFwJiByZXN1bHQpOworICAgIHZvaWQgZ2V0QnlWYWxJbmZv
TWFwKEJ5VmFsSW5mb01hcCYgcmVzdWx0KTsKICAgICAKICNpZiBFTkFCTEUoSklUKQogICAgIFN0
cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5mbygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9FeGl0S2luZC5jcHAKaW5kZXggNGY3OWYyYzFjNWU0ZTdmZGJlMDQzYTA0OTUyNTEw
MGFkNTBmZjQ3Yi4uMjUyNDMwMGY3MzM3NjllZDliZTAwMWQ3NjYwZjM2ODU5YjZkODkwNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCkBAIC00MCw2ICs0
MCw4IEBAIGNvbnN0IGNoYXIqIGV4aXRLaW5kVG9TdHJpbmcoRXhpdEtpbmQga2luZCkKICAgICAg
ICAgcmV0dXJuICJCYWRUeXBlIjsKICAgICBjYXNlIEJhZENlbGw6CiAgICAgICAgIHJldHVybiAi
QmFkQ2VsbCI7CisgICAgY2FzZSBCYWRJZGVudDoKKyAgICAgICAgcmV0dXJuICJCYWRJZGVudCI7
CiAgICAgY2FzZSBCYWRFeGVjdXRhYmxlOgogICAgICAgICByZXR1cm4gIkJhZEV4ZWN1dGFibGUi
OwogICAgIGNhc2UgQmFkQ2FjaGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0
S2luZC5oCmluZGV4IDU5Y2JiZjVhMmIzODc3OTdlM2VlMmJhODFmMzZlMWM2MWMwM2I5MjMuLjZm
OGM1MTIwMDcwMDUwNWJmOTFkZWY3NDkwMDNlMzAwNWUzZjcxODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCkBAIC0zMiw2ICszMiw3IEBAIGVudW0gRXhpdEtp
bmQgOiB1aW50OF90IHsKICAgICBFeGl0S2luZFVuc2V0LAogICAgIEJhZFR5cGUsIC8vIFdlIGV4
aXRlZCBiZWNhdXNlIGEgdHlwZSBwcmVkaWN0aW9uIHdhcyB3cm9uZy4KICAgICBCYWRDZWxsLCAv
LyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVjdCBhc3N1bXB0aW9uIGFib3V0
IHdoYXQgY2VsbCB3ZSB3b3VsZCBzZWUuIFVzdWFsbHkgdXNlZCBmb3IgZnVuY3Rpb24gY2hlY2tz
LgorICAgIEJhZElkZW50LCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVj
dCBhc3N1bXB0aW9uIGFib3V0IHdoYXQgaWRlbnRpZmllciB3ZSB3b3VsZCBzZWUuIFVzdWFsbHkg
dXNlZCBmb3IgY2FjaGVkIElkIGNoZWNrIGluIGdldF9ieV92YWwuCiAgICAgQmFkRXhlY3V0YWJs
ZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBh
Ym91dCB3aGF0IGV4ZWN1dGFibGUgd2Ugd291bGQgc2VlLgogICAgIEJhZENhY2hlLCAvLyBXZSBl
eGl0ZWQgYmVjYXVzZSBhbiBpbmxpbmUgY2FjaGUgd2FzIHdyb25nLgogICAgIEJhZENvbnN0YW50
Q2FjaGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGEgY2FjaGUgb24gYSB3ZWFrIGNvbnN0YW50ICh1
c3VhbGx5IGEgcHJvdG90eXBlKSB3YXMgd3JvbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5kZXggMWQ5N2M5ZmZkYmE2ZDk0ZTM1Y2I2
N2NlZDNkYmVlYTUwYmM3MTllZS4uODllNTAzNWYzMGEzZjBiNzliYjIwODMyYTEyZDlkNjg0ODg4
Y2YwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRT
dGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcApAQCAtOTgsNyArOTgsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNv
bXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogICAgIEdl
dEJ5SWRTdGF0dXMgcmVzdWx0OwogCiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgcmVzdWx0ID0g
Y29tcHV0ZUZvclN0dWJJbmZvKAorICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mb1dpdGhv
dXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIG1hcC5n
ZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSksIHVpZCwKICAgICAgICAgQ2FsbExpbmtTdGF0
dXM6OmNvbXB1dGVFeGl0U2l0ZURhdGEobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBieXRlY29kZUlu
ZGV4KSk7CiAgICAgCkBAIC0xMTYsNyArMTE2LDIwIEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0
YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBt
CiB9CiAKICNpZiBFTkFCTEUoSklUKQotR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21w
dXRlRm9yU3R1YkluZm8oCitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JT
dHViSW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJv
ZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCit7CisgICAgR2V0QnlJZFN0YXR1cyByZXN1
bHQgPSBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVk
YmFjaygKKyAgICAgICAgbG9ja2VyLCBwcm9maWxlZEJsb2NrLCBzdHViSW5mbywgdWlkLAorICAg
ICAgICBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUV4aXRTaXRlRGF0YShsb2NrZXIsIHByb2ZpbGVk
QmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCkpOworCisgICAgaWYgKCFyZXN1bHQudGFr
ZXNTbG93UGF0aCgpICYmIEdldEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKGxvY2tlciwgcHJvZmls
ZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KSkKKyAgICAgICAgcmV0dXJuIEdldEJ5
SWRTdGF0dXMocmVzdWx0Lm1ha2VzQ2FsbHMoKSA/IEdldEJ5SWRTdGF0dXM6Ok1ha2VzQ2FsbHMg
OiBHZXRCeUlkU3RhdHVzOjpUYWtlc1Nsb3dQYXRoLCB0cnVlKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNpZiBFTkFCTEUoSklUKQorR2V0QnlJZFN0
YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVk
YmFjaygKICAgICBjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayog
cHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkLAogICAgIENhbGxMaW5rU3RhdHVzOjpFeGl0U2l0ZURhdGEgY2FsbEV4aXRTaXRl
RGF0YSkKIHsKQEAgLTI0Miw3ICsyNTUsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6
OmNvbXB1dGVGb3IoCiAgICAgICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0OwogICAgICAgICB7CiAg
ICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihkZmdCbG9jay0+bV9sb2NrKTsK
LSAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbygKKyAgICAgICAgICAgIHJl
c3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAg
ICAgICAgICAgIGxvY2tlciwgZGZnQmxvY2ssIGRmZ01hcC5nZXQoY29kZU9yaWdpbiksIHVpZCwg
ZXhpdFNpdGVEYXRhKTsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCmluZGV4IDMyMzcyY2RkZjVlMjViMGYzODhl
NmNmZWRjNDY2MjBiMmQzOGQyZDAuLmQ3ZjBhZTQ5NmNiYTJmMzBmZGNkMTI4ODZiMTVmYjNiNDgy
OGY5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlk
U3RhdHVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuaApAQCAtNzEsNyArNzEsMTEgQEAgY2xhc3MgR2V0QnlJZFN0YXR1cyB7CiAgICAgc3RhdGlj
IEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihjb25zdCBTdHJ1Y3R1cmVTZXQmLCBVbmlxdWVkU3Ry
aW5nSW1wbCogdWlkKTsKICAgICAKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9y
KENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9N
YXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01hcCYgZGZnTWFwLCBDb2RlT3JpZ2luLCBVbmlxdWVk
U3RyaW5nSW1wbCogdWlkKTsKLSAgICAKKworI2lmIEVOQUJMRShKSVQpCisgICAgc3RhdGljIEdl
dEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
LCBDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiwgQ29kZU9yaWdp
biwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCk7CisjZW5kaWYKKwogICAgIFN0YXRlIHN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlICE9IE5vSW5mb3JtYXRpb247IH0KQEAgLTk1LDcgKzk5LDcgQEAgY2xh
c3MgR2V0QnlJZFN0YXR1cyB7CiAgICAgc3RhdGljIGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29u
Y3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpOwog
I2VuZGlmCiAjaWYgRU5BQkxFKEpJVCkKLSAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRl
Rm9yU3R1YkluZm8oCisgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZv
V2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2Nr
ZXImLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiwKICAgICAg
ICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgQ2FsbExpbmtTdGF0dXM6OkV4aXRTaXRlRGF0YSk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCAzNzM0Yzc2ZDFlZTg3YTg0YTBlNjZkNTU2
NzRkMTBiMmFkMmFhMDU0Li4yMjkwODdkY2M0MzY0Mzk3OTU0ODBlM2Q1YzEyOTYwM2ExNmMxYjcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCkBAIC0yMTYzLDYgKzIxNjMsMzIgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBDaGVja0lkZW50
OiB7CisgICAgICAgIEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9kZShub2RlLT5jaGlsZDEo
KSk7CisgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7
CisgICAgICAgIEFTU0VSVCh1aWQtPmlzU3ltYm9sKCkgPyAhKHZhbHVlLm1fdHlwZSAmIH5TcGVj
U3ltYm9sKSA6ICEodmFsdWUubV90eXBlICYgflNwZWNTdHJpbmdJZGVudCkpOyAvLyBFZGdlIGZp
bHRlcmluZyBzaG91bGQgaGF2ZSBhbHJlYWR5IGVuc3VyZWQgdGhpcy4KKworICAgICAgICBKU1Zh
bHVlIGNoaWxkQ29uc3RhbnQgPSB2YWx1ZS52YWx1ZSgpOworICAgICAgICBpZiAoY2hpbGRDb25z
dGFudCkgeworICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgeworICAgICAgICAgICAg
ICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpOworICAgICAgICAgICAgICAgIGlm
IChhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJpdmF0ZU5hbWUoKS51aWQoKSA9PSB1aWQpIHsK
KyAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoY2hpbGRDb25zdGFudC5pc1N0cmluZygp
KTsKKyAgICAgICAgICAgICAgICBpZiAoYXNTdHJpbmcoY2hpbGRDb25zdGFudCktPnRyeUdldFZh
bHVlSW1wbCgpID09IHVpZCkgeworICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5k
Q29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaWx0ZXIodmFsdWUs
IHVpZC0+aXNTeW1ib2woKSA/IFNwZWNTeW1ib2wgOiBTcGVjU3RyaW5nSWRlbnQpOworICAgICAg
ICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6IHsKICAgICAgICAgSlNW
YWx1ZSBsZWZ0ID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgSlNW
YWx1ZSByaWdodCA9IGZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDU2NDIyYjE4
YTI0NjUwODZmODA2OTQyODBkYTM2NzYwMDJlNmM1ZTQuLjA3NjgxMmI2MWI5YTViN2VmMjQ5NTI1
ZTU1YWRhZDY5M2RiY2U5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC05NjksNiArOTY5LDcgQEAgY2xhc3MgQnl0ZUNvZGVQYXJz
ZXIgewogICAgICAgICAKICAgICAgICAgQ2FsbExpbmtJbmZvTWFwIG1fY2FsbExpbmtJbmZvczsK
ICAgICAgICAgU3R1YkluZm9NYXAgbV9zdHViSW5mb3M7CisgICAgICAgIEJ5VmFsSW5mb01hcCBt
X2J5VmFsSW5mb3M7CiAgICAgICAgIAogICAgICAgICAvLyBEaWQgd2Ugc2VlIGFueSByZXR1cm5z
PyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgKHVuY29tbW9uIGJ1dCBuZWNlc3NhcnkpCiAgICAgICAg
IC8vIGNhc2Ugd2hlcmUgYSBwcm9jZWR1cmUgdGhhdCBkb2VzIG5vdCByZXR1cm4gd2FzIGlubGlu
ZWQuCkBAIC0zMzk3LDEyICszMzk4LDM3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxv
Y2sodW5zaWduZWQgbGltaXQpCiAKICAgICAgICAgY2FzZSBvcF9nZXRfYnlfdmFsOiB7CiAgICAg
ICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbldpdGhvdXRP
U1JFeGl0KCk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChW
aXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwotICAgICAg
ICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFkKTsKICAgICAgICAgICAgIE5vZGUqIHBy
b3BlcnR5ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kKSk7Ci0gICAgICAgICAgICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWws
IE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHBy
b3BlcnR5KTsKLSAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCksIGdldEJ5VmFsKTsKKyAgICAgICAgICAgIGJvb2wgY29tcGlsZWRB
c0dldEJ5SWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDb25jdXJy
ZW50SklUTG9ja2VyIGxvY2tlcihtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPm1f
bG9jayk7CisgICAgICAgICAgICAgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2lubGluZVN0
YWNrVG9wLT5tX2J5VmFsSW5mb3MuZ2V0KENvZGVPcmlnaW4oY3VycmVudENvZGVPcmlnaW4oKS5i
eXRlY29kZUluZGV4KSk7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdoZW4gdGhlIGJ5dGVj
b2RlIGlzIG5vdCBjb21waWxlZCBpbiB0aGUgYmFzZWxpbmUgSklULCBieVZhbEluZm8gYmVjb21l
cyBudWxsLgorICAgICAgICAgICAgICAgIC8vIEF0IHRoYXQgdGltZSwgdGhlcmUgaXMgbm8gaW5m
b3JtYXRpb24uCisgICAgICAgICAgICAgICAgaWYgKGJ5VmFsSW5mbyAmJiBieVZhbEluZm8tPnN0
dWJJbmZvKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVkQXNHZXRCeUlkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciA9IG1fZ3JhcGgu
aWRlbnRpZmllcnMoKS5lbnN1cmUoYnlWYWxJbmZvLT5jYWNoZWRJZC5pbXBsKCkpOworICAgICAg
ICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVy
cygpW2lkZW50aWZpZXJOdW1iZXJdOworCisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBQ
b3RlbnRpYWxseSwgd2UgY2FuIGZ1cnRoZXIgb3B0aW1pemUgaGVyZS4gSWYgd2Ugc2F3IHRoZSBl
eGl0IGZvciB0aGlzIENoZWNrSWRlbnQsCisgICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IHRh
a2UgdGhlIEdldEJ5SWQgcGF0aCBhbmQgdXNlIHRoZSBnZW5lcmljIEdldEJ5VmFsLgorICAgICAg
ICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrSWRlbnQsIE9wSW5mbyh1aWQpLCBwcm9wZXJ0
eSk7CisKKyAgICAgICAgICAgICAgICAgICAgR2V0QnlJZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0g
R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKAorICAgICAgICAgICAgICAgICAgICAg
ICAgbG9ja2VyLCBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssCisgICAgICAgICAg
ICAgICAgICAgICAgICBieVZhbEluZm8tPnN0dWJJbmZvLCBjdXJyZW50Q29kZU9yaWdpbigpLCB1
aWQpOworCisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUdldEJ5SWQoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlvbiwgYmFzZSwgaWRlbnRpZmllck51bWJlciwgZ2V0
QnlJZFN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBpZiAoIWNvbXBpbGVkQXNHZXRCeUlkKSB7CisgICAgICAgICAgICAgICAgQXJyYXlNb2Rl
IGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVBy
b2ZpbGUsIEFycmF5OjpSZWFkKTsKKyAgICAgICAgICAgICAgICBOb2RlKiBnZXRCeVZhbCA9IGFk
ZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBPcEluZm8ocHJl
ZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKKyAgICAgICAgICAgICAgICBzZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBnZXRCeVZhbCk7CisgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dldF9ieV92YWwpOwogICAg
ICAgICB9CkBAIC00MzA1LDYgKzQzMzEsNyBAQCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tF
bnRyeTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAgICAgaWYgKG1fcHJvZmlsZWRCbG9jay0+aGFz
QmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewogICAgICAgICAgICAgbV9wcm9maWxlZEJsb2NrLT5n
ZXRTdHViSW5mb01hcChsb2NrZXIsIG1fc3R1YkluZm9zKTsKICAgICAgICAgICAgIG1fcHJvZmls
ZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwgbV9jYWxsTGlua0luZm9zKTsKKyAg
ICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0QnlWYWxJbmZvTWFwKGxvY2tlciwgbV9ieVZh
bEluZm9zKTsKICAgICAgICAgfQogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMjk2NzQ5ZGMzMWIyM2M4OTk4NDk0YjU2ZWYxNDMwODY0
YjEyN2VjNi4uNDZmNWZlNDhkMjVjMjdkZDMxOTZjNTgxMjlkYmU1ODU3ZmJkN2UyOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTI2OCw2ICsyNjgsMTAg
QEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1
bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKFB1cmVWYWx1ZShDaGVja05v
dEVtcHR5LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEo
KSkpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBDaGVja0lkZW50OgorICAgICAgICBk
ZWYoUHVyZVZhbHVlKENoZWNrSWRlbnQsIEFkamFjZW5jeUxpc3QoQWRqYWNlbmN5TGlzdDo6Rml4
ZWQsIG5vZGUtPmNoaWxkMSgpKSwgbm9kZS0+dWlkT3BlcmFuZCgpKSk7CisgICAgICAgIHJldHVy
bjsKKwogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICAgICAgZGVmKFB1cmVW
YWx1ZShub2RlLCBub2RlLT5zdG9yYWdlUG9pbnRlcigpKSk7CiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHAKaW5kZXggYmE0YzAzNTQ5NDY0OTJmNTlmZGZiZDVhNmY2MWE1YTY3ZDI1MDMyMC4uM2Q4
NWNhYWJkNjE1NzNmZGQ1NDlkNWZlNzViYzY0ZjNlNTY0ZjFlNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTIw
OCw2ICsyMDgsMzMgQEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2Ug
ewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBj
YXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
ID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAgICAgIEpTVmFsdWUgY2hpbGRDb25z
dGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICBjb25zdCBVbmlxdWVkU3RyaW5nSW1wbCogY29uc3RhbnRVaWQgPSBudWxscHRyOwor
ICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGls
ZENvbnN0YW50LmlzU3ltYm9sKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rh
bnRVaWQgPSBhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJpdmF0ZU5hbWUoKS51aWQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChj
aGlsZENvbnN0YW50LmlzU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBTaW5jZSB3ZSBhbHJlYWR5IGZpbHRlcmVkIHRoZSB2YWx1ZSB3aXRoIFN0cmluZ0lkZW50VXNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBoZWxkIGltcGwgaXMgYWx3YXlz
IGF0b21pYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uc3QgYXV0byogaW1w
bCA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUltcGwoKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaW1wbC0+aXNBdG9taWMoKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50VWlkID0gc3RhdGljX2Nhc3Q8Y29u
c3QgVW5pcXVlZFN0cmluZ0ltcGwqPihpbXBsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoY29uc3RhbnRVaWQgPT0gdWlk
KSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlbW92ZSgpOworICAgICAgICAgICAgICAg
ICAgICBlbGltaW5hdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGNhc2UgQ2hlY2tJbkJvdW5k
czogewogICAgICAgICAgICAgICAgIEpTVmFsdWUgbGVmdCA9IG1fc3RhdGUuZm9yTm9kZShub2Rl
LT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0gbV9z
dGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDA4ZmZiMmE5MTI5Mzg3MjEzMTFjYWQyNzc0Njc2MWEy
MDY1M2FhNWYuLmU0NzBiOGRkYWI5OTQzOGZkODkwMzUyZTQ1ZTA5MTAyOWYxYTYyN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTEwNyw2ICsxMDcsNyBAQCBi
b29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBWYXJJbmplY3Rp
b25XYXRjaHBvaW50OgogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0
eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBFeGVjOgogICAgIGNhc2Ug
UmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYzQ0MjMxMDE2MzI2NTdkM2U4M2Y5NzFlNjZh
ODNmNjI1MDU3MTUyNC4uZDZhOTc5MGIxM2NlMDA2MmQ5NzgxMTQwZWRjZTIyMTUyZTQwMGI4NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMDEy
LDYgKzEwMTIsMTUgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAg
ICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDaGVja0lkZW50OiB7CisgICAgICAgICAgICBV
bmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAg
aWYgKHVpZC0+aXNTeW1ib2woKSkKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFN5bWJvbFVzZT4o
bm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZpeEVk
Z2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheWlmeToKICAgICAgICAg
Y2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOiB7CkBAIC0xNzYwLDYgKzE3NjksNyBAQCBjbGFzcyBG
aXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBGdW5jdGlvblVzZToKICAg
ICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CisgICAg
ICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAg
ICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgIGlmIChhbHdheXNV
bmJveFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRl
eCAyOGNhYjA1MWU1MzA5ZTM2ODg2OTRjYmJjNDY1Mzk2NjkyZGU4MDlhLi44M2ZjZjVjMTAxZTBj
N2M3N2E5ZWQyMDk1ZDQ1NWRhNjljNGU2YWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaApAQCAtMTMyOCw2ICsxMzI4LDE3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsKICAgICB9CiAKKyAgICBib29sIGhh
c1VpZE9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tJZGVudDsK
KyAgICB9CisKKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkT3BlcmFuZCgpCisgICAgeworICAg
ICAgICBBU1NFUlQoaGFzVWlkT3BlcmFuZCgpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7CisgICAgfQorCiAgICAgYm9vbCBo
YXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDYyZTdjYTk4YTUyMTEyZDgyZDBlYjZm
MGQxNzI4YmVhZjRiOWUxMzEuLmU5YmY3MjcwNGIxN2FhNjg2NzllOWJiZWEwZjRmMmFkY2VmOTYz
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTIwOSw2ICsy
MDksNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tO
b3RFbXB0eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQmFkQ2VsbCwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJh
dGUpIFwKKyAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAog
ICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5IG11dGF0aW9uLiAqL1wKICAgICBtYWNybyhB
cnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKaW5kZXggNzZhZjZhMmYzZTQ1MmIwZjExN2FiYzNhNmJiNWRkZDJmYWFiMTk4YS4u
MzZmMmRmN2M3NWM1MGNhZmQwNmVjOWMyNzg1MWVlYTlmMTBmZmE5OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKQEAgLTY0OSw2ICs2NDksNyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAg
ICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgICAgICBjYXNlIENoZWNrTm90RW1wdHk6CisgICAgICAg
IGNhc2UgQ2hlY2tJZGVudDoKICAgICAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgICAgIGNh
c2UgUHV0U3RydWN0dXJlOgogICAgICAgICBjYXNlIFZhckluamVjdGlvbldhdGNocG9pbnQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDBjMGEy
Nzc2MDUwZWYxYzYzOGMyMGQ4OGNmZWZlMzIzYzczYTU5MTQuLmIyZDA3ZDU1ZTUzNjI2ODQ1YjVk
M2Y1YzlmZWVhNGU3YmQ4NGRkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdl
IHsKICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBjYXNlIFN0cmluZ0lk
ZW50VXNlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKKyAgICAgICAgY2FzZSBTeW1ib2xVc2U6
CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFN0cmluZ09yU3Ry
aW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE5vdFN0cmluZ1ZhclVzZToKQEAgLTE4OCw2ICsx
ODksNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVj
a0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoK
ICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdFeHBUZXN0OgogICAgIGNhc2UgQ29t
cGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCmluZGV4IGYzZjhhZjdhNTJkNTBmOWEyZTcxYzRmOTAxOTk4NDdiZjA1MDBkNWUuLjA1
MzczNjM0YmRlMTFkNjY0NjE5MTNhMjBjNWE1YmVhOTY4ZmE0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC00NTc2LDYgKzQ1NzYs
MzEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5v
ZGUpCiAgICAgfSB9CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0lkZW50
KE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CisgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9w
ZXJhbmQoKTsKKyAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgIHNwZWN1bGF0ZVN5
bWJvbChub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7CisgICAgICAgIHNwZWN1bGF0aW9u
Q2hlY2soCisgICAgICAgICAgICBCYWRJZGVudCwgSlNWYWx1ZVNvdXJjZSgpLCBudWxscHRyLAor
ICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgIEpJVENvbXBpbGVy
OjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhvcGVyYW5k
LmdwcigpLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSksCisgICAgICAgICAgICAgICAg
VHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3BlY3VsYXRlU3Ry
aW5nKG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKKyAgICAgICAgc3BlY3VsYXRlU3Ry
aW5nSWRlbnQobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOworICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKAorICAgICAgICAgICAgQmFkSWRlbnQsIEpTVmFsdWVTb3VyY2UoKSwgbnVsbHB0
ciwKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3Bl
cmFuZC5ncHIoKSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksCisgICAgICAgICAgICAgICAg
VHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfQorICAgIG5vUmVzdWx0KG5vZGUpOworfQorCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb24oTm9kZSogbm9kZSkKIHsKICAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzY29wZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC01
NzMxLDYgKzU3NTYsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90U3RyaW5n
VmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7Cisg
ICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2Us
IFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90U3ltYm9sKGNlbGwpKTsKK30KKwordm9pZCBT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5l
ZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wpKQorICAgICAgICByZXR1cm47CisKKyAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZVN5
bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdl
LCB+U3BlY0NlbGwpKQpAQCAtNTg0Miw2ICs1ODgxLDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAg
IHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTeW1ib2xV
c2U6CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdChlZGdl
KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmgKaW5kZXggYTVjNDQ1NDdkYTY0YmMyYjYzZjA3M2ExNzExZTZhMTE4MDZmNTk1
Yi4uNTQ1ZmYyYTZlYmQxMGVlZjgyYjFmZTdjMjJjY2U5ZjcxN2VkZDE0YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMjE5MSw2ICsyMTkx
LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgY29tcGlsZVNraXBTY29wZShO
b2RlKik7CiAKICAgICB2b2lkIGNvbXBpbGVHZXRBcnJheUxlbmd0aChOb2RlKik7CisKKyAgICB2
b2lkIGNvbXBpbGVDaGVja0lkZW50KE5vZGUqKTsKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1
ZVJlcChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlRG91YmxlUmVwKE5vZGUqKTsKQEAgLTI0MDYs
NiArMjQwOCw4IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIHNwZWN1bGF0ZVN0
cmluZ09iamVjdChFZGdlLCBHUFJSZWcpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT2JqZWN0
KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JTdHJpbmdPYmplY3QoRWRnZSk7Cisg
ICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSwgR1BSUmVnIGNlbGwpOworICAgIHZvaWQgc3Bl
Y3VsYXRlU3ltYm9sKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTm90Q2VsbChFZGdlKTsKICAg
ICB2b2lkIHNwZWN1bGF0ZU90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTWlzYyhFZGdl
LCBKU1ZhbHVlUmVncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA1MDQyOTA1YjYyYjUyNmM5ZWRhZDNmZmJiNTY3
YzQ2ZjY3ZjgwZWFlLi4xMmFiOGQwODVkMDcwNTEwZjc2ZmQ0ZWU3MjU0Zjg4ZTMzMjJiN2M5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKQEAgLTM4MjAsNiArMzgyMCwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgQ2hlY2tJ
ZGVudDoKKyAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQobm9kZSk7CisgICAgICAgIGJyZWFrOwor
CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGZ1bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJl
c3VsdCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNzcwYmRhNThjYWI1MDIzYTFmYTBj
MzhmNGM3YTAzMDhkNDA4MGEzMC4uMTNjN2M4N2Q4MDZmN2E3YTg2NzMwZjA3OWFkODgzNDU0MjZj
N2ZjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCkBAIC0zODUwLDYgKzM4NTAsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNr
SWRlbnQ6CisgICAgICAgIGNvbXBpbGVDaGVja0lkZW50KG5vZGUpOworICAgICAgICBicmVhazsK
KwogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1VzZUtpbmQuY3BwCmluZGV4IGVmYTEwNGYzZDA3MDAwYjdkN2JjNDczYmNkZjIwNmQxMDUzZmM5
YjEuLjkzNmVmNTU0YWYyNGUwYjY0ZmRmNDI4ZjE2M2FlOGQ3ODhlOThkOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtOTcsNiArOTcsOSBAQCB2b2lkIHBy
aW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2Ug
S25vd25TdHJpbmdVc2U6CiAgICAgICAgIG91dC5wcmludCgiS25vd25TdHJpbmciKTsKICAgICAg
ICAgcmV0dXJuOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICBvdXQucHJpbnQoIlN5bWJv
bCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAg
IG91dC5wcmludCgiU3RyaW5nT2JqZWN0Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggZWJmOTlkYWU2MDBjODgyNWQyMmNiYWM2Mzgy
MmQxNWI1NTYwMDM1YS4uMjg5Yjc4M2U0MWJiMzYxMjkxYzgzYzhmYWQ3YjA4YTU3OGUwYTZmMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTU3LDYgKzU3LDcgQEAg
ZW51bSBVc2VLaW5kIHsKICAgICBTdHJpbmdJZGVudFVzZSwKICAgICBTdHJpbmdVc2UsCiAgICAg
S25vd25TdHJpbmdVc2UsCisgICAgU3ltYm9sVXNlLAogICAgIFN0cmluZ09iamVjdFVzZSwKICAg
ICBTdHJpbmdPclN0cmluZ09iamVjdFVzZSwKICAgICBOb3RTdHJpbmdWYXJVc2UsCkBAIC0xMTcs
NiArMTE4LDggQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1
c2VLaW5kKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAg
ICAgICAgIHJldHVybiBTcGVjU3RyaW5nOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICBy
ZXR1cm4gU3BlY1N5bWJvbDsKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0
dXJuIFNwZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToK
QEAgLTE5Niw2ICsxOTksNyBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAg
IGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgY2FzZSBLbm93
blN0cmluZ1VzZToKKyAgICBjYXNlIFN5bWJvbFVzZToKICAgICBjYXNlIFN0cmluZ09iamVjdFVz
ZToKICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5LmgKaW5kZXggOTEyNzU0ZGZjNDAxNTJiMGVkMjQ4MzZhYzc1YjhmOTY5ODQzOTli
Yi4uNTgxZjRjYmQ5YTc2OGI5YWIyYTgzOTIxY2YyNGQzNTI0YmM4NTcxOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgK
QEAgLTg3LDcgKzg3LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1h
Y3JvKFN0cnVjdHVyZV9jbGFzc0luZm8sIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpIFwK
ICAgICBtYWNybyhTdHJ1Y3R1cmVfZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU6Omdsb2JhbE9iamVj
dE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX3Byb3RvdHlwZSwgU3RydWN0dXJlOjpw
cm90b3R5cGVPZmZzZXQoKSkgXAotICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3Ry
dWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKQorICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1
cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSBcCisgICAgbWFjcm8oU3ltYm9s
X3ByaXZhdGVOYW1lLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSkKIAogI2RlZmluZSBG
T1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhEaXJlY3RB
cmd1bWVudHNfc3RvcmFnZSwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCksIHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcAppbmRleCA2MjcyOGM3NDZlZjkxZDc0Yjc4MjliYjNmOWE0NGM2ZDdmNjFk
N2IzLi5iNDkzZjMwMjdlODJjZmNjZTljM2NjZjQ4MmMxNTU4NjFkNjhiOTQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMTgsNiArMTE4
LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05v
dEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFN0cmluZ0NoYXJDb2RlQXQ6
CiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICBjYXNlIFJlYWxsb2NhdGVQ
cm9wZXJ0eVN0b3JhZ2U6CkBAIC00MTUsNiArNDE2LDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNv
bXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6
CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAg
Y2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIFN5bWJv
bFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNlOgogICAgICAgICAgICAg
ICAgIGNhc2UgTm90Q2VsbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE90aGVyVXNlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCA1
YjU4N2RkMDQ4ODNjYTc5NDY1ZmI0ZTMwZDlkNWVlZDkzMzkxMmZlLi44MmNhYmJhODFiMjE3Y2Nk
YWM2YTNkNDUzZTBjZWJlZmM2MjlhYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNTMyLDYgKzUzMiw5IEBAIGNsYXNzIExvd2Vy
REZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgICAgICAgICBjb21w
aWxlQ2hlY2tCYWRDZWxsKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVj
a0lkZW50OgorICAgICAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQoKTsKKyAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgICAgICAgICBjb21waWxlR2V0
RXhlY3V0YWJsZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMDI5LDYgKzIwMzIsMjAgQEAg
Y2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGUoVERaRmFpbHVyZSwgbm9W
YWx1ZSgpLCBudWxscHRyLCBtX291dC5pc1plcm82NChsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQx
KCkpKSk7CiAgICAgfQogCisgICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudCgpCisgICAgeworICAg
ICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ub2RlLT51aWRPcGVyYW5kKCk7CisgICAg
ICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBs
b3dTeW1ib2wobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1w
bCA9IG1fb3V0LmxvYWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7Cisg
ICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQu
bm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9k
ZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2Fk
UHRyKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CisgICAgICAgICAgICBzcGVjdWxh
dGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1w
bCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAgICB9CisgICAgfQorCiAgICAgdm9p
ZCBjb21waWxlR2V0RXhlY3V0YWJsZSgpCiAgICAgewogICAgICAgICBMVmFsdWUgY2VsbCA9IGxv
d0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC03MDMzLDcgKzcwNTAsMTYgQEAgY2xhc3MgTG93
ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChlZGdlLCBzdHJpbmcs
IHN0cmluZ0ltcGwpOwogICAgICAgICByZXR1cm4gc3RyaW5nSW1wbDsKICAgICB9Ci0gICAgCisK
KyAgICBMVmFsdWUgbG93U3ltYm9sKEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBt
b2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQorICAgIHsKKyAgICAgICAgQVNTRVJU
X1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVz
ZUtpbmQoKSA9PSBTeW1ib2xVc2UpOworCisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxs
KGVkZ2UsIG1vZGUpOworICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSwgcmVzdWx0KTsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBMVmFsdWUgbG93Tm9uTnVsbE9iamVj
dChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJh
bmRTcGVjdWxhdGlvbikKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9
PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gT2JqZWN0VXNl
KTsKQEAgLTc0MzAsNiArNzQ1Niw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAg
Y2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50KGVk
Z2UpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAg
ICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0
KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03NTI2LDcgKzc1NTUsMTYgQEAgY2xhc3Mg
TG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgbV9vdXQubG9hZDMyKGNlbGwsIG1faGVhcHMu
SlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIodm0oKS5z
dHJpbmdTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9Ci0gICAgCisKKyAgICBMVmFsdWUgaXNOb3RT
eW1ib2woTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKKyAg
ICB7CisgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3Bl
Y0NlbGwsIH5TcGVjU3ltYm9sKSkKKyAgICAgICAgICAgIHJldHVybiBwcm92ZW47CisgICAgICAg
IHJldHVybiBtX291dC5ub3RFcXVhbCgKKyAgICAgICAgICAgIG1fb3V0LmxvYWQzMihjZWxsLCBt
X2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMy
KHZtKCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7CisgICAgfQorCiAgICAgTFZhbHVlIGlzQXJy
YXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlNb2RlKQogICAgIHsKICAgICAgICAg
c3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkBAIC03NzQ5LDcgKzc3ODcsMTcgQEAgY2xhc3Mg
TG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCks
IDAsCiAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChzdHJ1Y3R1cmVJRCwgd2Vha1N0cnVjdHVy
ZUlEKHN0cmluZ09iamVjdFN0cnVjdHVyZSkpKTsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIHNw
ZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRM
X1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjU3ltYm9sIHwgflNwZWND
ZWxsLCBpc05vdFN5bWJvbChjZWxsKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVTeW1i
b2woRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIGxvd0Nl
bGwoZWRnZSkpOworICAgIH0KKwogICAgIHZvaWQgc3BlY3VsYXRlTm9uTnVsbE9iamVjdChFZGdl
IGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1
ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjT2JqZWN0LCBpc05vdE9iamVjdChjZWxsKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOWFmMzMyZWI3OGUxODlhZTZhNTNiMjIzNTBhZjc3
YjVmOWQ3ZWIyYi4uYzc4YjRjMTk1NmJmNzA4ZDkxY2MyYTE3MzcxOTFlZjNjMjRlMDI1YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNjYwLDYgKzY2MCwxMCBAQCBDb21waWxhdGlv
blJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkK
IAogICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJPZkJ5VmFsSW5mb3MobV9ieVZhbENvbXBpbGF0
aW9uSW5mby5zaXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvLnNpemUoKTsgKytpKSB7CisgICAgICAgIFBhdGNoYWJsZUp1bXAgcGF0Y2hh
YmxlTm90SW5kZXhKdW1wID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5ub3RJbmRleEp1bXA7
CisgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wID0gQ29kZUxvY2F0aW9uSnVt
cCgpOworICAgICAgICBpZiAoSnVtcChwYXRjaGFibGVOb3RJbmRleEp1bXApLmlzU2V0KCkpCisg
ICAgICAgICAgICBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxv
Y2F0aW9uT2YocGF0Y2hhYmxlTm90SW5kZXhKdW1wKSk7CiAgICAgICAgIENvZGVMb2NhdGlvbkp1
bXAgYmFkVHlwZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2Yo
bV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5iYWRUeXBlSnVtcCkpOwogICAgICAgICBDb2RlTG9j
YXRpb25MYWJlbCBkb25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29t
cGlsYXRpb25JbmZvW2ldLmRvbmVUYXJnZXQpOwogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBz
bG93UGF0aFRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9u
SW5mb1tpXS5zbG93UGF0aFRhcmdldCk7CkBAIC02NjcsNiArNjcxLDcgQEAgQ29tcGlsYXRpb25S
ZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAg
ICAgICAgIAogICAgICAgICBtX2NvZGVCbG9jay0+YnlWYWxJbmZvKGkpID0gQnlWYWxJbmZvKAog
ICAgICAgICAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5ieXRlY29kZUluZGV4LAorICAg
ICAgICAgICAgbm90SW5kZXhKdW1wLAogICAgICAgICAgICAgYmFkVHlwZUp1bXAsCiAgICAgICAg
ICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmFycmF5TW9kZSwKICAgICAgICAgICAgIGRp
ZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihiYWRUeXBlSnVtcCwgZG9uZVRhcmdldCksCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAppbmRleCAxYWRlNjY1ZGY3OTI4MmM2MGMyYTg4NTY4NWZkNTMxN2Q3YTU1
NGQ1Li5kZTI1Yzk4NjkwZTQzYzdhZWQyYTU0ZmE3YmE0ODVhZDgyY2Y2MDliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKQEAgLTE0OSw4ICsxNDksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBz
dHJ1Y3QgQnlWYWxDb21waWxhdGlvbkluZm8gewogICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5m
bygpIHsgfQogICAgICAgICAKLSAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQg
Ynl0ZWNvZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAs
IEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0
KQorICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBN
YWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXAsIE1hY3JvQXNzZW1ibGVy
OjpQYXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBNYWNy
b0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldCkKICAgICAgICAgICAgIDogYnl0ZWNvZGVJbmRl
eChieXRlY29kZUluZGV4KQorICAgICAgICAgICAgLCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1w
KQogICAgICAgICAgICAgLCBiYWRUeXBlSnVtcChiYWRUeXBlSnVtcCkKICAgICAgICAgICAgICwg
YXJyYXlNb2RlKGFycmF5TW9kZSkKICAgICAgICAgICAgICwgZG9uZVRhcmdldChkb25lVGFyZ2V0
KQpAQCAtMTU4LDYgKzE1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAg
IAogICAgICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQ
YXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2Rl
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldDsKQEAgLTIwNCw2ICsy
MDYsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVH
ZXRCeVZhbChieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIGFycmF5TW9kZSk7CiAgICAgICAgIH0K
IAorICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoVk0qIHZt
LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJl
c3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAg
ICAgICB7CisgICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOworICAgICAgICAgICAg
aml0Lm1fYnl0ZWNvZGVPZmZzZXQgPSBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisgICAgICAg
ICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChieVZhbEluZm8sIHJl
dHVybkFkZHJlc3MsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMg
dm9pZCBjb21waWxlUHV0QnlWYWwoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJ
bmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSklUQXJyYXlN
b2RlIGFycmF5TW9kZSkKICAgICAgICAgewogICAgICAgICAgICAgSklUIGppdCh2bSwgY29kZUJs
b2NrKTsKQEAgLTI0Niw2ICsyNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ29tcGls
YXRpb25SZXN1bHQgcHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQpOwogICAgICAg
ICAKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVy
bkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CisgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVH
ZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBjb25zdCBJ
ZGVudGlmaWVyJik7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVQdXRCeVZhbChCeVZhbElu
Zm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwogCiAgICAgICAgIHZvaWQgcHJp
dmF0ZUNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0
ciwgSklUQXJyYXlNb2RlKTsKQEAgLTM3MSw3ICszODEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgSnVtcExpc3QgZW1pdEFycmF5U3RvcmFnZVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0
Y2hhYmxlSnVtcCYgYmFkVHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRJbnRUeXBlZEFycmF5
UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBUeXBlZEFycmF5
VHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRGbG9hdFR5cGVkQXJyYXlQdXRCeVZhbChJbnN0
cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlUeXBlKTsKLSAgICAg
ICAgCisKKyAgICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVk
SWQoSW5zdHJ1Y3Rpb24qLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3QmIGRvbmVDYXNlcywg
SnVtcExpc3QmIHNsb3dDYXNlcyk7CisKICAgICAgICAgZW51bSBGaW5hbE9iamVjdE1vZGUgeyBN
YXlCZUZpbmFsLCBLbm93bk5vdEZpbmFsIH07CiAKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24sIFQgbGVmdEhhbmRT
aWRlLCBTdHJ1Y3R1cmUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CmluZGV4IDkwYjUzMjE1YWIwNGM3NDMzOGFkYmE4MzYzMDQwYzM4NGRmZmEzMWUuLmRhZjJhZmYz
N2MwMDAyNWY4ODZiZDMxMGM0NDM3ZGMwN2UzNTA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTEwOCw3ICsxMTA4LDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICAKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgCi0gICAgbV9ieVZh
bENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9m
ZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8u
YXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1
bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
aGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCBkMGU3NWNlMWE3ZTU0Njk4MDJjNjEw
NjMzZDJiMzM1NWUyMzU0Zjk5Li40YjQ5MzU0MDkwMTE3ZWU2NjJmZmUzZDlmNjExNjA3ZmI2NzYy
NTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
CkBAIC0xMTA5LDcgKzExMDksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9w
ZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVtaXRTdG9y
ZUJvb2woZHN0LCByZWdUMCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBl
bmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwg
ZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRp
b25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwg
ZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHko
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ojpp
dGVyYXRvciYgaXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCmluZGV4IDk2OTZmY2VkOWQyZjg0NzI3NTliM2Q3M2U2MWVkYzNhNWI0MmM0YWEuLmMxODIy
NjBlZmE1NmFiOTNhYmY0ZTMzMTlmMDM0ODljNjFiOTIyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMTU1NSw3ICsxNTU1LDIzIEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAg
CisKKyAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkgJiYgKHN1YnNjcmlwdC5pc1N5bWJvbCgp
IHx8IHN1YnNjcmlwdC5pc1N0cmluZygpKSkgeworICAgICAgICBjb25zdCBJZGVudGlmaWVyIHBy
b3BlcnR5TmFtZSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGV4ZWMpOworCisgICAgICAgIGlm
ICghc3Vic2NyaXB0LmlzU3RyaW5nKCkgfHwgIXBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgewor
ICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0
ZWNvZGVPZmZzZXQoKTsKKyAgICAgICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7CisgICAg
ICAgICAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRCeVZh
bEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsKKyAgICAgICAgICAgIEFTU0VSVCghYnlWYWxJbmZv
LnN0dWJSb3V0aW5lKTsKKyAgICAgICAgICAgIEpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hl
ZElkKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIo
T1VSX1JFVFVSTl9BRERSRVNTKSwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQorCisgICAgICAg
IFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSk7CisgICAgICAgIGJvb2wgaGFzUmVzdWx0ID0g
YmFzZVZhbHVlLmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGhhc1Jlc3VsdCA/IHNsb3QuZ2V0VmFsdWUoZXhl
YywgcHJvcGVydHlOYW1lKSA6IGpzVW5kZWZpbmVkKCkpOworICAgIH0KKwogICAgIEpTVmFsdWUg
cmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGFycmF5UHJvZmls
ZSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDRlZjA2ZDkyMTNhMmIxZGJmZmJhNGM3YzMzNGQy
ZjZmMWM0NzkxN2UuLmQxMjAzNzM3NWQ4ZjFmODU1OThhYmY3NDlhYzM4MTlmMWViZmZjMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBA
IC0xMDAsOCArMTAwLDE1IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCiAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMSk7Ci0gICAgZW1pdEp1bXBT
bG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CiAKKyAgICBlbWl0SnVtcFNsb3dD
YXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOworCisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8g
aW1wbGVtZW50IHBhdGNoYWJsZUJyYW5jaDY0LgorICAgIEp1bXAgaXNJbmRleCA9IGVtaXRKdW1w
SWZJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKKyAgICBQYXRjaGFibGVKdW1wIG5vdEluZGV4ID0g
cGF0Y2hhYmxlSnVtcCgpOworICAgIGFkZFNsb3dDYXNlKG5vdEluZGV4KTsKKworICAgIGlzSW5k
ZXgubGluayh0aGlzKTsKICAgICAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGluY29ycmVjdCAtIHdl
J3JlIHplcm8tZXh0ZW5kaW5nIGFuIGludDMyLiAgT24gdGhlIGhvdCBwYXRoIHRoaXMgZG9lc24n
dCBtYXR0ZXIuCiAgICAgLy8gV2UgY2hlY2sgdGhlIHZhbHVlIGFzIGlmIGl0IHdhcyBhIHVpbnQz
MiBhZ2FpbnN0IHRoZSBtX3ZlY3Rvckxlbmd0aCAtIHdoaWNoIHdpbGwgYWx3YXlzIGZhaWwgaWYK
ICAgICAvLyBudW1iZXIgd2FzIHNpZ25lZCBzaW5jZSBtX3ZlY3Rvckxlbmd0aCBpcyBhbHdheXMg
bGVzcyB0aGFuIGludG1heCAoc2luY2UgdGhlIHRvdGFsIGFsbG9jYXRpb24KQEAgLTExMCw3ICsx
MTcsNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgLy8gZXh0ZW5kaW5nIHNpbmNlIGl0IG1ha2VzIGl0IGVhc2llciB0
byByZS10YWcgdGhlIHZhbHVlIGluIHRoZSBzbG93IGNhc2UuCiAgICAgemVyb0V4dGVuZDMyVG9Q
dHIocmVnVDEsIHJlZ1QxKTsKIAotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdU
MCwgYmFzZSk7CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdU
MiwgcHJvZmlsZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVNYXNrKSwg
cmVnVDIpOwogCkBAIC0xNTAsNyArMTU2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3Zh
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGUoKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgCi0gICAgbV9i
eVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29k
ZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIG5vdEluZGV4
LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0RG91
YmxlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCkBAIC0xOTUsNiAr
MjAxLDQzIEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0QXJyYXlTdG9yYWdlTG9hZChJbnN0cnVj
dGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCiAgICAgcmV0dXJuIHNsb3dDYXNlczsKIH0K
IAorSklUR2V0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEp1bXBMaXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCit7CisgICAgLy8g
YmFzZTogcmVnVDAKKyAgICAvLyBwcm9wZXJ0eTogcmVnVDEKKyAgICAvLyBzY3JhdGNoOiByZWdU
MworCisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisKKyAg
ICBzbG93Q2FzZXMuYXBwZW5kKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDEpKTsKKyAgICBpZiAo
cHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFu
Y2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURP
ZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRy
KEFkZHJlc3MocmVnVDEsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDMpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5v
dEVxdWFsLCBBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3Zt
LT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1Qx
LCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDMpOworICAgICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDMpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hUZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMywgU3RyaW5nSW1wbDo6ZmxhZ3NP
ZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAg
ICB9CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1QzLCBUcnVz
dGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJh
dG9yIGdlbigKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNl
dCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdz
KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBEb250U3BpbGwpOworICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKCp0aGlzKTsKKworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAg
IExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5s
aW5rKHRoaXMpOworCisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwg
b3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMCwgcHJv
cGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJl
Z2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICByZXR1cm4g
Z2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAt
MjAyLDggKzI0NSw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgaW50IHByb3BlcnR5
ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHBy
b2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCi0gICAg
bGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93
Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgSnVtcCBub25DZWxs
ID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawog
ICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCAKQEAgLTI5OSw3
ICszNDIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0g
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9i
eXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBh
dGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogCiB9CiAKQEAgLTk5OSw2ICsx
MDQyLDM2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyogYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkCiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxp
bmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdl
dEJ5VmFsR2VuZXJpYykpOwogfQogCit2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdp
dGhDYWNoZWRJZChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OworCisgICAgSnVtcExpc3QgZG9uZUNhc2Vz
OworICAgIEp1bXBMaXN0IHNsb3dDYXNlczsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2Vu
ID0gZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKGN1cnJlbnRJbnN0cnVjdGlvbiwgcHJvcGVydHlO
YW1lLCBkb25lQ2FzZXMsIHNsb3dDYXNlcyk7CisKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCpt
X3ZtLCAqdGhpcywgbV9jb2RlQmxvY2spOworICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvd0Nhc2Vz
LCBDb2RlTG9jYXRpb25MYWJlbChNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUZyb21FeGVj
dXRhYmxlQWRkcmVzcyhyZXR1cm5BZGRyZXNzLnZhbHVlKCkpKS5sYWJlbEF0T2Zmc2V0KGJ5VmFs
SW5mby0+cmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpKTsKKyAgICBwYXRjaEJ1ZmZlci5saW5rKGRv
bmVDYXNlcywgYnlWYWxJbmZvLT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+
YmFkVHlwZUp1bXBUb0RvbmUpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNhbGxTaXRlIDogbV9j
YWxscykgeworICAgICAgICBpZiAoY2FsbFNpdGUudG8pCisgICAgICAgICAgICBwYXRjaEJ1ZmZl
ci5saW5rKGNhbGxTaXRlLmZyb20sIEZ1bmN0aW9uUHRyKGNhbGxTaXRlLnRvKSk7CisgICAgfQor
ICAgIGdlbi5maW5hbGl6ZShwYXRjaEJ1ZmZlcik7CisKKyAgICBieVZhbEluZm8tPnN0dWJSb3V0
aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNo
QnVmZmVyLAorICAgICAgICAoIkJhc2VsaW5lIGdldF9ieV92YWwgd2l0aCBjYWNoZWQgcHJvcGVy
dHkgbmFtZSAnJXMnIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCBwcm9wZXJ0eU5hbWUu
aW1wbCgpLT51dGY4KCkuZGF0YSgpLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJl
dHVybkFkZHJlc3MudmFsdWUoKSkpOworICAgIGJ5VmFsSW5mby0+Y2FjaGVkSWQgPSBwcm9wZXJ0
eU5hbWU7CisgICAgYnlWYWxJbmZvLT5zdHViSW5mbyA9IGdlbi5zdHViSW5mbygpOworCisgICAg
UmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKKyAgICByZXBhdGNoQnVm
ZmVyLnJlbGluayhieVZhbEluZm8tPm5vdEluZGV4SnVtcCwgQ29kZUxvY2F0aW9uTGFiZWwoYnlW
YWxJbmZvLT5zdHViUm91dGluZS0+Y29kZSgpLmNvZGUoKSkpOworICAgIHJlcGF0Y2hCdWZmZXIu
cmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVyYXRp
b25HZXRCeVZhbEdlbmVyaWMpKTsKK30KKwogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlW
YWwoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywg
SklUQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uID0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBieVZhbEluZm8t
PmJ5dGVjb2RlSW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCA2MDljYTEzODgyMjdkYjViZGE1MzkyNzUzMDNk
YWRkMmQ4YjFjZWJjLi43ZDI5OTc2NmE4NDU0YjE1OTExNjI1OGRlMmY0ODVlYTg3MjRhNjRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAKQEAgLTE1Miw4ICsxNTIsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdExvYWQyKGJh
c2UsIHJlZ1QxLCByZWdUMCwgcHJvcGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCi0gICAgYWRk
U2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
SW50MzJUYWcpKSk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1Qx
KTsKKyAgICBQYXRjaGFibGVKdW1wIG5vdEluZGV4ID0gcGF0Y2hhYmxlQnJhbmNoMzIoTm90RXF1
YWwsIHJlZ1QzLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKTsKKyAgICBhZGRTbG93
Q2FzZShub3RJbmRleCk7CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1Qw
LCByZWdUMSwgcHJvZmlsZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVN
YXNrKSwgcmVnVDEpOwogCkBAIC0xOTIsNyArMTkzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0
X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoKTsKICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogICAgIAot
ICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1f
Ynl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBu
b3RJbmRleCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6
ZW1pdENvbnRpZ3VvdXNMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwg
SW5kZXhpbmdUeXBlIGV4cGVjdGVkU2hhcGUpCkBAIC0yMzYsNyArMjM3LDQ0IEBAIEpJVDo6SnVt
cExpc3QgSklUOjplbWl0QXJyYXlTdG9yYWdlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1
bXAmIGJhZFR5cGUpCiAgICAgCiAgICAgcmV0dXJuIHNsb3dDYXNlczsKIH0KLSAgICAKKworSklU
R2V0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEp1
bXBMaXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCit7CisgICAgaW50IGRzdCA9
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisKKyAgICAvLyBiYXNlOiB0YWcocmVn
VDEpLCBwYXlsb2FkKHJlZ1QwKQorICAgIC8vIHByb3BlcnR5OiB0YWcocmVnVDMpLCBwYXlsb2Fk
KHJlZ1QyKQorICAgIC8vIHNjcmF0Y2g6IHJlZ1Q0CisKKyAgICBzbG93Q2FzZXMuYXBwZW5kKGVt
aXRKdW1wSWZOb3RKU0NlbGwocmVnVDMpKTsKKyAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9s
KCkpIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWws
IEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN5bWJv
bFN0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIFN5bWJv
bDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDQpOworICAgIH0gZWxzZSB7CisgICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1Qy
LCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0
KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBKU1N0cmluZzo6b2Zmc2V0T2ZW
YWx1ZSgpKSwgcmVnVDQpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIo
WmVybywgcmVnVDQpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0MzIoWmVy
bywgQWRkcmVzcyhyZWdUNCwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0z
MihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAgICB9CisgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1Q0LCBUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFt
ZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKKyAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVj
aWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFs
dWVSZWdzKHJlZ1QxLCByZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBh
dGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisgICAgTGFiZWwg
Y29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgpLmxpbmsodGhp
cyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlLCBvcGVyYXRp
b25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QxLCByZWdUMCwgcHJv
cGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJl
Z2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICByZXR1cm4g
Z2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAt
MjQ0LDggKzI4Miw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgaW50IHByb3BlcnR5
ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHBy
b2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCi0gICAg
bGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93
Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAKICAgICBKdW1wIG5vbkNl
bGwgPSBqdW1wKCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNr
CkBAIC0zMTQsNyArMzUyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgp
OwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRp
b25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5
VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2Rl
T2Zmc2V0LCBQYXRjaGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogSklU
OjpKdW1wTGlzdCBKSVQ6OmVtaXRHZW5lcmljQ29udGlndW91c1B1dEJ5VmFsKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIEluZGV4aW5nVHlw
ZSBpbmRleGluZ1NoYXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3ltYm9sLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRl
eCBlNTc5MGQ3ODcyMjZiZWE3NjAyNGM5ZDFkNjZhNjc2MGY2NGRlNWEyLi44M2Y1ZGUyNDg1MmJj
Mzc4ZWUwYTc3MDM5ZjQ2MzE4MjVmZGRkYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2wuaApAQCAtNzksNiArNzksOCBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMg
SlNDZWxsIHsKICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqKSBjb25zdDsKICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7CiAKKyAg
ICBzdGF0aWMgc2l6ZV90IG9mZnNldE9mUHJpdmF0ZU5hbWUoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoU3ltYm9sLCBtX3ByaXZhdGVOYW1lKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWNvbnN0cnVjdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjNTg1MTYwMmU5MzRiMzM2NjhhZWQyY2ZmNGRk
Y2I3ODc2ZWUxODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY29uc3RydWN0b3IuanMKQEAgLTAsMCAr
MSwyMyBAQAordmFyIHN5bWJvbCA9ICJAQHNwZWNpZXMiOworZnVuY3Rpb24gSGVsbG8oKSB7Cit9
CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShIZWxsbywgc3ltYm9sLCB7CisgICAgZ2V0OiBmdW5j
dGlvbiAoKSB7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KK30pOworCitIZWxsby5wcm90
b3R5cGUuZ2VuZXJhdGUgPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIG5ldyB0aGlzLmNvbnN0
cnVjdG9yW3N5bWJvbF0oKTsKK307CisKK2Z1bmN0aW9uIG9rKCkgeworICAgIHZhciBvYmplY3Qg
PSBuZXcgSGVsbG8oKTsKKyAgICBpZiAoIShvYmplY3QuZ2VuZXJhdGUoKSBpbnN0YW5jZW9mIEhl
bGxvKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgaW5zdGFuY2UiKTsKK30KK25vSW5s
aW5lKG9rKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIG9rKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctZXhpdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhYTI2MmQ2NGE2NjE0
OTY0NjY5YWI3NGNiMmYwMWZhNGVkODAyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZXhpdC5qcwpA
QCAtMCwwICsxLDM0IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1l
KQoreworICAgIHJldHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRCeVZhbCk7CisK
K2Z1bmN0aW9uIGdldFN0cjEoKQoreworICAgIHJldHVybiAiaGVsbG8iOworfQorbm9JbmxpbmUo
Z2V0U3RyMSk7CisKK2Z1bmN0aW9uIGdldFN0cjIoKQoreworICAgIHJldHVybiAiaGVsbG8iOwor
fQorbm9JbmxpbmUoZ2V0U3RyMik7CisKK3ZhciBvYmplY3QgPSB7CisgICAgaGVsbG86IDQyCit9
OworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFs
KG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7CitzaG91
bGRCZShnZXRCeVZhbChvYmplY3QsIHsgdG9TdHJpbmcoKSB7IHJldHVybiAnaGVsbG8nOyB9IH0p
LCA0Mik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShn
ZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigpKSwgNDIp
Oworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCB7IHRvU3RyaW5nKCkgeyByZXR1cm4gJ2hlbGxv
JzsgfSB9KSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTgxM2E3ZTE0MGQzODY2NTNmYmMzNTRjNTBlYWQ1OGUxMjE5ZDNhNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanMKQEAgLTAsMCArMSwzMyBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisK
K2Z1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKK3sKKyAgICByZXR1cm4gb2JqZWN0W25h
bWVdOworfQorbm9JbmxpbmUoZ2V0QnlWYWwpOworCit2YXIgdmFsdWUgPSAnbG8nOworCitmdW5j
dGlvbiBnZXRTdHIxKCkKK3sKKyAgICByZXR1cm4gImhlbCIgKyB2YWx1ZTsKK30KK25vSW5saW5l
KGdldFN0cjEpOworCitmdW5jdGlvbiBnZXRTdHIyKCkKK3sKKyAgICByZXR1cm4gImhlbGxvIjsK
K30KK25vSW5saW5lKGdldFN0cjIpOworCit2YXIgb2JqZWN0ID0geworICAgIGhlbGxvOiA0MiwK
KyAgICB3b3JsZDogNTAKK307CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAg
ICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0
U3RyMigpKSwgNDIpOworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCAnd29ybGQnKSwgNTApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWdldHRlci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU4ZWMwYTg2
ZGI5NTRkODQ3ZjZiOGY3NjJkMjk2YmVkY2ViMWJmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0
ZXIuanMKQEAgLTAsMCArMSwxNiBAQAorCit2YXIgb2JqZWN0ID0geworICAgIGdldCBoZWxsbygp
IHsKKyAgICAgICAgcmV0dXJuIDQyOworICAgIH0KK307CisKK2Z1bmN0aW9uIG9rKCkgeworICAg
IHZhciB2YWx1ZSA9ICdoZWxsbyc7CisgICAgaWYgKG9iamVjdFt2YWx1ZV0gKyAyMCAhPT0gNjIp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigpOworfQorbm9JbmxpbmUob2spOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZGIzM2Q5YmVjYjE0YWQyMDViODc1NWJkZmUxZjk1YmIzOTdiYjQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlv
biBnZXRCeVZhbChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30K
K25vSW5saW5lKGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3RyMSgpCit7CisgICAgcmV0dXJu
ICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIxKTsKKworZnVuY3Rpb24gZ2V0U3RyMigpCit7
CisgICAgcmV0dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIyKTsKKwordmFyIG9iamVj
dCA9IHsKKyAgICBoZWxsbzogNDIsCisgICAgd29ybGQ6IDUwCit9OworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9
PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9i
amVjdCwgJ3dvcmxkJyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25z
dHJ1Y3Rvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODk1YzI2NDUxZDI1N2E5N2EyZGIzZWM1ODkyOWI5ZDU1
MzQzMjUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzCkBAIC0wLDAgKzEsMjMg
QEAKK3ZhciBzeW1ib2wgPSBTeW1ib2woKTsKK2Z1bmN0aW9uIEhlbGxvKCkgeworfQorCitPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoSGVsbG8sIHN5bWJvbCwgeworICAgIGdldDogZnVuY3Rpb24gKCkg
eworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9Cit9KTsKKworSGVsbG8ucHJvdG90eXBlLmdl
bmVyYXRlID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rvcltz
eW1ib2xdKCk7Cit9OworCitmdW5jdGlvbiBvaygpIHsKKyAgICB2YXIgb2JqZWN0ID0gbmV3IEhl
bGxvKCk7CisgICAgaWYgKCEob2JqZWN0LmdlbmVyYXRlKCkgaW5zdGFuY2VvZiBIZWxsbykpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGluc3RhbmNlIik7Cit9Citub0lubGluZShvayk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWV4aXQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtZXhpdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGNkY2I2NzZkOTRlNDZiNmMxMDFh
OGE3N2QwMGI2NjQ0YThjMTBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanMKQEAgLTAsMCAr
MSwzOCBAQAordmFyIHN5bWJvbDEgPSBTeW1ib2woKTsKK3ZhciBzeW1ib2wyID0gT2JqZWN0Lmdl
dE93blByb3BlcnR5U3ltYm9scyh7IFtzeW1ib2wxXTogNDIgfSlbMF07CisKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitm
dW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1l
XTsKK30KK25vSW5saW5lKGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3ltMSgpCit7CisgICAg
cmV0dXJuIHN5bWJvbDE7Cit9Citub0lubGluZShnZXRTeW0xKTsKKworZnVuY3Rpb24gZ2V0U3lt
MigpCit7CisgICAgcmV0dXJuIHN5bWJvbDI7Cit9Citub0lubGluZShnZXRTeW0yKTsKKwordmFy
IG9iamVjdCA9IHsKKyAgICBbc3ltYm9sMV06IDQyLAorICAgIGhlbGxvOiA1MAorfTsKKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3Qs
IGkgJSAyID09PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOworc2hvdWxkQmUoZ2V0
QnlWYWwob2JqZWN0LCAnaGVsbG8nKSwgNTApOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN5
bTEoKSA6IGdldFN5bTIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ2hlbGxv
JyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1nZXR0ZXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVyLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcwMzVlNGIwMzhhNDY1ZDQzZWJjMjhlNWNmNDgxOWI1OWU2NjY4N2QKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtZ2V0dGVyLmpzCkBAIC0wLDAgKzEsMjMgQEAKKwordmFyIG9iamVjdCA9IHsKKyAgICBn
ZXQgaGVsbG8oKSB7CisgICAgICAgIHJldHVybiA0MjsKKyAgICB9Cit9OworCit2YXIgc3ltYm9s
ID0gU3ltYm9sKCk7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIHN5bWJvbCwgewor
ICAgIGdldDogZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gNDI7CisgICAgfQorfSk7CisK
K2Z1bmN0aW9uIG9rKCkgeworICAgIGlmIChvYmplY3Rbc3ltYm9sXSArIDIwICE9PSA2MikKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Cit9Citub0lubGluZShvayk7CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJjODM0ZWIyNmJlMzI2ZTFjOTE4NDkxZjBlMTliN2ZhMzhiYjA5MDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wuanMKQEAgLTAsMCArMSwzMyBAQAordmFyIHN5bWJvbDEgPSBTeW1ib2wo
KTsKK3ZhciBzeW1ib2wyID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh7IFtzeW1ib2wx
XTogNDIgfSlbMF07CisKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUp
Cit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30KK25vSW5saW5lKGdldEJ5VmFsKTsKKwor
ZnVuY3Rpb24gZ2V0U3ltMSgpCit7CisgICAgcmV0dXJuIHN5bWJvbDE7Cit9Citub0lubGluZShn
ZXRTeW0xKTsKKworZnVuY3Rpb24gZ2V0U3ltMigpCit7CisgICAgcmV0dXJuIHN5bWJvbDI7Cit9
Citub0lubGluZShnZXRTeW0yKTsKKwordmFyIG9iamVjdCA9IHsKKyAgICBbc3ltYm9sMV06IDQy
LAorICAgIGhlbGxvOiA1MAorfTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQor
ICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0xKCkgOiBn
ZXRTeW0yKCkpLCA0Mik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2I2ZTdhNGJhOGFiYjI5NWI0ZDUxMzEwNTI0MWNlZmMz
ZDgxMGZkZi4uYTY2MWQzN2E0ZDE2NzJkMjBkNGM2MTgyM2I4MDhkNjBjNjQ1YmVhOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDgzIEBACisyMDE1LTA4LTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIEludHJvZHVjZSBnZXRfYnlfaWQgbGlrZSBJQyBpbnRvIGdl
dF9ieV92YWwgd2hlbiB0aGUgZ2l2ZW4gbmFtZSBpcyBTdHJpbmcgb3IgU3ltYm9sCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc0ODAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3ludGhldGljIGJl
bmNobWFya3MgdGhhdCByZXBsYWNlcyBub3JtYWwgcHJvcGVydHkgbG9hZCB3aXRoIHN5bWJvbC9z
dHJpbmcga2V5ZWQgbG9hZC4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFp
bi1mcm9tLXRyeS1ibG9jay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1v
ci1zZWxmLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNl
bGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4t
ZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXBy
b3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3It
cHJvdG8uaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKEEp
OgorICAgICAgICAoQik6CisgICAgICAgIChDKToKKyAgICAgICAgKEQpOgorICAgICAgICAoRSk6
CisgICAgICAgIChGKToKKyAgICAgICAgKEcpOgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiBq
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzOiBBZGRlZC4KKyAg
ICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoRm9vKToKKyAgICAgICAgKiBq
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1w
cm90by5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAg
KEZvbyk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qczog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKEEpOgorICAgICAgICAo
Qik6CisgICAgICAgIChDKToKKyAgICAgICAgKEQpOgorICAgICAgICAoRSk6CisgICAgICAgIChG
KToKKyAgICAgICAgKEcpOgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisgICAgICAgIChiYXIpOgorICAgICAgICAoRm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qczogQWRk
ZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKEZvbyk6CisKIDIw
MTUtMDgtMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IHNjcmlwdCBwYXRocyBpbiB0aGVzZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2NmNDNhZmEwN2QzYzhlMGYxNzg5MmVlZGE3
OTI3ZTIxYjgxOGIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiMzdj
NTAwMDBjMGExZDFlMmYyNjI4NTdmNzliNGVjNDE0N2UwYzgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA0ODJjNDUwZDk1NWFlOTk2NGVlMjViZmYyYjVmYzBjYjY2ZjQ1MzUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRt
bApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5ZWYxNDE1NzU4NGNhNjE2MDY0Njg3NTk4
Y2ZiZDRkYjc5N2ZlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Y2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMTZhNjY3Mjk3MDM2YTQ1YzVmMzJiNzAxYzBiYzdlZmIyZmJkYTE4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jawor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3du
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
YWluLWZyb20tdHJ5LWJsb2NrLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmM5
NjNhMDEyYjAyY2YzNjE0NDVmNjdjNmVjYmQ4Y2QxOGIwYjJmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20t
dHJ5LWJsb2NrLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9t
LXRyeS1ibG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Jl
Z3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVlYzBmYzcwZWU3YTI0NTU1ZmIwZmQ4YWJiNmEzZTQ2YTdmZDUwNDQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8g
ZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzZmNThkNDE1N2I1MWJiOTg1MzgyZGM4MWE2ZDk0
OGZiOWRiMDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1v
ci1zZWxmLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWY5MmM5MDc5Y2MyZGJkZGFiZTRjYjY1
M2IzMjNmZmZlNTM5NzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNl
bGYKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1wcm90by1vci1zZWxmLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2YWI2MTFiZDQ1ZGUz
MDQyNmY2YmI1NGJlNjk1MzkwYjczMGEwODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sCkBA
IC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIxYWE1N2VjYWI2YTFhMWE3ODRkYjVlODg0
MmZlMmJhZGI4NWMyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2Vw
dGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMzc1MWI2NGU4MjJhYjJkZWM0N2FkOWE5ZjQ2NjhlMzc5ZTFmMDc2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCwwICsx
LDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJv
dG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MjE3MTM0Zjk4
Mjg5MDQzOTU2ODJmODg3MDZkMmM2N2FkODhiNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctc2VsZi1vci1wcm90bworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBu
byBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDA0YTZiOTljNWI1ZTMwNmQ4M2I2ZjI1MzQyM2EwZmY4MTM1OGUwNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9y
LXByb3RvLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3Rv
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTAwYzVkOGI4ZjhjZTI4NTYxYzdiNTEwYTc4M2Q2
NTEyNTNiZGUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzOTBlZDk1
MmNlZWUyYTIwZWZlYzRkYjEwOTM1M2I3NzNiMjhmYmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA0ODJjNDUwZDk1NWFlOTk2NGVlMjViZmYyYjVmYzBjYjY2ZjQ1MzUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApA
QCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5ZWYxNDE1NzU4NGNhNjE2MDY0Njg3NTk4Y2Zi
ZDRkYjc5N2ZlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hh
aW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNzU0YmIwZThlNTY4YzhkMDIwNmU2NDllNTI5NzRiM2Y5ZTQyYTQxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitK
U1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jaworCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWlu
LWZyb20tdHJ5LWJsb2NrLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTc1Zjk5
MjgwZTcyMzM1YzJiNTRkM2Q5M2YwODYxMTgzMTk3NDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5
LWJsb2NrLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRy
eS1ibG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQzMTQ5NGE5YjQ1NjJmOWUxNjkwNDc4OTdhYjYwNjM1ZGYxMTQ4NWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhj
ZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWJmYWNhN2E1ZTRiNzI4OGVjZWQyNmU4NTM2MGQ1NmUw
NjdjN2ExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCkBAIC0wLDAg
KzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1z
ZWxmLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTVkMjYyY2VhNTIwNWNmNWYzY2I2MzdhNzg4
ZGEzMmIwZTNhNmM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93
bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1w
cm90by1vci1zZWxmLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ODE1Y2UzM2U4YWM3NzUx
MDZkYWIyYzJhN2I0MjYxNGY5MzhjZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ2MDVjMDc2MWMyMDhiZWZkNjI5ZWJkMjJhNGZk
ZjlmZTg0OGMzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlv
biB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1s
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NWNlNDYyNDVlODg2YmUyN2Y1MTA2NmE1MTczYzQ5NTFmMmEyMGQ3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDEy
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NjY5MTA4YmFjMWNl
NmQxZWE4NTA4MDM0NDUzODFjZGM1ZGFmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
c2VsZi1vci1wcm90bworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBl
eGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY1
ZjNkNzA0ODFhY2NhYWYwNWEwMDAwNGE1ZmU1Mjk2YTMyZWJkYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXBy
b3RvLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyNTg5ZjFlYmI4YzEy
ZGUxY2EwM2Y4MTIyZmQ0MjI1NDMxMDE3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTQgQEAK
KyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9ICdhJywgbCA9ICdsJzsKKyAgICB2YXIgbyA9IHtb
YV06MX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307CisgICAgdmFyIHJlc3VsdCA9IDA7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0
IF49IG9bYV07CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAg
cCA9IHRtcDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAwKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNTk0MDFkN2Y1NzI4NDcxNGZlN2Qz
ZDVlMDQ1MjExYmQ0N2MxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKQEAgLTAsMCArMSwxNCBAQAorKGZ1bmN0aW9uKCkgewor
ICAgIHZhciBhID0gJ2EnLCBiID0gJ2InLCBjID0gJ2MnLCBkID0gJ2QnLCBlID0gJ2UnLCBmID0g
J2YnLCBnID0gJ2cnLCBoID0gJ2gnLCBpID0gJ2knLCBqID0gJ2onLCBrID0gJ2snLCBsID0gJ2wn
OworICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYs
IFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcCA9IHtbYV06
MiwgW2JdOjMsIFtjXTo0LCBbZF06NSwgW2VdOjYsIFtmXTo3LCBbZ106OCwgW2hdOjksIFtpXTox
MCwgW2pdOjExLCBba106MTIsIFtsXToxM307CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9y
ICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IDEwMDAwMDA7ICsraW5kZXgpIHsKKyAgICAgICAgcmVz
dWx0ICs9IG9bYV0gXiBvW2JdIF4gb1tjXSBeIG9bZF0gXiBvW2VdIF4gb1tmXSBeIG9bZ10gXiBv
W2hdIF4gb1tpXSBeIG9bal0gXiBvW2tdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAgICAgICAg
byA9IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gNjUwMDAw
MCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanMgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5
LWJsb2NrLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmOTcwZmVlMjRiMGVmNjU1MjkyY2FlZGE0MWM2YmViMDBl
MGQ0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzCkBAIC0w
LDAgKzEsNDkgQEAKK3ZhciBmID0gJ2YnOworCitmdW5jdGlvbiBBKCkgeyB9CisKK0EucHJvdG90
eXBlID0ge1tmXTo0Mn07CisKK2Z1bmN0aW9uIEIoKSB7IH0KKworQi5wcm90b3R5cGUgPSBuZXcg
QSgpOworCitmdW5jdGlvbiBDKCkgeyB9CisKK0MucHJvdG90eXBlID0gbmV3IEIoKTsKKworZnVu
Y3Rpb24gRCgpIHsgfQorCitELnByb3RvdHlwZSA9IG5ldyBDKCk7CisKK2Z1bmN0aW9uIEUoKSB7
IH0KKworRS5wcm90b3R5cGUgPSBuZXcgRCgpOworCitmdW5jdGlvbiBGKCkgeyB9CisKK0YucHJv
dG90eXBlID0gbmV3IEUoKTsKKworZnVuY3Rpb24gRygpIHsgfQorCitHLnByb3RvdHlwZSA9IG5l
dyBGKCk7CisKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IDA7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgICAgICAg
ICAgcmVzdWx0ICs9IG9bZl07CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICByZXR1cm4gNTI7CisgICAgfQorfQorCit2YXIgcmVzdWx0ID0gMDsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgcmVzdWx0ICs9IGZvbyhuZXcgRygp
KTsKKworaWYgKHJlc3VsdCAhPSA0MjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyByZXN1bHQ7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI4
OGFhNWJiYTEyZWYwMzk5ZjgxZjkwNGNmZGJlNDhkMzhkOWMyYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0wLDAgKzEsOSBAQAorKGZ1bmN0
aW9uKCkgeworICAgIHZhciBhID0gJ2EnLCBiID0gJ2InLCBjID0gJ2MnLCBkID0gJ2QnLCBlID0g
J2UnLCBmID0gJ2YnLCBnID0gJ2cnLCBoID0gJ2gnLCBpID0gJ2knLCBqID0gJ2onLCBrID0gJ2sn
OworICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYs
IFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcmVzdWx0ID0g
MDsKKyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkKKyAg
ICAgICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIHwgb1tjXSBeIG9bZF0gJiBvW2VdIF4gb1tmXSB8
IG9bZ10gXiBvW2hdICYgb1tpXSBeIG9bal0gfCBvW2tdOworICAgIGlmIChyZXN1bHQgIT0gMTUw
MDAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30p
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWY3NDkzYjk4ZjYxMGQxYzRhZDliODNlZWNmNjFhNjdmOWVjYWFiOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIg
ZiA9ICdmJzsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVu
Y3Rpb24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDIwMDAwMDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3Ro
OyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1
cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0g
PSA0MjsKKwordmFyIHJlc3VsdCA9IGJhcihbbmV3IEZvbygpLCB7W2ZdOjI0fV0pOworCitpZiAo
cmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTFkY2UzYzI1N2Q4ZDlkODA0ZTU0MGE4MDhmNjg0YjQ5
N2YzMjkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMjIgQEAKKyhmdW5jdGlvbigpIHsKKyAg
ICB2YXIgYSA9ICdhJzsKKyAgICB2YXIgbCA9ICdsJzsKKyAgICB2YXIgYiA9ICdiJzsKKyAgICB2
YXIgYyA9ICdjJzsKKworICAgIHZhciBvID0ge1thXToxfTsKKyAgICB2YXIgcCA9IHtbYV06Miwg
W2xdOjEzfTsKKyAgICB2YXIgcSA9IHtbYV06MywgW2JdOjN9OworICAgIHZhciByID0ge1thXTo0
LCBbY106NX07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07CisgICAgICAgIHZhciB0bXAg
PSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSByOworICAg
ICAgICByID0gdG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNl
bGYtb3ItcHJvdG8uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJlYzEwN2Nh
N2ZhMzgwZjFiYzk2ZWY3ZTlhZTNhZmNkNTExNzJjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2Vs
Zi1vci1wcm90by5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9ICdmJzsKKworZnVuY3Rpb24g
Zm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2
YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgewor
ICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisgICAgICAgICAgICBy
ZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmdW5j
dGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9
IGJhcihbe1tmXToyNH0sIG5ldyBGb28oKV0pOworCitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkK
KyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4
NWQzMmFmNTAzMmNkMDQ1ODU3ODQ5NWMzNzc5OTI1OTg1ZjMwN2UKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0w
LDAgKzEsMTQgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgpLCBsID0gU3lt
Ym9sKCk7CisgICAgdmFyIG8gPSB7W2FdOjF9OworICAgIHZhciBwID0ge1thXToyLCBbbF06MTN9
OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsg
KytpKSB7CisgICAgICAgIHJlc3VsdCBePSBvW2FdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAg
ICAgICAgbyA9IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0g
MCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YmJlOTcxYjYxNjM1OTRjZTIwNDNlMjc5NTUwMDdlODMwYjA1YjhlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0wLDAgKzEs
MTQgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgpLCBiID0gU3ltYm9sKCks
IGMgPSBTeW1ib2woKSwgZCA9IFN5bWJvbCgpLCBlID0gU3ltYm9sKCksIGYgPSBTeW1ib2woKSwg
ZyA9IFN5bWJvbCgpLCBoID0gU3ltYm9sKCksIGkgPSBTeW1ib2woKSwgaiA9IFN5bWJvbCgpLCBr
ID0gU3ltYm9sKCksIGwgPSBTeW1ib2woKTsKKyAgICB2YXIgbyA9IHtbYV06MSwgW2JdOjIsIFtj
XTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06MTAsIFtr
XToxMX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtiXTozLCBbY106NCwgW2RdOjUsIFtlXTo2LCBb
Zl06NywgW2ddOjgsIFtoXTo5LCBbaV06MTAsIFtqXToxMSwgW2tdOjEyLCBbbF06IDEzfTsKKyAg
ICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAw
MDsgKytpbmRleCkgeworICAgICAgICByZXN1bHQgKz0gb1thXSBeIG9bYl0gXiBvW2NdIF4gb1tk
XSBeIG9bZV0gXiBvW2ZdIF4gb1tnXSBeIG9baF0gXiBvW2ldIF4gb1tqXSBeIG9ba107CisgICAg
ICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHRtcDsKKyAgICB9
CisgICAgaWYgKHJlc3VsdCAhPSA2NTAwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1i
bG9jay5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y4YWM3OGE4
NjA0MzBkYjY3YWNjNGVlMzc3MGQzMjczMzgwMmUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hh
aW4tZnJvbS10cnktYmxvY2suanMKQEAgLTAsMCArMSw0OSBAQAordmFyIGYgPSBTeW1ib2woIkNv
Y29hIik7CisKK2Z1bmN0aW9uIEEoKSB7IH0KKworQS5wcm90b3R5cGUgPSB7W2ZdOjQyfTsKKwor
ZnVuY3Rpb24gQigpIHsgfQorCitCLnByb3RvdHlwZSA9IG5ldyBBKCk7CisKK2Z1bmN0aW9uIEMo
KSB7IH0KKworQy5wcm90b3R5cGUgPSBuZXcgQigpOworCitmdW5jdGlvbiBEKCkgeyB9CisKK0Qu
cHJvdG90eXBlID0gbmV3IEMoKTsKKworZnVuY3Rpb24gRSgpIHsgfQorCitFLnByb3RvdHlwZSA9
IG5ldyBEKCk7CisKK2Z1bmN0aW9uIEYoKSB7IH0KKworRi5wcm90b3R5cGUgPSBuZXcgRSgpOwor
CitmdW5jdGlvbiBHKCkgeyB9CisKK0cucHJvdG90eXBlID0gbmV3IEYoKTsKKworZnVuY3Rpb24g
Zm9vKG8pIHsKKyAgICB0cnkgeworICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgICAgICByZXN1bHQgKz0gb1tmXTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVy
biA1MjsKKyAgICB9Cit9CisKK3ZhciByZXN1bHQgPSAwOworCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDA7ICsraSkKKyAgICByZXN1bHQgKz0gZm9vKG5ldyBHKCkpOworCitpZiAocmVzdWx0ICE9
IDQyMDAwMDAwKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDU5ZmQ4ZTBiYjk5MTRlZWQ2YmY0
ZWVkMTU1MDBjNDhmMmM0NDJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24uanMKQEAgLTAsMCArMSw5IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEg
PSBTeW1ib2woKSwgYiA9IFN5bWJvbCgpLCBjID0gU3ltYm9sKCksIGQgPSBTeW1ib2woKSwgZSA9
IFN5bWJvbCgpLCBmID0gU3ltYm9sKCksIGcgPSBTeW1ib2woKSwgaCA9IFN5bWJvbCgpLCBpID0g
U3ltYm9sKCksIGogPSBTeW1ib2woKSwgayA9IFN5bWJvbCgpOworICAgIHZhciBvID0ge1thXTox
LCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjks
IFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRl
eCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkKKyAgICAgICAgcmVzdWx0ICs9IG9bYV0g
XiBvW2JdIHwgb1tjXSBeIG9bZF0gJiBvW2VdIF4gb1tmXSB8IG9bZ10gXiBvW2hdICYgb1tpXSBe
IG9bal0gfCBvW2tdOworICAgIGlmIChyZXN1bHQgIT0gMTUwMDAwMDApCisgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXBy
b3RvLW9yLXNlbGYuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJmODJhYjI2
OGE3MzI5MzcwODU3NmJjNzgwNmVjYTY3YjZhZWI4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJv
dG8tb3Itc2VsZi5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9IFN5bWJvbCgiQ29jb2EiKTsK
KworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFy
KGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAw
MDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisg
ICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwor
dmFyIHJlc3VsdCA9IGJhcihbbmV3IEZvbygpLCB7W2ZdOjI0fV0pOworCitpZiAocmVzdWx0ICE9
IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNTgzNjJhZGVhNzBhYjgyMDRkZTVkNTViOWU0YzU2OGMxMTBkMDc3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMjIgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9
IFN5bWJvbCgiQ29jb2EiKTsKKyAgICB2YXIgbCA9IFN5bWJvbCgpOworICAgIHZhciBiID0gU3lt
Ym9sKCk7CisgICAgdmFyIGMgPSBTeW1ib2woKTsKKworICAgIHZhciBvID0ge1thXToxfTsKKyAg
ICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKKyAgICB2YXIgcSA9IHtbYV06MywgW2JdOjN9Owor
ICAgIHZhciByID0ge1thXTo0LCBbY106NX07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07
CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHE7Cisg
ICAgICAgIHEgPSByOworICAgICAgICByID0gdG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9
IDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzAwOGMzNjQxMjBiZjJhYTQ4YWQ3NGFhM2I1YTZmYzdiOTY3YmZiYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9
IFN5bWJvbCgnQ29jb2EnKTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsK
K30KKworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8
IGEubGVuZ3RoOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0K
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90
b3R5cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9IGJhcihbe1tmXToyNH0sIG5ldyBGb28oKV0p
OworCitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3Vs
dDogIiArIHJlc3VsdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258272</attachid>
            <date>2015-08-05 02:01:38 -0700</date>
            <delta_ts>2015-08-05 13:33:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150805020129.patch</filename>
            <type>text/plain</type>
            <size>104730</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MzllNTViYTc1MTg0NTIwNDA5MjVmODQ5N2Y2MDI4MzFhYzhiOGExLi4zOTgzODY5YzdjODNkMWU1
MzEyZTZkOGRlOTY4NmRmNDcwZjYwYzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDQgQEAKKzIwMTUtMDgtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGdldF9ieV9pZCBsaWtlIElDIGludG8gZ2V0X2J5
X3ZhbCB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIFN0cmluZyBvciBTeW1ib2wKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBnZXRf
YnlfaWQgSUMgdG8gZ2V0X2J5X3ZhbCBvcGVyYXRpb24gYnkgY2FjaGluZyB0aGUgc3RyaW5nIC8g
c3ltYm9sIGlkLgorICAgICAgICBUaGUgSUMgc2l0ZSBvbmx5IGNhY2hlcyBvbmUgaWQuIEFmdGVy
IGNoZWNraW5nIHRoYXQgdGhlIGdpdmVuIGlkIGlzIHRoZSBzYW1lIHRvIHRoZQorICAgICAgICBj
YWNoZWQgb25lLCB3ZSBwZXJmb3JtIHRoZSBnZXRfYnlfaWQgSUMgb250byBpdC4KKyAgICAgICAg
QW5kIGJ5IGNvbGxlY3RpbmcgSUMgU3RydWN0dXJlU3R1YkluZm8gaW5mb3JtYXRpb24sIHdlIHBh
c3MgaXQgdG8gdGhlIERGRyBhbmQgREZHCisgICAgICAgIGNvbXBpbGVzIGdldF9ieV92YWwgb3Ag
Y29kZSBpbnRvIENoZWNrSWRlbnQgKHdpdGggZWRnZSB0eXBlIGNoZWNrKSBhbmQgR2V0QnlJZCBy
ZWxhdGVkCisgICAgICAgIG9wZXJhdGlvbnMgd2hlbiB0aGUgZ2l2ZW4gZ2V0X2J5X3ZhbCBsZXZl
cmFnZXMgdGhlIHByb3BlcnR5IGxvYWQgd2l0aCB0aGUgY2FjaGVkIGlkLgorCisgICAgICAgIFRv
IGVuc3VyZSB0aGUgaW5jb21pbmcgdmFsdWUgaXMgdGhlIGV4cGVjdGVkIGlkLCBpbiBERkcgbGF5
ZXIsIHdlIHVzZSBTeW1ib2xVc2UgYW5kCisgICAgICAgIFN0cmluZ0lkZW50VXNlIHRvIGVuZm9y
Y2UgdGhlIHR5cGUuIFRvIHVzZSBpdCwgdGhpcyBwYXRjaCBpbXBsZW1lbnRzIFN5bWJvbFVzZS4K
KyAgICAgICAgVGhpcyBjYW4gYmUgbGV2ZXJhZ2VkIHRvIG9wdGltaXplIHN5bWJvbCBvcGVyYXRp
b25zIGluIERGRy4KKworICAgICAgICAqIGJ5dGVjb2RlL0J5VmFsSW5mby5oOgorICAgICAgICAo
SlNDOjpCeVZhbEluZm86OkJ5VmFsSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm9NYXApOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmNw
cDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAgICAgICogYnl0ZWNvZGUv
RXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAgIChKU0M6OkdldEJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgIChKU0M6OkdldEJ5SWRTdGF0
dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKToKKyAgICAgICAg
KiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRl
cjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3Rh
Y2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGlu
Z1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAo
SlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2RlKToKKyAgICAgICAgKiBk
ZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1VpZE9wZXJhbmQpOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAgICAgICAqIGRmZy9ERkdO
b2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3Bh
Z2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6
REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6
c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrSWRlbnQpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTeW1ib2wpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5jcHA6Cisg
ICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5kLmg6
CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChKU0M6OkRGRzo6
aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAg
ICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNv
bXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja0lkZW50KToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb3dTeW1ib2wpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZSk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RTeW1ib2wpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN5bWJvbCk6CisgICAgICAgICogaml0L0pJ
VC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOgorICAgICAgICAqIGpp
dC9KSVQuaDoKKyAgICAgICAgKEpTQzo6QnlWYWxDb21waWxhdGlvbkluZm86OkJ5VmFsQ29tcGls
YXRpb25JbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVk
SWQpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMy
XzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5
KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVFBy
b3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV92YWwp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9wdXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdl
dEJ5VmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENh
Y2hlZElkKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29w
X2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6Cisg
ICAgICAgICogcnVudGltZS9TeW1ib2wuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisgICAgICAgIChIZWxsbyk6
CisgICAgICAgIChnZXQgSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlKToKKyAgICAgICAgKG9rKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAg
KGdldFN0cjEpOgorICAgICAgICAoZ2V0U3RyMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctZ2VuZXJhdGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3Vs
ZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAgKGdldFN0cjEpOgorICAgICAgICAo
Z2V0U3RyMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Z2V0dGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKG9iamVjdC5nZXQgaGVsbG8pOgorICAgICAgICAo
b2spOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAg
KGdldFN0cjEpOgorICAgICAgICAoZ2V0U3RyMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0b3IuanM6IEFkZGVkLgorICAgICAgICAoSGVs
bG8pOgorICAgICAgICAoZ2V0IEhlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSk6CisgICAgICAgIChv
ayk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZXhpdC5q
czogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChnZXRCeVZhbCk6CisgICAg
ICAgIChnZXRTeW0xKToKKyAgICAgICAgKGdldFN5bTIpOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWdldHRlci5qczogQWRkZWQuCisgICAgICAgIChvYmpl
Y3QuZ2V0IGhlbGxvKToKKyAgICAgICAgKC5nZXQgb2spOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToK
KyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAgKGdldFN5bTEpOgorICAgICAgICAoZ2V0U3lt
Mik6CisKIDIwMTUtMDgtMDQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dpbl0gVXBkYXRlIEFwcGxlIFdpbmRvd3MgYnVpbGQgZm9yIFZTMjAxNQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCmluZGV4IGQ5ODg1MTYxMzI1
OGE3MWI5ZjA0YmE0OTA3M2Y0NDAzM2U1NzEwODMuLmNlNzZiMzkwNzIxMDhjYmNhMTM4OGM0OTZj
NzBkNTE2ODk2MzY5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeVZhbEluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJ
bmZvLmgKQEAgLTI2LDE2ICsyNiwxOCBAQAogI2lmbmRlZiBCeVZhbEluZm9faAogI2RlZmluZSBC
eVZhbEluZm9faAogCi0jaWYgRU5BQkxFKEpJVCkKLQogI2luY2x1ZGUgIkNsYXNzSW5mby5oIgog
I2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5oIgorI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNs
dWRlICJJbmRleGluZ1R5cGUuaCIKICNpbmNsdWRlICJKSVRTdHViUm91dGluZS5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZVN0dWJJbmZvLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCisjaWYgRU5BQkxFKEpJVCkKKwogZW51bSBKSVRBcnJheU1vZGUgewogICAg
IEpJVEludDMyLAogICAgIEpJVERvdWJsZSwKQEAgLTIwMiwyMyArMjA0LDI4IEBAIGlubGluZSBK
SVRBcnJheU1vZGUgaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKFN0cnVjdHVyZSogc3RydWN0dXJl
KQogc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgQnlWYWxJbmZvKCkgeyB9CiAgICAgCi0gICAgQnlW
YWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1
bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmUsIGlu
dDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5
dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25K
dW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVK
dW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQogICAgICAgICA6IGJ5
dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgLCBub3RJbmRleEp1bXAobm90SW5k
ZXhKdW1wKQogICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1wKQogICAgICAgICAsIGFy
cmF5TW9kZShhcnJheU1vZGUpCiAgICAgICAgICwgYmFkVHlwZUp1bXBUb0RvbmUoYmFkVHlwZUp1
bXBUb0RvbmUpCiAgICAgICAgICwgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgocmV0dXJuQWRkcmVz
c1RvU2xvd1BhdGgpCiAgICAgICAgICwgc2xvd1BhdGhDb3VudCgwKQorICAgICAgICAsIHN0dWJJ
bmZvKG51bGxwdHIpCiAgICAgewogICAgIH0KLSAgICAKKwogICAgIHVuc2lnbmVkIGJ5dGVjb2Rl
SW5kZXg7CisgICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXA7CiAgICAgQ29kZUxvY2F0
aW9uSnVtcCBiYWRUeXBlSnVtcDsKICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOyAvLyBUaGUg
YXJyYXkgbW9kZSB0aGF0IHdhcyBiYWtlZCBpbnRvIHRoZSBpbmxpbmUgSklUIGNvZGUuCiAgICAg
aW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZTsKICAgICBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Ns
b3dQYXRoOwogICAgIHVuc2lnbmVkIHNsb3dQYXRoQ291bnQ7CiAgICAgUmVmUHRyPEpJVFN0dWJS
b3V0aW5lPiBzdHViUm91dGluZTsKKyAgICBJZGVudGlmaWVyIGNhY2hlZElkOworICAgIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbzsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbElu
Zm9CeXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5mbykKQEAgLTIyNiw5ICsyMzMsMTUgQEAgaW5s
aW5lIHVuc2lnbmVkIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQog
ICAgIHJldHVybiBpbmZvLT5ieXRlY29kZUluZGV4OwogfQogCi19IC8vIG5hbWVzcGFjZSBKU0MK
K3R5cGVkZWYgSGFzaE1hcDxDb2RlT3JpZ2luLCBCeVZhbEluZm8qLCBDb2RlT3JpZ2luQXBwcm94
aW1hdGVIYXNoPiBCeVZhbEluZm9NYXA7CisKKyNlbHNlIC8vIEVOQUJMRShKSVQpCisKK3R5cGVk
ZWYgSGFzaE1hcDxpbnQsIHZvaWQqPiBCeVZhbEluZm9NYXA7CiAKICNlbmRpZiAvLyBFTkFCTEUo
SklUKQogCit9IC8vIG5hbWVzcGFjZSBKU0MKKwogI2VuZGlmIC8vIEJ5VmFsSW5mb19oCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggOWY5NDg2
ODk3MGJmMDU4MDM2NThjM2NlODVmYThhYWM5YzY5NDUxNy4uMmRmZThkODg5YTljMmI5NTM0NTYw
MDBmMDEyYzc4ZTgxYjI5YmUyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKQEAgLTI2ODMsNiArMjY4MywyMiBAQCB2b2lkIENvZGVCbG9jazo6Z2V0
Q2FsbExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KQogICAgIGdldENhbGxMaW5r
SW5mb01hcChsb2NrZXIsIHJlc3VsdCk7CiB9CiAKK3ZvaWQgQ29kZUJsb2NrOjpnZXRCeVZhbElu
Zm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIEJ5VmFsSW5mb01hcCYgcmVzdWx0KQor
eworI2lmIEVOQUJMRShKSVQpCisgICAgZm9yIChhdXRvJiBieVZhbEluZm8gOiBtX2J5VmFsSW5m
b3MpCisgICAgICAgIHJlc3VsdC5hZGQoQ29kZU9yaWdpbihieVZhbEluZm8uYnl0ZWNvZGVJbmRl
eCksICZieVZhbEluZm8pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKKyNlbmRp
ZgorfQorCit2b2lkIENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKEJ5VmFsSW5mb01hcCYgcmVz
dWx0KQoreworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgZ2V0
QnlWYWxJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsKK30KKwogI2lmIEVOQUJMRShKSVQpCiBTdHJ1
Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRTdHViSW5mbygpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggNmMzYTExNWY3NzVlZWMzYWJkMjIw
MmZlZmE1MjZkZjgwYTNmYzkzOC4uMmEzNGUyZDYyYzliZWU3NDVhZDQ1ZTVmNGJhZWViYzljYjI1
MTI3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAt
MjAwLDYgKzIwMCw5IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25kaXRpb25hbEZpCiAgICAgCiAgICAgdm9pZCBn
ZXRDYWxsTGlua0luZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENhbGxMaW5rSW5m
b01hcCYgcmVzdWx0KTsKICAgICB2b2lkIGdldENhbGxMaW5rSW5mb01hcChDYWxsTGlua0luZm9N
YXAmIHJlc3VsdCk7CisKKyAgICB2b2lkIGdldEJ5VmFsSW5mb01hcChjb25zdCBDb25jdXJyZW50
SklUTG9ja2VyJiwgQnlWYWxJbmZvTWFwJiByZXN1bHQpOworICAgIHZvaWQgZ2V0QnlWYWxJbmZv
TWFwKEJ5VmFsSW5mb01hcCYgcmVzdWx0KTsKICAgICAKICNpZiBFTkFCTEUoSklUKQogICAgIFN0
cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5mbygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9FeGl0S2luZC5jcHAKaW5kZXggNGY3OWYyYzFjNWU0ZTdmZGJlMDQzYTA0OTUyNTEw
MGFkNTBmZjQ3Yi4uMjUyNDMwMGY3MzM3NjllZDliZTAwMWQ3NjYwZjM2ODU5YjZkODkwNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCkBAIC00MCw2ICs0
MCw4IEBAIGNvbnN0IGNoYXIqIGV4aXRLaW5kVG9TdHJpbmcoRXhpdEtpbmQga2luZCkKICAgICAg
ICAgcmV0dXJuICJCYWRUeXBlIjsKICAgICBjYXNlIEJhZENlbGw6CiAgICAgICAgIHJldHVybiAi
QmFkQ2VsbCI7CisgICAgY2FzZSBCYWRJZGVudDoKKyAgICAgICAgcmV0dXJuICJCYWRJZGVudCI7
CiAgICAgY2FzZSBCYWRFeGVjdXRhYmxlOgogICAgICAgICByZXR1cm4gIkJhZEV4ZWN1dGFibGUi
OwogICAgIGNhc2UgQmFkQ2FjaGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0
S2luZC5oCmluZGV4IDU5Y2JiZjVhMmIzODc3OTdlM2VlMmJhODFmMzZlMWM2MWMwM2I5MjMuLjZm
OGM1MTIwMDcwMDUwNWJmOTFkZWY3NDkwMDNlMzAwNWUzZjcxODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCkBAIC0zMiw2ICszMiw3IEBAIGVudW0gRXhpdEtp
bmQgOiB1aW50OF90IHsKICAgICBFeGl0S2luZFVuc2V0LAogICAgIEJhZFR5cGUsIC8vIFdlIGV4
aXRlZCBiZWNhdXNlIGEgdHlwZSBwcmVkaWN0aW9uIHdhcyB3cm9uZy4KICAgICBCYWRDZWxsLCAv
LyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVjdCBhc3N1bXB0aW9uIGFib3V0
IHdoYXQgY2VsbCB3ZSB3b3VsZCBzZWUuIFVzdWFsbHkgdXNlZCBmb3IgZnVuY3Rpb24gY2hlY2tz
LgorICAgIEJhZElkZW50LCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVj
dCBhc3N1bXB0aW9uIGFib3V0IHdoYXQgaWRlbnRpZmllciB3ZSB3b3VsZCBzZWUuIFVzdWFsbHkg
dXNlZCBmb3IgY2FjaGVkIElkIGNoZWNrIGluIGdldF9ieV92YWwuCiAgICAgQmFkRXhlY3V0YWJs
ZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBh
Ym91dCB3aGF0IGV4ZWN1dGFibGUgd2Ugd291bGQgc2VlLgogICAgIEJhZENhY2hlLCAvLyBXZSBl
eGl0ZWQgYmVjYXVzZSBhbiBpbmxpbmUgY2FjaGUgd2FzIHdyb25nLgogICAgIEJhZENvbnN0YW50
Q2FjaGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGEgY2FjaGUgb24gYSB3ZWFrIGNvbnN0YW50ICh1
c3VhbGx5IGEgcHJvdG90eXBlKSB3YXMgd3JvbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5kZXggMWQ5N2M5ZmZkYmE2ZDk0ZTM1Y2I2
N2NlZDNkYmVlYTUwYmM3MTllZS4uODllNTAzNWYzMGEzZjBiNzliYjIwODMyYTEyZDlkNjg0ODg4
Y2YwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRT
dGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcApAQCAtOTgsNyArOTgsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNv
bXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogICAgIEdl
dEJ5SWRTdGF0dXMgcmVzdWx0OwogCiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgcmVzdWx0ID0g
Y29tcHV0ZUZvclN0dWJJbmZvKAorICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mb1dpdGhv
dXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIG1hcC5n
ZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSksIHVpZCwKICAgICAgICAgQ2FsbExpbmtTdGF0
dXM6OmNvbXB1dGVFeGl0U2l0ZURhdGEobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBieXRlY29kZUlu
ZGV4KSk7CiAgICAgCkBAIC0xMTYsNyArMTE2LDIwIEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0
YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBt
CiB9CiAKICNpZiBFTkFCTEUoSklUKQotR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21w
dXRlRm9yU3R1YkluZm8oCitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JT
dHViSW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJv
ZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCit7CisgICAgR2V0QnlJZFN0YXR1cyByZXN1
bHQgPSBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVk
YmFjaygKKyAgICAgICAgbG9ja2VyLCBwcm9maWxlZEJsb2NrLCBzdHViSW5mbywgdWlkLAorICAg
ICAgICBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUV4aXRTaXRlRGF0YShsb2NrZXIsIHByb2ZpbGVk
QmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCkpOworCisgICAgaWYgKCFyZXN1bHQudGFr
ZXNTbG93UGF0aCgpICYmIEdldEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKGxvY2tlciwgcHJvZmls
ZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KSkKKyAgICAgICAgcmV0dXJuIEdldEJ5
SWRTdGF0dXMocmVzdWx0Lm1ha2VzQ2FsbHMoKSA/IEdldEJ5SWRTdGF0dXM6Ok1ha2VzQ2FsbHMg
OiBHZXRCeUlkU3RhdHVzOjpUYWtlc1Nsb3dQYXRoLCB0cnVlKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNpZiBFTkFCTEUoSklUKQorR2V0QnlJZFN0
YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVk
YmFjaygKICAgICBjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayog
cHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkLAogICAgIENhbGxMaW5rU3RhdHVzOjpFeGl0U2l0ZURhdGEgY2FsbEV4aXRTaXRl
RGF0YSkKIHsKQEAgLTI0Miw3ICsyNTUsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6
OmNvbXB1dGVGb3IoCiAgICAgICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0OwogICAgICAgICB7CiAg
ICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihkZmdCbG9jay0+bV9sb2NrKTsK
LSAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbygKKyAgICAgICAgICAgIHJl
c3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAg
ICAgICAgICAgIGxvY2tlciwgZGZnQmxvY2ssIGRmZ01hcC5nZXQoY29kZU9yaWdpbiksIHVpZCwg
ZXhpdFNpdGVEYXRhKTsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCmluZGV4IDMyMzcyY2RkZjVlMjViMGYzODhl
NmNmZWRjNDY2MjBiMmQzOGQyZDAuLmQ3ZjBhZTQ5NmNiYTJmMzBmZGNkMTI4ODZiMTVmYjNiNDgy
OGY5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlk
U3RhdHVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuaApAQCAtNzEsNyArNzEsMTEgQEAgY2xhc3MgR2V0QnlJZFN0YXR1cyB7CiAgICAgc3RhdGlj
IEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihjb25zdCBTdHJ1Y3R1cmVTZXQmLCBVbmlxdWVkU3Ry
aW5nSW1wbCogdWlkKTsKICAgICAKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9y
KENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9N
YXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01hcCYgZGZnTWFwLCBDb2RlT3JpZ2luLCBVbmlxdWVk
U3RyaW5nSW1wbCogdWlkKTsKLSAgICAKKworI2lmIEVOQUJMRShKSVQpCisgICAgc3RhdGljIEdl
dEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
LCBDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiwgQ29kZU9yaWdp
biwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCk7CisjZW5kaWYKKwogICAgIFN0YXRlIHN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlICE9IE5vSW5mb3JtYXRpb247IH0KQEAgLTk1LDcgKzk5LDcgQEAgY2xh
c3MgR2V0QnlJZFN0YXR1cyB7CiAgICAgc3RhdGljIGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29u
Y3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpOwog
I2VuZGlmCiAjaWYgRU5BQkxFKEpJVCkKLSAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRl
Rm9yU3R1YkluZm8oCisgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZv
V2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2Nr
ZXImLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiwKICAgICAg
ICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgQ2FsbExpbmtTdGF0dXM6OkV4aXRTaXRlRGF0YSk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCAzNzM0Yzc2ZDFlZTg3YTg0YTBlNjZkNTU2
NzRkMTBiMmFkMmFhMDU0Li4yMjkwODdkY2M0MzY0Mzk3OTU0ODBlM2Q1YzEyOTYwM2ExNmMxYjcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCkBAIC0yMTYzLDYgKzIxNjMsMzIgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBDaGVja0lkZW50
OiB7CisgICAgICAgIEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9kZShub2RlLT5jaGlsZDEo
KSk7CisgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7
CisgICAgICAgIEFTU0VSVCh1aWQtPmlzU3ltYm9sKCkgPyAhKHZhbHVlLm1fdHlwZSAmIH5TcGVj
U3ltYm9sKSA6ICEodmFsdWUubV90eXBlICYgflNwZWNTdHJpbmdJZGVudCkpOyAvLyBFZGdlIGZp
bHRlcmluZyBzaG91bGQgaGF2ZSBhbHJlYWR5IGVuc3VyZWQgdGhpcy4KKworICAgICAgICBKU1Zh
bHVlIGNoaWxkQ29uc3RhbnQgPSB2YWx1ZS52YWx1ZSgpOworICAgICAgICBpZiAoY2hpbGRDb25z
dGFudCkgeworICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgeworICAgICAgICAgICAg
ICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpOworICAgICAgICAgICAgICAgIGlm
IChhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJpdmF0ZU5hbWUoKS51aWQoKSA9PSB1aWQpIHsK
KyAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoY2hpbGRDb25zdGFudC5pc1N0cmluZygp
KTsKKyAgICAgICAgICAgICAgICBpZiAoYXNTdHJpbmcoY2hpbGRDb25zdGFudCktPnRyeUdldFZh
bHVlSW1wbCgpID09IHVpZCkgeworICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5k
Q29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaWx0ZXIodmFsdWUs
IHVpZC0+aXNTeW1ib2woKSA/IFNwZWNTeW1ib2wgOiBTcGVjU3RyaW5nSWRlbnQpOworICAgICAg
ICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6IHsKICAgICAgICAgSlNW
YWx1ZSBsZWZ0ID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgSlNW
YWx1ZSByaWdodCA9IGZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDU2NDIyYjE4
YTI0NjUwODZmODA2OTQyODBkYTM2NzYwMDJlNmM1ZTQuLjA3NjgxMmI2MWI5YTViN2VmMjQ5NTI1
ZTU1YWRhZDY5M2RiY2U5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC05NjksNiArOTY5LDcgQEAgY2xhc3MgQnl0ZUNvZGVQYXJz
ZXIgewogICAgICAgICAKICAgICAgICAgQ2FsbExpbmtJbmZvTWFwIG1fY2FsbExpbmtJbmZvczsK
ICAgICAgICAgU3R1YkluZm9NYXAgbV9zdHViSW5mb3M7CisgICAgICAgIEJ5VmFsSW5mb01hcCBt
X2J5VmFsSW5mb3M7CiAgICAgICAgIAogICAgICAgICAvLyBEaWQgd2Ugc2VlIGFueSByZXR1cm5z
PyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgKHVuY29tbW9uIGJ1dCBuZWNlc3NhcnkpCiAgICAgICAg
IC8vIGNhc2Ugd2hlcmUgYSBwcm9jZWR1cmUgdGhhdCBkb2VzIG5vdCByZXR1cm4gd2FzIGlubGlu
ZWQuCkBAIC0zMzk3LDEyICszMzk4LDM3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxv
Y2sodW5zaWduZWQgbGltaXQpCiAKICAgICAgICAgY2FzZSBvcF9nZXRfYnlfdmFsOiB7CiAgICAg
ICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbldpdGhvdXRP
U1JFeGl0KCk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChW
aXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwotICAgICAg
ICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFkKTsKICAgICAgICAgICAgIE5vZGUqIHBy
b3BlcnR5ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kKSk7Ci0gICAgICAgICAgICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWws
IE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHBy
b3BlcnR5KTsKLSAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCksIGdldEJ5VmFsKTsKKyAgICAgICAgICAgIGJvb2wgY29tcGlsZWRB
c0dldEJ5SWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDb25jdXJy
ZW50SklUTG9ja2VyIGxvY2tlcihtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPm1f
bG9jayk7CisgICAgICAgICAgICAgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2lubGluZVN0
YWNrVG9wLT5tX2J5VmFsSW5mb3MuZ2V0KENvZGVPcmlnaW4oY3VycmVudENvZGVPcmlnaW4oKS5i
eXRlY29kZUluZGV4KSk7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdoZW4gdGhlIGJ5dGVj
b2RlIGlzIG5vdCBjb21waWxlZCBpbiB0aGUgYmFzZWxpbmUgSklULCBieVZhbEluZm8gYmVjb21l
cyBudWxsLgorICAgICAgICAgICAgICAgIC8vIEF0IHRoYXQgdGltZSwgdGhlcmUgaXMgbm8gaW5m
b3JtYXRpb24uCisgICAgICAgICAgICAgICAgaWYgKGJ5VmFsSW5mbyAmJiBieVZhbEluZm8tPnN0
dWJJbmZvKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVkQXNHZXRCeUlkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciA9IG1fZ3JhcGgu
aWRlbnRpZmllcnMoKS5lbnN1cmUoYnlWYWxJbmZvLT5jYWNoZWRJZC5pbXBsKCkpOworICAgICAg
ICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVy
cygpW2lkZW50aWZpZXJOdW1iZXJdOworCisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBQ
b3RlbnRpYWxseSwgd2UgY2FuIGZ1cnRoZXIgb3B0aW1pemUgaGVyZS4gSWYgd2Ugc2F3IHRoZSBl
eGl0IGZvciB0aGlzIENoZWNrSWRlbnQsCisgICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IHRh
a2UgdGhlIEdldEJ5SWQgcGF0aCBhbmQgdXNlIHRoZSBnZW5lcmljIEdldEJ5VmFsLgorICAgICAg
ICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrSWRlbnQsIE9wSW5mbyh1aWQpLCBwcm9wZXJ0
eSk7CisKKyAgICAgICAgICAgICAgICAgICAgR2V0QnlJZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0g
R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKAorICAgICAgICAgICAgICAgICAgICAg
ICAgbG9ja2VyLCBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssCisgICAgICAgICAg
ICAgICAgICAgICAgICBieVZhbEluZm8tPnN0dWJJbmZvLCBjdXJyZW50Q29kZU9yaWdpbigpLCB1
aWQpOworCisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUdldEJ5SWQoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlvbiwgYmFzZSwgaWRlbnRpZmllck51bWJlciwgZ2V0
QnlJZFN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBpZiAoIWNvbXBpbGVkQXNHZXRCeUlkKSB7CisgICAgICAgICAgICAgICAgQXJyYXlNb2Rl
IGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVBy
b2ZpbGUsIEFycmF5OjpSZWFkKTsKKyAgICAgICAgICAgICAgICBOb2RlKiBnZXRCeVZhbCA9IGFk
ZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBPcEluZm8ocHJl
ZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKKyAgICAgICAgICAgICAgICBzZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBnZXRCeVZhbCk7CisgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dldF9ieV92YWwpOwogICAg
ICAgICB9CkBAIC00MzA1LDYgKzQzMzEsNyBAQCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tF
bnRyeTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAgICAgaWYgKG1fcHJvZmlsZWRCbG9jay0+aGFz
QmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewogICAgICAgICAgICAgbV9wcm9maWxlZEJsb2NrLT5n
ZXRTdHViSW5mb01hcChsb2NrZXIsIG1fc3R1YkluZm9zKTsKICAgICAgICAgICAgIG1fcHJvZmls
ZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwgbV9jYWxsTGlua0luZm9zKTsKKyAg
ICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0QnlWYWxJbmZvTWFwKGxvY2tlciwgbV9ieVZh
bEluZm9zKTsKICAgICAgICAgfQogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMjk2NzQ5ZGMzMWIyM2M4OTk4NDk0YjU2ZWYxNDMwODY0
YjEyN2VjNi4uNDZmNWZlNDhkMjVjMjdkZDMxOTZjNTgxMjlkYmU1ODU3ZmJkN2UyOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTI2OCw2ICsyNjgsMTAg
QEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1
bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKFB1cmVWYWx1ZShDaGVja05v
dEVtcHR5LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEo
KSkpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBDaGVja0lkZW50OgorICAgICAgICBk
ZWYoUHVyZVZhbHVlKENoZWNrSWRlbnQsIEFkamFjZW5jeUxpc3QoQWRqYWNlbmN5TGlzdDo6Rml4
ZWQsIG5vZGUtPmNoaWxkMSgpKSwgbm9kZS0+dWlkT3BlcmFuZCgpKSk7CisgICAgICAgIHJldHVy
bjsKKwogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICAgICAgZGVmKFB1cmVW
YWx1ZShub2RlLCBub2RlLT5zdG9yYWdlUG9pbnRlcigpKSk7CiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHAKaW5kZXggYmE0YzAzNTQ5NDY0OTJmNTlmZGZiZDVhNmY2MWE1YTY3ZDI1MDMyMC4uM2Q4
NWNhYWJkNjE1NzNmZGQ1NDlkNWZlNzViYzY0ZjNlNTY0ZjFlNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTIw
OCw2ICsyMDgsMzMgQEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2Ug
ewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBj
YXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
ID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAgICAgIEpTVmFsdWUgY2hpbGRDb25z
dGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICBjb25zdCBVbmlxdWVkU3RyaW5nSW1wbCogY29uc3RhbnRVaWQgPSBudWxscHRyOwor
ICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGls
ZENvbnN0YW50LmlzU3ltYm9sKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rh
bnRVaWQgPSBhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJpdmF0ZU5hbWUoKS51aWQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChj
aGlsZENvbnN0YW50LmlzU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBTaW5jZSB3ZSBhbHJlYWR5IGZpbHRlcmVkIHRoZSB2YWx1ZSB3aXRoIFN0cmluZ0lkZW50VXNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBoZWxkIGltcGwgaXMgYWx3YXlz
IGF0b21pYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uc3QgYXV0byogaW1w
bCA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUltcGwoKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaW1wbC0+aXNBdG9taWMoKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50VWlkID0gc3RhdGljX2Nhc3Q8Y29u
c3QgVW5pcXVlZFN0cmluZ0ltcGwqPihpbXBsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoY29uc3RhbnRVaWQgPT0gdWlk
KSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlbW92ZSgpOworICAgICAgICAgICAgICAg
ICAgICBlbGltaW5hdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGNhc2UgQ2hlY2tJbkJvdW5k
czogewogICAgICAgICAgICAgICAgIEpTVmFsdWUgbGVmdCA9IG1fc3RhdGUuZm9yTm9kZShub2Rl
LT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0gbV9z
dGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDA4ZmZiMmE5MTI5Mzg3MjEzMTFjYWQyNzc0Njc2MWEy
MDY1M2FhNWYuLmU0NzBiOGRkYWI5OTQzOGZkODkwMzUyZTQ1ZTA5MTAyOWYxYTYyN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTEwNyw2ICsxMDcsNyBAQCBi
b29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBWYXJJbmplY3Rp
b25XYXRjaHBvaW50OgogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0
eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBFeGVjOgogICAgIGNhc2Ug
UmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYzQ0MjMxMDE2MzI2NTdkM2U4M2Y5NzFlNjZh
ODNmNjI1MDU3MTUyNC4uZDZhOTc5MGIxM2NlMDA2MmQ5NzgxMTQwZWRjZTIyMTUyZTQwMGI4NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMDEy
LDYgKzEwMTIsMTUgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAg
ICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDaGVja0lkZW50OiB7CisgICAgICAgICAgICBV
bmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAg
aWYgKHVpZC0+aXNTeW1ib2woKSkKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFN5bWJvbFVzZT4o
bm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZpeEVk
Z2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheWlmeToKICAgICAgICAg
Y2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOiB7CkBAIC0xNzYwLDYgKzE3NjksNyBAQCBjbGFzcyBG
aXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBGdW5jdGlvblVzZToKICAg
ICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CisgICAg
ICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAg
ICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgIGlmIChhbHdheXNV
bmJveFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRl
eCAyOGNhYjA1MWU1MzA5ZTM2ODg2OTRjYmJjNDY1Mzk2NjkyZGU4MDlhLi44M2ZjZjVjMTAxZTBj
N2M3N2E5ZWQyMDk1ZDQ1NWRhNjljNGU2YWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaApAQCAtMTMyOCw2ICsxMzI4LDE3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsKICAgICB9CiAKKyAgICBib29sIGhh
c1VpZE9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tJZGVudDsK
KyAgICB9CisKKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkT3BlcmFuZCgpCisgICAgeworICAg
ICAgICBBU1NFUlQoaGFzVWlkT3BlcmFuZCgpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7CisgICAgfQorCiAgICAgYm9vbCBo
YXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDYyZTdjYTk4YTUyMTEyZDgyZDBlYjZm
MGQxNzI4YmVhZjRiOWUxMzEuLmU5YmY3MjcwNGIxN2FhNjg2NzllOWJiZWEwZjRmMmFkY2VmOTYz
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTIwOSw2ICsy
MDksNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tO
b3RFbXB0eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQmFkQ2VsbCwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJh
dGUpIFwKKyAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAog
ICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5IG11dGF0aW9uLiAqL1wKICAgICBtYWNybyhB
cnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKaW5kZXggNzZhZjZhMmYzZTQ1MmIwZjExN2FiYzNhNmJiNWRkZDJmYWFiMTk4YS4u
MzZmMmRmN2M3NWM1MGNhZmQwNmVjOWMyNzg1MWVlYTlmMTBmZmE5OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKQEAgLTY0OSw2ICs2NDksNyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAg
ICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgICAgICBjYXNlIENoZWNrTm90RW1wdHk6CisgICAgICAg
IGNhc2UgQ2hlY2tJZGVudDoKICAgICAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgICAgIGNh
c2UgUHV0U3RydWN0dXJlOgogICAgICAgICBjYXNlIFZhckluamVjdGlvbldhdGNocG9pbnQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDBjMGEy
Nzc2MDUwZWYxYzYzOGMyMGQ4OGNmZWZlMzIzYzczYTU5MTQuLmIyZDA3ZDU1ZTUzNjI2ODQ1YjVk
M2Y1YzlmZWVhNGU3YmQ4NGRkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdl
IHsKICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBjYXNlIFN0cmluZ0lk
ZW50VXNlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKKyAgICAgICAgY2FzZSBTeW1ib2xVc2U6
CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFN0cmluZ09yU3Ry
aW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE5vdFN0cmluZ1ZhclVzZToKQEAgLTE4OCw2ICsx
ODksNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVj
a0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoK
ICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdFeHBUZXN0OgogICAgIGNhc2UgQ29t
cGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCmluZGV4IGYzZjhhZjdhNTJkNTBmOWEyZTcxYzRmOTAxOTk4NDdiZjA1MDBkNWUuLjA1
MzczNjM0YmRlMTFkNjY0NjE5MTNhMjBjNWE1YmVhOTY4ZmE0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC00NTc2LDYgKzQ1NzYs
MzEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5v
ZGUpCiAgICAgfSB9CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0lkZW50
KE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CisgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9w
ZXJhbmQoKTsKKyAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgIHNwZWN1bGF0ZVN5
bWJvbChub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7CisgICAgICAgIHNwZWN1bGF0aW9u
Q2hlY2soCisgICAgICAgICAgICBCYWRJZGVudCwgSlNWYWx1ZVNvdXJjZSgpLCBudWxscHRyLAor
ICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgIEpJVENvbXBpbGVy
OjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhvcGVyYW5k
LmdwcigpLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSksCisgICAgICAgICAgICAgICAg
VHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3BlY3VsYXRlU3Ry
aW5nKG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKKyAgICAgICAgc3BlY3VsYXRlU3Ry
aW5nSWRlbnQobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOworICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKAorICAgICAgICAgICAgQmFkSWRlbnQsIEpTVmFsdWVTb3VyY2UoKSwgbnVsbHB0
ciwKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3Bl
cmFuZC5ncHIoKSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksCisgICAgICAgICAgICAgICAg
VHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfQorICAgIG5vUmVzdWx0KG5vZGUpOworfQorCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb24oTm9kZSogbm9kZSkKIHsKICAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzY29wZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC01
NzMxLDYgKzU3NTYsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90U3RyaW5n
VmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7Cisg
ICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2Us
IFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90U3ltYm9sKGNlbGwpKTsKK30KKwordm9pZCBT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5l
ZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wpKQorICAgICAgICByZXR1cm47CisKKyAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZVN5
bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdl
LCB+U3BlY0NlbGwpKQpAQCAtNTg0Miw2ICs1ODgxLDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAg
IHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTeW1ib2xV
c2U6CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdChlZGdl
KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmgKaW5kZXggYTVjNDQ1NDdkYTY0YmMyYjYzZjA3M2ExNzExZTZhMTE4MDZmNTk1
Yi4uNTQ1ZmYyYTZlYmQxMGVlZjgyYjFmZTdjMjJjY2U5ZjcxN2VkZDE0YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMjE5MSw2ICsyMTkx
LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgY29tcGlsZVNraXBTY29wZShO
b2RlKik7CiAKICAgICB2b2lkIGNvbXBpbGVHZXRBcnJheUxlbmd0aChOb2RlKik7CisKKyAgICB2
b2lkIGNvbXBpbGVDaGVja0lkZW50KE5vZGUqKTsKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1
ZVJlcChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlRG91YmxlUmVwKE5vZGUqKTsKQEAgLTI0MDYs
NiArMjQwOCw4IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIHNwZWN1bGF0ZVN0
cmluZ09iamVjdChFZGdlLCBHUFJSZWcpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT2JqZWN0
KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JTdHJpbmdPYmplY3QoRWRnZSk7Cisg
ICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSwgR1BSUmVnIGNlbGwpOworICAgIHZvaWQgc3Bl
Y3VsYXRlU3ltYm9sKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTm90Q2VsbChFZGdlKTsKICAg
ICB2b2lkIHNwZWN1bGF0ZU90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTWlzYyhFZGdl
LCBKU1ZhbHVlUmVncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA1MDQyOTA1YjYyYjUyNmM5ZWRhZDNmZmJiNTY3
YzQ2ZjY3ZjgwZWFlLi4xMmFiOGQwODVkMDcwNTEwZjc2ZmQ0ZWU3MjU0Zjg4ZTMzMjJiN2M5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKQEAgLTM4MjAsNiArMzgyMCwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgQ2hlY2tJ
ZGVudDoKKyAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQobm9kZSk7CisgICAgICAgIGJyZWFrOwor
CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGZ1bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJl
c3VsdCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNzcwYmRhNThjYWI1MDIzYTFmYTBj
MzhmNGM3YTAzMDhkNDA4MGEzMC4uMTNjN2M4N2Q4MDZmN2E3YTg2NzMwZjA3OWFkODgzNDU0MjZj
N2ZjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCkBAIC0zODUwLDYgKzM4NTAsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNr
SWRlbnQ6CisgICAgICAgIGNvbXBpbGVDaGVja0lkZW50KG5vZGUpOworICAgICAgICBicmVhazsK
KwogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1VzZUtpbmQuY3BwCmluZGV4IGVmYTEwNGYzZDA3MDAwYjdkN2JjNDczYmNkZjIwNmQxMDUzZmM5
YjEuLjkzNmVmNTU0YWYyNGUwYjY0ZmRmNDI4ZjE2M2FlOGQ3ODhlOThkOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtOTcsNiArOTcsOSBAQCB2b2lkIHBy
aW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2Ug
S25vd25TdHJpbmdVc2U6CiAgICAgICAgIG91dC5wcmludCgiS25vd25TdHJpbmciKTsKICAgICAg
ICAgcmV0dXJuOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICBvdXQucHJpbnQoIlN5bWJv
bCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAg
IG91dC5wcmludCgiU3RyaW5nT2JqZWN0Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggZWJmOTlkYWU2MDBjODgyNWQyMmNiYWM2Mzgy
MmQxNWI1NTYwMDM1YS4uMjg5Yjc4M2U0MWJiMzYxMjkxYzgzYzhmYWQ3YjA4YTU3OGUwYTZmMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTU3LDYgKzU3LDcgQEAg
ZW51bSBVc2VLaW5kIHsKICAgICBTdHJpbmdJZGVudFVzZSwKICAgICBTdHJpbmdVc2UsCiAgICAg
S25vd25TdHJpbmdVc2UsCisgICAgU3ltYm9sVXNlLAogICAgIFN0cmluZ09iamVjdFVzZSwKICAg
ICBTdHJpbmdPclN0cmluZ09iamVjdFVzZSwKICAgICBOb3RTdHJpbmdWYXJVc2UsCkBAIC0xMTcs
NiArMTE4LDggQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1
c2VLaW5kKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAg
ICAgICAgIHJldHVybiBTcGVjU3RyaW5nOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICBy
ZXR1cm4gU3BlY1N5bWJvbDsKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0
dXJuIFNwZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToK
QEAgLTE5Niw2ICsxOTksNyBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAg
IGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgY2FzZSBLbm93
blN0cmluZ1VzZToKKyAgICBjYXNlIFN5bWJvbFVzZToKICAgICBjYXNlIFN0cmluZ09iamVjdFVz
ZToKICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5LmgKaW5kZXggOTEyNzU0ZGZjNDAxNTJiMGVkMjQ4MzZhYzc1YjhmOTY5ODQzOTli
Yi4uNTgxZjRjYmQ5YTc2OGI5YWIyYTgzOTIxY2YyNGQzNTI0YmM4NTcxOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgK
QEAgLTg3LDcgKzg3LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1h
Y3JvKFN0cnVjdHVyZV9jbGFzc0luZm8sIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpIFwK
ICAgICBtYWNybyhTdHJ1Y3R1cmVfZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU6Omdsb2JhbE9iamVj
dE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX3Byb3RvdHlwZSwgU3RydWN0dXJlOjpw
cm90b3R5cGVPZmZzZXQoKSkgXAotICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3Ry
dWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKQorICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1
cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSBcCisgICAgbWFjcm8oU3ltYm9s
X3ByaXZhdGVOYW1lLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSkKIAogI2RlZmluZSBG
T1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhEaXJlY3RB
cmd1bWVudHNfc3RvcmFnZSwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCksIHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcAppbmRleCA2MjcyOGM3NDZlZjkxZDc0Yjc4MjliYjNmOWE0NGM2ZDdmNjFk
N2IzLi5iNDkzZjMwMjdlODJjZmNjZTljM2NjZjQ4MmMxNTU4NjFkNjhiOTQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMTgsNiArMTE4
LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05v
dEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFN0cmluZ0NoYXJDb2RlQXQ6
CiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICBjYXNlIFJlYWxsb2NhdGVQ
cm9wZXJ0eVN0b3JhZ2U6CkBAIC00MTUsNiArNDE2LDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNv
bXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6
CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAg
Y2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIFN5bWJv
bFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNlOgogICAgICAgICAgICAg
ICAgIGNhc2UgTm90Q2VsbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE90aGVyVXNlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCA1
YjU4N2RkMDQ4ODNjYTc5NDY1ZmI0ZTMwZDlkNWVlZDkzMzkxMmZlLi44MmNhYmJhODFiMjE3Y2Nk
YWM2YTNkNDUzZTBjZWJlZmM2MjlhYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNTMyLDYgKzUzMiw5IEBAIGNsYXNzIExvd2Vy
REZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgICAgICAgICBjb21w
aWxlQ2hlY2tCYWRDZWxsKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVj
a0lkZW50OgorICAgICAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQoKTsKKyAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgICAgICAgICBjb21waWxlR2V0
RXhlY3V0YWJsZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMDI5LDYgKzIwMzIsMjAgQEAg
Y2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGUoVERaRmFpbHVyZSwgbm9W
YWx1ZSgpLCBudWxscHRyLCBtX291dC5pc1plcm82NChsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQx
KCkpKSk7CiAgICAgfQogCisgICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudCgpCisgICAgeworICAg
ICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ub2RlLT51aWRPcGVyYW5kKCk7CisgICAg
ICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBs
b3dTeW1ib2wobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1w
bCA9IG1fb3V0LmxvYWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7Cisg
ICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQu
bm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9k
ZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2Fk
UHRyKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CisgICAgICAgICAgICBzcGVjdWxh
dGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1w
bCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAgICB9CisgICAgfQorCiAgICAgdm9p
ZCBjb21waWxlR2V0RXhlY3V0YWJsZSgpCiAgICAgewogICAgICAgICBMVmFsdWUgY2VsbCA9IGxv
d0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC03MDMzLDcgKzcwNTAsMTYgQEAgY2xhc3MgTG93
ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChlZGdlLCBzdHJpbmcs
IHN0cmluZ0ltcGwpOwogICAgICAgICByZXR1cm4gc3RyaW5nSW1wbDsKICAgICB9Ci0gICAgCisK
KyAgICBMVmFsdWUgbG93U3ltYm9sKEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBt
b2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQorICAgIHsKKyAgICAgICAgQVNTRVJU
X1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVz
ZUtpbmQoKSA9PSBTeW1ib2xVc2UpOworCisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxs
KGVkZ2UsIG1vZGUpOworICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSwgcmVzdWx0KTsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBMVmFsdWUgbG93Tm9uTnVsbE9iamVj
dChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJh
bmRTcGVjdWxhdGlvbikKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9
PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gT2JqZWN0VXNl
KTsKQEAgLTc0MzAsNiArNzQ1Niw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAg
Y2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50KGVk
Z2UpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAg
ICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0
KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03NTI2LDcgKzc1NTUsMTYgQEAgY2xhc3Mg
TG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgbV9vdXQubG9hZDMyKGNlbGwsIG1faGVhcHMu
SlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIodm0oKS5z
dHJpbmdTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9Ci0gICAgCisKKyAgICBMVmFsdWUgaXNOb3RT
eW1ib2woTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKKyAg
ICB7CisgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3Bl
Y0NlbGwsIH5TcGVjU3ltYm9sKSkKKyAgICAgICAgICAgIHJldHVybiBwcm92ZW47CisgICAgICAg
IHJldHVybiBtX291dC5ub3RFcXVhbCgKKyAgICAgICAgICAgIG1fb3V0LmxvYWQzMihjZWxsLCBt
X2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMy
KHZtKCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7CisgICAgfQorCiAgICAgTFZhbHVlIGlzQXJy
YXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlNb2RlKQogICAgIHsKICAgICAgICAg
c3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkBAIC03NzQ5LDcgKzc3ODcsMTcgQEAgY2xhc3Mg
TG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCks
IDAsCiAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChzdHJ1Y3R1cmVJRCwgd2Vha1N0cnVjdHVy
ZUlEKHN0cmluZ09iamVjdFN0cnVjdHVyZSkpKTsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIHNw
ZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRM
X1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjU3ltYm9sIHwgflNwZWND
ZWxsLCBpc05vdFN5bWJvbChjZWxsKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVTeW1i
b2woRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIGxvd0Nl
bGwoZWRnZSkpOworICAgIH0KKwogICAgIHZvaWQgc3BlY3VsYXRlTm9uTnVsbE9iamVjdChFZGdl
IGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1
ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjT2JqZWN0LCBpc05vdE9iamVjdChjZWxsKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOWFmMzMyZWI3OGUxODlhZTZhNTNiMjIzNTBhZjc3
YjVmOWQ3ZWIyYi4uYzc4YjRjMTk1NmJmNzA4ZDkxY2MyYTE3MzcxOTFlZjNjMjRlMDI1YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNjYwLDYgKzY2MCwxMCBAQCBDb21waWxhdGlv
blJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkK
IAogICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJPZkJ5VmFsSW5mb3MobV9ieVZhbENvbXBpbGF0
aW9uSW5mby5zaXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvLnNpemUoKTsgKytpKSB7CisgICAgICAgIFBhdGNoYWJsZUp1bXAgcGF0Y2hh
YmxlTm90SW5kZXhKdW1wID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5ub3RJbmRleEp1bXA7
CisgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wID0gQ29kZUxvY2F0aW9uSnVt
cCgpOworICAgICAgICBpZiAoSnVtcChwYXRjaGFibGVOb3RJbmRleEp1bXApLmlzU2V0KCkpCisg
ICAgICAgICAgICBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxv
Y2F0aW9uT2YocGF0Y2hhYmxlTm90SW5kZXhKdW1wKSk7CiAgICAgICAgIENvZGVMb2NhdGlvbkp1
bXAgYmFkVHlwZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2Yo
bV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5iYWRUeXBlSnVtcCkpOwogICAgICAgICBDb2RlTG9j
YXRpb25MYWJlbCBkb25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29t
cGlsYXRpb25JbmZvW2ldLmRvbmVUYXJnZXQpOwogICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBz
bG93UGF0aFRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9u
SW5mb1tpXS5zbG93UGF0aFRhcmdldCk7CkBAIC02NjcsNiArNjcxLDcgQEAgQ29tcGlsYXRpb25S
ZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAg
ICAgICAgIAogICAgICAgICBtX2NvZGVCbG9jay0+YnlWYWxJbmZvKGkpID0gQnlWYWxJbmZvKAog
ICAgICAgICAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5ieXRlY29kZUluZGV4LAorICAg
ICAgICAgICAgbm90SW5kZXhKdW1wLAogICAgICAgICAgICAgYmFkVHlwZUp1bXAsCiAgICAgICAg
ICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmFycmF5TW9kZSwKICAgICAgICAgICAgIGRp
ZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihiYWRUeXBlSnVtcCwgZG9uZVRhcmdldCksCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAppbmRleCAxYWRlNjY1ZGY3OTI4MmM2MGMyYTg4NTY4NWZkNTMxN2Q3YTU1
NGQ1Li5kZTI1Yzk4NjkwZTQzYzdhZWQyYTU0ZmE3YmE0ODVhZDgyY2Y2MDliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKQEAgLTE0OSw4ICsxNDksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBz
dHJ1Y3QgQnlWYWxDb21waWxhdGlvbkluZm8gewogICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5m
bygpIHsgfQogICAgICAgICAKLSAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQg
Ynl0ZWNvZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAs
IEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0
KQorICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBN
YWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXAsIE1hY3JvQXNzZW1ibGVy
OjpQYXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBNYWNy
b0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldCkKICAgICAgICAgICAgIDogYnl0ZWNvZGVJbmRl
eChieXRlY29kZUluZGV4KQorICAgICAgICAgICAgLCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1w
KQogICAgICAgICAgICAgLCBiYWRUeXBlSnVtcChiYWRUeXBlSnVtcCkKICAgICAgICAgICAgICwg
YXJyYXlNb2RlKGFycmF5TW9kZSkKICAgICAgICAgICAgICwgZG9uZVRhcmdldChkb25lVGFyZ2V0
KQpAQCAtMTU4LDYgKzE1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAg
IAogICAgICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQ
YXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2Rl
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldDsKQEAgLTIwNCw2ICsy
MDYsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVH
ZXRCeVZhbChieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIGFycmF5TW9kZSk7CiAgICAgICAgIH0K
IAorICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoVk0qIHZt
LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJl
c3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAg
ICAgICB7CisgICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOworICAgICAgICAgICAg
aml0Lm1fYnl0ZWNvZGVPZmZzZXQgPSBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisgICAgICAg
ICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChieVZhbEluZm8sIHJl
dHVybkFkZHJlc3MsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMg
dm9pZCBjb21waWxlUHV0QnlWYWwoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJ
bmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSklUQXJyYXlN
b2RlIGFycmF5TW9kZSkKICAgICAgICAgewogICAgICAgICAgICAgSklUIGppdCh2bSwgY29kZUJs
b2NrKTsKQEAgLTI0Niw2ICsyNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ29tcGls
YXRpb25SZXN1bHQgcHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQpOwogICAgICAg
ICAKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVy
bkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CisgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVH
ZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBjb25zdCBJ
ZGVudGlmaWVyJik7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVQdXRCeVZhbChCeVZhbElu
Zm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwogCiAgICAgICAgIHZvaWQgcHJp
dmF0ZUNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0
ciwgSklUQXJyYXlNb2RlKTsKQEAgLTM3MSw3ICszODEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgSnVtcExpc3QgZW1pdEFycmF5U3RvcmFnZVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0
Y2hhYmxlSnVtcCYgYmFkVHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRJbnRUeXBlZEFycmF5
UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBUeXBlZEFycmF5
VHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRGbG9hdFR5cGVkQXJyYXlQdXRCeVZhbChJbnN0
cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlUeXBlKTsKLSAgICAg
ICAgCisKKyAgICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVk
SWQoSW5zdHJ1Y3Rpb24qLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3QmIGRvbmVDYXNlcywg
SnVtcExpc3QmIHNsb3dDYXNlcyk7CisKICAgICAgICAgZW51bSBGaW5hbE9iamVjdE1vZGUgeyBN
YXlCZUZpbmFsLCBLbm93bk5vdEZpbmFsIH07CiAKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+IEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24sIFQgbGVmdEhhbmRT
aWRlLCBTdHJ1Y3R1cmUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CmluZGV4IDkwYjUzMjE1YWIwNGM3NDMzOGFkYmE4MzYzMDQwYzM4NGRmZmEzMWUuLmRhZjJhZmYz
N2MwMDAyNWY4ODZiZDMxMGM0NDM3ZGMwN2UzNTA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTEwOCw3ICsxMTA4LDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICAKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgCi0gICAgbV9ieVZh
bENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9m
ZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8u
YXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1
bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
aGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCBkMGU3NWNlMWE3ZTU0Njk4MDJjNjEw
NjMzZDJiMzM1NWUyMzU0Zjk5Li40YjQ5MzU0MDkwMTE3ZWU2NjJmZmUzZDlmNjExNjA3ZmI2NzYy
NTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
CkBAIC0xMTA5LDcgKzExMDksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9w
ZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVtaXRTdG9y
ZUJvb2woZHN0LCByZWdUMCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBl
bmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwg
ZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRp
b25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwg
ZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHko
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ojpp
dGVyYXRvciYgaXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCmluZGV4IDk2OTZmY2VkOWQyZjg0NzI3NTliM2Q3M2U2MWVkYzNhNWI0MmM0YWEuLmMxODIy
NjBlZmE1NmFiOTNhYmY0ZTMzMTlmMDM0ODljNjFiOTIyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMTU1NSw3ICsxNTU1LDIzIEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAg
CisKKyAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkgJiYgKHN1YnNjcmlwdC5pc1N5bWJvbCgp
IHx8IHN1YnNjcmlwdC5pc1N0cmluZygpKSkgeworICAgICAgICBjb25zdCBJZGVudGlmaWVyIHBy
b3BlcnR5TmFtZSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGV4ZWMpOworCisgICAgICAgIGlm
ICghc3Vic2NyaXB0LmlzU3RyaW5nKCkgfHwgIXBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgewor
ICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0
ZWNvZGVPZmZzZXQoKTsKKyAgICAgICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7CisgICAg
ICAgICAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRCeVZh
bEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsKKyAgICAgICAgICAgIEFTU0VSVCghYnlWYWxJbmZv
LnN0dWJSb3V0aW5lKTsKKyAgICAgICAgICAgIEpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hl
ZElkKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIo
T1VSX1JFVFVSTl9BRERSRVNTKSwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQorCisgICAgICAg
IFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSk7CisgICAgICAgIGJvb2wgaGFzUmVzdWx0ID0g
YmFzZVZhbHVlLmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGhhc1Jlc3VsdCA/IHNsb3QuZ2V0VmFsdWUoZXhl
YywgcHJvcGVydHlOYW1lKSA6IGpzVW5kZWZpbmVkKCkpOworICAgIH0KKwogICAgIEpTVmFsdWUg
cmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGFycmF5UHJvZmls
ZSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDRlZjA2ZDkyMTNhMmIxZGJmZmJhNGM3YzMzNGQy
ZjZmMWM0NzkxN2UuLmQxMjAzNzM3NWQ4ZjFmODU1OThhYmY3NDlhYzM4MTlmMWViZmZjMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBA
IC0xMDAsOCArMTAwLDE1IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCiAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMSk7Ci0gICAgZW1pdEp1bXBT
bG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CiAKKyAgICBlbWl0SnVtcFNsb3dD
YXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOworCisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8g
aW1wbGVtZW50IHBhdGNoYWJsZUJyYW5jaDY0LgorICAgIEp1bXAgaXNJbmRleCA9IGVtaXRKdW1w
SWZJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKKyAgICBQYXRjaGFibGVKdW1wIG5vdEluZGV4ID0g
cGF0Y2hhYmxlSnVtcCgpOworICAgIGFkZFNsb3dDYXNlKG5vdEluZGV4KTsKKworICAgIGlzSW5k
ZXgubGluayh0aGlzKTsKICAgICAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGluY29ycmVjdCAtIHdl
J3JlIHplcm8tZXh0ZW5kaW5nIGFuIGludDMyLiAgT24gdGhlIGhvdCBwYXRoIHRoaXMgZG9lc24n
dCBtYXR0ZXIuCiAgICAgLy8gV2UgY2hlY2sgdGhlIHZhbHVlIGFzIGlmIGl0IHdhcyBhIHVpbnQz
MiBhZ2FpbnN0IHRoZSBtX3ZlY3Rvckxlbmd0aCAtIHdoaWNoIHdpbGwgYWx3YXlzIGZhaWwgaWYK
ICAgICAvLyBudW1iZXIgd2FzIHNpZ25lZCBzaW5jZSBtX3ZlY3Rvckxlbmd0aCBpcyBhbHdheXMg
bGVzcyB0aGFuIGludG1heCAoc2luY2UgdGhlIHRvdGFsIGFsbG9jYXRpb24KQEAgLTExMCw3ICsx
MTcsNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgLy8gZXh0ZW5kaW5nIHNpbmNlIGl0IG1ha2VzIGl0IGVhc2llciB0
byByZS10YWcgdGhlIHZhbHVlIGluIHRoZSBzbG93IGNhc2UuCiAgICAgemVyb0V4dGVuZDMyVG9Q
dHIocmVnVDEsIHJlZ1QxKTsKIAotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdU
MCwgYmFzZSk7CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdU
MiwgcHJvZmlsZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVNYXNrKSwg
cmVnVDIpOwogCkBAIC0xNTAsNyArMTU2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3Zh
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGUoKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgCi0gICAgbV9i
eVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29k
ZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIG5vdEluZGV4
LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0RG91
YmxlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCkBAIC0xOTUsNiAr
MjAxLDQzIEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0QXJyYXlTdG9yYWdlTG9hZChJbnN0cnVj
dGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCiAgICAgcmV0dXJuIHNsb3dDYXNlczsKIH0K
IAorSklUR2V0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEp1bXBMaXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCit7CisgICAgLy8g
YmFzZTogcmVnVDAKKyAgICAvLyBwcm9wZXJ0eTogcmVnVDEKKyAgICAvLyBzY3JhdGNoOiByZWdU
MworCisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisKKyAg
ICBzbG93Q2FzZXMuYXBwZW5kKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDEpKTsKKyAgICBpZiAo
cHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFu
Y2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURP
ZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRy
KEFkZHJlc3MocmVnVDEsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDMpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5v
dEVxdWFsLCBBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3Zt
LT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1Qx
LCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDMpOworICAgICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDMpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hUZXN0MzIoWmVybywgQWRkcmVzcyhyZWdUMywgU3RyaW5nSW1wbDo6ZmxhZ3NP
ZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAg
ICB9CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1QzLCBUcnVz
dGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJh
dG9yIGdlbigKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNl
dCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdz
KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDApLCBEb250U3BpbGwpOworICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKCp0aGlzKTsKKworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAg
IExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5s
aW5rKHRoaXMpOworCisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwg
b3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMCwgcHJv
cGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJl
Z2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICByZXR1cm4g
Z2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAt
MjAyLDggKzI0NSw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgaW50IHByb3BlcnR5
ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHBy
b2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAgCi0gICAg
bGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93
Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgSnVtcCBub25DZWxs
ID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawog
ICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCAKQEAgLTI5OSw3
ICszNDIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0g
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9i
eXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIFBh
dGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogCiB9CiAKQEAgLTk5OSw2ICsx
MDQyLDM2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyogYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkCiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxp
bmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdl
dEJ5VmFsR2VuZXJpYykpOwogfQogCit2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdp
dGhDYWNoZWRJZChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OworCisgICAgSnVtcExpc3QgZG9uZUNhc2Vz
OworICAgIEp1bXBMaXN0IHNsb3dDYXNlczsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2Vu
ID0gZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKGN1cnJlbnRJbnN0cnVjdGlvbiwgcHJvcGVydHlO
YW1lLCBkb25lQ2FzZXMsIHNsb3dDYXNlcyk7CisKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCpt
X3ZtLCAqdGhpcywgbV9jb2RlQmxvY2spOworICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvd0Nhc2Vz
LCBDb2RlTG9jYXRpb25MYWJlbChNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUZyb21FeGVj
dXRhYmxlQWRkcmVzcyhyZXR1cm5BZGRyZXNzLnZhbHVlKCkpKS5sYWJlbEF0T2Zmc2V0KGJ5VmFs
SW5mby0+cmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpKTsKKyAgICBwYXRjaEJ1ZmZlci5saW5rKGRv
bmVDYXNlcywgYnlWYWxJbmZvLT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+
YmFkVHlwZUp1bXBUb0RvbmUpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNhbGxTaXRlIDogbV9j
YWxscykgeworICAgICAgICBpZiAoY2FsbFNpdGUudG8pCisgICAgICAgICAgICBwYXRjaEJ1ZmZl
ci5saW5rKGNhbGxTaXRlLmZyb20sIEZ1bmN0aW9uUHRyKGNhbGxTaXRlLnRvKSk7CisgICAgfQor
ICAgIGdlbi5maW5hbGl6ZShwYXRjaEJ1ZmZlcik7CisKKyAgICBieVZhbEluZm8tPnN0dWJSb3V0
aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNo
QnVmZmVyLAorICAgICAgICAoIkJhc2VsaW5lIGdldF9ieV92YWwgd2l0aCBjYWNoZWQgcHJvcGVy
dHkgbmFtZSAnJXMnIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCBwcm9wZXJ0eU5hbWUu
aW1wbCgpLT51dGY4KCkuZGF0YSgpLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJl
dHVybkFkZHJlc3MudmFsdWUoKSkpOworICAgIGJ5VmFsSW5mby0+Y2FjaGVkSWQgPSBwcm9wZXJ0
eU5hbWU7CisgICAgYnlWYWxJbmZvLT5zdHViSW5mbyA9IGdlbi5zdHViSW5mbygpOworCisgICAg
UmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKKyAgICByZXBhdGNoQnVm
ZmVyLnJlbGluayhieVZhbEluZm8tPm5vdEluZGV4SnVtcCwgQ29kZUxvY2F0aW9uTGFiZWwoYnlW
YWxJbmZvLT5zdHViUm91dGluZS0+Y29kZSgpLmNvZGUoKSkpOworICAgIHJlcGF0Y2hCdWZmZXIu
cmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVyYXRp
b25HZXRCeVZhbEdlbmVyaWMpKTsKK30KKwogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlW
YWwoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywg
SklUQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uID0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBieVZhbEluZm8t
PmJ5dGVjb2RlSW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCA2MDljYTEzODgyMjdkYjViZGE1MzkyNzUzMDNk
YWRkMmQ4YjFjZWJjLi4xZWE3MWVmZWViNjI2ZWJiM2FmMTFjNTYyZTI0MDJjNjVlNTY1NDY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAKQEAgLTE1Miw4ICsxNTIsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdExvYWQyKGJh
c2UsIHJlZ1QxLCByZWdUMCwgcHJvcGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCi0gICAgYWRk
U2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
SW50MzJUYWcpKSk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1Qx
KTsKKyAgICBQYXRjaGFibGVKdW1wIG5vdEluZGV4ID0gcGF0Y2hhYmxlQnJhbmNoMzIoTm90RXF1
YWwsIHJlZ1QzLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKTsKKyAgICBhZGRTbG93
Q2FzZShub3RJbmRleCk7CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1Qw
LCByZWdUMSwgcHJvZmlsZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVN
YXNrKSwgcmVnVDEpOwogCkBAIC0xOTIsNyArMTkzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0
X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoKTsKICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogICAgIAot
ICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1f
Ynl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBu
b3RJbmRleCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6
ZW1pdENvbnRpZ3VvdXNMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwg
SW5kZXhpbmdUeXBlIGV4cGVjdGVkU2hhcGUpCkBAIC0yMzYsNyArMjM3LDQ0IEBAIEpJVDo6SnVt
cExpc3QgSklUOjplbWl0QXJyYXlTdG9yYWdlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1
bXAmIGJhZFR5cGUpCiAgICAgCiAgICAgcmV0dXJuIHNsb3dDYXNlczsKIH0KLSAgICAKKworSklU
R2V0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEp1
bXBMaXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCit7CisgICAgaW50IGRzdCA9
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisKKyAgICAvLyBiYXNlOiB0YWcocmVn
VDEpLCBwYXlsb2FkKHJlZ1QwKQorICAgIC8vIHByb3BlcnR5OiB0YWcocmVnVDMpLCBwYXlsb2Fk
KHJlZ1QyKQorICAgIC8vIHNjcmF0Y2g6IHJlZ1Q0CisKKyAgICBzbG93Q2FzZXMuYXBwZW5kKGVt
aXRKdW1wSWZOb3RKU0NlbGwocmVnVDMpKTsKKyAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9s
KCkpIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWws
IEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN5bWJv
bFN0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIFN5bWJv
bDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDQpOworICAgIH0gZWxzZSB7CisgICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1Qy
LCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0
KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBKU1N0cmluZzo6b2Zmc2V0T2ZW
YWx1ZSgpKSwgcmVnVDQpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQdHIo
WmVybywgcmVnVDQpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0MzIoWmVy
bywgQWRkcmVzcyhyZWdUNCwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0z
MihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKKyAgICB9CisgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1Q0LCBUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFt
ZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKKyAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVj
aWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCks
IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVyYXRl
RmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisgICAg
TGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgpLmxp
bmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlLCBv
cGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QxLCByZWdU
MCwgcHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xk
UGF0aEJlZ2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICBy
ZXR1cm4gZ2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9y
JiBpdGVyKQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
OwpAQCAtMjQ0LDggKzI4Miw4IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgaW50IHBy
b3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2Zp
bGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAg
Ci0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxp
bmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAg
ICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAKICAgICBKdW1w
IG5vbkNlbGwgPSBqdW1wKCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5
IGNoZWNrCkBAIC0zMTQsNyArMzUyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBs
YWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29t
cGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAg
ICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5
dGVjb2RlT2Zmc2V0LCBQYXRjaGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0K
IAogSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRHZW5lcmljQ29udGlndW91c1B1dEJ5VmFsKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIEluZGV4
aW5nVHlwZSBpbmRleGluZ1NoYXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wu
aAppbmRleCBlNTc5MGQ3ODcyMjZiZWE3NjAyNGM5ZDFkNjZhNjc2MGY2NGRlNWEyLi44M2Y1ZGUy
NDg1MmJjMzc4ZWUwYTc3MDM5ZjQ2MzE4MjVmZGRkYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TeW1ib2wuaApAQCAtNzksNiArNzksOCBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBw
dWJsaWMgSlNDZWxsIHsKICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9i
YWxPYmplY3QqKSBjb25zdDsKICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7
CiAKKyAgICBzdGF0aWMgc2l6ZV90IG9mZnNldE9mUHJpdmF0ZU5hbWUoKSB7IHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoU3ltYm9sLCBtX3ByaXZhdGVOYW1lKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAg
c3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9y
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWNvbnN0cnVjdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjNTg1MTYwMmU5MzRiMzM2NjhhZWQy
Y2ZmNGRkY2I3ODc2ZWUxODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY29uc3RydWN0b3IuanMKQEAg
LTAsMCArMSwyMyBAQAordmFyIHN5bWJvbCA9ICJAQHNwZWNpZXMiOworZnVuY3Rpb24gSGVsbG8o
KSB7Cit9CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShIZWxsbywgc3ltYm9sLCB7CisgICAgZ2V0
OiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KK30pOworCitIZWxs
by5wcm90b3R5cGUuZ2VuZXJhdGUgPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIG5ldyB0aGlz
LmNvbnN0cnVjdG9yW3N5bWJvbF0oKTsKK307CisKK2Z1bmN0aW9uIG9rKCkgeworICAgIHZhciBv
YmplY3QgPSBuZXcgSGVsbG8oKTsKKyAgICBpZiAoIShvYmplY3QuZ2VuZXJhdGUoKSBpbnN0YW5j
ZW9mIEhlbGxvKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgaW5zdGFuY2UiKTsKK30K
K25vSW5saW5lKG9rKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIG9r
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctZXhpdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhYTI2MmQ2
NGE2NjE0OTY0NjY5YWI3NGNiMmYwMWZhNGVkODAyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZXhp
dC5qcwpAQCAtMCwwICsxLDM0IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0
LCBuYW1lKQoreworICAgIHJldHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRCeVZh
bCk7CisKK2Z1bmN0aW9uIGdldFN0cjEoKQoreworICAgIHJldHVybiAiaGVsbG8iOworfQorbm9J
bmxpbmUoZ2V0U3RyMSk7CisKK2Z1bmN0aW9uIGdldFN0cjIoKQoreworICAgIHJldHVybiAiaGVs
bG8iOworfQorbm9JbmxpbmUoZ2V0U3RyMik7CisKK3ZhciBvYmplY3QgPSB7CisgICAgaGVsbG86
IDQyCit9OworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgIHNob3VsZEJlKGdl
dEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7
CitzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIHsgdG9TdHJpbmcoKSB7IHJldHVybiAnaGVsbG8n
OyB9IH0pLCA0Mik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91
bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigp
KSwgNDIpOworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCB7IHRvU3RyaW5nKCkgeyByZXR1cm4g
J2hlbGxvJzsgfSB9KSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0
ZWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTgxM2E3ZTE0MGQzODY2NTNmYmMzNTRjNTBlYWQ1OGUxMjE5ZDNh
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanMKQEAgLTAsMCArMSwzMyBAQAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKK3sKKyAgICByZXR1cm4gb2Jq
ZWN0W25hbWVdOworfQorbm9JbmxpbmUoZ2V0QnlWYWwpOworCit2YXIgdmFsdWUgPSAnbG8nOwor
CitmdW5jdGlvbiBnZXRTdHIxKCkKK3sKKyAgICByZXR1cm4gImhlbCIgKyB2YWx1ZTsKK30KK25v
SW5saW5lKGdldFN0cjEpOworCitmdW5jdGlvbiBnZXRTdHIyKCkKK3sKKyAgICByZXR1cm4gImhl
bGxvIjsKK30KK25vSW5saW5lKGdldFN0cjIpOworCit2YXIgb2JqZWN0ID0geworICAgIGhlbGxv
OiA0MiwKKyAgICB3b3JsZDogNTAKK307CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsr
aSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgp
IDogZ2V0U3RyMigpKSwgNDIpOworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCAnd29ybGQnKSwg
NTApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWdldHRlci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU4
ZWMwYTg2ZGI5NTRkODQ3ZjZiOGY3NjJkMjk2YmVkY2ViMWJmNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1nZXR0ZXIuanMKQEAgLTAsMCArMSwxNiBAQAorCit2YXIgb2JqZWN0ID0geworICAgIGdldCBo
ZWxsbygpIHsKKyAgICAgICAgcmV0dXJuIDQyOworICAgIH0KK307CisKK2Z1bmN0aW9uIG9rKCkg
eworICAgIHZhciB2YWx1ZSA9ICdoZWxsbyc7CisgICAgaWYgKG9iamVjdFt2YWx1ZV0gKyAyMCAh
PT0gNjIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigpOworfQorbm9JbmxpbmUob2spOworCitm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgb2soKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42ZGIzM2Q5YmVjYjE0YWQyMDViODc1NWJkZmUxZjk1YmIzOTdi
YjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitm
dW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1l
XTsKK30KK25vSW5saW5lKGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3RyMSgpCit7CisgICAg
cmV0dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIxKTsKKworZnVuY3Rpb24gZ2V0U3Ry
MigpCit7CisgICAgcmV0dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIyKTsKKwordmFy
IG9iamVjdCA9IHsKKyAgICBoZWxsbzogNDIsCisgICAgd29ybGQ6IDUwCit9OworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBp
ICUgMiA9PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5
VmFsKG9iamVjdCwgJ3dvcmxkJyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1jb25zdHJ1Y3Rvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODk1YzI2NDUxZDI1N2E5N2EyZGIzZWM1ODky
OWI5ZDU1MzQzMjUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzCkBAIC0wLDAg
KzEsMjMgQEAKK3ZhciBzeW1ib2wgPSBTeW1ib2woKTsKK2Z1bmN0aW9uIEhlbGxvKCkgeworfQor
CitPYmplY3QuZGVmaW5lUHJvcGVydHkoSGVsbG8sIHN5bWJvbCwgeworICAgIGdldDogZnVuY3Rp
b24gKCkgeworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9Cit9KTsKKworSGVsbG8ucHJvdG90
eXBlLmdlbmVyYXRlID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiBuZXcgdGhpcy5jb25zdHJ1
Y3RvcltzeW1ib2xdKCk7Cit9OworCitmdW5jdGlvbiBvaygpIHsKKyAgICB2YXIgb2JqZWN0ID0g
bmV3IEhlbGxvKCk7CisgICAgaWYgKCEob2JqZWN0LmdlbmVyYXRlKCkgaW5zdGFuY2VvZiBIZWxs
bykpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGluc3RhbmNlIik7Cit9Citub0lubGlu
ZShvayk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWV4aXQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtZXhpdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGNkY2I2NzZkOTRlNDZi
NmMxMDFhOGE3N2QwMGI2NjQ0YThjMTBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanMKQEAg
LTAsMCArMSwzOCBAQAordmFyIHN5bWJvbDEgPSBTeW1ib2woKTsKK3ZhciBzeW1ib2wyID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh7IFtzeW1ib2wxXTogNDIgfSlbMF07CisKK2Z1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBl
Y3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwor
fQorCitmdW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVj
dFtuYW1lXTsKK30KK25vSW5saW5lKGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3ltMSgpCit7
CisgICAgcmV0dXJuIHN5bWJvbDE7Cit9Citub0lubGluZShnZXRTeW0xKTsKKworZnVuY3Rpb24g
Z2V0U3ltMigpCit7CisgICAgcmV0dXJuIHN5bWJvbDI7Cit9Citub0lubGluZShnZXRTeW0yKTsK
KwordmFyIG9iamVjdCA9IHsKKyAgICBbc3ltYm9sMV06IDQyLAorICAgIGhlbGxvOiA1MAorfTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChv
YmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOworc2hvdWxk
QmUoZ2V0QnlWYWwob2JqZWN0LCAnaGVsbG8nKSwgNTApOworCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/
IGdldFN5bTEoKSA6IGdldFN5bTIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwg
J2hlbGxvJyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1nZXR0ZXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVyLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcwMzVlNGIwMzhhNDY1ZDQzZWJjMjhlNWNmNDgxOWI1OWU2NjY4N2QKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtZ2V0dGVyLmpzCkBAIC0wLDAgKzEsMjMgQEAKKwordmFyIG9iamVjdCA9IHsK
KyAgICBnZXQgaGVsbG8oKSB7CisgICAgICAgIHJldHVybiA0MjsKKyAgICB9Cit9OworCit2YXIg
c3ltYm9sID0gU3ltYm9sKCk7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIHN5bWJv
bCwgeworICAgIGdldDogZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gNDI7CisgICAgfQor
fSk7CisKK2Z1bmN0aW9uIG9rKCkgeworICAgIGlmIChvYmplY3Rbc3ltYm9sXSArIDIwICE9PSA2
MikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Cit9Citub0lubGluZShvayk7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJjODM0ZWIyNmJlMzI2ZTFjOTE4NDkxZjBlMTliN2ZhMzhiYjA5MDMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wuanMKQEAgLTAsMCArMSwzMyBAQAordmFyIHN5bWJvbDEgPSBT
eW1ib2woKTsKK3ZhciBzeW1ib2wyID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh7IFtz
eW1ib2wxXTogNDIgfSlbMF07CisKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBnZXRCeVZhbChvYmplY3Qs
IG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30KK25vSW5saW5lKGdldEJ5VmFs
KTsKKworZnVuY3Rpb24gZ2V0U3ltMSgpCit7CisgICAgcmV0dXJuIHN5bWJvbDE7Cit9Citub0lu
bGluZShnZXRTeW0xKTsKKworZnVuY3Rpb24gZ2V0U3ltMigpCit7CisgICAgcmV0dXJuIHN5bWJv
bDI7Cit9Citub0lubGluZShnZXRTeW0yKTsKKwordmFyIG9iamVjdCA9IHsKKyAgICBbc3ltYm9s
MV06IDQyLAorICAgIGhlbGxvOiA1MAorfTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsg
KytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0x
KCkgOiBnZXRTeW0yKCkpLCA0Mik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2I2ZTdhNGJhOGFiYjI5NWI0ZDUxMzEwNTI0
MWNlZmMzZDgxMGZkZi4uYTY2MWQzN2E0ZDE2NzJkMjBkNGM2MTgyM2I4MDhkNjBjNjQ1YmVhOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE1LTA4LTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIEludHJvZHVjZSBnZXRfYnlfaWQgbGlrZSBJQyBp
bnRvIGdldF9ieV92YWwgd2hlbiB0aGUgZ2l2ZW4gbmFtZSBpcyBTdHJpbmcgb3IgU3ltYm9sCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc0ODAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3ludGhl
dGljIGJlbmNobWFya3MgdGhhdCByZXBsYWNlcyBub3JtYWwgcHJvcGVydHkgbG9hZCB3aXRoIHN5
bWJvbC9zdHJpbmcga2V5ZWQgbG9hZC4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1w
cm90by1vci1zZWxmLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Y2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24uaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNl
bGYtb3ItcHJvdG8uaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZS5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzOiBBZGRlZC4KKyAgICAg
ICAgKEEpOgorICAgICAgICAoQik6CisgICAgICAgIChDKToKKyAgICAgICAgKEQpOgorICAgICAg
ICAoRSk6CisgICAgICAgIChGKToKKyAgICAgICAgKEcpOgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoRm9vKToKKyAgICAg
ICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2Vs
Zi1vci1wcm90by5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAg
ICAgICAgKEZvbyk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKEEpOgorICAg
ICAgICAoQik6CisgICAgICAgIChDKToKKyAgICAgICAgKEQpOgorICAgICAgICAoRSk6CisgICAg
ICAgIChGKToKKyAgICAgICAgKEcpOgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiBqcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmpzOiBBZGRlZC4KKyAgICAgICAg
KGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoRm9vKToKKyAgICAgICAgKiBqcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKEZvbyk6
CisKIDIwMTUtMDgtMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IHNjcmlwdCBwYXRocyBpbiB0aGVzZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2NmNDNhZmEwN2QzYzhlMGYxNzg5
MmVlZGE3OTI3ZTIxYjgxOGIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFiMzdjNTAwMDBjMGExZDFlMmYyNjI4NTdmNzliNGVjNDE0N2UwYzgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ODJjNDUwZDk1NWFlOTk2NGVlMjViZmYyYjVmYzBjYjY2
ZjQ1MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5ZWYxNDE1NzU4NGNhNjE2MDY0
Njg3NTk4Y2ZiZDRkYjc5N2ZlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMTZhNjY3Mjk3MDM2YTQ1YzVmMzJiNzAxYzBiYzdlZmIyZmJk
YTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1i
bG9jaworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24g
dGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNmM5NjNhMDEyYjAyY2YzNjE0NDVmNjdjNmVjYmQ4Y2QxOGIwYjJmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWlu
LWZyb20tdHJ5LWJsb2NrLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFp
bi1mcm9tLXRyeS1ibG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlYzBmYzcwZWU3YTI0NTU1ZmIwZmQ4YWJiNmEzZTQ2YTdm
ZDUwNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzZmNThkNDE1N2I1MWJiOTg1MzgyZGM4
MWE2ZDk0OGZiOWRiMDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1s
CkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1w
cm90by1vci1zZWxmLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWY5MmM5MDc5Y2MyZGJkZGFi
ZTRjYjY1M2IzMjNmZmZlNTM5NzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3Rv
LW9yLXNlbGYKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0
aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1wcm90by1vci1zZWxmLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2YWI2MTFi
ZDQ1ZGUzMDQyNmY2YmI1NGJlNjk1MzkwYjczMGEwODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5o
dG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIxYWE1N2VjYWI2YTFhMWE3ODRk
YjVlODg0MmZlMmJhZGI4NWMyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5v
IGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMzc1MWI2NGU4MjJhYjJkZWM0N2FkOWE5ZjQ2NjhlMzc5ZTFmMDc2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAt
MCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYt
b3ItcHJvdG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MjE3
MTM0Zjk4Mjg5MDQzOTU2ODJmODg3MDZkMmM2N2FkODhiNDYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90
by1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctc2VsZi1vci1wcm90bworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uaHRtbCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDA0YTZiOTljNWI1ZTMwNmQ4M2I2ZjI1MzQyM2EwZmY4MTM1OGUwNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1z
ZWxmLW9yLXByb3RvLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9y
LXByb3RvLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTAwYzVkOGI4ZjhjZTI4NTYxYzdiNTEw
YTc4M2Q2NTEyNTNiZGUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQz
OTBlZDk1MmNlZWUyYTIwZWZlYzRkYjEwOTM1M2I3NzNiMjhmYmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA0ODJjNDUwZDk1NWFlOTk2NGVlMjViZmYyYjVmYzBjYjY2ZjQ1
MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUu
aHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5ZWYxNDE1NzU4NGNhNjE2MDY0Njg3
NTk4Y2ZiZDRkYjc5N2ZlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jNzU0YmIwZThlNTY4YzhkMDIwNmU2NDllNTI5NzRiM2Y5ZTQyYTQx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9j
aworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhy
b3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
OTc1Zjk5MjgwZTcyMzM1YzJiNTRkM2Q5M2YwODYxMTgzMTk3NDQ2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZy
b20tdHJ5LWJsb2NrLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1m
cm9tLXRyeS1ibG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQzMTQ5NGE5YjQ1NjJmOWUxNjkwNDc4OTdhYjYwNjM1ZGYxMTQ4
NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
bm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOWJmYWNhN2E1ZTRiNzI4OGVjZWQyNmU4NTM2
MGQ1NmUwNjdjN2ExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCkBA
IC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90
by1vci1zZWxmLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTVkMjYyY2VhNTIwNWNmNWYzY2I2
MzdhNzg4ZGEzMmIwZTNhNmM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9y
LXNlbGYKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9u
IHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1wcm90by1vci1zZWxmLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ODE1Y2UzM2U4
YWM3NzUxMDZkYWIyYzJhN2I0MjYxNGY5MzhjZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1s
CkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ2MDVjMDc2MWMyMDhiZWZkNjI5ZWJk
MjJhNGZkZjlmZTg0OGMzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4
Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1
YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NWNlNDYyNDVlODg2YmUyN2Y1MTA2NmE1MTczYzQ5NTFmMmEyMGQ3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1
YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCww
ICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3It
cHJvdG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NjY5MTA4
YmFjMWNlNmQxZWE4NTA4MDM0NDUzODFjZGM1ZGFmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtc2VsZi1vci1wcm90bworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRtbCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmY1ZjNkNzA0ODFhY2NhYWYwNWEwMDAwNGE1ZmU1Mjk2YTMyZWJkYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxm
LW9yLXByb3RvLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXBy
b3RvLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyNTg5ZjFl
YmI4YzEyZGUxY2EwM2Y4MTIyZmQ0MjI1NDMxMDE3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEs
MTQgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9ICdhJywgbCA9ICdsJzsKKyAgICB2YXIg
byA9IHtbYV06MX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307CisgICAgdmFyIHJlc3Vs
dCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAg
cmVzdWx0IF49IG9bYV07CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAg
ICAgICAgcCA9IHRtcDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAwKQorICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNTk0MDFkN2Y1NzI4NDcx
NGZlN2QzZDVlMDQ1MjExYmQ0N2MxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKQEAgLTAsMCArMSwxNCBAQAorKGZ1bmN0aW9u
KCkgeworICAgIHZhciBhID0gJ2EnLCBiID0gJ2InLCBjID0gJ2MnLCBkID0gJ2QnLCBlID0gJ2Un
LCBmID0gJ2YnLCBnID0gJ2cnLCBoID0gJ2gnLCBpID0gJ2knLCBqID0gJ2onLCBrID0gJ2snLCBs
ID0gJ2wnOworICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwg
W2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcCA9
IHtbYV06MiwgW2JdOjMsIFtjXTo0LCBbZF06NSwgW2VdOjYsIFtmXTo3LCBbZ106OCwgW2hdOjks
IFtpXToxMCwgW2pdOjExLCBba106MTIsIFtsXToxM307CisgICAgdmFyIHJlc3VsdCA9IDA7Cisg
ICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IDEwMDAwMDA7ICsraW5kZXgpIHsKKyAgICAg
ICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIF4gb1tjXSBeIG9bZF0gXiBvW2VdIF4gb1tmXSBeIG9b
Z10gXiBvW2hdIF4gb1tpXSBeIG9bal0gXiBvW2tdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAg
ICAgICAgbyA9IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0g
NjUwMDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanMgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZy
b20tdHJ5LWJsb2NrLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmOTcwZmVlMjRiMGVmNjU1MjkyY2FlZGE0MWM2
YmViMDBlMGQ0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpz
CkBAIC0wLDAgKzEsNDkgQEAKK3ZhciBmID0gJ2YnOworCitmdW5jdGlvbiBBKCkgeyB9CisKK0Eu
cHJvdG90eXBlID0ge1tmXTo0Mn07CisKK2Z1bmN0aW9uIEIoKSB7IH0KKworQi5wcm90b3R5cGUg
PSBuZXcgQSgpOworCitmdW5jdGlvbiBDKCkgeyB9CisKK0MucHJvdG90eXBlID0gbmV3IEIoKTsK
KworZnVuY3Rpb24gRCgpIHsgfQorCitELnByb3RvdHlwZSA9IG5ldyBDKCk7CisKK2Z1bmN0aW9u
IEUoKSB7IH0KKworRS5wcm90b3R5cGUgPSBuZXcgRCgpOworCitmdW5jdGlvbiBGKCkgeyB9CisK
K0YucHJvdG90eXBlID0gbmV3IEUoKTsKKworZnVuY3Rpb24gRygpIHsgfQorCitHLnByb3RvdHlw
ZSA9IG5ldyBGKCk7CisKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdHJ5IHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAg
ICAgICAgICAgcmVzdWx0ICs9IG9bZl07CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICByZXR1cm4gNTI7CisgICAgfQorfQorCit2YXIgcmVzdWx0ID0g
MDsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgcmVzdWx0ICs9IGZvbyhu
ZXcgRygpKTsKKworaWYgKHJlc3VsdCAhPSA0MjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmI4OGFhNWJiYTEyZWYwMzk5ZjgxZjkwNGNmZGJlNDhkMzhkOWMyYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0wLDAgKzEsOSBAQAor
KGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gJ2EnLCBiID0gJ2InLCBjID0gJ2MnLCBkID0gJ2Qn
LCBlID0gJ2UnLCBmID0gJ2YnLCBnID0gJ2cnLCBoID0gJ2gnLCBpID0gJ2knLCBqID0gJ2onLCBr
ID0gJ2snOworICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwg
W2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcmVz
dWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRl
eCkKKyAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIHwgb1tjXSBeIG9bZF0gJiBvW2VdIF4g
b1tmXSB8IG9bZ10gXiBvW2hdICYgb1tpXSBeIG9bal0gfCBvW2tdOworICAgIGlmIChyZXN1bHQg
IT0gMTUwMDAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNl
bGYuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWY3NDkzYjk4ZjYxMGQxYzRhZDliODNlZWNmNjFhNjdmOWVjYWFi
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcwpAQCAtMCwwICsxLDI0IEBA
Cit2YXIgZiA9ICdmJzsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30K
KworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEu
bGVuZ3RoOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5
cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9IGJhcihbbmV3IEZvbygpLCB7W2ZdOjI0fV0pOwor
CitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTFkY2UzYzI1N2Q4ZDlkODA0ZTU0MGE4MDhm
Njg0YjQ5N2YzMjkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMjIgQEAKKyhmdW5jdGlvbigp
IHsKKyAgICB2YXIgYSA9ICdhJzsKKyAgICB2YXIgbCA9ICdsJzsKKyAgICB2YXIgYiA9ICdiJzsK
KyAgICB2YXIgYyA9ICdjJzsKKworICAgIHZhciBvID0ge1thXToxfTsKKyAgICB2YXIgcCA9IHtb
YV06MiwgW2xdOjEzfTsKKyAgICB2YXIgcSA9IHtbYV06MywgW2JdOjN9OworICAgIHZhciByID0g
e1thXTo0LCBbY106NX07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07CisgICAgICAgIHZh
ciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBy
OworICAgICAgICByID0gdG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLXNlbGYtb3ItcHJvdG8uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJl
YzEwN2NhN2ZhMzgwZjFiYzk2ZWY3ZTlhZTNhZmNkNTExNzJjOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctc2VsZi1vci1wcm90by5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9ICdmJzsKKworZnVu
Y3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFyKGEpIHsK
KyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsr
aSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisgICAgICAg
ICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQor
CitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwordmFyIHJl
c3VsdCA9IGJhcihbe1tmXToyNH0sIG5ldyBGb28oKV0pOworCitpZiAocmVzdWx0ICE9IDEzMjAw
MDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU4NWQzMmFmNTAzMmNkMDQ1ODU3ODQ5NWMzNzc5OTI1OTg1ZjMwN2UKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpz
CkBAIC0wLDAgKzEsMTQgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgpLCBs
ID0gU3ltYm9sKCk7CisgICAgdmFyIG8gPSB7W2FdOjF9OworICAgIHZhciBwID0ge1thXToyLCBb
bF06MTN9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwMDsgKytpKSB7CisgICAgICAgIHJlc3VsdCBePSBvW2FdOworICAgICAgICB2YXIgdG1wID0g
bzsKKyAgICAgICAgbyA9IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1
bHQgIT0gMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYmJlOTcxYjYxNjM1OTRjZTIwNDNlMjc5NTUwMDdlODMwYjA1YjhlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0w
LDAgKzEsMTQgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgpLCBiID0gU3lt
Ym9sKCksIGMgPSBTeW1ib2woKSwgZCA9IFN5bWJvbCgpLCBlID0gU3ltYm9sKCksIGYgPSBTeW1i
b2woKSwgZyA9IFN5bWJvbCgpLCBoID0gU3ltYm9sKCksIGkgPSBTeW1ib2woKSwgaiA9IFN5bWJv
bCgpLCBrID0gU3ltYm9sKCksIGwgPSBTeW1ib2woKTsKKyAgICB2YXIgbyA9IHtbYV06MSwgW2Jd
OjIsIFtjXTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06
MTAsIFtrXToxMX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtiXTozLCBbY106NCwgW2RdOjUsIFtl
XTo2LCBbZl06NywgW2ddOjgsIFtoXTo5LCBbaV06MTAsIFtqXToxMSwgW2tdOjEyLCBbbF06IDEz
fTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwg
MTAwMDAwMDsgKytpbmRleCkgeworICAgICAgICByZXN1bHQgKz0gb1thXSBeIG9bYl0gXiBvW2Nd
IF4gb1tkXSBeIG9bZV0gXiBvW2ZdIF4gb1tnXSBeIG9baF0gXiBvW2ldIF4gb1tqXSBeIG9ba107
CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHRtcDsK
KyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSA2NTAwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9t
LXRyeS1ibG9jay5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y4
YWM3OGE4NjA0MzBkYjY3YWNjNGVlMzc3MGQzMjczMzgwMmUxZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMKQEAgLTAsMCArMSw0OSBAQAordmFyIGYgPSBTeW1i
b2woIkNvY29hIik7CisKK2Z1bmN0aW9uIEEoKSB7IH0KKworQS5wcm90b3R5cGUgPSB7W2ZdOjQy
fTsKKworZnVuY3Rpb24gQigpIHsgfQorCitCLnByb3RvdHlwZSA9IG5ldyBBKCk7CisKK2Z1bmN0
aW9uIEMoKSB7IH0KKworQy5wcm90b3R5cGUgPSBuZXcgQigpOworCitmdW5jdGlvbiBEKCkgeyB9
CisKK0QucHJvdG90eXBlID0gbmV3IEMoKTsKKworZnVuY3Rpb24gRSgpIHsgfQorCitFLnByb3Rv
dHlwZSA9IG5ldyBEKCk7CisKK2Z1bmN0aW9uIEYoKSB7IH0KKworRi5wcm90b3R5cGUgPSBuZXcg
RSgpOworCitmdW5jdGlvbiBHKCkgeyB9CisKK0cucHJvdG90eXBlID0gbmV3IEYoKTsKKworZnVu
Y3Rpb24gZm9vKG8pIHsKKyAgICB0cnkgeworICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgICAgICByZXN1bHQgKz0g
b1tmXTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
IHJldHVybiA1MjsKKyAgICB9Cit9CisKK3ZhciByZXN1bHQgPSAwOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDA7ICsraSkKKyAgICByZXN1bHQgKz0gZm9vKG5ldyBHKCkpOworCitpZiAocmVz
dWx0ICE9IDQyMDAwMDAwKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDU5ZmQ4ZTBiYjk5MTRl
ZWQ2YmY0ZWVkMTU1MDBjNDhmMmM0NDJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24uanMKQEAgLTAsMCArMSw5IEBACisoZnVuY3Rpb24oKSB7CisgICAg
dmFyIGEgPSBTeW1ib2woKSwgYiA9IFN5bWJvbCgpLCBjID0gU3ltYm9sKCksIGQgPSBTeW1ib2wo
KSwgZSA9IFN5bWJvbCgpLCBmID0gU3ltYm9sKCksIGcgPSBTeW1ib2woKSwgaCA9IFN5bWJvbCgp
LCBpID0gU3ltYm9sKCksIGogPSBTeW1ib2woKSwgayA9IFN5bWJvbCgpOworICAgIHZhciBvID0g
e1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwg
W2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZh
ciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkKKyAgICAgICAgcmVzdWx0ICs9
IG9bYV0gXiBvW2JdIHwgb1tjXSBeIG9bZF0gJiBvW2VdIF4gb1tmXSB8IG9bZ10gXiBvW2hdICYg
b1tpXSBeIG9bal0gfCBvW2tdOworICAgIGlmIChyZXN1bHQgIT0gMTUwMDAwMDApCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXByb3RvLW9yLXNlbGYuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJm
ODJhYjI2OGE3MzI5MzcwODU3NmJjNzgwNmVjYTY3YjZhZWI4ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtcHJvdG8tb3Itc2VsZi5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9IFN5bWJvbCgiQ29j
b2EiKTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rp
b24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDIwMDAwMDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyAr
K2opCisgICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4g
cmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0
MjsKKwordmFyIHJlc3VsdCA9IGJhcihbbmV3IEZvbygpLCB7W2ZdOjI0fV0pOworCitpZiAocmVz
dWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNTgzNjJhZGVhNzBhYjgyMDRkZTVkNTViOWU0YzU2OGMxMTBk
MDc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMjIgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2
YXIgYSA9IFN5bWJvbCgiQ29jb2EiKTsKKyAgICB2YXIgbCA9IFN5bWJvbCgpOworICAgIHZhciBi
ID0gU3ltYm9sKCk7CisgICAgdmFyIGMgPSBTeW1ib2woKTsKKworICAgIHZhciBvID0ge1thXTox
fTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKKyAgICB2YXIgcSA9IHtbYV06MywgW2Jd
OjN9OworICAgIHZhciByID0ge1thXTo0LCBbY106NX07CisgICAgdmFyIHJlc3VsdCA9IDA7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49
IG9bYV07CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9
IHE7CisgICAgICAgIHEgPSByOworICAgICAgICByID0gdG1wOworICAgIH0KKyAgICBpZiAocmVz
dWx0ICE9IDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
K30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8u
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzAwOGMzNjQxMjBiZjJhYTQ4YWQ3NGFhM2I1YTZmYzdiOTY3YmZiYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qcwpAQCAtMCwwICsxLDI0IEBACit2
YXIgZiA9IFN5bWJvbCgnQ29jb2EnKTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4g
b1tmXTsKK30KKworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IGEubGVuZ3RoOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOwor
ICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zv
by5wcm90b3R5cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9IGJhcihbe1tmXToyNH0sIG5ldyBG
b28oKV0pOworCitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258296</attachid>
            <date>2015-08-05 13:33:34 -0700</date>
            <delta_ts>2015-08-05 13:50:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150805133326.patch</filename>
            <type>text/plain</type>
            <size>150532</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MzllNTViYTc1MTg0NTIwNDA5MjVmODQ5N2Y2MDI4MzFhYzhiOGExLi44Zjg1M2ExNjNjOGQ4YmU3
MjZjN2I2NDdlNTI3MzgxYzc1YTc3ZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjIgQEAKKzIwMTUtMDgtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGdldF9ieV9pZCBsaWtlIElDIGludG8gZ2V0X2J5
X3ZhbCB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIFN0cmluZyBvciBTeW1ib2wKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBnZXRf
YnlfaWQgSUMgdG8gZ2V0X2J5X3ZhbCBvcGVyYXRpb24gYnkgY2FjaGluZyB0aGUgc3RyaW5nIC8g
c3ltYm9sIGlkLgorICAgICAgICBUaGUgSUMgc2l0ZSBvbmx5IGNhY2hlcyBvbmUgaWQuIEFmdGVy
IGNoZWNraW5nIHRoYXQgdGhlIGdpdmVuIGlkIGlzIHRoZSBzYW1lIHRvIHRoZQorICAgICAgICBj
YWNoZWQgb25lLCB3ZSBwZXJmb3JtIHRoZSBnZXRfYnlfaWQgSUMgb250byBpdC4KKyAgICAgICAg
QW5kIGJ5IGNvbGxlY3RpbmcgSUMgU3RydWN0dXJlU3R1YkluZm8gaW5mb3JtYXRpb24sIHdlIHBh
c3MgaXQgdG8gdGhlIERGRyBhbmQgREZHCisgICAgICAgIGNvbXBpbGVzIGdldF9ieV92YWwgb3Ag
Y29kZSBpbnRvIENoZWNrSWRlbnQgKHdpdGggZWRnZSB0eXBlIGNoZWNrKSBhbmQgR2V0QnlJZCBy
ZWxhdGVkCisgICAgICAgIG9wZXJhdGlvbnMgd2hlbiB0aGUgZ2l2ZW4gZ2V0X2J5X3ZhbCBsZXZl
cmFnZXMgdGhlIHByb3BlcnR5IGxvYWQgd2l0aCB0aGUgY2FjaGVkIGlkLgorCisgICAgICAgIFRv
IGVuc3VyZSB0aGUgaW5jb21pbmcgdmFsdWUgaXMgdGhlIGV4cGVjdGVkIGlkLCBpbiBERkcgbGF5
ZXIsIHdlIHVzZSBTeW1ib2xVc2UgYW5kCisgICAgICAgIFN0cmluZ0lkZW50VXNlIHRvIGVuZm9y
Y2UgdGhlIHR5cGUuIFRvIHVzZSBpdCwgdGhpcyBwYXRjaCBpbXBsZW1lbnRzIFN5bWJvbFVzZS4K
KyAgICAgICAgVGhpcyBjYW4gYmUgbGV2ZXJhZ2VkIHRvIG9wdGltaXplIHN5bWJvbCBvcGVyYXRp
b25zIGluIERGRy4KKworICAgICAgICBBbmQgc2luY2UgYnlWYWxJbmZvIGlzIGZyZXF1ZW50bHkg
dXNlZCwgd2UgYWxpZ24gdGhlIGJ5VmFsSW5mbyBkZXNpZ24gdG8gdGhlIHN0dWJJbmZvIGxpa2Ug
b25lLgorICAgICAgICBBbGxvY2F0ZWQgYnkgdGhlIEJhZyBhbmQgb3BlcmF0aW9ucyB0YWtlIHRo
ZSByYXcgYnlWYWxJbmZvIHBvaW50ZXIgZGlyZWN0bHkgaW5zdGVhZCBvZiBwZXJmb3JtaW5nCisg
ICAgICAgIGJpbmFyeSBzZWFyY2ggb250byBtX2J5VmFsSW5mb3MuIEFuZCBieSBzdG9yaW5nIEFy
cmF5UHJvZmlsZSogdW5kZXIgdGhlIEJ5VmFsSW5mbywgd2UgcmVwbGFjZWQgdGhlCisgICAgICAg
IGFyZ3VtZW50IEFycmF5UHJvZmlsZSogaW4gdGhlIG9wZXJhdGlvbnMgd2l0aCBCeVZhbEluZm8q
LgorCisgICAgICAgICogYnl0ZWNvZGUvQnlWYWxJbmZvLmg6CisgICAgICAgIChKU0M6OkJ5VmFs
SW5mbzo6QnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01hcCk6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6YWRkQnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm8pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OnNldE51bWJlck9mQnlWYWxJbmZvcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZCeVZhbEluZm9zKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpieVZhbEluZm8pOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVj
b2RlL0V4aXRLaW5kLmNwcDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAg
ICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAg
ICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgIChK
U0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRi
YWNrKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZH
RG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9E
RkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5v
ZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2Rl
KToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhh
c1VpZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAg
ICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAg
ICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrSWRlbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVT
eW1ib2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZH
VXNlS2luZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRm
Zy9ERkdVc2VLaW5kLmg6CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAg
ICAgIChKU0M6OkRGRzo6aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja0lk
ZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb3dTeW1ib2wp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RTeW1ib2wpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN5bWJvbCk6Cisg
ICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUp
OgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKEpTQzo6QnlWYWxDb21waWxhdGlvbklu
Zm86OkJ5VmFsQ29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0
QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAg
ICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9o
YXNfaW5kZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgor
ICAgICAgICAoSlNDOjpnZXRCeVZhbCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoK
KyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0
aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlW
YWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlf
dmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKToKKyAgICAg
ICAgKiBydW50aW1lL1N5bWJvbC5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKEhlbGxvKToKKyAg
ICAgICAgKGdldCBIZWxsby5wcm90b3R5cGUuZ2VuZXJhdGUpOgorICAgICAgICAob2spOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0
U3RyMSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3RyMSk6CisgICAgICAgIChnZXRT
dHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0
ZXIuanM6IEFkZGVkLgorICAgICAgICAob2JqZWN0LmdldCBoZWxsbyk6CisgICAgICAgIChvayk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0
U3RyMSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisgICAgICAgIChIZWxsbyk6
CisgICAgICAgIChnZXQgSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlKToKKyAgICAgICAgKG9rKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAg
KGdldFN5bTEpOgorICAgICAgICAoZ2V0U3ltMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKG9iamVjdC5n
ZXQgaGVsbG8pOgorICAgICAgICAoLmdldCBvayk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3ltMSk6CisgICAgICAgIChnZXRTeW0yKToK
KwogMjAxNS0wOC0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV2luXSBVcGRhdGUgQXBwbGUgV2luZG93cyBidWlsZCBmb3IgVlMyMDE1CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKaW5kZXggZDk4ODUxNjEzMjU4YTcx
YjlmMDRiYTQ5MDczZjQ0MDMzZTU3MTA4My4uNjc1NDFmZDkzNDZhZjIyZjcyMWIxOWI3NWZkZTk2
ZmNmZjEwZmRmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
VmFsSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8u
aApAQCAtMjYsMTYgKzI2LDE4IEBACiAjaWZuZGVmIEJ5VmFsSW5mb19oCiAjZGVmaW5lIEJ5VmFs
SW5mb19oCiAKLSNpZiBFTkFCTEUoSklUKQotCiAjaW5jbHVkZSAiQ2xhc3NJbmZvLmgiCiAjaW5j
bHVkZSAiQ29kZUxvY2F0aW9uLmgiCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUg
IkluZGV4aW5nVHlwZS5oIgogI2luY2x1ZGUgIkpJVFN0dWJSb3V0aW5lLmgiCiAjaW5jbHVkZSAi
U3RydWN0dXJlLmgiCisjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKKyNpZiBFTkFCTEUoSklUKQorCiBlbnVtIEpJVEFycmF5TW9kZSB7CiAgICAgSklU
SW50MzIsCiAgICAgSklURG91YmxlLApAQCAtMjAxLDI0ICsyMDMsMzMgQEAgaW5saW5lIEpJVEFy
cmF5TW9kZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAK
IHN0cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFsSW5mbygpIHsgfQotICAgIAotICAgIEJ5VmFs
SW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1w
LCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQx
Nl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorCisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5
dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25K
dW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBBcnJheVByb2ZpbGUqIGFy
cmF5UHJvZmlsZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZSwgaW50MTZfdCByZXR1cm5BZGRy
ZXNzVG9TbG93UGF0aCkKICAgICAgICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisg
ICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4SnVtcCkKICAgICAgICAgLCBiYWRUeXBlSnVt
cChiYWRUeXBlSnVtcCkKICAgICAgICAgLCBhcnJheU1vZGUoYXJyYXlNb2RlKQorICAgICAgICAs
IGFycmF5UHJvZmlsZShhcnJheVByb2ZpbGUpCiAgICAgICAgICwgYmFkVHlwZUp1bXBUb0RvbmUo
YmFkVHlwZUp1bXBUb0RvbmUpCiAgICAgICAgICwgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgocmV0
dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgICwgc2xvd1BhdGhDb3VudCgwKQorICAgICAg
ICAsIHN0dWJJbmZvKG51bGxwdHIpCisgICAgICAgICwgdG9va1Nsb3dQYXRoKGZhbHNlKQogICAg
IHsKICAgICB9Ci0gICAgCisKICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgIENvZGVM
b2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wOwogICAgIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1
bXA7CiAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsgLy8gVGhlIGFycmF5IG1vZGUgdGhhdCB3
YXMgYmFrZWQgaW50byB0aGUgaW5saW5lIEpJVCBjb2RlLgorICAgIEFycmF5UHJvZmlsZSogYXJy
YXlQcm9maWxlOwogICAgIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmU7CiAgICAgaW50MTZfdCBy
ZXR1cm5BZGRyZXNzVG9TbG93UGF0aDsKICAgICB1bnNpZ25lZCBzbG93UGF0aENvdW50OwogICAg
IFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmU7CisgICAgSWRlbnRpZmllciBjYWNo
ZWRJZDsKKyAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm87CisgICAgYm9vbCB0b29rU2xv
d1BhdGg7CiB9OwogCiBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChC
eVZhbEluZm8qIGluZm8pCkBAIC0yMjYsOSArMjM3LDE1IEBAIGlubGluZSB1bnNpZ25lZCBnZXRC
eVZhbEluZm9CeXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5mbykKICAgICByZXR1cm4gaW5mby0+
Ynl0ZWNvZGVJbmRleDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8
Q29kZU9yaWdpbiwgQnlWYWxJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJ
bmZvTWFwOworCisjZWxzZSAvLyBFTkFCTEUoSklUKQorCit0eXBlZGVmIEhhc2hNYXA8aW50LCB2
b2lkKj4gQnlWYWxJbmZvTWFwOwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorfSAvLyBuYW1l
c3BhY2UgSlNDCisKICNlbmRpZiAvLyBCeVZhbEluZm9faAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDlmOTQ4Njg5NzBiZjA1ODAzNjU4YzNj
ZTg1ZmE4YWFjOWM2OTQ1MTcuLjhjZDdkYmVlMTI2NjM1MWY2ZDM5NjE4MWQ2NDE3MzRmNGNjODFm
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBA
IC0yNjgzLDYgKzI2ODMsMjIgQEAgdm9pZCBDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb01hcChD
YWxsTGlua0luZm9NYXAmIHJlc3VsdCkKICAgICBnZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCBy
ZXN1bHQpOwogfQogCit2b2lkIENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1
cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSklU
KQorICAgIGZvciAoYXV0byogYnlWYWxJbmZvIDogbV9ieVZhbEluZm9zKQorICAgICAgICByZXN1
bHQuYWRkKENvZGVPcmlnaW4oYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4KSwgYnlWYWxJbmZvKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2Rl
QmxvY2s6OmdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyAgICBDb25j
dXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIGdldEJ5VmFsSW5mb01hcChsb2Nr
ZXIsIHJlc3VsdCk7Cit9CisKICNpZiBFTkFCTEUoSklUKQogU3RydWN0dXJlU3R1YkluZm8qIENv
ZGVCbG9jazo6YWRkU3R1YkluZm8oKQogewpAQCAtMjY5OSw2ICsyNzE1LDEyIEBAIFN0cnVjdHVy
ZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmZpbmRTdHViSW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4p
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0J5VmFsSW5mbyogQ29kZUJsb2NrOjphZGRCeVZh
bEluZm8oKQoreworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAg
cmV0dXJuIG1fYnlWYWxJbmZvcy5hZGQoKTsKK30KKwogQ2FsbExpbmtJbmZvKiBDb2RlQmxvY2s6
OmFkZENhbGxMaW5rSW5mbygpCiB7CiAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9s
b2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA2
YzNhMTE1Zjc3NWVlYzNhYmQyMjAyZmVmYTUyNmRmODBhM2ZjOTM4Li45NjA3OTFkNzBmYjVhMTdk
MmEwMDI0Yjk2ZjRhNTdjNDA4MTNmNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCkBAIC0yMDAsNiArMjAwLDkgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFs
RmkKICAgICAKICAgICB2b2lkIGdldENhbGxMaW5rSW5mb01hcChjb25zdCBDb25jdXJyZW50SklU
TG9ja2VyJiwgQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOwogICAgIHZvaWQgZ2V0Q2FsbExpbmtJ
bmZvTWFwKENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KTsKKworICAgIHZvaWQgZ2V0QnlWYWxJbmZv
TWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCk7Cisg
ICAgdm9pZCBnZXRCeVZhbEluZm9NYXAoQnlWYWxJbmZvTWFwJiByZXN1bHQpOwogICAgIAogI2lm
IEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKCk7CkBAIC0y
MTEsMTEgKzIxNCw4IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25kaXRpb25hbEZpCiAgICAgU3RydWN0dXJlU3R1
YkluZm8qIGZpbmRTdHViSW5mbyhDb2RlT3JpZ2luKTsKIAogICAgIHZvaWQgcmVzZXRTdHViKFN0
cnVjdHVyZVN0dWJJbmZvJik7Ci0gICAgCi0gICAgQnlWYWxJbmZvJiBnZXRCeVZhbEluZm8odW5z
aWduZWQgYnl0ZWNvZGVJbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAqKGJpbmFyeVNlYXJj
aDxCeVZhbEluZm8sIHVuc2lnbmVkPihtX2J5VmFsSW5mb3MsIG1fYnlWYWxJbmZvcy5zaXplKCks
IGJ5dGVjb2RlSW5kZXgsIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgpKTsKLSAgICB9CisKKyAg
ICBCeVZhbEluZm8qIGFkZEJ5VmFsSW5mbygpOwogCiAgICAgQ2FsbExpbmtJbmZvKiBhZGRDYWxs
TGlua0luZm8oKTsKICAgICBCYWc8Q2FsbExpbmtJbmZvPjo6aXRlcmF0b3IgY2FsbExpbmtJbmZv
c0JlZ2luKCkgeyByZXR1cm4gbV9jYWxsTGlua0luZm9zLmJlZ2luKCk7IH0KQEAgLTM2NywxMiAr
MzY3LDYgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENv
ZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFsRmkKIAogICAgIFN0cmluZyBuYW1lRm9yUmVn
aXN0ZXIoVmlydHVhbFJlZ2lzdGVyKTsKIAotI2lmIEVOQUJMRShKSVQpCi0gICAgdm9pZCBzZXRO
dW1iZXJPZkJ5VmFsSW5mb3Moc2l6ZV90IHNpemUpIHsgbV9ieVZhbEluZm9zLnJlc2l6ZVRvRml0
KHNpemUpOyB9Ci0gICAgc2l6ZV90IG51bWJlck9mQnlWYWxJbmZvcygpIGNvbnN0IHsgcmV0dXJu
IG1fYnlWYWxJbmZvcy5zaXplKCk7IH0KLSAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyhzaXplX3Qg
aW5kZXgpIHsgcmV0dXJuIG1fYnlWYWxJbmZvc1tpbmRleF07IH0KLSNlbmRpZgotCiAgICAgdW5z
aWduZWQgbnVtYmVyT2ZBcmd1bWVudFZhbHVlUHJvZmlsZXMoKQogICAgIHsKICAgICAgICAgQVNT
RVJUKG1fbnVtUGFyYW1ldGVycyA+PSAwKTsKQEAgLTEwMTYsNyArMTAxMCw3IEBAIGNsYXNzIENv
ZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMg
VW5jb25kaXRpb25hbEZpCiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29kZTsKICNpZiBFTkFC
TEUoSklUKQogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7Ci0gICAgVmVj
dG9yPEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOworICAgIEJhZzxCeVZhbEluZm8+IG1fYnlWYWxJ
bmZvczsKICAgICBCYWc8Q2FsbExpbmtJbmZvPiBtX2NhbGxMaW5rSW5mb3M7CiAgICAgU2VudGlu
ZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJ
bmZvPj4gbV9pbmNvbWluZ0NhbGxzOwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxQb2x5bW9ycGhp
Y0NhbGxOb2RlLCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxQb2x5bW9ycGhpY0NhbGxOb2RlPj4gbV9p
bmNvbWluZ1BvbHltb3JwaGljQ2FsbHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0V4aXRLaW5kLmNwcAppbmRleCA0Zjc5ZjJjMWM1ZTRlN2ZkYmUwNDNhMDQ5NTI1MTAwYWQ1MGZm
NDdiLi4yNTI0MzAwZjczMzc2OWVkOWJlMDAxZDc2NjBmMzY4NTliNmQ4OTA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKQEAgLTQwLDYgKzQwLDggQEAg
Y29uc3QgY2hhciogZXhpdEtpbmRUb1N0cmluZyhFeGl0S2luZCBraW5kKQogICAgICAgICByZXR1
cm4gIkJhZFR5cGUiOwogICAgIGNhc2UgQmFkQ2VsbDoKICAgICAgICAgcmV0dXJuICJCYWRDZWxs
IjsKKyAgICBjYXNlIEJhZElkZW50OgorICAgICAgICByZXR1cm4gIkJhZElkZW50IjsKICAgICBj
YXNlIEJhZEV4ZWN1dGFibGU6CiAgICAgICAgIHJldHVybiAiQmFkRXhlY3V0YWJsZSI7CiAgICAg
Y2FzZSBCYWRDYWNoZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9FeGl0S2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgK
aW5kZXggNTljYmJmNWEyYjM4Nzc5N2UzZWUyYmE4MWYzNmUxYzYxYzAzYjkyMy4uNmY4YzUxMjAw
NzAwNTA1YmY5MWRlZjc0OTAwM2UzMDA1ZTNmNzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V4aXRLaW5kLmgKQEAgLTMyLDYgKzMyLDcgQEAgZW51bSBFeGl0S2luZCA6IHVp
bnQ4X3QgewogICAgIEV4aXRLaW5kVW5zZXQsCiAgICAgQmFkVHlwZSwgLy8gV2UgZXhpdGVkIGJl
Y2F1c2UgYSB0eXBlIHByZWRpY3Rpb24gd2FzIHdyb25nLgogICAgIEJhZENlbGwsIC8vIFdlIGV4
aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBj
ZWxsIHdlIHdvdWxkIHNlZS4gVXN1YWxseSB1c2VkIGZvciBmdW5jdGlvbiBjaGVja3MuCisgICAg
QmFkSWRlbnQsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3Vt
cHRpb24gYWJvdXQgd2hhdCBpZGVudGlmaWVyIHdlIHdvdWxkIHNlZS4gVXN1YWxseSB1c2VkIGZv
ciBjYWNoZWQgSWQgY2hlY2sgaW4gZ2V0X2J5X3ZhbC4KICAgICBCYWRFeGVjdXRhYmxlLCAvLyBX
ZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVjdCBhc3N1bXB0aW9uIGFib3V0IHdo
YXQgZXhlY3V0YWJsZSB3ZSB3b3VsZCBzZWUuCiAgICAgQmFkQ2FjaGUsIC8vIFdlIGV4aXRlZCBi
ZWNhdXNlIGFuIGlubGluZSBjYWNoZSB3YXMgd3JvbmcuCiAgICAgQmFkQ29uc3RhbnRDYWNoZSwg
Ly8gV2UgZXhpdGVkIGJlY2F1c2UgYSBjYWNoZSBvbiBhIHdlYWsgY29uc3RhbnQgKHVzdWFsbHkg
YSBwcm90b3R5cGUpIHdhcyB3cm9uZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCAxZDk3YzlmZmRiYTZkOTRlMzVjYjY3Y2VkM2Ri
ZWVhNTBiYzcxOWVlLi44OWU1MDM1ZjMwYTNmMGI3OWJiMjA4MzJhMTJkOWQ2ODQ4ODhjZjA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3Bw
CkBAIC05OCw3ICs5OCw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
cihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBtCiAgICAgR2V0QnlJZFN0
YXR1cyByZXN1bHQ7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICByZXN1bHQgPSBjb21wdXRl
Rm9yU3R1YkluZm8oCisgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRT
aXRlRmVlZGJhY2soCiAgICAgICAgIGxvY2tlciwgcHJvZmlsZWRCbG9jaywgbWFwLmdldChDb2Rl
T3JpZ2luKGJ5dGVjb2RlSW5kZXgpKSwgdWlkLAogICAgICAgICBDYWxsTGlua1N0YXR1czo6Y29t
cHV0ZUV4aXRTaXRlRGF0YShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpKTsK
ICAgICAKQEAgLTExNiw3ICsxMTYsMjAgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yKENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KIH0KIAog
I2lmIEVOQUJMRShKSVQpCi1HZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JT
dHViSW5mbygKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZv
KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJs
b2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIENvZGVPcmlnaW4gY29kZU9yaWdpbiwg
VW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdCA9IEdl
dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAor
ICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIHN0dWJJbmZvLCB1aWQsCisgICAgICAgIENh
bGxMaW5rU3RhdHVzOjpjb21wdXRlRXhpdFNpdGVEYXRhKGxvY2tlciwgcHJvZmlsZWRCbG9jaywg
Y29kZU9yaWdpbi5ieXRlY29kZUluZGV4KSk7CisKKyAgICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQ
YXRoKCkgJiYgR2V0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2Nr
LCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpKQorICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1
cyhyZXN1bHQubWFrZXNDYWxscygpID8gR2V0QnlJZFN0YXR1czo6TWFrZXNDYWxscyA6IEdldEJ5
SWRTdGF0dXM6OlRha2VzU2xvd1BhdGgsIHRydWUpOworICAgIHJldHVybiByZXN1bHQ7Cit9Cisj
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworI2lmIEVOQUJMRShKSVQpCitHZXRCeUlkU3RhdHVzIEdl
dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAog
ICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxl
ZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQsCiAgICAgQ2FsbExpbmtTdGF0dXM6OkV4aXRTaXRlRGF0YSBjYWxsRXhpdFNpdGVEYXRhKQog
ewpAQCAtMjQyLDcgKzI1NSw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvcigKICAgICAgICAgR2V0QnlJZFN0YXR1cyByZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGRmZ0Jsb2NrLT5tX2xvY2spOwotICAgICAg
ICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKAorICAgICAgICAgICAgcmVzdWx0ID0g
Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgICAgICAg
ICAgbG9ja2VyLCBkZmdCbG9jaywgZGZnTWFwLmdldChjb2RlT3JpZ2luKSwgdWlkLCBleGl0U2l0
ZURhdGEpOwogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKaW5kZXggMzIzNzJjZGRmNWUyNWIwZjM4OGU2Y2ZlZGM0
NjYyMGIyZDM4ZDJkMC4uZDdmMGFlNDk2Y2JhMmYzMGZkY2QxMjg4NmIxNWZiM2I0ODI4Zjk1NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCkBA
IC03MSw3ICs3MSwxMSBAQCBjbGFzcyBHZXRCeUlkU3RhdHVzIHsKICAgICBzdGF0aWMgR2V0QnlJ
ZFN0YXR1cyBjb21wdXRlRm9yKGNvbnN0IFN0cnVjdHVyZVNldCYsIFVuaXF1ZWRTdHJpbmdJbXBs
KiB1aWQpOwogICAgIAogICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJs
b2NrKiBiYXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFz
ZWxpbmVNYXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJ
bXBsKiB1aWQpOwotICAgIAorCisjaWYgRU5BQkxFKEpJVCkKKyAgICBzdGF0aWMgR2V0QnlJZFN0
YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVC
bG9jayogYmFzZWxpbmVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luLCBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkKTsKKyNlbmRpZgorCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlOyB9CiAgICAgCiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhdGUgIT0gTm9JbmZvcm1hdGlvbjsgfQpAQCAtOTUsNyArOTksNyBAQCBjbGFzcyBHZXRC
eUlkU3RhdHVzIHsKICAgICBzdGF0aWMgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50
SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoSklUKQotICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHVi
SW5mbygKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0
RXhpdFNpdGVGZWVkYmFjaygKICAgICAgICAgY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENv
ZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qLAogICAgICAgICBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkLCBDYWxsTGlua1N0YXR1czo6RXhpdFNpdGVEYXRhKTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCmluZGV4IDM3MzRjNzZkMWVlODdhODRhMGU2NmQ1NTY3NGQxMGIy
YWQyYWEwNTQuLjIyOTA4N2RjYzQzNjQzOTc5NTQ4MGUzZDVjMTI5NjAzYTE2YzFiNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKQEAgLTIxNjMsNiArMjE2MywzMiBAQCBib29sIEFic3RyYWN0SW50ZXJw
cmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVy
TGltaQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAg
ICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAg
ICAgQVNTRVJUKHVpZC0+aXNTeW1ib2woKSA/ICEodmFsdWUubV90eXBlICYgflNwZWNTeW1ib2wp
IDogISh2YWx1ZS5tX3R5cGUgJiB+U3BlY1N0cmluZ0lkZW50KSk7IC8vIEVkZ2UgZmlsdGVyaW5n
IHNob3VsZCBoYXZlIGFscmVhZHkgZW5zdXJlZCB0aGlzLgorCisgICAgICAgIEpTVmFsdWUgY2hp
bGRDb25zdGFudCA9IHZhbHVlLnZhbHVlKCk7CisgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7
CisgICAgICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICAgICAgQVNT
RVJUKGNoaWxkQ29uc3RhbnQuaXNTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgaWYgKGFzU3lt
Ym9sKGNoaWxkQ29uc3RhbnQpLT5wcml2YXRlTmFtZSgpLnVpZCgpID09IHVpZCkgeworICAgICAg
ICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpOworICAg
ICAgICAgICAgICAgIGlmIChhc1N0cmluZyhjaGlsZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBs
KCkgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFu
dHModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbHRlcih2YWx1ZSwgdWlkLT5p
c1N5bWJvbCgpID8gU3BlY1N5bWJvbCA6IFNwZWNTdHJpbmdJZGVudCk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKwogICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICBKU1ZhbHVlIGxl
ZnQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBKU1ZhbHVlIHJp
Z2h0ID0gZm9yTm9kZShub2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNTY0MjJiMThhMjQ2NTA4
NmY4MDY5NDI4MGRhMzY3NjAwMmU2YzVlNC4uNzY4NjkyNWRkYTEyOTU5OWE2ZGMwMzI0NjdkZWE3
OGYzYWFiNWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTk2OSw2ICs5NjksNyBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAg
ICAgICAgIAogICAgICAgICBDYWxsTGlua0luZm9NYXAgbV9jYWxsTGlua0luZm9zOwogICAgICAg
ICBTdHViSW5mb01hcCBtX3N0dWJJbmZvczsKKyAgICAgICAgQnlWYWxJbmZvTWFwIG1fYnlWYWxJ
bmZvczsKICAgICAgICAgCiAgICAgICAgIC8vIERpZCB3ZSBzZWUgYW55IHJldHVybnM/IFdlIG5l
ZWQgdG8gaGFuZGxlIHRoZSAodW5jb21tb24gYnV0IG5lY2Vzc2FyeSkKICAgICAgICAgLy8gY2Fz
ZSB3aGVyZSBhIHByb2NlZHVyZSB0aGF0IGRvZXMgbm90IHJldHVybiB3YXMgaW5saW5lZC4KQEAg
LTMzOTcsMTIgKzMzOTgsMzcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNp
Z25lZCBsaW1pdCkKIAogICAgICAgICBjYXNlIG9wX2dldF9ieV92YWw6IHsKICAgICAgICAgICAg
IFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uV2l0aG91dE9TUkV4aXQo
KTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxS
ZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBB
cnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkg
PSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsK
LSAgICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZv
KGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkp
OwotICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kKSwgZ2V0QnlWYWwpOworICAgICAgICAgICAgYm9vbCBjb21waWxlZEFzR2V0QnlJ
ZCA9IGZhbHNlOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+bV9sb2NrKTsK
KyAgICAgICAgICAgICAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1faW5saW5lU3RhY2tUb3At
Pm1fYnlWYWxJbmZvcy5nZXQoQ29kZU9yaWdpbihjdXJyZW50Q29kZU9yaWdpbigpLmJ5dGVjb2Rl
SW5kZXgpKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2hlbiB0aGUgYnl0ZWNvZGUgaXMg
bm90IGNvbXBpbGVkIGluIHRoZSBiYXNlbGluZSBKSVQsIGJ5VmFsSW5mbyBiZWNvbWVzIG51bGwu
CisgICAgICAgICAgICAgICAgLy8gQXQgdGhhdCB0aW1lLCB0aGVyZSBpcyBubyBpbmZvcm1hdGlv
bi4KKyAgICAgICAgICAgICAgICBpZiAoYnlWYWxJbmZvICYmIGJ5VmFsSW5mby0+c3R1YkluZm8g
JiYgIWJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBp
bGVkQXNHZXRCeUlkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRp
Zmllck51bWJlciA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKS5lbnN1cmUoYnlWYWxJbmZvLT5jYWNo
ZWRJZC5pbXBsKCkpOworICAgICAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
ID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOworCisgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBQb3RlbnRpYWxseSwgd2UgY2FuIGZ1cnRoZXIgb3B0aW1pemUg
aGVyZS4gSWYgd2Ugc2F3IHRoZSBleGl0IGZvciB0aGlzIENoZWNrSWRlbnQsCisgICAgICAgICAg
ICAgICAgICAgIC8vIGRvbid0IHRha2UgdGhlIEdldEJ5SWQgcGF0aCBhbmQgdXNlIHRoZSBnZW5l
cmljIEdldEJ5VmFsLgorICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrSWRlbnQs
IE9wSW5mbyh1aWQpLCBwcm9wZXJ0eSk7CisKKyAgICAgICAgICAgICAgICAgICAgR2V0QnlJZFN0
YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKAor
ICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VyLCBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2Zp
bGVkQmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8tPnN0dWJJbmZvLCBj
dXJyZW50Q29kZU9yaWdpbigpLCB1aWQpOworCisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUdl
dEJ5SWQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlvbiwgYmFzZSwg
aWRlbnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWNvbXBpbGVkQXNHZXRCeUlkKSB7CisgICAg
ICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50SW5z
dHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFkKTsKKyAgICAgICAgICAgICAg
ICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUu
YXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKKyAgICAgICAg
ICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQpLCBnZXRCeVZhbCk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RF
KG9wX2dldF9ieV92YWwpOwogICAgICAgICB9CkBAIC00MzA1LDYgKzQzMzEsNyBAQCBCeXRlQ29k
ZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAgICAgaWYg
KG1fcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewogICAgICAgICAg
ICAgbV9wcm9maWxlZEJsb2NrLT5nZXRTdHViSW5mb01hcChsb2NrZXIsIG1fc3R1YkluZm9zKTsK
ICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwg
bV9jYWxsTGlua0luZm9zKTsKKyAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0QnlWYWxJ
bmZvTWFwKGxvY2tlciwgbV9ieVZhbEluZm9zKTsKICAgICAgICAgfQogICAgIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMjk2NzQ5ZGMzMWIy
M2M4OTk4NDk0YjU2ZWYxNDMwODY0YjEyN2VjNi4uNDZmNWZlNDhkMjVjMjdkZDMxOTZjNTgxMjlk
YmU1ODU3ZmJkN2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmgKQEAgLTI2OCw2ICsyNjgsMTAgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9k
ZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAg
ZGVmKFB1cmVWYWx1ZShDaGVja05vdEVtcHR5LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6
OkZpeGVkLCBub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBD
aGVja0lkZW50OgorICAgICAgICBkZWYoUHVyZVZhbHVlKENoZWNrSWRlbnQsIEFkamFjZW5jeUxp
c3QoQWRqYWNlbmN5TGlzdDo6Rml4ZWQsIG5vZGUtPmNoaWxkMSgpKSwgbm9kZS0+dWlkT3BlcmFu
ZCgpKSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRl
cjoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5zdG9yYWdlUG9pbnRlcigpKSk7
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggYmE0YzAzNTQ5NDY0OTJmNTlmZGZiZDVh
NmY2MWE1YTY3ZDI1MDMyMC4uM2Q4NWNhYWJkNjE1NzNmZGQ1NDlkNWZlNzViYzY0ZjNlNTY0ZjFl
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAKQEAgLTIwOCw2ICsyMDgsMzMgQEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5n
UGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogCisgICAgICAgICAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgICAgICAgICBV
bmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAg
ICAgIEpTVmFsdWUgY2hpbGRDb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEo
KSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBVbmlxdWVkU3RyaW5nSW1wbCogY29u
c3RhbnRVaWQgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3RhbnRVaWQgPSBhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJp
dmF0ZU5hbWUoKS51aWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBhbHJlYWR5IGZpbHRlcmVkIHRoZSB2YWx1
ZSB3aXRoIFN0cmluZ0lkZW50VXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo
ZSBoZWxkIGltcGwgaXMgYWx3YXlzIGF0b21pYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoY29uc3QgYXV0byogaW1wbCA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRW
YWx1ZUltcGwoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaW1w
bC0+aXNBdG9taWMoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50
VWlkID0gc3RhdGljX2Nhc3Q8Y29uc3QgVW5pcXVlZFN0cmluZ0ltcGwqPihpbXBsKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBp
ZiAoY29uc3RhbnRVaWQgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlbW92
ZSgpOworICAgICAgICAgICAgICAgICAgICBlbGltaW5hdGVkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKICAgICAgICAg
ICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICAgICAgICAgIEpTVmFsdWUgbGVmdCA9
IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAg
ICBKU1ZhbHVlIHJpZ2h0ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDA4ZmZiMmE5MTI5
Mzg3MjEzMTFjYWQyNzc0Njc2MWEyMDY1M2FhNWYuLmU0NzBiOGRkYWI5OTQzOGZkODkwMzUyZTQ1
ZTA5MTAyOWYxYTYyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
QEAgLTEwNyw2ICsxMDcsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUp
CiAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50OgogICAgIGNhc2UgQ2hlY2tDZWxsOgog
ICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBS
ZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYzQ0MjMx
MDE2MzI2NTdkM2U4M2Y5NzFlNjZhODNmNjI1MDU3MTUyNC4uZDZhOTc5MGIxM2NlMDA2MmQ5Nzgx
MTQwZWRjZTIyMTUyZTQwMGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCkBAIC0xMDEyLDYgKzEwMTIsMTUgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1
YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDaGVja0lk
ZW50OiB7CisgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3Bl
cmFuZCgpOworICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkKKyAgICAgICAgICAgICAg
ICBmaXhFZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBBcnJheWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOiB7CkBAIC0xNzYw
LDYgKzE3NjksNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAg
Y2FzZSBGdW5jdGlvblVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIGNhc2Ug
S25vd25TdHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0
cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAg
ICAgICAgICAgIGlmIChhbHdheXNVbmJveFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGUuaAppbmRleCAyOGNhYjA1MWU1MzA5ZTM2ODg2OTRjYmJjNDY1Mzk2Njky
ZGU4MDlhLi44M2ZjZjVjMTAxZTBjN2M3N2E5ZWQyMDk1ZDQ1NWRhNjljNGU2YWYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTMyOCw2ICsxMzI4LDE3IEBAIHN0cnVjdCBO
b2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsK
ICAgICB9CiAKKyAgICBib29sIGhhc1VpZE9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG9wKCkgPT0gQ2hlY2tJZGVudDsKKyAgICB9CisKKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
T3BlcmFuZCgpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzVWlkT3BlcmFuZCgpKTsKKyAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7
CisgICAgfQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRj
aCAob3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDYy
ZTdjYTk4YTUyMTEyZDgyZDBlYjZmMGQxNzI4YmVhZjRiOWUxMzEuLmU5YmY3MjcwNGIxN2FhNjg2
NzllOWJiZWEwZjRmMmFkY2VmOTYzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgKQEAgLTIwOSw2ICsyMDksNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1h
Y3JvKENoZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSW5C
b3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVz
dEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5IG11dGF0
aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNzZhZjZhMmYzZTQ1MmIwZjExN2Fi
YzNhNmJiNWRkZDJmYWFiMTk4YS4uMzZmMmRmN2M3NWM1MGNhZmQwNmVjOWMyNzg1MWVlYTlmMTBm
ZmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTY0OSw2ICs2NDksNyBAQCBjbGFzcyBQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2Ug
Q2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgICAgICBjYXNlIENo
ZWNrTm90RW1wdHk6CisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICAgICAgY2FzZSBDaGVj
a0JhZENlbGw6CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAgICAgICBjYXNlIFZhcklu
amVjdGlvbldhdGNocG9pbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCmluZGV4IDBjMGEyNzc2MDUwZWYxYzYzOGMyMGQ4OGNmZWZlMzIzYzczYTU5MTQu
LmIyZDA3ZDU1ZTUzNjI2ODQ1YjVkM2Y1YzlmZWVhNGU3YmQ4NGRkOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw2ICs1OSw3IEBAIGNs
YXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgog
ICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKKyAg
ICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAg
ICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE5vdFN0cmlu
Z1ZhclVzZToKQEAgLTE4OCw2ICsxODksNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RT
dGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVj
a0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5Ogor
ICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdF
eHBUZXN0OgogICAgIGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGYzZjhhZjdhNTJkNTBmOWEyZTcxYzRm
OTAxOTk4NDdiZjA1MDBkNWUuLjA1MzczNjM0YmRlMTFkNjY0NjE5MTNhMjBjNWE1YmVhOTY4ZmE0
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCkBAIC00NTc2LDYgKzQ1NzYsMzEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCiAgICAgfSB9CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVDaGVja0lkZW50KE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgb3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgVW5pcXVlZFN0cmluZ0lt
cGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7
CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7
CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCisgICAgICAgICAgICBCYWRJZGVudCwgSlNWYWx1
ZVNvdXJjZSgpLCBudWxscHRyLAorICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6QWRkcmVzcyhvcGVyYW5kLmdwcigpLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUo
KSksCisgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsK
KyAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3By
KCkpOworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgQmFkSWRlbnQsIEpT
VmFsdWVTb3VyY2UoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAg
ICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgSklU
Q29tcGlsZXI6OkFkZHJlc3Mob3BlcmFuZC5ncHIoKSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUo
KSksCisgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfQorICAgIG5v
UmVzdWx0KG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rp
b24oTm9kZSogbm9kZSkKIHsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzY29wZSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CkBAIC01NzMxLDYgKzU3NTYsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlTm90U3RyaW5nVmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxpbmsoJm1f
aml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRn
ZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5i
b3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90U3ltYm9s
KGNlbGwpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2Ug
ZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVk
Z2UpOworICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAgICAgaWYg
KCFuZWVkc1R5cGVDaGVjayhlZGdlLCB+U3BlY0NlbGwpKQpAQCAtNTg0Miw2ICs1ODgxLDkgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2Fz
ZSBTdHJpbmdVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsK
KyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1
bGF0ZVN0cmluZ09iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYTVjNDQ1NDdkYTY0YmMyYjYz
ZjA3M2ExNzExZTZhMTE4MDZmNTk1Yi4uNTQ1ZmYyYTZlYmQxMGVlZjgyYjFmZTdjMjJjY2U5Zjcx
N2VkZDE0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaApAQCAtMjE5MSw2ICsyMTkxLDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZv
aWQgY29tcGlsZVNraXBTY29wZShOb2RlKik7CiAKICAgICB2b2lkIGNvbXBpbGVHZXRBcnJheUxl
bmd0aChOb2RlKik7CisKKyAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KE5vZGUqKTsKICAgICAK
ICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlRG91Ymxl
UmVwKE5vZGUqKTsKQEAgLTI0MDYsNiArMjQwOCw4IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsK
ICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlLCBHUFJSZWcpOwogICAgIHZvaWQg
c3BlY3VsYXRlU3RyaW5nT2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JT
dHJpbmdPYmplY3QoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSwgR1BSUmVn
IGNlbGwpOworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UpOwogICAgIHZvaWQgc3BlY3Vs
YXRlTm90Q2VsbChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU90aGVyKEVkZ2UpOwogICAgIHZv
aWQgc3BlY3VsYXRlTWlzYyhFZGdlLCBKU1ZhbHVlUmVncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA1MDQyOTA1
YjYyYjUyNmM5ZWRhZDNmZmJiNTY3YzQ2ZjY3ZjgwZWFlLi4xMmFiOGQwODVkMDcwNTEwZjc2ZmQ0
ZWU3MjU0Zjg4ZTMzMjJiN2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTM4MjAsNiArMzgyMCwxMCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorICAgIGNhc2UgQ2hlY2tJZGVudDoKKyAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQobm9k
ZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGZ1bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXgg
NzcwYmRhNThjYWI1MDIzYTFmYTBjMzhmNGM3YTAzMDhkNDA4MGEzMC4uMTNjN2M4N2Q4MDZmN2E3
YTg2NzMwZjA3OWFkODgzNDU0MjZjN2ZjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0zODUwLDYgKzM4NTAsMTAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAg
ICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6CisgICAgICAgIGNvbXBpbGVDaGVja0lkZW50KG5v
ZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCmluZGV4IGVmYTEwNGYzZDA3MDAwYjdk
N2JjNDczYmNkZjIwNmQxMDUzZmM5YjEuLjkzNmVmNTU0YWYyNGUwYjY0ZmRmNDI4ZjE2M2FlOGQ3
ODhlOThkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2lu
ZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAt
OTcsNiArOTcsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2lu
ZCB1c2VLaW5kKQogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIG91dC5wcmludCgi
S25vd25TdHJpbmciKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAg
ICAgICBvdXQucHJpbnQoIlN5bWJvbCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJp
bmdPYmplY3RVc2U6CiAgICAgICAgIG91dC5wcmludCgiU3RyaW5nT2JqZWN0Iik7CiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2lu
ZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggZWJmOTlk
YWU2MDBjODgyNWQyMmNiYWM2MzgyMmQxNWI1NTYwMDM1YS4uMjg5Yjc4M2U0MWJiMzYxMjkxYzgz
YzhmYWQ3YjA4YTU3OGUwYTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5k
LmgKQEAgLTU3LDYgKzU3LDcgQEAgZW51bSBVc2VLaW5kIHsKICAgICBTdHJpbmdJZGVudFVzZSwK
ICAgICBTdHJpbmdVc2UsCiAgICAgS25vd25TdHJpbmdVc2UsCisgICAgU3ltYm9sVXNlLAogICAg
IFN0cmluZ09iamVjdFVzZSwKICAgICBTdHJpbmdPclN0cmluZ09iamVjdFVzZSwKICAgICBOb3RT
dHJpbmdWYXJVc2UsCkBAIC0xMTcsNiArMTE4LDggQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5
cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNh
c2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nOworICAgIGNhc2Ug
U3ltYm9sVXNlOgorICAgICAgICByZXR1cm4gU3BlY1N5bWJvbDsKICAgICBjYXNlIFN0cmluZ09i
amVjdFVzZToKICAgICAgICAgcmV0dXJuIFNwZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJp
bmdPclN0cmluZ09iamVjdFVzZToKQEAgLTE5Niw2ICsxOTksNyBAQCBpbmxpbmUgYm9vbCBpc0Nl
bGwoVXNlS2luZCBraW5kKQogICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgY2FzZSBTdHJp
bmdVc2U6CiAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKKyAgICBjYXNlIFN5bWJvbFVzZToKICAg
ICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNl
OgogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggOTEyNzU0ZGZjNDAxNTJiMGVk
MjQ4MzZhYzc1YjhmOTY5ODQzOTliYi4uNTgxZjRjYmQ5YTc2OGI5YWIyYTgzOTIxY2YyNGQzNTI0
YmM4NTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTg3LDcgKzg3LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV9jbGFzc0luZm8sIFN0cnVjdHVyZTo6
Y2xhc3NJbmZvT2Zmc2V0KCkpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVfZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX3By
b3RvdHlwZSwgU3RydWN0dXJlOjpwcm90b3R5cGVPZmZzZXQoKSkgXAotICAgIG1hY3JvKFN0cnVj
dHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKQorICAgIG1h
Y3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgp
KSBcCisgICAgbWFjcm8oU3ltYm9sX3ByaXZhdGVOYW1lLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0
ZU5hbWUoKSkKIAogI2RlZmluZSBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAobWFjcm8p
IFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfc3RvcmFnZSwgRGlyZWN0QXJndW1lbnRzOjpz
dG9yYWdlT2Zmc2V0KCksIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA2MjcyOGM3NDZlZjkxZDc0
Yjc4MjliYjNmOWE0NGM2ZDdmNjFkN2IzLi5iNDkzZjMwMjdlODJjZmNjZTljM2NjZjQ4MmMxNTU4
NjFkNjhiOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENl
bGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBj
YXNlIFN0cmluZ0NoYXJDb2RlQXQ6CiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToK
ICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CkBAIC00MTUsNiArNDE2LDcgQEAg
Q2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAg
IGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RV
c2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKKyAgICAg
ICAgICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2Jq
ZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgTm90Q2VsbFVzZToKICAgICAgICAgICAgICAg
ICBjYXNlIE90aGVyVXNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9MTFZNLmNwcAppbmRleCA1YjU4N2RkMDQ4ODNjYTc5NDY1ZmI0ZTMwZDlkNWVlZDkzMzkx
MmZlLi44MmNhYmJhODFiMjE3Y2NkYWM2YTNkNDUzZTBjZWJlZmM2MjlhYWY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNTMyLDYg
KzUzMiw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBDaGVja0JhZENl
bGw6CiAgICAgICAgICAgICBjb21waWxlQ2hlY2tCYWRDZWxsKCk7CiAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDaGVja0lkZW50OgorICAgICAgICAgICAgY29tcGlsZUNoZWNrSWRl
bnQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAg
ICAgICAgICAgICBjb21waWxlR2V0RXhlY3V0YWJsZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBA
IC0yMDI5LDYgKzIwMzIsMjAgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVj
dWxhdGUoVERaRmFpbHVyZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5pc1plcm82NChsb3dK
U1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgfQogCisgICAgdm9pZCBjb21waWxlQ2hl
Y2tJZGVudCgpCisgICAgeworICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ub2Rl
LT51aWRPcGVyYW5kKCk7CisgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAg
ICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
ICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5
bWJvbF9wcml2YXRlTmFtZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFs
dWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQ
dHIodWlkKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9
IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0
cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7
CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9v
dXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAg
ICB9CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlR2V0RXhlY3V0YWJsZSgpCiAgICAgewogICAg
ICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC03MDMzLDcg
KzcwNTAsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGVTdHJp
bmdJZGVudChlZGdlLCBzdHJpbmcsIHN0cmluZ0ltcGwpOwogICAgICAgICByZXR1cm4gc3RyaW5n
SW1wbDsKICAgICB9Ci0gICAgCisKKyAgICBMVmFsdWUgbG93U3ltYm9sKEVkZ2UgZWRnZSwgT3Bl
cmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRT
cGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpOworCisgICAgICAgIExW
YWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UsIG1vZGUpOworICAgICAgICBzcGVjdWxhdGVTeW1i
b2woZWRnZSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBM
VmFsdWUgbG93Tm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUg
bW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAgICB7CiAgICAgICAgIEFTU0VS
VF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51
c2VLaW5kKCkgPT0gT2JqZWN0VXNlKTsKQEAgLTc0MzAsNiArNzQ1Niw5IEBAIGNsYXNzIExvd2Vy
REZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgICAgIHNw
ZWN1bGF0ZVN0cmluZ0lkZW50KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgU3ltYm9sVXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UpOworICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAg
c3BlY3VsYXRlU3RyaW5nT2JqZWN0KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03NTI2
LDcgKzc1NTUsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgbV9vdXQu
bG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50MzIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9Ci0gICAg
CisKKyAgICBMVmFsdWUgaXNOb3RTeW1ib2woTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5
cGUgPSBTcGVjRnVsbFRvcCkKKyAgICB7CisgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQ
cm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjU3ltYm9sKSkKKyAgICAgICAgICAgIHJl
dHVybiBwcm92ZW47CisgICAgICAgIHJldHVybiBtX291dC5ub3RFcXVhbCgKKyAgICAgICAgICAg
IG1fb3V0LmxvYWQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCisgICAgICAg
ICAgICBtX291dC5jb25zdEludDMyKHZtKCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7CisgICAg
fQorCiAgICAgTFZhbHVlIGlzQXJyYXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlN
b2RlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkBAIC03NzQ5
LDcgKzc3ODcsMTcgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgTm90U3Ry
aW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCiAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChzdHJ1
Y3R1cmVJRCwgd2Vha1N0cnVjdHVyZUlEKHN0cmluZ09iamVjdFN0cnVjdHVyZSkpKTsKICAgICB9
Ci0gICAgCisKKyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxs
KQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdl
LCBTcGVjU3ltYm9sIHwgflNwZWNDZWxsLCBpc05vdFN5bWJvbChjZWxsKSk7CisgICAgfQorCisg
ICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3Vs
YXRlU3ltYm9sKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKwogICAgIHZvaWQgc3BlY3Vs
YXRlTm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAg
RlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjT2JqZWN0LCBpc05v
dE9iamVjdChjZWxsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOWFmMzMyZWI3
OGUxODlhZTZhNTNiMjIzNTBhZjc3YjVmOWQ3ZWIyYi4uMjY0YWE0Y2Y1NjI3YzQ3MTUzYWZiYzUx
NTdiOWJkZjJjMjM2OTQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNjU4LDE3
ICs2NTgsMjIgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21w
aWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9wdXRCeUlkcy5z
aXplKCk7IGktLTspCiAgICAgICAgIG1fcHV0QnlJZHNbaV0uZmluYWxpemUocGF0Y2hCdWZmZXIp
OwogCi0gICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZvcyhtX2J5VmFsQ29tcGls
YXRpb25JbmZvLnNpemUoKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYnlWYWxD
b21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBi
YWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5
VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1wKSk7Ci0gICAgICAgIENvZGVMb2NhdGlv
bkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKG1fYnlWYWxDb21waWxh
dGlvbkluZm9baV0uZG9uZVRhcmdldCk7Ci0gICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQ
YXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZv
W2ldLnNsb3dQYXRoVGFyZ2V0KTsKLSAgICAgICAgQ29kZUxvY2F0aW9uQ2FsbCByZXR1cm5BZGRy
ZXNzID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLnJl
dHVybkFkZHJlc3MpOwotICAgICAgICAKLSAgICAgICAgbV9jb2RlQmxvY2stPmJ5VmFsSW5mbyhp
KSA9IEJ5VmFsSW5mbygKLSAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYnl0
ZWNvZGVJbmRleCwKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJ5VmFsQ29tcGlsYXRpb25JbmZvIDog
bV9ieVZhbENvbXBpbGF0aW9uSW5mbykgeworICAgICAgICBQYXRjaGFibGVKdW1wIHBhdGNoYWJs
ZU5vdEluZGV4SnVtcCA9IGJ5VmFsQ29tcGlsYXRpb25JbmZvLm5vdEluZGV4SnVtcDsKKyAgICAg
ICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKCk7Cisg
ICAgICAgIGlmIChKdW1wKHBhdGNoYWJsZU5vdEluZGV4SnVtcCkuaXNTZXQoKSkKKyAgICAgICAg
ICAgIG5vdEluZGV4SnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihwYXRjaGFibGVOb3RJbmRleEp1bXApKTsKKyAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRU
eXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihieVZhbENv
bXBpbGF0aW9uSW5mby5iYWRUeXBlSnVtcCkpOworICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBk
b25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihieVZhbENvbXBpbGF0aW9uSW5mby5k
b25lVGFyZ2V0KTsKKyAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgc2xvd1BhdGhUYXJnZXQgPSBw
YXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGJ5VmFsQ29tcGlsYXRpb25JbmZvLnNsb3dQYXRoVGFyZ2V0
KTsKKyAgICAgICAgQ29kZUxvY2F0aW9uQ2FsbCByZXR1cm5BZGRyZXNzID0gcGF0Y2hCdWZmZXIu
bG9jYXRpb25PZihieVZhbENvbXBpbGF0aW9uSW5mby5yZXR1cm5BZGRyZXNzKTsKKworICAgICAg
ICAqYnlWYWxDb21waWxhdGlvbkluZm8uYnlWYWxJbmZvID0gQnlWYWxJbmZvKAorICAgICAgICAg
ICAgYnlWYWxDb21waWxhdGlvbkluZm8uYnl0ZWNvZGVJbmRleCwKKyAgICAgICAgICAgIG5vdElu
ZGV4SnVtcCwKICAgICAgICAgICAgIGJhZFR5cGVKdW1wLAotICAgICAgICAgICAgbV9ieVZhbENv
bXBpbGF0aW9uSW5mb1tpXS5hcnJheU1vZGUsCisgICAgICAgICAgICBieVZhbENvbXBpbGF0aW9u
SW5mby5hcnJheU1vZGUsCisgICAgICAgICAgICBieVZhbENvbXBpbGF0aW9uSW5mby5hcnJheVBy
b2ZpbGUsCiAgICAgICAgICAgICBkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoYmFkVHlwZUp1bXAs
IGRvbmVUYXJnZXQpLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKHJldHVy
bkFkZHJlc3MsIHNsb3dQYXRoVGFyZ2V0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgK
aW5kZXggMWFkZTY2NWRmNzkyODJjNjBjMmE4ODU2ODVmZDUzMTdkN2E1NTRkNS4uM2Q0MTdjMzdk
YzIwYjhmNjA4YzE5ZjRkYjZkMGM1YWM5NjZjMDA1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
CkBAIC0xNDksMTcgKzE0OSwyMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBzdHJ1Y3QgQnlWYWxD
b21waWxhdGlvbkluZm8gewogICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbygpIHsgfQogICAg
ICAgICAKLSAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9k
ZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQotICAgICAgICAg
ICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgIEJ5VmFsQ29tcGlsYXRp
b25JbmZvKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNy
b0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXAsIE1hY3JvQXNzZW1ibGVyOjpQ
YXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBBcnJheVBy
b2ZpbGUqIGFycmF5UHJvZmlsZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQpCisg
ICAgICAgICAgICA6IGJ5VmFsSW5mbyhieVZhbEluZm8pCisgICAgICAgICAgICAsIGJ5dGVjb2Rl
SW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4
SnVtcCkKICAgICAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICAg
ICAsIGFycmF5TW9kZShhcnJheU1vZGUpCisgICAgICAgICAgICAsIGFycmF5UHJvZmlsZShhcnJh
eVByb2ZpbGUpCiAgICAgICAgICAgICAsIGRvbmVUYXJnZXQoZG9uZVRhcmdldCkKICAgICAgICAg
ewogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvOwog
ICAgICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRj
aGFibGVKdW1wIGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOwor
ICAgICAgICBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsIGRvbmVUYXJnZXQ7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBzbG93
UGF0aFRhcmdldDsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgcmV0dXJuQWRkcmVzczsK
QEAgLTIwNCw2ICsyMTAsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBqaXQucHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbChieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIGFycmF5TW9kZSk7
CiAgICAgICAgIH0KIAorICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRoQ2Fj
aGVkSWQoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8s
IFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOwor
ICAgICAgICAgICAgaml0Lm1fYnl0ZWNvZGVPZmZzZXQgPSBieVZhbEluZm8tPmJ5dGVjb2RlSW5k
ZXg7CisgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChi
eVZhbEluZm8sIHJldHVybkFkZHJlc3MsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKwogICAg
ICAgICBzdGF0aWMgdm9pZCBjb21waWxlUHV0QnlWYWwoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVz
cywgSklUQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICAgICAgewogICAgICAgICAgICAgSklUIGpp
dCh2bSwgY29kZUJsb2NrKTsKQEAgLTI0Niw2ICsyNTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZv
cnQpOwogICAgICAgICAKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFs
SW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CisgICAgICAgIHZvaWQgcHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNz
UHRyLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVQdXRC
eVZhbChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwogCiAgICAg
ICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoQnlWYWxJbmZvKiwgUmV0
dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKQEAgLTM3MSw3ICszODUsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgSnVtcExpc3QgZW1pdEFycmF5U3RvcmFnZVB1dEJ5VmFsKEluc3Ry
dWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRJ
bnRUeXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBl
LCBUeXBlZEFycmF5VHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRGbG9hdFR5cGVkQXJyYXlQ
dXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlU
eXBlKTsKLSAgICAgICAgCisKKyAgICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlW
YWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3Qm
IGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcyk7CisKICAgICAgICAgZW51bSBGaW5hbE9i
amVjdE1vZGUgeyBNYXlCZUZpbmFsLCBLbm93bk5vdEZpbmFsIH07CiAKICAgICAgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24s
IFQgbGVmdEhhbmRTaWRlLCBTdHJ1Y3R1cmUqKTsKQEAgLTcwMiw2ICs3MTgsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJSZWcsIGNvbnN0IElkZW50aWZpZXIqKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkos
IGludCwgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBBcnJh
eVByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oQ19KSVRPcGVyYXRpb25f
RUpzYywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSnNjQywgaW50LCBHUFJSZWcsIEpTQ2VsbCopOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3BlcmF0aW9uX0VKc2NaLCBH
UFJSZWcsIGludDMyX3QpOwpAQCAtNzQ2LDYgKzc2Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2Vu
ZGlmCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRUpKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkFw
LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBBcnJheVByb2ZpbGUqKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
SkpKQnksIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIEJ5VmFsSW5mbyopOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VKWkosIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWiwgUmVnaXN0ZXJJ
RCwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRVBjLCBJbnN0cnVjdGlvbiopOwpAQCAtNzYyLDYgKzc4MCw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEpfSklUT3BlcmF0aW9uX0VKSWRjLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBjb25zdCBJZGVudGlm
aWVyKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpK
QXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyop
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0
aW9uX0VKUywgR1BSUmVnLCBHUFJSZWcsIHNpemVfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklU
T3BlcmF0aW9uX0VKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCk7CkBAIC03NjksNiArNzg4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VKSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCwgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCwgQXJyYXlQcm9maWxlKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5LCBSZWdpc3RlcklELCBSZWdpc3RlcklE
LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBCeVZhbElu
Zm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9w
ZXJhdGlvbl9FSlosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWkosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VaSiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IGE0OTQ4NGEzZTgwM2JjOGE0NzU5MjY1MTRiMTBiMGYx
ZmUxOTgwNzMuLmFjZDhjODk1ZmVkZGNmMGFjMjM1NDRjNjY2YzVkYjkxMzMxYzZlNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC00MTEsNiArNDExLDEyIEBAIEFM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5IG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBSZWdpc3RlcklEIHJlZ09wMywgQnlW
YWxJbmZvKiBieVZhbEluZm8pCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgcmVnT3AyLCByZWdPcDMsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7CisgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKK30KKwogQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRVpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZykKIHsKICAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKGRzdCksIGFyZyk7CkBAIC00NTksNiAr
NDY1LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwIG9wZXJhCiAgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAor
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKQnkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVn
IGFyZzIsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGJ5VmFsSW5mbykpOworICAgIHJldHVy
biBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24s
IGRzdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQ
UlJlZyBhcmcxKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxKTsKQEAg
LTYwMCw2ICs2MTIsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAgb3BlcmEKICAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3Qp
OwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcx
VGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxv
YWQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgU0g0XzMyQklU
X0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbVB0cihieVZhbEluZm8p
KTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1
bHQob3BlcmF0aW9uLCBkc3QpOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlv
bl9FSkogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXls
b2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQogewogICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJn
MVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CkBAIC02NjYs
NiArNjg0LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJuIGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5
IG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDFUYWcsIFJlZ2lzdGVySUQgcmVnT3AxUGF5bG9h
ZCwgUmVnaXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lzdGVySUQgcmVnT3AyUGF5bG9hZCwgUmVnaXN0
ZXJJRCByZWdPcDNUYWcsIFJlZ2lzdGVySUQgcmVnT3AzUGF5bG9hZCwgQnlWYWxJbmZvKiBieVZh
bEluZm8pCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVN
TVlfQVJHIHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyByZWdP
cDJQYXlsb2FkLCByZWdPcDJUYWcsIHJlZ09wM1BheWxvYWQsIHJlZ09wM1RhZywgVHJ1c3RlZElt
bVB0cihieVZhbEluZm8pKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FWkogb3BlcmF0aW9uLCBpbnQgZHN0LCBS
ZWdpc3RlcklEIHJlZ09wMVRhZywgUmVnaXN0ZXJJRCByZWdPcDFQYXlsb2FkKQogewogICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIoZHN0KSwgcmVnT3AxUGF5bG9h
ZCwgcmVnT3AxVGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmlu
ZGV4IDkwYjUzMjE1YWIwNGM3NDMzOGFkYmE4MzYzMDQwYzM4NGRmZmEzMWUuLmU0YWQ5NjczMGE3
ZGI3YWRkNDEwMzdiNTU2N2MwOGYyMTIwOWI0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcApAQCAtMTA3Nyw2ICsxMDc3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
aGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHBy
b3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2Zp
bGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAg
QnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAg
CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdU
MSk7CiAKQEAgLTExMDgsNyArMTEwOSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVk
X3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUs
IG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENv
bXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAo
KSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
biwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTExMTYsNyArMTEx
Nyw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7Ci0gICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9u
WzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENv
bXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAog
ICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hl
Y2sKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTExMjcs
NyArMTEyOCw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgCiAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihiYXNlLCByZWdUMCk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihw
cm9wZXJ0eSwgcmVnVDEpOwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
SGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCByZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwor
ICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5
RGVmYXVsdCwgZHN0LCByZWdUMCwgcmVnVDEsIGJ5VmFsSW5mbyk7CiAKICAgICBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNs
b3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5k
ZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IGQwZTc1Y2UxYTdlNTQ2OTgwMmM2MTA2MzNkMmIzMzU1
ZTIzNTRmOTkuLmU5ZmU4MzhiM2EzNjgxNTdhM2EwYjA1N2IzMjRjNjAwOTFiNjkyZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTEwNzcs
NiArMTA3Nyw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3Ry
dWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9j
b2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAgIAogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNl
LCByZWdUMCk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UpOwpAQCAtMTEw
OSw3ICsxMTEwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBlbWl0U3RvcmVCb29sKGRz
dCwgcmVnVDApOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFs
Q29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsK
KyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhi
eVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9k
ZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4
ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTExMTgsNiArMTExOSw3IEBAIHZvaWQgSklU
OjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUu
YXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0
aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAogICAgIGxp
bmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKICAg
ICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTExMjgsNyArMTEz
MCw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgCiAgICAgZW1pdExvYWQoYmFzZSwg
cmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0TG9hZChwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QyKTsKLSAg
ICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURl
ZmF1bHQsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIsIHByb2ZpbGUpOworICAgIENh
bGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVs
dCwgZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMiwgYnlWYWxJbmZvKTsKIAogICAgIG1f
YnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFy
Z2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1
Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCA5Njk2ZmNlZDlkMmY4NDcyNzU5YjNkNzNlNjFl
ZGMzYTViNDJjNGFhLi43YThkOTM5NjFmOWM3OGJiNWRjM2E3NTBjZTBhZDY3ZTBhMTk5NzY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTQ5OCw3
ICs0OTgsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVhbGxvY2F0ZVN0b3JhZ2VB
bmRGaW5pc2hQdXQoRXhlY1N0YXRlKiBleGVjLCBKU09iagogICAgIGJhc2UtPnB1dERpcmVjdCh2
bSwgb2Zmc2V0LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpKTsKIH0KIAotc3RhdGljIHZvaWQgcHV0
QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1
YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCitzdGF0
aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUs
IEpTVmFsdWUgc3Vic2NyaXB0LCBKU1ZhbHVlIHZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykK
IHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgaWYgKExJS0VMWShzdWJzY3Jp
cHQuaXNVSW50MzIoKSkpIHsKQEAgLTUwOCw3ICs1MDgsNyBAQCBzdGF0aWMgdm9pZCBwdXRCeVZh
bChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2Ny
aXB0LAogICAgICAgICAgICAgaWYgKG9iamVjdC0+Y2FuU2V0SW5kZXhRdWlja2x5KGkpKQogICAg
ICAgICAgICAgICAgIG9iamVjdC0+c2V0SW5kZXhRdWlja2x5KGNhbGxGcmFtZS0+dm0oKSwgaSwg
dmFsdWUpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXJyYXlQcm9maWxl
LT5zZXRPdXRPZkJvdW5kcygpOworICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9m
aWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgICAgICAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFi
bGUodm0pLT5wdXRCeUluZGV4KG9iamVjdCwgY2FsbEZyYW1lLCBpLCB2YWx1ZSwgY2FsbEZyYW1l
LT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9
IGVsc2UKQEAgLTUyMiw3ICs1MjIsNyBAQCBzdGF0aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LAogICAgIH0K
IH0KIAotc3RhdGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
T2JqZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQXJy
YXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCitzdGF0aWMgdm9pZCBkaXJlY3RQdXRCeVZhbChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEpTVmFsdWUgc3Vic2NyaXB0
LCBKU1ZhbHVlIHZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBib29sIGlzU3Ry
aWN0TW9kZSA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpOwogICAgIGlm
IChMSUtFTFkoc3Vic2NyaXB0LmlzVUludDMyKCkpKSB7CkBAIC01MzQsNyArNTM0LDcgQEAgc3Rh
dGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBKU1ZhbHVlIHMKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAgICAgICAgYnlWYWxJbmZv
LT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAgICAgIGJhc2VPYmplY3QtPnB1
dERpcmVjdEluZGV4KGNhbGxGcmFtZSwgaW5kZXgsIHZhbHVlLCAwLCBpc1N0cmljdE1vZGUgPyBQ
dXREaXJlY3RJbmRleFNob3VsZFRocm93IDogUHV0RGlyZWN0SW5kZXhTaG91bGROb3RUaHJvdyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01NjAsNyArNTYwLDcgQEAgc3RhdGljIHZvaWQg
ZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBKU1ZhbHVlIHMKICAgICAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0o
KSwgcHJvcGVydHksIHZhbHVlLCBzbG90KTsKICAgICB9CiB9Ci12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBl
eGVjKTsKQEAgLTU3NCwyMSArNTc0LDE5IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlCiAgICAg
ICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogICAgICAgICBib29s
IGRpZE9wdGltaXplID0gZmFsc2U7CiAKLSAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQg
PSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKLSAgICAgICAgQVNTRVJUKGJ5dGVj
b2RlT2Zmc2V0KTsKLSAgICAgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBleGVjLT5jb2RlQmxv
Y2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7Ci0gICAgICAgIEFTU0VSVCgh
YnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKKyAgICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNC
eXRlY29kZU9mZnNldCgpKTsKKyAgICAgICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5l
KTsKIAogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVjdC0+c3RydWN0dXJlKHZt
KTsKICAgICAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcoc3RydWN0dXJlKSkgewogICAg
ICAgICAgICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgIEpJVEFycmF5TW9k
ZSBhcnJheU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJlKTsKLSAgICAg
ICAgICAgIGlmIChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYgYXJyYXlNb2Rl
ICE9IGJ5VmFsSW5mby5hcnJheU1vZGUpIHsKKyAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQ
ZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlNb2Rl
KSB7CiAgICAgICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxv
Y2soKTsKICAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxv
Y2stPm1fbG9jayk7Ci0gICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRl
ZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CisgICAgICAgICAgICAg
ICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihsb2Nr
ZXIsIGNvZGVCbG9jaywgc3RydWN0dXJlKTsKIAotICAgICAgICAgICAgICAgIEpJVDo6Y29tcGls
ZVB1dEJ5VmFsKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJl
c3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgICAgICAgICBK
SVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBieVZhbEluZm8sIFJl
dHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAgICAg
ICAgICAgICBkaWRPcHRpbWl6ZSA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAg
LTU5OSw3ICs1OTcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICAgICAgLy8g
dGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAx
MCB0aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWluZGV4
LWludGVyY2VwdGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJhdGlvbnMgd29ydGggb2YK
ICAgICAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdl
dF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZv
LnNsb3dQYXRoQ291bnQgPj0gMTAKKyAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1Bh
dGhDb3VudCA+PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+
dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVu
Z3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBv
cHRpbWl6ZS4KICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhl
Yy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVu
Y3Rpb25QdHIob3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKSk7CkBAIC02MDcsMTAgKzYwNSwxMCBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICB9CiAgICAgfQogCi0gICAgcHV0QnlW
YWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2ZpbGUpOworICAg
IHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsK
IH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0
ZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEFycmF5
UHJvZmlsZSogYXJyYXlQcm9maWxlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVj
dFB1dEJ5VmFsKEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZNJiB2bSA9IGNhbGxG
cmFtZS0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgY2FsbEZy
YW1lKTsKQEAgLTYyMywyMiArNjIxLDIwIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25E
aXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUKICAgICBp
ZiAoc3Vic2NyaXB0LmlzSW50MzIoKSkgewogICAgICAgICAvLyBTZWUgaWYgaXQncyB3b3J0aCBv
cHRpbWl6aW5nIGF0IGFsbC4KICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwotICAg
ICAgICAKLSAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBjYWxsRnJhbWUtPmxvY2F0
aW9uQXNCeXRlY29kZU9mZnNldCgpOwotICAgICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQpOwot
ICAgICAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmdl
dEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwotICAgICAgICBBU1NFUlQoIWJ5VmFsSW5m
by5zdHViUm91dGluZSk7CisKKyAgICAgICAgQVNTRVJUKGNhbGxGcmFtZS0+bG9jYXRpb25Bc0J5
dGVjb2RlT2Zmc2V0KCkpOworICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUp
OwogCiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gb2JqZWN0LT5zdHJ1Y3R1cmUodm0p
OwogICAgICAgICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhzdHJ1Y3R1cmUpKSB7CiAgICAg
ICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICAgICAgSklUQXJyYXlNb2Rl
IGFycmF5TW9kZSA9IGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShzdHJ1Y3R1cmUpOwotICAgICAg
ICAgICAgaWYgKGppdEFycmF5TW9kZVBlcm1pdHNQdXQoYXJyYXlNb2RlKSAmJiBhcnJheU1vZGUg
IT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgeworICAgICAgICAgICAgaWYgKGppdEFycmF5TW9kZVBl
cm1pdHNQdXQoYXJyYXlNb2RlKSAmJiBhcnJheU1vZGUgIT0gYnlWYWxJbmZvLT5hcnJheU1vZGUp
IHsKICAgICAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29k
ZUJsb2NrKCk7CiAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29k
ZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVw
ZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAg
ICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24o
bG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CiAKLSAgICAgICAgICAgICAgICBKSVQ6OmNv
bXBpbGVEaXJlY3RQdXRCeVZhbCgmdm0sIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksICZieVZhbElu
Zm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAg
ICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVEaXJlY3RQdXRCeVZhbCgmdm0sIGNhbGxGcmFtZS0+
Y29kZUJsb2NrKCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJF
U1MpLCBhcnJheU1vZGUpOwogICAgICAgICAgICAgICAgIGRpZE9wdGltaXplID0gdHJ1ZTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNjQ5LDE3ICs2NDUsMTcgQEAgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBFbmNv
ZGVkSlNWYWx1ZQogICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0
aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgICAg
ICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBvYmplY3RzLCB0aGlzIGdp
dmVzIDEwIGl0ZXJhdGlvbnMgd29ydGggb2YKICAgICAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZv
ciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgot
ICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKKyAgICAgICAg
ICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAogICAgICAgICAgICAgICAg
IHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAg
ICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgICAgICBjdGlQ
YXRjaENhbGxCeVJldHVybkFkZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRk
cmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihvcGVyYXRpb25EaXJlY3RQ
dXRCeVZhbEdlbmVyaWMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLSAgICBk
aXJlY3RQdXRCeVZhbChjYWxsRnJhbWUsIG9iamVjdCwgc3Vic2NyaXB0LCB2YWx1ZSwgYXJyYXlQ
cm9maWxlKTsKKyAgICBkaXJlY3RQdXRCeVZhbChjYWxsRnJhbWUsIG9iamVjdCwgc3Vic2NyaXB0
LCB2YWx1ZSwgYnlWYWxJbmZvKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCit2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZt
LCBleGVjKTsKQEAgLTY2OCwxMSArNjY0LDExIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvCiAg
ICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogCi0g
ICAgcHV0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2Zp
bGUpOworICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlW
YWxJbmZvKTsKIH0KIAogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlW
YWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKK3ZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigm
dm0sIGV4ZWMpOwpAQCAtNjgxLDcgKzY3Nyw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1CiAg
ICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogICAg
IFJFTEVBU0VfQVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKLSAgICBkaXJlY3RQdXRCeVZh
bChleGVjLCBhc09iamVjdChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2Zp
bGUpOworICAgIGRpcmVjdFB1dEJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2VWYWx1ZSksIHN1YnNj
cmlwdCwgdmFsdWUsIGJ5VmFsSW5mbyk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjLCBFeGVjU3RhdGUqIGV4ZWNDYWxs
ZWUpCkBAIC0xNDU0LDM0ICsxNDUwLDQxIEBAIHN0YXRpYyBib29sIGNhbkFjY2Vzc0FyZ3VtZW50
SW5kZXhRdWlja2x5KEpTT2JqZWN0JiBvYmplY3QsIHVpbnQzMl90IGluZGV4KQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQ
cm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCitzdGF0aWMgSlNWYWx1ZSBn
ZXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNj
cmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVz
cykKIHsKICAgICBpZiAoTElLRUxZKGJhc2VWYWx1ZS5pc0NlbGwoKSAmJiBzdWJzY3JpcHQuaXNT
dHJpbmcoKSkpIHsKICAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICAgICAgU3RydWN0
dXJlJiBzdHJ1Y3R1cmUgPSAqYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUodm0pOwogICAg
ICAgICBpZiAoSlNDZWxsOjpjYW5Vc2VGYXN0R2V0T3duUHJvcGVydHkoc3RydWN0dXJlKSkgewog
ICAgICAgICAgICAgaWYgKFJlZlB0cjxBdG9taWNTdHJpbmdJbXBsPiBleGlzdGluZ0F0b21pY1N0
cmluZyA9IGFzU3RyaW5nKHN1YnNjcmlwdCktPnRvRXhpc3RpbmdBdG9taWNTdHJpbmcoZXhlYykp
IHsKLSAgICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBiYXNlVmFsdWUuYXNDZWxs
KCktPmZhc3RHZXRPd25Qcm9wZXJ0eSh2bSwgc3RydWN0dXJlLCBleGlzdGluZ0F0b21pY1N0cmlu
Zy5nZXQoKSkpCisgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gYmFzZVZhbHVl
LmFzQ2VsbCgpLT5mYXN0R2V0T3duUHJvcGVydHkodm0sIHN0cnVjdHVyZSwgZXhpc3RpbmdBdG9t
aWNTdHJpbmcuZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChleGVjLT5sb2Nh
dGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChieVZhbElu
Zm8tPnN0dWJJbmZvICYmIGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgpICE9IGV4aXN0aW5nQXRv
bWljU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT50b29rU2xvd1Bh
dGggPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChzdWJz
Y3JpcHQuaXNVSW50MzIoKSkgeworICAgICAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVj
b2RlT2Zmc2V0KCkpOworICAgICAgICBieVZhbEluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CisK
ICAgICAgICAgdWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigpOwogICAgICAgICBpZiAo
aXNKU1N0cmluZyhiYXNlVmFsdWUpKSB7CiAgICAgICAgICAgICBpZiAoYXNTdHJpbmcoYmFzZVZh
bHVlKS0+Y2FuR2V0SW5kZXgoaSkpIHsKICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJl
dHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRy
KG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGFzU3Ry
aW5nKGJhc2VWYWx1ZSktPmdldEluZGV4KGV4ZWMsIGkpOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAgICAgICAgICAgYnlWYWxJ
bmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAgICAgIH0gZWxzZSBpZiAo
YmFzZVZhbHVlLmlzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBh
c09iamVjdChiYXNlVmFsdWUpOwogICAgICAgICAgICAgaWYgKG9iamVjdC0+Y2FuR2V0SW5kZXhR
dWlja2x5KGkpKQogICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3QtPmdldEluZGV4UXVpY2ts
eShpKTsKIAogICAgICAgICAgICAgaWYgKCFjYW5BY2Nlc3NBcmd1bWVudEluZGV4UXVpY2tseSgq
b2JqZWN0LCBpKSkKLSAgICAgICAgICAgICAgICBhcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRz
KCk7CisgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91
bmRzKCk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gYmFzZVZhbHVlLmdldChleGVjLCBp
KTsKQEAgLTE0OTMsNzQgKzE0OTYsOTEgQEAgc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEEKICAgICBh
dXRvIHByb3BlcnR5ID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZXhlYyk7CiAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAg
IEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgaWYgKGJ5VmFs
SW5mby0+c3R1YkluZm8gJiYgYnlWYWxJbmZvLT5jYWNoZWRJZCAhPSBwcm9wZXJ0eSkKKyAgICAg
ICAgYnlWYWxJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOworCiAgICAgcmV0dXJuIGJhc2VWYWx1
ZS5nZXQoZXhlYywgcHJvcGVydHkpOwogfQogCiBleHRlcm4gIkMiIHsKICAgICAKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRT
dWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgSlNWYWx1ZSBiYXNl
VmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgc3Vic2Ny
aXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogCi0gICAgSlNWYWx1ZSBy
ZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9maWxl
LCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOworICAgIEpTVmFsdWUgcmVz
dWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGJ5VmFsSW5mbywgUmV0
dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqIGFy
cmF5UHJvZmlsZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlW
YWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIoJnZtLCBleGVjKTsKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkQmFzZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFN1YnNjcmlwdCk7Ci0gICAgCisKICAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkgJiYg
c3Vic2NyaXB0LmlzSW50MzIoKSkgewogICAgICAgICAvLyBTZWUgaWYgaXQncyB3b3J0aCBvcHRp
bWl6aW5nIHRoaXMgYXQgYWxsLgogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3Qo
YmFzZVZhbHVlKTsKICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgICAg
IHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0
KCk7Ci0gICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7Ci0gICAgICAgIEJ5VmFsSW5mbyYg
YnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNl
dCAtIDEpOwotICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7Ci0gICAgICAg
IAorICAgICAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOworICAg
ICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOworCiAgICAgICAgIGlmIChoYXNP
cHRpbWl6YWJsZUluZGV4aW5nKG9iamVjdC0+c3RydWN0dXJlKHZtKSkpIHsKICAgICAgICAgICAg
IC8vIEF0dGVtcHQgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IG9iamVjdC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJh
eU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJlKTsKLSAgICAgICAgICAg
IGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgeworICAgICAgICAgICAgaWYg
KGFycmF5TW9kZSAhPSBieVZhbEluZm8tPmFycmF5TW9kZSkgewogICAgICAgICAgICAgICAgIC8v
IElmIHdlIHJlYWNoZWQgdGhpcyBjYXNlLCB3ZSBnb3QgYW4gaW50ZXJlc3RpbmcgYXJyYXkgbW9k
ZSB3ZSBkaWQgbm90IGV4cGVjdCB3aGVuIHdlIGNvbXBpbGVkLgogICAgICAgICAgICAgICAgIC8v
IExldCdzIHVwZGF0ZSB0aGUgcHJvZmlsZSB0byBkbyBiZXR0ZXIgbmV4dCB0aW1lLgogICAgICAg
ICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CiAgICAg
ICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2sp
OwotICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9u
KGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGJ5VmFsSW5m
by0+YXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxv
Y2ssIHN0cnVjdHVyZSk7CiAKLSAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVHZXRCeVZhbCgm
dm0sIGV4ZWMtPmNvZGVCbG9jaygpLCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9S
RVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAgICAgICAgICAgSklUOjpjb21waWxl
R2V0QnlWYWwoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNz
UHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CiAgICAgICAgICAgICAgICAgZGlk
T3B0aW1pemUgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAorCiAg
ICAgICAgIGlmICghZGlkT3B0aW1pemUpIHsKICAgICAgICAgICAgIC8vIElmIHdlIHRha2Ugc2xv
dyBwYXRoIG1vcmUgdGhhbiAxMCB0aW1lcyB3aXRob3V0IHBhdGNoaW5nIHRoZW4gbWFrZSBzdXJl
IHdlCiAgICAgICAgICAgICAvLyBuZXZlciBtYWtlIHRoYXQgbWlzdGFrZSBhZ2Fpbi4gT3IsIGlm
IHdlIGZhaWxlZCB0byBwYXRjaCBhbmQgd2UgaGF2ZSBzb21lIG9iamVjdAogICAgICAgICAgICAg
Ly8gdGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRp
bCAxMCB0aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWlu
ZGV4LWludGVyY2VwdGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJhdGlvbnMgd29ydGgg
b2YKICAgICAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhl
IGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAgICAgaWYgKCsrYnlWYWxJ
bmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKKyAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xv
d1BhdGhDb3VudCA+PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZt
KS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0
byBvcHRpbWl6ZS4KICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3Mo
ZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwg
RnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVj
LCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9V
Ul9SRVRVUk5fQUREUkVTUykpOworCisgICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpICYmIChz
dWJzY3JpcHQuaXNTeW1ib2woKSB8fCBzdWJzY3JpcHQuaXNTdHJpbmcoKSkpIHsKKyAgICAgICAg
Y29uc3QgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3JpcHQudG9Qcm9wZXJ0eUtleShl
eGVjKTsKKworICAgICAgICBpZiAoIXN1YnNjcmlwdC5pc1N0cmluZygpIHx8ICFwYXJzZUluZGV4
KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0
ZWNvZGVPZmZzZXQoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRp
bmUpOworICAgICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoJnZtLCBl
eGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5f
QUREUkVTUyksIHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdChiYXNlVmFsdWUpOworICAgICAgICBib29sIGhhc1Jlc3VsdCA9IGJhc2VWYWx1ZS5n
ZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShoYXNSZXN1bHQgPyBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5
TmFtZSkgOiBqc1VuZGVmaW5lZCgpKTsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGdl
dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBieVZhbEluZm8sIFJldHVybkFkZHJl
c3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwogfQotICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25I
YXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmls
ZSogYXJyYXlQcm9maWxlKQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZv
KiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xNTczLDE2ICsxNTkzLDE0IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVm
YXVsdChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGJh
c2VWYWx1ZSk7CiAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgdW5zaWduZWQg
Ynl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKLSAgICBB
U1NFUlQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+
Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwotICAgIEFTU0VS
VCghYnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKKyAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5
dGVjb2RlT2Zmc2V0KCkpOworICAgIEFTU0VSVCghYnlWYWxJbmZvLT5zdHViUm91dGluZSk7CiAg
ICAgCiAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcob2JqZWN0LT5zdHJ1Y3R1cmUodm0p
KSkgewogICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICBKSVRBcnJheU1v
ZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKG9iamVjdC0+c3RydWN0dXJl
KHZtKSk7Ci0gICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgewot
ICAgICAgICAgICAgSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KCZ2bSwgZXhlYy0+Y29k
ZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNT
KSwgYXJyYXlNb2RlKTsKKyAgICAgICAgaWYgKGFycmF5TW9kZSAhPSBieVZhbEluZm8tPmFycmF5
TW9kZSkgeworICAgICAgICAgICAgSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KCZ2bSwg
ZXhlYy0+Y29kZUJsb2NrKCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJO
X0FERFJFU1MpLCBhcnJheU1vZGUpOwogICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0cnVlOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMTU5MywxMCArMTYxMSwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRl
KiBleGVjLAogICAgICAgICAvLyB0aGF0IGludGVyY2VwdHMgaW5kZXhlZCBnZXQsIHRoZW4gZG9u
J3QgZXZlbiB3YWl0IHVudGlsIDEwIHRpbWVzLiBGb3IgY2FzZXMKICAgICAgICAgLy8gd2hlcmUg
d2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVy
YXRpb25zIHdvcnRoIG9mCiAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZl
IHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICBpZiAoKyti
eVZhbEluZm8uc2xvd1BhdGhDb3VudCA+PSAxMAorICAgICAgICBpZiAoKytieVZhbEluZm8tPnNs
b3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+
dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVu
Z3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgIC8vIERvbid0IGV2ZXIgdHJ5IHRvIG9wdGlt
aXplLgotICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVC
bG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRy
KG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMpKTsgCisgICAgICAgICAgICBjdGlQ
YXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQ
dHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uSGFzSW5kZXhlZFBy
b3BlcnR5R2VuZXJpYykpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNjA1LDExICsxNjIzLDEx
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3Bl
cnR5RGVmYXVsdChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNWYWx1ZShKU1ZhbHVlOjpKU1RydWUpKTsKIAogICAgIGlmICghY2FuQWNjZXNzQXJndW1l
bnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaW5kZXgpKQotICAgICAgICBhcnJheVByb2ZpbGUtPnNl
dE91dE9mQm91bmRzKCk7CisgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRP
ZkJvdW5kcygpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG9iamVjdC0+
aGFzUHJvcGVydHkoZXhlYywgaW5kZXgpKSk7CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xNjI1
LDExICsxNjQzLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFz
SW5kZXhlZFByb3BlcnR5R2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShKU1ZhbHVlOjpKU1RydWUpKTsKIAogICAgIGlmICghY2Fu
QWNjZXNzQXJndW1lbnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaW5kZXgpKQotICAgICAgICBhcnJh
eVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9m
aWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29s
ZWFuKG9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgc3Vic2NyaXB0LmFzVUludDMyKCkpKSk7CiB9
CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlW
YWxJbmZvKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTY0NCwxMCArMTY2Miw4IEBAIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgcmVzdWx0ID0gYmFz
ZVZhbHVlLmdldChleGVjLCBpKTsKICAgICAgICAgICAgIGlmICghaXNKU1N0cmluZyhiYXNlVmFs
dWUpKSB7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5s
b2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoYnl0ZWNv
ZGVPZmZzZXQpOwotICAgICAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+
Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwotICAgICAgICAg
ICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhleGVjLT5jb2RlQmxvY2soKSwgUmV0
dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihieVZhbEluZm8u
c3R1YlJvdXRpbmUgPyBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRCeVZh
bE9wdGltaXplKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNCeXRl
Y29kZU9mZnNldCgpKTsKKyAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJl
c3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNT
KSwgRnVuY3Rpb25QdHIoYnlWYWxJbmZvLT5zdHViUm91dGluZSA/IG9wZXJhdGlvbkdldEJ5VmFs
R2VuZXJpYyA6IG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5oCmluZGV4IGNhY2ZmMmNkOWJkMmFhMGJmN2U3MzBjZmRlMGYxMzBmYzgyNjlkZDguLmM2
ZDI4YzZhM2ZkZDNlNmQ5ODUwODgzNzU1OWU1MTA5MjU1YWI4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC01OCw2ICs1OCw3IEBAIGV4dGVybiAiQyIg
ewogICAgIEE6IEpTQXJyYXkqCiAgICAgQWFwOiBBcnJheUFsbG9jYXRpb25Qcm9maWxlKgogICAg
IEFwOiBBcnJheVByb2ZpbGUqCisgICAgQnk6IEJ5VmFsSW5mbyoKICAgICBDOiBKU0NlbGwqCiAg
ICAgQ2I6IENvZGVCbG9jayoKICAgICBDbGk6IENhbGxMaW5rSW5mbyoKQEAgLTExMyw2ICsxMTQs
NyBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlv
bl9FSkkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKUwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpJZGMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBjb25zdCBJZGVudGlmaWVyKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpK
X0pJVE9wZXJhdGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBBcnJheVByb2ZpbGUqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpzc1opKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwg
aW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FSlApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCB2b2lkKik7CiB0eXBlZGVm
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FUCkoRXhlY1N0
YXRlKiwgdm9pZCopOwpAQCAtMTk1LDYgKzE5Nyw3IEBAIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUpJZEopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJ
CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSWRKSikoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlv
bl9FSkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25f
RUpKSkFwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgq
Vl9KSVRPcGVyYXRpb25fRUpKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgdm9pZCBKSVRf
T1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpQUCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIHZvaWQqLCB2b2lkKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3Bl
cmF0aW9uX0VKWkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVk
SlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VK
WikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpOwpAQCAtMjU5LDEwICsyNjIs
MTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RCdWlsZExp
c3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkkKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeUlkRGlyZWN0U3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdEJ1aWxkTGlzdChFeGVjU3RhdGUqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwogdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlYWxsb2NhdGVTdG9yYWdlQW5kRmluaXNoUHV0KEV4
ZWNTdGF0ZSosIEpTT2JqZWN0KiwgU3RydWN0dXJlKiwgUHJvcGVydHlPZmZzZXQsIEVuY29kZWRK
U1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlW
YWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxl
KikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5
VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdU
Rl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSosIEV4
ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlu
a0NhbGwoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25MaW5rUG9seW1vcnBoaWNDYWxsKEV4ZWNTdGF0ZSosIENhbGxM
aW5rSW5mbyopIFdURl9JTlRFUk5BTDsKQEAgLTMxMCwxMSArMzEzLDExIEBAIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJO
QUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZURpZENhbGwoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Qcm9maWxlV2lsbENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRF
Uk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tIYXNJbnN0
YW5jZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbCkg
V1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRC
eVZhbE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkg
V1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJ
bmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBXVEZf
SU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4
ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSopIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRp
bWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3Jp
cHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5k
ZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJv
cGVydHlHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWQoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgY29uc3QgSWRlbnRpZmllciopIFdURl9JTlRFUk5BTDsK
IEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQTmFtZXMoRXhlY1N0YXRlKiwgSlNP
YmplY3QqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkluc3RhbmNlT2YoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IHByb3RvKSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDRlZjA2ZDkyMTNhMmIxZGJmZmJhNGM3YzMzNGQyZjZm
MWM0NzkxN2UuLjczZDM3ZDk0NDFjODFlODNkZGRmZTFlZGJkNWI0NGVmZjE2ZWRlZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC05
OCwxMCArOTgsMTggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5v
cGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0
XS51LmFycmF5UHJvZmlsZTsKLSAgICAKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29k
ZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKKwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJh
c2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDEpOwotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdElt
bWVkaWF0ZUludGVnZXIocmVnVDEpOwogCisgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxs
KHJlZ1QwLCBiYXNlKTsKKworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGltcGxlbWVudCBwYXRj
aGFibGVCcmFuY2g2NC4KKyAgICBKdW1wIGlzSW5kZXggPSBlbWl0SnVtcElmSW1tZWRpYXRlSW50
ZWdlcihyZWdUMSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNoYWJsZUp1bXAo
KTsKKyAgICBhZGRTbG93Q2FzZShub3RJbmRleCk7CisKKyAgICBpc0luZGV4LmxpbmsodGhpcyk7
CiAgICAgLy8gVGhpcyBpcyB0ZWNobmljYWxseSBpbmNvcnJlY3QgLSB3ZSdyZSB6ZXJvLWV4dGVu
ZGluZyBhbiBpbnQzMi4gIE9uIHRoZSBob3QgcGF0aCB0aGlzIGRvZXNuJ3QgbWF0dGVyLgogICAg
IC8vIFdlIGNoZWNrIHRoZSB2YWx1ZSBhcyBpZiBpdCB3YXMgYSB1aW50MzIgYWdhaW5zdCB0aGUg
bV92ZWN0b3JMZW5ndGggLSB3aGljaCB3aWxsIGFsd2F5cyBmYWlsIGlmCiAgICAgLy8gbnVtYmVy
IHdhcyBzaWduZWQgc2luY2UgbV92ZWN0b3JMZW5ndGggaXMgYWx3YXlzIGxlc3MgdGhhbiBpbnRt
YXggKHNpbmNlIHRoZSB0b3RhbCBhbGxvY2F0aW9uCkBAIC0xMTAsNyArMTE4LDYgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgIC8vIGV4dGVuZGluZyBzaW5jZSBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2
YWx1ZSBpbiB0aGUgc2xvdyBjYXNlLgogICAgIHplcm9FeHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdU
MSk7CiAKLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOwogICAg
IGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwog
ICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QyKTsKIApAQCAt
MTQ5LDggKzE1Niw4IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7Ci0gICAgCi0gICAgbV9ieVZhbENvbXBpbGF0
aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFk
VHlwZSwgbW9kZSwgZG9uZSkpOworCisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQo
QnlWYWxDb21waWxhdGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRl
eCwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJ
VDo6ZW1pdERvdWJsZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQpA
QCAtMTk1LDE1ICsyMDIsNTIgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VM
b2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICByZXR1cm4gc2xv
d0Nhc2VzOwogfQogCitKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENh
Y2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykK
K3sKKyAgICAvLyBiYXNlOiByZWdUMAorICAgIC8vIHByb3BlcnR5OiByZWdUMQorICAgIC8vIHNj
cmF0Y2g6IHJlZ1QzCisKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZDsKKworICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMSkp
OworICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7CisgICAg
ICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkp
LCByZWdUMyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hT
dHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFk
ZHJlc3MocmVnVDEsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMyk7CisgICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMykpOworICAgICAgICBz
bG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QzLCBTdHJpbmdJ
bXBsOjpmbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21p
YygpKSkpOworICAgIH0KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwg
cmVnVDMsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdl
dEJ5SWRHZW5lcmF0b3IgZ2VuKAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5
dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAg
SlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIERvbnRTcGlsbCk7CisgICAg
Z2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1w
KCkpOworCisgICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQ
YXRoSnVtcCgpLmxpbmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdp
dGhQcm9maWxlLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCks
IHJlZ1QwLCBwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxs
KGNvbGRQYXRoQmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKwor
ICAgIHJldHVybiBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQ7CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAg
QXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9m
aWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tt
X2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAotICAgIGxpbmtTbG93Q2Fz
ZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpT
Q2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCisgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsK
ICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKICAgICBKdW1wIG5v
dFN0cmluZyA9IGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgCkBAIC0yMjQsNyArMjY4LDcgQEAg
dm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KGJhc2UsIHJlZ1QwKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3BlcnR5LCByZWdU
MSk7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9wdGlt
aXplLCBkc3QsIHJlZ1QwLCByZWdUMSwgcHJvZmlsZSk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIHJlZ1QwLCByZWdUMSwgYnlW
YWxJbmZvKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9u
SW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9u
SW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0y
NjMsNiArMzA3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0
XS51LmFycmF5UHJvZmlsZTsKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2Nr
LT5hZGRCeVZhbEluZm8oKTsKIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJl
Z1QwLCBwcm9wZXJ0eSwgcmVnVDEpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0
ZUludGVnZXIocmVnVDEpOwpAQCAtMjk5LDggKzM0NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1
dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBMYWJl
bCBkb25lID0gbGFiZWwoKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVu
ZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBk
b25lKSk7Ci0KKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0
aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFk
VHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1p
dEdlbmVyaWNDb250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
biwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCkBA
IC0zOTksNiArNDQzLDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVy
dHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCB2YWx1ZSA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxl
ID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyog
YnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRl
eF0uYnlWYWxJbmZvOwogCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQz
MiBjaGVjawogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNl
IGNlbGwgY2hlY2sKQEAgLTQyNCw3ICs0NjksNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0
X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhcwog
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVydHksIHJlZ1QxKTsKICAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVyKHZhbHVlLCByZWdUMik7CiAgICAgYm9vbCBpc0RpcmVjdCA9IG1faW50
ZXJwcmV0ZXItPmdldE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5vcGNvZGUpID09IG9w
X3B1dF9ieV92YWxfZGlyZWN0OwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oaXNEaXJl
Y3QgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMCwg
cmVnVDEsIHJlZ1QyLCBwcm9maWxlKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKGlz
RGlyZWN0ID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwgOiBvcGVyYXRpb25QdXRCeVZhbCwgcmVn
VDAsIHJlZ1QxLCByZWdUMiwgYnlWYWxJbmZvKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAg
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJu
QWRkcmVzcyA9IGNhbGw7CkBAIC05OTksNiArMTA0NCwzNiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNv
bXBpbGVHZXRCeVZhbChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1
cm5BZAogICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRy
ZXNzLCBGdW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMpKTsKIH0KIAordm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiBieVZhbElu
Zm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKQoreworICAgIEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24gPSBtX2Nv
ZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRl
eDsKKworICAgIEp1bXBMaXN0IGRvbmVDYXNlczsKKyAgICBKdW1wTGlzdCBzbG93Q2FzZXM7CisK
KyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbiA9IGVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChj
dXJyZW50SW5zdHJ1Y3Rpb24sIHByb3BlcnR5TmFtZSwgZG9uZUNhc2VzLCBzbG93Q2FzZXMpOwor
CisgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9jb2RlQmxvY2stPm1fbG9jayk7Cisg
ICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqbV92bSwgKnRoaXMsIG1fY29kZUJsb2NrKTsKKyAg
ICBwYXRjaEJ1ZmZlci5saW5rKHNsb3dDYXNlcywgQ29kZUxvY2F0aW9uTGFiZWwoTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyOjpjcmVhdGVGcm9tRXhlY3V0YWJsZUFkZHJlc3MocmV0dXJuQWRkcmVzcy52
YWx1ZSgpKSkubGFiZWxBdE9mZnNldChieVZhbEluZm8tPnJldHVybkFkZHJlc3NUb1Nsb3dQYXRo
KSk7CisgICAgcGF0Y2hCdWZmZXIubGluayhkb25lQ2FzZXMsIGJ5VmFsSW5mby0+YmFkVHlwZUp1
bXAubGFiZWxBdE9mZnNldChieVZhbEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7CisgICAgZm9y
IChjb25zdCBhdXRvJiBjYWxsU2l0ZSA6IG1fY2FsbHMpIHsKKyAgICAgICAgaWYgKGNhbGxTaXRl
LnRvKQorICAgICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhjYWxsU2l0ZS5mcm9tLCBGdW5jdGlv
blB0cihjYWxsU2l0ZS50bykpOworICAgIH0KKyAgICBnZW4uZmluYWxpemUocGF0Y2hCdWZmZXIp
OworCisgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIo
CisgICAgICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJCYXNlbGluZSBn
ZXRfYnlfdmFsIHdpdGggY2FjaGVkIHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZvciAlcywgcmV0
dXJuIHBvaW50ICVwIiwgcHJvcGVydHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEoKSwgdG9DU3Ry
aW5nKCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKKyAgICBi
eVZhbEluZm8tPmNhY2hlZElkID0gcHJvcGVydHlOYW1lOworICAgIGJ5VmFsSW5mby0+c3R1Yklu
Zm8gPSBnZW4uc3R1YkluZm8oKTsKKworICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlciht
X2NvZGVCbG9jayk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5ub3RJbmRl
eEp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUtPmNvZGUoKS5j
b2RlKCkpKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJu
QWRkcmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7Cit9CisKIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1
cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAg
ICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVj
dGlvbnMoKS5iZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXgg
NjA5Y2ExMzg4MjI3ZGI1YmRhNTM5Mjc1MzAzZGFkZDJkOGIxY2ViYy4uMTE3ZWJlYzVjMzBjNWRj
ZjBmNWY1M2M5MTg0OTY3ZmZmMjE1OTM3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xNDksMTEgKzE0OSwxMyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAg
QXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9m
aWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5m
bygpOwogICAgIAogICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCBy
ZWdUMywgcmVnVDIpOwogICAgIAotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCBy
ZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAgIGVtaXRKdW1wU2xv
d0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRl
eCA9IHBhdGNoYWJsZUJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkludDMyVGFnKSk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogICAgIGVtaXRBcnJh
eVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogICAgIGFuZDMy
KFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QxKTsKIApAQCAtMTkyLDcgKzE5
NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgZW1pdFN0b3Jl
KGRzdCwgcmVnVDEsIHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFw
cGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2Rl
LCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxh
dGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwgYmFkVHlwZSwg
bW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdENvbnRp
Z3VvdXNMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdU
eXBlIGV4cGVjdGVkU2hhcGUpCkBAIC0yMzYsMTYgKzIzOCw1MyBAQCBKSVQ6Okp1bXBMaXN0IEpJ
VDo6ZW1pdEFycmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRU
eXBlKQogICAgIAogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9Ci0gICAgCisKK0pJVEdldEJ5SWRH
ZW5lcmF0b3IgSklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlzdCYg
ZG9uZUNhc2VzLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQoreworICAgIGludCBkc3QgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworCisgICAgLy8gYmFzZTogdGFnKHJlZ1QxKSwgcGF5
bG9hZChyZWdUMCkKKyAgICAvLyBwcm9wZXJ0eTogdGFnKHJlZ1QzKSwgcGF5bG9hZChyZWdUMikK
KyAgICAvLyBzY3JhdGNoOiByZWdUNAorCisgICAgc2xvd0Nhc2VzLmFwcGVuZChlbWl0SnVtcElm
Tm90SlNDZWxsKHJlZ1QzKSk7CisgICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Cisg
ICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNz
KHJlZ1QyLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zeW1ib2xTdHJ1Y3R1
cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBTeW1ib2w6Om9mZnNl
dE9mUHJpdmF0ZU5hbWUoKSksIHJlZ1Q0KTsKKyAgICB9IGVsc2UgeworICAgICAgICBzbG93Q2Fz
ZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxs
OjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7Cisg
ICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMiwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSks
IHJlZ1Q0KTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0UHRyKFplcm8sIHJl
Z1Q0KSk7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdDMyKFplcm8sIEFkZHJl
c3MocmVnVDQsIFN0cmluZ0ltcGw6OmZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoU3RyaW5n
SW1wbDo6ZmxhZ0lzQXRvbWljKCkpKSk7CisgICAgfQorICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJh
bmNoUHRyKE5vdEVxdWFsLCByZWdUNCwgVHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgp
KSkpOworCisgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCisgICAgICAgIG1fY29kZUJsb2Nr
LCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lz
dGVycygpLAorICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVl
UmVncyhyZWdUMSwgcmVnVDApLCBEb250U3BpbGwpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRo
KCp0aGlzKTsKKworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIExhYmVsIGNv
bGRQYXRoQmVnaW4gPSBsYWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5saW5rKHRoaXMp
OworCisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwgb3BlcmF0aW9u
R2V0QnlJZE9wdGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMSwgcmVnVDAsIHByb3Bl
cnR5TmFtZS5pbXBsKCkpOworICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdp
biwgY2FsbCk7CisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisgICAgcmV0dXJuIGdl
bjsKK30KKwogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikK
IHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBp
bnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3Bl
cnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBBcnJheVByb2ZpbGUq
IHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Ci0gICAgCi0g
ICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjaworICAgIEJ5VmFs
SW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rp
b25JbmRleF0uYnlWYWxJbmZvOworCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwg
YmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjaworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJv
cGVydHkgaW50MzIgY2hlY2sKIAogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTI2NSw3ICszMDQsNyBAQCB2
b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIAogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCBy
ZWdUMCk7CiAgICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1QzLCByZWdUMik7Ci0gICAgQ2FsbCBj
YWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIHJlZ1Qx
LCByZWdUMCwgcmVnVDMsIHJlZ1QyLCBwcm9maWxlKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdU
MywgcmVnVDIsIGJ5VmFsSW5mbyk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlW
YWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlW
YWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3Mg
PSBjYWxsOwpAQCAtMjc5LDYgKzMxOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZvKiBieVZhbEluZm8g
PSBtX2NvZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAgCiAgICAgZW1pdExvYWQyKGJhc2Us
IHJlZ1QxLCByZWdUMCwgcHJvcGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCkBAIC0zMTQsNyAr
MzU0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAotICAg
IG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0
ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRp
b25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVP
ZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwog
fQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0QnlWYWwoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5k
ZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCkBAIC00MTksNiArNDU5LDcgQEAgdm9pZCBKSVQ6OmVt
aXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwogICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7
CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJy
YXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9u
SW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAogICAgIGxpbmtT
bG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2VJ
Zk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCkBAIC00NjYsNyArNTA3
LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBlbWl0TG9hZChiYXNlLCByZWdUMiwg
cmVnVDEpOwogICAgIGVtaXRMb2FkKHByb3BlcnR5LCByZWdUMywgcmVnVDApOwogICAgIGVtaXRM
b2FkKHZhbHVlLCByZWdUNSwgcmVnVDQpOwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24o
aXNEaXJlY3QgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCBy
ZWdUMiwgcmVnVDEsIHJlZ1QzLCByZWdUMCwgcmVnVDUsIHJlZ1Q0LCBwcm9maWxlKTsKKyAgICBD
YWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKGlzRGlyZWN0ID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlW
YWwgOiBvcGVyYXRpb25QdXRCeVZhbCwgcmVnVDIsIHJlZ1QxLCByZWdUMywgcmVnVDAsIHJlZ1Q1
LCByZWdUNCwgYnlWYWxJbmZvKTsKICNlbmRpZgogCiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5m
b1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1BhdGhUYXJnZXQgPSBzbG93UGF0aDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggZTU3OTBkNzg3MjI2YmVhNzYw
MjRjOWQxZDY2YTY3NjBmNjRkZTVhMi4uODNmNWRlMjQ4NTJiYzM3OGVlMGE3NzAzOWY0NjMxODI1
ZmRkZGJiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9s
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTc5LDYg
Kzc5LDggQEAgY2xhc3MgU3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNPYmpl
Y3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgZG91
YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCisgICAgc3RhdGljIHNpemVfdCBvZmZz
ZXRPZlByaXZhdGVOYW1lKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN5bWJvbCwgbV9wcml2
YXRlTmFtZSk7IH0KKwogcHJvdGVjdGVkOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxs
Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYzU4NTE2MDJlOTM0YjMzNjY4YWVkMmNmZjRkZGNiNzg3NmVlMTg4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzCkBAIC0wLDAgKzEsMjMgQEAKK3ZhciBzeW1ib2wg
PSAiQEBzcGVjaWVzIjsKK2Z1bmN0aW9uIEhlbGxvKCkgeworfQorCitPYmplY3QuZGVmaW5lUHJv
cGVydHkoSGVsbG8sIHN5bWJvbCwgeworICAgIGdldDogZnVuY3Rpb24gKCkgeworICAgICAgICBy
ZXR1cm4gdGhpczsKKyAgICB9Cit9KTsKKworSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlID0gZnVu
Y3Rpb24gKCkgeworICAgIHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcltzeW1ib2xdKCk7Cit9
OworCitmdW5jdGlvbiBvaygpIHsKKyAgICB2YXIgb2JqZWN0ID0gbmV3IEhlbGxvKCk7CisgICAg
aWYgKCEob2JqZWN0LmdlbmVyYXRlKCkgaW5zdGFuY2VvZiBIZWxsbykpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiYmFkIGluc3RhbmNlIik7Cit9Citub0lubGluZShvayk7CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctZXhpdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWEyNjJkNjRhNjYxNDk2NDY2OWFiNzRjYjJmMDFmYTRl
ZDgwMmY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMKQEAgLTAsMCArMSwzNCBAQAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKK3sKKyAgICByZXR1cm4gb2Jq
ZWN0W25hbWVdOworfQorbm9JbmxpbmUoZ2V0QnlWYWwpOworCitmdW5jdGlvbiBnZXRTdHIxKCkK
K3sKKyAgICByZXR1cm4gImhlbGxvIjsKK30KK25vSW5saW5lKGdldFN0cjEpOworCitmdW5jdGlv
biBnZXRTdHIyKCkKK3sKKyAgICByZXR1cm4gImhlbGxvIjsKK30KK25vSW5saW5lKGdldFN0cjIp
OworCit2YXIgb2JqZWN0ID0geworICAgIGhlbGxvOiA0MgorfTsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAw
ID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigpKSwgNDIpOworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0
LCB7IHRvU3RyaW5nKCkgeyByZXR1cm4gJ2hlbGxvJzsgfSB9KSwgNDIpOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUg
MiA9PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFs
KG9iamVjdCwgeyB0b1N0cmluZygpIHsgcmV0dXJuICdoZWxsbyc7IH0gfSksIDQyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1nZW5lcmF0ZWQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2VuZXJhdGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MTNhN2Ux
NDBkMzg2NjUzZmJjMzU0YzUwZWFkNThlMTIxOWQzYTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2Vu
ZXJhdGVkLmpzCkBAIC0wLDAgKzEsMzMgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBnZXRCeVZhbChv
YmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30KK25vSW5saW5lKGdl
dEJ5VmFsKTsKKwordmFyIHZhbHVlID0gJ2xvJzsKKworZnVuY3Rpb24gZ2V0U3RyMSgpCit7Cisg
ICAgcmV0dXJuICJoZWwiICsgdmFsdWU7Cit9Citub0lubGluZShnZXRTdHIxKTsKKworZnVuY3Rp
b24gZ2V0U3RyMigpCit7CisgICAgcmV0dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIy
KTsKKwordmFyIG9iamVjdCA9IHsKKyAgICBoZWxsbzogNDIsCisgICAgd29ybGQ6IDUwCit9Owor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwo
b2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKK3Nob3Vs
ZEJlKGdldEJ5VmFsKG9iamVjdCwgJ3dvcmxkJyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctZ2V0dGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1OGVjMGE4NmRiOTU0ZDg0N2Y2YjhmNzYyZDI5
NmJlZGNlYjFiZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2V0dGVyLmpzCkBAIC0wLDAgKzEsMTYg
QEAKKwordmFyIG9iamVjdCA9IHsKKyAgICBnZXQgaGVsbG8oKSB7CisgICAgICAgIHJldHVybiA0
MjsKKyAgICB9Cit9OworCitmdW5jdGlvbiBvaygpIHsKKyAgICB2YXIgdmFsdWUgPSAnaGVsbG8n
OworICAgIGlmIChvYmplY3RbdmFsdWVdICsgMjAgIT09IDYyKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoKTsKK30KK25vSW5saW5lKG9rKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsg
KytpKQorICAgIG9rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRiMzNk
OWJlY2IxNGFkMjA1Yjg3NTViZGZlMWY5NWJiMzk3YmI0OAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5q
cwpAQCAtMCwwICsxLDMxIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcign
YmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBu
YW1lKQoreworICAgIHJldHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRCeVZhbCk7
CisKK2Z1bmN0aW9uIGdldFN0cjEoKQoreworICAgIHJldHVybiAiaGVsbG8iOworfQorbm9Jbmxp
bmUoZ2V0U3RyMSk7CisKK2Z1bmN0aW9uIGdldFN0cjIoKQoreworICAgIHJldHVybiAiaGVsbG8i
OworfQorbm9JbmxpbmUoZ2V0U3RyMik7CisKK3ZhciBvYmplY3QgPSB7CisgICAgaGVsbG86IDQy
LAorICAgIHdvcmxkOiA1MAorfTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQor
ICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBn
ZXRTdHIyKCkpLCA0Mik7CitzaG91bGRCZShnZXRCeVZhbChvYmplY3QsICd3b3JsZCcpLCA1MCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0b3IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0b3IuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjg5NWMyNjQ1MWQyNTdhOTdhMmRiM2VjNTg5MjliOWQ1NTM0MzI1MQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1jb25zdHJ1Y3Rvci5qcwpAQCAtMCwwICsxLDIzIEBACit2YXIgc3ltYm9sID0gU3lt
Ym9sKCk7CitmdW5jdGlvbiBIZWxsbygpIHsKK30KKworT2JqZWN0LmRlZmluZVByb3BlcnR5KEhl
bGxvLCBzeW1ib2wsIHsKKyAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIHRo
aXM7CisgICAgfQorfSk7CisKK0hlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uICgp
IHsKKyAgICByZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3Jbc3ltYm9sXSgpOworfTsKKworZnVu
Y3Rpb24gb2soKSB7CisgICAgdmFyIG9iamVjdCA9IG5ldyBIZWxsbygpOworICAgIGlmICghKG9i
amVjdC5nZW5lcmF0ZSgpIGluc3RhbmNlb2YgSGVsbG8pKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoImJhZCBpbnN0YW5jZSIpOworfQorbm9JbmxpbmUob2spOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwOyArK2kpCisgICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzBjZGNiNjc2ZDk0ZTQ2YjZjMTAxYThhNzdkMDBiNjY0NGE4YzEwYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzCkBAIC0wLDAgKzEsMzggQEAKK3ZhciBzeW1ib2wx
ID0gU3ltYm9sKCk7Cit2YXIgc3ltYm9sMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMo
eyBbc3ltYm9sMV06IDQyIH0pWzBdOworCitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2Jq
ZWN0LCBuYW1lKQoreworICAgIHJldHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRC
eVZhbCk7CisKK2Z1bmN0aW9uIGdldFN5bTEoKQoreworICAgIHJldHVybiBzeW1ib2wxOworfQor
bm9JbmxpbmUoZ2V0U3ltMSk7CisKK2Z1bmN0aW9uIGdldFN5bTIoKQoreworICAgIHJldHVybiBz
eW1ib2wyOworfQorbm9JbmxpbmUoZ2V0U3ltMik7CisKK3ZhciBvYmplY3QgPSB7CisgICAgW3N5
bWJvbDFdOiA0MiwKKyAgICBoZWxsbzogNTAKK307CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
OyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN5
bTEoKSA6IGdldFN5bTIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ2hlbGxv
JyksIDUwKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJl
KGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0xKCkgOiBnZXRTeW0yKCkpLCA0
Mik7CitzaG91bGRCZShnZXRCeVZhbChvYmplY3QsICdoZWxsbycpLCA1MCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtZ2V0dGVyLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWdldHRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDM1ZTRiMDM4YTQ2NWQ0M2Vi
YzI4ZTVjZjQ4MTliNTllNjY2ODdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWdldHRlci5qcwpAQCAt
MCwwICsxLDIzIEBACisKK3ZhciBvYmplY3QgPSB7CisgICAgZ2V0IGhlbGxvKCkgeworICAgICAg
ICByZXR1cm4gNDI7CisgICAgfQorfTsKKwordmFyIHN5bWJvbCA9IFN5bWJvbCgpOworCitPYmpl
Y3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBzeW1ib2wsIHsKKyAgICBnZXQ6IGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgcmV0dXJuIDQyOworICAgIH0KK30pOworCitmdW5jdGlvbiBvaygpIHsKKyAg
ICBpZiAob2JqZWN0W3N5bWJvbF0gKyAyMCAhPT0gNjIpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigpOworfQorbm9JbmxpbmUob2spOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kp
CisgICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzgzNGViMjZi
ZTMyNmUxYzkxODQ5MWYwZTE5YjdmYTM4YmIwOTAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzCkBA
IC0wLDAgKzEsMzMgQEAKK3ZhciBzeW1ib2wxID0gU3ltYm9sKCk7Cit2YXIgc3ltYm9sMiA9IE9i
amVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoeyBbc3ltYm9sMV06IDQyIH0pWzBdOworCitmdW5j
dGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsK
K30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQoreworICAgIHJldHVybiBvYmpl
Y3RbbmFtZV07Cit9Citub0lubGluZShnZXRCeVZhbCk7CisKK2Z1bmN0aW9uIGdldFN5bTEoKQor
eworICAgIHJldHVybiBzeW1ib2wxOworfQorbm9JbmxpbmUoZ2V0U3ltMSk7CisKK2Z1bmN0aW9u
IGdldFN5bTIoKQoreworICAgIHJldHVybiBzeW1ib2wyOworfQorbm9JbmxpbmUoZ2V0U3ltMik7
CisKK3ZhciBvYmplY3QgPSB7CisgICAgW3N5bWJvbDFdOiA0MiwKKyAgICBoZWxsbzogNTAKK307
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZh
bChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDdiNmU3YTRiYThhYmIyOTViNGQ1MTMxMDUyNDFjZWZjM2Q4MTBmZGYuLmE2NjFkMzdhNGQx
NjcyZDIwZDRjNjE4MjNiODA4ZDYwYzY0NWJlYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MyBAQAorMjAx
NS0wOC0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlfdmFsIHdoZW4gdGhlIGdp
dmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHN5bnRoZXRpYyBiZW5jaG1hcmtzIHRoYXQgcmVwbGFj
ZXMgbm9ybWFsIHByb3BlcnR5IGxvYWQgd2l0aCBzeW1ib2wvc3RyaW5nIGtleWVkIGxvYWQuCisK
KyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXNlbGYtb3ItcHJvdG8uaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICoganMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LXByb3RvLW9yLXNlbGYuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qczogQWRkZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1m
cm9tLXRyeS1ibG9jay5qczogQWRkZWQuCisgICAgICAgIChBKToKKyAgICAgICAgKEIpOgorICAg
ICAgICAoQyk6CisgICAgICAgIChEKToKKyAgICAgICAgKEUpOgorICAgICAgICAoRik6CisgICAg
ICAgIChHKToKKyAgICAgICAgKGZvbyk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6
IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAg
ICAoYmFyKToKKyAgICAgICAgKEZvbyk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChGb28pOgorICAgICAgICAqIGpz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9j
ay5qczogQWRkZWQuCisgICAgICAgIChBKToKKyAgICAgICAgKEIpOgorICAgICAgICAoQyk6Cisg
ICAgICAgIChEKToKKyAgICAgICAgKEUpOgorICAgICAgICAoRik6CisgICAgICAgIChHKToKKyAg
ICAgICAgKGZvbyk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6IEFkZGVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJv
dG8tb3Itc2VsZi5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAg
ICAgICAgKEZvbyk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanM6IEFkZGVkLgorICAgICAgICAoZm9vKToK
KyAgICAgICAgKGJhcik6CisgICAgICAgIChGb28pOgorCiAyMDE1LTA4LTA0ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBzY3JpcHQgcGF0aHMg
aW4gdGhlc2UgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWNjZjQzYWZhMDdkM2M4ZTBmMTc4OTJlZWRhNzkyN2UyMWI4MThiMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjM3YzUwMDAwYzBhMWQxZTJmMjYyODU3
Zjc5YjRlYzQxNDdlMGM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRp
b24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDgy
YzQ1MGQ5NTVhZTk5NjRlZTI1YmZmMmI1ZmMwY2I2NmY0NTM1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lOWVmMTQxNTc1ODRjYTYxNjA2NDY4NzU5OGNmYmQ0ZGI3OTdmZWZiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApAQCAtMCwwICsx
LDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2Nr
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE2YTY2
NzI5NzAzNmE0NWM1ZjMyYjcwMWMwYmM3ZWZiMmZiZGExOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRy
eS1ibG9jay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2sKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWlu
LWZyb20tdHJ5LWJsb2NrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTZjOTYzYTAxMmIwMmNmMzYxNDQ1ZjY3
YzZlY2JkOGNkMThiMGIyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWMw
ZmM3MGVlN2EyNDU1NWZiMGZkOGFiYjZhM2U0NmE3ZmQ1MDQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODM2ZjU4ZDQxNTdiNTFiYjk4NTM4MmRjODFhNmQ5NDhmYjlkYjAyNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmVmOTJjOTA3OWNjMmRiZGRhYmU0Y2I2NTNiMzIzZmZmZTUzOTc0NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1s
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9y
LXNlbGYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmFiNjExYmQ0NWRlMzA0MjZmNmJiNTRiZTY5NTM5MGI3
MzBhMDg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjliMWFhNTdlY2FiNmExYTFhNzg0ZGI1ZTg4NDJmZTJiYWRiODVjMjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
cXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM3NTFiNjRlODIyYWIyZGVj
NDdhZDlhOWY0NjY4ZTM3OWUxZjA3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3Rv
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDIxNzEzNGY5ODI4OTA0Mzk1NjgyZjg4NzA2ZDJj
NjdhZDg4YjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxm
LW9yLXByb3RvLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctc2VsZi1vci1wcm90by5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNGE2Yjk5YzViNWUzMDZkODNi
NmYyNTM0MjNhMGZmODEzNThlMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1sCkBAIC0wLDAg
KzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDEwMGM1ZDhiOGY4Y2UyODU2MWM3YjUxMGE3ODNkNjUxMjUzYmRlMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzkwZWQ5NTJjZWVlMmEyMGVmZWM0ZGIxMDkz
NTNiNzczYjI4ZmJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24g
dGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDgyYzQ1
MGQ5NTVhZTk5NjRlZTI1YmZmMmI1ZmMwY2I2NmY0NTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lOWVmMTQxNTc1ODRjYTYxNjA2NDY4NzU5OGNmYmQ0ZGI3OTdmZWZiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApAQCAtMCwwICsxLDEy
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24u
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzc1NGJiMGU4
ZTU2OGM4ZDAyMDZlNjQ5ZTUyOTc0YjNmOWU0MmE0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1i
bG9jay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2sKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1s
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZy
b20tdHJ5LWJsb2NrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk3NWY5OTI4MGU3MjMzNWMyYjU0ZDNkOTNm
MDg2MTE4MzE5NzQ0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCkBAIC0wLDAg
KzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzE0OTRh
OWI0NTYyZjllMTY5MDQ3ODk3YWI2MDYzNWRmMTE0ODViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDliZmFjYTdhNWU0YjcyODhlY2VkMjZlODUzNjBkNTZlMDY3YzdhMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTE1ZDI2MmNlYTUyMDVjZjVmM2NiNjM3YTc4OGRhMzJiMGUzYTZjNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNl
bGYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NTgxNWNlMzNlOGFjNzc1MTA2ZGFiMmMyYTdiNDI2MTRmOTM4
Y2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLXByb3RvLW9yLXNlbGYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1
YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY0NjA1YzA3NjFjMjA4YmVmZDYyOWViZDIyYTRmZGY5ZmU4NDhjM2EKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
cXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVh
ZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVjZTQ2MjQ1ZTg4NmJlMjdmNTEw
NjZhNTE3M2M0OTUxZjJhMjBkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1x
dWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzY2OTEwOGJhYzFjZTZkMWVhODUwODAzNDQ1MzgxY2Rj
NWRhZjZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9y
LXByb3RvLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtc2VsZi1vci1wcm90by5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmNWYzZDcwNDgxYWNjYWFmMDVhMDAw
MDRhNWZlNTI5NmEzMmViZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5odG1sCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjU4OWYxZWJiOGMxMmRlMWNhMDNmODEyMmZkNDIyNTQz
MTAxNzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZS5qcwpAQCAtMCwwICsxLDE0IEBACisoZnVuY3Rpb24oKSB7CisgICAg
dmFyIGEgPSAnYScsIGwgPSAnbCc7CisgICAgdmFyIG8gPSB7W2FdOjF9OworICAgIHZhciBwID0g
e1thXToyLCBbbF06MTN9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDAwMDsgKytpKSB7CisgICAgICAgIHJlc3VsdCBePSBvW2FdOworICAgICAgICB2
YXIgdG1wID0gbzsKKyAgICAgICAgbyA9IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAg
IGlmIChyZXN1bHQgIT0gMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kYjU5NDAxZDdmNTcyODQ3MTRmZTdkM2Q1ZTA0NTIxMWJkNDdjMTUyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LmpzCkBAIC0wLDAgKzEsMTQgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9ICdhJywgYiA9
ICdiJywgYyA9ICdjJywgZCA9ICdkJywgZSA9ICdlJywgZiA9ICdmJywgZyA9ICdnJywgaCA9ICdo
JywgaSA9ICdpJywgaiA9ICdqJywgayA9ICdrJywgbCA9ICdsJzsKKyAgICB2YXIgbyA9IHtbYV06
MSwgW2JdOjIsIFtjXTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5
LCBbal06MTAsIFtrXToxMX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtiXTozLCBbY106NCwgW2Rd
OjUsIFtlXTo2LCBbZl06NywgW2ddOjgsIFtoXTo5LCBbaV06MTAsIFtqXToxMSwgW2tdOjEyLCBb
bF06MTN9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5k
ZXggPCAxMDAwMDAwOyArK2luZGV4KSB7CisgICAgICAgIHJlc3VsdCArPSBvW2FdIF4gb1tiXSBe
IG9bY10gXiBvW2RdIF4gb1tlXSBeIG9bZl0gXiBvW2ddIF4gb1toXSBeIG9baV0gXiBvW2pdIF4g
b1trXTsKKyAgICAgICAgdmFyIHRtcCA9IG87CisgICAgICAgIG8gPSBwOworICAgICAgICBwID0g
dG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDY1MDAwMDApCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWlu
LWZyb20tdHJ5LWJsb2NrLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZjk3MGZlZTI0YjBlZjY1NTI5MmNhZWRhNDFjNmJlYjAwZTBkNDI0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcwpAQCAtMCwwICsxLDQ5IEBACit2YXIgZiA9
ICdmJzsKKworZnVuY3Rpb24gQSgpIHsgfQorCitBLnByb3RvdHlwZSA9IHtbZl06NDJ9OworCitm
dW5jdGlvbiBCKCkgeyB9CisKK0IucHJvdG90eXBlID0gbmV3IEEoKTsKKworZnVuY3Rpb24gQygp
IHsgfQorCitDLnByb3RvdHlwZSA9IG5ldyBCKCk7CisKK2Z1bmN0aW9uIEQoKSB7IH0KKworRC5w
cm90b3R5cGUgPSBuZXcgQygpOworCitmdW5jdGlvbiBFKCkgeyB9CisKK0UucHJvdG90eXBlID0g
bmV3IEQoKTsKKworZnVuY3Rpb24gRigpIHsgfQorCitGLnByb3RvdHlwZSA9IG5ldyBFKCk7CisK
K2Z1bmN0aW9uIEcoKSB7IH0KKworRy5wcm90b3R5cGUgPSBuZXcgRigpOworCitmdW5jdGlvbiBm
b28obykgeworICAgIHRyeSB7CisgICAgICAgIHZhciByZXN1bHQgPSAwOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdCArPSBvW2ZdOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJu
IDUyOworICAgIH0KK30KKwordmFyIHJlc3VsdCA9IDA7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDsgKytpKQorICAgIHJlc3VsdCArPSBmb28obmV3IEcoKSk7CisKK2lmIChyZXN1bHQgIT0g
NDIwMDAwMDApCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiODhhYTViYmExMmVmMDM5OWY4MWY5
MDRjZmRiZTQ4ZDM4ZDljMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5qcwpAQCAtMCwwICsxLDkgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9
ICdhJywgYiA9ICdiJywgYyA9ICdjJywgZCA9ICdkJywgZSA9ICdlJywgZiA9ICdmJywgZyA9ICdn
JywgaCA9ICdoJywgaSA9ICdpJywgaiA9ICdqJywgayA9ICdrJzsKKyAgICB2YXIgbyA9IHtbYV06
MSwgW2JdOjIsIFtjXTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5
LCBbal06MTAsIFtrXToxMX07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaW5k
ZXggPSAwOyBpbmRleCA8IDEwMDAwMDA7ICsraW5kZXgpCisgICAgICAgIHJlc3VsdCArPSBvW2Fd
IF4gb1tiXSB8IG9bY10gXiBvW2RdICYgb1tlXSBeIG9bZl0gfCBvW2ddIF4gb1toXSAmIG9baV0g
XiBvW2pdIHwgb1trXTsKKyAgICBpZiAocmVzdWx0ICE9IDE1MDAwMDAwKQorICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1w
cm90by1vci1zZWxmLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNzQ5M2I5
OGY2MTBkMWM0YWQ5YjgzZWVjZjYxYTY3ZjllY2FhYjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXBy
b3RvLW9yLXNlbGYuanMKQEAgLTAsMCArMSwyNCBAQAordmFyIGYgPSAnZic7CisKK2Z1bmN0aW9u
IGZvbyhvKSB7CisgICAgcmV0dXJuIG9bZl07Cit9CisKK2Z1bmN0aW9uIGJhcihhKSB7CisgICAg
dmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsK
KyAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhLmxlbmd0aDsgKytqKQorICAgICAgICAgICAg
cmVzdWx0ICs9IGZvbyhhW2pdKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZnVu
Y3Rpb24gRm9vKCkgeworfQorCitGb28ucHJvdG90eXBlW2ZdID0gNDI7CisKK3ZhciByZXN1bHQg
PSBiYXIoW25ldyBGb28oKSwge1tmXToyNH1dKTsKKworaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDAp
CisgICAgdGhyb3cgIkVycm9yIGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1
YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTkxZGNlM2MyNTdkOGQ5ZDgwNGU1NDBhODA4ZjY4NGI0OTdmMzI5MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5q
cwpAQCAtMCwwICsxLDIyIEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSAnYSc7CisgICAg
dmFyIGwgPSAnbCc7CisgICAgdmFyIGIgPSAnYic7CisgICAgdmFyIGMgPSAnYyc7CisKKyAgICB2
YXIgbyA9IHtbYV06MX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307CisgICAgdmFyIHEg
PSB7W2FdOjMsIFtiXTozfTsKKyAgICB2YXIgciA9IHtbYV06NCwgW2NdOjV9OworICAgIHZhciBy
ZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKSB7CisgICAg
ICAgIHJlc3VsdCBePSBvW2FdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAgICAgICAgbyA9IHA7
CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gcjsKKyAgICAgICAgciA9IHRtcDsKKyAgICB9
CisgICAgaWYgKHJlc3VsdCAhPSAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpzIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1z
ZWxmLW9yLXByb3RvLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliZWMxMDdjYTdmYTM4MGYxYmM5NmVmN2U5YWUz
YWZjZDUxMTcyYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanMKQEAgLTAs
MCArMSwyNCBAQAordmFyIGYgPSAnZic7CisKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJu
IG9bZl07Cit9CisKK2Z1bmN0aW9uIGJhcihhKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsKKyAgICAgICAgZm9yICh2YXIgaiA9
IDA7IGogPCBhLmxlbmd0aDsgKytqKQorICAgICAgICAgICAgcmVzdWx0ICs9IGZvbyhhW2pdKTsK
KyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZnVuY3Rpb24gRm9vKCkgeworfQorCitG
b28ucHJvdG90eXBlW2ZdID0gNDI7CisKK3ZhciByZXN1bHQgPSBiYXIoW3tbZl06MjR9LCBuZXcg
Rm9vKCldKTsKKworaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDApCisgICAgdGhyb3cgIkVycm9yIGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODVkMzJhZjUwMzJjZDA0NTg1Nzg0
OTVjMzc3OTkyNTk4NWYzMDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpAQCAtMCwwICsxLDE0IEBACisoZnVuY3Rp
b24oKSB7CisgICAgdmFyIGEgPSBTeW1ib2woKSwgbCA9IFN5bWJvbCgpOworICAgIHZhciBvID0g
e1thXToxfTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKKyAgICB2YXIgcmVzdWx0ID0g
MDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgeworICAgICAgICByZXN1
bHQgXj0gb1thXTsKKyAgICAgICAgdmFyIHRtcCA9IG87CisgICAgICAgIG8gPSBwOworICAgICAg
ICBwID0gdG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJiZTk3MWI2MTYzNTk0Y2UyMDQz
ZTI3OTU1MDA3ZTgzMGIwNWI4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpAQCAtMCwwICsxLDE0IEBACisoZnVuY3Rpb24oKSB7
CisgICAgdmFyIGEgPSBTeW1ib2woKSwgYiA9IFN5bWJvbCgpLCBjID0gU3ltYm9sKCksIGQgPSBT
eW1ib2woKSwgZSA9IFN5bWJvbCgpLCBmID0gU3ltYm9sKCksIGcgPSBTeW1ib2woKSwgaCA9IFN5
bWJvbCgpLCBpID0gU3ltYm9sKCksIGogPSBTeW1ib2woKSwgayA9IFN5bWJvbCgpLCBsID0gU3lt
Ym9sKCk7CisgICAgdmFyIG8gPSB7W2FdOjEsIFtiXToyLCBbY106MywgW2RdOjQsIFtlXTo1LCBb
Zl06NiwgW2ddOjcsIFtoXTo4LCBbaV06OSwgW2pdOjEwLCBba106MTF9OworICAgIHZhciBwID0g
e1thXToyLCBbYl06MywgW2NdOjQsIFtkXTo1LCBbZV06NiwgW2ZdOjcsIFtnXTo4LCBbaF06OSwg
W2ldOjEwLCBbal06MTEsIFtrXToxMiwgW2xdOiAxM307CisgICAgdmFyIHJlc3VsdCA9IDA7Cisg
ICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IDEwMDAwMDA7ICsraW5kZXgpIHsKKyAgICAg
ICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIF4gb1tjXSBeIG9bZF0gXiBvW2VdIF4gb1tmXSBeIG9b
Z10gXiBvW2hdIF4gb1tpXSBeIG9bal0gXiBvW2tdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAg
ICAgICAgbyA9IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0g
NjUwMDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZy
b20tdHJ5LWJsb2NrLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmOGFjNzhhODYwNDMwZGI2N2FjYzRlZTM3NzBk
MzI3MzM4MDJlMWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpz
CkBAIC0wLDAgKzEsNDkgQEAKK3ZhciBmID0gU3ltYm9sKCJDb2NvYSIpOworCitmdW5jdGlvbiBB
KCkgeyB9CisKK0EucHJvdG90eXBlID0ge1tmXTo0Mn07CisKK2Z1bmN0aW9uIEIoKSB7IH0KKwor
Qi5wcm90b3R5cGUgPSBuZXcgQSgpOworCitmdW5jdGlvbiBDKCkgeyB9CisKK0MucHJvdG90eXBl
ID0gbmV3IEIoKTsKKworZnVuY3Rpb24gRCgpIHsgfQorCitELnByb3RvdHlwZSA9IG5ldyBDKCk7
CisKK2Z1bmN0aW9uIEUoKSB7IH0KKworRS5wcm90b3R5cGUgPSBuZXcgRCgpOworCitmdW5jdGlv
biBGKCkgeyB9CisKK0YucHJvdG90eXBlID0gbmV3IEUoKTsKKworZnVuY3Rpb24gRygpIHsgfQor
CitHLnByb3RvdHlwZSA9IG5ldyBGKCk7CisKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdHJ5IHsK
KyAgICAgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDsgKytpKQorICAgICAgICAgICAgcmVzdWx0ICs9IG9bZl07CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4gNTI7CisgICAgfQorfQorCit2
YXIgcmVzdWx0ID0gMDsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgcmVz
dWx0ICs9IGZvbyhuZXcgRygpKTsKKworaWYgKHJlc3VsdCAhPSA0MjAwMDAwMCkKKyAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24u
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWQ1OWZkOGUwYmI5OTE0ZWVkNmJmNGVlZDE1NTAwYzQ4ZjJjNDQyYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0w
LDAgKzEsOSBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gU3ltYm9sKCksIGIgPSBTeW1i
b2woKSwgYyA9IFN5bWJvbCgpLCBkID0gU3ltYm9sKCksIGUgPSBTeW1ib2woKSwgZiA9IFN5bWJv
bCgpLCBnID0gU3ltYm9sKCksIGggPSBTeW1ib2woKSwgaSA9IFN5bWJvbCgpLCBqID0gU3ltYm9s
KCksIGsgPSBTeW1ib2woKTsKKyAgICB2YXIgbyA9IHtbYV06MSwgW2JdOjIsIFtjXTozLCBbZF06
NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06MTAsIFtrXToxMX07Cisg
ICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IDEwMDAw
MDA7ICsraW5kZXgpCisgICAgICAgIHJlc3VsdCArPSBvW2FdIF4gb1tiXSB8IG9bY10gXiBvW2Rd
ICYgb1tlXSBeIG9bZl0gfCBvW2ddIF4gb1toXSAmIG9baV0gXiBvW2pdIHwgb1trXTsKKyAgICBp
ZiAocmVzdWx0ICE9IDE1MDAwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmpzIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1w
cm90by1vci1zZWxmLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyZjgyYWIyNjhhNzMyOTM3MDg1NzZiYzc4MDZl
Y2E2N2I2YWViOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanMKQEAgLTAs
MCArMSwyNCBAQAordmFyIGYgPSBTeW1ib2woIkNvY29hIik7CisKK2Z1bmN0aW9uIGZvbyhvKSB7
CisgICAgcmV0dXJuIG9bZl07Cit9CisKK2Z1bmN0aW9uIGJhcihhKSB7CisgICAgdmFyIHJlc3Vs
dCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsKKyAgICAgICAg
Zm9yICh2YXIgaiA9IDA7IGogPCBhLmxlbmd0aDsgKytqKQorICAgICAgICAgICAgcmVzdWx0ICs9
IGZvbyhhW2pdKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZnVuY3Rpb24gRm9v
KCkgeworfQorCitGb28ucHJvdG90eXBlW2ZdID0gNDI7CisKK3ZhciByZXN1bHQgPSBiYXIoW25l
dyBGb28oKSwge1tmXToyNH1dKTsKKworaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDApCisgICAgdGhy
b3cgIkVycm9yIGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU4MzYy
YWRlYTcwYWI4MjA0ZGU1ZDU1YjllNGM1NjhjMTEwZDA3NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
cXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpAQCAtMCww
ICsxLDIyIEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSBTeW1ib2woIkNvY29hIik7Cisg
ICAgdmFyIGwgPSBTeW1ib2woKTsKKyAgICB2YXIgYiA9IFN5bWJvbCgpOworICAgIHZhciBjID0g
U3ltYm9sKCk7CisKKyAgICB2YXIgbyA9IHtbYV06MX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFts
XToxM307CisgICAgdmFyIHEgPSB7W2FdOjMsIFtiXTozfTsKKyAgICB2YXIgciA9IHtbYV06NCwg
W2NdOjV9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwMDsgKytpKSB7CisgICAgICAgIHJlc3VsdCBePSBvW2FdOworICAgICAgICB2YXIgdG1wID0g
bzsKKyAgICAgICAgbyA9IHA7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gcjsKKyAgICAg
ICAgciA9IHRtcDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAwKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxm
LW9yLXByb3RvLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwMDhjMzY0MTIw
YmYyYWE0OGFkNzRhYTNiNWE2ZmM3Yjk2N2JmYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYt
b3ItcHJvdG8uanMKQEAgLTAsMCArMSwyNCBAQAordmFyIGYgPSBTeW1ib2woJ0NvY29hJyk7CisK
K2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIG9bZl07Cit9CisKK2Z1bmN0aW9uIGJhcihh
KSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwMDAw
OyArK2kpIHsKKyAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhLmxlbmd0aDsgKytqKQorICAg
ICAgICAgICAgcmVzdWx0ICs9IGZvbyhhW2pdKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworZnVuY3Rpb24gRm9vKCkgeworfQorCitGb28ucHJvdG90eXBlW2ZdID0gNDI7CisKK3Zh
ciByZXN1bHQgPSBiYXIoW3tbZl06MjR9LCBuZXcgRm9vKCldKTsKKworaWYgKHJlc3VsdCAhPSAx
MzIwMDAwMDApCisgICAgdGhyb3cgIkVycm9yIGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258297</attachid>
            <date>2015-08-05 13:50:45 -0700</date>
            <delta_ts>2015-08-05 13:59:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150805135038.patch</filename>
            <type>text/plain</type>
            <size>150580</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MzllNTViYTc1MTg0NTIwNDA5MjVmODQ5N2Y2MDI4MzFhYzhiOGExLi44Zjg1M2ExNjNjOGQ4YmU3
MjZjN2I2NDdlNTI3MzgxYzc1YTc3ZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjIgQEAKKzIwMTUtMDgtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGdldF9ieV9pZCBsaWtlIElDIGludG8gZ2V0X2J5
X3ZhbCB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIFN0cmluZyBvciBTeW1ib2wKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBnZXRf
YnlfaWQgSUMgdG8gZ2V0X2J5X3ZhbCBvcGVyYXRpb24gYnkgY2FjaGluZyB0aGUgc3RyaW5nIC8g
c3ltYm9sIGlkLgorICAgICAgICBUaGUgSUMgc2l0ZSBvbmx5IGNhY2hlcyBvbmUgaWQuIEFmdGVy
IGNoZWNraW5nIHRoYXQgdGhlIGdpdmVuIGlkIGlzIHRoZSBzYW1lIHRvIHRoZQorICAgICAgICBj
YWNoZWQgb25lLCB3ZSBwZXJmb3JtIHRoZSBnZXRfYnlfaWQgSUMgb250byBpdC4KKyAgICAgICAg
QW5kIGJ5IGNvbGxlY3RpbmcgSUMgU3RydWN0dXJlU3R1YkluZm8gaW5mb3JtYXRpb24sIHdlIHBh
c3MgaXQgdG8gdGhlIERGRyBhbmQgREZHCisgICAgICAgIGNvbXBpbGVzIGdldF9ieV92YWwgb3Ag
Y29kZSBpbnRvIENoZWNrSWRlbnQgKHdpdGggZWRnZSB0eXBlIGNoZWNrKSBhbmQgR2V0QnlJZCBy
ZWxhdGVkCisgICAgICAgIG9wZXJhdGlvbnMgd2hlbiB0aGUgZ2l2ZW4gZ2V0X2J5X3ZhbCBsZXZl
cmFnZXMgdGhlIHByb3BlcnR5IGxvYWQgd2l0aCB0aGUgY2FjaGVkIGlkLgorCisgICAgICAgIFRv
IGVuc3VyZSB0aGUgaW5jb21pbmcgdmFsdWUgaXMgdGhlIGV4cGVjdGVkIGlkLCBpbiBERkcgbGF5
ZXIsIHdlIHVzZSBTeW1ib2xVc2UgYW5kCisgICAgICAgIFN0cmluZ0lkZW50VXNlIHRvIGVuZm9y
Y2UgdGhlIHR5cGUuIFRvIHVzZSBpdCwgdGhpcyBwYXRjaCBpbXBsZW1lbnRzIFN5bWJvbFVzZS4K
KyAgICAgICAgVGhpcyBjYW4gYmUgbGV2ZXJhZ2VkIHRvIG9wdGltaXplIHN5bWJvbCBvcGVyYXRp
b25zIGluIERGRy4KKworICAgICAgICBBbmQgc2luY2UgYnlWYWxJbmZvIGlzIGZyZXF1ZW50bHkg
dXNlZCwgd2UgYWxpZ24gdGhlIGJ5VmFsSW5mbyBkZXNpZ24gdG8gdGhlIHN0dWJJbmZvIGxpa2Ug
b25lLgorICAgICAgICBBbGxvY2F0ZWQgYnkgdGhlIEJhZyBhbmQgb3BlcmF0aW9ucyB0YWtlIHRo
ZSByYXcgYnlWYWxJbmZvIHBvaW50ZXIgZGlyZWN0bHkgaW5zdGVhZCBvZiBwZXJmb3JtaW5nCisg
ICAgICAgIGJpbmFyeSBzZWFyY2ggb250byBtX2J5VmFsSW5mb3MuIEFuZCBieSBzdG9yaW5nIEFy
cmF5UHJvZmlsZSogdW5kZXIgdGhlIEJ5VmFsSW5mbywgd2UgcmVwbGFjZWQgdGhlCisgICAgICAg
IGFyZ3VtZW50IEFycmF5UHJvZmlsZSogaW4gdGhlIG9wZXJhdGlvbnMgd2l0aCBCeVZhbEluZm8q
LgorCisgICAgICAgICogYnl0ZWNvZGUvQnlWYWxJbmZvLmg6CisgICAgICAgIChKU0M6OkJ5VmFs
SW5mbzo6QnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01hcCk6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6YWRkQnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm8pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OnNldE51bWJlck9mQnlWYWxJbmZvcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZCeVZhbEluZm9zKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpieVZhbEluZm8pOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVj
b2RlL0V4aXRLaW5kLmNwcDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAg
ICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAg
ICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgIChK
U0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRi
YWNrKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZH
RG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9E
RkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5v
ZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2Rl
KToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhh
c1VpZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAg
ICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAg
ICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrSWRlbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVT
eW1ib2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZH
VXNlS2luZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRm
Zy9ERkdVc2VLaW5kLmg6CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAg
ICAgIChKU0M6OkRGRzo6aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja0lk
ZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb3dTeW1ib2wp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RTeW1ib2wpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN5bWJvbCk6Cisg
ICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUp
OgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKEpTQzo6QnlWYWxDb21waWxhdGlvbklu
Zm86OkJ5VmFsQ29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0
QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAg
ICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9o
YXNfaW5kZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgor
ICAgICAgICAoSlNDOjpnZXRCeVZhbCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoK
KyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0
aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlW
YWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlf
dmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKToKKyAgICAg
ICAgKiBydW50aW1lL1N5bWJvbC5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKEhlbGxvKToKKyAg
ICAgICAgKGdldCBIZWxsby5wcm90b3R5cGUuZ2VuZXJhdGUpOgorICAgICAgICAob2spOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0
U3RyMSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3RyMSk6CisgICAgICAgIChnZXRT
dHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0
ZXIuanM6IEFkZGVkLgorICAgICAgICAob2JqZWN0LmdldCBoZWxsbyk6CisgICAgICAgIChvayk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0
U3RyMSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisgICAgICAgIChIZWxsbyk6
CisgICAgICAgIChnZXQgSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlKToKKyAgICAgICAgKG9rKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAg
KGdldFN5bTEpOgorICAgICAgICAoZ2V0U3ltMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKG9iamVjdC5n
ZXQgaGVsbG8pOgorICAgICAgICAoLmdldCBvayk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3ltMSk6CisgICAgICAgIChnZXRTeW0yKToK
KwogMjAxNS0wOC0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV2luXSBVcGRhdGUgQXBwbGUgV2luZG93cyBidWlsZCBmb3IgVlMyMDE1CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKaW5kZXggZDk4ODUxNjEzMjU4YTcx
YjlmMDRiYTQ5MDczZjQ0MDMzZTU3MTA4My4uNjc1NDFmZDkzNDZhZjIyZjcyMWIxOWI3NWZkZTk2
ZmNmZjEwZmRmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
VmFsSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8u
aApAQCAtMjYsMTYgKzI2LDE4IEBACiAjaWZuZGVmIEJ5VmFsSW5mb19oCiAjZGVmaW5lIEJ5VmFs
SW5mb19oCiAKLSNpZiBFTkFCTEUoSklUKQotCiAjaW5jbHVkZSAiQ2xhc3NJbmZvLmgiCiAjaW5j
bHVkZSAiQ29kZUxvY2F0aW9uLmgiCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUg
IkluZGV4aW5nVHlwZS5oIgogI2luY2x1ZGUgIkpJVFN0dWJSb3V0aW5lLmgiCiAjaW5jbHVkZSAi
U3RydWN0dXJlLmgiCisjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKKyNpZiBFTkFCTEUoSklUKQorCiBlbnVtIEpJVEFycmF5TW9kZSB7CiAgICAgSklU
SW50MzIsCiAgICAgSklURG91YmxlLApAQCAtMjAxLDI0ICsyMDMsMzMgQEAgaW5saW5lIEpJVEFy
cmF5TW9kZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAK
IHN0cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFsSW5mbygpIHsgfQotICAgIAotICAgIEJ5VmFs
SW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1w
LCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQx
Nl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorCisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5
dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25K
dW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBBcnJheVByb2ZpbGUqIGFy
cmF5UHJvZmlsZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZSwgaW50MTZfdCByZXR1cm5BZGRy
ZXNzVG9TbG93UGF0aCkKICAgICAgICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisg
ICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4SnVtcCkKICAgICAgICAgLCBiYWRUeXBlSnVt
cChiYWRUeXBlSnVtcCkKICAgICAgICAgLCBhcnJheU1vZGUoYXJyYXlNb2RlKQorICAgICAgICAs
IGFycmF5UHJvZmlsZShhcnJheVByb2ZpbGUpCiAgICAgICAgICwgYmFkVHlwZUp1bXBUb0RvbmUo
YmFkVHlwZUp1bXBUb0RvbmUpCiAgICAgICAgICwgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgocmV0
dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgICwgc2xvd1BhdGhDb3VudCgwKQorICAgICAg
ICAsIHN0dWJJbmZvKG51bGxwdHIpCisgICAgICAgICwgdG9va1Nsb3dQYXRoKGZhbHNlKQogICAg
IHsKICAgICB9Ci0gICAgCisKICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgIENvZGVM
b2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wOwogICAgIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1
bXA7CiAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsgLy8gVGhlIGFycmF5IG1vZGUgdGhhdCB3
YXMgYmFrZWQgaW50byB0aGUgaW5saW5lIEpJVCBjb2RlLgorICAgIEFycmF5UHJvZmlsZSogYXJy
YXlQcm9maWxlOwogICAgIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmU7CiAgICAgaW50MTZfdCBy
ZXR1cm5BZGRyZXNzVG9TbG93UGF0aDsKICAgICB1bnNpZ25lZCBzbG93UGF0aENvdW50OwogICAg
IFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmU7CisgICAgSWRlbnRpZmllciBjYWNo
ZWRJZDsKKyAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm87CisgICAgYm9vbCB0b29rU2xv
d1BhdGg7CiB9OwogCiBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChC
eVZhbEluZm8qIGluZm8pCkBAIC0yMjYsOSArMjM3LDE1IEBAIGlubGluZSB1bnNpZ25lZCBnZXRC
eVZhbEluZm9CeXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5mbykKICAgICByZXR1cm4gaW5mby0+
Ynl0ZWNvZGVJbmRleDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8
Q29kZU9yaWdpbiwgQnlWYWxJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJ
bmZvTWFwOworCisjZWxzZSAvLyBFTkFCTEUoSklUKQorCit0eXBlZGVmIEhhc2hNYXA8aW50LCB2
b2lkKj4gQnlWYWxJbmZvTWFwOwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorfSAvLyBuYW1l
c3BhY2UgSlNDCisKICNlbmRpZiAvLyBCeVZhbEluZm9faAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDlmOTQ4Njg5NzBiZjA1ODAzNjU4YzNj
ZTg1ZmE4YWFjOWM2OTQ1MTcuLjhjZDdkYmVlMTI2NjM1MWY2ZDM5NjE4MWQ2NDE3MzRmNGNjODFm
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBA
IC0yNjgzLDYgKzI2ODMsMjIgQEAgdm9pZCBDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb01hcChD
YWxsTGlua0luZm9NYXAmIHJlc3VsdCkKICAgICBnZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCBy
ZXN1bHQpOwogfQogCit2b2lkIENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1
cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSklU
KQorICAgIGZvciAoYXV0byogYnlWYWxJbmZvIDogbV9ieVZhbEluZm9zKQorICAgICAgICByZXN1
bHQuYWRkKENvZGVPcmlnaW4oYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4KSwgYnlWYWxJbmZvKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2Rl
QmxvY2s6OmdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyAgICBDb25j
dXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIGdldEJ5VmFsSW5mb01hcChsb2Nr
ZXIsIHJlc3VsdCk7Cit9CisKICNpZiBFTkFCTEUoSklUKQogU3RydWN0dXJlU3R1YkluZm8qIENv
ZGVCbG9jazo6YWRkU3R1YkluZm8oKQogewpAQCAtMjY5OSw2ICsyNzE1LDEyIEBAIFN0cnVjdHVy
ZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmZpbmRTdHViSW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4p
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0J5VmFsSW5mbyogQ29kZUJsb2NrOjphZGRCeVZh
bEluZm8oKQoreworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAg
cmV0dXJuIG1fYnlWYWxJbmZvcy5hZGQoKTsKK30KKwogQ2FsbExpbmtJbmZvKiBDb2RlQmxvY2s6
OmFkZENhbGxMaW5rSW5mbygpCiB7CiAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9s
b2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA2
YzNhMTE1Zjc3NWVlYzNhYmQyMjAyZmVmYTUyNmRmODBhM2ZjOTM4Li45NjA3OTFkNzBmYjVhMTdk
MmEwMDI0Yjk2ZjRhNTdjNDA4MTNmNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCkBAIC0yMDAsNiArMjAwLDkgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFs
RmkKICAgICAKICAgICB2b2lkIGdldENhbGxMaW5rSW5mb01hcChjb25zdCBDb25jdXJyZW50SklU
TG9ja2VyJiwgQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOwogICAgIHZvaWQgZ2V0Q2FsbExpbmtJ
bmZvTWFwKENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KTsKKworICAgIHZvaWQgZ2V0QnlWYWxJbmZv
TWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCk7Cisg
ICAgdm9pZCBnZXRCeVZhbEluZm9NYXAoQnlWYWxJbmZvTWFwJiByZXN1bHQpOwogICAgIAogI2lm
IEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKCk7CkBAIC0y
MTEsMTEgKzIxNCw4IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25kaXRpb25hbEZpCiAgICAgU3RydWN0dXJlU3R1
YkluZm8qIGZpbmRTdHViSW5mbyhDb2RlT3JpZ2luKTsKIAogICAgIHZvaWQgcmVzZXRTdHViKFN0
cnVjdHVyZVN0dWJJbmZvJik7Ci0gICAgCi0gICAgQnlWYWxJbmZvJiBnZXRCeVZhbEluZm8odW5z
aWduZWQgYnl0ZWNvZGVJbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAqKGJpbmFyeVNlYXJj
aDxCeVZhbEluZm8sIHVuc2lnbmVkPihtX2J5VmFsSW5mb3MsIG1fYnlWYWxJbmZvcy5zaXplKCks
IGJ5dGVjb2RlSW5kZXgsIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgpKTsKLSAgICB9CisKKyAg
ICBCeVZhbEluZm8qIGFkZEJ5VmFsSW5mbygpOwogCiAgICAgQ2FsbExpbmtJbmZvKiBhZGRDYWxs
TGlua0luZm8oKTsKICAgICBCYWc8Q2FsbExpbmtJbmZvPjo6aXRlcmF0b3IgY2FsbExpbmtJbmZv
c0JlZ2luKCkgeyByZXR1cm4gbV9jYWxsTGlua0luZm9zLmJlZ2luKCk7IH0KQEAgLTM2NywxMiAr
MzY3LDYgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENv
ZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFsRmkKIAogICAgIFN0cmluZyBuYW1lRm9yUmVn
aXN0ZXIoVmlydHVhbFJlZ2lzdGVyKTsKIAotI2lmIEVOQUJMRShKSVQpCi0gICAgdm9pZCBzZXRO
dW1iZXJPZkJ5VmFsSW5mb3Moc2l6ZV90IHNpemUpIHsgbV9ieVZhbEluZm9zLnJlc2l6ZVRvRml0
KHNpemUpOyB9Ci0gICAgc2l6ZV90IG51bWJlck9mQnlWYWxJbmZvcygpIGNvbnN0IHsgcmV0dXJu
IG1fYnlWYWxJbmZvcy5zaXplKCk7IH0KLSAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyhzaXplX3Qg
aW5kZXgpIHsgcmV0dXJuIG1fYnlWYWxJbmZvc1tpbmRleF07IH0KLSNlbmRpZgotCiAgICAgdW5z
aWduZWQgbnVtYmVyT2ZBcmd1bWVudFZhbHVlUHJvZmlsZXMoKQogICAgIHsKICAgICAgICAgQVNT
RVJUKG1fbnVtUGFyYW1ldGVycyA+PSAwKTsKQEAgLTEwMTYsNyArMTAxMCw3IEBAIGNsYXNzIENv
ZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMg
VW5jb25kaXRpb25hbEZpCiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29kZTsKICNpZiBFTkFC
TEUoSklUKQogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7Ci0gICAgVmVj
dG9yPEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOworICAgIEJhZzxCeVZhbEluZm8+IG1fYnlWYWxJ
bmZvczsKICAgICBCYWc8Q2FsbExpbmtJbmZvPiBtX2NhbGxMaW5rSW5mb3M7CiAgICAgU2VudGlu
ZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJ
bmZvPj4gbV9pbmNvbWluZ0NhbGxzOwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxQb2x5bW9ycGhp
Y0NhbGxOb2RlLCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxQb2x5bW9ycGhpY0NhbGxOb2RlPj4gbV9p
bmNvbWluZ1BvbHltb3JwaGljQ2FsbHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0V4aXRLaW5kLmNwcAppbmRleCA0Zjc5ZjJjMWM1ZTRlN2ZkYmUwNDNhMDQ5NTI1MTAwYWQ1MGZm
NDdiLi4yNTI0MzAwZjczMzc2OWVkOWJlMDAxZDc2NjBmMzY4NTliNmQ4OTA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKQEAgLTQwLDYgKzQwLDggQEAg
Y29uc3QgY2hhciogZXhpdEtpbmRUb1N0cmluZyhFeGl0S2luZCBraW5kKQogICAgICAgICByZXR1
cm4gIkJhZFR5cGUiOwogICAgIGNhc2UgQmFkQ2VsbDoKICAgICAgICAgcmV0dXJuICJCYWRDZWxs
IjsKKyAgICBjYXNlIEJhZElkZW50OgorICAgICAgICByZXR1cm4gIkJhZElkZW50IjsKICAgICBj
YXNlIEJhZEV4ZWN1dGFibGU6CiAgICAgICAgIHJldHVybiAiQmFkRXhlY3V0YWJsZSI7CiAgICAg
Y2FzZSBCYWRDYWNoZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9FeGl0S2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgK
aW5kZXggNTljYmJmNWEyYjM4Nzc5N2UzZWUyYmE4MWYzNmUxYzYxYzAzYjkyMy4uNmY4YzUxMjAw
NzAwNTA1YmY5MWRlZjc0OTAwM2UzMDA1ZTNmNzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V4aXRLaW5kLmgKQEAgLTMyLDYgKzMyLDcgQEAgZW51bSBFeGl0S2luZCA6IHVp
bnQ4X3QgewogICAgIEV4aXRLaW5kVW5zZXQsCiAgICAgQmFkVHlwZSwgLy8gV2UgZXhpdGVkIGJl
Y2F1c2UgYSB0eXBlIHByZWRpY3Rpb24gd2FzIHdyb25nLgogICAgIEJhZENlbGwsIC8vIFdlIGV4
aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBj
ZWxsIHdlIHdvdWxkIHNlZS4gVXN1YWxseSB1c2VkIGZvciBmdW5jdGlvbiBjaGVja3MuCisgICAg
QmFkSWRlbnQsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3Vt
cHRpb24gYWJvdXQgd2hhdCBpZGVudGlmaWVyIHdlIHdvdWxkIHNlZS4gVXN1YWxseSB1c2VkIGZv
ciBjYWNoZWQgSWQgY2hlY2sgaW4gZ2V0X2J5X3ZhbC4KICAgICBCYWRFeGVjdXRhYmxlLCAvLyBX
ZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVjdCBhc3N1bXB0aW9uIGFib3V0IHdo
YXQgZXhlY3V0YWJsZSB3ZSB3b3VsZCBzZWUuCiAgICAgQmFkQ2FjaGUsIC8vIFdlIGV4aXRlZCBi
ZWNhdXNlIGFuIGlubGluZSBjYWNoZSB3YXMgd3JvbmcuCiAgICAgQmFkQ29uc3RhbnRDYWNoZSwg
Ly8gV2UgZXhpdGVkIGJlY2F1c2UgYSBjYWNoZSBvbiBhIHdlYWsgY29uc3RhbnQgKHVzdWFsbHkg
YSBwcm90b3R5cGUpIHdhcyB3cm9uZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCAxZDk3YzlmZmRiYTZkOTRlMzVjYjY3Y2VkM2Ri
ZWVhNTBiYzcxOWVlLi44OWU1MDM1ZjMwYTNmMGI3OWJiMjA4MzJhMTJkOWQ2ODQ4ODhjZjA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3Bw
CkBAIC05OCw3ICs5OCw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
cihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBtCiAgICAgR2V0QnlJZFN0
YXR1cyByZXN1bHQ7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICByZXN1bHQgPSBjb21wdXRl
Rm9yU3R1YkluZm8oCisgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRT
aXRlRmVlZGJhY2soCiAgICAgICAgIGxvY2tlciwgcHJvZmlsZWRCbG9jaywgbWFwLmdldChDb2Rl
T3JpZ2luKGJ5dGVjb2RlSW5kZXgpKSwgdWlkLAogICAgICAgICBDYWxsTGlua1N0YXR1czo6Y29t
cHV0ZUV4aXRTaXRlRGF0YShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpKTsK
ICAgICAKQEAgLTExNiw3ICsxMTYsMjAgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yKENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KIH0KIAog
I2lmIEVOQUJMRShKSVQpCi1HZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JT
dHViSW5mbygKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZv
KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJs
b2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIENvZGVPcmlnaW4gY29kZU9yaWdpbiwg
VW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdCA9IEdl
dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAor
ICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIHN0dWJJbmZvLCB1aWQsCisgICAgICAgIENh
bGxMaW5rU3RhdHVzOjpjb21wdXRlRXhpdFNpdGVEYXRhKGxvY2tlciwgcHJvZmlsZWRCbG9jaywg
Y29kZU9yaWdpbi5ieXRlY29kZUluZGV4KSk7CisKKyAgICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQ
YXRoKCkgJiYgR2V0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2Nr
LCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpKQorICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1
cyhyZXN1bHQubWFrZXNDYWxscygpID8gR2V0QnlJZFN0YXR1czo6TWFrZXNDYWxscyA6IEdldEJ5
SWRTdGF0dXM6OlRha2VzU2xvd1BhdGgsIHRydWUpOworICAgIHJldHVybiByZXN1bHQ7Cit9Cisj
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworI2lmIEVOQUJMRShKSVQpCitHZXRCeUlkU3RhdHVzIEdl
dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAog
ICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxl
ZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQsCiAgICAgQ2FsbExpbmtTdGF0dXM6OkV4aXRTaXRlRGF0YSBjYWxsRXhpdFNpdGVEYXRhKQog
ewpAQCAtMjQyLDcgKzI1NSw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvcigKICAgICAgICAgR2V0QnlJZFN0YXR1cyByZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGRmZ0Jsb2NrLT5tX2xvY2spOwotICAgICAg
ICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKAorICAgICAgICAgICAgcmVzdWx0ID0g
Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgICAgICAg
ICAgbG9ja2VyLCBkZmdCbG9jaywgZGZnTWFwLmdldChjb2RlT3JpZ2luKSwgdWlkLCBleGl0U2l0
ZURhdGEpOwogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKaW5kZXggMzIzNzJjZGRmNWUyNWIwZjM4OGU2Y2ZlZGM0
NjYyMGIyZDM4ZDJkMC4uZDdmMGFlNDk2Y2JhMmYzMGZkY2QxMjg4NmIxNWZiM2I0ODI4Zjk1NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCkBA
IC03MSw3ICs3MSwxMSBAQCBjbGFzcyBHZXRCeUlkU3RhdHVzIHsKICAgICBzdGF0aWMgR2V0QnlJ
ZFN0YXR1cyBjb21wdXRlRm9yKGNvbnN0IFN0cnVjdHVyZVNldCYsIFVuaXF1ZWRTdHJpbmdJbXBs
KiB1aWQpOwogICAgIAogICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJs
b2NrKiBiYXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFz
ZWxpbmVNYXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJ
bXBsKiB1aWQpOwotICAgIAorCisjaWYgRU5BQkxFKEpJVCkKKyAgICBzdGF0aWMgR2V0QnlJZFN0
YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVC
bG9jayogYmFzZWxpbmVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luLCBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkKTsKKyNlbmRpZgorCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlOyB9CiAgICAgCiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhdGUgIT0gTm9JbmZvcm1hdGlvbjsgfQpAQCAtOTUsNyArOTksNyBAQCBjbGFzcyBHZXRC
eUlkU3RhdHVzIHsKICAgICBzdGF0aWMgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50
SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoSklUKQotICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHVi
SW5mbygKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0
RXhpdFNpdGVGZWVkYmFjaygKICAgICAgICAgY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENv
ZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qLAogICAgICAgICBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkLCBDYWxsTGlua1N0YXR1czo6RXhpdFNpdGVEYXRhKTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCmluZGV4IDM3MzRjNzZkMWVlODdhODRhMGU2NmQ1NTY3NGQxMGIy
YWQyYWEwNTQuLjIyOTA4N2RjYzQzNjQzOTc5NTQ4MGUzZDVjMTI5NjAzYTE2YzFiNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKQEAgLTIxNjMsNiArMjE2MywzMiBAQCBib29sIEFic3RyYWN0SW50ZXJw
cmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVy
TGltaQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAg
ICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAg
ICAgQVNTRVJUKHVpZC0+aXNTeW1ib2woKSA/ICEodmFsdWUubV90eXBlICYgflNwZWNTeW1ib2wp
IDogISh2YWx1ZS5tX3R5cGUgJiB+U3BlY1N0cmluZ0lkZW50KSk7IC8vIEVkZ2UgZmlsdGVyaW5n
IHNob3VsZCBoYXZlIGFscmVhZHkgZW5zdXJlZCB0aGlzLgorCisgICAgICAgIEpTVmFsdWUgY2hp
bGRDb25zdGFudCA9IHZhbHVlLnZhbHVlKCk7CisgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7
CisgICAgICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICAgICAgQVNT
RVJUKGNoaWxkQ29uc3RhbnQuaXNTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgaWYgKGFzU3lt
Ym9sKGNoaWxkQ29uc3RhbnQpLT5wcml2YXRlTmFtZSgpLnVpZCgpID09IHVpZCkgeworICAgICAg
ICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpOworICAg
ICAgICAgICAgICAgIGlmIChhc1N0cmluZyhjaGlsZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBs
KCkgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFu
dHModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbHRlcih2YWx1ZSwgdWlkLT5p
c1N5bWJvbCgpID8gU3BlY1N5bWJvbCA6IFNwZWNTdHJpbmdJZGVudCk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKwogICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICBKU1ZhbHVlIGxl
ZnQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBKU1ZhbHVlIHJp
Z2h0ID0gZm9yTm9kZShub2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNTY0MjJiMThhMjQ2NTA4
NmY4MDY5NDI4MGRhMzY3NjAwMmU2YzVlNC4uNzY4NjkyNWRkYTEyOTU5OWE2ZGMwMzI0NjdkZWE3
OGYzYWFiNWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTk2OSw2ICs5NjksNyBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAg
ICAgICAgIAogICAgICAgICBDYWxsTGlua0luZm9NYXAgbV9jYWxsTGlua0luZm9zOwogICAgICAg
ICBTdHViSW5mb01hcCBtX3N0dWJJbmZvczsKKyAgICAgICAgQnlWYWxJbmZvTWFwIG1fYnlWYWxJ
bmZvczsKICAgICAgICAgCiAgICAgICAgIC8vIERpZCB3ZSBzZWUgYW55IHJldHVybnM/IFdlIG5l
ZWQgdG8gaGFuZGxlIHRoZSAodW5jb21tb24gYnV0IG5lY2Vzc2FyeSkKICAgICAgICAgLy8gY2Fz
ZSB3aGVyZSBhIHByb2NlZHVyZSB0aGF0IGRvZXMgbm90IHJldHVybiB3YXMgaW5saW5lZC4KQEAg
LTMzOTcsMTIgKzMzOTgsMzcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNp
Z25lZCBsaW1pdCkKIAogICAgICAgICBjYXNlIG9wX2dldF9ieV92YWw6IHsKICAgICAgICAgICAg
IFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uV2l0aG91dE9TUkV4aXQo
KTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxS
ZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBB
cnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkg
PSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsK
LSAgICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZv
KGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkp
OwotICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kKSwgZ2V0QnlWYWwpOworICAgICAgICAgICAgYm9vbCBjb21waWxlZEFzR2V0QnlJ
ZCA9IGZhbHNlOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+bV9sb2NrKTsK
KyAgICAgICAgICAgICAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1faW5saW5lU3RhY2tUb3At
Pm1fYnlWYWxJbmZvcy5nZXQoQ29kZU9yaWdpbihjdXJyZW50Q29kZU9yaWdpbigpLmJ5dGVjb2Rl
SW5kZXgpKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2hlbiB0aGUgYnl0ZWNvZGUgaXMg
bm90IGNvbXBpbGVkIGluIHRoZSBiYXNlbGluZSBKSVQsIGJ5VmFsSW5mbyBiZWNvbWVzIG51bGwu
CisgICAgICAgICAgICAgICAgLy8gQXQgdGhhdCB0aW1lLCB0aGVyZSBpcyBubyBpbmZvcm1hdGlv
bi4KKyAgICAgICAgICAgICAgICBpZiAoYnlWYWxJbmZvICYmIGJ5VmFsSW5mby0+c3R1YkluZm8g
JiYgIWJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBp
bGVkQXNHZXRCeUlkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRp
Zmllck51bWJlciA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKS5lbnN1cmUoYnlWYWxJbmZvLT5jYWNo
ZWRJZC5pbXBsKCkpOworICAgICAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
ID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOworCisgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBQb3RlbnRpYWxseSwgd2UgY2FuIGZ1cnRoZXIgb3B0aW1pemUg
aGVyZS4gSWYgd2Ugc2F3IHRoZSBleGl0IGZvciB0aGlzIENoZWNrSWRlbnQsCisgICAgICAgICAg
ICAgICAgICAgIC8vIGRvbid0IHRha2UgdGhlIEdldEJ5SWQgcGF0aCBhbmQgdXNlIHRoZSBnZW5l
cmljIEdldEJ5VmFsLgorICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrSWRlbnQs
IE9wSW5mbyh1aWQpLCBwcm9wZXJ0eSk7CisKKyAgICAgICAgICAgICAgICAgICAgR2V0QnlJZFN0
YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKAor
ICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VyLCBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2Zp
bGVkQmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8tPnN0dWJJbmZvLCBj
dXJyZW50Q29kZU9yaWdpbigpLCB1aWQpOworCisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUdl
dEJ5SWQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlvbiwgYmFzZSwg
aWRlbnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWNvbXBpbGVkQXNHZXRCeUlkKSB7CisgICAg
ICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50SW5z
dHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFkKTsKKyAgICAgICAgICAgICAg
ICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUu
YXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKKyAgICAgICAg
ICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQpLCBnZXRCeVZhbCk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RF
KG9wX2dldF9ieV92YWwpOwogICAgICAgICB9CkBAIC00MzA1LDYgKzQzMzEsNyBAQCBCeXRlQ29k
ZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAgICAgaWYg
KG1fcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewogICAgICAgICAg
ICAgbV9wcm9maWxlZEJsb2NrLT5nZXRTdHViSW5mb01hcChsb2NrZXIsIG1fc3R1YkluZm9zKTsK
ICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwg
bV9jYWxsTGlua0luZm9zKTsKKyAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0QnlWYWxJ
bmZvTWFwKGxvY2tlciwgbV9ieVZhbEluZm9zKTsKICAgICAgICAgfQogICAgIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMjk2NzQ5ZGMzMWIy
M2M4OTk4NDk0YjU2ZWYxNDMwODY0YjEyN2VjNi4uNDZmNWZlNDhkMjVjMjdkZDMxOTZjNTgxMjlk
YmU1ODU3ZmJkN2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmgKQEAgLTI2OCw2ICsyNjgsMTAgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9k
ZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAg
ZGVmKFB1cmVWYWx1ZShDaGVja05vdEVtcHR5LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6
OkZpeGVkLCBub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBD
aGVja0lkZW50OgorICAgICAgICBkZWYoUHVyZVZhbHVlKENoZWNrSWRlbnQsIEFkamFjZW5jeUxp
c3QoQWRqYWNlbmN5TGlzdDo6Rml4ZWQsIG5vZGUtPmNoaWxkMSgpKSwgbm9kZS0+dWlkT3BlcmFu
ZCgpKSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRl
cjoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5zdG9yYWdlUG9pbnRlcigpKSk7
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggYmE0YzAzNTQ5NDY0OTJmNTlmZGZiZDVh
NmY2MWE1YTY3ZDI1MDMyMC4uM2Q4NWNhYWJkNjE1NzNmZGQ1NDlkNWZlNzViYzY0ZjNlNTY0ZjFl
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAKQEAgLTIwOCw2ICsyMDgsMzMgQEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5n
UGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogCisgICAgICAgICAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgICAgICAgICBV
bmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAg
ICAgIEpTVmFsdWUgY2hpbGRDb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEo
KSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBVbmlxdWVkU3RyaW5nSW1wbCogY29u
c3RhbnRVaWQgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3RhbnRVaWQgPSBhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJp
dmF0ZU5hbWUoKS51aWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBhbHJlYWR5IGZpbHRlcmVkIHRoZSB2YWx1
ZSB3aXRoIFN0cmluZ0lkZW50VXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo
ZSBoZWxkIGltcGwgaXMgYWx3YXlzIGF0b21pYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoY29uc3QgYXV0byogaW1wbCA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRW
YWx1ZUltcGwoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaW1w
bC0+aXNBdG9taWMoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50
VWlkID0gc3RhdGljX2Nhc3Q8Y29uc3QgVW5pcXVlZFN0cmluZ0ltcGwqPihpbXBsKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBp
ZiAoY29uc3RhbnRVaWQgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlbW92
ZSgpOworICAgICAgICAgICAgICAgICAgICBlbGltaW5hdGVkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKICAgICAgICAg
ICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICAgICAgICAgIEpTVmFsdWUgbGVmdCA9
IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAg
ICBKU1ZhbHVlIHJpZ2h0ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDA4ZmZiMmE5MTI5
Mzg3MjEzMTFjYWQyNzc0Njc2MWEyMDY1M2FhNWYuLmU0NzBiOGRkYWI5OTQzOGZkODkwMzUyZTQ1
ZTA5MTAyOWYxYTYyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
QEAgLTEwNyw2ICsxMDcsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUp
CiAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50OgogICAgIGNhc2UgQ2hlY2tDZWxsOgog
ICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBS
ZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYzQ0MjMx
MDE2MzI2NTdkM2U4M2Y5NzFlNjZhODNmNjI1MDU3MTUyNC4uZDZhOTc5MGIxM2NlMDA2MmQ5Nzgx
MTQwZWRjZTIyMTUyZTQwMGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCkBAIC0xMDEyLDYgKzEwMTIsMTUgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1
YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDaGVja0lk
ZW50OiB7CisgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3Bl
cmFuZCgpOworICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkKKyAgICAgICAgICAgICAg
ICBmaXhFZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBBcnJheWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOiB7CkBAIC0xNzYw
LDYgKzE3NjksNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAg
Y2FzZSBGdW5jdGlvblVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIGNhc2Ug
S25vd25TdHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0
cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAg
ICAgICAgICAgIGlmIChhbHdheXNVbmJveFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGUuaAppbmRleCAyOGNhYjA1MWU1MzA5ZTM2ODg2OTRjYmJjNDY1Mzk2Njky
ZGU4MDlhLi44M2ZjZjVjMTAxZTBjN2M3N2E5ZWQyMDk1ZDQ1NWRhNjljNGU2YWYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTMyOCw2ICsxMzI4LDE3IEBAIHN0cnVjdCBO
b2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsK
ICAgICB9CiAKKyAgICBib29sIGhhc1VpZE9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG9wKCkgPT0gQ2hlY2tJZGVudDsKKyAgICB9CisKKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
T3BlcmFuZCgpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzVWlkT3BlcmFuZCgpKTsKKyAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7
CisgICAgfQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRj
aCAob3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDYy
ZTdjYTk4YTUyMTEyZDgyZDBlYjZmMGQxNzI4YmVhZjRiOWUxMzEuLmU5YmY3MjcwNGIxN2FhNjg2
NzllOWJiZWEwZjRmMmFkY2VmOTYzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgKQEAgLTIwOSw2ICsyMDksNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1h
Y3JvKENoZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSW5C
b3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVz
dEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5IG11dGF0
aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNzZhZjZhMmYzZTQ1MmIwZjExN2Fi
YzNhNmJiNWRkZDJmYWFiMTk4YS4uMzZmMmRmN2M3NWM1MGNhZmQwNmVjOWMyNzg1MWVlYTlmMTBm
ZmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTY0OSw2ICs2NDksNyBAQCBjbGFzcyBQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2Ug
Q2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgICAgICBjYXNlIENo
ZWNrTm90RW1wdHk6CisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICAgICAgY2FzZSBDaGVj
a0JhZENlbGw6CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAgICAgICBjYXNlIFZhcklu
amVjdGlvbldhdGNocG9pbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCmluZGV4IDBjMGEyNzc2MDUwZWYxYzYzOGMyMGQ4OGNmZWZlMzIzYzczYTU5MTQu
LmIyZDA3ZDU1ZTUzNjI2ODQ1YjVkM2Y1YzlmZWVhNGU3YmQ4NGRkOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw2ICs1OSw3IEBAIGNs
YXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgog
ICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKKyAg
ICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAg
ICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE5vdFN0cmlu
Z1ZhclVzZToKQEAgLTE4OCw2ICsxODksNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RT
dGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVj
a0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5Ogor
ICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdF
eHBUZXN0OgogICAgIGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGYzZjhhZjdhNTJkNTBmOWEyZTcxYzRm
OTAxOTk4NDdiZjA1MDBkNWUuLjA1MzczNjM0YmRlMTFkNjY0NjE5MTNhMjBjNWE1YmVhOTY4ZmE0
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCkBAIC00NTc2LDYgKzQ1NzYsMzEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCiAgICAgfSB9CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVDaGVja0lkZW50KE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgb3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgVW5pcXVlZFN0cmluZ0lt
cGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7
CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7
CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCisgICAgICAgICAgICBCYWRJZGVudCwgSlNWYWx1
ZVNvdXJjZSgpLCBudWxscHRyLAorICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6QWRkcmVzcyhvcGVyYW5kLmdwcigpLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUo
KSksCisgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsK
KyAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3By
KCkpOworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgQmFkSWRlbnQsIEpT
VmFsdWVTb3VyY2UoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAg
ICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgSklU
Q29tcGlsZXI6OkFkZHJlc3Mob3BlcmFuZC5ncHIoKSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUo
KSksCisgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfQorICAgIG5v
UmVzdWx0KG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rp
b24oTm9kZSogbm9kZSkKIHsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzY29wZSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CkBAIC01NzMxLDYgKzU3NTYsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlTm90U3RyaW5nVmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxpbmsoJm1f
aml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRn
ZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5i
b3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90U3ltYm9s
KGNlbGwpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2Ug
ZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVk
Z2UpOworICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAgICAgaWYg
KCFuZWVkc1R5cGVDaGVjayhlZGdlLCB+U3BlY0NlbGwpKQpAQCAtNTg0Miw2ICs1ODgxLDkgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2Fz
ZSBTdHJpbmdVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsK
KyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1
bGF0ZVN0cmluZ09iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYTVjNDQ1NDdkYTY0YmMyYjYz
ZjA3M2ExNzExZTZhMTE4MDZmNTk1Yi4uNTQ1ZmYyYTZlYmQxMGVlZjgyYjFmZTdjMjJjY2U5Zjcx
N2VkZDE0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaApAQCAtMjE5MSw2ICsyMTkxLDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZv
aWQgY29tcGlsZVNraXBTY29wZShOb2RlKik7CiAKICAgICB2b2lkIGNvbXBpbGVHZXRBcnJheUxl
bmd0aChOb2RlKik7CisKKyAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KE5vZGUqKTsKICAgICAK
ICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlRG91Ymxl
UmVwKE5vZGUqKTsKQEAgLTI0MDYsNiArMjQwOCw4IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsK
ICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlLCBHUFJSZWcpOwogICAgIHZvaWQg
c3BlY3VsYXRlU3RyaW5nT2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JT
dHJpbmdPYmplY3QoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSwgR1BSUmVn
IGNlbGwpOworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UpOwogICAgIHZvaWQgc3BlY3Vs
YXRlTm90Q2VsbChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU90aGVyKEVkZ2UpOwogICAgIHZv
aWQgc3BlY3VsYXRlTWlzYyhFZGdlLCBKU1ZhbHVlUmVncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA1MDQyOTA1
YjYyYjUyNmM5ZWRhZDNmZmJiNTY3YzQ2ZjY3ZjgwZWFlLi4xMmFiOGQwODVkMDcwNTEwZjc2ZmQ0
ZWU3MjU0Zjg4ZTMzMjJiN2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTM4MjAsNiArMzgyMCwxMCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorICAgIGNhc2UgQ2hlY2tJZGVudDoKKyAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQobm9k
ZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGZ1bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXgg
NzcwYmRhNThjYWI1MDIzYTFmYTBjMzhmNGM3YTAzMDhkNDA4MGEzMC4uMTNjN2M4N2Q4MDZmN2E3
YTg2NzMwZjA3OWFkODgzNDU0MjZjN2ZjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0zODUwLDYgKzM4NTAsMTAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAg
ICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6CisgICAgICAgIGNvbXBpbGVDaGVja0lkZW50KG5v
ZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCmluZGV4IGVmYTEwNGYzZDA3MDAwYjdk
N2JjNDczYmNkZjIwNmQxMDUzZmM5YjEuLjkzNmVmNTU0YWYyNGUwYjY0ZmRmNDI4ZjE2M2FlOGQ3
ODhlOThkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2lu
ZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAt
OTcsNiArOTcsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2lu
ZCB1c2VLaW5kKQogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIG91dC5wcmludCgi
S25vd25TdHJpbmciKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAg
ICAgICBvdXQucHJpbnQoIlN5bWJvbCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJp
bmdPYmplY3RVc2U6CiAgICAgICAgIG91dC5wcmludCgiU3RyaW5nT2JqZWN0Iik7CiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2lu
ZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggZWJmOTlk
YWU2MDBjODgyNWQyMmNiYWM2MzgyMmQxNWI1NTYwMDM1YS4uMjg5Yjc4M2U0MWJiMzYxMjkxYzgz
YzhmYWQ3YjA4YTU3OGUwYTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5k
LmgKQEAgLTU3LDYgKzU3LDcgQEAgZW51bSBVc2VLaW5kIHsKICAgICBTdHJpbmdJZGVudFVzZSwK
ICAgICBTdHJpbmdVc2UsCiAgICAgS25vd25TdHJpbmdVc2UsCisgICAgU3ltYm9sVXNlLAogICAg
IFN0cmluZ09iamVjdFVzZSwKICAgICBTdHJpbmdPclN0cmluZ09iamVjdFVzZSwKICAgICBOb3RT
dHJpbmdWYXJVc2UsCkBAIC0xMTcsNiArMTE4LDggQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5
cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNh
c2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nOworICAgIGNhc2Ug
U3ltYm9sVXNlOgorICAgICAgICByZXR1cm4gU3BlY1N5bWJvbDsKICAgICBjYXNlIFN0cmluZ09i
amVjdFVzZToKICAgICAgICAgcmV0dXJuIFNwZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJp
bmdPclN0cmluZ09iamVjdFVzZToKQEAgLTE5Niw2ICsxOTksNyBAQCBpbmxpbmUgYm9vbCBpc0Nl
bGwoVXNlS2luZCBraW5kKQogICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgY2FzZSBTdHJp
bmdVc2U6CiAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKKyAgICBjYXNlIFN5bWJvbFVzZToKICAg
ICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNl
OgogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggOTEyNzU0ZGZjNDAxNTJiMGVk
MjQ4MzZhYzc1YjhmOTY5ODQzOTliYi4uNTgxZjRjYmQ5YTc2OGI5YWIyYTgzOTIxY2YyNGQzNTI0
YmM4NTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTg3LDcgKzg3LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV9jbGFzc0luZm8sIFN0cnVjdHVyZTo6
Y2xhc3NJbmZvT2Zmc2V0KCkpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVfZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX3By
b3RvdHlwZSwgU3RydWN0dXJlOjpwcm90b3R5cGVPZmZzZXQoKSkgXAotICAgIG1hY3JvKFN0cnVj
dHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKQorICAgIG1h
Y3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgp
KSBcCisgICAgbWFjcm8oU3ltYm9sX3ByaXZhdGVOYW1lLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0
ZU5hbWUoKSkKIAogI2RlZmluZSBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAobWFjcm8p
IFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfc3RvcmFnZSwgRGlyZWN0QXJndW1lbnRzOjpz
dG9yYWdlT2Zmc2V0KCksIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA2MjcyOGM3NDZlZjkxZDc0
Yjc4MjliYjNmOWE0NGM2ZDdmNjFkN2IzLi5iNDkzZjMwMjdlODJjZmNjZTljM2NjZjQ4MmMxNTU4
NjFkNjhiOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENl
bGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBj
YXNlIFN0cmluZ0NoYXJDb2RlQXQ6CiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToK
ICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CkBAIC00MTUsNiArNDE2LDcgQEAg
Q2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAg
IGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RV
c2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKKyAgICAg
ICAgICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2Jq
ZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgTm90Q2VsbFVzZToKICAgICAgICAgICAgICAg
ICBjYXNlIE90aGVyVXNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9MTFZNLmNwcAppbmRleCA1YjU4N2RkMDQ4ODNjYTc5NDY1ZmI0ZTMwZDlkNWVlZDkzMzkx
MmZlLi44MmNhYmJhODFiMjE3Y2NkYWM2YTNkNDUzZTBjZWJlZmM2MjlhYWY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNTMyLDYg
KzUzMiw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBDaGVja0JhZENl
bGw6CiAgICAgICAgICAgICBjb21waWxlQ2hlY2tCYWRDZWxsKCk7CiAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDaGVja0lkZW50OgorICAgICAgICAgICAgY29tcGlsZUNoZWNrSWRl
bnQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAg
ICAgICAgICAgICBjb21waWxlR2V0RXhlY3V0YWJsZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBA
IC0yMDI5LDYgKzIwMzIsMjAgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVj
dWxhdGUoVERaRmFpbHVyZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5pc1plcm82NChsb3dK
U1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgfQogCisgICAgdm9pZCBjb21waWxlQ2hl
Y2tJZGVudCgpCisgICAgeworICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ub2Rl
LT51aWRPcGVyYW5kKCk7CisgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAg
ICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
ICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5
bWJvbF9wcml2YXRlTmFtZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFs
dWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQ
dHIodWlkKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9
IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0
cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7
CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9v
dXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAg
ICB9CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlR2V0RXhlY3V0YWJsZSgpCiAgICAgewogICAg
ICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC03MDMzLDcg
KzcwNTAsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGVTdHJp
bmdJZGVudChlZGdlLCBzdHJpbmcsIHN0cmluZ0ltcGwpOwogICAgICAgICByZXR1cm4gc3RyaW5n
SW1wbDsKICAgICB9Ci0gICAgCisKKyAgICBMVmFsdWUgbG93U3ltYm9sKEVkZ2UgZWRnZSwgT3Bl
cmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRT
cGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpOworCisgICAgICAgIExW
YWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UsIG1vZGUpOworICAgICAgICBzcGVjdWxhdGVTeW1i
b2woZWRnZSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBM
VmFsdWUgbG93Tm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUg
bW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAgICB7CiAgICAgICAgIEFTU0VS
VF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51
c2VLaW5kKCkgPT0gT2JqZWN0VXNlKTsKQEAgLTc0MzAsNiArNzQ1Niw5IEBAIGNsYXNzIExvd2Vy
REZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgICAgIHNw
ZWN1bGF0ZVN0cmluZ0lkZW50KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgU3ltYm9sVXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UpOworICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAg
c3BlY3VsYXRlU3RyaW5nT2JqZWN0KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03NTI2
LDcgKzc1NTUsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgbV9vdXQu
bG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50MzIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9Ci0gICAg
CisKKyAgICBMVmFsdWUgaXNOb3RTeW1ib2woTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5
cGUgPSBTcGVjRnVsbFRvcCkKKyAgICB7CisgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQ
cm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjU3ltYm9sKSkKKyAgICAgICAgICAgIHJl
dHVybiBwcm92ZW47CisgICAgICAgIHJldHVybiBtX291dC5ub3RFcXVhbCgKKyAgICAgICAgICAg
IG1fb3V0LmxvYWQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCisgICAgICAg
ICAgICBtX291dC5jb25zdEludDMyKHZtKCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7CisgICAg
fQorCiAgICAgTFZhbHVlIGlzQXJyYXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlN
b2RlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkBAIC03NzQ5
LDcgKzc3ODcsMTcgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgTm90U3Ry
aW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCiAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChzdHJ1
Y3R1cmVJRCwgd2Vha1N0cnVjdHVyZUlEKHN0cmluZ09iamVjdFN0cnVjdHVyZSkpKTsKICAgICB9
Ci0gICAgCisKKyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxs
KQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdl
LCBTcGVjU3ltYm9sIHwgflNwZWNDZWxsLCBpc05vdFN5bWJvbChjZWxsKSk7CisgICAgfQorCisg
ICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3Vs
YXRlU3ltYm9sKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKwogICAgIHZvaWQgc3BlY3Vs
YXRlTm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAg
RlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjT2JqZWN0LCBpc05v
dE9iamVjdChjZWxsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOWFmMzMyZWI3
OGUxODlhZTZhNTNiMjIzNTBhZjc3YjVmOWQ3ZWIyYi4uMjY0YWE0Y2Y1NjI3YzQ3MTUzYWZiYzUx
NTdiOWJkZjJjMjM2OTQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNjU4LDE3
ICs2NTgsMjIgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21w
aWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9wdXRCeUlkcy5z
aXplKCk7IGktLTspCiAgICAgICAgIG1fcHV0QnlJZHNbaV0uZmluYWxpemUocGF0Y2hCdWZmZXIp
OwogCi0gICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZvcyhtX2J5VmFsQ29tcGls
YXRpb25JbmZvLnNpemUoKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYnlWYWxD
b21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBi
YWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5
VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1wKSk7Ci0gICAgICAgIENvZGVMb2NhdGlv
bkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKG1fYnlWYWxDb21waWxh
dGlvbkluZm9baV0uZG9uZVRhcmdldCk7Ci0gICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQ
YXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZv
W2ldLnNsb3dQYXRoVGFyZ2V0KTsKLSAgICAgICAgQ29kZUxvY2F0aW9uQ2FsbCByZXR1cm5BZGRy
ZXNzID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLnJl
dHVybkFkZHJlc3MpOwotICAgICAgICAKLSAgICAgICAgbV9jb2RlQmxvY2stPmJ5VmFsSW5mbyhp
KSA9IEJ5VmFsSW5mbygKLSAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYnl0
ZWNvZGVJbmRleCwKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJ5VmFsQ29tcGlsYXRpb25JbmZvIDog
bV9ieVZhbENvbXBpbGF0aW9uSW5mbykgeworICAgICAgICBQYXRjaGFibGVKdW1wIHBhdGNoYWJs
ZU5vdEluZGV4SnVtcCA9IGJ5VmFsQ29tcGlsYXRpb25JbmZvLm5vdEluZGV4SnVtcDsKKyAgICAg
ICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKCk7Cisg
ICAgICAgIGlmIChKdW1wKHBhdGNoYWJsZU5vdEluZGV4SnVtcCkuaXNTZXQoKSkKKyAgICAgICAg
ICAgIG5vdEluZGV4SnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihwYXRjaGFibGVOb3RJbmRleEp1bXApKTsKKyAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRU
eXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihieVZhbENv
bXBpbGF0aW9uSW5mby5iYWRUeXBlSnVtcCkpOworICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBk
b25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihieVZhbENvbXBpbGF0aW9uSW5mby5k
b25lVGFyZ2V0KTsKKyAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgc2xvd1BhdGhUYXJnZXQgPSBw
YXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGJ5VmFsQ29tcGlsYXRpb25JbmZvLnNsb3dQYXRoVGFyZ2V0
KTsKKyAgICAgICAgQ29kZUxvY2F0aW9uQ2FsbCByZXR1cm5BZGRyZXNzID0gcGF0Y2hCdWZmZXIu
bG9jYXRpb25PZihieVZhbENvbXBpbGF0aW9uSW5mby5yZXR1cm5BZGRyZXNzKTsKKworICAgICAg
ICAqYnlWYWxDb21waWxhdGlvbkluZm8uYnlWYWxJbmZvID0gQnlWYWxJbmZvKAorICAgICAgICAg
ICAgYnlWYWxDb21waWxhdGlvbkluZm8uYnl0ZWNvZGVJbmRleCwKKyAgICAgICAgICAgIG5vdElu
ZGV4SnVtcCwKICAgICAgICAgICAgIGJhZFR5cGVKdW1wLAotICAgICAgICAgICAgbV9ieVZhbENv
bXBpbGF0aW9uSW5mb1tpXS5hcnJheU1vZGUsCisgICAgICAgICAgICBieVZhbENvbXBpbGF0aW9u
SW5mby5hcnJheU1vZGUsCisgICAgICAgICAgICBieVZhbENvbXBpbGF0aW9uSW5mby5hcnJheVBy
b2ZpbGUsCiAgICAgICAgICAgICBkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoYmFkVHlwZUp1bXAs
IGRvbmVUYXJnZXQpLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKHJldHVy
bkFkZHJlc3MsIHNsb3dQYXRoVGFyZ2V0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgK
aW5kZXggMWFkZTY2NWRmNzkyODJjNjBjMmE4ODU2ODVmZDUzMTdkN2E1NTRkNS4uM2Q0MTdjMzdk
YzIwYjhmNjA4YzE5ZjRkYjZkMGM1YWM5NjZjMDA1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
CkBAIC0xNDksMTcgKzE0OSwyMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBzdHJ1Y3QgQnlWYWxD
b21waWxhdGlvbkluZm8gewogICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbygpIHsgfQogICAg
ICAgICAKLSAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9k
ZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQotICAgICAgICAg
ICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgIEJ5VmFsQ29tcGlsYXRp
b25JbmZvKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNy
b0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXAsIE1hY3JvQXNzZW1ibGVyOjpQ
YXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBBcnJheVBy
b2ZpbGUqIGFycmF5UHJvZmlsZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQpCisg
ICAgICAgICAgICA6IGJ5VmFsSW5mbyhieVZhbEluZm8pCisgICAgICAgICAgICAsIGJ5dGVjb2Rl
SW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4
SnVtcCkKICAgICAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICAg
ICAsIGFycmF5TW9kZShhcnJheU1vZGUpCisgICAgICAgICAgICAsIGFycmF5UHJvZmlsZShhcnJh
eVByb2ZpbGUpCiAgICAgICAgICAgICAsIGRvbmVUYXJnZXQoZG9uZVRhcmdldCkKICAgICAgICAg
ewogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvOwog
ICAgICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRj
aGFibGVKdW1wIGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOwor
ICAgICAgICBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsIGRvbmVUYXJnZXQ7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBzbG93
UGF0aFRhcmdldDsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgcmV0dXJuQWRkcmVzczsK
QEAgLTIwNCw2ICsyMTAsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBqaXQucHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbChieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIGFycmF5TW9kZSk7
CiAgICAgICAgIH0KIAorICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRoQ2Fj
aGVkSWQoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8s
IFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOwor
ICAgICAgICAgICAgaml0Lm1fYnl0ZWNvZGVPZmZzZXQgPSBieVZhbEluZm8tPmJ5dGVjb2RlSW5k
ZXg7CisgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChi
eVZhbEluZm8sIHJldHVybkFkZHJlc3MsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKwogICAg
ICAgICBzdGF0aWMgdm9pZCBjb21waWxlUHV0QnlWYWwoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVz
cywgSklUQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICAgICAgewogICAgICAgICAgICAgSklUIGpp
dCh2bSwgY29kZUJsb2NrKTsKQEAgLTI0Niw2ICsyNTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZv
cnQpOwogICAgICAgICAKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFs
SW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CisgICAgICAgIHZvaWQgcHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNz
UHRyLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVQdXRC
eVZhbChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwogCiAgICAg
ICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoQnlWYWxJbmZvKiwgUmV0
dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKQEAgLTM3MSw3ICszODUsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgSnVtcExpc3QgZW1pdEFycmF5U3RvcmFnZVB1dEJ5VmFsKEluc3Ry
dWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRJ
bnRUeXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBl
LCBUeXBlZEFycmF5VHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRGbG9hdFR5cGVkQXJyYXlQ
dXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlU
eXBlKTsKLSAgICAgICAgCisKKyAgICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlW
YWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3Qm
IGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcyk7CisKICAgICAgICAgZW51bSBGaW5hbE9i
amVjdE1vZGUgeyBNYXlCZUZpbmFsLCBLbm93bk5vdEZpbmFsIH07CiAKICAgICAgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24s
IFQgbGVmdEhhbmRTaWRlLCBTdHJ1Y3R1cmUqKTsKQEAgLTcwMiw2ICs3MTgsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJSZWcsIGNvbnN0IElkZW50aWZpZXIqKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkos
IGludCwgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBBcnJh
eVByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oQ19KSVRPcGVyYXRpb25f
RUpzYywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSnNjQywgaW50LCBHUFJSZWcsIEpTQ2VsbCopOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3BlcmF0aW9uX0VKc2NaLCBH
UFJSZWcsIGludDMyX3QpOwpAQCAtNzQ2LDYgKzc2Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2Vu
ZGlmCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRUpKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkFw
LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBBcnJheVByb2ZpbGUqKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
SkpKQnksIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIEJ5VmFsSW5mbyopOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VKWkosIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWiwgUmVnaXN0ZXJJ
RCwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRVBjLCBJbnN0cnVjdGlvbiopOwpAQCAtNzYyLDYgKzc4MCw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEpfSklUT3BlcmF0aW9uX0VKSWRjLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBjb25zdCBJZGVudGlm
aWVyKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpK
QXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyop
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0
aW9uX0VKUywgR1BSUmVnLCBHUFJSZWcsIHNpemVfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklU
T3BlcmF0aW9uX0VKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCk7CkBAIC03NjksNiArNzg4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VKSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCwgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCwgQXJyYXlQcm9maWxlKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5LCBSZWdpc3RlcklELCBSZWdpc3RlcklE
LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBCeVZhbElu
Zm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9w
ZXJhdGlvbl9FSlosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWkosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VaSiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IGE0OTQ4NGEzZTgwM2JjOGE0NzU5MjY1MTRiMTBiMGYx
ZmUxOTgwNzMuLmFjZDhjODk1ZmVkZGNmMGFjMjM1NDRjNjY2YzVkYjkxMzMxYzZlNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC00MTEsNiArNDExLDEyIEBAIEFM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5IG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBSZWdpc3RlcklEIHJlZ09wMywgQnlW
YWxJbmZvKiBieVZhbEluZm8pCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgcmVnT3AyLCByZWdPcDMsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7CisgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKK30KKwogQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRVpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZykKIHsKICAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKGRzdCksIGFyZyk7CkBAIC00NTksNiAr
NDY1LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwIG9wZXJhCiAgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAor
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKQnkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVn
IGFyZzIsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGJ5VmFsSW5mbykpOworICAgIHJldHVy
biBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24s
IGRzdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQ
UlJlZyBhcmcxKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxKTsKQEAg
LTYwMCw2ICs2MTIsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAgb3BlcmEKICAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3Qp
OwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcx
VGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxv
YWQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgU0g0XzMyQklU
X0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbVB0cihieVZhbEluZm8p
KTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1
bHQob3BlcmF0aW9uLCBkc3QpOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlv
bl9FSkogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXls
b2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQogewogICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJn
MVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CkBAIC02NjYs
NiArNjg0LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJuIGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5
IG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDFUYWcsIFJlZ2lzdGVySUQgcmVnT3AxUGF5bG9h
ZCwgUmVnaXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lzdGVySUQgcmVnT3AyUGF5bG9hZCwgUmVnaXN0
ZXJJRCByZWdPcDNUYWcsIFJlZ2lzdGVySUQgcmVnT3AzUGF5bG9hZCwgQnlWYWxJbmZvKiBieVZh
bEluZm8pCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVN
TVlfQVJHIHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyByZWdP
cDJQYXlsb2FkLCByZWdPcDJUYWcsIHJlZ09wM1BheWxvYWQsIHJlZ09wM1RhZywgVHJ1c3RlZElt
bVB0cihieVZhbEluZm8pKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FWkogb3BlcmF0aW9uLCBpbnQgZHN0LCBS
ZWdpc3RlcklEIHJlZ09wMVRhZywgUmVnaXN0ZXJJRCByZWdPcDFQYXlsb2FkKQogewogICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIoZHN0KSwgcmVnT3AxUGF5bG9h
ZCwgcmVnT3AxVGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmlu
ZGV4IDkwYjUzMjE1YWIwNGM3NDMzOGFkYmE4MzYzMDQwYzM4NGRmZmEzMWUuLmU0YWQ5NjczMGE3
ZGI3YWRkNDEwMzdiNTU2N2MwOGYyMTIwOWI0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcApAQCAtMTA3Nyw2ICsxMDc3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
aGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHBy
b3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2Zp
bGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAg
QnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAg
CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdU
MSk7CiAKQEAgLTExMDgsNyArMTEwOSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVk
X3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUs
IG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENv
bXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAo
KSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
biwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTExMTYsNyArMTEx
Nyw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7Ci0gICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9u
WzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENv
bXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAog
ICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hl
Y2sKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTExMjcs
NyArMTEyOCw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgCiAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihiYXNlLCByZWdUMCk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihw
cm9wZXJ0eSwgcmVnVDEpOwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
SGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCByZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwor
ICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5
RGVmYXVsdCwgZHN0LCByZWdUMCwgcmVnVDEsIGJ5VmFsSW5mbyk7CiAKICAgICBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNs
b3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5k
ZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IGQwZTc1Y2UxYTdlNTQ2OTgwMmM2MTA2MzNkMmIzMzU1
ZTIzNTRmOTkuLjM2YzMzNzljZjg4MDI3MWQyYmJlNjQ0MjgwMTM0Yzg4Y2JkN2E4MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTEwNzcs
NiArMTA3Nyw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3Ry
dWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9j
b2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAgIAogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNl
LCByZWdUMCk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UpOwpAQCAtMTEw
OSw3ICsxMTEwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBlbWl0U3RvcmVCb29sKGRz
dCwgcmVnVDApOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFs
Q29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsK
KyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhi
eVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9k
ZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4
ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTExMTcsNyArMTExOCw3IEBAIHZvaWQgSklU
OjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQ7CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAg
QXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9m
aWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tt
X2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAogICAgIGxpbmtTbG93Q2Fz
ZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKICAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTExMjgsNyArMTEyOSw3IEBAIHZv
aWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDEsIHJl
Z1QwKTsKICAgICBlbWl0TG9hZChwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QyKTsKLSAgICBDYWxsIGNh
bGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQsIGRz
dCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIsIHByb2ZpbGUpOworICAgIENhbGwgY2FsbCA9
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCBy
ZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMiwgYnlWYWxJbmZvKTsKIAogICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xv
d1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRl
eF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAppbmRleCA5Njk2ZmNlZDlkMmY4NDcyNzU5YjNkNzNlNjFlZGMzYTViNDJj
NGFhLi43YThkOTM5NjFmOWM3OGJiNWRjM2E3NTBjZTBhZDY3ZTBhMTk5NzY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTQ5OCw3ICs0OTgsNyBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVhbGxvY2F0ZVN0b3JhZ2VBbmRGaW5pc2hQ
dXQoRXhlY1N0YXRlKiBleGVjLCBKU09iagogICAgIGJhc2UtPnB1dERpcmVjdCh2bSwgb2Zmc2V0
LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpKTsKIH0KIAotc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwg
SlNWYWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCitzdGF0aWMgdm9pZCBw
dXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUg
c3Vic2NyaXB0LCBKU1ZhbHVlIHZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBW
TSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgaWYgKExJS0VMWShzdWJzY3JpcHQuaXNVSW50
MzIoKSkpIHsKQEAgLTUwOCw3ICs1MDgsNyBAQCBzdGF0aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LAogICAg
ICAgICAgICAgaWYgKG9iamVjdC0+Y2FuU2V0SW5kZXhRdWlja2x5KGkpKQogICAgICAgICAgICAg
ICAgIG9iamVjdC0+c2V0SW5kZXhRdWlja2x5KGNhbGxGcmFtZS0+dm0oKSwgaSwgdmFsdWUpOwog
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRP
ZkJvdW5kcygpOworICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRP
dXRPZkJvdW5kcygpOwogICAgICAgICAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5w
dXRCeUluZGV4KG9iamVjdCwgY2FsbEZyYW1lLCBpLCB2YWx1ZSwgY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKS0+aXNTdHJpY3RNb2RlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UKQEAg
LTUyMiw3ICs1MjIsNyBAQCBzdGF0aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LAogICAgIH0KIH0KIAotc3Rh
dGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxl
KiBhcnJheVByb2ZpbGUpCitzdGF0aWMgdm9pZCBkaXJlY3RQdXRCeVZhbChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEpTVmFsdWUgc3Vic2NyaXB0LCBKU1ZhbHVl
IHZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBib29sIGlzU3RyaWN0TW9kZSA9
IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpOwogICAgIGlmIChMSUtFTFko
c3Vic2NyaXB0LmlzVUludDMyKCkpKSB7CkBAIC01MzQsNyArNTM0LDcgQEAgc3RhdGljIHZvaWQg
ZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBKU1ZhbHVlIHMKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFy
cmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAgICAgICAgYnlWYWxJbmZvLT5hcnJheVBy
b2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVjdElu
ZGV4KGNhbGxGcmFtZSwgaW5kZXgsIHZhbHVlLCAwLCBpc1N0cmljdE1vZGUgPyBQdXREaXJlY3RJ
bmRleFNob3VsZFRocm93IDogUHV0RGlyZWN0SW5kZXhTaG91bGROb3RUaHJvdyk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC01NjAsNyArNTYwLDcgQEAgc3RhdGljIHZvaWQgZGlyZWN0UHV0
QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVl
IHMKICAgICAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0oKSwgcHJvcGVy
dHksIHZhbHVlLCBzbG90KTsKICAgICB9CiB9Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAg
LTU3NCwyMSArNTc0LDE5IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbChF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlCiAgICAgICAgIEpTT2Jq
ZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogICAgICAgICBib29sIGRpZE9wdGlt
aXplID0gZmFsc2U7CiAKLSAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5s
b2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKLSAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0
KTsKLSAgICAgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0
QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7Ci0gICAgICAgIEFTU0VSVCghYnlWYWxJbmZv
LnN0dWJSb3V0aW5lKTsKKyAgICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9m
ZnNldCgpKTsKKyAgICAgICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5lKTsKIAogICAg
ICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVjdC0+c3RydWN0dXJlKHZtKTsKICAgICAg
ICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcoc3RydWN0dXJlKSkgewogICAgICAgICAgICAg
Ly8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJheU1v
ZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJlKTsKLSAgICAgICAgICAgIGlm
IChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFs
SW5mby5hcnJheU1vZGUpIHsKKyAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQZXJtaXRzUHV0
KGFycmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlNb2RlKSB7CiAgICAg
ICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKICAg
ICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9j
ayk7Ci0gICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rp
b24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAgYnlWYWxJ
bmZvLT5hcnJheVByb2ZpbGUtPmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihsb2NrZXIsIGNvZGVC
bG9jaywgc3RydWN0dXJlKTsKIAotICAgICAgICAgICAgICAgIEpJVDo6Y29tcGlsZVB1dEJ5VmFs
KCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VS
X1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgICAgICAgICBKSVQ6OmNvbXBp
bGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBieVZhbEluZm8sIFJldHVybkFkZHJl
c3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAgICAgICAgICAgICBk
aWRPcHRpbWl6ZSA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTU5OSw3ICs1
OTcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICAgICAgLy8gdGhhdCBpbnRl
cmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4g
Rm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2Vw
dGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJhdGlvbnMgd29ydGggb2YKICAgICAgICAg
ICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwg
bWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRo
Q291bnQgPj0gMTAKKyAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+
PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8o
KS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3Ra
ZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4K
ICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJs
b2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIo
b3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKSk7CkBAIC02MDcsMTAgKzYwNSwxMCBAQCB2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICB9CiAgICAgfQogCi0gICAgcHV0QnlWYWwoZXhlYywg
YmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2ZpbGUpOworICAgIHB1dEJ5VmFs
KGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSogY2FsbEZy
YW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEFycmF5UHJvZmlsZSog
YXJyYXlQcm9maWxlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFs
KEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+dm0o
KTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgY2FsbEZyYW1lKTsKQEAg
LTYyMywyMiArNjIxLDIwIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRC
eVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUKICAgICBpZiAoc3Vic2Ny
aXB0LmlzSW50MzIoKSkgewogICAgICAgICAvLyBTZWUgaWYgaXQncyB3b3J0aCBvcHRpbWl6aW5n
IGF0IGFsbC4KICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwotICAgICAgICAKLSAg
ICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBjYWxsRnJhbWUtPmxvY2F0aW9uQXNCeXRl
Y29kZU9mZnNldCgpOwotICAgICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQpOwotICAgICAgICBC
eVZhbEluZm8mIGJ5VmFsSW5mbyA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5m
byhieXRlY29kZU9mZnNldCAtIDEpOwotICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91
dGluZSk7CisKKyAgICAgICAgQVNTRVJUKGNhbGxGcmFtZS0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zm
c2V0KCkpOworICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOwogCiAgICAg
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gb2JqZWN0LT5zdHJ1Y3R1cmUodm0pOwogICAgICAg
ICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhzdHJ1Y3R1cmUpKSB7CiAgICAgICAgICAgICAv
LyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9k
ZSA9IGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShzdHJ1Y3R1cmUpOwotICAgICAgICAgICAgaWYg
KGppdEFycmF5TW9kZVBlcm1pdHNQdXQoYXJyYXlNb2RlKSAmJiBhcnJheU1vZGUgIT0gYnlWYWxJ
bmZvLmFycmF5TW9kZSkgeworICAgICAgICAgICAgaWYgKGppdEFycmF5TW9kZVBlcm1pdHNQdXQo
YXJyYXlNb2RlKSAmJiBhcnJheU1vZGUgIT0gYnlWYWxJbmZvLT5hcnJheU1vZGUpIHsKICAgICAg
ICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7
CiAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5t
X2xvY2spOwotICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVk
aWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGJ5
VmFsSW5mby0+YXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBj
b2RlQmxvY2ssIHN0cnVjdHVyZSk7CiAKLSAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVEaXJl
Y3RQdXRCeVZhbCgmdm0sIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVy
bkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgICAg
ICAgICBKSVQ6OmNvbXBpbGVEaXJlY3RQdXRCeVZhbCgmdm0sIGNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBhcnJh
eU1vZGUpOwogICAgICAgICAgICAgICAgIGRpZE9wdGltaXplID0gdHJ1ZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtNjQ5LDE3ICs2NDUsMTcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1
ZQogICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0
IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVy
ZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0
ZXJhdGlvbnMgd29ydGggb2YKICAgICAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBv
YnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAg
ICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKKyAgICAgICAgICAgIGlmICgr
K2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVj
dC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBE
b24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxC
eVJldHVybkFkZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVzc1B0cihP
VVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdl
bmVyaWMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLSAgICBkaXJlY3RQdXRC
eVZhbChjYWxsRnJhbWUsIG9iamVjdCwgc3Vic2NyaXB0LCB2YWx1ZSwgYXJyYXlQcm9maWxlKTsK
KyAgICBkaXJlY3RQdXRCeVZhbChjYWxsRnJhbWUsIG9iamVjdCwgc3Vic2NyaXB0LCB2YWx1ZSwg
YnlWYWxJbmZvKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2Vu
ZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsK
QEAgLTY2OCwxMSArNjY0LDExIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZh
bEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvCiAgICAgSlNWYWx1
ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogCi0gICAgcHV0QnlW
YWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2ZpbGUpOworICAg
IHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsK
IH0KIAogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmlj
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBB
cnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25E
aXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMp
OwpAQCAtNjgxLDcgKzY3Nyw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQ
dXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1CiAgICAgSlNWYWx1
ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKLSAgICBkaXJlY3RQdXRCeVZhbChleGVjLCBh
c09iamVjdChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2ZpbGUpOworICAg
IGRpcmVjdFB1dEJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2VWYWx1ZSksIHN1YnNjcmlwdCwgdmFs
dWUsIGJ5VmFsSW5mbyk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjLCBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCkBAIC0x
NDU0LDM0ICsxNDUwLDQxIEBAIHN0YXRpYyBib29sIGNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlj
a2x5KEpTT2JqZWN0JiBvYmplY3QsIHVpbnQzMl90IGluZGV4KQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJh
c2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlLCBS
ZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCitzdGF0aWMgSlNWYWx1ZSBnZXRCeVZhbChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgQnlW
YWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcykKIHsKICAg
ICBpZiAoTElLRUxZKGJhc2VWYWx1ZS5pc0NlbGwoKSAmJiBzdWJzY3JpcHQuaXNTdHJpbmcoKSkp
IHsKICAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICAgICAgU3RydWN0dXJlJiBzdHJ1
Y3R1cmUgPSAqYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUodm0pOwogICAgICAgICBpZiAo
SlNDZWxsOjpjYW5Vc2VGYXN0R2V0T3duUHJvcGVydHkoc3RydWN0dXJlKSkgewogICAgICAgICAg
ICAgaWYgKFJlZlB0cjxBdG9taWNTdHJpbmdJbXBsPiBleGlzdGluZ0F0b21pY1N0cmluZyA9IGFz
U3RyaW5nKHN1YnNjcmlwdCktPnRvRXhpc3RpbmdBdG9taWNTdHJpbmcoZXhlYykpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBiYXNlVmFsdWUuYXNDZWxsKCktPmZhc3RH
ZXRPd25Qcm9wZXJ0eSh2bSwgc3RydWN0dXJlLCBleGlzdGluZ0F0b21pY1N0cmluZy5nZXQoKSkp
CisgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gYmFzZVZhbHVlLmFzQ2VsbCgp
LT5mYXN0R2V0T3duUHJvcGVydHkodm0sIHN0cnVjdHVyZSwgZXhpc3RpbmdBdG9taWNTdHJpbmcu
Z2V0KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0
ZWNvZGVPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChieVZhbEluZm8tPnN0dWJJ
bmZvICYmIGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgpICE9IGV4aXN0aW5nQXRvbWljU3RyaW5n
KQorICAgICAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT50b29rU2xvd1BhdGggPSB0cnVl
OwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChzdWJzY3JpcHQuaXNV
SW50MzIoKSkgeworICAgICAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0
KCkpOworICAgICAgICBieVZhbEluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CisKICAgICAgICAg
dWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigpOwogICAgICAgICBpZiAoaXNKU1N0cmlu
ZyhiYXNlVmFsdWUpKSB7CiAgICAgICAgICAgICBpZiAoYXNTdHJpbmcoYmFzZVZhbHVlKS0+Y2Fu
R2V0SW5kZXgoaSkpIHsKICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJl
c3MoZXhlYy0+Y29kZUJsb2NrKCksIHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlv
bkdldEJ5VmFsU3RyaW5nKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGFzU3RyaW5nKGJhc2VW
YWx1ZSktPmdldEluZGV4KGV4ZWMsIGkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXJy
YXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAgICAgICAgICAgYnlWYWxJbmZvLT5hcnJh
eVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAgICAgIH0gZWxzZSBpZiAoYmFzZVZhbHVl
LmlzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChi
YXNlVmFsdWUpOwogICAgICAgICAgICAgaWYgKG9iamVjdC0+Y2FuR2V0SW5kZXhRdWlja2x5KGkp
KQogICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3QtPmdldEluZGV4UXVpY2tseShpKTsKIAog
ICAgICAgICAgICAgaWYgKCFjYW5BY2Nlc3NBcmd1bWVudEluZGV4UXVpY2tseSgqb2JqZWN0LCBp
KSkKLSAgICAgICAgICAgICAgICBhcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAg
ICAgICAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAg
ICAgICAgIH0KIAogICAgICAgICByZXR1cm4gYmFzZVZhbHVlLmdldChleGVjLCBpKTsKQEAgLTE0
OTMsNzQgKzE0OTYsOTEgQEAgc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEEKICAgICBhdXRvIHByb3Bl
cnR5ID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZXhlYyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIEFTU0VSVChl
eGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgaWYgKGJ5VmFsSW5mby0+c3R1
YkluZm8gJiYgYnlWYWxJbmZvLT5jYWNoZWRJZCAhPSBwcm9wZXJ0eSkKKyAgICAgICAgYnlWYWxJ
bmZvLT50b29rU2xvd1BhdGggPSB0cnVlOworCiAgICAgcmV0dXJuIGJhc2VWYWx1ZS5nZXQoZXhl
YywgcHJvcGVydHkpOwogfQogCiBleHRlcm4gIkMiIHsKICAgICAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZv
KiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBn
ZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5B
ZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0
QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVz
c1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlW
YWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmls
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6
ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBl
eGVjKTsKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFz
ZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNj
cmlwdCk7Ci0gICAgCisKICAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkgJiYgc3Vic2NyaXB0
LmlzSW50MzIoKSkgewogICAgICAgICAvLyBTZWUgaWYgaXQncyB3b3J0aCBvcHRpbWl6aW5nIHRo
aXMgYXQgYWxsLgogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVl
KTsKICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgICAgIHVuc2lnbmVk
IGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7Ci0gICAg
ICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7Ci0gICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZv
ID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwot
ICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7Ci0gICAgICAgIAorICAgICAg
ICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOworICAgICAgICBBU1NF
UlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOworCiAgICAgICAgIGlmIChoYXNPcHRpbWl6YWJs
ZUluZGV4aW5nKG9iamVjdC0+c3RydWN0dXJlKHZtKSkpIHsKICAgICAgICAgICAgIC8vIEF0dGVt
cHQgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVj
dC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGUgPSBq
aXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJlKTsKLSAgICAgICAgICAgIGlmIChhcnJh
eU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgeworICAgICAgICAgICAgaWYgKGFycmF5TW9k
ZSAhPSBieVZhbEluZm8tPmFycmF5TW9kZSkgewogICAgICAgICAgICAgICAgIC8vIElmIHdlIHJl
YWNoZWQgdGhpcyBjYXNlLCB3ZSBnb3QgYW4gaW50ZXJlc3RpbmcgYXJyYXkgbW9kZSB3ZSBkaWQg
bm90IGV4cGVjdCB3aGVuIHdlIGNvbXBpbGVkLgogICAgICAgICAgICAgICAgIC8vIExldCdzIHVw
ZGF0ZSB0aGUgcHJvZmlsZSB0byBkbyBiZXR0ZXIgbmV4dCB0aW1lLgogICAgICAgICAgICAgICAg
IENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICAg
ICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAg
ICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwg
Y29kZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQ
cm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVj
dHVyZSk7CiAKLSAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVHZXRCeVZhbCgmdm0sIGV4ZWMt
PmNvZGVCbG9jaygpLCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQURE
UkVTUyksIGFycmF5TW9kZSk7CisgICAgICAgICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWwo
JnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9S
RVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CiAgICAgICAgICAgICAgICAgZGlkT3B0aW1pemUg
PSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGlm
ICghZGlkT3B0aW1pemUpIHsKICAgICAgICAgICAgIC8vIElmIHdlIHRha2Ugc2xvdyBwYXRoIG1v
cmUgdGhhbiAxMCB0aW1lcyB3aXRob3V0IHBhdGNoaW5nIHRoZW4gbWFrZSBzdXJlIHdlCiAgICAg
ICAgICAgICAvLyBuZXZlciBtYWtlIHRoYXQgbWlzdGFrZSBhZ2Fpbi4gT3IsIGlmIHdlIGZhaWxl
ZCB0byBwYXRjaCBhbmQgd2UgaGF2ZSBzb21lIG9iamVjdAogICAgICAgICAgICAgLy8gdGhhdCBp
bnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1l
cy4gRm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWluZGV4LWludGVy
Y2VwdGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJhdGlvbnMgd29ydGggb2YKICAgICAg
ICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92
YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQ
YXRoQ291bnQgPj0gMTAKKyAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3Vu
dCA+PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUlu
Zm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBvcHRpbWl6
ZS4KICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29k
ZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25Q
dHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFs
dWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5f
QUREUkVTUykpOworCisgICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpICYmIChzdWJzY3JpcHQu
aXNTeW1ib2woKSB8fCBzdWJzY3JpcHQuaXNTdHJpbmcoKSkpIHsKKyAgICAgICAgY29uc3QgSWRl
bnRpZmllciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3JpcHQudG9Qcm9wZXJ0eUtleShleGVjKTsKKwor
ICAgICAgICBpZiAoIXN1YnNjcmlwdC5pc1N0cmluZygpIHx8ICFwYXJzZUluZGV4KHByb3BlcnR5
TmFtZSkpIHsKKyAgICAgICAgICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZz
ZXQoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOworICAg
ICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoJnZtLCBleGVjLT5jb2Rl
QmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyks
IHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChi
YXNlVmFsdWUpOworICAgICAgICBib29sIGhhc1Jlc3VsdCA9IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShoYXNSZXN1bHQgPyBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSkgOiBq
c1VuZGVmaW5lZCgpKTsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4
ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VS
X1JFVFVSTl9BRERSRVNTKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQotICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVk
UHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQ
cm9maWxlKQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4
ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbElu
Zm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xNTczLDE2ICsxNTkzLDE0IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdChFeGVj
U3RhdGUqIGV4ZWMsCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7
CiAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgdW5zaWduZWQgYnl0ZWNvZGVP
ZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKLSAgICBBU1NFUlQoYnl0
ZWNvZGVPZmZzZXQpOwotICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2Nr
KCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwotICAgIEFTU0VSVCghYnlWYWxJ
bmZvLnN0dWJSb3V0aW5lKTsKKyAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zm
c2V0KCkpOworICAgIEFTU0VSVCghYnlWYWxJbmZvLT5zdHViUm91dGluZSk7CiAgICAgCiAgICAg
aWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcob2JqZWN0LT5zdHJ1Y3R1cmUodm0pKSkgewogICAg
ICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlN
b2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKG9iamVjdC0+c3RydWN0dXJlKHZtKSk7Ci0g
ICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgewotICAgICAgICAg
ICAgSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCks
ICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlN
b2RlKTsKKyAgICAgICAgaWYgKGFycmF5TW9kZSAhPSBieVZhbEluZm8tPmFycmF5TW9kZSkgewor
ICAgICAgICAgICAgSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KCZ2bSwgZXhlYy0+Y29k
ZUJsb2NrKCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1Mp
LCBhcnJheU1vZGUpOwogICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0cnVlOwogICAgICAgICB9
CiAgICAgfQpAQCAtMTU5MywxMCArMTYxMSwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLAog
ICAgICAgICAvLyB0aGF0IGludGVyY2VwdHMgaW5kZXhlZCBnZXQsIHRoZW4gZG9uJ3QgZXZlbiB3
YWl0IHVudGlsIDEwIHRpbWVzLiBGb3IgY2FzZXMKICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5v
bi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdv
cnRoIG9mCiAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhl
IGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICBpZiAoKytieVZhbEluZm8u
c2xvd1BhdGhDb3VudCA+PSAxMAorICAgICAgICBpZiAoKytieVZhbEluZm8tPnNsb3dQYXRoQ291
bnQgPj0gMTAKICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8o
KS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3Ra
ZXJvKCkpIHsKICAgICAgICAgICAgIC8vIERvbid0IGV2ZXIgdHJ5IHRvIG9wdGltaXplLgotICAg
ICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBS
ZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlv
bkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMpKTsgCisgICAgICAgICAgICBjdGlQYXRjaENhbGxC
eVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JF
VFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2Vu
ZXJpYykpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNjA1LDExICsxNjIzLDExIEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVs
dChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1
ZShKU1ZhbHVlOjpKU1RydWUpKTsKIAogICAgIGlmICghY2FuQWNjZXNzQXJndW1lbnRJbmRleFF1
aWNrbHkoKm9iamVjdCwgaW5kZXgpKQotICAgICAgICBhcnJheVByb2ZpbGUtPnNldE91dE9mQm91
bmRzKCk7CisgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG9iamVjdC0+aGFzUHJvcGVy
dHkoZXhlYywgaW5kZXgpKSk7CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xNjI1LDExICsxNjQz
LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFBy
b3BlcnR5R2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNWYWx1ZShKU1ZhbHVlOjpKU1RydWUpKTsKIAogICAgIGlmICghY2FuQWNjZXNzQXJn
dW1lbnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaW5kZXgpKQotICAgICAgICBhcnJheVByb2ZpbGUt
PnNldE91dE9mQm91bmRzKCk7CisgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRP
dXRPZkJvdW5kcygpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG9iamVj
dC0+aGFzUHJvcGVydHkoZXhlYywgc3Vic2NyaXB0LmFzVUludDMyKCkpKSk7CiB9CiAgICAgCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTdWJzY3JpcHQpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdl
dEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQog
ewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcigmdm0sIGV4ZWMpOwpAQCAtMTY0NCwxMCArMTY2Miw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgcmVzdWx0ID0gYmFzZVZhbHVlLmdl
dChleGVjLCBpKTsKICAgICAgICAgICAgIGlmICghaXNKU1N0cmluZyhiYXNlVmFsdWUpKSB7Ci0g
ICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFz
Qnl0ZWNvZGVPZmZzZXQoKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQp
OwotICAgICAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2Nr
KCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwotICAgICAgICAgICAgICAgIGN0
aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhleGVjLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVz
c1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihieVZhbEluZm8uc3R1YlJvdXRp
bmUgPyBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXpl
KSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNl
dCgpKTsKKyAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+
Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rp
b25QdHIoYnlWYWxJbmZvLT5zdHViUm91dGluZSA/IG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyA6
IG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmlu
ZGV4IGNhY2ZmMmNkOWJkMmFhMGJmN2U3MzBjZmRlMGYxMzBmYzgyNjlkZDguLmM2ZDI4YzZhM2Zk
ZDNlNmQ5ODUwODgzNzU1OWU1MTA5MjU1YWI4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5oCkBAIC01OCw2ICs1OCw3IEBAIGV4dGVybiAiQyIgewogICAgIEE6
IEpTQXJyYXkqCiAgICAgQWFwOiBBcnJheUFsbG9jYXRpb25Qcm9maWxlKgogICAgIEFwOiBBcnJh
eVByb2ZpbGUqCisgICAgQnk6IEJ5VmFsSW5mbyoKICAgICBDOiBKU0NlbGwqCiAgICAgQ2I6IENv
ZGVCbG9jayoKICAgICBDbGk6IENhbGxMaW5rSW5mbyoKQEAgLTExMyw2ICsxMTQsNyBAQCB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkkpKEV4
ZWNTdGF0ZSosIEVuY29kZWRKUwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUpJZGMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBjb25z
dCBJZGVudGlmaWVyKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpK
X0pJVE9wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJh
dGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBB
cnJheVByb2ZpbGUqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpf
SklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUpzc1opKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgaW50MzJfdCk7
CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9F
SlApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCB2b2lkKik7CiB0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FUCkoRXhlY1N0YXRlKiwgdm9p
ZCopOwpAQCAtMTk1LDYgKzE5Nyw3IEBAIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9K
SVRPcGVyYXRpb25fRUpJZEopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJCiB0eXBlZGVm
IHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSWRKSikoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpKKShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSkFwKShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBBcnJheVByb2ZpbGUqKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVy
YXRpb25fRUpKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9O
ICgqVl9KSVRPcGVyYXRpb25fRUpQUCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIHZvaWQq
LCB2b2lkKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VK
WkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7
CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKWikoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpOwpAQCAtMjU5LDEwICsyNjIsMTAgQEAgdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RCdWlsZExpc3QoRXhlY1N0
YXRlKiwgU3RydWN0dXJlU3R1YkkKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlk
RGlyZWN0U3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgVW5p
cXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdEJ1aWxkTGlzdChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblJlYWxsb2NhdGVTdG9yYWdlQW5kRmluaXNoUHV0KEV4ZWNTdGF0ZSos
IEpTT2JqZWN0KiwgU3RydWN0dXJlKiwgUHJvcGVydHlPZmZzZXQsIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJy
YXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRp
cmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKikgV1RGX0lO
VEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJp
YyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5B
TDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJ
bmZvKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1
dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSosIEV4ZWNTdGF0ZSop
IFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwoRXhl
Y1N0YXRlKiwgQ2FsbExpbmtJbmZvKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25MaW5rUG9seW1vcnBoaWNDYWxsKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyop
IFdURl9JTlRFUk5BTDsKQEAgLTMxMCwxMSArMzEzLDExIEBAIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZURpZENhbGwoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9m
aWxlV2lsbENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbCkgV1RGX0lOVEVS
TkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGlt
aXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkgV1RGX0lOVEVS
TkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJv
cGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0
eUdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFs
SW5mbyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3Bl
cnR5RGVmYXVsdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOworRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5l
cmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgY29uc3QgSWRlbnRpZmllciopIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQTmFtZXMoRXhlY1N0YXRlKiwgSlNPYmplY3QqKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3Rh
bmNlT2YoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3RvKSBX
VEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwCmluZGV4IDRlZjA2ZDkyMTNhMmIxZGJmZmJhNGM3YzMzNGQyZjZmMWM0NzkxN2Uu
LjczZDM3ZDk0NDFjODFlODNkZGRmZTFlZGJkNWI0NGVmZjE2ZWRlZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC05OCwxMCArOTgs
MTggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwog
ICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5
UHJvZmlsZTsKLSAgICAKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5h
ZGRCeVZhbEluZm8oKTsKKwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1Qw
LCBwcm9wZXJ0eSwgcmVnVDEpOwotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUlu
dGVnZXIocmVnVDEpOwogCisgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBi
YXNlKTsKKworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGltcGxlbWVudCBwYXRjaGFibGVCcmFu
Y2g2NC4KKyAgICBKdW1wIGlzSW5kZXggPSBlbWl0SnVtcElmSW1tZWRpYXRlSW50ZWdlcihyZWdU
MSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNoYWJsZUp1bXAoKTsKKyAgICBh
ZGRTbG93Q2FzZShub3RJbmRleCk7CisKKyAgICBpc0luZGV4LmxpbmsodGhpcyk7CiAgICAgLy8g
VGhpcyBpcyB0ZWNobmljYWxseSBpbmNvcnJlY3QgLSB3ZSdyZSB6ZXJvLWV4dGVuZGluZyBhbiBp
bnQzMi4gIE9uIHRoZSBob3QgcGF0aCB0aGlzIGRvZXNuJ3QgbWF0dGVyLgogICAgIC8vIFdlIGNo
ZWNrIHRoZSB2YWx1ZSBhcyBpZiBpdCB3YXMgYSB1aW50MzIgYWdhaW5zdCB0aGUgbV92ZWN0b3JM
ZW5ndGggLSB3aGljaCB3aWxsIGFsd2F5cyBmYWlsIGlmCiAgICAgLy8gbnVtYmVyIHdhcyBzaWdu
ZWQgc2luY2UgbV92ZWN0b3JMZW5ndGggaXMgYWx3YXlzIGxlc3MgdGhhbiBpbnRtYXggKHNpbmNl
IHRoZSB0b3RhbCBhbGxvY2F0aW9uCkBAIC0xMTAsNyArMTE4LDYgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIC8vIGV4
dGVuZGluZyBzaW5jZSBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2YWx1ZSBpbiB0
aGUgc2xvdyBjYXNlLgogICAgIHplcm9FeHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdUMSk7CiAKLSAg
ICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOwogICAgIGVtaXRBcnJh
eVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwogICAgIGFuZDMy
KFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QyKTsKIApAQCAtMTQ5LDggKzE1
Niw4IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIAogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKGRzdCk7Ci0gICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5h
cHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9k
ZSwgZG9uZSkpOworCisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21w
aWxhdGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwgYmFkVHlw
ZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdERv
dWJsZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQpAQCAtMTk1LDE1
ICsyMDIsNTIgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2FkKEluc3Ry
dWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICByZXR1cm4gc2xvd0Nhc2VzOwog
fQogCitKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykKK3sKKyAgICAv
LyBiYXNlOiByZWdUMAorICAgIC8vIHByb3BlcnR5OiByZWdUMQorICAgIC8vIHNjcmF0Y2g6IHJl
Z1QzCisKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKwor
ICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMSkpOworICAgIGlm
IChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJy
YW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpzdHJ1Y3R1cmVJ
RE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQ
dHIoQWRkcmVzcyhyZWdUMSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMyk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUo
Tm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1f
dm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVn
VDEsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMyk7CisgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMykpOworICAgICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QzLCBTdHJpbmdJbXBsOjpmbGFn
c09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21pYygpKSkpOwor
ICAgIH0KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDMsIFRy
dXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdldEJ5SWRHZW5l
cmF0b3IgZ2VuKAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zm
c2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAgSlNWYWx1ZVJl
Z3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVy
YXRlRmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisg
ICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgp
LmxpbmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxl
LCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QwLCBw
cm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRo
QmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIHJldHVy
biBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0
ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAg
ICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBw
cm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgQXJyYXlQcm9m
aWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAg
IEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5z
dHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsg
Ly8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVy
LCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBw
cm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKICAgICBKdW1wIG5vdFN0cmluZyA9
IGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgCkBAIC0yMjQsNyArMjY4LDcgQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdG9yPFNsb3dDYXMKICAgICAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2UsIHJl
Z1QwKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3BlcnR5LCByZWdUMSk7Ci0gICAg
Q2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3Qs
IHJlZ1QwLCByZWdUMSwgcHJvZmlsZSk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIHJlZ1QwLCByZWdUMSwgYnlWYWxJbmZvKTsK
IAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNs
b3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5
VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0yNjMsNiArMzA3
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5
UHJvZmlsZTsKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZh
bEluZm8oKTsKIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1QwLCBwcm9w
ZXJ0eSwgcmVnVDEpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUludGVnZXIo
cmVnVDEpOwpAQCAtMjk5LDggKzM0NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBMYWJlbCBkb25lID0g
bGFiZWwoKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENv
bXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7Ci0K
KyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhi
eVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9k
ZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWND
b250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hh
YmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCkBAIC0zOTksNiAr
NDQzLDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZv
ID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJ
bmZvOwogCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawog
ICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hl
Y2sKQEAgLTQyNCw3ICs0NjksNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVydHksIHJlZ1QxKTsKICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKHZhbHVlLCByZWdUMik7CiAgICAgYm9vbCBpc0RpcmVjdCA9IG1faW50ZXJwcmV0ZXIt
PmdldE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5vcGNvZGUpID09IG9wX3B1dF9ieV92
YWxfZGlyZWN0OwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oaXNEaXJlY3QgPyBvcGVy
YXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMCwgcmVnVDEsIHJl
Z1QyLCBwcm9maWxlKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKGlzRGlyZWN0ID8g
b3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwgOiBvcGVyYXRpb25QdXRCeVZhbCwgcmVnVDAsIHJlZ1Qx
LCByZWdUMiwgYnlWYWxJbmZvKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZh
bEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZh
bENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9
IGNhbGw7CkBAIC05OTksNiArMTA0NCwzNiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRC
eVZhbChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZAogICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5j
dGlvblB0cihvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMpKTsKIH0KIAordm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KQoreworICAgIEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24gPSBtX2NvZGVCbG9jay0+
aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKKworICAg
IEp1bXBMaXN0IGRvbmVDYXNlczsKKyAgICBKdW1wTGlzdCBzbG93Q2FzZXM7CisKKyAgICBKSVRH
ZXRCeUlkR2VuZXJhdG9yIGdlbiA9IGVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChjdXJyZW50SW5z
dHJ1Y3Rpb24sIHByb3BlcnR5TmFtZSwgZG9uZUNhc2VzLCBzbG93Q2FzZXMpOworCisgICAgQ29u
Y3VycmVudEpJVExvY2tlciBsb2NrZXIobV9jb2RlQmxvY2stPm1fbG9jayk7CisgICAgTGlua0J1
ZmZlciBwYXRjaEJ1ZmZlcigqbV92bSwgKnRoaXMsIG1fY29kZUJsb2NrKTsKKyAgICBwYXRjaEJ1
ZmZlci5saW5rKHNsb3dDYXNlcywgQ29kZUxvY2F0aW9uTGFiZWwoTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyOjpjcmVhdGVGcm9tRXhlY3V0YWJsZUFkZHJlc3MocmV0dXJuQWRkcmVzcy52YWx1ZSgpKSku
bGFiZWxBdE9mZnNldChieVZhbEluZm8tPnJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKSk7CisgICAg
cGF0Y2hCdWZmZXIubGluayhkb25lQ2FzZXMsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxB
dE9mZnNldChieVZhbEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7CisgICAgZm9yIChjb25zdCBh
dXRvJiBjYWxsU2l0ZSA6IG1fY2FsbHMpIHsKKyAgICAgICAgaWYgKGNhbGxTaXRlLnRvKQorICAg
ICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhjYWxsU2l0ZS5mcm9tLCBGdW5jdGlvblB0cihjYWxs
U2l0ZS50bykpOworICAgIH0KKyAgICBnZW4uZmluYWxpemUocGF0Y2hCdWZmZXIpOworCisgICAg
YnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAg
IG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlfdmFs
IHdpdGggY2FjaGVkIHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50
ICVwIiwgcHJvcGVydHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEoKSwgdG9DU3RyaW5nKCptX2Nv
ZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKKyAgICBieVZhbEluZm8t
PmNhY2hlZElkID0gcHJvcGVydHlOYW1lOworICAgIGJ5VmFsSW5mby0+c3R1YkluZm8gPSBnZW4u
c3R1YkluZm8oKTsKKworICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9j
ayk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5ub3RJbmRleEp1bXAsIENv
ZGVMb2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkpKTsK
KyAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywg
RnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7Cit9CisKIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5i
ZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggNjA5Y2ExMzg4
MjI3ZGI1YmRhNTM5Mjc1MzAzZGFkZDJkOGIxY2ViYy4uMTE3ZWJlYzVjMzBjNWRjZjBmNWY1M2M5
MTg0OTY3ZmZmMjE1OTM3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xNDksMTEgKzE0OSwxMyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBw
cm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9m
aWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAg
IEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAg
IAogICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMywgcmVn
VDIpOwogICAgIAotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEpTQ2VsbChiYXNlLCByZWdUMSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNo
YWJsZUJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMy
VGFnKSk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogICAgIGVtaXRBcnJheVByb2ZpbGlu
Z1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJ
bW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QxKTsKIApAQCAtMTkyLDcgKzE5NCw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVn
VDEsIHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZh
bENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7
CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8o
YnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwgYmFkVHlwZSwgbW9kZSwgcHJv
ZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdENvbnRpZ3VvdXNMb2Fk
KEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGV4cGVj
dGVkU2hhcGUpCkBAIC0yMzYsMTYgKzIzOCw1MyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEFy
cmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQogICAg
IAogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9Ci0gICAgCisKK0pJVEdldEJ5SWRHZW5lcmF0b3Ig
SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2Vz
LCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQoreworICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOworCisgICAgLy8gYmFzZTogdGFnKHJlZ1QxKSwgcGF5bG9hZChyZWdU
MCkKKyAgICAvLyBwcm9wZXJ0eTogdGFnKHJlZ1QzKSwgcGF5bG9hZChyZWdUMikKKyAgICAvLyBz
Y3JhdGNoOiByZWdUNAorCisgICAgc2xvd0Nhc2VzLmFwcGVuZChlbWl0SnVtcElmTm90SlNDZWxs
KHJlZ1QzKSk7CisgICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7CisgICAgICAgIHNs
b3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBK
U0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zeW1ib2xTdHJ1Y3R1cmUuZ2V0KCkp
KTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0
ZU5hbWUoKSksIHJlZ1Q0KTsKKyAgICB9IGVsc2UgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5k
KGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1
cmVJRE9mZnNldCgpKSwgbV92bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxv
YWRQdHIoQWRkcmVzcyhyZWdUMiwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksIHJlZ1Q0KTsK
KyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0UHRyKFplcm8sIHJlZ1Q0KSk7Cisg
ICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdDMyKFplcm8sIEFkZHJlc3MocmVnVDQs
IFN0cmluZ0ltcGw6OmZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoU3RyaW5nSW1wbDo6Zmxh
Z0lzQXRvbWljKCkpKSk7CisgICAgfQorICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5v
dEVxdWFsLCByZWdUNCwgVHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSkpOworCisg
ICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3Jp
Z2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAor
ICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdU
MSwgcmVnVDApLCBEb250U3BpbGwpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsK
KworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIExhYmVsIGNvbGRQYXRoQmVn
aW4gPSBsYWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5saW5rKHRoaXMpOworCisgICAg
Q2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwgb3BlcmF0aW9uR2V0QnlJZE9w
dGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5TmFtZS5p
bXBsKCkpOworICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7
CisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisgICAgcmV0dXJuIGdlbjsKK30KKwog
dm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBp
bnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgYmFzZSA9
IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Ci0gICAgCi0gICAgbGlua1Ns
b3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjaworICAgIEJ5VmFsSW5mbyogYnlW
YWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0u
YnlWYWxJbmZvOworCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8v
IGJhc2UgY2VsbCBjaGVjaworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50
MzIgY2hlY2sKIAogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2Uo
aXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTI2NSw3ICszMDQsNyBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBW
ZWN0b3I8U2xvd0NhcwogICAgIAogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAg
ICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1QzLCByZWdUMik7Ci0gICAgQ2FsbCBjYWxsID0gY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIHJlZ1QxLCByZWdUMCwg
cmVnVDMsIHJlZ1QyLCBwcm9maWxlKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIs
IGJ5VmFsSW5mbyk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVj
dGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpA
QCAtMjc5LDYgKzMxOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVC
bG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAgCiAgICAgZW1pdExvYWQyKGJhc2UsIHJlZ1QxLCBy
ZWdUMCwgcHJvcGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCkBAIC0zMTQsNyArMzU0LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxD
b21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZz
ZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFw
cGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBh
dGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6
Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBl
IGluZGV4aW5nU2hhcGUpCkBAIC00MTksNiArNDU5LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJy
YXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxl
OworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5
VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAogICAgIGxpbmtTbG93Q2FzZShp
dGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2Vs
bChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCkBAIC00NjYsNyArNTA3LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBlbWl0TG9hZChiYXNlLCByZWdUMiwgcmVnVDEpOwog
ICAgIGVtaXRMb2FkKHByb3BlcnR5LCByZWdUMywgcmVnVDApOwogICAgIGVtaXRMb2FkKHZhbHVl
LCByZWdUNSwgcmVnVDQpOwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oaXNEaXJlY3Qg
PyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMiwgcmVn
VDEsIHJlZ1QzLCByZWdUMCwgcmVnVDUsIHJlZ1Q0LCBwcm9maWxlKTsKKyAgICBDYWxsIGNhbGwg
PSBjYWxsT3BlcmF0aW9uKGlzRGlyZWN0ID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwgOiBvcGVy
YXRpb25QdXRCeVZhbCwgcmVnVDIsIHJlZ1QxLCByZWdUMywgcmVnVDAsIHJlZ1Q1LCByZWdUNCwg
YnlWYWxJbmZvKTsKICNlbmRpZgogCiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFs
SW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1BhdGhUYXJnZXQgPSBzbG93UGF0aDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKaW5kZXggZTU3OTBkNzg3MjI2YmVhNzYwMjRjOWQxZDY2
YTY3NjBmNjRkZTVhMi4uODNmNWRlMjQ4NTJiYzM3OGVlMGE3NzAzOWY0NjMxODI1ZmRkZGJiZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgKQEAgLTc5LDYgKzc5LDggQEAg
Y2xhc3MgU3ltYm9sIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgSlNPYmplY3QqIHRvT2Jq
ZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgZG91YmxlIHRvTnVt
YmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCisgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZlByaXZh
dGVOYW1lKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN5bWJvbCwgbV9wcml2YXRlTmFtZSk7
IH0KKwogcHJvdGVjdGVkOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
YzU4NTE2MDJlOTM0YjMzNjY4YWVkMmNmZjRkZGNiNzg3NmVlMTg4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWNvbnN0cnVjdG9yLmpzCkBAIC0wLDAgKzEsMjMgQEAKK3ZhciBzeW1ib2wgPSAiQEBzcGVj
aWVzIjsKK2Z1bmN0aW9uIEhlbGxvKCkgeworfQorCitPYmplY3QuZGVmaW5lUHJvcGVydHkoSGVs
bG8sIHN5bWJvbCwgeworICAgIGdldDogZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gdGhp
czsKKyAgICB9Cit9KTsKKworSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlID0gZnVuY3Rpb24gKCkg
eworICAgIHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcltzeW1ib2xdKCk7Cit9OworCitmdW5j
dGlvbiBvaygpIHsKKyAgICB2YXIgb2JqZWN0ID0gbmV3IEhlbGxvKCk7CisgICAgaWYgKCEob2Jq
ZWN0LmdlbmVyYXRlKCkgaW5zdGFuY2VvZiBIZWxsbykpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigiYmFkIGluc3RhbmNlIik7Cit9Citub0lubGluZShvayk7CisKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZXhpdC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YWEyNjJkNjRhNjYxNDk2NDY2OWFiNzRjYjJmMDFmYTRlZDgwMmY3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMKQEAgLTAsMCArMSwzNCBAQAorZnVuY3Rpb24gc2hv
dWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1
bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKK3sKKyAgICByZXR1cm4gb2JqZWN0W25hbWVd
OworfQorbm9JbmxpbmUoZ2V0QnlWYWwpOworCitmdW5jdGlvbiBnZXRTdHIxKCkKK3sKKyAgICBy
ZXR1cm4gImhlbGxvIjsKK30KK25vSW5saW5lKGdldFN0cjEpOworCitmdW5jdGlvbiBnZXRTdHIy
KCkKK3sKKyAgICByZXR1cm4gImhlbGxvIjsKK30KK25vSW5saW5lKGdldFN0cjIpOworCit2YXIg
b2JqZWN0ID0geworICAgIGhlbGxvOiA0MgorfTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7
ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3Ry
MSgpIDogZ2V0U3RyMigpKSwgNDIpOworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCB7IHRvU3Ry
aW5nKCkgeyByZXR1cm4gJ2hlbGxvJzsgfSB9KSwgNDIpOworCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/
IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwg
eyB0b1N0cmluZygpIHsgcmV0dXJuICdoZWxsbyc7IH0gfSksIDQyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1n
ZW5lcmF0ZWQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctZ2VuZXJhdGVkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MTNhN2UxNDBkMzg2NjUz
ZmJjMzU0YzUwZWFkNThlMTIxOWQzYTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2VuZXJhdGVkLmpz
CkBAIC0wLDAgKzEsMzMgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsK
KyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdi
YWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5h
bWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30KK25vSW5saW5lKGdldEJ5VmFsKTsK
KwordmFyIHZhbHVlID0gJ2xvJzsKKworZnVuY3Rpb24gZ2V0U3RyMSgpCit7CisgICAgcmV0dXJu
ICJoZWwiICsgdmFsdWU7Cit9Citub0lubGluZShnZXRTdHIxKTsKKworZnVuY3Rpb24gZ2V0U3Ry
MigpCit7CisgICAgcmV0dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIyKTsKKwordmFy
IG9iamVjdCA9IHsKKyAgICBoZWxsbzogNDIsCisgICAgd29ybGQ6IDUwCit9OworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBp
ICUgMiA9PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5
VmFsKG9iamVjdCwgJ3dvcmxkJyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2V0
dGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg1OGVjMGE4NmRiOTU0ZDg0N2Y2YjhmNzYyZDI5NmJlZGNlYjFi
ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2V0dGVyLmpzCkBAIC0wLDAgKzEsMTYgQEAKKwordmFy
IG9iamVjdCA9IHsKKyAgICBnZXQgaGVsbG8oKSB7CisgICAgICAgIHJldHVybiA0MjsKKyAgICB9
Cit9OworCitmdW5jdGlvbiBvaygpIHsKKyAgICB2YXIgdmFsdWUgPSAnaGVsbG8nOworICAgIGlm
IChvYmplY3RbdmFsdWVdICsgMjAgIT09IDYyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTsK
K30KK25vSW5saW5lKG9rKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAg
IG9rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmcuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRiMzNkOWJlY2IxNGFk
MjA1Yjg3NTViZGZlMWY5NWJiMzk3YmI0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5qcwpAQCAtMCww
ICsxLDMxIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVl
OiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQorewor
ICAgIHJldHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRCeVZhbCk7CisKK2Z1bmN0
aW9uIGdldFN0cjEoKQoreworICAgIHJldHVybiAiaGVsbG8iOworfQorbm9JbmxpbmUoZ2V0U3Ry
MSk7CisKK2Z1bmN0aW9uIGdldFN0cjIoKQoreworICAgIHJldHVybiAiaGVsbG8iOworfQorbm9J
bmxpbmUoZ2V0U3RyMik7CisKK3ZhciBvYmplY3QgPSB7CisgICAgaGVsbG86IDQyLAorICAgIHdv
cmxkOiA1MAorfTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3Vs
ZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkp
LCA0Mik7CitzaG91bGRCZShnZXRCeVZhbChvYmplY3QsICd3b3JsZCcpLCA1MCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtY29uc3RydWN0b3IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjg5NWMy
NjQ1MWQyNTdhOTdhMmRiM2VjNTg5MjliOWQ1NTM0MzI1MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1j
b25zdHJ1Y3Rvci5qcwpAQCAtMCwwICsxLDIzIEBACit2YXIgc3ltYm9sID0gU3ltYm9sKCk7Citm
dW5jdGlvbiBIZWxsbygpIHsKK30KKworT2JqZWN0LmRlZmluZVByb3BlcnR5KEhlbGxvLCBzeW1i
b2wsIHsKKyAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAg
fQorfSk7CisKK0hlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uICgpIHsKKyAgICBy
ZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3Jbc3ltYm9sXSgpOworfTsKKworZnVuY3Rpb24gb2so
KSB7CisgICAgdmFyIG9iamVjdCA9IG5ldyBIZWxsbygpOworICAgIGlmICghKG9iamVjdC5nZW5l
cmF0ZSgpIGluc3RhbmNlb2YgSGVsbG8pKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBp
bnN0YW5jZSIpOworfQorbm9JbmxpbmUob2spOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpCisgICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzBjZGNiNjc2ZDk0ZTQ2YjZjMTAxYThhNzdkMDBiNjY0NGE4YzEwYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1leGl0LmpzCkBAIC0wLDAgKzEsMzggQEAKK3ZhciBzeW1ib2wxID0gU3ltYm9s
KCk7Cit2YXIgc3ltYm9sMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoeyBbc3ltYm9s
MV06IDQyIH0pWzBdOworCitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1l
KQoreworICAgIHJldHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRCeVZhbCk7CisK
K2Z1bmN0aW9uIGdldFN5bTEoKQoreworICAgIHJldHVybiBzeW1ib2wxOworfQorbm9JbmxpbmUo
Z2V0U3ltMSk7CisKK2Z1bmN0aW9uIGdldFN5bTIoKQoreworICAgIHJldHVybiBzeW1ib2wyOwor
fQorbm9JbmxpbmUoZ2V0U3ltMik7CisKK3ZhciBvYmplY3QgPSB7CisgICAgW3N5bWJvbDFdOiA0
MiwKKyAgICBoZWxsbzogNTAKK307CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisg
ICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN5bTEoKSA6IGdl
dFN5bTIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ2hlbGxvJyksIDUwKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFs
KG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0xKCkgOiBnZXRTeW0yKCkpLCA0Mik7CitzaG91
bGRCZShnZXRCeVZhbChvYmplY3QsICdoZWxsbycpLCA1MCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVy
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWdldHRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDM1ZTRiMDM4YTQ2NWQ0M2ViYzI4ZTVjZjQ4
MTliNTllNjY2ODdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWdldHRlci5qcwpAQCAtMCwwICsxLDIz
IEBACisKK3ZhciBvYmplY3QgPSB7CisgICAgZ2V0IGhlbGxvKCkgeworICAgICAgICByZXR1cm4g
NDI7CisgICAgfQorfTsKKwordmFyIHN5bWJvbCA9IFN5bWJvbCgpOworCitPYmplY3QuZGVmaW5l
UHJvcGVydHkob2JqZWN0LCBzeW1ib2wsIHsKKyAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgcmV0dXJuIDQyOworICAgIH0KK30pOworCitmdW5jdGlvbiBvaygpIHsKKyAgICBpZiAob2Jq
ZWN0W3N5bWJvbF0gKyAyMCAhPT0gNjIpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigpOworfQor
bm9JbmxpbmUob2spOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgb2so
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzgzNGViMjZiZTMyNmUxYzkx
ODQ5MWYwZTE5YjdmYTM4YmIwOTAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzCkBAIC0wLDAgKzEs
MzMgQEAKK3ZhciBzeW1ib2wxID0gU3ltYm9sKCk7Cit2YXIgc3ltYm9sMiA9IE9iamVjdC5nZXRP
d25Qcm9wZXJ0eVN5bWJvbHMoeyBbc3ltYm9sMV06IDQyIH0pWzBdOworCitmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVu
Y3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQoreworICAgIHJldHVybiBvYmplY3RbbmFtZV07
Cit9Citub0lubGluZShnZXRCeVZhbCk7CisKK2Z1bmN0aW9uIGdldFN5bTEoKQoreworICAgIHJl
dHVybiBzeW1ib2wxOworfQorbm9JbmxpbmUoZ2V0U3ltMSk7CisKK2Z1bmN0aW9uIGdldFN5bTIo
KQoreworICAgIHJldHVybiBzeW1ib2wyOworfQorbm9JbmxpbmUoZ2V0U3ltMik7CisKK3ZhciBv
YmplY3QgPSB7CisgICAgW3N5bWJvbDFdOiA0MiwKKyAgICBoZWxsbzogNTAKK307CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3Qs
IGkgJSAyID09PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdiNmU3
YTRiYThhYmIyOTViNGQ1MTMxMDUyNDFjZWZjM2Q4MTBmZGYuLmE2NjFkMzdhNGQxNjcyZDIwZDRj
NjE4MjNiODA4ZDYwYzY0NWJlYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MyBAQAorMjAxNS0wOC0wNSAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBJbnRyb2R1
Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlfdmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUg
aXMgU3RyaW5nIG9yIFN5bWJvbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ3NDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHN5bnRoZXRpYyBiZW5jaG1hcmtzIHRoYXQgcmVwbGFjZXMgbm9ybWFs
IHByb3BlcnR5IGxvYWQgd2l0aCBzeW1ib2wvc3RyaW5nIGtleWVkIGxvYWQuCisKKyAgICAgICAg
KiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4t
ZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXBy
b3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3It
cHJvdG8uaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWlu
LWZyb20tdHJ5LWJsb2NrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9y
LXNlbGYuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2Vs
Zi1vci1wcm90by1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1i
bG9jay5qczogQWRkZWQuCisgICAgICAgIChBKToKKyAgICAgICAgKEIpOgorICAgICAgICAoQyk6
CisgICAgICAgIChEKToKKyAgICAgICAgKEUpOgorICAgICAgICAoRik6CisgICAgICAgIChHKToK
KyAgICAgICAgKGZvbyk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6IEFkZGVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
cHJvdG8tb3Itc2VsZi5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToK
KyAgICAgICAgKEZvbyk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanM6IEFkZGVkLgorICAgICAgICAoZm9v
KToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChGb28pOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qczogQWRk
ZWQuCisgICAgICAgIChBKToKKyAgICAgICAgKEIpOgorICAgICAgICAoQyk6CisgICAgICAgIChE
KToKKyAgICAgICAgKEUpOgorICAgICAgICAoRik6CisgICAgICAgIChHKToKKyAgICAgICAgKGZv
byk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2Vs
Zi5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKEZv
byk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLXNlbGYtb3ItcHJvdG8uanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KGJhcik6CisgICAgICAgIChGb28pOgorCiAyMDE1LTA4LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBzY3JpcHQgcGF0aHMgaW4gdGhlc2Ug
dGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWNjZjQzYWZhMDdkM2M4ZTBmMTc4OTJlZWRhNzkyN2UyMWI4MThiMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjM3YzUwMDAwYzBhMWQxZTJmMjYyODU3Zjc5YjRlYzQx
NDdlMGM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3du
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDgyYzQ1MGQ5NTVh
ZTk5NjRlZTI1YmZmMmI1ZmMwY2I2NmY0NTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lOWVmMTQxNTc1ODRjYTYxNjA2NDY4NzU5OGNmYmQ0ZGI3OTdmZWZiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApAQCAtMCwwICsxLDEyIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFp
bi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE2YTY2NzI5NzAzNmE0
NWM1ZjMyYjcwMWMwYmM3ZWZiMmZiZGExOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2sKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5
LWJsb2NrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTZjOTYzYTAxMmIwMmNmMzYxNDQ1ZjY3YzZlY2JkOGNk
MThiMGIyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCkBAIC0wLDAgKzEsMTIg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWMwZmM3MGVlN2Ey
NDU1NWZiMGZkOGFiYjZhM2U0NmE3ZmQ1MDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM2
ZjU4ZDQxNTdiNTFiYjk4NTM4MmRjODFhNmQ5NDhmYjlkYjAyNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24uaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmVmOTJjOTA3OWNjMmRiZGRhYmU0Y2I2NTNiMzIzZmZmZTUzOTc0NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90
by1vci1zZWxmLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NmFiNjExYmQ0NWRlMzA0MjZmNmJiNTRiZTY5NTM5MGI3MzBhMDg3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXByb3RvLW9yLXNlbGYuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXByb3RvLW9yLXNlbGYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjliMWFhNTdlY2FiNmExYTFhNzg0ZGI1ZTg4NDJmZTJiYWRiODVjMjgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM3NTFiNjRlODIyYWIyZGVjNDdhZDlhOWY0
NjY4ZTM3OWUxZjA3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNDIxNzEzNGY5ODI4OTA0Mzk1NjgyZjg4NzA2ZDJjNjdhZDg4YjQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pT
UmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3Rv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2Vs
Zi1vci1wcm90by5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNGE2Yjk5YzViNWUzMDZkODNiNmYyNTM0MjNh
MGZmODEzNThlMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1sCkBAIC0wLDAgKzEsMTIgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEw
MGM1ZDhiOGY4Y2UyODU2MWM3YjUxMGE3ODNkNjUxMjUzYmRlMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBA
CitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5v
IGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MzkwZWQ5NTJjZWVlMmEyMGVmZWM0ZGIxMDkzNTNiNzczYjI4
ZmJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDgyYzQ1MGQ5NTVhZTk5
NjRlZTI1YmZmMmI1ZmMwY2I2NmY0NTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
OWVmMTQxNTc1ODRjYTYxNjA2NDY4NzU5OGNmYmQ0ZGI3OTdmZWZiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1m
cm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzc1NGJiMGU4ZTU2OGM4ZDAy
MDZlNjQ5ZTUyOTc0YjNmOWU0MmE0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtY2hhaW4tZnJvbS10cnktYmxvY2sKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJs
b2NrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk3NWY5OTI4MGU3MjMzNWMyYjU0ZDNkOTNmMDg2MTE4MzE5
NzQ0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCkBAIC0wLDAgKzEsMTIgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzE0OTRhOWI0NTYyZjll
MTY5MDQ3ODk3YWI2MDYzNWRmMTE0ODViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDliZmFj
YTdhNWU0YjcyODhlY2VkMjZlODUzNjBkNTZlMDY3YzdhMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24uaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
cHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTE1ZDI2MmNlYTUyMDVjZjVmM2NiNjM3YTc4OGRhMzJiMGUzYTZjNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1v
ci1zZWxmLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NTgxNWNlMzNlOGFjNzc1MTA2ZGFiMmMyYTdiNDI2MTRmOTM4Y2Y1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXByb3RvLW9yLXNlbGYuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXBy
b3RvLW9yLXNlbGYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0
NjA1YzA3NjFjMjA4YmVmZDYyOWViZDIyYTRmZGY5ZmU4NDhjM2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVjZTQ2MjQ1ZTg4NmJlMjdmNTEwNjZhNTE3M2M0
OTUxZjJhMjBkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNzY2OTEwOGJhYzFjZTZkMWVhODUwODAzNDQ1MzgxY2RjNWRhZjZkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0
bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1v
ci1wcm90by5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmNWYzZDcwNDgxYWNjYWFmMDVhMDAwMDRhNWZlNTI5
NmEzMmViZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MjU4OWYxZWJiOGMxMmRlMWNhMDNmODEyMmZkNDIyNTQzMTAxNzQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5qcwpAQCAtMCwwICsxLDE0IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSAn
YScsIGwgPSAnbCc7CisgICAgdmFyIG8gPSB7W2FdOjF9OworICAgIHZhciBwID0ge1thXToyLCBb
bF06MTN9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwMDsgKytpKSB7CisgICAgICAgIHJlc3VsdCBePSBvW2FdOworICAgICAgICB2YXIgdG1wID0g
bzsKKyAgICAgICAgbyA9IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1
bHQgIT0gMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kYjU5NDAxZDdmNTcyODQ3MTRmZTdkM2Q1ZTA0NTIxMWJkNDdjMTUyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0w
LDAgKzEsMTQgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9ICdhJywgYiA9ICdiJywgYyA9
ICdjJywgZCA9ICdkJywgZSA9ICdlJywgZiA9ICdmJywgZyA9ICdnJywgaCA9ICdoJywgaSA9ICdp
JywgaiA9ICdqJywgayA9ICdrJywgbCA9ICdsJzsKKyAgICB2YXIgbyA9IHtbYV06MSwgW2JdOjIs
IFtjXTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06MTAs
IFtrXToxMX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtiXTozLCBbY106NCwgW2RdOjUsIFtlXTo2
LCBbZl06NywgW2ddOjgsIFtoXTo5LCBbaV06MTAsIFtqXToxMSwgW2tdOjEyLCBbbF06MTN9Owor
ICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAxMDAw
MDAwOyArK2luZGV4KSB7CisgICAgICAgIHJlc3VsdCArPSBvW2FdIF4gb1tiXSBeIG9bY10gXiBv
W2RdIF4gb1tlXSBeIG9bZl0gXiBvW2ddIF4gb1toXSBeIG9baV0gXiBvW2pdIF4gb1trXTsKKyAg
ICAgICAgdmFyIHRtcCA9IG87CisgICAgICAgIG8gPSBwOworICAgICAgICBwID0gdG1wOworICAg
IH0KKyAgICBpZiAocmVzdWx0ICE9IDY1MDAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5
LWJsb2NrLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjk3MGZl
ZTI0YjBlZjY1NTI5MmNhZWRhNDFjNmJlYjAwZTBkNDI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1j
aGFpbi1mcm9tLXRyeS1ibG9jay5qcwpAQCAtMCwwICsxLDQ5IEBACit2YXIgZiA9ICdmJzsKKwor
ZnVuY3Rpb24gQSgpIHsgfQorCitBLnByb3RvdHlwZSA9IHtbZl06NDJ9OworCitmdW5jdGlvbiBC
KCkgeyB9CisKK0IucHJvdG90eXBlID0gbmV3IEEoKTsKKworZnVuY3Rpb24gQygpIHsgfQorCitD
LnByb3RvdHlwZSA9IG5ldyBCKCk7CisKK2Z1bmN0aW9uIEQoKSB7IH0KKworRC5wcm90b3R5cGUg
PSBuZXcgQygpOworCitmdW5jdGlvbiBFKCkgeyB9CisKK0UucHJvdG90eXBlID0gbmV3IEQoKTsK
KworZnVuY3Rpb24gRigpIHsgfQorCitGLnByb3RvdHlwZSA9IG5ldyBFKCk7CisKK2Z1bmN0aW9u
IEcoKSB7IH0KKworRy5wcm90b3R5cGUgPSBuZXcgRigpOworCitmdW5jdGlvbiBmb28obykgewor
ICAgIHRyeSB7CisgICAgICAgIHZhciByZXN1bHQgPSAwOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdCArPSBvW2ZdOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIDUyOworICAg
IH0KK30KKwordmFyIHJlc3VsdCA9IDA7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytp
KQorICAgIHJlc3VsdCArPSBmb28obmV3IEcoKSk7CisKK2lmIChyZXN1bHQgIT0gNDIwMDAwMDAp
CisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiODhhYTViYmExMmVmMDM5OWY4MWY5MDRjZmRiZTQ4
ZDM4ZDljMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5qcwpAQCAtMCwwICsxLDkgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9ICdhJywgYiA9
ICdiJywgYyA9ICdjJywgZCA9ICdkJywgZSA9ICdlJywgZiA9ICdmJywgZyA9ICdnJywgaCA9ICdo
JywgaSA9ICdpJywgaiA9ICdqJywgayA9ICdrJzsKKyAgICB2YXIgbyA9IHtbYV06MSwgW2JdOjIs
IFtjXTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06MTAs
IFtrXToxMX07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaW5kZXggPSAwOyBp
bmRleCA8IDEwMDAwMDA7ICsraW5kZXgpCisgICAgICAgIHJlc3VsdCArPSBvW2FdIF4gb1tiXSB8
IG9bY10gXiBvW2RdICYgb1tlXSBeIG9bZl0gfCBvW2ddIF4gb1toXSAmIG9baV0gXiBvW2pdIHwg
b1trXTsKKyAgICBpZiAocmVzdWx0ICE9IDE1MDAwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1z
ZWxmLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNzQ5M2I5OGY2MTBkMWM0
YWQ5YjgzZWVjZjYxYTY3ZjllY2FhYjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNl
bGYuanMKQEAgLTAsMCArMSwyNCBAQAordmFyIGYgPSAnZic7CisKK2Z1bmN0aW9uIGZvbyhvKSB7
CisgICAgcmV0dXJuIG9bZl07Cit9CisKK2Z1bmN0aW9uIGJhcihhKSB7CisgICAgdmFyIHJlc3Vs
dCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsKKyAgICAgICAg
Zm9yICh2YXIgaiA9IDA7IGogPCBhLmxlbmd0aDsgKytqKQorICAgICAgICAgICAgcmVzdWx0ICs9
IGZvbyhhW2pdKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZnVuY3Rpb24gRm9v
KCkgeworfQorCitGb28ucHJvdG90eXBlW2ZdID0gNDI7CisKK3ZhciByZXN1bHQgPSBiYXIoW25l
dyBGb28oKSwge1tmXToyNH1dKTsKKworaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDApCisgICAgdGhy
b3cgIkVycm9yIGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTkxZGNl
M2MyNTdkOGQ5ZDgwNGU1NDBhODA4ZjY4NGI0OTdmMzI5MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
cXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpAQCAtMCww
ICsxLDIyIEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSAnYSc7CisgICAgdmFyIGwgPSAn
bCc7CisgICAgdmFyIGIgPSAnYic7CisgICAgdmFyIGMgPSAnYyc7CisKKyAgICB2YXIgbyA9IHtb
YV06MX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307CisgICAgdmFyIHEgPSB7W2FdOjMs
IFtiXTozfTsKKyAgICB2YXIgciA9IHtbYV06NCwgW2NdOjV9OworICAgIHZhciByZXN1bHQgPSAw
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKSB7CisgICAgICAgIHJlc3Vs
dCBePSBvW2FdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAgICAgICAgbyA9IHA7CisgICAgICAg
IHAgPSBxOworICAgICAgICBxID0gcjsKKyAgICAgICAgciA9IHRtcDsKKyAgICB9CisgICAgaWYg
KHJlc3VsdCAhPSAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpzIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXBy
b3RvLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjliZWMxMDdjYTdmYTM4MGYxYmM5NmVmN2U5YWUzYWZjZDUxMTcy
YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanMKQEAgLTAsMCArMSwyNCBA
QAordmFyIGYgPSAnZic7CisKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIG9bZl07Cit9
CisKK2Z1bmN0aW9uIGJhcihhKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsKKyAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBh
Lmxlbmd0aDsgKytqKQorICAgICAgICAgICAgcmVzdWx0ICs9IGZvbyhhW2pdKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworZnVuY3Rpb24gRm9vKCkgeworfQorCitGb28ucHJvdG90
eXBlW2ZdID0gNDI7CisKK3ZhciByZXN1bHQgPSBiYXIoW3tbZl06MjR9LCBuZXcgRm9vKCldKTsK
KworaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDApCisgICAgdGhyb3cgIkVycm9yIGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODVkMzJhZjUwMzJjZDA0NTg1Nzg0OTVjMzc3OTky
NTk4NWYzMDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpAQCAtMCwwICsxLDE0IEBACisoZnVuY3Rpb24oKSB7Cisg
ICAgdmFyIGEgPSBTeW1ib2woKSwgbCA9IFN5bWJvbCgpOworICAgIHZhciBvID0ge1thXToxfTsK
KyAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgeworICAgICAgICByZXN1bHQgXj0gb1th
XTsKKyAgICAgICAgdmFyIHRtcCA9IG87CisgICAgICAgIG8gPSBwOworICAgICAgICBwID0gdG1w
OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJiZTk3MWI2MTYzNTk0Y2UyMDQzZTI3OTU1MDA3
ZTgzMGIwNWI4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi5qcwpAQCAtMCwwICsxLDE0IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFy
IGEgPSBTeW1ib2woKSwgYiA9IFN5bWJvbCgpLCBjID0gU3ltYm9sKCksIGQgPSBTeW1ib2woKSwg
ZSA9IFN5bWJvbCgpLCBmID0gU3ltYm9sKCksIGcgPSBTeW1ib2woKSwgaCA9IFN5bWJvbCgpLCBp
ID0gU3ltYm9sKCksIGogPSBTeW1ib2woKSwgayA9IFN5bWJvbCgpLCBsID0gU3ltYm9sKCk7Cisg
ICAgdmFyIG8gPSB7W2FdOjEsIFtiXToyLCBbY106MywgW2RdOjQsIFtlXTo1LCBbZl06NiwgW2dd
OjcsIFtoXTo4LCBbaV06OSwgW2pdOjEwLCBba106MTF9OworICAgIHZhciBwID0ge1thXToyLCBb
Yl06MywgW2NdOjQsIFtkXTo1LCBbZV06NiwgW2ZdOjcsIFtnXTo4LCBbaF06OSwgW2ldOjEwLCBb
al06MTEsIFtrXToxMiwgW2xdOiAxM307CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2
YXIgaW5kZXggPSAwOyBpbmRleCA8IDEwMDAwMDA7ICsraW5kZXgpIHsKKyAgICAgICAgcmVzdWx0
ICs9IG9bYV0gXiBvW2JdIF4gb1tjXSBeIG9bZF0gXiBvW2VdIF4gb1tmXSBeIG9bZ10gXiBvW2hd
IF4gb1tpXSBeIG9bal0gXiBvW2tdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAgICAgICAgbyA9
IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gNjUwMDAwMCkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJs
b2NrLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNmOGFjNzhhODYwNDMwZGI2N2FjYzRlZTM3NzBkMzI3MzM4MDJl
MWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzCkBAIC0wLDAg
KzEsNDkgQEAKK3ZhciBmID0gU3ltYm9sKCJDb2NvYSIpOworCitmdW5jdGlvbiBBKCkgeyB9CisK
K0EucHJvdG90eXBlID0ge1tmXTo0Mn07CisKK2Z1bmN0aW9uIEIoKSB7IH0KKworQi5wcm90b3R5
cGUgPSBuZXcgQSgpOworCitmdW5jdGlvbiBDKCkgeyB9CisKK0MucHJvdG90eXBlID0gbmV3IEIo
KTsKKworZnVuY3Rpb24gRCgpIHsgfQorCitELnByb3RvdHlwZSA9IG5ldyBDKCk7CisKK2Z1bmN0
aW9uIEUoKSB7IH0KKworRS5wcm90b3R5cGUgPSBuZXcgRCgpOworCitmdW5jdGlvbiBGKCkgeyB9
CisKK0YucHJvdG90eXBlID0gbmV3IEUoKTsKKworZnVuY3Rpb24gRygpIHsgfQorCitHLnByb3Rv
dHlwZSA9IG5ldyBGKCk7CisKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdHJ5IHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKQor
ICAgICAgICAgICAgcmVzdWx0ICs9IG9bZl07CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4gNTI7CisgICAgfQorfQorCit2YXIgcmVzdWx0
ID0gMDsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgcmVzdWx0ICs9IGZv
byhuZXcgRygpKTsKKworaWYgKHJlc3VsdCAhPSA0MjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWQ1OWZkOGUwYmI5OTE0ZWVkNmJmNGVlZDE1NTAwYzQ4ZjJjNDQyYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0wLDAgKzEsOSBA
QAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gU3ltYm9sKCksIGIgPSBTeW1ib2woKSwgYyA9
IFN5bWJvbCgpLCBkID0gU3ltYm9sKCksIGUgPSBTeW1ib2woKSwgZiA9IFN5bWJvbCgpLCBnID0g
U3ltYm9sKCksIGggPSBTeW1ib2woKSwgaSA9IFN5bWJvbCgpLCBqID0gU3ltYm9sKCksIGsgPSBT
eW1ib2woKTsKKyAgICB2YXIgbyA9IHtbYV06MSwgW2JdOjIsIFtjXTozLCBbZF06NCwgW2VdOjUs
IFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06MTAsIFtrXToxMX07CisgICAgdmFyIHJl
c3VsdCA9IDA7CisgICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IDEwMDAwMDA7ICsraW5k
ZXgpCisgICAgICAgIHJlc3VsdCArPSBvW2FdIF4gb1tiXSB8IG9bY10gXiBvW2RdICYgb1tlXSBe
IG9bZl0gfCBvW2ddIF4gb1toXSAmIG9baV0gXiBvW2pdIHwgb1trXTsKKyAgICBpZiAocmVzdWx0
ICE9IDE1MDAwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmpzIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1z
ZWxmLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUyZjgyYWIyNjhhNzMyOTM3MDg1NzZiYzc4MDZlY2E2N2I2YWVi
OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanMKQEAgLTAsMCArMSwyNCBA
QAordmFyIGYgPSBTeW1ib2woIkNvY29hIik7CisKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0
dXJuIG9bZl07Cit9CisKK2Z1bmN0aW9uIGJhcihhKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsKKyAgICAgICAgZm9yICh2YXIg
aiA9IDA7IGogPCBhLmxlbmd0aDsgKytqKQorICAgICAgICAgICAgcmVzdWx0ICs9IGZvbyhhW2pd
KTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZnVuY3Rpb24gRm9vKCkgeworfQor
CitGb28ucHJvdG90eXBlW2ZdID0gNDI7CisKK3ZhciByZXN1bHQgPSBiYXIoW25ldyBGb28oKSwg
e1tmXToyNH1dKTsKKworaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDApCisgICAgdGhyb3cgIkVycm9y
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU4MzYyYWRlYTcwYWI4
MjA0ZGU1ZDU1YjllNGM1NjhjMTEwZDA3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpAQCAtMCwwICsxLDIyIEBA
CisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSBTeW1ib2woIkNvY29hIik7CisgICAgdmFyIGwg
PSBTeW1ib2woKTsKKyAgICB2YXIgYiA9IFN5bWJvbCgpOworICAgIHZhciBjID0gU3ltYm9sKCk7
CisKKyAgICB2YXIgbyA9IHtbYV06MX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307Cisg
ICAgdmFyIHEgPSB7W2FdOjMsIFtiXTozfTsKKyAgICB2YXIgciA9IHtbYV06NCwgW2NdOjV9Owor
ICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytp
KSB7CisgICAgICAgIHJlc3VsdCBePSBvW2FdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAgICAg
ICAgbyA9IHA7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gcjsKKyAgICAgICAgciA9IHRt
cDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3Rv
LmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwMDhjMzY0MTIwYmYyYWE0OGFk
NzRhYTNiNWE2ZmM3Yjk2N2JmYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8u
anMKQEAgLTAsMCArMSwyNCBAQAordmFyIGYgPSBTeW1ib2woJ0NvY29hJyk7CisKK2Z1bmN0aW9u
IGZvbyhvKSB7CisgICAgcmV0dXJuIG9bZl07Cit9CisKK2Z1bmN0aW9uIGJhcihhKSB7CisgICAg
dmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsK
KyAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhLmxlbmd0aDsgKytqKQorICAgICAgICAgICAg
cmVzdWx0ICs9IGZvbyhhW2pdKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZnVu
Y3Rpb24gRm9vKCkgeworfQorCitGb28ucHJvdG90eXBlW2ZdID0gNDI7CisKK3ZhciByZXN1bHQg
PSBiYXIoW3tbZl06MjR9LCBuZXcgRm9vKCldKTsKKworaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDAp
CisgICAgdGhyb3cgIkVycm9yIGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258298</attachid>
            <date>2015-08-05 13:59:35 -0700</date>
            <delta_ts>2015-08-09 18:41:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150805135928.patch</filename>
            <type>text/plain</type>
            <size>151062</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MzllNTViYTc1MTg0NTIwNDA5MjVmODQ5N2Y2MDI4MzFhYzhiOGExLi44Zjg1M2ExNjNjOGQ4YmU3
MjZjN2I2NDdlNTI3MzgxYzc1YTc3ZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjIgQEAKKzIwMTUtMDgtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGdldF9ieV9pZCBsaWtlIElDIGludG8gZ2V0X2J5
X3ZhbCB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIFN0cmluZyBvciBTeW1ib2wKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBnZXRf
YnlfaWQgSUMgdG8gZ2V0X2J5X3ZhbCBvcGVyYXRpb24gYnkgY2FjaGluZyB0aGUgc3RyaW5nIC8g
c3ltYm9sIGlkLgorICAgICAgICBUaGUgSUMgc2l0ZSBvbmx5IGNhY2hlcyBvbmUgaWQuIEFmdGVy
IGNoZWNraW5nIHRoYXQgdGhlIGdpdmVuIGlkIGlzIHRoZSBzYW1lIHRvIHRoZQorICAgICAgICBj
YWNoZWQgb25lLCB3ZSBwZXJmb3JtIHRoZSBnZXRfYnlfaWQgSUMgb250byBpdC4KKyAgICAgICAg
QW5kIGJ5IGNvbGxlY3RpbmcgSUMgU3RydWN0dXJlU3R1YkluZm8gaW5mb3JtYXRpb24sIHdlIHBh
c3MgaXQgdG8gdGhlIERGRyBhbmQgREZHCisgICAgICAgIGNvbXBpbGVzIGdldF9ieV92YWwgb3Ag
Y29kZSBpbnRvIENoZWNrSWRlbnQgKHdpdGggZWRnZSB0eXBlIGNoZWNrKSBhbmQgR2V0QnlJZCBy
ZWxhdGVkCisgICAgICAgIG9wZXJhdGlvbnMgd2hlbiB0aGUgZ2l2ZW4gZ2V0X2J5X3ZhbCBsZXZl
cmFnZXMgdGhlIHByb3BlcnR5IGxvYWQgd2l0aCB0aGUgY2FjaGVkIGlkLgorCisgICAgICAgIFRv
IGVuc3VyZSB0aGUgaW5jb21pbmcgdmFsdWUgaXMgdGhlIGV4cGVjdGVkIGlkLCBpbiBERkcgbGF5
ZXIsIHdlIHVzZSBTeW1ib2xVc2UgYW5kCisgICAgICAgIFN0cmluZ0lkZW50VXNlIHRvIGVuZm9y
Y2UgdGhlIHR5cGUuIFRvIHVzZSBpdCwgdGhpcyBwYXRjaCBpbXBsZW1lbnRzIFN5bWJvbFVzZS4K
KyAgICAgICAgVGhpcyBjYW4gYmUgbGV2ZXJhZ2VkIHRvIG9wdGltaXplIHN5bWJvbCBvcGVyYXRp
b25zIGluIERGRy4KKworICAgICAgICBBbmQgc2luY2UgYnlWYWxJbmZvIGlzIGZyZXF1ZW50bHkg
dXNlZCwgd2UgYWxpZ24gdGhlIGJ5VmFsSW5mbyBkZXNpZ24gdG8gdGhlIHN0dWJJbmZvIGxpa2Ug
b25lLgorICAgICAgICBBbGxvY2F0ZWQgYnkgdGhlIEJhZyBhbmQgb3BlcmF0aW9ucyB0YWtlIHRo
ZSByYXcgYnlWYWxJbmZvIHBvaW50ZXIgZGlyZWN0bHkgaW5zdGVhZCBvZiBwZXJmb3JtaW5nCisg
ICAgICAgIGJpbmFyeSBzZWFyY2ggb250byBtX2J5VmFsSW5mb3MuIEFuZCBieSBzdG9yaW5nIEFy
cmF5UHJvZmlsZSogdW5kZXIgdGhlIEJ5VmFsSW5mbywgd2UgcmVwbGFjZWQgdGhlCisgICAgICAg
IGFyZ3VtZW50IEFycmF5UHJvZmlsZSogaW4gdGhlIG9wZXJhdGlvbnMgd2l0aCBCeVZhbEluZm8q
LgorCisgICAgICAgICogYnl0ZWNvZGUvQnlWYWxJbmZvLmg6CisgICAgICAgIChKU0M6OkJ5VmFs
SW5mbzo6QnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01hcCk6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6YWRkQnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm8pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OnNldE51bWJlck9mQnlWYWxJbmZvcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZCeVZhbEluZm9zKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpieVZhbEluZm8pOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVj
b2RlL0V4aXRLaW5kLmNwcDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAg
ICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAg
ICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgIChK
U0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRi
YWNrKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZH
RG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9E
RkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5v
ZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2Rl
KToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhh
c1VpZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAg
ICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAg
ICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrSWRlbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVT
eW1ib2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZH
VXNlS2luZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRm
Zy9ERkdVc2VLaW5kLmg6CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAg
ICAgIChKU0M6OkRGRzo6aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja0lk
ZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb3dTeW1ib2wp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RTeW1ib2wpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN5bWJvbCk6Cisg
ICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUp
OgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKEpTQzo6QnlWYWxDb21waWxhdGlvbklu
Zm86OkJ5VmFsQ29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0
QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAg
ICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9o
YXNfaW5kZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgor
ICAgICAgICAoSlNDOjpnZXRCeVZhbCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoK
KyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0
aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlW
YWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlf
dmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKToKKyAgICAg
ICAgKiBydW50aW1lL1N5bWJvbC5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKEhlbGxvKToKKyAg
ICAgICAgKGdldCBIZWxsby5wcm90b3R5cGUuZ2VuZXJhdGUpOgorICAgICAgICAob2spOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0
U3RyMSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3RyMSk6CisgICAgICAgIChnZXRT
dHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0
ZXIuanM6IEFkZGVkLgorICAgICAgICAob2JqZWN0LmdldCBoZWxsbyk6CisgICAgICAgIChvayk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0
U3RyMSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisgICAgICAgIChIZWxsbyk6
CisgICAgICAgIChnZXQgSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlKToKKyAgICAgICAgKG9rKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAg
KGdldFN5bTEpOgorICAgICAgICAoZ2V0U3ltMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKG9iamVjdC5n
ZXQgaGVsbG8pOgorICAgICAgICAoLmdldCBvayk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3ltMSk6CisgICAgICAgIChnZXRTeW0yKToK
KwogMjAxNS0wOC0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV2luXSBVcGRhdGUgQXBwbGUgV2luZG93cyBidWlsZCBmb3IgVlMyMDE1CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKaW5kZXggZDk4ODUxNjEzMjU4YTcx
YjlmMDRiYTQ5MDczZjQ0MDMzZTU3MTA4My4uNjc1NDFmZDkzNDZhZjIyZjcyMWIxOWI3NWZkZTk2
ZmNmZjEwZmRmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
VmFsSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8u
aApAQCAtMjYsMTYgKzI2LDE4IEBACiAjaWZuZGVmIEJ5VmFsSW5mb19oCiAjZGVmaW5lIEJ5VmFs
SW5mb19oCiAKLSNpZiBFTkFCTEUoSklUKQotCiAjaW5jbHVkZSAiQ2xhc3NJbmZvLmgiCiAjaW5j
bHVkZSAiQ29kZUxvY2F0aW9uLmgiCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUg
IkluZGV4aW5nVHlwZS5oIgogI2luY2x1ZGUgIkpJVFN0dWJSb3V0aW5lLmgiCiAjaW5jbHVkZSAi
U3RydWN0dXJlLmgiCisjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKKyNpZiBFTkFCTEUoSklUKQorCiBlbnVtIEpJVEFycmF5TW9kZSB7CiAgICAgSklU
SW50MzIsCiAgICAgSklURG91YmxlLApAQCAtMjAxLDI0ICsyMDMsMzMgQEAgaW5saW5lIEpJVEFy
cmF5TW9kZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAK
IHN0cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFsSW5mbygpIHsgfQotICAgIAotICAgIEJ5VmFs
SW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1w
LCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQx
Nl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorCisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5
dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25K
dW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBBcnJheVByb2ZpbGUqIGFy
cmF5UHJvZmlsZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZSwgaW50MTZfdCByZXR1cm5BZGRy
ZXNzVG9TbG93UGF0aCkKICAgICAgICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisg
ICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4SnVtcCkKICAgICAgICAgLCBiYWRUeXBlSnVt
cChiYWRUeXBlSnVtcCkKICAgICAgICAgLCBhcnJheU1vZGUoYXJyYXlNb2RlKQorICAgICAgICAs
IGFycmF5UHJvZmlsZShhcnJheVByb2ZpbGUpCiAgICAgICAgICwgYmFkVHlwZUp1bXBUb0RvbmUo
YmFkVHlwZUp1bXBUb0RvbmUpCiAgICAgICAgICwgcmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgocmV0
dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgICwgc2xvd1BhdGhDb3VudCgwKQorICAgICAg
ICAsIHN0dWJJbmZvKG51bGxwdHIpCisgICAgICAgICwgdG9va1Nsb3dQYXRoKGZhbHNlKQogICAg
IHsKICAgICB9Ci0gICAgCisKICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgIENvZGVM
b2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wOwogICAgIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1
bXA7CiAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsgLy8gVGhlIGFycmF5IG1vZGUgdGhhdCB3
YXMgYmFrZWQgaW50byB0aGUgaW5saW5lIEpJVCBjb2RlLgorICAgIEFycmF5UHJvZmlsZSogYXJy
YXlQcm9maWxlOwogICAgIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmU7CiAgICAgaW50MTZfdCBy
ZXR1cm5BZGRyZXNzVG9TbG93UGF0aDsKICAgICB1bnNpZ25lZCBzbG93UGF0aENvdW50OwogICAg
IFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmU7CisgICAgSWRlbnRpZmllciBjYWNo
ZWRJZDsKKyAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm87CisgICAgYm9vbCB0b29rU2xv
d1BhdGg7CiB9OwogCiBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChC
eVZhbEluZm8qIGluZm8pCkBAIC0yMjYsOSArMjM3LDE1IEBAIGlubGluZSB1bnNpZ25lZCBnZXRC
eVZhbEluZm9CeXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5mbykKICAgICByZXR1cm4gaW5mby0+
Ynl0ZWNvZGVJbmRleDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8
Q29kZU9yaWdpbiwgQnlWYWxJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJ
bmZvTWFwOworCisjZWxzZSAvLyBFTkFCTEUoSklUKQorCit0eXBlZGVmIEhhc2hNYXA8aW50LCB2
b2lkKj4gQnlWYWxJbmZvTWFwOwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorfSAvLyBuYW1l
c3BhY2UgSlNDCisKICNlbmRpZiAvLyBCeVZhbEluZm9faAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDlmOTQ4Njg5NzBiZjA1ODAzNjU4YzNj
ZTg1ZmE4YWFjOWM2OTQ1MTcuLjhjZDdkYmVlMTI2NjM1MWY2ZDM5NjE4MWQ2NDE3MzRmNGNjODFm
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBA
IC0yNjgzLDYgKzI2ODMsMjIgQEAgdm9pZCBDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb01hcChD
YWxsTGlua0luZm9NYXAmIHJlc3VsdCkKICAgICBnZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCBy
ZXN1bHQpOwogfQogCit2b2lkIENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1
cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSklU
KQorICAgIGZvciAoYXV0byogYnlWYWxJbmZvIDogbV9ieVZhbEluZm9zKQorICAgICAgICByZXN1
bHQuYWRkKENvZGVPcmlnaW4oYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4KSwgYnlWYWxJbmZvKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2Rl
QmxvY2s6OmdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyAgICBDb25j
dXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIGdldEJ5VmFsSW5mb01hcChsb2Nr
ZXIsIHJlc3VsdCk7Cit9CisKICNpZiBFTkFCTEUoSklUKQogU3RydWN0dXJlU3R1YkluZm8qIENv
ZGVCbG9jazo6YWRkU3R1YkluZm8oKQogewpAQCAtMjY5OSw2ICsyNzE1LDEyIEBAIFN0cnVjdHVy
ZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmZpbmRTdHViSW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4p
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0J5VmFsSW5mbyogQ29kZUJsb2NrOjphZGRCeVZh
bEluZm8oKQoreworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAg
cmV0dXJuIG1fYnlWYWxJbmZvcy5hZGQoKTsKK30KKwogQ2FsbExpbmtJbmZvKiBDb2RlQmxvY2s6
OmFkZENhbGxMaW5rSW5mbygpCiB7CiAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9s
b2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA2
YzNhMTE1Zjc3NWVlYzNhYmQyMjAyZmVmYTUyNmRmODBhM2ZjOTM4Li45NjA3OTFkNzBmYjVhMTdk
MmEwMDI0Yjk2ZjRhNTdjNDA4MTNmNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCkBAIC0yMDAsNiArMjAwLDkgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFs
RmkKICAgICAKICAgICB2b2lkIGdldENhbGxMaW5rSW5mb01hcChjb25zdCBDb25jdXJyZW50SklU
TG9ja2VyJiwgQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOwogICAgIHZvaWQgZ2V0Q2FsbExpbmtJ
bmZvTWFwKENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KTsKKworICAgIHZvaWQgZ2V0QnlWYWxJbmZv
TWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCk7Cisg
ICAgdm9pZCBnZXRCeVZhbEluZm9NYXAoQnlWYWxJbmZvTWFwJiByZXN1bHQpOwogICAgIAogI2lm
IEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKCk7CkBAIC0y
MTEsMTEgKzIxNCw4IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25kaXRpb25hbEZpCiAgICAgU3RydWN0dXJlU3R1
YkluZm8qIGZpbmRTdHViSW5mbyhDb2RlT3JpZ2luKTsKIAogICAgIHZvaWQgcmVzZXRTdHViKFN0
cnVjdHVyZVN0dWJJbmZvJik7Ci0gICAgCi0gICAgQnlWYWxJbmZvJiBnZXRCeVZhbEluZm8odW5z
aWduZWQgYnl0ZWNvZGVJbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAqKGJpbmFyeVNlYXJj
aDxCeVZhbEluZm8sIHVuc2lnbmVkPihtX2J5VmFsSW5mb3MsIG1fYnlWYWxJbmZvcy5zaXplKCks
IGJ5dGVjb2RlSW5kZXgsIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgpKTsKLSAgICB9CisKKyAg
ICBCeVZhbEluZm8qIGFkZEJ5VmFsSW5mbygpOwogCiAgICAgQ2FsbExpbmtJbmZvKiBhZGRDYWxs
TGlua0luZm8oKTsKICAgICBCYWc8Q2FsbExpbmtJbmZvPjo6aXRlcmF0b3IgY2FsbExpbmtJbmZv
c0JlZ2luKCkgeyByZXR1cm4gbV9jYWxsTGlua0luZm9zLmJlZ2luKCk7IH0KQEAgLTM2NywxMiAr
MzY3LDYgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENv
ZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFsRmkKIAogICAgIFN0cmluZyBuYW1lRm9yUmVn
aXN0ZXIoVmlydHVhbFJlZ2lzdGVyKTsKIAotI2lmIEVOQUJMRShKSVQpCi0gICAgdm9pZCBzZXRO
dW1iZXJPZkJ5VmFsSW5mb3Moc2l6ZV90IHNpemUpIHsgbV9ieVZhbEluZm9zLnJlc2l6ZVRvRml0
KHNpemUpOyB9Ci0gICAgc2l6ZV90IG51bWJlck9mQnlWYWxJbmZvcygpIGNvbnN0IHsgcmV0dXJu
IG1fYnlWYWxJbmZvcy5zaXplKCk7IH0KLSAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyhzaXplX3Qg
aW5kZXgpIHsgcmV0dXJuIG1fYnlWYWxJbmZvc1tpbmRleF07IH0KLSNlbmRpZgotCiAgICAgdW5z
aWduZWQgbnVtYmVyT2ZBcmd1bWVudFZhbHVlUHJvZmlsZXMoKQogICAgIHsKICAgICAgICAgQVNT
RVJUKG1fbnVtUGFyYW1ldGVycyA+PSAwKTsKQEAgLTEwMTYsNyArMTAxMCw3IEBAIGNsYXNzIENv
ZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMg
VW5jb25kaXRpb25hbEZpCiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29kZTsKICNpZiBFTkFC
TEUoSklUKQogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7Ci0gICAgVmVj
dG9yPEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOworICAgIEJhZzxCeVZhbEluZm8+IG1fYnlWYWxJ
bmZvczsKICAgICBCYWc8Q2FsbExpbmtJbmZvPiBtX2NhbGxMaW5rSW5mb3M7CiAgICAgU2VudGlu
ZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJ
bmZvPj4gbV9pbmNvbWluZ0NhbGxzOwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxQb2x5bW9ycGhp
Y0NhbGxOb2RlLCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxQb2x5bW9ycGhpY0NhbGxOb2RlPj4gbV9p
bmNvbWluZ1BvbHltb3JwaGljQ2FsbHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0V4aXRLaW5kLmNwcAppbmRleCA0Zjc5ZjJjMWM1ZTRlN2ZkYmUwNDNhMDQ5NTI1MTAwYWQ1MGZm
NDdiLi4yNTI0MzAwZjczMzc2OWVkOWJlMDAxZDc2NjBmMzY4NTliNmQ4OTA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKQEAgLTQwLDYgKzQwLDggQEAg
Y29uc3QgY2hhciogZXhpdEtpbmRUb1N0cmluZyhFeGl0S2luZCBraW5kKQogICAgICAgICByZXR1
cm4gIkJhZFR5cGUiOwogICAgIGNhc2UgQmFkQ2VsbDoKICAgICAgICAgcmV0dXJuICJCYWRDZWxs
IjsKKyAgICBjYXNlIEJhZElkZW50OgorICAgICAgICByZXR1cm4gIkJhZElkZW50IjsKICAgICBj
YXNlIEJhZEV4ZWN1dGFibGU6CiAgICAgICAgIHJldHVybiAiQmFkRXhlY3V0YWJsZSI7CiAgICAg
Y2FzZSBCYWRDYWNoZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9FeGl0S2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgK
aW5kZXggNTljYmJmNWEyYjM4Nzc5N2UzZWUyYmE4MWYzNmUxYzYxYzAzYjkyMy4uNmY4YzUxMjAw
NzAwNTA1YmY5MWRlZjc0OTAwM2UzMDA1ZTNmNzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V4aXRLaW5kLmgKQEAgLTMyLDYgKzMyLDcgQEAgZW51bSBFeGl0S2luZCA6IHVp
bnQ4X3QgewogICAgIEV4aXRLaW5kVW5zZXQsCiAgICAgQmFkVHlwZSwgLy8gV2UgZXhpdGVkIGJl
Y2F1c2UgYSB0eXBlIHByZWRpY3Rpb24gd2FzIHdyb25nLgogICAgIEJhZENlbGwsIC8vIFdlIGV4
aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBj
ZWxsIHdlIHdvdWxkIHNlZS4gVXN1YWxseSB1c2VkIGZvciBmdW5jdGlvbiBjaGVja3MuCisgICAg
QmFkSWRlbnQsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3Vt
cHRpb24gYWJvdXQgd2hhdCBpZGVudGlmaWVyIHdlIHdvdWxkIHNlZS4gVXN1YWxseSB1c2VkIGZv
ciBjYWNoZWQgSWQgY2hlY2sgaW4gZ2V0X2J5X3ZhbC4KICAgICBCYWRFeGVjdXRhYmxlLCAvLyBX
ZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVjdCBhc3N1bXB0aW9uIGFib3V0IHdo
YXQgZXhlY3V0YWJsZSB3ZSB3b3VsZCBzZWUuCiAgICAgQmFkQ2FjaGUsIC8vIFdlIGV4aXRlZCBi
ZWNhdXNlIGFuIGlubGluZSBjYWNoZSB3YXMgd3JvbmcuCiAgICAgQmFkQ29uc3RhbnRDYWNoZSwg
Ly8gV2UgZXhpdGVkIGJlY2F1c2UgYSBjYWNoZSBvbiBhIHdlYWsgY29uc3RhbnQgKHVzdWFsbHkg
YSBwcm90b3R5cGUpIHdhcyB3cm9uZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCAxZDk3YzlmZmRiYTZkOTRlMzVjYjY3Y2VkM2Ri
ZWVhNTBiYzcxOWVlLi44OWU1MDM1ZjMwYTNmMGI3OWJiMjA4MzJhMTJkOWQ2ODQ4ODhjZjA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3Bw
CkBAIC05OCw3ICs5OCw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
cihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBtCiAgICAgR2V0QnlJZFN0
YXR1cyByZXN1bHQ7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICByZXN1bHQgPSBjb21wdXRl
Rm9yU3R1YkluZm8oCisgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRT
aXRlRmVlZGJhY2soCiAgICAgICAgIGxvY2tlciwgcHJvZmlsZWRCbG9jaywgbWFwLmdldChDb2Rl
T3JpZ2luKGJ5dGVjb2RlSW5kZXgpKSwgdWlkLAogICAgICAgICBDYWxsTGlua1N0YXR1czo6Y29t
cHV0ZUV4aXRTaXRlRGF0YShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpKTsK
ICAgICAKQEAgLTExNiw3ICsxMTYsMjAgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yKENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KIH0KIAog
I2lmIEVOQUJMRShKSVQpCi1HZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JT
dHViSW5mbygKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZv
KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJs
b2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIENvZGVPcmlnaW4gY29kZU9yaWdpbiwg
VW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdCA9IEdl
dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAor
ICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIHN0dWJJbmZvLCB1aWQsCisgICAgICAgIENh
bGxMaW5rU3RhdHVzOjpjb21wdXRlRXhpdFNpdGVEYXRhKGxvY2tlciwgcHJvZmlsZWRCbG9jaywg
Y29kZU9yaWdpbi5ieXRlY29kZUluZGV4KSk7CisKKyAgICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQ
YXRoKCkgJiYgR2V0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2Nr
LCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpKQorICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1
cyhyZXN1bHQubWFrZXNDYWxscygpID8gR2V0QnlJZFN0YXR1czo6TWFrZXNDYWxscyA6IEdldEJ5
SWRTdGF0dXM6OlRha2VzU2xvd1BhdGgsIHRydWUpOworICAgIHJldHVybiByZXN1bHQ7Cit9Cisj
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworI2lmIEVOQUJMRShKSVQpCitHZXRCeUlkU3RhdHVzIEdl
dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAog
ICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxl
ZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQsCiAgICAgQ2FsbExpbmtTdGF0dXM6OkV4aXRTaXRlRGF0YSBjYWxsRXhpdFNpdGVEYXRhKQog
ewpAQCAtMjQyLDcgKzI1NSw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvcigKICAgICAgICAgR2V0QnlJZFN0YXR1cyByZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGRmZ0Jsb2NrLT5tX2xvY2spOwotICAgICAg
ICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKAorICAgICAgICAgICAgcmVzdWx0ID0g
Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgICAgICAg
ICAgbG9ja2VyLCBkZmdCbG9jaywgZGZnTWFwLmdldChjb2RlT3JpZ2luKSwgdWlkLCBleGl0U2l0
ZURhdGEpOwogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKaW5kZXggMzIzNzJjZGRmNWUyNWIwZjM4OGU2Y2ZlZGM0
NjYyMGIyZDM4ZDJkMC4uZDdmMGFlNDk2Y2JhMmYzMGZkY2QxMjg4NmIxNWZiM2I0ODI4Zjk1NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCkBA
IC03MSw3ICs3MSwxMSBAQCBjbGFzcyBHZXRCeUlkU3RhdHVzIHsKICAgICBzdGF0aWMgR2V0QnlJ
ZFN0YXR1cyBjb21wdXRlRm9yKGNvbnN0IFN0cnVjdHVyZVNldCYsIFVuaXF1ZWRTdHJpbmdJbXBs
KiB1aWQpOwogICAgIAogICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJs
b2NrKiBiYXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFz
ZWxpbmVNYXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJ
bXBsKiB1aWQpOwotICAgIAorCisjaWYgRU5BQkxFKEpJVCkKKyAgICBzdGF0aWMgR2V0QnlJZFN0
YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVC
bG9jayogYmFzZWxpbmVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luLCBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkKTsKKyNlbmRpZgorCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlOyB9CiAgICAgCiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhdGUgIT0gTm9JbmZvcm1hdGlvbjsgfQpAQCAtOTUsNyArOTksNyBAQCBjbGFzcyBHZXRC
eUlkU3RhdHVzIHsKICAgICBzdGF0aWMgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50
SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoSklUKQotICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHVi
SW5mbygKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0
RXhpdFNpdGVGZWVkYmFjaygKICAgICAgICAgY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENv
ZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qLAogICAgICAgICBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkLCBDYWxsTGlua1N0YXR1czo6RXhpdFNpdGVEYXRhKTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCmluZGV4IDM3MzRjNzZkMWVlODdhODRhMGU2NmQ1NTY3NGQxMGIy
YWQyYWEwNTQuLjIyOTA4N2RjYzQzNjQzOTc5NTQ4MGUzZDVjMTI5NjAzYTE2YzFiNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKQEAgLTIxNjMsNiArMjE2MywzMiBAQCBib29sIEFic3RyYWN0SW50ZXJw
cmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVy
TGltaQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAg
ICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAg
ICAgQVNTRVJUKHVpZC0+aXNTeW1ib2woKSA/ICEodmFsdWUubV90eXBlICYgflNwZWNTeW1ib2wp
IDogISh2YWx1ZS5tX3R5cGUgJiB+U3BlY1N0cmluZ0lkZW50KSk7IC8vIEVkZ2UgZmlsdGVyaW5n
IHNob3VsZCBoYXZlIGFscmVhZHkgZW5zdXJlZCB0aGlzLgorCisgICAgICAgIEpTVmFsdWUgY2hp
bGRDb25zdGFudCA9IHZhbHVlLnZhbHVlKCk7CisgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7
CisgICAgICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICAgICAgQVNT
RVJUKGNoaWxkQ29uc3RhbnQuaXNTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgaWYgKGFzU3lt
Ym9sKGNoaWxkQ29uc3RhbnQpLT5wcml2YXRlTmFtZSgpLnVpZCgpID09IHVpZCkgeworICAgICAg
ICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpOworICAg
ICAgICAgICAgICAgIGlmIChhc1N0cmluZyhjaGlsZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBs
KCkgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFu
dHModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbHRlcih2YWx1ZSwgdWlkLT5p
c1N5bWJvbCgpID8gU3BlY1N5bWJvbCA6IFNwZWNTdHJpbmdJZGVudCk7CisgICAgICAgIGJyZWFr
OworICAgIH0KKwogICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICBKU1ZhbHVlIGxl
ZnQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBKU1ZhbHVlIHJp
Z2h0ID0gZm9yTm9kZShub2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNTY0MjJiMThhMjQ2NTA4
NmY4MDY5NDI4MGRhMzY3NjAwMmU2YzVlNC4uNzY4NjkyNWRkYTEyOTU5OWE2ZGMwMzI0NjdkZWE3
OGYzYWFiNWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTk2OSw2ICs5NjksNyBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAg
ICAgICAgIAogICAgICAgICBDYWxsTGlua0luZm9NYXAgbV9jYWxsTGlua0luZm9zOwogICAgICAg
ICBTdHViSW5mb01hcCBtX3N0dWJJbmZvczsKKyAgICAgICAgQnlWYWxJbmZvTWFwIG1fYnlWYWxJ
bmZvczsKICAgICAgICAgCiAgICAgICAgIC8vIERpZCB3ZSBzZWUgYW55IHJldHVybnM/IFdlIG5l
ZWQgdG8gaGFuZGxlIHRoZSAodW5jb21tb24gYnV0IG5lY2Vzc2FyeSkKICAgICAgICAgLy8gY2Fz
ZSB3aGVyZSBhIHByb2NlZHVyZSB0aGF0IGRvZXMgbm90IHJldHVybiB3YXMgaW5saW5lZC4KQEAg
LTMzOTcsMTIgKzMzOTgsMzcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNp
Z25lZCBsaW1pdCkKIAogICAgICAgICBjYXNlIG9wX2dldF9ieV92YWw6IHsKICAgICAgICAgICAg
IFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uV2l0aG91dE9TUkV4aXQo
KTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxS
ZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBB
cnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkg
PSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsK
LSAgICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZv
KGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkp
OwotICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kKSwgZ2V0QnlWYWwpOworICAgICAgICAgICAgYm9vbCBjb21waWxlZEFzR2V0QnlJ
ZCA9IGZhbHNlOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+bV9sb2NrKTsK
KyAgICAgICAgICAgICAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1faW5saW5lU3RhY2tUb3At
Pm1fYnlWYWxJbmZvcy5nZXQoQ29kZU9yaWdpbihjdXJyZW50Q29kZU9yaWdpbigpLmJ5dGVjb2Rl
SW5kZXgpKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2hlbiB0aGUgYnl0ZWNvZGUgaXMg
bm90IGNvbXBpbGVkIGluIHRoZSBiYXNlbGluZSBKSVQsIGJ5VmFsSW5mbyBiZWNvbWVzIG51bGwu
CisgICAgICAgICAgICAgICAgLy8gQXQgdGhhdCB0aW1lLCB0aGVyZSBpcyBubyBpbmZvcm1hdGlv
bi4KKyAgICAgICAgICAgICAgICBpZiAoYnlWYWxJbmZvICYmIGJ5VmFsSW5mby0+c3R1YkluZm8g
JiYgIWJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBp
bGVkQXNHZXRCeUlkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRp
Zmllck51bWJlciA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKS5lbnN1cmUoYnlWYWxJbmZvLT5jYWNo
ZWRJZC5pbXBsKCkpOworICAgICAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
ID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOworCisgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBQb3RlbnRpYWxseSwgd2UgY2FuIGZ1cnRoZXIgb3B0aW1pemUg
aGVyZS4gSWYgd2Ugc2F3IHRoZSBleGl0IGZvciB0aGlzIENoZWNrSWRlbnQsCisgICAgICAgICAg
ICAgICAgICAgIC8vIGRvbid0IHRha2UgdGhlIEdldEJ5SWQgcGF0aCBhbmQgdXNlIHRoZSBnZW5l
cmljIEdldEJ5VmFsLgorICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrSWRlbnQs
IE9wSW5mbyh1aWQpLCBwcm9wZXJ0eSk7CisKKyAgICAgICAgICAgICAgICAgICAgR2V0QnlJZFN0
YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKAor
ICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VyLCBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2Zp
bGVkQmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8tPnN0dWJJbmZvLCBj
dXJyZW50Q29kZU9yaWdpbigpLCB1aWQpOworCisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUdl
dEJ5SWQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlvbiwgYmFzZSwg
aWRlbnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWNvbXBpbGVkQXNHZXRCeUlkKSB7CisgICAg
ICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShjdXJyZW50SW5z
dHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5OjpSZWFkKTsKKyAgICAgICAgICAgICAg
ICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUu
YXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UsIHByb3BlcnR5KTsKKyAgICAgICAg
ICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQpLCBnZXRCeVZhbCk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RF
KG9wX2dldF9ieV92YWwpOwogICAgICAgICB9CkBAIC00MzA1LDYgKzQzMzEsNyBAQCBCeXRlQ29k
ZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAgICAgaWYg
KG1fcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkgewogICAgICAgICAg
ICAgbV9wcm9maWxlZEJsb2NrLT5nZXRTdHViSW5mb01hcChsb2NrZXIsIG1fc3R1YkluZm9zKTsK
ICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwg
bV9jYWxsTGlua0luZm9zKTsKKyAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0QnlWYWxJ
bmZvTWFwKGxvY2tlciwgbV9ieVZhbEluZm9zKTsKICAgICAgICAgfQogICAgIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMjk2NzQ5ZGMzMWIy
M2M4OTk4NDk0YjU2ZWYxNDMwODY0YjEyN2VjNi4uNDZmNWZlNDhkMjVjMjdkZDMxOTZjNTgxMjlk
YmU1ODU3ZmJkN2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmgKQEAgLTI2OCw2ICsyNjgsMTAgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9k
ZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAg
ZGVmKFB1cmVWYWx1ZShDaGVja05vdEVtcHR5LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6
OkZpeGVkLCBub2RlLT5jaGlsZDEoKSkpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBD
aGVja0lkZW50OgorICAgICAgICBkZWYoUHVyZVZhbHVlKENoZWNrSWRlbnQsIEFkamFjZW5jeUxp
c3QoQWRqYWNlbmN5TGlzdDo6Rml4ZWQsIG5vZGUtPmNoaWxkMSgpKSwgbm9kZS0+dWlkT3BlcmFu
ZCgpKSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRl
cjoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5zdG9yYWdlUG9pbnRlcigpKSk7
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggYmE0YzAzNTQ5NDY0OTJmNTlmZGZiZDVh
NmY2MWE1YTY3ZDI1MDMyMC4uM2Q4NWNhYWJkNjE1NzNmZGQ1NDlkNWZlNzViYzY0ZjNlNTY0ZjFl
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZv
bGRpbmdQaGFzZS5jcHAKQEAgLTIwOCw2ICsyMDgsMzMgQEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5n
UGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogCisgICAgICAgICAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgICAgICAgICBV
bmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAg
ICAgIEpTVmFsdWUgY2hpbGRDb25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEo
KSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBjb25zdCBVbmlxdWVkU3RyaW5nSW1wbCogY29u
c3RhbnRVaWQgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3RhbnRVaWQgPSBhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJp
dmF0ZU5hbWUoKS51aWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBhbHJlYWR5IGZpbHRlcmVkIHRoZSB2YWx1
ZSB3aXRoIFN0cmluZ0lkZW50VXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo
ZSBoZWxkIGltcGwgaXMgYWx3YXlzIGF0b21pYy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoY29uc3QgYXV0byogaW1wbCA9IGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRW
YWx1ZUltcGwoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaW1w
bC0+aXNBdG9taWMoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50
VWlkID0gc3RhdGljX2Nhc3Q8Y29uc3QgVW5pcXVlZFN0cmluZ0ltcGwqPihpbXBsKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBp
ZiAoY29uc3RhbnRVaWQgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUtPnJlbW92
ZSgpOworICAgICAgICAgICAgICAgICAgICBlbGltaW5hdGVkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKICAgICAgICAg
ICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICAgICAgICAgIEpTVmFsdWUgbGVmdCA9
IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgICAgICAg
ICBKU1ZhbHVlIHJpZ2h0ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDA4ZmZiMmE5MTI5
Mzg3MjEzMTFjYWQyNzc0Njc2MWEyMDY1M2FhNWYuLmU0NzBiOGRkYWI5OTQzOGZkODkwMzUyZTQ1
ZTA5MTAyOWYxYTYyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
QEAgLTEwNyw2ICsxMDcsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUp
CiAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50OgogICAgIGNhc2UgQ2hlY2tDZWxsOgog
ICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBS
ZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYzQ0MjMx
MDE2MzI2NTdkM2U4M2Y5NzFlNjZhODNmNjI1MDU3MTUyNC4uZDZhOTc5MGIxM2NlMDA2MmQ5Nzgx
MTQwZWRjZTIyMTUyZTQwMGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCkBAIC0xMDEyLDYgKzEwMTIsMTUgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1
YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDaGVja0lk
ZW50OiB7CisgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3Bl
cmFuZCgpOworICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkKKyAgICAgICAgICAgICAg
ICBmaXhFZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2Fz
ZSBBcnJheWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOiB7CkBAIC0xNzYw
LDYgKzE3NjksNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAg
Y2FzZSBGdW5jdGlvblVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIGNhc2Ug
S25vd25TdHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0
cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAg
ICAgICAgICAgIGlmIChhbHdheXNVbmJveFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGUuaAppbmRleCAyOGNhYjA1MWU1MzA5ZTM2ODg2OTRjYmJjNDY1Mzk2Njky
ZGU4MDlhLi44M2ZjZjVjMTAxZTBjN2M3N2E5ZWQyMDk1ZDQ1NWRhNjljNGU2YWYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTMyOCw2ICsxMzI4LDE3IEBAIHN0cnVjdCBO
b2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsK
ICAgICB9CiAKKyAgICBib29sIGhhc1VpZE9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG9wKCkgPT0gQ2hlY2tJZGVudDsKKyAgICB9CisKKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
T3BlcmFuZCgpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzVWlkT3BlcmFuZCgpKTsKKyAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7
CisgICAgfQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRj
aCAob3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDYy
ZTdjYTk4YTUyMTEyZDgyZDBlYjZmMGQxNzI4YmVhZjRiOWUxMzEuLmU5YmY3MjcwNGIxN2FhNjg2
NzllOWJiZWEwZjRmMmFkY2VmOTYzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgKQEAgLTIwOSw2ICsyMDksNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1h
Y3JvKENoZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSW5C
b3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVz
dEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5IG11dGF0
aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNzZhZjZhMmYzZTQ1MmIwZjExN2Fi
YzNhNmJiNWRkZDJmYWFiMTk4YS4uMzZmMmRmN2M3NWM1MGNhZmQwNmVjOWMyNzg1MWVlYTlmMTBm
ZmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTY0OSw2ICs2NDksNyBAQCBjbGFzcyBQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2Ug
Q2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgICAgICBjYXNlIENo
ZWNrTm90RW1wdHk6CisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICAgICAgY2FzZSBDaGVj
a0JhZENlbGw6CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAgICAgICBjYXNlIFZhcklu
amVjdGlvbldhdGNocG9pbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCmluZGV4IDBjMGEyNzc2MDUwZWYxYzYzOGMyMGQ4OGNmZWZlMzIzYzczYTU5MTQu
LmIyZDA3ZDU1ZTUzNjI2ODQ1YjVkM2Y1YzlmZWVhNGU3YmQ4NGRkOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw2ICs1OSw3IEBAIGNs
YXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgog
ICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKKyAg
ICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAg
ICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE5vdFN0cmlu
Z1ZhclVzZToKQEAgLTE4OCw2ICsxODksNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RT
dGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVj
a0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5Ogor
ICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdF
eHBUZXN0OgogICAgIGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGYzZjhhZjdhNTJkNTBmOWEyZTcxYzRm
OTAxOTk4NDdiZjA1MDBkNWUuLjA1MzczNjM0YmRlMTFkNjY0NjE5MTNhMjBjNWE1YmVhOTY4ZmE0
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCkBAIC00NTc2LDYgKzQ1NzYsMzEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCiAgICAgfSB9CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVDaGVja0lkZW50KE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgb3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgVW5pcXVlZFN0cmluZ0lt
cGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7
CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7
CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCisgICAgICAgICAgICBCYWRJZGVudCwgSlNWYWx1
ZVNvdXJjZSgpLCBudWxscHRyLAorICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAorICAgICAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6QWRkcmVzcyhvcGVyYW5kLmdwcigpLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUo
KSksCisgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsK
KyAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3By
KCkpOworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAgICAgQmFkSWRlbnQsIEpT
VmFsdWVTb3VyY2UoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAg
ICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgSklU
Q29tcGlsZXI6OkFkZHJlc3Mob3BlcmFuZC5ncHIoKSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUo
KSksCisgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0cih1aWQpKSk7CisgICAgfQorICAgIG5v
UmVzdWx0KG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rp
b24oTm9kZSogbm9kZSkKIHsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzY29wZSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CkBAIC01NzMxLDYgKzU3NTYsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlTm90U3RyaW5nVmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxpbmsoJm1f
aml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRn
ZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5i
b3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90U3ltYm9s
KGNlbGwpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2Ug
ZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVk
Z2UpOworICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAgICAgaWYg
KCFuZWVkc1R5cGVDaGVjayhlZGdlLCB+U3BlY0NlbGwpKQpAQCAtNTg0Miw2ICs1ODgxLDkgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2Fz
ZSBTdHJpbmdVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsK
KyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1
bGF0ZVN0cmluZ09iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYTVjNDQ1NDdkYTY0YmMyYjYz
ZjA3M2ExNzExZTZhMTE4MDZmNTk1Yi4uNTQ1ZmYyYTZlYmQxMGVlZjgyYjFmZTdjMjJjY2U5Zjcx
N2VkZDE0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaApAQCAtMjE5MSw2ICsyMTkxLDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZv
aWQgY29tcGlsZVNraXBTY29wZShOb2RlKik7CiAKICAgICB2b2lkIGNvbXBpbGVHZXRBcnJheUxl
bmd0aChOb2RlKik7CisKKyAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KE5vZGUqKTsKICAgICAK
ICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlRG91Ymxl
UmVwKE5vZGUqKTsKQEAgLTI0MDYsNiArMjQwOCw4IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsK
ICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlLCBHUFJSZWcpOwogICAgIHZvaWQg
c3BlY3VsYXRlU3RyaW5nT2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JT
dHJpbmdPYmplY3QoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSwgR1BSUmVn
IGNlbGwpOworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UpOwogICAgIHZvaWQgc3BlY3Vs
YXRlTm90Q2VsbChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU90aGVyKEVkZ2UpOwogICAgIHZv
aWQgc3BlY3VsYXRlTWlzYyhFZGdlLCBKU1ZhbHVlUmVncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA1MDQyOTA1
YjYyYjUyNmM5ZWRhZDNmZmJiNTY3YzQ2ZjY3ZjgwZWFlLi4xMmFiOGQwODVkMDcwNTEwZjc2ZmQ0
ZWU3MjU0Zjg4ZTMzMjJiN2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTM4MjAsNiArMzgyMCwxMCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorICAgIGNhc2UgQ2hlY2tJZGVudDoKKyAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQobm9k
ZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGZ1bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXgg
NzcwYmRhNThjYWI1MDIzYTFmYTBjMzhmNGM3YTAzMDhkNDA4MGEzMC4uMTNjN2M4N2Q4MDZmN2E3
YTg2NzMwZjA3OWFkODgzNDU0MjZjN2ZjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0zODUwLDYgKzM4NTAsMTAgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAg
ICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6CisgICAgICAgIGNvbXBpbGVDaGVja0lkZW50KG5v
ZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCmluZGV4IGVmYTEwNGYzZDA3MDAwYjdk
N2JjNDczYmNkZjIwNmQxMDUzZmM5YjEuLjkzNmVmNTU0YWYyNGUwYjY0ZmRmNDI4ZjE2M2FlOGQ3
ODhlOThkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2lu
ZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAt
OTcsNiArOTcsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2lu
ZCB1c2VLaW5kKQogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIG91dC5wcmludCgi
S25vd25TdHJpbmciKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAg
ICAgICBvdXQucHJpbnQoIlN5bWJvbCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJp
bmdPYmplY3RVc2U6CiAgICAgICAgIG91dC5wcmludCgiU3RyaW5nT2JqZWN0Iik7CiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2lu
ZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggZWJmOTlk
YWU2MDBjODgyNWQyMmNiYWM2MzgyMmQxNWI1NTYwMDM1YS4uMjg5Yjc4M2U0MWJiMzYxMjkxYzgz
YzhmYWQ3YjA4YTU3OGUwYTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5k
LmgKQEAgLTU3LDYgKzU3LDcgQEAgZW51bSBVc2VLaW5kIHsKICAgICBTdHJpbmdJZGVudFVzZSwK
ICAgICBTdHJpbmdVc2UsCiAgICAgS25vd25TdHJpbmdVc2UsCisgICAgU3ltYm9sVXNlLAogICAg
IFN0cmluZ09iamVjdFVzZSwKICAgICBTdHJpbmdPclN0cmluZ09iamVjdFVzZSwKICAgICBOb3RT
dHJpbmdWYXJVc2UsCkBAIC0xMTcsNiArMTE4LDggQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5
cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNh
c2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nOworICAgIGNhc2Ug
U3ltYm9sVXNlOgorICAgICAgICByZXR1cm4gU3BlY1N5bWJvbDsKICAgICBjYXNlIFN0cmluZ09i
amVjdFVzZToKICAgICAgICAgcmV0dXJuIFNwZWNTdHJpbmdPYmplY3Q7CiAgICAgY2FzZSBTdHJp
bmdPclN0cmluZ09iamVjdFVzZToKQEAgLTE5Niw2ICsxOTksNyBAQCBpbmxpbmUgYm9vbCBpc0Nl
bGwoVXNlS2luZCBraW5kKQogICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgY2FzZSBTdHJp
bmdVc2U6CiAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKKyAgICBjYXNlIFN5bWJvbFVzZToKICAg
ICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNl
OgogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggOTEyNzU0ZGZjNDAxNTJiMGVk
MjQ4MzZhYzc1YjhmOTY5ODQzOTliYi4uNTgxZjRjYmQ5YTc2OGI5YWIyYTgzOTIxY2YyNGQzNTI0
YmM4NTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTg3LDcgKzg3LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV9jbGFzc0luZm8sIFN0cnVjdHVyZTo6
Y2xhc3NJbmZvT2Zmc2V0KCkpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVfZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX3By
b3RvdHlwZSwgU3RydWN0dXJlOjpwcm90b3R5cGVPZmZzZXQoKSkgXAotICAgIG1hY3JvKFN0cnVj
dHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKQorICAgIG1h
Y3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgp
KSBcCisgICAgbWFjcm8oU3ltYm9sX3ByaXZhdGVOYW1lLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0
ZU5hbWUoKSkKIAogI2RlZmluZSBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAobWFjcm8p
IFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfc3RvcmFnZSwgRGlyZWN0QXJndW1lbnRzOjpz
dG9yYWdlT2Zmc2V0KCksIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA2MjcyOGM3NDZlZjkxZDc0
Yjc4MjliYjNmOWE0NGM2ZDdmNjFkN2IzLi5iNDkzZjMwMjdlODJjZmNjZTljM2NjZjQ4MmMxNTU4
NjFkNjhiOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENl
bGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBj
YXNlIFN0cmluZ0NoYXJDb2RlQXQ6CiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToK
ICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CkBAIC00MTUsNiArNDE2LDcgQEAg
Q2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAg
IGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RV
c2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKKyAgICAg
ICAgICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2Jq
ZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgTm90Q2VsbFVzZToKICAgICAgICAgICAgICAg
ICBjYXNlIE90aGVyVXNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9MTFZNLmNwcAppbmRleCA1YjU4N2RkMDQ4ODNjYTc5NDY1ZmI0ZTMwZDlkNWVlZDkzMzkx
MmZlLi44MmNhYmJhODFiMjE3Y2NkYWM2YTNkNDUzZTBjZWJlZmM2MjlhYWY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNTMyLDYg
KzUzMiw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBDaGVja0JhZENl
bGw6CiAgICAgICAgICAgICBjb21waWxlQ2hlY2tCYWRDZWxsKCk7CiAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDaGVja0lkZW50OgorICAgICAgICAgICAgY29tcGlsZUNoZWNrSWRl
bnQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAg
ICAgICAgICAgICBjb21waWxlR2V0RXhlY3V0YWJsZSgpOwogICAgICAgICAgICAgYnJlYWs7CkBA
IC0yMDI5LDYgKzIwMzIsMjAgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVj
dWxhdGUoVERaRmFpbHVyZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5pc1plcm82NChsb3dK
U1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgfQogCisgICAgdm9pZCBjb21waWxlQ2hl
Y2tJZGVudCgpCisgICAgeworICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ub2Rl
LT51aWRPcGVyYW5kKCk7CisgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKKyAgICAgICAg
ICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
ICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5
bWJvbF9wcml2YXRlTmFtZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFs
dWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQ
dHIodWlkKSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9
IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0
cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7
CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9v
dXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAg
ICB9CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlR2V0RXhlY3V0YWJsZSgpCiAgICAgewogICAg
ICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC03MDMzLDcg
KzcwNTAsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGVTdHJp
bmdJZGVudChlZGdlLCBzdHJpbmcsIHN0cmluZ0ltcGwpOwogICAgICAgICByZXR1cm4gc3RyaW5n
SW1wbDsKICAgICB9Ci0gICAgCisKKyAgICBMVmFsdWUgbG93U3ltYm9sKEVkZ2UgZWRnZSwgT3Bl
cmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRT
cGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpOworCisgICAgICAgIExW
YWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UsIG1vZGUpOworICAgICAgICBzcGVjdWxhdGVTeW1i
b2woZWRnZSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBM
VmFsdWUgbG93Tm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUg
bW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAgICB7CiAgICAgICAgIEFTU0VS
VF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51
c2VLaW5kKCkgPT0gT2JqZWN0VXNlKTsKQEAgLTc0MzAsNiArNzQ1Niw5IEBAIGNsYXNzIExvd2Vy
REZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgICAgIHNw
ZWN1bGF0ZVN0cmluZ0lkZW50KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgU3ltYm9sVXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UpOworICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAg
c3BlY3VsYXRlU3RyaW5nT2JqZWN0KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03NTI2
LDcgKzc1NTUsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgbV9vdXQu
bG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50MzIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9Ci0gICAg
CisKKyAgICBMVmFsdWUgaXNOb3RTeW1ib2woTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5
cGUgPSBTcGVjRnVsbFRvcCkKKyAgICB7CisgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQ
cm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjU3ltYm9sKSkKKyAgICAgICAgICAgIHJl
dHVybiBwcm92ZW47CisgICAgICAgIHJldHVybiBtX291dC5ub3RFcXVhbCgKKyAgICAgICAgICAg
IG1fb3V0LmxvYWQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCisgICAgICAg
ICAgICBtX291dC5jb25zdEludDMyKHZtKCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7CisgICAg
fQorCiAgICAgTFZhbHVlIGlzQXJyYXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlN
b2RlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkBAIC03NzQ5
LDcgKzc3ODcsMTcgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0gewogICAgICAgICAgICAgTm90U3Ry
aW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCiAgICAgICAgICAgICBtX291dC5ub3RFcXVhbChzdHJ1
Y3R1cmVJRCwgd2Vha1N0cnVjdHVyZUlEKHN0cmluZ09iamVjdFN0cnVjdHVyZSkpKTsKICAgICB9
Ci0gICAgCisKKyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxs
KQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdl
LCBTcGVjU3ltYm9sIHwgflNwZWNDZWxsLCBpc05vdFN5bWJvbChjZWxsKSk7CisgICAgfQorCisg
ICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3Vs
YXRlU3ltYm9sKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKwogICAgIHZvaWQgc3BlY3Vs
YXRlTm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAg
RlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjT2JqZWN0LCBpc05v
dE9iamVjdChjZWxsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggOWFmMzMyZWI3
OGUxODlhZTZhNTNiMjIzNTBhZjc3YjVmOWQ3ZWIyYi4uMjY0YWE0Y2Y1NjI3YzQ3MTUzYWZiYzUx
NTdiOWJkZjJjMjM2OTQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtNjU4LDE3
ICs2NTgsMjIgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21w
aWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9wdXRCeUlkcy5z
aXplKCk7IGktLTspCiAgICAgICAgIG1fcHV0QnlJZHNbaV0uZmluYWxpemUocGF0Y2hCdWZmZXIp
OwogCi0gICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZvcyhtX2J5VmFsQ29tcGls
YXRpb25JbmZvLnNpemUoKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYnlWYWxD
b21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBi
YWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5
VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1wKSk7Ci0gICAgICAgIENvZGVMb2NhdGlv
bkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKG1fYnlWYWxDb21waWxh
dGlvbkluZm9baV0uZG9uZVRhcmdldCk7Ci0gICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQ
YXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZv
W2ldLnNsb3dQYXRoVGFyZ2V0KTsKLSAgICAgICAgQ29kZUxvY2F0aW9uQ2FsbCByZXR1cm5BZGRy
ZXNzID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLnJl
dHVybkFkZHJlc3MpOwotICAgICAgICAKLSAgICAgICAgbV9jb2RlQmxvY2stPmJ5VmFsSW5mbyhp
KSA9IEJ5VmFsSW5mbygKLSAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYnl0
ZWNvZGVJbmRleCwKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJ5VmFsQ29tcGlsYXRpb25JbmZvIDog
bV9ieVZhbENvbXBpbGF0aW9uSW5mbykgeworICAgICAgICBQYXRjaGFibGVKdW1wIHBhdGNoYWJs
ZU5vdEluZGV4SnVtcCA9IGJ5VmFsQ29tcGlsYXRpb25JbmZvLm5vdEluZGV4SnVtcDsKKyAgICAg
ICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKCk7Cisg
ICAgICAgIGlmIChKdW1wKHBhdGNoYWJsZU5vdEluZGV4SnVtcCkuaXNTZXQoKSkKKyAgICAgICAg
ICAgIG5vdEluZGV4SnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihwYXRjaGFibGVOb3RJbmRleEp1bXApKTsKKyAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRU
eXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihieVZhbENv
bXBpbGF0aW9uSW5mby5iYWRUeXBlSnVtcCkpOworICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBk
b25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihieVZhbENvbXBpbGF0aW9uSW5mby5k
b25lVGFyZ2V0KTsKKyAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgc2xvd1BhdGhUYXJnZXQgPSBw
YXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGJ5VmFsQ29tcGlsYXRpb25JbmZvLnNsb3dQYXRoVGFyZ2V0
KTsKKyAgICAgICAgQ29kZUxvY2F0aW9uQ2FsbCByZXR1cm5BZGRyZXNzID0gcGF0Y2hCdWZmZXIu
bG9jYXRpb25PZihieVZhbENvbXBpbGF0aW9uSW5mby5yZXR1cm5BZGRyZXNzKTsKKworICAgICAg
ICAqYnlWYWxDb21waWxhdGlvbkluZm8uYnlWYWxJbmZvID0gQnlWYWxJbmZvKAorICAgICAgICAg
ICAgYnlWYWxDb21waWxhdGlvbkluZm8uYnl0ZWNvZGVJbmRleCwKKyAgICAgICAgICAgIG5vdElu
ZGV4SnVtcCwKICAgICAgICAgICAgIGJhZFR5cGVKdW1wLAotICAgICAgICAgICAgbV9ieVZhbENv
bXBpbGF0aW9uSW5mb1tpXS5hcnJheU1vZGUsCisgICAgICAgICAgICBieVZhbENvbXBpbGF0aW9u
SW5mby5hcnJheU1vZGUsCisgICAgICAgICAgICBieVZhbENvbXBpbGF0aW9uSW5mby5hcnJheVBy
b2ZpbGUsCiAgICAgICAgICAgICBkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoYmFkVHlwZUp1bXAs
IGRvbmVUYXJnZXQpLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKHJldHVy
bkFkZHJlc3MsIHNsb3dQYXRoVGFyZ2V0KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgK
aW5kZXggMWFkZTY2NWRmNzkyODJjNjBjMmE4ODU2ODVmZDUzMTdkN2E1NTRkNS4uM2Q0MTdjMzdk
YzIwYjhmNjA4YzE5ZjRkYjZkMGM1YWM5NjZjMDA1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
CkBAIC0xNDksMTcgKzE0OSwyMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBzdHJ1Y3QgQnlWYWxD
b21waWxhdGlvbkluZm8gewogICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbygpIHsgfQogICAg
ICAgICAKLSAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9k
ZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQotICAgICAgICAg
ICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgIEJ5VmFsQ29tcGlsYXRp
b25JbmZvKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNy
b0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXAsIE1hY3JvQXNzZW1ibGVyOjpQ
YXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBBcnJheVBy
b2ZpbGUqIGFycmF5UHJvZmlsZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQpCisg
ICAgICAgICAgICA6IGJ5VmFsSW5mbyhieVZhbEluZm8pCisgICAgICAgICAgICAsIGJ5dGVjb2Rl
SW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4
SnVtcCkKICAgICAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICAg
ICAsIGFycmF5TW9kZShhcnJheU1vZGUpCisgICAgICAgICAgICAsIGFycmF5UHJvZmlsZShhcnJh
eVByb2ZpbGUpCiAgICAgICAgICAgICAsIGRvbmVUYXJnZXQoZG9uZVRhcmdldCkKICAgICAgICAg
ewogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvOwog
ICAgICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRj
aGFibGVKdW1wIGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOwor
ICAgICAgICBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsIGRvbmVUYXJnZXQ7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBzbG93
UGF0aFRhcmdldDsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgcmV0dXJuQWRkcmVzczsK
QEAgLTIwNCw2ICsyMTAsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBqaXQucHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbChieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIGFycmF5TW9kZSk7
CiAgICAgICAgIH0KIAorICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRoQ2Fj
aGVkSWQoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8s
IFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2spOwor
ICAgICAgICAgICAgaml0Lm1fYnl0ZWNvZGVPZmZzZXQgPSBieVZhbEluZm8tPmJ5dGVjb2RlSW5k
ZXg7CisgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChi
eVZhbEluZm8sIHJldHVybkFkZHJlc3MsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKwogICAg
ICAgICBzdGF0aWMgdm9pZCBjb21waWxlUHV0QnlWYWwoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVz
cywgSklUQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICAgICAgewogICAgICAgICAgICAgSklUIGpp
dCh2bSwgY29kZUJsb2NrKTsKQEAgLTI0Niw2ICsyNTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZv
cnQpOwogICAgICAgICAKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFs
SW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CisgICAgICAgIHZvaWQgcHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNz
UHRyLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVQdXRC
eVZhbChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwogCiAgICAg
ICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoQnlWYWxJbmZvKiwgUmV0
dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKQEAgLTM3MSw3ICszODUsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgSnVtcExpc3QgZW1pdEFycmF5U3RvcmFnZVB1dEJ5VmFsKEluc3Ry
dWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRJ
bnRUeXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBl
LCBUeXBlZEFycmF5VHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRGbG9hdFR5cGVkQXJyYXlQ
dXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlU
eXBlKTsKLSAgICAgICAgCisKKyAgICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlW
YWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3Qm
IGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcyk7CisKICAgICAgICAgZW51bSBGaW5hbE9i
amVjdE1vZGUgeyBNYXlCZUZpbmFsLCBLbm93bk5vdEZpbmFsIH07CiAKICAgICAgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRpb24s
IFQgbGVmdEhhbmRTaWRlLCBTdHJ1Y3R1cmUqKTsKQEAgLTcwMiw2ICs3MTgsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJSZWcsIGNvbnN0IElkZW50aWZpZXIqKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkos
IGludCwgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBBcnJh
eVByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oQ19KSVRPcGVyYXRpb25f
RUpzYywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSnNjQywgaW50LCBHUFJSZWcsIEpTQ2VsbCopOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3BlcmF0aW9uX0VKc2NaLCBH
UFJSZWcsIGludDMyX3QpOwpAQCAtNzQ2LDYgKzc2Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogI2Vu
ZGlmCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRUpKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkFw
LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBBcnJheVByb2ZpbGUqKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
SkpKQnksIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIEJ5VmFsSW5mbyopOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VKWkosIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWiwgUmVnaXN0ZXJJ
RCwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRVBjLCBJbnN0cnVjdGlvbiopOwpAQCAtNzYyLDYgKzc4MCw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEpfSklUT3BlcmF0aW9uX0VKSWRjLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBjb25zdCBJZGVudGlm
aWVyKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpK
QXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyop
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0
aW9uX0VKUywgR1BSUmVnLCBHUFJSZWcsIHNpemVfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklU
T3BlcmF0aW9uX0VKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCk7CkBAIC03NjksNiArNzg4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VKSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCwgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCwgQXJyYXlQcm9maWxlKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5LCBSZWdpc3RlcklELCBSZWdpc3RlcklE
LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBCeVZhbElu
Zm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9w
ZXJhdGlvbl9FSlosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWkosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VaSiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IGE0OTQ4NGEzZTgwM2JjOGE0NzU5MjY1MTRiMTBiMGYx
ZmUxOTgwNzMuLmFjZDhjODk1ZmVkZGNmMGFjMjM1NDRjNjY2YzVkYjkxMzMxYzZlNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC00MTEsNiArNDExLDEyIEBAIEFM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5IG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBSZWdpc3RlcklEIHJlZ09wMywgQnlW
YWxJbmZvKiBieVZhbEluZm8pCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgcmVnT3AyLCByZWdPcDMsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7CisgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKK30KKwogQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVy
YXRpb25fRVpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZykKIHsKICAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKGRzdCksIGFyZyk7CkBAIC00NTksNiAr
NDY1LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwIG9wZXJhCiAgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAor
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKQnkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVn
IGFyZzIsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGJ5VmFsSW5mbykpOworICAgIHJldHVy
biBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24s
IGRzdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQ
UlJlZyBhcmcxKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxKTsKQEAg
LTYwMCw2ICs2MTIsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAgb3BlcmEKICAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3Qp
OwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcx
VGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxv
YWQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgU0g0XzMyQklU
X0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbVB0cihieVZhbEluZm8p
KTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1
bHQob3BlcmF0aW9uLCBkc3QpOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlv
bl9FSkogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXls
b2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQogewogICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJn
MVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CkBAIC02NjYs
NiArNjg0LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJuIGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5
IG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDFUYWcsIFJlZ2lzdGVySUQgcmVnT3AxUGF5bG9h
ZCwgUmVnaXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lzdGVySUQgcmVnT3AyUGF5bG9hZCwgUmVnaXN0
ZXJJRCByZWdPcDNUYWcsIFJlZ2lzdGVySUQgcmVnT3AzUGF5bG9hZCwgQnlWYWxJbmZvKiBieVZh
bEluZm8pCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVN
TVlfQVJHIHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyByZWdP
cDJQYXlsb2FkLCByZWdPcDJUYWcsIHJlZ09wM1BheWxvYWQsIHJlZ09wM1RhZywgVHJ1c3RlZElt
bVB0cihieVZhbEluZm8pKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FWkogb3BlcmF0aW9uLCBpbnQgZHN0LCBS
ZWdpc3RlcklEIHJlZ09wMVRhZywgUmVnaXN0ZXJJRCByZWdPcDFQYXlsb2FkKQogewogICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIoZHN0KSwgcmVnT3AxUGF5bG9h
ZCwgcmVnT3AxVGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmlu
ZGV4IDkwYjUzMjE1YWIwNGM3NDMzOGFkYmE4MzYzMDQwYzM4NGRmZmEzMWUuLmU0YWQ5NjczMGE3
ZGI3YWRkNDEwMzdiNTU2N2MwOGYyMTIwOWI0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcApAQCAtMTA3Nyw2ICsxMDc3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
aGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHBy
b3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2Zp
bGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAg
QnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAg
CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdU
MSk7CiAKQEAgLTExMDgsNyArMTEwOSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVk
X3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUs
IG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENv
bXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAo
KSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
biwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTExMTYsNyArMTEx
Nyw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7Ci0gICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9u
WzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENv
bXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAog
ICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hl
Y2sKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTExMjcs
NyArMTEyOCw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgCiAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihiYXNlLCByZWdUMCk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihw
cm9wZXJ0eSwgcmVnVDEpOwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
SGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCByZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwor
ICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5
RGVmYXVsdCwgZHN0LCByZWdUMCwgcmVnVDEsIGJ5VmFsSW5mbyk7CiAKICAgICBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNs
b3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5k
ZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IGQwZTc1Y2UxYTdlNTQ2OTgwMmM2MTA2MzNkMmIzMzU1
ZTIzNTRmOTkuLjM2YzMzNzljZjg4MDI3MWQyYmJlNjQ0MjgwMTM0Yzg4Y2JkN2E4MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTEwNzcs
NiArMTA3Nyw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3Ry
dWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9j
b2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAgIAogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNl
LCByZWdUMCk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UpOwpAQCAtMTEw
OSw3ICsxMTEwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBlbWl0U3RvcmVCb29sKGRz
dCwgcmVnVDApOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFs
Q29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsK
KyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhi
eVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9k
ZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4
ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTExMTcsNyArMTExOCw3IEBAIHZvaWQgSklU
OjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQ7CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAg
QXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9m
aWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tt
X2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAogICAgIGxpbmtTbG93Q2Fz
ZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKICAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTExMjgsNyArMTEyOSw3IEBAIHZv
aWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDEsIHJl
Z1QwKTsKICAgICBlbWl0TG9hZChwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QyKTsKLSAgICBDYWxsIGNh
bGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQsIGRz
dCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIsIHByb2ZpbGUpOworICAgIENhbGwgY2FsbCA9
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCBy
ZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMiwgYnlWYWxJbmZvKTsKIAogICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xv
d1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRl
eF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAppbmRleCA5Njk2ZmNlZDlkMmY4NDcyNzU5YjNkNzNlNjFlZGMzYTViNDJj
NGFhLi43YThkOTM5NjFmOWM3OGJiNWRjM2E3NTBjZTBhZDY3ZTBhMTk5NzY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTQ5OCw3ICs0OTgsNyBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVhbGxvY2F0ZVN0b3JhZ2VBbmRGaW5pc2hQ
dXQoRXhlY1N0YXRlKiBleGVjLCBKU09iagogICAgIGJhc2UtPnB1dERpcmVjdCh2bSwgb2Zmc2V0
LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpKTsKIH0KIAotc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwg
SlNWYWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCitzdGF0aWMgdm9pZCBw
dXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUg
c3Vic2NyaXB0LCBKU1ZhbHVlIHZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBW
TSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgaWYgKExJS0VMWShzdWJzY3JpcHQuaXNVSW50
MzIoKSkpIHsKQEAgLTUwOCw3ICs1MDgsNyBAQCBzdGF0aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LAogICAg
ICAgICAgICAgaWYgKG9iamVjdC0+Y2FuU2V0SW5kZXhRdWlja2x5KGkpKQogICAgICAgICAgICAg
ICAgIG9iamVjdC0+c2V0SW5kZXhRdWlja2x5KGNhbGxGcmFtZS0+dm0oKSwgaSwgdmFsdWUpOwog
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRP
ZkJvdW5kcygpOworICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRP
dXRPZkJvdW5kcygpOwogICAgICAgICAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5w
dXRCeUluZGV4KG9iamVjdCwgY2FsbEZyYW1lLCBpLCB2YWx1ZSwgY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKS0+aXNTdHJpY3RNb2RlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UKQEAg
LTUyMiw3ICs1MjIsNyBAQCBzdGF0aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LAogICAgIH0KIH0KIAotc3Rh
dGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxl
KiBhcnJheVByb2ZpbGUpCitzdGF0aWMgdm9pZCBkaXJlY3RQdXRCeVZhbChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEpTVmFsdWUgc3Vic2NyaXB0LCBKU1ZhbHVl
IHZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBib29sIGlzU3RyaWN0TW9kZSA9
IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpOwogICAgIGlmIChMSUtFTFko
c3Vic2NyaXB0LmlzVUludDMyKCkpKSB7CkBAIC01MzQsNyArNTM0LDcgQEAgc3RhdGljIHZvaWQg
ZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBKU1ZhbHVlIHMKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGFy
cmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAgICAgICAgYnlWYWxJbmZvLT5hcnJheVBy
b2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVjdElu
ZGV4KGNhbGxGcmFtZSwgaW5kZXgsIHZhbHVlLCAwLCBpc1N0cmljdE1vZGUgPyBQdXREaXJlY3RJ
bmRleFNob3VsZFRocm93IDogUHV0RGlyZWN0SW5kZXhTaG91bGROb3RUaHJvdyk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC01NjAsNyArNTYwLDcgQEAgc3RhdGljIHZvaWQgZGlyZWN0UHV0
QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVl
IHMKICAgICAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0oKSwgcHJvcGVy
dHksIHZhbHVlLCBzbG90KTsKICAgICB9CiB9Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAg
LTU3NCwyMSArNTc0LDE5IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbChF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlCiAgICAgICAgIEpTT2Jq
ZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogICAgICAgICBib29sIGRpZE9wdGlt
aXplID0gZmFsc2U7CiAKLSAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5s
b2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKLSAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0
KTsKLSAgICAgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0
QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7Ci0gICAgICAgIEFTU0VSVCghYnlWYWxJbmZv
LnN0dWJSb3V0aW5lKTsKKyAgICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9m
ZnNldCgpKTsKKyAgICAgICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5lKTsKIAogICAg
ICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVjdC0+c3RydWN0dXJlKHZtKTsKICAgICAg
ICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcoc3RydWN0dXJlKSkgewogICAgICAgICAgICAg
Ly8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJheU1v
ZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJlKTsKLSAgICAgICAgICAgIGlm
IChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFs
SW5mby5hcnJheU1vZGUpIHsKKyAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQZXJtaXRzUHV0
KGFycmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlNb2RlKSB7CiAgICAg
ICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKICAg
ICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9j
ayk7Ci0gICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rp
b24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAgYnlWYWxJ
bmZvLT5hcnJheVByb2ZpbGUtPmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihsb2NrZXIsIGNvZGVC
bG9jaywgc3RydWN0dXJlKTsKIAotICAgICAgICAgICAgICAgIEpJVDo6Y29tcGlsZVB1dEJ5VmFs
KCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VS
X1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgICAgICAgICBKSVQ6OmNvbXBp
bGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBieVZhbEluZm8sIFJldHVybkFkZHJl
c3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAgICAgICAgICAgICBk
aWRPcHRpbWl6ZSA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTU5OSw3ICs1
OTcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICAgICAgLy8gdGhhdCBpbnRl
cmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4g
Rm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2Vw
dGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJhdGlvbnMgd29ydGggb2YKICAgICAgICAg
ICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwg
bWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRo
Q291bnQgPj0gMTAKKyAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+
PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8o
KS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3Ra
ZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4K
ICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJs
b2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIo
b3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKSk7CkBAIC02MDcsMTAgKzYwNSwxMCBAQCB2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICB9CiAgICAgfQogCi0gICAgcHV0QnlWYWwoZXhlYywg
YmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2ZpbGUpOworICAgIHB1dEJ5VmFs
KGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSogY2FsbEZy
YW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEFycmF5UHJvZmlsZSog
YXJyYXlQcm9maWxlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFs
KEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZNJiB2bSA9IGNhbGxGcmFtZS0+dm0o
KTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgY2FsbEZyYW1lKTsKQEAg
LTYyMywyMiArNjIxLDIwIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRC
eVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUKICAgICBpZiAoc3Vic2Ny
aXB0LmlzSW50MzIoKSkgewogICAgICAgICAvLyBTZWUgaWYgaXQncyB3b3J0aCBvcHRpbWl6aW5n
IGF0IGFsbC4KICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwotICAgICAgICAKLSAg
ICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBjYWxsRnJhbWUtPmxvY2F0aW9uQXNCeXRl
Y29kZU9mZnNldCgpOwotICAgICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQpOwotICAgICAgICBC
eVZhbEluZm8mIGJ5VmFsSW5mbyA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5m
byhieXRlY29kZU9mZnNldCAtIDEpOwotICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91
dGluZSk7CisKKyAgICAgICAgQVNTRVJUKGNhbGxGcmFtZS0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zm
c2V0KCkpOworICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOwogCiAgICAg
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gb2JqZWN0LT5zdHJ1Y3R1cmUodm0pOwogICAgICAg
ICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhzdHJ1Y3R1cmUpKSB7CiAgICAgICAgICAgICAv
LyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9k
ZSA9IGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShzdHJ1Y3R1cmUpOwotICAgICAgICAgICAgaWYg
KGppdEFycmF5TW9kZVBlcm1pdHNQdXQoYXJyYXlNb2RlKSAmJiBhcnJheU1vZGUgIT0gYnlWYWxJ
bmZvLmFycmF5TW9kZSkgeworICAgICAgICAgICAgaWYgKGppdEFycmF5TW9kZVBlcm1pdHNQdXQo
YXJyYXlNb2RlKSAmJiBhcnJheU1vZGUgIT0gYnlWYWxJbmZvLT5hcnJheU1vZGUpIHsKICAgICAg
ICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7
CiAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5t
X2xvY2spOwotICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVk
aWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGJ5
VmFsSW5mby0+YXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBj
b2RlQmxvY2ssIHN0cnVjdHVyZSk7CiAKLSAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVEaXJl
Y3RQdXRCeVZhbCgmdm0sIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVy
bkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgICAg
ICAgICBKSVQ6OmNvbXBpbGVEaXJlY3RQdXRCeVZhbCgmdm0sIGNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBhcnJh
eU1vZGUpOwogICAgICAgICAgICAgICAgIGRpZE9wdGltaXplID0gdHJ1ZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtNjQ5LDE3ICs2NDUsMTcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1
ZQogICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0
IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVy
ZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0
ZXJhdGlvbnMgd29ydGggb2YKICAgICAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBv
YnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAg
ICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKKyAgICAgICAgICAgIGlmICgr
K2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVj
dC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBE
b24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxC
eVJldHVybkFkZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVzc1B0cihP
VVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdl
bmVyaWMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLSAgICBkaXJlY3RQdXRC
eVZhbChjYWxsRnJhbWUsIG9iamVjdCwgc3Vic2NyaXB0LCB2YWx1ZSwgYXJyYXlQcm9maWxlKTsK
KyAgICBkaXJlY3RQdXRCeVZhbChjYWxsRnJhbWUsIG9iamVjdCwgc3Vic2NyaXB0LCB2YWx1ZSwg
YnlWYWxJbmZvKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2Vu
ZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsK
QEAgLTY2OCwxMSArNjY0LDExIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZh
bEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvCiAgICAgSlNWYWx1
ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogCi0gICAgcHV0QnlW
YWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2ZpbGUpOworICAg
IHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsK
IH0KIAogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmlj
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBB
cnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25E
aXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMp
OwpAQCAtNjgxLDcgKzY3Nyw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQ
dXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1CiAgICAgSlNWYWx1
ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKLSAgICBkaXJlY3RQdXRCeVZhbChleGVjLCBh
c09iamVjdChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2ZpbGUpOworICAg
IGRpcmVjdFB1dEJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2VWYWx1ZSksIHN1YnNjcmlwdCwgdmFs
dWUsIGJ5VmFsSW5mbyk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjLCBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCkBAIC0x
NDU0LDM0ICsxNDUwLDQxIEBAIHN0YXRpYyBib29sIGNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlj
a2x5KEpTT2JqZWN0JiBvYmplY3QsIHVpbnQzMl90IGluZGV4KQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJh
c2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlLCBS
ZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCitzdGF0aWMgSlNWYWx1ZSBnZXRCeVZhbChF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgQnlW
YWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcykKIHsKICAg
ICBpZiAoTElLRUxZKGJhc2VWYWx1ZS5pc0NlbGwoKSAmJiBzdWJzY3JpcHQuaXNTdHJpbmcoKSkp
IHsKICAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICAgICAgU3RydWN0dXJlJiBzdHJ1
Y3R1cmUgPSAqYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUodm0pOwogICAgICAgICBpZiAo
SlNDZWxsOjpjYW5Vc2VGYXN0R2V0T3duUHJvcGVydHkoc3RydWN0dXJlKSkgewogICAgICAgICAg
ICAgaWYgKFJlZlB0cjxBdG9taWNTdHJpbmdJbXBsPiBleGlzdGluZ0F0b21pY1N0cmluZyA9IGFz
U3RyaW5nKHN1YnNjcmlwdCktPnRvRXhpc3RpbmdBdG9taWNTdHJpbmcoZXhlYykpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBiYXNlVmFsdWUuYXNDZWxsKCktPmZhc3RH
ZXRPd25Qcm9wZXJ0eSh2bSwgc3RydWN0dXJlLCBleGlzdGluZ0F0b21pY1N0cmluZy5nZXQoKSkp
CisgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gYmFzZVZhbHVlLmFzQ2VsbCgp
LT5mYXN0R2V0T3duUHJvcGVydHkodm0sIHN0cnVjdHVyZSwgZXhpc3RpbmdBdG9taWNTdHJpbmcu
Z2V0KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0
ZWNvZGVPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChieVZhbEluZm8tPnN0dWJJ
bmZvICYmIGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgpICE9IGV4aXN0aW5nQXRvbWljU3RyaW5n
KQorICAgICAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT50b29rU2xvd1BhdGggPSB0cnVl
OwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChzdWJzY3JpcHQuaXNV
SW50MzIoKSkgeworICAgICAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0
KCkpOworICAgICAgICBieVZhbEluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CisKICAgICAgICAg
dWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigpOwogICAgICAgICBpZiAoaXNKU1N0cmlu
ZyhiYXNlVmFsdWUpKSB7CiAgICAgICAgICAgICBpZiAoYXNTdHJpbmcoYmFzZVZhbHVlKS0+Y2Fu
R2V0SW5kZXgoaSkpIHsKICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJl
c3MoZXhlYy0+Y29kZUJsb2NrKCksIHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlv
bkdldEJ5VmFsU3RyaW5nKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGFzU3RyaW5nKGJhc2VW
YWx1ZSktPmdldEluZGV4KGV4ZWMsIGkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXJy
YXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAgICAgICAgICAgYnlWYWxJbmZvLT5hcnJh
eVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAgICAgIH0gZWxzZSBpZiAoYmFzZVZhbHVl
LmlzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChi
YXNlVmFsdWUpOwogICAgICAgICAgICAgaWYgKG9iamVjdC0+Y2FuR2V0SW5kZXhRdWlja2x5KGkp
KQogICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3QtPmdldEluZGV4UXVpY2tseShpKTsKIAog
ICAgICAgICAgICAgaWYgKCFjYW5BY2Nlc3NBcmd1bWVudEluZGV4UXVpY2tseSgqb2JqZWN0LCBp
KSkKLSAgICAgICAgICAgICAgICBhcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAg
ICAgICAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAg
ICAgICAgIH0KIAogICAgICAgICByZXR1cm4gYmFzZVZhbHVlLmdldChleGVjLCBpKTsKQEAgLTE0
OTMsNzQgKzE0OTYsOTEgQEAgc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEEKICAgICBhdXRvIHByb3Bl
cnR5ID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZXhlYyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIEFTU0VSVChl
eGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgaWYgKGJ5VmFsSW5mby0+c3R1
YkluZm8gJiYgYnlWYWxJbmZvLT5jYWNoZWRJZCAhPSBwcm9wZXJ0eSkKKyAgICAgICAgYnlWYWxJ
bmZvLT50b29rU2xvd1BhdGggPSB0cnVlOworCiAgICAgcmV0dXJuIGJhc2VWYWx1ZS5nZXQoZXhl
YywgcHJvcGVydHkpOwogfQogCiBleHRlcm4gIkMiIHsKICAgICAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZv
KiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBn
ZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5B
ZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0
QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVz
c1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlW
YWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmls
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6
ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBl
eGVjKTsKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFz
ZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNj
cmlwdCk7Ci0gICAgCisKICAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkgJiYgc3Vic2NyaXB0
LmlzSW50MzIoKSkgewogICAgICAgICAvLyBTZWUgaWYgaXQncyB3b3J0aCBvcHRpbWl6aW5nIHRo
aXMgYXQgYWxsLgogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVl
KTsKICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgICAgIHVuc2lnbmVk
IGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7Ci0gICAg
ICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7Ci0gICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZv
ID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwot
ICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7Ci0gICAgICAgIAorICAgICAg
ICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOworICAgICAgICBBU1NF
UlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOworCiAgICAgICAgIGlmIChoYXNPcHRpbWl6YWJs
ZUluZGV4aW5nKG9iamVjdC0+c3RydWN0dXJlKHZtKSkpIHsKICAgICAgICAgICAgIC8vIEF0dGVt
cHQgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVj
dC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGUgPSBq
aXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJlKTsKLSAgICAgICAgICAgIGlmIChhcnJh
eU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgeworICAgICAgICAgICAgaWYgKGFycmF5TW9k
ZSAhPSBieVZhbEluZm8tPmFycmF5TW9kZSkgewogICAgICAgICAgICAgICAgIC8vIElmIHdlIHJl
YWNoZWQgdGhpcyBjYXNlLCB3ZSBnb3QgYW4gaW50ZXJlc3RpbmcgYXJyYXkgbW9kZSB3ZSBkaWQg
bm90IGV4cGVjdCB3aGVuIHdlIGNvbXBpbGVkLgogICAgICAgICAgICAgICAgIC8vIExldCdzIHVw
ZGF0ZSB0aGUgcHJvZmlsZSB0byBkbyBiZXR0ZXIgbmV4dCB0aW1lLgogICAgICAgICAgICAgICAg
IENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICAg
ICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAg
ICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwg
Y29kZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQ
cm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVj
dHVyZSk7CiAKLSAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVHZXRCeVZhbCgmdm0sIGV4ZWMt
PmNvZGVCbG9jaygpLCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQURE
UkVTUyksIGFycmF5TW9kZSk7CisgICAgICAgICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWwo
JnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9S
RVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CiAgICAgICAgICAgICAgICAgZGlkT3B0aW1pemUg
PSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGlm
ICghZGlkT3B0aW1pemUpIHsKICAgICAgICAgICAgIC8vIElmIHdlIHRha2Ugc2xvdyBwYXRoIG1v
cmUgdGhhbiAxMCB0aW1lcyB3aXRob3V0IHBhdGNoaW5nIHRoZW4gbWFrZSBzdXJlIHdlCiAgICAg
ICAgICAgICAvLyBuZXZlciBtYWtlIHRoYXQgbWlzdGFrZSBhZ2Fpbi4gT3IsIGlmIHdlIGZhaWxl
ZCB0byBwYXRjaCBhbmQgd2UgaGF2ZSBzb21lIG9iamVjdAogICAgICAgICAgICAgLy8gdGhhdCBp
bnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1l
cy4gRm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWluZGV4LWludGVy
Y2VwdGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJhdGlvbnMgd29ydGggb2YKICAgICAg
ICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92
YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQ
YXRoQ291bnQgPj0gMTAKKyAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3Vu
dCA+PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUlu
Zm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBvcHRpbWl6
ZS4KICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29k
ZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25Q
dHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFs
dWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5f
QUREUkVTUykpOworCisgICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpICYmIChzdWJzY3JpcHQu
aXNTeW1ib2woKSB8fCBzdWJzY3JpcHQuaXNTdHJpbmcoKSkpIHsKKyAgICAgICAgY29uc3QgSWRl
bnRpZmllciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3JpcHQudG9Qcm9wZXJ0eUtleShleGVjKTsKKwor
ICAgICAgICBpZiAoIXN1YnNjcmlwdC5pc1N0cmluZygpIHx8ICFwYXJzZUluZGV4KHByb3BlcnR5
TmFtZSkpIHsKKyAgICAgICAgICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZz
ZXQoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOworICAg
ICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoJnZtLCBleGVjLT5jb2Rl
QmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyks
IHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChi
YXNlVmFsdWUpOworICAgICAgICBib29sIGhhc1Jlc3VsdCA9IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShoYXNSZXN1bHQgPyBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSkgOiBq
c1VuZGVmaW5lZCgpKTsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4
ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VS
X1JFVFVSTl9BRERSRVNTKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQotICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVk
UHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQ
cm9maWxlKQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4
ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbElu
Zm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xNTczLDE2ICsxNTkzLDE0IEBAIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdChFeGVj
U3RhdGUqIGV4ZWMsCiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7
CiAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgdW5zaWduZWQgYnl0ZWNvZGVP
ZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKLSAgICBBU1NFUlQoYnl0
ZWNvZGVPZmZzZXQpOwotICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2Nr
KCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwotICAgIEFTU0VSVCghYnlWYWxJ
bmZvLnN0dWJSb3V0aW5lKTsKKyAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zm
c2V0KCkpOworICAgIEFTU0VSVCghYnlWYWxJbmZvLT5zdHViUm91dGluZSk7CiAgICAgCiAgICAg
aWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcob2JqZWN0LT5zdHJ1Y3R1cmUodm0pKSkgewogICAg
ICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlN
b2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKG9iamVjdC0+c3RydWN0dXJlKHZtKSk7Ci0g
ICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgewotICAgICAgICAg
ICAgSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCks
ICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlN
b2RlKTsKKyAgICAgICAgaWYgKGFycmF5TW9kZSAhPSBieVZhbEluZm8tPmFycmF5TW9kZSkgewor
ICAgICAgICAgICAgSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KCZ2bSwgZXhlYy0+Y29k
ZUJsb2NrKCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1Mp
LCBhcnJheU1vZGUpOwogICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0cnVlOwogICAgICAgICB9
CiAgICAgfQpAQCAtMTU5MywxMCArMTYxMSwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLAog
ICAgICAgICAvLyB0aGF0IGludGVyY2VwdHMgaW5kZXhlZCBnZXQsIHRoZW4gZG9uJ3QgZXZlbiB3
YWl0IHVudGlsIDEwIHRpbWVzLiBGb3IgY2FzZXMKICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5v
bi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdv
cnRoIG9mCiAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhl
IGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICBpZiAoKytieVZhbEluZm8u
c2xvd1BhdGhDb3VudCA+PSAxMAorICAgICAgICBpZiAoKytieVZhbEluZm8tPnNsb3dQYXRoQ291
bnQgPj0gMTAKICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8o
KS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3Ra
ZXJvKCkpIHsKICAgICAgICAgICAgIC8vIERvbid0IGV2ZXIgdHJ5IHRvIG9wdGltaXplLgotICAg
ICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBS
ZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlv
bkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMpKTsgCisgICAgICAgICAgICBjdGlQYXRjaENhbGxC
eVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JF
VFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2Vu
ZXJpYykpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNjA1LDExICsxNjIzLDExIEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVs
dChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1
ZShKU1ZhbHVlOjpKU1RydWUpKTsKIAogICAgIGlmICghY2FuQWNjZXNzQXJndW1lbnRJbmRleFF1
aWNrbHkoKm9iamVjdCwgaW5kZXgpKQotICAgICAgICBhcnJheVByb2ZpbGUtPnNldE91dE9mQm91
bmRzKCk7CisgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG9iamVjdC0+aGFzUHJvcGVy
dHkoZXhlYywgaW5kZXgpKSk7CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xNjI1LDExICsxNjQz
LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFBy
b3BlcnR5R2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNWYWx1ZShKU1ZhbHVlOjpKU1RydWUpKTsKIAogICAgIGlmICghY2FuQWNjZXNzQXJn
dW1lbnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaW5kZXgpKQotICAgICAgICBhcnJheVByb2ZpbGUt
PnNldE91dE9mQm91bmRzKCk7CisgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRP
dXRPZkJvdW5kcygpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG9iamVj
dC0+aGFzUHJvcGVydHkoZXhlYywgc3Vic2NyaXB0LmFzVUludDMyKCkpKSk7CiB9CiAgICAgCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTdWJzY3JpcHQpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdl
dEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQog
ewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcigmdm0sIGV4ZWMpOwpAQCAtMTY0NCwxMCArMTY2Miw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgcmVzdWx0ID0gYmFzZVZhbHVlLmdl
dChleGVjLCBpKTsKICAgICAgICAgICAgIGlmICghaXNKU1N0cmluZyhiYXNlVmFsdWUpKSB7Ci0g
ICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFz
Qnl0ZWNvZGVPZmZzZXQoKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQp
OwotICAgICAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2Nr
KCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwotICAgICAgICAgICAgICAgIGN0
aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhleGVjLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVz
c1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihieVZhbEluZm8uc3R1YlJvdXRp
bmUgPyBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXpl
KSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNl
dCgpKTsKKyAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+
Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rp
b25QdHIoYnlWYWxJbmZvLT5zdHViUm91dGluZSA/IG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyA6
IG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmlu
ZGV4IGNhY2ZmMmNkOWJkMmFhMGJmN2U3MzBjZmRlMGYxMzBmYzgyNjlkZDguLmM2ZDI4YzZhM2Zk
ZDNlNmQ5ODUwODgzNzU1OWU1MTA5MjU1YWI4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5oCkBAIC01OCw2ICs1OCw3IEBAIGV4dGVybiAiQyIgewogICAgIEE6
IEpTQXJyYXkqCiAgICAgQWFwOiBBcnJheUFsbG9jYXRpb25Qcm9maWxlKgogICAgIEFwOiBBcnJh
eVByb2ZpbGUqCisgICAgQnk6IEJ5VmFsSW5mbyoKICAgICBDOiBKU0NlbGwqCiAgICAgQ2I6IENv
ZGVCbG9jayoKICAgICBDbGk6IENhbGxMaW5rSW5mbyoKQEAgLTExMyw2ICsxMTQsNyBAQCB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkkpKEV4
ZWNTdGF0ZSosIEVuY29kZWRKUwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUpJZGMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBjb25z
dCBJZGVudGlmaWVyKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpK
X0pJVE9wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJh
dGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBB
cnJheVByb2ZpbGUqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpf
SklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUpzc1opKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgaW50MzJfdCk7
CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9F
SlApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCB2b2lkKik7CiB0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FUCkoRXhlY1N0YXRlKiwgdm9p
ZCopOwpAQCAtMTk1LDYgKzE5Nyw3IEBAIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9K
SVRPcGVyYXRpb25fRUpJZEopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJCiB0eXBlZGVm
IHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSWRKSikoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpKKShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSkFwKShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBBcnJheVByb2ZpbGUqKTsKK3R5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVy
YXRpb25fRUpKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9O
ICgqVl9KSVRPcGVyYXRpb25fRUpQUCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIHZvaWQq
LCB2b2lkKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VK
WkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7
CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKWikoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpOwpAQCAtMjU5LDEwICsyNjIsMTAgQEAgdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RCdWlsZExpc3QoRXhlY1N0
YXRlKiwgU3RydWN0dXJlU3R1YkkKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlk
RGlyZWN0U3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgVW5p
cXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdEJ1aWxkTGlzdChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblJlYWxsb2NhdGVTdG9yYWdlQW5kRmluaXNoUHV0KEV4ZWNTdGF0ZSos
IEpTT2JqZWN0KiwgU3RydWN0dXJlKiwgUHJvcGVydHlPZmZzZXQsIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJy
YXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRp
cmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKikgV1RGX0lO
VEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJp
YyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5B
TDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJ
bmZvKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1
dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSosIEV4ZWNTdGF0ZSop
IFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwoRXhl
Y1N0YXRlKiwgQ2FsbExpbmtJbmZvKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25MaW5rUG9seW1vcnBoaWNDYWxsKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyop
IFdURl9JTlRFUk5BTDsKQEAgLTMxMCwxMSArMzEzLDExIEBAIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZURpZENhbGwoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9m
aWxlV2lsbENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbCkgV1RGX0lOVEVS
TkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGlt
aXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkgV1RGX0lOVEVS
TkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJv
cGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0
eUdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFs
SW5mbyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5B
TDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3Bl
cnR5RGVmYXVsdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOworRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5l
cmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZSwgY29uc3QgSWRlbnRpZmllciopIFdURl9JTlRFUk5BTDsKIEpTQ2VsbCog
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQTmFtZXMoRXhlY1N0YXRlKiwgSlNPYmplY3QqKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3Rh
bmNlT2YoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHByb3RvKSBX
VEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwCmluZGV4IDRlZjA2ZDkyMTNhMmIxZGJmZmJhNGM3YzMzNGQyZjZmMWM0NzkxN2Uu
LjczZDM3ZDk0NDFjODFlODNkZGRmZTFlZGJkNWI0NGVmZjE2ZWRlZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC05OCwxMCArOTgs
MTggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwog
ICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5
UHJvZmlsZTsKLSAgICAKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5h
ZGRCeVZhbEluZm8oKTsKKwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1Qw
LCBwcm9wZXJ0eSwgcmVnVDEpOwotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUlu
dGVnZXIocmVnVDEpOwogCisgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBi
YXNlKTsKKworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGltcGxlbWVudCBwYXRjaGFibGVCcmFu
Y2g2NC4KKyAgICBKdW1wIGlzSW5kZXggPSBlbWl0SnVtcElmSW1tZWRpYXRlSW50ZWdlcihyZWdU
MSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNoYWJsZUp1bXAoKTsKKyAgICBh
ZGRTbG93Q2FzZShub3RJbmRleCk7CisKKyAgICBpc0luZGV4LmxpbmsodGhpcyk7CiAgICAgLy8g
VGhpcyBpcyB0ZWNobmljYWxseSBpbmNvcnJlY3QgLSB3ZSdyZSB6ZXJvLWV4dGVuZGluZyBhbiBp
bnQzMi4gIE9uIHRoZSBob3QgcGF0aCB0aGlzIGRvZXNuJ3QgbWF0dGVyLgogICAgIC8vIFdlIGNo
ZWNrIHRoZSB2YWx1ZSBhcyBpZiBpdCB3YXMgYSB1aW50MzIgYWdhaW5zdCB0aGUgbV92ZWN0b3JM
ZW5ndGggLSB3aGljaCB3aWxsIGFsd2F5cyBmYWlsIGlmCiAgICAgLy8gbnVtYmVyIHdhcyBzaWdu
ZWQgc2luY2UgbV92ZWN0b3JMZW5ndGggaXMgYWx3YXlzIGxlc3MgdGhhbiBpbnRtYXggKHNpbmNl
IHRoZSB0b3RhbCBhbGxvY2F0aW9uCkBAIC0xMTAsNyArMTE4LDYgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIC8vIGV4
dGVuZGluZyBzaW5jZSBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2YWx1ZSBpbiB0
aGUgc2xvdyBjYXNlLgogICAgIHplcm9FeHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdUMSk7CiAKLSAg
ICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOwogICAgIGVtaXRBcnJh
eVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwogICAgIGFuZDMy
KFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QyKTsKIApAQCAtMTQ5LDggKzE1
Niw4IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIAogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKGRzdCk7Ci0gICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5h
cHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9k
ZSwgZG9uZSkpOworCisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21w
aWxhdGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwgYmFkVHlw
ZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdERv
dWJsZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQpAQCAtMTk1LDE1
ICsyMDIsNTIgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2FkKEluc3Ry
dWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICByZXR1cm4gc2xvd0Nhc2VzOwog
fQogCitKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykKK3sKKyAgICAv
LyBiYXNlOiByZWdUMAorICAgIC8vIHByb3BlcnR5OiByZWdUMQorICAgIC8vIHNjcmF0Y2g6IHJl
Z1QzCisKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKwor
ICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMSkpOworICAgIGlm
IChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJy
YW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpzdHJ1Y3R1cmVJ
RE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQ
dHIoQWRkcmVzcyhyZWdUMSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMyk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUo
Tm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1f
dm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVn
VDEsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMyk7CisgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMykpOworICAgICAgICBzbG93Q2FzZXMu
YXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QzLCBTdHJpbmdJbXBsOjpmbGFn
c09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21pYygpKSkpOwor
ICAgIH0KKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDMsIFRy
dXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKworICAgIEpJVEdldEJ5SWRHZW5l
cmF0b3IgZ2VuKAorICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zm
c2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKKyAgICAgICAgSlNWYWx1ZVJl
Z3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVy
YXRlRmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisg
ICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgp
LmxpbmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxl
LCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QwLCBw
cm9wZXJ0eU5hbWUuaW1wbCgpKTsKKyAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRo
QmVnaW4sIGNhbGwpOworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIHJldHVy
biBnZW47Cit9CisKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0
ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAg
ICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBw
cm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgQXJyYXlQcm9m
aWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAg
IEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5z
dHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsg
Ly8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVy
LCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBw
cm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKICAgICBKdW1wIG5vdFN0cmluZyA9
IGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgCkBAIC0yMjQsNyArMjY4LDcgQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdG9yPFNsb3dDYXMKICAgICAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2UsIHJl
Z1QwKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3BlcnR5LCByZWdUMSk7Ci0gICAg
Q2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3Qs
IHJlZ1QwLCByZWdUMSwgcHJvZmlsZSk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIHJlZ1QwLCByZWdUMSwgYnlWYWxJbmZvKTsK
IAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNs
b3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5
VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0yNjMsNiArMzA3
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5
UHJvZmlsZTsKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZh
bEluZm8oKTsKIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1QwLCBwcm9w
ZXJ0eSwgcmVnVDEpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUludGVnZXIo
cmVnVDEpOwpAQCAtMjk5LDggKzM0NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBMYWJlbCBkb25lID0g
bGFiZWwoKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENv
bXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7Ci0K
KyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhi
eVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9k
ZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWND
b250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hh
YmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCkBAIC0zOTksNiAr
NDQzLDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZv
ID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJ
bmZvOwogCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawog
ICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hl
Y2sKQEAgLTQyNCw3ICs0NjksNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVydHksIHJlZ1QxKTsKICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKHZhbHVlLCByZWdUMik7CiAgICAgYm9vbCBpc0RpcmVjdCA9IG1faW50ZXJwcmV0ZXIt
PmdldE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5vcGNvZGUpID09IG9wX3B1dF9ieV92
YWxfZGlyZWN0OwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oaXNEaXJlY3QgPyBvcGVy
YXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMCwgcmVnVDEsIHJl
Z1QyLCBwcm9maWxlKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKGlzRGlyZWN0ID8g
b3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwgOiBvcGVyYXRpb25QdXRCeVZhbCwgcmVnVDAsIHJlZ1Qx
LCByZWdUMiwgYnlWYWxJbmZvKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZh
bEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZh
bENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9
IGNhbGw7CkBAIC05OTksNiArMTA0NCwzNiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRC
eVZhbChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZAogICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5j
dGlvblB0cihvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMpKTsKIH0KIAordm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KQoreworICAgIEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24gPSBtX2NvZGVCbG9jay0+
aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKKworICAg
IEp1bXBMaXN0IGRvbmVDYXNlczsKKyAgICBKdW1wTGlzdCBzbG93Q2FzZXM7CisKKyAgICBKSVRH
ZXRCeUlkR2VuZXJhdG9yIGdlbiA9IGVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChjdXJyZW50SW5z
dHJ1Y3Rpb24sIHByb3BlcnR5TmFtZSwgZG9uZUNhc2VzLCBzbG93Q2FzZXMpOworCisgICAgQ29u
Y3VycmVudEpJVExvY2tlciBsb2NrZXIobV9jb2RlQmxvY2stPm1fbG9jayk7CisgICAgTGlua0J1
ZmZlciBwYXRjaEJ1ZmZlcigqbV92bSwgKnRoaXMsIG1fY29kZUJsb2NrKTsKKyAgICBwYXRjaEJ1
ZmZlci5saW5rKHNsb3dDYXNlcywgQ29kZUxvY2F0aW9uTGFiZWwoTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyOjpjcmVhdGVGcm9tRXhlY3V0YWJsZUFkZHJlc3MocmV0dXJuQWRkcmVzcy52YWx1ZSgpKSku
bGFiZWxBdE9mZnNldChieVZhbEluZm8tPnJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKSk7CisgICAg
cGF0Y2hCdWZmZXIubGluayhkb25lQ2FzZXMsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxB
dE9mZnNldChieVZhbEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7CisgICAgZm9yIChjb25zdCBh
dXRvJiBjYWxsU2l0ZSA6IG1fY2FsbHMpIHsKKyAgICAgICAgaWYgKGNhbGxTaXRlLnRvKQorICAg
ICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhjYWxsU2l0ZS5mcm9tLCBGdW5jdGlvblB0cihjYWxs
U2l0ZS50bykpOworICAgIH0KKyAgICBnZW4uZmluYWxpemUocGF0Y2hCdWZmZXIpOworCisgICAg
YnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAg
IG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlfdmFs
IHdpdGggY2FjaGVkIHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50
ICVwIiwgcHJvcGVydHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEoKSwgdG9DU3RyaW5nKCptX2Nv
ZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKKyAgICBieVZhbEluZm8t
PmNhY2hlZElkID0gcHJvcGVydHlOYW1lOworICAgIGJ5VmFsSW5mby0+c3R1YkluZm8gPSBnZW4u
c3R1YkluZm8oKTsKKworICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9j
ayk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5ub3RJbmRleEp1bXAsIENv
ZGVMb2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkpKTsK
KyAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywg
RnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7Cit9CisKIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5i
ZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggNjA5Y2ExMzg4
MjI3ZGI1YmRhNTM5Mjc1MzAzZGFkZDJkOGIxY2ViYy4uYThkNjlhY2RjZjY3NzQ5NGI4ZWU2MmQx
ZTEyYWI5MmY1ODljZTAwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xNDksMTEgKzE0OSwxMyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBw
cm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9m
aWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAg
IEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAg
IAogICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMywgcmVn
VDIpOwogICAgIAotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEpTQ2VsbChiYXNlLCByZWdUMSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNo
YWJsZUJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMy
VGFnKSk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogICAgIGVtaXRBcnJheVByb2ZpbGlu
Z1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJ
bW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QxKTsKIApAQCAtMTkyLDcgKzE5NCw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVn
VDEsIHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZh
bENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7
CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8o
YnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwgYmFkVHlwZSwgbW9kZSwgcHJv
ZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdENvbnRpZ3VvdXNMb2Fk
KEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGV4cGVj
dGVkU2hhcGUpCkBAIC0yMzYsMTYgKzIzOCw1MyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEFy
cmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQogICAg
IAogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9Ci0gICAgCisKK0pJVEdldEJ5SWRHZW5lcmF0b3Ig
SklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2Vz
LCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQoreworICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kOworCisgICAgLy8gYmFzZTogdGFnKHJlZ1QxKSwgcGF5bG9hZChyZWdU
MCkKKyAgICAvLyBwcm9wZXJ0eTogdGFnKHJlZ1QzKSwgcGF5bG9hZChyZWdUMikKKyAgICAvLyBz
Y3JhdGNoOiByZWdUNAorCisgICAgc2xvd0Nhc2VzLmFwcGVuZChlbWl0SnVtcElmTm90SlNDZWxs
KHJlZ1QzKSk7CisgICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7CisgICAgICAgIHNs
b3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBK
U0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zeW1ib2xTdHJ1Y3R1cmUuZ2V0KCkp
KTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0
ZU5hbWUoKSksIHJlZ1Q0KTsKKyAgICB9IGVsc2UgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5k
KGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1
cmVJRE9mZnNldCgpKSwgbV92bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxv
YWRQdHIoQWRkcmVzcyhyZWdUMiwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksIHJlZ1Q0KTsK
KyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0UHRyKFplcm8sIHJlZ1Q0KSk7Cisg
ICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdDMyKFplcm8sIEFkZHJlc3MocmVnVDQs
IFN0cmluZ0ltcGw6OmZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoU3RyaW5nSW1wbDo6Zmxh
Z0lzQXRvbWljKCkpKSk7CisgICAgfQorICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5v
dEVxdWFsLCByZWdUNCwgVHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSkpOworCisg
ICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3Jp
Z2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAor
ICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdU
MSwgcmVnVDApLCBEb250U3BpbGwpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsK
KworICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIExhYmVsIGNvbGRQYXRoQmVn
aW4gPSBsYWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5saW5rKHRoaXMpOworCisgICAg
Q2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwgb3BlcmF0aW9uR2V0QnlJZE9w
dGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5TmFtZS5p
bXBsKCkpOworICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7
CisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOworCisgICAgcmV0dXJuIGdlbjsKK30KKwog
dm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBp
bnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgYmFzZSA9
IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Ci0gICAgCi0gICAgbGlua1Ns
b3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjaworICAgIEJ5VmFsSW5mbyogYnlW
YWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0u
YnlWYWxJbmZvOworCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8v
IGJhc2UgY2VsbCBjaGVjaworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50
MzIgY2hlY2sKIAogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2Uo
aXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTI2NSw3ICszMDQsNyBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBW
ZWN0b3I8U2xvd0NhcwogICAgIAogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAg
ICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1QzLCByZWdUMik7Ci0gICAgQ2FsbCBjYWxsID0gY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIHJlZ1QxLCByZWdUMCwg
cmVnVDMsIHJlZ1QyLCBwcm9maWxlKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIs
IGJ5VmFsSW5mbyk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVj
dGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpA
QCAtMjc5LDYgKzMxOCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVC
bG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAgCiAgICAgZW1pdExvYWQyKGJhc2UsIHJlZ1QxLCBy
ZWdUMCwgcHJvcGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCkBAIC0zMTQsNyArMzU0LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxD
b21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZz
ZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFw
cGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBh
dGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiBKSVQ6
Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBl
IGluZGV4aW5nU2hhcGUpCkBAIC00MTksNiArNDU5LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJy
YXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxl
OworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5
VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAogICAgIGxpbmtTbG93Q2FzZShp
dGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2Vs
bChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCkBAIC00NTgsNyArNDk5LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDAsIHJlZ1QxKTsK
ICAgICBhZGRDYWxsQXJndW1lbnQocmVnVDEpOwogICAgIGFkZENhbGxBcmd1bWVudChyZWdUMCk7
Ci0gICAgYWRkQ2FsbEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIocHJvZmlsZSkpOworICAgIGFkZENh
bGxBcmd1bWVudChUcnVzdGVkSW1tUHRyKGJ5VmFsSW5mbykpOwogICAgIENhbGwgY2FsbCA9IGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soaXNEaXJlY3QgPyBvcGVyYXRpb25EaXJlY3RQdXRC
eVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsKTsKICNlbHNlCiAgICAgLy8gVGhlIHJlZ2lzdGVyIHNl
bGVjdGlvbiBiZWxvdyBpcyBjaG9zZW4gdG8gcmVkdWNlIHJlZ2lzdGVyIHN3YXBwaW5nIG9uIEFS
TS4KQEAgLTQ2Niw3ICs1MDcsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRM
b2FkKGJhc2UsIHJlZ1QyLCByZWdUMSk7CiAgICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1QzLCBy
ZWdUMCk7CiAgICAgZW1pdExvYWQodmFsdWUsIHJlZ1Q1LCByZWdUNCk7Ci0gICAgQ2FsbCBjYWxs
ID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3Bl
cmF0aW9uUHV0QnlWYWwsIHJlZ1QyLCByZWdUMSwgcmVnVDMsIHJlZ1QwLCByZWdUNSwgcmVnVDQs
IHByb2ZpbGUpOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oaXNEaXJlY3QgPyBvcGVy
YXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMiwgcmVnVDEsIHJl
Z1QzLCByZWdUMCwgcmVnVDUsIHJlZ1Q0LCBieVZhbEluZm8pOwogI2VuZGlmCiAKICAgICBtX2J5
VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdl
dCA9IHNsb3dQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3ltYm9sLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCBl
NTc5MGQ3ODcyMjZiZWE3NjAyNGM5ZDFkNjZhNjc2MGY2NGRlNWEyLi44M2Y1ZGUyNDg1MmJjMzc4
ZWUwYTc3MDM5ZjQ2MzE4MjVmZGRkYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
eW1ib2wuaApAQCAtNzksNiArNzksOCBAQCBjbGFzcyBTeW1ib2wgZmluYWwgOiBwdWJsaWMgSlND
ZWxsIHsKICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
KSBjb25zdDsKICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7CiAKKyAgICBz
dGF0aWMgc2l6ZV90IG9mZnNldE9mUHJpdmF0ZU5hbWUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoU3ltYm9sLCBtX3ByaXZhdGVOYW1lKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0NlbGwqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNv
bnN0cnVjdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjNTg1MTYwMmU5MzRiMzM2NjhhZWQyY2ZmNGRkY2I3
ODc2ZWUxODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY29uc3RydWN0b3IuanMKQEAgLTAsMCArMSwy
MyBAQAordmFyIHN5bWJvbCA9ICJAQHNwZWNpZXMiOworZnVuY3Rpb24gSGVsbG8oKSB7Cit9CisK
K09iamVjdC5kZWZpbmVQcm9wZXJ0eShIZWxsbywgc3ltYm9sLCB7CisgICAgZ2V0OiBmdW5jdGlv
biAoKSB7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KK30pOworCitIZWxsby5wcm90b3R5
cGUuZ2VuZXJhdGUgPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVj
dG9yW3N5bWJvbF0oKTsKK307CisKK2Z1bmN0aW9uIG9rKCkgeworICAgIHZhciBvYmplY3QgPSBu
ZXcgSGVsbG8oKTsKKyAgICBpZiAoIShvYmplY3QuZ2VuZXJhdGUoKSBpbnN0YW5jZW9mIEhlbGxv
KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgaW5zdGFuY2UiKTsKK30KK25vSW5saW5l
KG9rKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIG9rKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctZXhpdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhYTI2MmQ2NGE2NjE0OTY0
NjY5YWI3NGNiMmYwMWZhNGVkODAyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZXhpdC5qcwpAQCAt
MCwwICsxLDM0IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZh
bHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQor
eworICAgIHJldHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRCeVZhbCk7CisKK2Z1
bmN0aW9uIGdldFN0cjEoKQoreworICAgIHJldHVybiAiaGVsbG8iOworfQorbm9JbmxpbmUoZ2V0
U3RyMSk7CisKK2Z1bmN0aW9uIGdldFN0cjIoKQoreworICAgIHJldHVybiAiaGVsbG8iOworfQor
bm9JbmxpbmUoZ2V0U3RyMik7CisKK3ZhciBvYmplY3QgPSB7CisgICAgaGVsbG86IDQyCit9Owor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFsKG9i
amVjdCwgaSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7CitzaG91bGRC
ZShnZXRCeVZhbChvYmplY3QsIHsgdG9TdHJpbmcoKSB7IHJldHVybiAnaGVsbG8nOyB9IH0pLCA0
Mik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRC
eVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigpKSwgNDIpOwor
c2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCB7IHRvU3RyaW5nKCkgeyByZXR1cm4gJ2hlbGxvJzsg
fSB9KSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTgxM2E3ZTE0MGQzODY2NTNmYmMzNTRjNTBlYWQ1OGUxMjE5ZDNhNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanMKQEAgLTAsMCArMSwzMyBAQAorZnVuY3Rpb24gc2hv
dWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1
bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKK3sKKyAgICByZXR1cm4gb2JqZWN0W25hbWVd
OworfQorbm9JbmxpbmUoZ2V0QnlWYWwpOworCit2YXIgdmFsdWUgPSAnbG8nOworCitmdW5jdGlv
biBnZXRTdHIxKCkKK3sKKyAgICByZXR1cm4gImhlbCIgKyB2YWx1ZTsKK30KK25vSW5saW5lKGdl
dFN0cjEpOworCitmdW5jdGlvbiBnZXRTdHIyKCkKK3sKKyAgICByZXR1cm4gImhlbGxvIjsKK30K
K25vSW5saW5lKGdldFN0cjIpOworCit2YXIgb2JqZWN0ID0geworICAgIGhlbGxvOiA0MiwKKyAg
ICB3b3JsZDogNTAKK307CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBz
aG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3Ry
MigpKSwgNDIpOworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCAnd29ybGQnKSwgNTApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWdldHRlci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODU4ZWMwYTg2ZGI5
NTRkODQ3ZjZiOGY3NjJkMjk2YmVkY2ViMWJmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIu
anMKQEAgLTAsMCArMSwxNiBAQAorCit2YXIgb2JqZWN0ID0geworICAgIGdldCBoZWxsbygpIHsK
KyAgICAgICAgcmV0dXJuIDQyOworICAgIH0KK307CisKK2Z1bmN0aW9uIG9rKCkgeworICAgIHZh
ciB2YWx1ZSA9ICdoZWxsbyc7CisgICAgaWYgKG9iamVjdFt2YWx1ZV0gKyAyMCAhPT0gNjIpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigpOworfQorbm9JbmxpbmUob2spOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZGIzM2Q5YmVjYjE0YWQyMDViODc1NWJkZmUxZjk1YmIzOTdiYjQ4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLmpzCkBAIC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFj
dHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBn
ZXRCeVZhbChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30KK25v
SW5saW5lKGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3RyMSgpCit7CisgICAgcmV0dXJuICJo
ZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIxKTsKKworZnVuY3Rpb24gZ2V0U3RyMigpCit7Cisg
ICAgcmV0dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIyKTsKKwordmFyIG9iamVjdCA9
IHsKKyAgICBoZWxsbzogNDIsCisgICAgd29ybGQ6IDUwCit9OworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0g
MCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVj
dCwgJ3dvcmxkJyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1
Y3Rvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yODk1YzI2NDUxZDI1N2E5N2EyZGIzZWM1ODkyOWI5ZDU1MzQz
MjUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzCkBAIC0wLDAgKzEsMjMgQEAK
K3ZhciBzeW1ib2wgPSBTeW1ib2woKTsKK2Z1bmN0aW9uIEhlbGxvKCkgeworfQorCitPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoSGVsbG8sIHN5bWJvbCwgeworICAgIGdldDogZnVuY3Rpb24gKCkgewor
ICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9Cit9KTsKKworSGVsbG8ucHJvdG90eXBlLmdlbmVy
YXRlID0gZnVuY3Rpb24gKCkgeworICAgIHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcltzeW1i
b2xdKCk7Cit9OworCitmdW5jdGlvbiBvaygpIHsKKyAgICB2YXIgb2JqZWN0ID0gbmV3IEhlbGxv
KCk7CisgICAgaWYgKCEob2JqZWN0LmdlbmVyYXRlKCkgaW5zdGFuY2VvZiBIZWxsbykpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGluc3RhbmNlIik7Cit9Citub0lubGluZShvayk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWV4aXQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtZXhpdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGNkY2I2NzZkOTRlNDZiNmMxMDFhOGE3
N2QwMGI2NjQ0YThjMTBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanMKQEAgLTAsMCArMSwz
OCBAQAordmFyIHN5bWJvbDEgPSBTeW1ib2woKTsKK3ZhciBzeW1ib2wyID0gT2JqZWN0LmdldE93
blByb3BlcnR5U3ltYm9scyh7IFtzeW1ib2wxXTogNDIgfSlbMF07CisKK2Z1bmN0aW9uIHNob3Vs
ZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5j
dGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsK
K30KK25vSW5saW5lKGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3ltMSgpCit7CisgICAgcmV0
dXJuIHN5bWJvbDE7Cit9Citub0lubGluZShnZXRTeW0xKTsKKworZnVuY3Rpb24gZ2V0U3ltMigp
Cit7CisgICAgcmV0dXJuIHN5bWJvbDI7Cit9Citub0lubGluZShnZXRTeW0yKTsKKwordmFyIG9i
amVjdCA9IHsKKyAgICBbc3ltYm9sMV06IDQyLAorICAgIGhlbGxvOiA1MAorfTsKKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkg
JSAyID09PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOworc2hvdWxkQmUoZ2V0QnlW
YWwob2JqZWN0LCAnaGVsbG8nKSwgNTApOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN5bTEo
KSA6IGdldFN5bTIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ2hlbGxvJyks
IDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1nZXR0ZXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVyLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcw
MzVlNGIwMzhhNDY1ZDQzZWJjMjhlNWNmNDgxOWI1OWU2NjY4N2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtZ2V0dGVyLmpzCkBAIC0wLDAgKzEsMjMgQEAKKwordmFyIG9iamVjdCA9IHsKKyAgICBnZXQg
aGVsbG8oKSB7CisgICAgICAgIHJldHVybiA0MjsKKyAgICB9Cit9OworCit2YXIgc3ltYm9sID0g
U3ltYm9sKCk7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIHN5bWJvbCwgeworICAg
IGdldDogZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gNDI7CisgICAgfQorfSk7CisKK2Z1
bmN0aW9uIG9rKCkgeworICAgIGlmIChvYmplY3Rbc3ltYm9sXSArIDIwICE9PSA2MikKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCk7Cit9Citub0lubGluZShvayk7CisKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJjODM0ZWIyNmJlMzI2ZTFjOTE4NDkxZjBlMTliN2ZhMzhiYjA5MDMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wuanMKQEAgLTAsMCArMSwzMyBAQAordmFyIHN5bWJvbDEgPSBTeW1ib2woKTsK
K3ZhciBzeW1ib2wyID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh7IFtzeW1ib2wxXTog
NDIgfSlbMF07CisKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBp
ZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFs
dWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUpCit7
CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30KK25vSW5saW5lKGdldEJ5VmFsKTsKKworZnVu
Y3Rpb24gZ2V0U3ltMSgpCit7CisgICAgcmV0dXJuIHN5bWJvbDE7Cit9Citub0lubGluZShnZXRT
eW0xKTsKKworZnVuY3Rpb24gZ2V0U3ltMigpCit7CisgICAgcmV0dXJuIHN5bWJvbDI7Cit9Citu
b0lubGluZShnZXRTeW0yKTsKKwordmFyIG9iamVjdCA9IHsKKyAgICBbc3ltYm9sMV06IDQyLAor
ICAgIGhlbGxvOiA1MAorfTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAg
IHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0xKCkgOiBnZXRT
eW0yKCkpLCA0Mik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2I2ZTdhNGJhOGFiYjI5NWI0ZDUxMzEwNTI0MWNlZmMzZDgx
MGZkZi4uYTY2MWQzN2E0ZDE2NzJkMjBkNGM2MTgyM2I4MDhkNjBjNjQ1YmVhOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDgzIEBACisyMDE1LTA4LTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgorCisgICAgICAgIEludHJvZHVjZSBnZXRfYnlfaWQgbGlrZSBJQyBpbnRvIGdldF9i
eV92YWwgd2hlbiB0aGUgZ2l2ZW4gbmFtZSBpcyBTdHJpbmcgb3IgU3ltYm9sCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc0ODAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3ludGhldGljIGJlbmNo
bWFya3MgdGhhdCByZXBsYWNlcyBub3JtYWwgcHJvcGVydHkgbG9hZCB3aXRoIHN5bWJvbC9zdHJp
bmcga2V5ZWQgbG9hZC4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1m
cm9tLXRyeS1ibG9jay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1z
ZWxmLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYt
b3ItcHJvdG8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJv
bS10cnktYmxvY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbDogQWRkZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbDog
QWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3Rv
LW9yLXNlbGYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJv
dG8uaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKEEpOgor
ICAgICAgICAoQik6CisgICAgICAgIChDKToKKyAgICAgICAgKEQpOgorICAgICAgICAoRSk6Cisg
ICAgICAgIChGKToKKyAgICAgICAgKEcpOgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoRm9vKToKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90
by5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKEZv
byk6CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qczogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNo
YWluLWZyb20tdHJ5LWJsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKEEpOgorICAgICAgICAoQik6
CisgICAgICAgIChDKToKKyAgICAgICAgKEQpOgorICAgICAgICAoRSk6CisgICAgICAgIChGKToK
KyAgICAgICAgKEcpOgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6Cisg
ICAgICAgIChiYXIpOgorICAgICAgICAoRm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKEZvbyk6CisKIDIwMTUt
MDgtMDQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IHNjcmlwdCBwYXRocyBpbiB0aGVzZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2NmNDNhZmEwN2QzYzhlMGYxNzg5MmVlZGE3OTI3
ZTIxYjgxOGIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiMzdjNTAw
MDBjMGExZDFlMmYyNjI4NTdmNzliNGVjNDE0N2UwYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA0ODJjNDUwZDk1NWFlOTk2NGVlMjViZmYyYjVmYzBjYjY2ZjQ1MzUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApA
QCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5ZWYxNDE1NzU4NGNhNjE2MDY0Njg3NTk4Y2Zi
ZDRkYjc5N2ZlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hh
aW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMTZhNjY3Mjk3MDM2YTQ1YzVmMzJiNzAxYzBiYzdlZmIyZmJkYTE4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitK
U1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jaworCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWlu
LWZyb20tdHJ5LWJsb2NrLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmM5NjNh
MDEyYjAyY2YzNjE0NDVmNjdjNmVjYmQ4Y2QxOGIwYjJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5
LWJsb2NrLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRy
eS1ibG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVlYzBmYzcwZWU3YTI0NTU1ZmIwZmQ4YWJiNmEzZTQ2YTdmZDUwNDQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhj
ZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzZmNThkNDE1N2I1MWJiOTg1MzgyZGM4MWE2ZDk0OGZi
OWRiMDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCkBAIC0wLDAg
KzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1z
ZWxmLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZWY5MmM5MDc5Y2MyZGJkZGFiZTRjYjY1M2Iz
MjNmZmZlNTM5NzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93
bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1w
cm90by1vci1zZWxmLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2YWI2MTFiZDQ1ZGUzMDQy
NmY2YmI1NGJlNjk1MzkwYjczMGEwODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIxYWE1N2VjYWI2YTFhMWE3ODRkYjVlODg0MmZl
MmJhZGI4NWMyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlv
biB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1s
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
Mzc1MWI2NGU4MjJhYjJkZWM0N2FkOWE5ZjQ2NjhlMzc5ZTFmMDc2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDEy
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MjE3MTM0Zjk4Mjg5
MDQzOTU2ODJmODg3MDZkMmM2N2FkODhiNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
c2VsZi1vci1wcm90bworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBl
eGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA0
YTZiOTljNWI1ZTMwNmQ4M2I2ZjI1MzQyM2EwZmY4MTM1OGUwNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXBy
b3RvLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTAwYzVkOGI4ZjhjZTI4NTYxYzdiNTEwYTc4M2Q2NTEy
NTNiZGUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzOTBlZDk1MmNl
ZWUyYTIwZWZlYzRkYjEwOTM1M2I3NzNiMjhmYmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA0ODJjNDUwZDk1NWFlOTk2NGVlMjViZmYyYjVmYzBjYjY2ZjQ1MzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAt
MCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5ZWYxNDE1NzU4NGNhNjE2MDY0Njg3NTk4Y2ZiZDRk
Yjc5N2ZlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5o
dG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4t
ZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jNzU0YmIwZThlNTY4YzhkMDIwNmU2NDllNTI5NzRiM2Y5ZTQyYTQxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jaworCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZy
b20tdHJ5LWJsb2NrLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTc1Zjk5Mjgw
ZTcyMzM1YzJiNTRkM2Q5M2YwODYxMTgzMTk3NDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJs
b2NrLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1i
bG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQzMTQ5NGE5YjQ1NjJmOWUxNjkwNDc4OTdhYjYwNjM1ZGYxMTQ4NWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEw
IEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0
aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kOWJmYWNhN2E1ZTRiNzI4OGVjZWQyNmU4NTM2MGQ1NmUwNjdj
N2ExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCkBAIC0wLDAgKzEs
MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxm
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTVkMjYyY2VhNTIwNWNmNWYzY2I2MzdhNzg4ZGEz
MmIwZTNhNmM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90
by1vci1zZWxmLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ODE1Y2UzM2U4YWM3NzUxMDZk
YWIyYzJhN2I0MjYxNGY5MzhjZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sCkBAIC0wLDAg
KzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ2MDVjMDc2MWMyMDhiZWZkNjI5ZWJkMjJhNGZkZjlm
ZTg0OGMzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0
aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWNl
NDYyNDVlODg2YmUyN2Y1MTA2NmE1MTczYzQ5NTFmMmEyMGQ3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApAQCAtMCwwICsxLDEyIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NjY5MTA4YmFjMWNlNmQx
ZWE4NTA4MDM0NDUzODFjZGM1ZGFmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2Vs
Zi1vci1wcm90bworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNl
cHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY1ZjNk
NzA0ODFhY2NhYWYwNWEwMDAwNGE1ZmU1Mjk2YTMyZWJkYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3Rv
Lmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyNTg5ZjFlYmI4YzEyZGUx
Y2EwM2Y4MTIyZmQ0MjI1NDMxMDE3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMTQgQEAKKyhm
dW5jdGlvbigpIHsKKyAgICB2YXIgYSA9ICdhJywgbCA9ICdsJzsKKyAgICB2YXIgbyA9IHtbYV06
MX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307CisgICAgdmFyIHJlc3VsdCA9IDA7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49
IG9bYV07CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9
IHRtcDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNTk0MDFkN2Y1NzI4NDcxNGZlN2QzZDVl
MDQ1MjExYmQ0N2MxNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24uanMKQEAgLTAsMCArMSwxNCBAQAorKGZ1bmN0aW9uKCkgeworICAg
IHZhciBhID0gJ2EnLCBiID0gJ2InLCBjID0gJ2MnLCBkID0gJ2QnLCBlID0gJ2UnLCBmID0gJ2Yn
LCBnID0gJ2cnLCBoID0gJ2gnLCBpID0gJ2knLCBqID0gJ2onLCBrID0gJ2snLCBsID0gJ2wnOwor
ICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtn
XTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcCA9IHtbYV06Miwg
W2JdOjMsIFtjXTo0LCBbZF06NSwgW2VdOjYsIFtmXTo3LCBbZ106OCwgW2hdOjksIFtpXToxMCwg
W2pdOjExLCBba106MTIsIFtsXToxM307CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2
YXIgaW5kZXggPSAwOyBpbmRleCA8IDEwMDAwMDA7ICsraW5kZXgpIHsKKyAgICAgICAgcmVzdWx0
ICs9IG9bYV0gXiBvW2JdIF4gb1tjXSBeIG9bZF0gXiBvW2VdIF4gb1tmXSBeIG9bZ10gXiBvW2hd
IF4gb1tpXSBeIG9bal0gXiBvW2tdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAgICAgICAgbyA9
IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gNjUwMDAwMCkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJs
b2NrLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRmOTcwZmVlMjRiMGVmNjU1MjkyY2FlZGE0MWM2YmViMDBlMGQ0
MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzCkBAIC0wLDAg
KzEsNDkgQEAKK3ZhciBmID0gJ2YnOworCitmdW5jdGlvbiBBKCkgeyB9CisKK0EucHJvdG90eXBl
ID0ge1tmXTo0Mn07CisKK2Z1bmN0aW9uIEIoKSB7IH0KKworQi5wcm90b3R5cGUgPSBuZXcgQSgp
OworCitmdW5jdGlvbiBDKCkgeyB9CisKK0MucHJvdG90eXBlID0gbmV3IEIoKTsKKworZnVuY3Rp
b24gRCgpIHsgfQorCitELnByb3RvdHlwZSA9IG5ldyBDKCk7CisKK2Z1bmN0aW9uIEUoKSB7IH0K
KworRS5wcm90b3R5cGUgPSBuZXcgRCgpOworCitmdW5jdGlvbiBGKCkgeyB9CisKK0YucHJvdG90
eXBlID0gbmV3IEUoKTsKKworZnVuY3Rpb24gRygpIHsgfQorCitHLnByb3RvdHlwZSA9IG5ldyBG
KCk7CisKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9
IDA7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgICAgICAgICAg
cmVzdWx0ICs9IG9bZl07CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICByZXR1cm4gNTI7CisgICAgfQorfQorCit2YXIgcmVzdWx0ID0gMDsKKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgcmVzdWx0ICs9IGZvbyhuZXcgRygpKTsK
KworaWYgKHJlc3VsdCAhPSA0MjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI4OGFh
NWJiYTEyZWYwMzk5ZjgxZjkwNGNmZGJlNDhkMzhkOWMyYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0wLDAgKzEsOSBAQAorKGZ1bmN0aW9u
KCkgeworICAgIHZhciBhID0gJ2EnLCBiID0gJ2InLCBjID0gJ2MnLCBkID0gJ2QnLCBlID0gJ2Un
LCBmID0gJ2YnLCBnID0gJ2cnLCBoID0gJ2gnLCBpID0gJ2knLCBqID0gJ2onLCBrID0gJ2snOwor
ICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtn
XTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsK
KyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkKKyAgICAg
ICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIHwgb1tjXSBeIG9bZF0gJiBvW2VdIF4gb1tmXSB8IG9b
Z10gXiBvW2hdICYgb1tpXSBeIG9bal0gfCBvW2tdOworICAgIGlmIChyZXN1bHQgIT0gMTUwMDAw
MDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWY3NDkzYjk4ZjYxMGQxYzRhZDliODNlZWNmNjFhNjdmOWVjYWFiOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9
ICdmJzsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rp
b24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDIwMDAwMDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyAr
K2opCisgICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4g
cmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0
MjsKKwordmFyIHJlc3VsdCA9IGJhcihbbmV3IEZvbygpLCB7W2ZdOjI0fV0pOworCitpZiAocmVz
dWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45OTFkY2UzYzI1N2Q4ZDlkODA0ZTU0MGE4MDhmNjg0YjQ5N2Yz
MjkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAgKzEsMjIgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2
YXIgYSA9ICdhJzsKKyAgICB2YXIgbCA9ICdsJzsKKyAgICB2YXIgYiA9ICdiJzsKKyAgICB2YXIg
YyA9ICdjJzsKKworICAgIHZhciBvID0ge1thXToxfTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2xd
OjEzfTsKKyAgICB2YXIgcSA9IHtbYV06MywgW2JdOjN9OworICAgIHZhciByID0ge1thXTo0LCBb
Y106NX07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07CisgICAgICAgIHZhciB0bXAgPSBv
OworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSByOworICAgICAg
ICByID0gdG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYt
b3ItcHJvdG8uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJlYzEwN2NhN2Zh
MzgwZjFiYzk2ZWY3ZTlhZTNhZmNkNTExNzJjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1v
ci1wcm90by5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9ICdmJzsKKworZnVuY3Rpb24gZm9v
KG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2YXIg
cmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgeworICAg
ICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisgICAgICAgICAgICByZXN1
bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlv
biBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9IGJh
cihbe1tmXToyNH0sIG5ldyBGb28oKV0pOworCitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAg
ICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NWQz
MmFmNTAzMmNkMDQ1ODU3ODQ5NWMzNzc5OTI1OTg1ZjMwN2UKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCkBAIC0wLDAg
KzEsMTQgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgpLCBsID0gU3ltYm9s
KCk7CisgICAgdmFyIG8gPSB7W2FdOjF9OworICAgIHZhciBwID0ge1thXToyLCBbbF06MTN9Owor
ICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytp
KSB7CisgICAgICAgIHJlc3VsdCBePSBvW2FdOworICAgICAgICB2YXIgdG1wID0gbzsKKyAgICAg
ICAgbyA9IHA7CisgICAgICAgIHAgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gMCkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmJl
OTcxYjYxNjM1OTRjZTIwNDNlMjc5NTUwMDdlODMwYjA1YjhlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCkBAIC0wLDAgKzEsMTQg
QEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgpLCBiID0gU3ltYm9sKCksIGMg
PSBTeW1ib2woKSwgZCA9IFN5bWJvbCgpLCBlID0gU3ltYm9sKCksIGYgPSBTeW1ib2woKSwgZyA9
IFN5bWJvbCgpLCBoID0gU3ltYm9sKCksIGkgPSBTeW1ib2woKSwgaiA9IFN5bWJvbCgpLCBrID0g
U3ltYm9sKCksIGwgPSBTeW1ib2woKTsKKyAgICB2YXIgbyA9IHtbYV06MSwgW2JdOjIsIFtjXToz
LCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06MTAsIFtrXTox
MX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtiXTozLCBbY106NCwgW2RdOjUsIFtlXTo2LCBbZl06
NywgW2ddOjgsIFtoXTo5LCBbaV06MTAsIFtqXToxMSwgW2tdOjEyLCBbbF06IDEzfTsKKyAgICB2
YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsg
KytpbmRleCkgeworICAgICAgICByZXN1bHQgKz0gb1thXSBeIG9bYl0gXiBvW2NdIF4gb1tkXSBe
IG9bZV0gXiBvW2ZdIF4gb1tnXSBeIG9baF0gXiBvW2ldIF4gb1tqXSBeIG9ba107CisgICAgICAg
IHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHRtcDsKKyAgICB9Cisg
ICAgaWYgKHJlc3VsdCAhPSA2NTAwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9j
ay5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y4YWM3OGE4NjA0
MzBkYjY3YWNjNGVlMzc3MGQzMjczMzgwMmUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4t
ZnJvbS10cnktYmxvY2suanMKQEAgLTAsMCArMSw0OSBAQAordmFyIGYgPSBTeW1ib2woIkNvY29h
Iik7CisKK2Z1bmN0aW9uIEEoKSB7IH0KKworQS5wcm90b3R5cGUgPSB7W2ZdOjQyfTsKKworZnVu
Y3Rpb24gQigpIHsgfQorCitCLnByb3RvdHlwZSA9IG5ldyBBKCk7CisKK2Z1bmN0aW9uIEMoKSB7
IH0KKworQy5wcm90b3R5cGUgPSBuZXcgQigpOworCitmdW5jdGlvbiBEKCkgeyB9CisKK0QucHJv
dG90eXBlID0gbmV3IEMoKTsKKworZnVuY3Rpb24gRSgpIHsgfQorCitFLnByb3RvdHlwZSA9IG5l
dyBEKCk7CisKK2Z1bmN0aW9uIEYoKSB7IH0KKworRi5wcm90b3R5cGUgPSBuZXcgRSgpOworCitm
dW5jdGlvbiBHKCkgeyB9CisKK0cucHJvdG90eXBlID0gbmV3IEYoKTsKKworZnVuY3Rpb24gZm9v
KG8pIHsKKyAgICB0cnkgeworICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgICAgICByZXN1bHQgKz0gb1tmXTsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVybiA1
MjsKKyAgICB9Cit9CisKK3ZhciByZXN1bHQgPSAwOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDA7ICsraSkKKyAgICByZXN1bHQgKz0gZm9vKG5ldyBHKCkpOworCitpZiAocmVzdWx0ICE9IDQy
MDAwMDAwKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDU5ZmQ4ZTBiYjk5MTRlZWQ2YmY0ZWVk
MTU1MDBjNDhmMmM0NDJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24uanMKQEAgLTAsMCArMSw5IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSBT
eW1ib2woKSwgYiA9IFN5bWJvbCgpLCBjID0gU3ltYm9sKCksIGQgPSBTeW1ib2woKSwgZSA9IFN5
bWJvbCgpLCBmID0gU3ltYm9sKCksIGcgPSBTeW1ib2woKSwgaCA9IFN5bWJvbCgpLCBpID0gU3lt
Ym9sKCksIGogPSBTeW1ib2woKSwgayA9IFN5bWJvbCgpOworICAgIHZhciBvID0ge1thXToxLCBb
Yl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtq
XToxMCwgW2tdOjExfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRleCA9
IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkKKyAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBv
W2JdIHwgb1tjXSBeIG9bZF0gJiBvW2VdIF4gb1tmXSB8IG9bZ10gXiBvW2hdICYgb1tpXSBeIG9b
al0gfCBvW2tdOworICAgIGlmIChyZXN1bHQgIT0gMTUwMDAwMDApCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3Rv
LW9yLXNlbGYuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJmODJhYjI2OGE3
MzI5MzcwODU3NmJjNzgwNmVjYTY3YjZhZWI4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8t
b3Itc2VsZi5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9IFN5bWJvbCgiQ29jb2EiKTsKKwor
ZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30KKworZnVuY3Rpb24gYmFyKGEp
IHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7
ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCisgICAg
ICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5cGVbZl0gPSA0MjsKKwordmFy
IHJlc3VsdCA9IGJhcihbbmV3IEZvbygpLCB7W2ZdOjI0fV0pOworCitpZiAocmVzdWx0ICE9IDEz
MjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5q
cyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNTgzNjJhZGVhNzBhYjgyMDRkZTVkNTViOWU0YzU2OGMxMTBkMDc3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlLmpzCkBAIC0wLDAgKzEsMjIgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5
bWJvbCgiQ29jb2EiKTsKKyAgICB2YXIgbCA9IFN5bWJvbCgpOworICAgIHZhciBiID0gU3ltYm9s
KCk7CisgICAgdmFyIGMgPSBTeW1ib2woKTsKKworICAgIHZhciBvID0ge1thXToxfTsKKyAgICB2
YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKKyAgICB2YXIgcSA9IHtbYV06MywgW2JdOjN9OworICAg
IHZhciByID0ge1thXTo0LCBbY106NX07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07Cisg
ICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHE7CisgICAg
ICAgIHEgPSByOworICAgICAgICByID0gdG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDAp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzAwOGMzNjQxMjBiZjJhYTQ4YWQ3NGFhM2I1YTZmYzdiOTY3YmZiYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qcwpAQCAtMCwwICsxLDI0IEBACit2YXIgZiA9IFN5
bWJvbCgnQ29jb2EnKTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gb1tmXTsKK30K
KworZnVuY3Rpb24gYmFyKGEpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgeworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEu
bGVuZ3RoOyArK2opCisgICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOworICAgIH0KKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiBGb28oKSB7Cit9CisKK0Zvby5wcm90b3R5
cGVbZl0gPSA0MjsKKwordmFyIHJlc3VsdCA9IGJhcihbe1tmXToyNH0sIG5ldyBGb28oKV0pOwor
CitpZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258602</attachid>
            <date>2015-08-09 18:42:02 -0700</date>
            <delta_ts>2015-08-10 10:47:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150809184146.patch</filename>
            <type>text/plain</type>
            <size>108484</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTM3YjJhMGE2ODkyNTNlZjIyY2U3NDU0MTk4ODQxNWUzOGI3MmU4Li4wNTI1YzYzNjZmOGFlZWUw
OTkwY2YwOTRkNTQ5OGNmYTJjOGRhZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDkgQEAKKzIwMTUtMDgtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGdldF9ieV9pZCBsaWtlIElDIGludG8gZ2V0X2J5
X3ZhbCB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIFN0cmluZyBvciBTeW1ib2wKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IEZpbGlwIFBpemxvLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBnZXRfYnlf
aWQgSUMgdG8gZ2V0X2J5X3ZhbCBvcGVyYXRpb24gYnkgY2FjaGluZyB0aGUgc3RyaW5nIC8gc3lt
Ym9sIGlkLgorICAgICAgICBUaGUgSUMgc2l0ZSBvbmx5IGNhY2hlcyBvbmUgaWQuIEFmdGVyIGNo
ZWNraW5nIHRoYXQgdGhlIGdpdmVuIGlkIGlzIHRoZSBzYW1lIHRvIHRoZQorICAgICAgICBjYWNo
ZWQgb25lLCB3ZSBwZXJmb3JtIHRoZSBnZXRfYnlfaWQgSUMgb250byBpdC4KKyAgICAgICAgQW5k
IGJ5IGNvbGxlY3RpbmcgSUMgU3RydWN0dXJlU3R1YkluZm8gaW5mb3JtYXRpb24sIHdlIHBhc3Mg
aXQgdG8gdGhlIERGRyBhbmQgREZHCisgICAgICAgIGNvbXBpbGVzIGdldF9ieV92YWwgb3AgY29k
ZSBpbnRvIENoZWNrSWRlbnQgKHdpdGggZWRnZSB0eXBlIGNoZWNrKSBhbmQgR2V0QnlJZCByZWxh
dGVkCisgICAgICAgIG9wZXJhdGlvbnMgd2hlbiB0aGUgZ2l2ZW4gZ2V0X2J5X3ZhbCBsZXZlcmFn
ZXMgdGhlIHByb3BlcnR5IGxvYWQgd2l0aCB0aGUgY2FjaGVkIGlkLgorCisgICAgICAgIFRvIGVu
c3VyZSB0aGUgaW5jb21pbmcgdmFsdWUgaXMgdGhlIGV4cGVjdGVkIGlkLCBpbiBERkcgbGF5ZXIs
IHdlIHVzZSBTeW1ib2xVc2UgYW5kCisgICAgICAgIFN0cmluZ0lkZW50VXNlIHRvIGVuZm9yY2Ug
dGhlIHR5cGUuIFRvIHVzZSBpdCwgdGhpcyBwYXRjaCBpbXBsZW1lbnRzIFN5bWJvbFVzZS4KKyAg
ICAgICAgVGhpcyBjYW4gYmUgbGV2ZXJhZ2VkIHRvIG9wdGltaXplIHN5bWJvbCBvcGVyYXRpb25z
IGluIERGRy4KKworICAgICAgICBBbmQgc2luY2UgYnlWYWxJbmZvIGlzIGZyZXF1ZW50bHkgdXNl
ZCwgd2UgYWxpZ24gdGhlIGJ5VmFsSW5mbyBkZXNpZ24gdG8gdGhlIHN0dWJJbmZvIGxpa2Ugb25l
LgorICAgICAgICBBbGxvY2F0ZWQgYnkgdGhlIEJhZyBhbmQgb3BlcmF0aW9ucyB0YWtlIHRoZSBy
YXcgYnlWYWxJbmZvIHBvaW50ZXIgZGlyZWN0bHkgaW5zdGVhZCBvZiBwZXJmb3JtaW5nCisgICAg
ICAgIGJpbmFyeSBzZWFyY2ggb250byBtX2J5VmFsSW5mb3MuIEFuZCBieSBzdG9yaW5nIEFycmF5
UHJvZmlsZSogdW5kZXIgdGhlIEJ5VmFsSW5mbywgd2UgcmVwbGFjZWQgdGhlCisgICAgICAgIGFy
Z3VtZW50IEFycmF5UHJvZmlsZSogaW4gdGhlIG9wZXJhdGlvbnMgd2l0aCBCeVZhbEluZm8qLgor
CisgICAgICAgICogYnl0ZWNvZGUvQnlWYWxJbmZvLmg6CisgICAgICAgIChKU0M6OkJ5VmFsSW5m
bzo6QnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01hcCk6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6YWRkQnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAg
ICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm8pOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6OnNldE51bWJlck9mQnlWYWxJbmZvcyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZCeVZhbEluZm9zKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6Q29kZUJsb2NrOjpieVZhbEluZm8pOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2Rl
L0V4aXRLaW5kLmNwcDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAgICAg
ICogYnl0ZWNvZGUvRXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVz
LmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAgICAg
IChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgIChKU0M6
OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNr
KToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJh
Y3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAg
ICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVD
b2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNl
cjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RG
R0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAg
KiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNv
bnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRG9l
c0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdG
aXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUp
OgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2RlKToK
KyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1Vp
ZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAgICAg
ICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAg
IChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNr
SWRlbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTeW1i
b2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVXNl
S2luZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9E
RkdVc2VLaW5kLmg6CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAg
IChKU0M6OkRGRzo6aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja0lkZW50
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb3dTeW1ib2wpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZSk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RTeW1ib2wpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN5bWJvbCk6CisgICAg
ICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUpOgor
ICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKEpTQzo6QnlWYWxDb21waWxhdGlvbkluZm86
OkJ5VmFsQ29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0QnlW
YWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChK
U0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAg
KiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2hh
c19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9oYXNf
aW5kZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpnZXRCeVZhbCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoKKyAg
ICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0aENh
Y2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21w
aWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWxX
aXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNs
b3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFs
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKToKKyAgICAgICAg
KiBydW50aW1lL1N5bWJvbC5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKEhlbGxvKToKKyAgICAg
ICAgKGdldCBIZWxsby5wcm90b3R5cGUuZ2VuZXJhdGUpOgorICAgICAgICAob2spOgorICAgICAg
ICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanM6IEFkZGVkLgor
ICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3Ry
MSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgor
ICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3RyMSk6CisgICAgICAgIChnZXRTdHIy
KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIu
anM6IEFkZGVkLgorICAgICAgICAob2JqZWN0LmdldCBoZWxsbyk6CisgICAgICAgIChvayk6Cisg
ICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanM6IEFkZGVkLgor
ICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3Ry
MSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisgICAgICAgIChIZWxsbyk6Cisg
ICAgICAgIChnZXQgSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlKToKKyAgICAgICAgKG9rKToKKwog
MjAxNS0wOC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
Z3Jlc3Npb24ocjE4ODEwNSk6IFNlZW1zIHRvIGhhdmUgY2F1c2VkIGNyYXNoZXMgZHVyaW5nIFBM
VCBvbiBzb21lIGlQYWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnlWYWxJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZv
LmgKaW5kZXggZDk4ODUxNjEzMjU4YTcxYjlmMDRiYTQ5MDczZjQ0MDMzZTU3MTA4My4uNjc1NDFm
ZDkzNDZhZjIyZjcyMWIxOWI3NWZkZTk2ZmNmZjEwZmRmOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaApAQCAtMjYsMTYgKzI2LDE4IEBACiAjaWZuZGVmIEJ5
VmFsSW5mb19oCiAjZGVmaW5lIEJ5VmFsSW5mb19oCiAKLSNpZiBFTkFCTEUoSklUKQotCiAjaW5j
bHVkZSAiQ2xhc3NJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0aW9uLmgiCisjaW5jbHVkZSAi
Q29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkluZGV4aW5nVHlwZS5oIgogI2luY2x1ZGUgIkpJVFN0
dWJSb3V0aW5lLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCisjaW5jbHVkZSAiU3RydWN0dXJl
U3R1YkluZm8uaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBFTkFCTEUoSklUKQorCiBlbnVt
IEpJVEFycmF5TW9kZSB7CiAgICAgSklUSW50MzIsCiAgICAgSklURG91YmxlLApAQCAtMjAxLDI0
ICsyMDMsMzMgQEAgaW5saW5lIEpJVEFycmF5TW9kZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUo
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAKIHN0cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFsSW5m
bygpIHsgfQotICAgIAotICAgIEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2Rl
TG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90
IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorCisg
ICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAgbm90
SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJy
YXlNb2RlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRv
RG9uZSwgaW50MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkKICAgICAgICAgOiBieXRlY29k
ZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4SnVt
cCkKICAgICAgICAgLCBiYWRUeXBlSnVtcChiYWRUeXBlSnVtcCkKICAgICAgICAgLCBhcnJheU1v
ZGUoYXJyYXlNb2RlKQorICAgICAgICAsIGFycmF5UHJvZmlsZShhcnJheVByb2ZpbGUpCiAgICAg
ICAgICwgYmFkVHlwZUp1bXBUb0RvbmUoYmFkVHlwZUp1bXBUb0RvbmUpCiAgICAgICAgICwgcmV0
dXJuQWRkcmVzc1RvU2xvd1BhdGgocmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgICwg
c2xvd1BhdGhDb3VudCgwKQorICAgICAgICAsIHN0dWJJbmZvKG51bGxwdHIpCisgICAgICAgICwg
dG9va1Nsb3dQYXRoKGZhbHNlKQogICAgIHsKICAgICB9Ci0gICAgCisKICAgICB1bnNpZ25lZCBi
eXRlY29kZUluZGV4OworICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wOwogICAgIENv
ZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXA7CiAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsg
Ly8gVGhlIGFycmF5IG1vZGUgdGhhdCB3YXMgYmFrZWQgaW50byB0aGUgaW5saW5lIEpJVCBjb2Rl
LgorICAgIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlOwogICAgIGludDE2X3QgYmFkVHlwZUp1
bXBUb0RvbmU7CiAgICAgaW50MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aDsKICAgICB1bnNp
Z25lZCBzbG93UGF0aENvdW50OwogICAgIFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRp
bmU7CisgICAgSWRlbnRpZmllciBjYWNoZWRJZDsKKyAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm87CisgICAgYm9vbCB0b29rU2xvd1BhdGg7CiB9OwogCiBpbmxpbmUgdW5zaWduZWQgZ2V0
QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZhbEluZm8qIGluZm8pCkBAIC0yMjYsOSArMjM3LDE1
IEBAIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbEluZm9CeXRlY29kZUluZGV4KEJ5VmFsSW5mbyog
aW5mbykKICAgICByZXR1cm4gaW5mby0+Ynl0ZWNvZGVJbmRleDsKIH0KIAotfSAvLyBuYW1lc3Bh
Y2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQnlWYWxJbmZvKiwgQ29kZU9yaWdp
bkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFwOworCisjZWxzZSAvLyBFTkFCTEUoSklUKQor
Cit0eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4gQnlWYWxJbmZvTWFwOwogCiAjZW5kaWYgLy8g
RU5BQkxFKEpJVCkKIAorfSAvLyBuYW1lc3BhY2UgSlNDCisKICNlbmRpZiAvLyBCeVZhbEluZm9f
aAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4
IGEzNjFkNmRiZjI2NzJjYjAwNGY4ODNjN2U3MDAwMDhhNGM4Nzg5ZTIuLmM5MzMxZjczN2FiNzMw
MzE5OWU3ZTRhOWEyNGNjYTBkMWRiYzE5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0yNjcyLDYgKzI2NzIsMjIgQEAgdm9pZCBDb2RlQmxv
Y2s6OmdldENhbGxMaW5rSW5mb01hcChDYWxsTGlua0luZm9NYXAmIHJlc3VsdCkKICAgICBnZXRD
YWxsTGlua0luZm9NYXAobG9ja2VyLCByZXN1bHQpOwogfQogCit2b2lkIENvZGVCbG9jazo6Z2V0
QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJl
c3VsdCkKK3sKKyNpZiBFTkFCTEUoSklUKQorICAgIGZvciAoYXV0byogYnlWYWxJbmZvIDogbV9i
eVZhbEluZm9zKQorICAgICAgICByZXN1bHQuYWRkKENvZGVPcmlnaW4oYnlWYWxJbmZvLT5ieXRl
Y29kZUluZGV4KSwgYnlWYWxJbmZvKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7
CisjZW5kaWYKK30KKwordm9pZCBDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01hcChCeVZhbEluZm9N
YXAmIHJlc3VsdCkKK3sKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwor
ICAgIGdldEJ5VmFsSW5mb01hcChsb2NrZXIsIHJlc3VsdCk7Cit9CisKICNpZiBFTkFCTEUoSklU
KQogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZm8oKQogewpAQCAtMjY4
OCw2ICsyNzA0LDEyIEBAIFN0cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmZpbmRTdHViSW5m
byhDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0J5VmFs
SW5mbyogQ29kZUJsb2NrOjphZGRCeVZhbEluZm8oKQoreworICAgIENvbmN1cnJlbnRKSVRMb2Nr
ZXIgbG9ja2VyKG1fbG9jayk7CisgICAgcmV0dXJuIG1fYnlWYWxJbmZvcy5hZGQoKTsKK30KKwog
Q2FsbExpbmtJbmZvKiBDb2RlQmxvY2s6OmFkZENhbGxMaW5rSW5mbygpCiB7CiAgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suaAppbmRleCA2YzNhMTE1Zjc3NWVlYzNhYmQyMjAyZmVmYTUyNmRmODBh
M2ZjOTM4Li45NjA3OTFkNzBmYjVhMTdkMmEwMDI0Yjk2ZjRhNTdjNDA4MTNmNWI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0yMDAsNiArMjAwLDkg
QEAgY2xhc3MgQ29kZUJsb2NrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvZGVCbG9j
az4sIHB1YmxpYyBVbmNvbmRpdGlvbmFsRmkKICAgICAKICAgICB2b2lkIGdldENhbGxMaW5rSW5m
b01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQp
OwogICAgIHZvaWQgZ2V0Q2FsbExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KTsK
KworICAgIHZvaWQgZ2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBC
eVZhbEluZm9NYXAmIHJlc3VsdCk7CisgICAgdm9pZCBnZXRCeVZhbEluZm9NYXAoQnlWYWxJbmZv
TWFwJiByZXN1bHQpOwogICAgIAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1Yklu
Zm8qIGFkZFN0dWJJbmZvKCk7CkBAIC0yMTEsMTEgKzIxNCw4IEBAIGNsYXNzIENvZGVCbG9jayA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25kaXRp
b25hbEZpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGZpbmRTdHViSW5mbyhDb2RlT3JpZ2luKTsK
IAogICAgIHZvaWQgcmVzZXRTdHViKFN0cnVjdHVyZVN0dWJJbmZvJik7Ci0gICAgCi0gICAgQnlW
YWxJbmZvJiBnZXRCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiAqKGJpbmFyeVNlYXJjaDxCeVZhbEluZm8sIHVuc2lnbmVkPihtX2J5VmFsSW5m
b3MsIG1fYnlWYWxJbmZvcy5zaXplKCksIGJ5dGVjb2RlSW5kZXgsIGdldEJ5VmFsSW5mb0J5dGVj
b2RlSW5kZXgpKTsKLSAgICB9CisKKyAgICBCeVZhbEluZm8qIGFkZEJ5VmFsSW5mbygpOwogCiAg
ICAgQ2FsbExpbmtJbmZvKiBhZGRDYWxsTGlua0luZm8oKTsKICAgICBCYWc8Q2FsbExpbmtJbmZv
Pjo6aXRlcmF0b3IgY2FsbExpbmtJbmZvc0JlZ2luKCkgeyByZXR1cm4gbV9jYWxsTGlua0luZm9z
LmJlZ2luKCk7IH0KQEAgLTM2NywxMiArMzY3LDYgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPENvZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFsRmkK
IAogICAgIFN0cmluZyBuYW1lRm9yUmVnaXN0ZXIoVmlydHVhbFJlZ2lzdGVyKTsKIAotI2lmIEVO
QUJMRShKSVQpCi0gICAgdm9pZCBzZXROdW1iZXJPZkJ5VmFsSW5mb3Moc2l6ZV90IHNpemUpIHsg
bV9ieVZhbEluZm9zLnJlc2l6ZVRvRml0KHNpemUpOyB9Ci0gICAgc2l6ZV90IG51bWJlck9mQnlW
YWxJbmZvcygpIGNvbnN0IHsgcmV0dXJuIG1fYnlWYWxJbmZvcy5zaXplKCk7IH0KLSAgICBCeVZh
bEluZm8mIGJ5VmFsSW5mbyhzaXplX3QgaW5kZXgpIHsgcmV0dXJuIG1fYnlWYWxJbmZvc1tpbmRl
eF07IH0KLSNlbmRpZgotCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFZhbHVlUHJvZmls
ZXMoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fbnVtUGFyYW1ldGVycyA+PSAwKTsKQEAgLTEw
MTYsNyArMTAxMCw3IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25kaXRpb25hbEZpCiAgICAgUmVmUHRyPEpJVENv
ZGU+IG1faml0Q29kZTsKICNpZiBFTkFCTEUoSklUKQogICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5m
bz4gbV9zdHViSW5mb3M7Ci0gICAgVmVjdG9yPEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOworICAg
IEJhZzxCeVZhbEluZm8+IG1fYnlWYWxJbmZvczsKICAgICBCYWc8Q2FsbExpbmtJbmZvPiBtX2Nh
bGxMaW5rSW5mb3M7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5mbywgQmFzaWNS
YXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0NhbGxzOwogICAgIFNlbnRp
bmVsTGlua2VkTGlzdDxQb2x5bW9ycGhpY0NhbGxOb2RlLCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxQ
b2x5bW9ycGhpY0NhbGxOb2RlPj4gbV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAppbmRleCA0Zjc5ZjJjMWM1ZTRl
N2ZkYmUwNDNhMDQ5NTI1MTAwYWQ1MGZmNDdiLi4yNTI0MzAwZjczMzc2OWVkOWJlMDAxZDc2NjBm
MzY4NTliNmQ4OTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
RXhpdEtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2lu
ZC5jcHAKQEAgLTQwLDYgKzQwLDggQEAgY29uc3QgY2hhciogZXhpdEtpbmRUb1N0cmluZyhFeGl0
S2luZCBraW5kKQogICAgICAgICByZXR1cm4gIkJhZFR5cGUiOwogICAgIGNhc2UgQmFkQ2VsbDoK
ICAgICAgICAgcmV0dXJuICJCYWRDZWxsIjsKKyAgICBjYXNlIEJhZElkZW50OgorICAgICAgICBy
ZXR1cm4gIkJhZElkZW50IjsKICAgICBjYXNlIEJhZEV4ZWN1dGFibGU6CiAgICAgICAgIHJldHVy
biAiQmFkRXhlY3V0YWJsZSI7CiAgICAgY2FzZSBCYWRDYWNoZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKaW5kZXggNTljYmJmNWEyYjM4Nzc5N2UzZWUyYmE4MWYz
NmUxYzYxYzAzYjkyMy4uNmY4YzUxMjAwNzAwNTA1YmY5MWRlZjc0OTAwM2UzMDA1ZTNmNzE4NiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKQEAgLTMyLDYgKzMy
LDcgQEAgZW51bSBFeGl0S2luZCA6IHVpbnQ4X3QgewogICAgIEV4aXRLaW5kVW5zZXQsCiAgICAg
QmFkVHlwZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYSB0eXBlIHByZWRpY3Rpb24gd2FzIHdyb25n
LgogICAgIEJhZENlbGwsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0
IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBjZWxsIHdlIHdvdWxkIHNlZS4gVXN1YWxseSB1c2VkIGZv
ciBmdW5jdGlvbiBjaGVja3MuCisgICAgQmFkSWRlbnQsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdl
IG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBpZGVudGlmaWVyIHdlIHdv
dWxkIHNlZS4gVXN1YWxseSB1c2VkIGZvciBjYWNoZWQgSWQgY2hlY2sgaW4gZ2V0X2J5X3ZhbC4K
ICAgICBCYWRFeGVjdXRhYmxlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29y
cmVjdCBhc3N1bXB0aW9uIGFib3V0IHdoYXQgZXhlY3V0YWJsZSB3ZSB3b3VsZCBzZWUuCiAgICAg
QmFkQ2FjaGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGFuIGlubGluZSBjYWNoZSB3YXMgd3Jvbmcu
CiAgICAgQmFkQ29uc3RhbnRDYWNoZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYSBjYWNoZSBvbiBh
IHdlYWsgY29uc3RhbnQgKHVzdWFsbHkgYSBwcm90b3R5cGUpIHdhcyB3cm9uZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCAxZDk3
YzlmZmRiYTZkOTRlMzVjYjY3Y2VkM2RiZWVhNTBiYzcxOWVlLi44OWU1MDM1ZjMwYTNmMGI3OWJi
MjA4MzJhMTJkOWQ2ODQ4ODhjZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC05OCw3ICs5OCw3IEBAIEdldEJ5SWRTdGF0dXMg
R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJ
bmZvTWFwJiBtCiAgICAgR2V0QnlJZFN0YXR1cyByZXN1bHQ7CiAKICNpZiBFTkFCTEUoREZHX0pJ
VCkKLSAgICByZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm8oCisgICAgcmVzdWx0ID0gY29tcHV0
ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgIGxvY2tlciwgcHJv
ZmlsZWRCbG9jaywgbWFwLmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgpKSwgdWlkLAogICAg
ICAgICBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUV4aXRTaXRlRGF0YShsb2NrZXIsIHByb2ZpbGVk
QmxvY2ssIGJ5dGVjb2RlSW5kZXgpKTsKICAgICAKQEAgLTExNiw3ICsxMTYsMjAgQEAgR2V0QnlJ
ZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVCbG9jayogcHJvZmlsZWRCbG9j
aywgU3R1YkluZm9NYXAmIG0KIH0KIAogI2lmIEVOQUJMRShKSVQpCi1HZXRCeUlkU3RhdHVzIEdl
dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbygKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0
YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tl
ciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IENvZGVPcmlnaW4gY29kZU9yaWdpbiwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAgICBH
ZXRCeUlkU3RhdHVzIHJlc3VsdCA9IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dp
dGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAorICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIHN0
dWJJbmZvLCB1aWQsCisgICAgICAgIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRXhpdFNpdGVEYXRh
KGxvY2tlciwgcHJvZmlsZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KSk7CisKKyAg
ICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQYXRoKCkgJiYgR2V0QnlJZFN0YXR1czo6aGFzRXhpdFNp
dGUobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpKQorICAg
ICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhyZXN1bHQubWFrZXNDYWxscygpID8gR2V0QnlJZFN0
YXR1czo6TWFrZXNDYWxscyA6IEdldEJ5SWRTdGF0dXM6OlRha2VzU2xvd1BhdGgsIHRydWUpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworI2lmIEVOQUJM
RShKSVQpCitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dp
dGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxv
Y2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1Yklu
Zm8sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsCiAgICAgQ2FsbExpbmtTdGF0dXM6OkV4aXRTaXRl
RGF0YSBjYWxsRXhpdFNpdGVEYXRhKQogewpAQCAtMjQyLDcgKzI1NSw3IEBAIEdldEJ5SWRTdGF0
dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICAgICAgR2V0QnlJZFN0YXR1cyByZXN1
bHQ7CiAgICAgICAgIHsKICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGRm
Z0Jsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZv
KAorICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRl
RmVlZGJhY2soCiAgICAgICAgICAgICAgICAgbG9ja2VyLCBkZmdCbG9jaywgZGZnTWFwLmdldChj
b2RlT3JpZ2luKSwgdWlkLCBleGl0U2l0ZURhdGEpOwogICAgICAgICB9CiAgICAgICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKaW5kZXggMzIz
NzJjZGRmNWUyNWIwZjM4OGU2Y2ZlZGM0NjYyMGIyZDM4ZDJkMC4uZDdmMGFlNDk2Y2JhMmYzMGZk
Y2QxMjg4NmIxNWZiM2I0ODI4Zjk1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCkBAIC03MSw3ICs3MSwxMSBAQCBjbGFzcyBHZXRCeUlkU3Rh
dHVzIHsKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKGNvbnN0IFN0cnVjdHVy
ZVNldCYsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwogICAgIAogICAgIHN0YXRpYyBHZXRCeUlk
U3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiBiYXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRm
Z0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVNYXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENv
ZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwotICAgIAorCisjaWYgRU5BQkxFKEpJ
VCkKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29u
Y3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgU3RydWN0dXJlU3R1
YkluZm8qLCBDb2RlT3JpZ2luLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKTsKKyNlbmRpZgorCiAg
ICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAgCiAgICAgYm9v
bCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgIT0gTm9JbmZvcm1hdGlvbjsgfQpAQCAt
OTUsNyArOTksNyBAQCBjbGFzcyBHZXRCeUlkU3RhdHVzIHsKICAgICBzdGF0aWMgYm9vbCBoYXNF
eGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQg
Ynl0ZWNvZGVJbmRleCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSklUKQotICAgIHN0YXRpYyBHZXRC
eUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbygKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBj
b21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjaygKICAgICAgICAgY29uc3Qg
Q29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJl
U3R1YkluZm8qLAogICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBDYWxsTGlua1N0YXR1
czo6RXhpdFNpdGVEYXRhKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDM3MzRjNzZk
MWVlODdhODRhMGU2NmQ1NTY3NGQxMGIyYWQyYWEwNTQuLjIyOTA4N2RjYzQzNjQzOTc5NTQ4MGUz
ZDVjMTI5NjAzYTE2YzFiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTIxNjMsNiArMjE2Mywz
MiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAg
ICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JO
b2RlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5v
ZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAgQVNTRVJUKHVpZC0+aXNTeW1ib2woKSA/ICEodmFs
dWUubV90eXBlICYgflNwZWNTeW1ib2wpIDogISh2YWx1ZS5tX3R5cGUgJiB+U3BlY1N0cmluZ0lk
ZW50KSk7IC8vIEVkZ2UgZmlsdGVyaW5nIHNob3VsZCBoYXZlIGFscmVhZHkgZW5zdXJlZCB0aGlz
LgorCisgICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdGFudCA9IHZhbHVlLnZhbHVlKCk7CisgICAg
ICAgIGlmIChjaGlsZENvbnN0YW50KSB7CisgICAgICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgp
KSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGNoaWxkQ29uc3RhbnQuaXNTeW1ib2woKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKGFzU3ltYm9sKGNoaWxkQ29uc3RhbnQpLT5wcml2YXRlTmFtZSgp
LnVpZCgpID09IHVpZCkgeworICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29u
c3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVChjaGlsZENv
bnN0YW50LmlzU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhc1N0cmluZyhjaGlsZENv
bnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBsKCkgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAgICAg
IG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGZpbHRlcih2YWx1ZSwgdWlkLT5pc1N5bWJvbCgpID8gU3BlY1N5bWJvbCA6IFNwZWNTdHJp
bmdJZGVudCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgQ2hlY2tJbkJvdW5k
czogewogICAgICAgICBKU1ZhbHVlIGxlZnQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1
ZSgpOwogICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0gZm9yTm9kZShub2RlLT5jaGlsZDIoKSkudmFs
dWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKaW5kZXggNTY0MjJiMThhMjQ2NTA4NmY4MDY5NDI4MGRhMzY3NjAwMmU2YzVlNC4uNzY4Njky
NWRkYTEyOTU5OWE2ZGMwMzI0NjdkZWE3OGYzYWFiNWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTk2OSw2ICs5NjksNyBAQCBj
bGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgICAgIAogICAgICAgICBDYWxsTGlua0luZm9NYXAg
bV9jYWxsTGlua0luZm9zOwogICAgICAgICBTdHViSW5mb01hcCBtX3N0dWJJbmZvczsKKyAgICAg
ICAgQnlWYWxJbmZvTWFwIG1fYnlWYWxJbmZvczsKICAgICAgICAgCiAgICAgICAgIC8vIERpZCB3
ZSBzZWUgYW55IHJldHVybnM/IFdlIG5lZWQgdG8gaGFuZGxlIHRoZSAodW5jb21tb24gYnV0IG5l
Y2Vzc2FyeSkKICAgICAgICAgLy8gY2FzZSB3aGVyZSBhIHByb2NlZHVyZSB0aGF0IGRvZXMgbm90
IHJldHVybiB3YXMgaW5saW5lZC4KQEAgLTMzOTcsMTIgKzMzOTgsMzcgQEAgYm9vbCBCeXRlQ29k
ZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKIAogICAgICAgICBjYXNlIG9wX2dl
dF9ieV92YWw6IHsKICAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQ
cmVkaWN0aW9uV2l0aG91dE9TUkV4aXQoKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBO
b2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKSk7Ci0gICAgICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2Rl
KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOwogICAg
ICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKLSAgICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRk
VG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVk
aWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOwotICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgZ2V0QnlWYWwpOworICAgICAgICAg
ICAgYm9vbCBjb21waWxlZEFzR2V0QnlJZCA9IGZhbHNlOworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1faW5saW5lU3RhY2tUb3AtPm1f
cHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgICAgICBCeVZhbEluZm8qIGJ5VmFs
SW5mbyA9IG1faW5saW5lU3RhY2tUb3AtPm1fYnlWYWxJbmZvcy5nZXQoQ29kZU9yaWdpbihjdXJy
ZW50Q29kZU9yaWdpbigpLmJ5dGVjb2RlSW5kZXgpKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhN
RTogV2hlbiB0aGUgYnl0ZWNvZGUgaXMgbm90IGNvbXBpbGVkIGluIHRoZSBiYXNlbGluZSBKSVQs
IGJ5VmFsSW5mbyBiZWNvbWVzIG51bGwuCisgICAgICAgICAgICAgICAgLy8gQXQgdGhhdCB0aW1l
LCB0aGVyZSBpcyBubyBpbmZvcm1hdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAoYnlWYWxJbmZv
ICYmIGJ5VmFsSW5mby0+c3R1YkluZm8gJiYgIWJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbXBpbGVkQXNHZXRCeUlkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciA9IG1fZ3JhcGguaWRlbnRpZmllcnMo
KS5lbnN1cmUoYnlWYWxJbmZvLT5jYWNoZWRJZC5pbXBsKCkpOworICAgICAgICAgICAgICAgICAg
ICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZp
ZXJOdW1iZXJdOworCisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBQb3RlbnRpYWxseSwg
d2UgY2FuIGZ1cnRoZXIgb3B0aW1pemUgaGVyZS4gSWYgd2Ugc2F3IHRoZSBleGl0IGZvciB0aGlz
IENoZWNrSWRlbnQsCisgICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IHRha2UgdGhlIEdldEJ5
SWQgcGF0aCBhbmQgdXNlIHRoZSBnZW5lcmljIEdldEJ5VmFsLgorICAgICAgICAgICAgICAgICAg
ICBhZGRUb0dyYXBoKENoZWNrSWRlbnQsIE9wSW5mbyh1aWQpLCBwcm9wZXJ0eSk7CisKKyAgICAg
ICAgICAgICAgICAgICAgR2V0QnlJZFN0YXR1cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1
czo6Y29tcHV0ZUZvclN0dWJJbmZvKAorICAgICAgICAgICAgICAgICAgICAgICAgbG9ja2VyLCBt
X2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAg
ICBieVZhbEluZm8tPnN0dWJJbmZvLCBjdXJyZW50Q29kZU9yaWdpbigpLCB1aWQpOworCisgICAg
ICAgICAgICAgICAgICAgIGhhbmRsZUdldEJ5SWQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZCwgcHJlZGljdGlvbiwgYmFzZSwgaWRlbnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1cyk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWNv
bXBpbGVkQXNHZXRCeUlkKSB7CisgICAgICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9
IGdldEFycmF5TW9kZShjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGUsIEFycmF5
OjpSZWFkKTsKKyAgICAgICAgICAgICAgICBOb2RlKiBnZXRCeVZhbCA9IGFkZFRvR3JhcGgoR2V0
QnlWYWwsIE9wSW5mbyhhcnJheU1vZGUuYXNXb3JkKCkpLCBPcEluZm8ocHJlZGljdGlvbiksIGJh
c2UsIHByb3BlcnR5KTsKKyAgICAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBnZXRCeVZhbCk7CisgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dldF9ieV92YWwpOwogICAgICAgICB9CkBAIC00
MzA1LDYgKzQzMzEsNyBAQCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5l
U3RhY2tFbnRyeSgKICAgICAgICAgaWYgKG1fcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQ
cm9maWxpbmcoKSkgewogICAgICAgICAgICAgbV9wcm9maWxlZEJsb2NrLT5nZXRTdHViSW5mb01h
cChsb2NrZXIsIG1fc3R1YkluZm9zKTsKICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0
Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwgbV9jYWxsTGlua0luZm9zKTsKKyAgICAgICAgICAgIG1f
cHJvZmlsZWRCbG9jay0+Z2V0QnlWYWxJbmZvTWFwKGxvY2tlciwgbV9ieVZhbEluZm9zKTsKICAg
ICAgICAgfQogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmgKaW5kZXggMjk2NzQ5ZGMzMWIyM2M4OTk4NDk0YjU2ZWYxNDMwODY0YjEyN2VjNi4uNDZm
NWZlNDhkMjVjMjdkZDMxOTZjNTgxMjlkYmU1ODU3ZmJkN2UyOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTI2OCw2ICsyNjgsMTAgQEAgdm9pZCBjbG9i
YmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQs
IGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKFB1cmVWYWx1ZShDaGVja05vdEVtcHR5LCBBZGph
Y2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEoKSkpKTsKICAgICAg
ICAgcmV0dXJuOwogCisgICAgY2FzZSBDaGVja0lkZW50OgorICAgICAgICBkZWYoUHVyZVZhbHVl
KENoZWNrSWRlbnQsIEFkamFjZW5jeUxpc3QoQWRqYWNlbmN5TGlzdDo6Rml4ZWQsIG5vZGUtPmNo
aWxkMSgpKSwgbm9kZS0+dWlkT3BlcmFuZCgpKSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNh
c2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBu
b2RlLT5zdG9yYWdlUG9pbnRlcigpKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXgg
YmE0YzAzNTQ5NDY0OTJmNTlmZGZiZDVhNmY2MWE1YTY3ZDI1MDMyMC4uM2Q4NWNhYWJkNjE1NzNm
ZGQ1NDlkNWZlNzViYzY0ZjNlNTY0ZjFlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTIwOCw2ICsyMDgsMzMg
QEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBjYXNlIENoZWNrSWRl
bnQ6IHsKKyAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlk
T3BlcmFuZCgpOworICAgICAgICAgICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdGFudCA9IG1fc3Rh
dGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKKyAgICAgICAgICAgICAgICBjb25z
dCBVbmlxdWVkU3RyaW5nSW1wbCogY29uc3RhbnRVaWQgPSBudWxscHRyOworICAgICAgICAgICAg
ICAgIGlmIChjaGlsZENvbnN0YW50KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh1aWQtPmlz
U3ltYm9sKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50Lmlz
U3ltYm9sKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRVaWQgPSBhc1N5
bWJvbChjaGlsZENvbnN0YW50KS0+cHJpdmF0ZU5hbWUoKS51aWQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZENvbnN0YW50
LmlzU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBh
bHJlYWR5IGZpbHRlcmVkIHRoZSB2YWx1ZSB3aXRoIFN0cmluZ0lkZW50VXNlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIHRoZSBoZWxkIGltcGwgaXMgYWx3YXlzIGF0b21pYy4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uc3QgYXV0byogaW1wbCA9IGFzU3RyaW5n
KGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUltcGwoKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQoaW1wbC0+aXNBdG9taWMoKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0YW50VWlkID0gc3RhdGljX2Nhc3Q8Y29uc3QgVW5pcXVlZFN0
cmluZ0ltcGwqPihpbXBsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBpZiAoY29uc3RhbnRVaWQgPT0gdWlkKSB7CisgICAgICAg
ICAgICAgICAgICAgIG5vZGUtPnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICBlbGltaW5h
dGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisKICAgICAgICAgICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAg
ICAgICAgICAgIEpTVmFsdWUgbGVmdCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSku
dmFsdWUoKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0gbV9zdGF0ZS5mb3JOb2Rl
KG5vZGUtPmNoaWxkMigpKS52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0MuY3BwCmluZGV4IDA4ZmZiMmE5MTI5Mzg3MjEzMTFjYWQyNzc0Njc2MWEyMDY1M2FhNWYuLmU0
NzBiOGRkYWI5OTQzOGZkODkwMzUyZTQ1ZTA5MTAyOWYxYTYyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTEwNyw2ICsxMDcsNyBAQCBib29sIGRvZXNHQyhH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50
OgogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNl
IENoZWNrSWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoK
ICAgICBjYXNlIENvbXBhcmVMZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAKaW5kZXggYzQ0MjMxMDE2MzI2NTdkM2U4M2Y5NzFlNjZhODNmNjI1MDU3MTUy
NC4uZDZhOTc5MGIxM2NlMDA2MmQ5NzgxMTQwZWRjZTIyMTUyZTQwMGI4NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMDEyLDYgKzEwMTIsMTUg
QEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdl
PENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CisKKyAgICAgICAgY2FzZSBDaGVja0lkZW50OiB7CisgICAgICAgICAgICBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICAgICAgaWYgKHVpZC0+aXNT
eW1ib2woKSkKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQx
KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRl
bnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAg
ICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheWlmeToKICAgICAgICAgY2FzZSBBcnJheWlm
eVRvU3RydWN0dXJlOiB7CkBAIC0xNzYwLDYgKzE3NjksNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDog
cHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBGdW5jdGlvblVzZToKICAgICAgICAgY2FzZSBT
dHJpbmdVc2U6CiAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3lt
Ym9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJp
bmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgIGlmIChhbHdheXNVbmJveFNpbXBsZVBy
aW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCAyOGNhYjA1MWU1
MzA5ZTM2ODg2OTRjYmJjNDY1Mzk2NjkyZGU4MDlhLi44M2ZjZjVjMTAxZTBjN2M3N2E5ZWQyMDk1
ZDQ1NWRhNjljNGU2YWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTMy
OCw2ICsxMzI4LDE3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsKICAgICB9CiAKKyAgICBib29sIGhhc1VpZE9wZXJhbmQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tJZGVudDsKKyAgICB9CisKKyAg
ICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkT3BlcmFuZCgpCisgICAgeworICAgICAgICBBU1NFUlQo
aGFzVWlkT3BlcmFuZCgpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5pcXVl
ZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7CisgICAgfQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9u
KCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oCmluZGV4IDYyZTdjYTk4YTUyMTEyZDgyZDBlYjZmMGQxNzI4YmVhZjRi
OWUxMzEuLmU5YmY3MjcwNGIxN2FhNjg2NzllOWJiZWEwZjRmMmFkY2VmOTYzYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTIwOSw2ICsyMDksNyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBt
YWNybyhDaGVja0lkZW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGlt
aXphdGlvbnMgZm9yIGFycmF5IG11dGF0aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5v
ZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5k
ZXggNzZhZjZhMmYzZTQ1MmIwZjExN2FiYzNhNmJiNWRkZDJmYWFiMTk4YS4uMzZmMmRmN2M3NWM1
MGNhZmQwNmVjOWMyNzg1MWVlYTlmMTBmZmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAg
LTY0OSw2ICs2NDksNyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1Ymxp
YyBQaGFzZSB7CiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hl
Y2tDZWxsOgogICAgICAgICBjYXNlIENoZWNrTm90RW1wdHk6CisgICAgICAgIGNhc2UgQ2hlY2tJ
ZGVudDoKICAgICAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgICAgIGNhc2UgUHV0U3RydWN0
dXJlOgogICAgICAgICBjYXNlIFZhckluamVjdGlvbldhdGNocG9pbnQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDBjMGEyNzc2MDUwZWYxYzYz
OGMyMGQ4OGNmZWZlMzIzYzczYTU5MTQuLmIyZDA3ZDU1ZTUzNjI2ODQ1YjVkM2Y1YzlmZWVhNGU3
YmQ4NGRkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oCkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAg
Y2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAg
ICAgICBjYXNlIFN0cmluZ1VzZToKKyAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgIGNh
c2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNl
OgogICAgICAgICBjYXNlIE5vdFN0cmluZ1ZhclVzZToKQEAgLTE4OCw2ICsxODksNyBAQCBib29s
IHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAg
ICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFJl
Z0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdFeHBUZXN0OgogICAgIGNhc2UgQ29tcGFyZUxlc3M6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4
IGYzZjhhZjdhNTJkNTBmOWEyZTcxYzRmOTAxOTk4NDdiZjA1MDBkNWUuLjA1MzczNjM0YmRlMTFk
NjY0NjE5MTNhMjBjNWE1YmVhOTY4ZmE0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC00NTc2LDYgKzQ1NzYsMzEgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCiAgICAgfSB9
CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0lkZW50KE5vZGUqIG5vZGUp
Cit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7CisgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAg
ICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChub2RlLT5j
aGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCisgICAg
ICAgICAgICBCYWRJZGVudCwgSlNWYWx1ZVNvdXJjZSgpLCBudWxscHRyLAorICAgICAgICAgICAg
bV9qaXQuYnJhbmNoUHRyKAorICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpOb3RFcXVhbCwK
KyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhvcGVyYW5kLmdwcigpLCBTeW1i
b2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSksCisgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0
cih1aWQpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNo
aWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQobm9k
ZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAor
ICAgICAgICAgICAgQmFkSWRlbnQsIEpTVmFsdWVTb3VyY2UoKSwgbnVsbHB0ciwKKyAgICAgICAg
ICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1
YWwsCisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3BlcmFuZC5ncHIoKSwg
SlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksCisgICAgICAgICAgICAgICAgVHJ1c3RlZEltbVB0
cih1aWQpKSk7CisgICAgfQorICAgIG5vUmVzdWx0KG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb24oTm9kZSogbm9kZSkKIHsKICAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBzY29wZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC01NzMxLDYgKzU3NTYs
MjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90U3RyaW5nVmFyKEVkZ2UgZWRn
ZSkKICAgICBub3RDZWxsLmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVf
Q0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNTeW1ib2ws
IG1faml0LmJyYW5jaElmTm90U3ltYm9sKGNlbGwpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNr
KGVkZ2UsIFNwZWNTeW1ib2wpKQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxs
T3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBv
cGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90Q2Vs
bChFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCB+U3BlY0NlbGwp
KQpAQCAtNTg0Miw2ICs1ODgxLDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5v
ZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0
cmluZyhlZGdlKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAg
IHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdHJpbmdP
YmplY3RVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdChlZGdlKTsKICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
aW5kZXggYTVjNDQ1NDdkYTY0YmMyYjYzZjA3M2ExNzExZTZhMTE4MDZmNTk1Yi4uNTQ1ZmYyYTZl
YmQxMGVlZjgyYjFmZTdjMjJjY2U5ZjcxN2VkZDE0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMjE5MSw2ICsyMTkxLDggQEAgY2xhc3Mg
U3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgY29tcGlsZVNraXBTY29wZShOb2RlKik7CiAKICAg
ICB2b2lkIGNvbXBpbGVHZXRBcnJheUxlbmd0aChOb2RlKik7CisKKyAgICB2b2lkIGNvbXBpbGVD
aGVja0lkZW50KE5vZGUqKTsKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlRG91YmxlUmVwKE5vZGUqKTsKQEAgLTI0MDYsNiArMjQwOCw4IEBA
IGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdChF
ZGdlLCBHUFJSZWcpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT2JqZWN0KEVkZ2UpOwogICAg
IHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JTdHJpbmdPYmplY3QoRWRnZSk7CisgICAgdm9pZCBzcGVj
dWxhdGVTeW1ib2woRWRnZSwgR1BSUmVnIGNlbGwpOworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9s
KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTm90Q2VsbChFZGdlKTsKICAgICB2b2lkIHNwZWN1
bGF0ZU90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTWlzYyhFZGdlLCBKU1ZhbHVlUmVn
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAppbmRleCA1MDQyOTA1YjYyYjUyNmM5ZWRhZDNmZmJiNTY3YzQ2ZjY3ZjgwZWFl
Li4xMmFiOGQwODVkMDcwNTEwZjc2ZmQ0ZWU3MjU0Zjg4ZTMzMjJiN2M5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAg
LTM4MjAsNiArMzgyMCwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5v
ZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgQ2hlY2tJZGVudDoKKyAgICAg
ICAgY29tcGlsZUNoZWNrSWRlbnQobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBH
ZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGZ1bmN0aW9uKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBS
ZXVzZSwgZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggNzcwYmRhNThjYWI1MDIzYTFmYTBjMzhmNGM3YTAzMDhk
NDA4MGEzMC4uMTNjN2M4N2Q4MDZmN2E3YTg2NzMwZjA3OWFkODgzNDU0MjZjN2ZjMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBA
IC0zODUwLDYgKzM4NTAsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6CisgICAg
ICAgIGNvbXBpbGVDaGVja0lkZW50KG5vZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2Ug
R2V0RXhlY3V0YWJsZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBmdW5jdGlvbih0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywg
UmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3Bw
CmluZGV4IGVmYTEwNGYzZDA3MDAwYjdkN2JjNDczYmNkZjIwNmQxMDUzZmM5YjEuLjkzNmVmNTU0
YWYyNGUwYjY0ZmRmNDI4ZjE2M2FlOGQ3ODhlOThkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtOTcsNiArOTcsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwo
UHJpbnRTdHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgS25vd25TdHJpbmdV
c2U6CiAgICAgICAgIG91dC5wcmludCgiS25vd25TdHJpbmciKTsKICAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICBvdXQucHJpbnQoIlN5bWJvbCIpOworICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIG91dC5wcmludCgi
U3RyaW5nT2JqZWN0Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdVc2VLaW5kLmgKaW5kZXggZWJmOTlkYWU2MDBjODgyNWQyMmNiYWM2MzgyMmQxNWI1NTYwMDM1
YS4uMjg5Yjc4M2U0MWJiMzYxMjkxYzgzYzhmYWQ3YjA4YTU3OGUwYTZmMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTU3LDYgKzU3LDcgQEAgZW51bSBVc2VLaW5k
IHsKICAgICBTdHJpbmdJZGVudFVzZSwKICAgICBTdHJpbmdVc2UsCiAgICAgS25vd25TdHJpbmdV
c2UsCisgICAgU3ltYm9sVXNlLAogICAgIFN0cmluZ09iamVjdFVzZSwKICAgICBTdHJpbmdPclN0
cmluZ09iamVjdFVzZSwKICAgICBOb3RTdHJpbmdWYXJVc2UsCkBAIC0xMTcsNiArMTE4LDggQEAg
aW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAg
IGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIHJldHVy
biBTcGVjU3RyaW5nOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICByZXR1cm4gU3BlY1N5
bWJvbDsKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJuIFNwZWNTdHJp
bmdPYmplY3Q7CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKQEAgLTE5Niw2ICsx
OTksNyBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAgIGNhc2UgU3RyaW5n
SWRlbnRVc2U6CiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgY2FzZSBLbm93blN0cmluZ1VzZToK
KyAgICBjYXNlIFN5bWJvbFVzZToKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICBjYXNl
IFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgK
aW5kZXggOTEyNzU0ZGZjNDAxNTJiMGVkMjQ4MzZhYzc1YjhmOTY5ODQzOTliYi4uNTgxZjRjYmQ5
YTc2OGI5YWIyYTgzOTIxY2YyNGQzNTI0YmM4NTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTg3LDcgKzg3
LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVy
ZV9jbGFzc0luZm8sIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpIFwKICAgICBtYWNybyhT
dHJ1Y3R1cmVfZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNldCgpKSBc
CiAgICAgbWFjcm8oU3RydWN0dXJlX3Byb3RvdHlwZSwgU3RydWN0dXJlOjpwcm90b3R5cGVPZmZz
ZXQoKSkgXAotICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1
Y3R1cmVJRE9mZnNldCgpKQorICAgIG1hY3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0
dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSBcCisgICAgbWFjcm8oU3ltYm9sX3ByaXZhdGVOYW1l
LCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSkKIAogI2RlZmluZSBGT1JfRUFDSF9JTkRF
WEVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfc3Rv
cmFnZSwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCksIHNpemVvZihFbmNvZGVkSlNW
YWx1ZSkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cAppbmRleCA2MjcyOGM3NDZlZjkxZDc0Yjc4MjliYjNmOWE0NGM2ZDdmNjFkN2IzLi5iNDkzZjMw
MjdlODJjZmNjZTljM2NjZjQ4MmMxNTU4NjFkNjhiOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMTgsNiArMTE4LDcgQEAgaW5saW5l
IENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0Nl
bGw6CiAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAg
IGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFN0cmluZ0NoYXJDb2RlQXQ6CiAgICAgY2FzZSBB
bGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3Jh
Z2U6CkBAIC00MTUsNiArNDE2LDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgm
IGdyYXBoKQogICAgICAgICAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgICAg
ICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdP
clN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAgICAg
ICAgICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgTm90
Q2VsbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE90aGVyVXNlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCA1ZmI0ZTI0MTJhMjU5
MzRmMmRiZWZiOTk3MWIwNDVlYTgxOTIxYzhhLi5hMWIxOWJmZTg4Njc4OWYxMzJlZWRjZjY3YzNk
Nzg5YzIwNjM1ZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9MTFZNLmNwcApAQCAtNTMyLDYgKzUzMiw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsK
ICAgICAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgICAgICAgICBjb21waWxlQ2hlY2tCYWRD
ZWxsKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja0lkZW50OgorICAg
ICAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgICAgICAgICBjb21waWxlR2V0RXhlY3V0YWJsZSgp
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMDI5LDYgKzIwMzIsMjAgQEAgY2xhc3MgTG93ZXJE
RkdUb0xMVk0gewogICAgICAgICBzcGVjdWxhdGUoVERaRmFpbHVyZSwgbm9WYWx1ZSgpLCBudWxs
cHRyLCBtX291dC5pc1plcm82NChsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAg
fQogCisgICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudCgpCisgICAgeworICAgICAgICBVbmlxdWVk
U3RyaW5nSW1wbCogdWlkID0gbV9ub2RlLT51aWRPcGVyYW5kKCk7CisgICAgICAgIGlmICh1aWQt
PmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2wobV9u
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0Lmxv
YWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7CisgICAgICAgICAgICBz
cGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3Ry
aW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywg
bV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CisgICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQs
IG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29u
c3RJbnRQdHIodWlkKSkpOworICAgICAgICB9CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlR2V0
RXhlY3V0YWJsZSgpCiAgICAgewogICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDEoKSk7CkBAIC03MDIwLDcgKzcwMzcsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xMVk0g
ewogICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChlZGdlLCBzdHJpbmcsIHN0cmluZ0ltcGwp
OwogICAgICAgICByZXR1cm4gc3RyaW5nSW1wbDsKICAgICB9Ci0gICAgCisKKyAgICBMVmFsdWUg
bG93U3ltYm9sKEVkZ2UgZWRnZSwgT3BlcmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21h
dGljT3BlcmFuZFNwZWN1bGF0aW9uKQorICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChtb2Rl
LCBtb2RlID09IE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBT
eW1ib2xVc2UpOworCisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UsIG1vZGUp
OworICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICB9CisKICAgICBMVmFsdWUgbG93Tm9uTnVsbE9iamVjdChFZGdlIGVkZ2Us
IE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlv
bikKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVy
YW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gT2JqZWN0VXNlKTsKQEAgLTc0MTcs
NiArNzQ0Myw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgY2FzZSBTdHJpbmdJ
ZGVudFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50KGVkZ2UpOwogICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICAgICAgc3BlY3Vs
YXRlU3ltYm9sKGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RyaW5n
T2JqZWN0VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0KGVkZ2UpOwogICAg
ICAgICAgICAgYnJlYWs7CkBAIC03NTEzLDcgKzc1NDIsMTYgQEAgY2xhc3MgTG93ZXJERkdUb0xM
Vk0gewogICAgICAgICAgICAgbV9vdXQubG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVj
dHVyZUlEKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIodm0oKS5zdHJpbmdTdHJ1Y3R1
cmUtPmlkKCkpKTsKICAgICB9Ci0gICAgCisKKyAgICBMVmFsdWUgaXNOb3RTeW1ib2woTFZhbHVl
IGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKKyAgICB7CisgICAgICAg
IGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVj
U3ltYm9sKSkKKyAgICAgICAgICAgIHJldHVybiBwcm92ZW47CisgICAgICAgIHJldHVybiBtX291
dC5ub3RFcXVhbCgKKyAgICAgICAgICAgIG1fb3V0LmxvYWQzMihjZWxsLCBtX2hlYXBzLkpTQ2Vs
bF9zdHJ1Y3R1cmVJRCksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHZtKCkuc3ltYm9s
U3RydWN0dXJlLT5pZCgpKSk7CisgICAgfQorCiAgICAgTFZhbHVlIGlzQXJyYXlUeXBlKExWYWx1
ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlNb2RlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChhcnJh
eU1vZGUudHlwZSgpKSB7CkBAIC03NzM2LDcgKzc3NzQsMTcgQEAgY2xhc3MgTG93ZXJERkdUb0xM
Vk0gewogICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCiAgICAgICAg
ICAgICBtX291dC5ub3RFcXVhbChzdHJ1Y3R1cmVJRCwgd2Vha1N0cnVjdHVyZUlEKHN0cmluZ09i
amVjdFN0cnVjdHVyZSkpKTsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJv
bChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0so
anNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjU3ltYm9sIHwgflNwZWNDZWxsLCBpc05vdFN5
bWJvbChjZWxsKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSBlZGdl
KQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwor
ICAgIH0KKwogICAgIHZvaWQgc3BlY3VsYXRlTm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIExWYWx1
ZSBjZWxsKQogICAgIHsKICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwp
LCBlZGdlLCBTcGVjT2JqZWN0LCBpc05vdE9iamVjdChjZWxsKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAKaW5kZXggNTgyM2QwMTA5Zjg4NWI4YjFmYjFmNjcwMTZiMzNjMDMwMjNiNmVjMy4u
YzUwNWFmMGVhNzg4ZDJkODdiOTcxOTA5ZTcwNmEzNGY4ZDY2ZDViOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcApAQCAtNjU3LDE3ICs2NTcsMjIgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklU
Ojpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gbV9wdXRCeUlkcy5zaXplKCk7IGktLTspCiAgICAgICAgIG1fcHV0QnlJZHNb
aV0uZmluYWxpemUocGF0Y2hCdWZmZXIpOwogCi0gICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9m
QnlWYWxJbmZvcyhtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKSk7Ci0gICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1fYnlWYWxDb21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0
Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1w
KSk7Ci0gICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5s
b2NhdGlvbk9mKG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uZG9uZVRhcmdldCk7Ci0gICAgICAg
IENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLnNsb3dQYXRoVGFyZ2V0KTsKLSAgICAgICAgQ29k
ZUxvY2F0aW9uQ2FsbCByZXR1cm5BZGRyZXNzID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5
VmFsQ29tcGlsYXRpb25JbmZvW2ldLnJldHVybkFkZHJlc3MpOwotICAgICAgICAKLSAgICAgICAg
bV9jb2RlQmxvY2stPmJ5VmFsSW5mbyhpKSA9IEJ5VmFsSW5mbygKLSAgICAgICAgICAgIG1fYnlW
YWxDb21waWxhdGlvbkluZm9baV0uYnl0ZWNvZGVJbmRleCwKKyAgICBmb3IgKGNvbnN0IGF1dG8m
IGJ5VmFsQ29tcGlsYXRpb25JbmZvIDogbV9ieVZhbENvbXBpbGF0aW9uSW5mbykgeworICAgICAg
ICBQYXRjaGFibGVKdW1wIHBhdGNoYWJsZU5vdEluZGV4SnVtcCA9IGJ5VmFsQ29tcGlsYXRpb25J
bmZvLm5vdEluZGV4SnVtcDsKKyAgICAgICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAg
PSBDb2RlTG9jYXRpb25KdW1wKCk7CisgICAgICAgIGlmIChKdW1wKHBhdGNoYWJsZU5vdEluZGV4
SnVtcCkuaXNTZXQoKSkKKyAgICAgICAgICAgIG5vdEluZGV4SnVtcCA9IENvZGVMb2NhdGlvbkp1
bXAocGF0Y2hCdWZmZXIubG9jYXRpb25PZihwYXRjaGFibGVOb3RJbmRleEp1bXApKTsKKyAgICAg
ICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hC
dWZmZXIubG9jYXRpb25PZihieVZhbENvbXBpbGF0aW9uSW5mby5iYWRUeXBlSnVtcCkpOworICAg
ICAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihieVZhbENvbXBpbGF0aW9uSW5mby5kb25lVGFyZ2V0KTsKKyAgICAgICAgQ29kZUxvY2F0aW9u
TGFiZWwgc2xvd1BhdGhUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGJ5VmFsQ29tcGls
YXRpb25JbmZvLnNsb3dQYXRoVGFyZ2V0KTsKKyAgICAgICAgQ29kZUxvY2F0aW9uQ2FsbCByZXR1
cm5BZGRyZXNzID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihieVZhbENvbXBpbGF0aW9uSW5mby5y
ZXR1cm5BZGRyZXNzKTsKKworICAgICAgICAqYnlWYWxDb21waWxhdGlvbkluZm8uYnlWYWxJbmZv
ID0gQnlWYWxJbmZvKAorICAgICAgICAgICAgYnlWYWxDb21waWxhdGlvbkluZm8uYnl0ZWNvZGVJ
bmRleCwKKyAgICAgICAgICAgIG5vdEluZGV4SnVtcCwKICAgICAgICAgICAgIGJhZFR5cGVKdW1w
LAotICAgICAgICAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5hcnJheU1vZGUsCisgICAg
ICAgICAgICBieVZhbENvbXBpbGF0aW9uSW5mby5hcnJheU1vZGUsCisgICAgICAgICAgICBieVZh
bENvbXBpbGF0aW9uSW5mby5hcnJheVByb2ZpbGUsCiAgICAgICAgICAgICBkaWZmZXJlbmNlQmV0
d2VlbkNvZGVQdHIoYmFkVHlwZUp1bXAsIGRvbmVUYXJnZXQpLAogICAgICAgICAgICAgZGlmZmVy
ZW5jZUJldHdlZW5Db2RlUHRyKHJldHVybkFkZHJlc3MsIHNsb3dQYXRoVGFyZ2V0KSk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggMTAyMzgyMGM1NjExYzIwMTE2MzRjYWNjMGZm
ODA0ZjhkMzJjMWExZi4uOTAxMDhhZjE1ZGViN2QwNmEzYjRiNzVjM2VmOWUxZjFiYTlkNWE5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC0xNDksMTcgKzE0OSwyMyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBzdHJ1Y3QgQnlWYWxDb21waWxhdGlvbkluZm8gewogICAgICAgICBCeVZhbENv
bXBpbGF0aW9uSW5mbygpIHsgfQogICAgICAgICAKLSAgICAgICAgQnlWYWxDb21waWxhdGlvbklu
Zm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAg
YmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJl
bCBkb25lVGFyZ2V0KQotICAgICAgICAgICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgp
CisgICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCB1bnNp
Z25lZCBieXRlY29kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRl
eEp1bXAsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJh
eU1vZGUgYXJyYXlNb2RlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSwgTWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsIGRvbmVUYXJnZXQpCisgICAgICAgICAgICA6IGJ5VmFsSW5mbyhieVZhbEluZm8p
CisgICAgICAgICAgICAsIGJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgICAg
ICwgbm90SW5kZXhKdW1wKG5vdEluZGV4SnVtcCkKICAgICAgICAgICAgICwgYmFkVHlwZUp1bXAo
YmFkVHlwZUp1bXApCiAgICAgICAgICAgICAsIGFycmF5TW9kZShhcnJheU1vZGUpCisgICAgICAg
ICAgICAsIGFycmF5UHJvZmlsZShhcnJheVByb2ZpbGUpCiAgICAgICAgICAgICAsIGRvbmVUYXJn
ZXQoZG9uZVRhcmdldCkKICAgICAgICAgewogICAgICAgICB9Ci0gICAgICAgIAorCisgICAgICAg
IEJ5VmFsSW5mbyogYnlWYWxJbmZvOwogICAgICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4Owor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXA7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wOwogICAgICAgICBK
SVRBcnJheU1vZGUgYXJyYXlNb2RlOworICAgICAgICBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmls
ZTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQ7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpMYWJlbCBzbG93UGF0aFRhcmdldDsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgcmV0dXJuQWRkcmVzczsKQEAgLTIwNCw2ICsyMTAsMTMgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChieVZhbEluZm8sIHJl
dHVybkFkZHJlc3MsIGFycmF5TW9kZSk7CiAgICAgICAgIH0KIAorICAgICAgICBzdGF0aWMgdm9p
ZCBjb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9j
aywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBK
SVQgaml0KHZtLCBjb2RlQmxvY2spOworICAgICAgICAgICAgaml0Lm1fYnl0ZWNvZGVPZmZzZXQg
PSBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisgICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBp
bGVHZXRCeVZhbFdpdGhDYWNoZWRJZChieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIHByb3BlcnR5
TmFtZSk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlUHV0QnlWYWwo
Vk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSklUQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICAg
ICAgewogICAgICAgICAgICAgSklUIGppdCh2bSwgY29kZUJsb2NrKTsKQEAgLTI0Niw2ICsyNTks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcHJpdmF0ZUNv
bXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQpOwogICAgICAgICAKICAgICAgICAgdm9pZCBwcml2
YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5
TW9kZSk7CisgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChC
eVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAg
IHZvaWQgcHJpdmF0ZUNvbXBpbGVQdXRCeVZhbChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRy
LCBKSVRBcnJheU1vZGUpOwogCiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVIYXNJbmRleGVk
UHJvcGVydHkoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKQEAg
LTM3MSw3ICszODUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSnVtcExpc3QgZW1pdEFy
cmF5U3RvcmFnZVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSk7
CiAgICAgICAgIEp1bXBMaXN0IGVtaXRJbnRUeXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1Y3Rpb24q
LCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBUeXBlZEFycmF5VHlwZSk7CiAgICAgICAgIEp1bXBM
aXN0IGVtaXRGbG9hdFR5cGVkQXJyYXlQdXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1
bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlUeXBlKTsKLSAgICAgICAgCisKKyAgICAgICAgSklUR2V0
QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qLCBjb25z
dCBJZGVudGlmaWVyJiwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcyk7
CisKICAgICAgICAgZW51bSBGaW5hbE9iamVjdE1vZGUgeyBNYXlCZUZpbmFsLCBLbm93bk5vdEZp
bmFsIH07CiAKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEp1bXAgYnJhbmNoU3RydWN0
dXJlKFJlbGF0aW9uYWxDb25kaXRpb24sIFQgbGVmdEhhbmRTaWRlLCBTdHJ1Y3R1cmUqKTsKQEAg
LTcwMiw2ICs3MTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJSZWcsIGNv
bnN0IElkZW50aWZpZXIqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSkosIGludCwgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBp
bnQsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcs
IEdQUlJlZywgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oQ19KSVRPcGVyYXRpb25fRUpzYywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSnNjQywgaW50LCBHUFJS
ZWcsIEpTQ2VsbCopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KENfSklUT3BlcmF0aW9uX0VKc2NaLCBHUFJSZWcsIGludDMyX3QpOwpAQCAtNzQ2LDYgKzc2Myw3
IEBAIG5hbWVzcGFjZSBKU0MgewogI2VuZGlmCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJ
RCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUpKSkFwLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3Rl
cklELCBBcnJheVByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKQnksIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWkosIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lz
dGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VKWiwgUmVnaXN0ZXJJRCwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVBjLCBJbnN0cnVjdGlvbiop
OwpAQCAtNzYyLDYgKzc4MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSWRjLCBpbnQsIEdQUlJl
ZywgR1BSUmVnLCBjb25zdCBJZGVudGlmaWVyKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVn
LCBHUFJSZWcsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywg
R1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BS
UmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VKUywgR1BSUmVnLCBHUFJSZWcsIHNpemVfdCk7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRp
b25fRUosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CkBAIC03NjksNiArNzg4LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9K
SVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkosIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VKSkpBcCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgQXJyYXlQcm9maWxlKik7CisgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5
LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3Rl
cklELCBSZWdpc3RlcklELCBCeVZhbEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlosIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQsIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VKWkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VaSiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IGQwOGQ3M2Vh
ZDc0MGFkZjhkYTk2NmYzYWQyODg0ODYzM2Q2NGI2OGQuLjVkNjg2OTAwODFjOTk2ZDdlMzNiZjNi
ZDI1ZGNjNThiMDMwZjdkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
CkBAIC00MTEsNiArNDExLDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
SklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lO
TElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRp
b25fRUpKSkJ5IG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3Ay
LCBSZWdpc3RlcklEIHJlZ09wMywgQnlWYWxJbmZvKiBieVZhbEluZm8pCit7CisgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyLCByZWdPcDMsIFRydXN0ZWRJbW1Q
dHIoYnlWYWxJbmZvKSk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2so
b3BlcmF0aW9uKTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BS
UmVnIGFyZykKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMy
KGRzdCksIGFyZyk7CkBAIC00NTksNiArNDY1LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwIG9wZXJh
CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0
KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnkgb3BlcmF0aW9uLCBpbnQg
ZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorewor
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRy
KGJ5VmFsSW5mbykpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0
SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9w
ZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxKQogewogICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShhcmcxKTsKQEAgLTYwMCw2ICs2MTIsMTIgQEAgQUxXQVlTX0lOTElORSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpK
QXAgb3BlcmEKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFs
dWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSBvcGVyYXRp
b24sIGludCBkc3QsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBh
cmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5
bG9hZCwgYXJnMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZywg
VHJ1c3RlZEltbVB0cihieVZhbEluZm8pKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOworfQorCiBBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQ
cm9maWxlVGFnLCBKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcg
YXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQ
YXlsb2FkKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RV
TU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyBhcmcyUGF5
bG9hZCwgYXJnMlRhZyk7CkBAIC02NjYsNiArNjg0LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCBv
cGVyCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsK
IH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5IG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDFUYWcs
IFJlZ2lzdGVySUQgcmVnT3AxUGF5bG9hZCwgUmVnaXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lzdGVy
SUQgcmVnT3AyUGF5bG9hZCwgUmVnaXN0ZXJJRCByZWdPcDNUYWcsIFJlZ2lzdGVySUQgcmVnT3Az
UGF5bG9hZCwgQnlWYWxJbmZvKiBieVZhbEluZm8pCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZywg
U0g0XzMyQklUX0RVTU1ZX0FSRyByZWdPcDJQYXlsb2FkLCByZWdPcDJUYWcsIHJlZ09wM1BheWxv
YWQsIHJlZ09wM1RhZywgVHJ1c3RlZEltbVB0cihieVZhbEluZm8pKTsKKyAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
Wkogb3BlcmF0aW9uLCBpbnQgZHN0LCBSZWdpc3RlcklEIHJlZ09wMVRhZywgUmVnaXN0ZXJJRCBy
ZWdPcDFQYXlsb2FkKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVk
SW1tMzIoZHN0KSwgcmVnT3AxUGF5bG9hZCwgcmVnT3AxVGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGQzY2YwZGZkZjdlMTUwZDlkMzEwNjJiMjlkOGE2
ZjU4M2Y2YTAwNjUuLjhjOGJlNzgwOTBiOTY4ZjBhZWU3MDdhNWUwM2JhYWI0YzRlNjc0NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTA2Nyw2ICsxMDY3
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
NF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVCbG9j
ay0+YWRkQnlWYWxJbmZvKCk7CiAgICAgCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMoYmFz
ZSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMSk7CiAKQEAgLTEwOTgsNyArMTA5OSw3IEBAIHZvaWQg
SklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgIAot
ICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1f
Ynl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNv
ZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkp
OwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRv
ciYgaXRlcikKQEAgLTExMDYsNyArMTEwNyw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNf
aW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAg
ICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IGJh
c2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9
IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgQXJyYXlQcm9maWxlKiBwcm9m
aWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5m
byogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25J
bmRleF0uYnlWYWxJbmZvOwogICAgIAogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIs
IGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJh
c2UgYXJyYXkgY2hlY2sKQEAgLTExMTcsNyArMTExOCw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBW
ZWN0CiAgICAgCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNlLCByZWdUMCk7CiAgICAg
ZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm9wZXJ0eSwgcmVnVDEpOwotICAgIENhbGwgY2FsbCA9
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCBy
ZWdUMCwgcmVnVDEsIHByb2ZpbGUpOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCByZWdUMCwgcmVnVDEsIGJ5VmFs
SW5mbyk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbklu
ZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDQzZTAyZWU4
NTFmN2U3ZmNkNzZmOGQ1MzJhY2MxMjgyMGVjMzQ4NTQuLjI1NzhlNWI1ODRhZTE3ZGE3YTU3MGRj
Njk3YTFkZjUxMjlmMmI1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMzMl82NC5jcHAKQEAgLTEwNjcsNiArMTA2Nyw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hh
c19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
aW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9w
ZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxl
KiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5
VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAgIAog
ICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMCk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlm
Tm90SlNDZWxsKGJhc2UpOwpAQCAtMTA5OSw3ICsxMTAwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
aGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICAKICAgICBlbWl0U3RvcmVCb29sKGRzdCwgcmVnVDApOwogICAgIAotICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQs
IGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVu
ZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNo
YWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTEx
MDcsNyArMTEwOCw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0
eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgaW50IGRzdCA9IGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVj
dGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudElu
c3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0g
bV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZv
OwogICAgIAogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNl
IGNlbGwgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sK
QEAgLTExMTgsNyArMTExOSw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9w
cm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgCiAgICAg
ZW1pdExvYWQoYmFzZSwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0TG9hZChwcm9wZXJ0eSwgcmVn
VDMsIHJlZ1QyKTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkhhc0lu
ZGV4ZWRQcm9wZXJ0eURlZmF1bHQsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIsIHBy
b2ZpbGUpOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhl
ZFByb3BlcnR5RGVmYXVsdCwgZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMiwgYnlWYWxJ
bmZvKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5k
ZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5m
b1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCBiNTkxMzRlYWY3NWZl
ODA5MmVhMmEyY2I1ZWNjZTRlNWY0ZjcxN2M5Li43YWU0M2YwYTBhOWE1ZWE3MTJjOWJiMDRjOTJk
MjYwOTIzYmQ3MzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKQEAgLTQ3OCw3ICs0NzgsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVh
bGxvY2F0ZVN0b3JhZ2VBbmRGaW5pc2hQdXQoRXhlY1N0YXRlKiBleGVjLCBKU09iagogICAgIGJh
c2UtPnB1dERpcmVjdCh2bSwgb2Zmc2V0LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpKTsKIH0KIAot
c3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZh
bHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJh
eVByb2ZpbGUpCitzdGF0aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNW
YWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LCBKU1ZhbHVlIHZhbHVlLCBCeVZhbElu
Zm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgaWYg
KExJS0VMWShzdWJzY3JpcHQuaXNVSW50MzIoKSkpIHsKQEAgLTQ4OCw3ICs0ODgsNyBAQCBzdGF0
aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUs
IEpTVmFsdWUgc3Vic2NyaXB0LAogICAgICAgICAgICAgaWYgKG9iamVjdC0+Y2FuU2V0SW5kZXhR
dWlja2x5KGkpKQogICAgICAgICAgICAgICAgIG9iamVjdC0+c2V0SW5kZXhRdWlja2x5KGNhbGxG
cmFtZS0+dm0oKSwgaSwgdmFsdWUpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAgICAgICAgICAgICAgIGJ5VmFs
SW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgICAgICAgICAgICAgIG9i
amVjdC0+bWV0aG9kVGFibGUodm0pLT5wdXRCeUluZGV4KG9iamVjdCwgY2FsbEZyYW1lLCBpLCB2
YWx1ZSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9IGVsc2UKQEAgLTUwMiw3ICs1MDIsNyBAQCBzdGF0aWMgdm9pZCBwdXRC
eVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vi
c2NyaXB0LAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNW
YWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCitzdGF0aWMgdm9pZCBkaXJl
Y3RQdXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEpT
VmFsdWUgc3Vic2NyaXB0LCBKU1ZhbHVlIHZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsK
ICAgICBib29sIGlzU3RyaWN0TW9kZSA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0
TW9kZSgpOwogICAgIGlmIChMSUtFTFkoc3Vic2NyaXB0LmlzVUludDMyKCkpKSB7CkBAIC01MTQs
NyArNTE0LDcgQEAgc3RhdGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVlIHMKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAg
ICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAgICAg
IGJhc2VPYmplY3QtPnB1dERpcmVjdEluZGV4KGNhbGxGcmFtZSwgaW5kZXgsIHZhbHVlLCAwLCBp
c1N0cmljdE1vZGUgPyBQdXREaXJlY3RJbmRleFNob3VsZFRocm93IDogUHV0RGlyZWN0SW5kZXhT
aG91bGROb3RUaHJvdyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01NDAsNyArNTQwLDcg
QEAgc3RhdGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2Jq
ZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVlIHMKICAgICAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0
KGNhbGxGcmFtZS0+dm0oKSwgcHJvcGVydHksIHZhbHVlLCBzbG90KTsKICAgICB9CiB9Ci12b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxl
KQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5m
bykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTU1NCwyMSArNTU0LDE5IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlCiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUp
OwogICAgICAgICBib29sIGRpZE9wdGltaXplID0gZmFsc2U7CiAKLSAgICAgICAgdW5zaWduZWQg
Ynl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKLSAgICAg
ICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgQnlWYWxJbmZvJiBieVZhbEluZm8g
PSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7Ci0g
ICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKKyAgICAgICAgQVNTRVJUKGV4
ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKKyAgICAgICAgQVNTRVJUKCFieVZhbElu
Zm8tPnN0dWJSb3V0aW5lKTsKIAogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVj
dC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcoc3Ry
dWN0dXJlKSkgewogICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KICAgICAgICAg
ICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3Ry
dWN0dXJlKTsKLSAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9k
ZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFsSW5mby5hcnJheU1vZGUpIHsKKyAgICAgICAgICAgIGlm
IChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFs
SW5mby0+YXJyYXlNb2RlKSB7CiAgICAgICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBleGVjLT5jb2RlQmxvY2soKTsKICAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2Vy
IGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7Ci0gICAgICAgICAgICAgICAgYXJyYXlQcm9maWxl
LT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7
CisgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPmNvbXB1dGVVcGRhdGVk
UHJlZGljdGlvbihsb2NrZXIsIGNvZGVCbG9jaywgc3RydWN0dXJlKTsKIAotICAgICAgICAgICAg
ICAgIEpJVDo6Y29tcGlsZVB1dEJ5VmFsKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbElu
Zm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAg
ICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygp
LCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlN
b2RlKTsKICAgICAgICAgICAgICAgICBkaWRPcHRpbWl6ZSA9IHRydWU7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KQEAgLTU3OSw3ICs1NzcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZQog
ICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2
ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVyZSB3
ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJh
dGlvbnMgd29ydGggb2YKICAgICAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNl
cnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAgICAg
aWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKKyAgICAgICAgICAgIGlmICgrK2J5
VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVjdC0+
c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBEb24n
dCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJl
dHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVS
Tl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKSk7CkBAIC01
ODcsMTAgKzU4NSwxMCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICB9CiAgICAg
fQogCi0gICAgcHV0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJh
eVByb2ZpbGUpOworICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1
ZSwgYnlWYWxJbmZvKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1
dEJ5VmFsKEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQordm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAg
IFZNJiB2bSA9IGNhbGxGcmFtZS0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKCZ2bSwgY2FsbEZyYW1lKTsKQEAgLTYwMywyMiArNjAxLDIwIEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2Rl
ZEpTVmFsdWUKICAgICBpZiAoc3Vic2NyaXB0LmlzSW50MzIoKSkgewogICAgICAgICAvLyBTZWUg
aWYgaXQncyB3b3J0aCBvcHRpbWl6aW5nIGF0IGFsbC4KICAgICAgICAgYm9vbCBkaWRPcHRpbWl6
ZSA9IGZhbHNlOwotICAgICAgICAKLSAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBj
YWxsRnJhbWUtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOwotICAgICAgICBBU1NFUlQoYnl0
ZWNvZGVPZmZzZXQpOwotICAgICAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGNhbGxGcmFtZS0+
Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwotICAgICAgICBB
U1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7CisKKyAgICAgICAgQVNTRVJUKGNhbGxGcmFt
ZS0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOworICAgICAgICBBU1NFUlQoIWJ5VmFsSW5m
by0+c3R1YlJvdXRpbmUpOwogCiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gb2JqZWN0
LT5zdHJ1Y3R1cmUodm0pOwogICAgICAgICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhzdHJ1
Y3R1cmUpKSB7CiAgICAgICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICAg
ICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZSA9IGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShzdHJ1
Y3R1cmUpOwotICAgICAgICAgICAgaWYgKGppdEFycmF5TW9kZVBlcm1pdHNQdXQoYXJyYXlNb2Rl
KSAmJiBhcnJheU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgeworICAgICAgICAgICAgaWYg
KGppdEFycmF5TW9kZVBlcm1pdHNQdXQoYXJyYXlNb2RlKSAmJiBhcnJheU1vZGUgIT0gYnlWYWxJ
bmZvLT5hcnJheU1vZGUpIHsKICAgICAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9
IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExv
Y2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgICAgIGFycmF5UHJv
ZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1
cmUpOworICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5jb21wdXRlVXBk
YXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CiAKLSAgICAgICAg
ICAgICAgICBKSVQ6OmNvbXBpbGVEaXJlY3RQdXRCeVZhbCgmdm0sIGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwg
YXJyYXlNb2RlKTsKKyAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVEaXJlY3RQdXRCeVZhbCgm
dm0sIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihP
VVJfUkVUVVJOX0FERFJFU1MpLCBhcnJheU1vZGUpOwogICAgICAgICAgICAgICAgIGRpZE9wdGlt
aXplID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNjI5LDE3ICs2MjUsMTcg
QEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSog
Y2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZQogICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRz
IGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNh
c2VzCiAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBv
YmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJhdGlvbnMgd29ydGggb2YKICAgICAgICAgICAgIC8v
IG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJl
IHBvbHltb3JwaGljLgotICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQg
Pj0gMTAKKyAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAog
ICAgICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRl
cmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkp
IHsKICAgICAgICAgICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KICAgICAg
ICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihv
cGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KLSAgICBkaXJlY3RQdXRCeVZhbChjYWxsRnJhbWUsIG9iamVjdCwgc3Vic2NyaXB0
LCB2YWx1ZSwgYXJyYXlQcm9maWxlKTsKKyAgICBkaXJlY3RQdXRCeVZhbChjYWxsRnJhbWUsIG9i
amVjdCwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCit2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFs
SW5mbykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTY0OCwxMSArNjQ0LDExIEBAIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvCiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFN1YnNjcmlwdCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwogCi0gICAgcHV0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZh
bHVlLCBhcnJheVByb2ZpbGUpOworICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2Ny
aXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsKIH0KIAogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKK3ZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlW
YWxJbmZvKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtNjYxLDcgKzY1Nyw3IEBAIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFN1YnNjcmlwdCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwogICAgIFJFTEVBU0VfQVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKLSAg
ICBkaXJlY3RQdXRCeVZhbChleGVjLCBhc09iamVjdChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZh
bHVlLCBhcnJheVByb2ZpbGUpOworICAgIGRpcmVjdFB1dEJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJh
c2VWYWx1ZSksIHN1YnNjcmlwdCwgdmFsdWUsIGJ5VmFsSW5mbyk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjLCBFeGVj
U3RhdGUqIGV4ZWNDYWxsZWUpCkBAIC0xNDE0LDM0ICsxNDEwLDQxIEBAIHN0YXRpYyBib29sIGNh
bkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlja2x5KEpTT2JqZWN0JiBvYmplY3QsIHVpbnQzMl90IGlu
ZGV4KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEFycmF5
UHJvZmlsZSogYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCitz
dGF0aWMgSlNWYWx1ZSBnZXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVl
LCBKU1ZhbHVlIHN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQ
dHIgcmV0dXJuQWRkcmVzcykKIHsKICAgICBpZiAoTElLRUxZKGJhc2VWYWx1ZS5pc0NlbGwoKSAm
JiBzdWJzY3JpcHQuaXNTdHJpbmcoKSkpIHsKICAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICAgICAgU3RydWN0dXJlJiBzdHJ1Y3R1cmUgPSAqYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1
Y3R1cmUodm0pOwogICAgICAgICBpZiAoSlNDZWxsOjpjYW5Vc2VGYXN0R2V0T3duUHJvcGVydHko
c3RydWN0dXJlKSkgewogICAgICAgICAgICAgaWYgKFJlZlB0cjxBdG9taWNTdHJpbmdJbXBsPiBl
eGlzdGluZ0F0b21pY1N0cmluZyA9IGFzU3RyaW5nKHN1YnNjcmlwdCktPnRvRXhpc3RpbmdBdG9t
aWNTdHJpbmcoZXhlYykpIHsKLSAgICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBi
YXNlVmFsdWUuYXNDZWxsKCktPmZhc3RHZXRPd25Qcm9wZXJ0eSh2bSwgc3RydWN0dXJlLCBleGlz
dGluZ0F0b21pY1N0cmluZy5nZXQoKSkpCisgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgcmVz
dWx0ID0gYmFzZVZhbHVlLmFzQ2VsbCgpLT5mYXN0R2V0T3duUHJvcGVydHkodm0sIHN0cnVjdHVy
ZSwgZXhpc3RpbmdBdG9taWNTdHJpbmcuZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIEFT
U0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmIGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgp
ICE9IGV4aXN0aW5nQXRvbWljU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgYnlWYWxJ
bmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
IAogICAgIGlmIChzdWJzY3JpcHQuaXNVSW50MzIoKSkgeworICAgICAgICBBU1NFUlQoZXhlYy0+
bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOworICAgICAgICBieVZhbEluZm8tPnRvb2tTbG93
UGF0aCA9IHRydWU7CisKICAgICAgICAgdWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigp
OwogICAgICAgICBpZiAoaXNKU1N0cmluZyhiYXNlVmFsdWUpKSB7CiAgICAgICAgICAgICBpZiAo
YXNTdHJpbmcoYmFzZVZhbHVlKS0+Y2FuR2V0SW5kZXgoaSkpIHsKICAgICAgICAgICAgICAgICBj
dGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIHJldHVybkFkZHJl
c3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGFzU3RyaW5nKGJhc2VWYWx1ZSktPmdldEluZGV4KGV4ZWMsIGkpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAg
ICAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIEpTT2Jq
ZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogICAgICAgICAgICAgaWYgKG9iamVj
dC0+Y2FuR2V0SW5kZXhRdWlja2x5KGkpKQogICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Qt
PmdldEluZGV4UXVpY2tseShpKTsKIAogICAgICAgICAgICAgaWYgKCFjYW5BY2Nlc3NBcmd1bWVu
dEluZGV4UXVpY2tseSgqb2JqZWN0LCBpKSkKLSAgICAgICAgICAgICAgICBhcnJheVByb2ZpbGUt
PnNldE91dE9mQm91bmRzKCk7CisgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2Zp
bGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gYmFzZVZh
bHVlLmdldChleGVjLCBpKTsKQEAgLTE0NTMsNzQgKzE0NTYsOTEgQEAgc3RhdGljIEpTVmFsdWUg
Z2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJz
Y3JpcHQsIEEKICAgICBhdXRvIHByb3BlcnR5ID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZXhl
Yyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKKworICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7
CisgICAgaWYgKGJ5VmFsSW5mby0+c3R1YkluZm8gJiYgYnlWYWxJbmZvLT5jYWNoZWRJZCAhPSBw
cm9wZXJ0eSkKKyAgICAgICAgYnlWYWxJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOworCiAgICAg
cmV0dXJuIGJhc2VWYWx1ZS5nZXQoZXhlYywgcHJvcGVydHkpOwogfQogCiBleHRlcm4gIkMiIHsK
ICAgICAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5l
cmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAg
ICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAg
IEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwog
Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlw
dCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOwor
ICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQs
IGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBB
cnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8q
IGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7Ci0gICAgCisKICAgICBpZiAoYmFzZVZhbHVl
LmlzT2JqZWN0KCkgJiYgc3Vic2NyaXB0LmlzSW50MzIoKSkgewogICAgICAgICAvLyBTZWUgaWYg
aXQncyB3b3J0aCBvcHRpbWl6aW5nIHRoaXMgYXQgYWxsLgogICAgICAgICBKU09iamVjdCogb2Jq
ZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZh
bHNlOwogCi0gICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25B
c0J5dGVjb2RlT2Zmc2V0KCk7Ci0gICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7Ci0gICAg
ICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5m
byhieXRlY29kZU9mZnNldCAtIDEpOwotICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91
dGluZSk7Ci0gICAgICAgIAorICAgICAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2Rl
T2Zmc2V0KCkpOworICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOworCiAg
ICAgICAgIGlmIChoYXNPcHRpbWl6YWJsZUluZGV4aW5nKG9iamVjdC0+c3RydWN0dXJlKHZtKSkp
IHsKICAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVjdC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgICAgIEpJ
VEFycmF5TW9kZSBhcnJheU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJl
KTsKLSAgICAgICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgewor
ICAgICAgICAgICAgaWYgKGFycmF5TW9kZSAhPSBieVZhbEluZm8tPmFycmF5TW9kZSkgewogICAg
ICAgICAgICAgICAgIC8vIElmIHdlIHJlYWNoZWQgdGhpcyBjYXNlLCB3ZSBnb3QgYW4gaW50ZXJl
c3RpbmcgYXJyYXkgbW9kZSB3ZSBkaWQgbm90IGV4cGVjdCB3aGVuIHdlIGNvbXBpbGVkLgogICAg
ICAgICAgICAgICAgIC8vIExldCdzIHVwZGF0ZSB0aGUgcHJvZmlsZSB0byBkbyBiZXR0ZXIgbmV4
dCB0aW1lLgogICAgICAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29k
ZUJsb2NrKCk7CiAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29k
ZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVw
ZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAg
ICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24o
bG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CiAKLSAgICAgICAgICAgICAgICBKSVQ6OmNv
bXBpbGVHZXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCAmYnlWYWxJbmZvLCBSZXR1cm5B
ZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAgICAgICAg
ICAgSklUOjpjb21waWxlR2V0QnlWYWwoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZv
LCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CiAgICAg
ICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9
Ci0gICAgICAgIAorCiAgICAgICAgIGlmICghZGlkT3B0aW1pemUpIHsKICAgICAgICAgICAgIC8v
IElmIHdlIHRha2Ugc2xvdyBwYXRoIG1vcmUgdGhhbiAxMCB0aW1lcyB3aXRob3V0IHBhdGNoaW5n
IHRoZW4gbWFrZSBzdXJlIHdlCiAgICAgICAgICAgICAvLyBuZXZlciBtYWtlIHRoYXQgbWlzdGFr
ZSBhZ2Fpbi4gT3IsIGlmIHdlIGZhaWxlZCB0byBwYXRjaCBhbmQgd2UgaGF2ZSBzb21lIG9iamVj
dAogICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0
IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVy
ZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0
ZXJhdGlvbnMgd29ydGggb2YKICAgICAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBv
YnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAg
ICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKKyAgICAgICAgICAgIGlmICgr
K2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVj
dC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBE
b24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxC
eVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JF
VFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAgSlNWYWx1ZSByZXN1bHQg
PSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1
cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOworCisgICAgaWYgKGJhc2VWYWx1ZS5p
c09iamVjdCgpICYmIChzdWJzY3JpcHQuaXNTeW1ib2woKSB8fCBzdWJzY3JpcHQuaXNTdHJpbmco
KSkpIHsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3JpcHQu
dG9Qcm9wZXJ0eUtleShleGVjKTsKKworICAgICAgICBpZiAoIXN1YnNjcmlwdC5pc1N0cmluZygp
IHx8ICFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgICAgIEFTU0VSVChleGVj
LT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWJ5VmFs
SW5mby0+c3R1YlJvdXRpbmUpOworICAgICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWxXaXRo
Q2FjaGVkSWQoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNz
UHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIHByb3BlcnR5TmFtZSk7CisgICAgICAgIH0KKworICAg
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUpOworICAgICAgICBib29sIGhhc1Jlc3Vs
dCA9IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShoYXNSZXN1bHQgPyBzbG90LmdldFZhbHVl
KGV4ZWMsIHByb3BlcnR5TmFtZSkgOiBqc1VuZGVmaW5lZCgpKTsKKyAgICB9CisKKyAgICBKU1Zh
bHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBieVZhbElu
Zm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQotICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3Jp
cHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xNTMzLDE2
ICsxNTUzLDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5k
ZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgSlNPYmplY3QqIG9iamVj
dCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CiAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwog
Ci0gICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVP
ZmZzZXQoKTsKLSAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQpOwotICAgIEJ5VmFsSW5mbyYgYnlW
YWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAt
IDEpOwotICAgIEFTU0VSVCghYnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKKyAgICBBU1NFUlQoZXhl
Yy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOworICAgIEFTU0VSVCghYnlWYWxJbmZvLT5z
dHViUm91dGluZSk7CiAgICAgCiAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcob2JqZWN0
LT5zdHJ1Y3R1cmUodm0pKSkgewogICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAg
ICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKG9i
amVjdC0+c3RydWN0dXJlKHZtKSk7Ci0gICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZv
LmFycmF5TW9kZSkgewotICAgICAgICAgICAgSklUOjpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5
KCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VS
X1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgaWYgKGFycmF5TW9kZSAhPSBi
eVZhbEluZm8tPmFycmF5TW9kZSkgeworICAgICAgICAgICAgSklUOjpjb21waWxlSGFzSW5kZXhl
ZFByb3BlcnR5KCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVz
c1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBhcnJheU1vZGUpOwogICAgICAgICAgICAgZGlkT3B0
aW1pemUgPSB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTU1MywxMCArMTU3MSwxMCBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURl
ZmF1bHQoRXhlY1N0YXRlKiBleGVjLAogICAgICAgICAvLyB0aGF0IGludGVyY2VwdHMgaW5kZXhl
ZCBnZXQsIHRoZW4gZG9uJ3QgZXZlbiB3YWl0IHVudGlsIDEwIHRpbWVzLiBGb3IgY2FzZXMKICAg
ICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhp
cyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZv
ciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgot
ICAgICAgICBpZiAoKytieVZhbEluZm8uc2xvd1BhdGhDb3VudCA+PSAxMAorICAgICAgICBpZiAo
KytieVZhbEluZm8tPnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgIHx8IG9iamVjdC0+
c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgIC8vIERvbid0IGV2
ZXIgdHJ5IHRvIG9wdGltaXplLgotICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRy
ZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVT
UyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMpKTsgCisg
ICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCks
IFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0
aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYykpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0x
NTY1LDExICsxNTgzLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
SGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShKU1ZhbHVlOjpKU1RydWUpKTsKIAogICAgIGlmICgh
Y2FuQWNjZXNzQXJndW1lbnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaW5kZXgpKQotICAgICAgICBh
cnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQ
cm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKG9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgaW5kZXgpKSk7CiB9CiAgICAgCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVy
aWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVy
aWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwg
ZXhlYyk7CkBAIC0xNTg1LDExICsxNjAzLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShKU1ZhbHVlOjpKU1RydWUpKTsK
IAogICAgIGlmICghY2FuQWNjZXNzQXJndW1lbnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaW5kZXgp
KQotICAgICAgICBhcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAgICAgIGJ5VmFs
SW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNCb29sZWFuKG9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgc3Vic2NyaXB0LmFz
VUludDMyKCkpKSk7CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTYwNCwxMCArMTYy
Miw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJp
bmcoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWCiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgcmVzdWx0ID0gYmFzZVZhbHVlLmdldChleGVjLCBpKTsKICAgICAgICAgICAgIGlmICghaXNK
U1N0cmluZyhiYXNlVmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVP
ZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKLSAgICAgICAgICAgICAg
ICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQpOwotICAgICAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlW
YWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAt
IDEpOwotICAgICAgICAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhleGVjLT5j
b2RlQmxvY2soKSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlv
blB0cihieVZhbEluZm8uc3R1YlJvdXRpbmUgPyBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMgOiBv
cGVyYXRpb25HZXRCeVZhbE9wdGltaXplKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGV4ZWMt
PmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKKyAgICAgICAgICAgICAgICBjdGlQYXRjaENh
bGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VS
X1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIoYnlWYWxJbmZvLT5zdHViUm91dGluZSA/IG9w
ZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyA6IG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IDJlZjJhNTY5OWY3ZjNhZDBlNzcwZjQ3ODhlOTQz
ZjA3ZjgxMGJhZDcuLjNkODNmNTkwZGNmOTE4MDNhMzQ0OGJhMDgzYjJmOTJiY2JlODRmOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC01OCw2ICs1OCw3
IEBAIGV4dGVybiAiQyIgewogICAgIEE6IEpTQXJyYXkqCiAgICAgQWFwOiBBcnJheUFsbG9jYXRp
b25Qcm9maWxlKgogICAgIEFwOiBBcnJheVByb2ZpbGUqCisgICAgQnk6IEJ5VmFsSW5mbyoKICAg
ICBDOiBKU0NlbGwqCiAgICAgQ2I6IENvZGVCbG9jayoKICAgICBDbGk6IENhbGxMaW5rSW5mbyoK
QEAgLTExMyw2ICsxMTQsNyBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
KCpKX0pJVE9wZXJhdGlvbl9FSkkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKUwogdHlwZWRlZiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpJZGMpKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyKik7CiB0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKTsKK3R5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpzc1opKEV4ZWNTdGF0
ZSosIEpTU3RyaW5nKiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSlApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCB2
b2lkKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJh
dGlvbl9FUCkoRXhlY1N0YXRlKiwgdm9pZCopOwpAQCAtMTk1LDYgKzE5Nyw3IEBAIHR5cGVkZWYg
dm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpJZEopKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBJCiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0
aW9uX0VKSWRKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FSkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgq
Vl9KSVRPcGVyYXRpb25fRUpKSkFwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKTsKK3R5cGVkZWYgdm9pZCBK
SVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5
cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpQUCkoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIHZvaWQqLCB2b2lkKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJB
VElPTiAoKlZfSklUT3BlcmF0aW9uX0VKWkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBp
bnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VKWikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpOwpA
QCAtMjU5LDEwICsyNjIsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWRO
b25TdHJpY3RCdWlsZExpc3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkkKIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSos
IFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiB2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdEJ1aWxkTGlz
dChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RG
X0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlYWxsb2NhdGVTdG9yYWdl
QW5kRmluaXNoUHV0KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgU3RydWN0dXJlKiwgUHJvcGVydHlP
ZmZzZXQsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdU
Rl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikgV1RG
X0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKSBXVEZf
SU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFs
KEV4ZWNTdGF0ZSosIEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTGlua0NhbGwoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvKikgV1RGX0lOVEVS
TkFMOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rUG9seW1vcnBoaWNDYWxsKEV4
ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyopIFdURl9JTlRFUk5BTDsKQEAgLTMwOSwxMSArMzEyLDEx
IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQz
Ml90KSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZURp
ZENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ2hlY2tIYXNJbnN0YW5jZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgYmFzZVZhbCkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUq
KSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdl
dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFM
OwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFN1YnNjcmlwdCkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJh
eVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJv
ZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVy
aWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJ
bmZvKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0
ZUJ5SWQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgY29uc3QgSWRlbnRpZmllciop
IFdURl9JTlRFUk5BTDsKIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQTmFtZXMo
RXhlY1N0YXRlKiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2YoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIHByb3RvKSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDRlZjA2ZDkyMTNhMmIxZGJm
ZmJhNGM3YzMzNGQyZjZmMWM0NzkxN2UuLjMyMDRkOGVmYzMyZTE3YTczZTZmNzdhMzJjMjQ0NTFm
YWZmMzkyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwCkBAIC05OCw5ICs5OCwxMyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwotICAgIAorICAgIEJ5VmFsSW5mbyogYnlW
YWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOworCiAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMSk7Ci0gICAgZW1pdEp1bXBT
bG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CisKKyAgICBlbWl0SnVtcFNsb3dD
YXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOworCisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRl
eCA9IGVtaXRQYXRjaGFibGVKdW1wSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKIAogICAg
IC8vIFRoaXMgaXMgdGVjaG5pY2FsbHkgaW5jb3JyZWN0IC0gd2UncmUgemVyby1leHRlbmRpbmcg
YW4gaW50MzIuICBPbiB0aGUgaG90IHBhdGggdGhpcyBkb2Vzbid0IG1hdHRlci4KICAgICAvLyBX
ZSBjaGVjayB0aGUgdmFsdWUgYXMgaWYgaXQgd2FzIGEgdWludDMyIGFnYWluc3QgdGhlIG1fdmVj
dG9yTGVuZ3RoIC0gd2hpY2ggd2lsbCBhbHdheXMgZmFpbCBpZgpAQCAtMTEwLDcgKzExNCw2IEBA
IHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKICAgICAvLyBleHRlbmRpbmcgc2luY2UgaXQgbWFrZXMgaXQgZWFzaWVyIHRvIHJlLXRh
ZyB0aGUgdmFsdWUgaW4gdGhlIHNsb3cgY2FzZS4KICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihyZWdU
MSwgcmVnVDEpOwogCi0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNl
KTsKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwocmVnVDAsIHJlZ1QyLCBwcm9m
aWxlKTsKICAgICBhbmQzMihUcnVzdGVkSW1tMzIoSW5kZXhpbmdTaGFwZU1hc2spLCByZWdUMik7
CiAKQEAgLTE0OSw4ICsxNTIsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KCk7CiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwotICAgIAotICAgIG1fYnlWYWxD
b21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZz
ZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8u
YXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFsSW5mbywgbV9ieXRlY29kZU9mZnNldCwg
bm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUpKTsKIH0KIAogSklUOjpKdW1w
TGlzdCBKSVQ6OmVtaXREb3VibGVMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFk
VHlwZSkKQEAgLTE5NSwxNSArMTk4LDUxIEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0QXJyYXlT
dG9yYWdlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCiAgICAgcmV0
dXJuIHNsb3dDYXNlczsKIH0KIAorSklUR2V0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZh
bFdpdGhDYWNoZWRJZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEp1bXBMaXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93
Q2FzZXMpCit7CisgICAgLy8gYmFzZTogcmVnVDAKKyAgICAvLyBwcm9wZXJ0eTogcmVnVDEKKyAg
ICAvLyBzY3JhdGNoOiByZWdUMworCisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQ7CisKKyAgICBzbG93Q2FzZXMuYXBwZW5kKGVtaXRKdW1wSWZOb3RKU0NlbGwo
cmVnVDEpKTsKKyAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgc2xv
d0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpT
Q2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVyZS5nZXQoKSkp
OworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRl
TmFtZSgpKSwgcmVnVDMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQo
YnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVy
ZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9h
ZFB0cihBZGRyZXNzKHJlZ1QxLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcmVnVDMpOwor
ICAgIH0KKyAgICBBU1NFUlQocHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFt
ZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKKyAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVj
aWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3Mo
cmVnVDApLCBEb250U3BpbGwpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKKwor
ICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKKworICAgIExhYmVsIGNvbGRQYXRoQmVnaW4g
PSBsYWJlbCgpOworICAgIGdlbi5zbG93UGF0aEp1bXAoKS5saW5rKHRoaXMpOworCisgICAgQ2Fs
bCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwgb3BlcmF0aW9uR2V0QnlJZE9wdGlt
aXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMCwgcHJvcGVydHlOYW1lLmltcGwoKSk7Cisg
ICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJlZ2luLCBjYWxsKTsKKyAgICBkb25l
Q2FzZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICByZXR1cm4gZ2VuOworfQorCiB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBW
ZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGludCBkc3QgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBiYXNlID0gY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJ
bnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9
IG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLmJ5VmFsSW5m
bzsKICAgICAKLSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNr
CiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBj
aGVjaworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAg
ICBKdW1wIG5vbkNlbGwgPSBqdW1wKCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNl
IGFycmF5IGNoZWNrCiAgICAgSnVtcCBub3RTdHJpbmcgPSBicmFuY2hTdHJ1Y3R1cmUoTm90RXF1
YWwsIApAQCAtMjI0LDcgKzI2Myw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgCiAg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNlLCByZWdUMCk7CiAgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3Rlcihwcm9wZXJ0eSwgcmVnVDEpOwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSwgZHN0LCByZWdUMCwgcmVnVDEsIHByb2ZpbGUp
OworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6
ZSwgZHN0LCByZWdUMCwgcmVnVDEsIGJ5VmFsSW5mbyk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRp
b25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRo
OwogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJl
dHVybkFkZHJlc3MgPSBjYWxsOwpAQCAtMjYzLDYgKzMwMiw3IEBAIHZvaWQgSklUOjplbWl0X29w
X3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgYmFz
ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0g
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2Zp
bGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZv
KiBieVZhbEluZm8gPSBtX2NvZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAKICAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVycyhiYXNlLCByZWdUMCwgcHJvcGVydHksIHJlZ1QxKTsKICAgICBlbWl0
SnVtcFNsb3dDYXNlSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKQEAgLTI5OSw4ICszMzks
NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0gICAgbV9i
eVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29k
ZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwotCisgICAgbV9ieVZhbENvbXBpbGF0aW9u
SW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zm
c2V0LCBQYXRjaGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUpKTsKIH0K
IAogSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRHZW5lcmljQ29udGlndW91c1B1dEJ5VmFsKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIEluZGV4
aW5nVHlwZSBpbmRleGluZ1NoYXBlKQpAQCAtMzk5LDYgKzQzOCw3IEBAIHZvaWQgSklUOjplbWl0
U2xvd19vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3Rv
cjxTbG93Q2FzCiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3Bl
cmFuZDsKICAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwog
ICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5
UHJvZmlsZTsKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fYnlWYWxDb21waWxhdGlvbklu
Zm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLmJ5VmFsSW5mbzsKIAogICAgIGxpbmtTbG93Q2Fz
ZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpT
Q2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCkBAIC00MjQsNyArNDY0LDcgQEAg
dm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3Bl
cnR5LCByZWdUMSk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDIpOwog
ICAgIGJvb2wgaXNEaXJlY3QgPSBtX2ludGVycHJldGVyLT5nZXRPcGNvZGVJRChjdXJyZW50SW5z
dHJ1Y3Rpb24tPnUub3Bjb2RlKSA9PSBvcF9wdXRfYnlfdmFsX2RpcmVjdDsKLSAgICBDYWxsIGNh
bGwgPSBjYWxsT3BlcmF0aW9uKGlzRGlyZWN0ID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwgOiBv
cGVyYXRpb25QdXRCeVZhbCwgcmVnVDAsIHJlZ1QxLCByZWdUMiwgcHJvZmlsZSk7CisgICAgQ2Fs
bCBjYWxsID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFs
IDogb3BlcmF0aW9uUHV0QnlWYWwsIHJlZ1QwLCByZWdUMSwgcmVnVDIsIGJ5VmFsSW5mbyk7CiAK
ICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93
UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZh
bEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpAQCAtOTk5LDYgKzEwMzks
MzYgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWwoQnlWYWxJbmZvKiBieVZhbElu
Zm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWQKICAgICByZXBhdGNoQnVmZmVyLnJlbGlua0Nh
bGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlW
YWxHZW5lcmljKSk7CiB9CiAKK3ZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENh
Y2hlZElkKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJl
c3MsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKKyAgICBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uID0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkg
KyBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7CisKKyAgICBKdW1wTGlzdCBkb25lQ2FzZXM7Cisg
ICAgSnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4gPSBl
bWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoY3VycmVudEluc3RydWN0aW9uLCBwcm9wZXJ0eU5hbWUs
IGRvbmVDYXNlcywgc2xvd0Nhc2VzKTsKKworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2Vy
KG1fY29kZUJsb2NrLT5tX2xvY2spOworICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKm1fdm0s
ICp0aGlzLCBtX2NvZGVCbG9jayk7CisgICAgcGF0Y2hCdWZmZXIubGluayhzbG93Q2FzZXMsIENv
ZGVMb2NhdGlvbkxhYmVsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlRnJvbUV4ZWN1dGFi
bGVBZGRyZXNzKHJldHVybkFkZHJlc3MudmFsdWUoKSkpLmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZv
LT5yZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkpOworICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZUNh
c2VzLCBieVZhbEluZm8tPmJhZFR5cGVKdW1wLmxhYmVsQXRPZmZzZXQoYnlWYWxJbmZvLT5iYWRU
eXBlSnVtcFRvRG9uZSkpOworICAgIGZvciAoY29uc3QgYXV0byYgY2FsbFNpdGUgOiBtX2NhbGxz
KSB7CisgICAgICAgIGlmIChjYWxsU2l0ZS50bykKKyAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxp
bmsoY2FsbFNpdGUuZnJvbSwgRnVuY3Rpb25QdHIoY2FsbFNpdGUudG8pKTsKKyAgICB9CisgICAg
Z2VuLmZpbmFsaXplKHBhdGNoQnVmZmVyKTsKKworICAgIGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUg
PSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICBtX2NvZGVCbG9jaywgcGF0Y2hCdWZm
ZXIsCisgICAgICAgICgiQmFzZWxpbmUgZ2V0X2J5X3ZhbCB3aXRoIGNhY2hlZCBwcm9wZXJ0eSBu
YW1lICclcycgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHByb3BlcnR5TmFtZS5pbXBs
KCktPnV0ZjgoKS5kYXRhKCksIHRvQ1N0cmluZygqbV9jb2RlQmxvY2spLmRhdGEoKSwgcmV0dXJu
QWRkcmVzcy52YWx1ZSgpKSk7CisgICAgYnlWYWxJbmZvLT5jYWNoZWRJZCA9IHByb3BlcnR5TmFt
ZTsKKyAgICBieVZhbEluZm8tPnN0dWJJbmZvID0gZ2VuLnN0dWJJbmZvKCk7CisKKyAgICBSZXBh
dGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIobV9jb2RlQmxvY2spOworICAgIHJlcGF0Y2hCdWZmZXIu
cmVsaW5rKGJ5VmFsSW5mby0+bm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25MYWJlbChieVZhbElu
Zm8tPnN0dWJSb3V0aW5lLT5jb2RlKCkuY29kZSgpKSk7CisgICAgcmVwYXRjaEJ1ZmZlci5yZWxp
bmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdl
dEJ5VmFsR2VuZXJpYykpOworfQorCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVQdXRCeVZhbChC
eVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKSVRB
cnJheU1vZGUgYXJyYXlNb2RlKQogewogICAgIEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24gPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5VmFsSW5mby0+Ynl0
ZWNvZGVJbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4IDYwOWNhMTM4ODIyN2RiNWJkYTUzOTI3NTMwM2RhZGQy
ZDhiMWNlYmMuLmQwYjAwOGY5NmQwOWM4MTA4NTY2ODk1MGFjYzZhYzUzODhjOTIzYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0
LmNwcApAQCAtMTQ5LDExICsxNDksMTMgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJ
bnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9
IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKICAgICAKICAgICBlbWl0TG9hZDIoYmFzZSwg
cmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QyKTsKICAgICAKLSAgICBhZGRTbG93
Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDMsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQz
MlRhZykpKTsKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwor
ICAgIFBhdGNoYWJsZUp1bXAgbm90SW5kZXggPSBwYXRjaGFibGVCcmFuY2gzMihOb3RFcXVhbCwg
cmVnVDMsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZykpOworICAgIGFkZFNsb3dDYXNl
KG5vdEluZGV4KTsKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwocmVnVDAsIHJl
Z1QxLCBwcm9maWxlKTsKICAgICBhbmQzMihUcnVzdGVkSW1tMzIoSW5kZXhpbmdTaGFwZU1hc2sp
LCByZWdUMSk7CiAKQEAgLTE5Miw3ICsxOTQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlf
dmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZSgpOwogICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiAgICAgCi0gICAg
bV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRl
Y29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlv
bkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFsSW5mbywgbV9ieXRlY29kZU9m
ZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUpKTsKIH0KIAogSklU
OjpKdW1wTGlzdCBKSVQ6OmVtaXRDb250aWd1b3VzTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJs
ZUp1bXAmIGJhZFR5cGUsIEluZGV4aW5nVHlwZSBleHBlY3RlZFNoYXBlKQpAQCAtMjM2LDE2ICsy
MzgsNTIgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2FkKEluc3RydWN0
aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICAKICAgICByZXR1cm4gc2xvd0Nhc2Vz
OwogfQotICAgIAorCitKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENh
Y2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykK
K3sKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKworICAg
IC8vIGJhc2U6IHRhZyhyZWdUMSksIHBheWxvYWQocmVnVDApCisgICAgLy8gcHJvcGVydHk6IHRh
ZyhyZWdUMyksIHBheWxvYWQocmVnVDIpCisgICAgLy8gc2NyYXRjaDogcmVnVDQKKworICAgIHNs
b3dDYXNlcy5hcHBlbmQoYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Q2VsbFRhZykpKTsKKyAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3Mo
cmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN5bWJvbFN0cnVjdHVy
ZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIFN5bWJvbDo6b2Zmc2V0
T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6
OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwg
cmVnVDQpOworICAgIH0KKyAgICBBU1NFUlQocHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgc2xv
d0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1Q0LCBUcnVzdGVkSW1tUHRyKHBy
b3BlcnR5TmFtZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKKyAg
ICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVy
U2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25s
eShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2Vu
LmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkp
OworCisgICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRo
SnVtcCgpLmxpbmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQ
cm9maWxlLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJl
Z1QxLCByZWdUMCwgcHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRo
Q2FsbChjb2xkUGF0aEJlZ2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7
CisKKyAgICByZXR1cm4gZ2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3Zh
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kOwogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwot
ICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5
UHJvZmlsZTsKLSAgICAKLSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMy
IGNoZWNrCisgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
W21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZhbEluZm87CisKICAgICBsaW5rU2xvd0Nhc2VJ
Zk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCisgICAgbGlua1Nsb3dD
YXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogCiAgICAgSnVtcCBub25DZWxsID0g
anVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawpAQCAt
MjY1LDcgKzMwMyw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgCiAgICAgZW1pdExv
YWQoYmFzZSwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0TG9hZChwcm9wZXJ0eSwgcmVnVDMsIHJl
Z1QyKTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsT3B0
aW1pemUsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIsIHByb2ZpbGUpOworICAgIENh
bGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSwgZHN0LCBy
ZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMiwgYnlWYWxJbmZvKTsKIAogICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xv
d1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRl
eF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0yNzksNiArMzE3LDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGlu
dCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVy
dHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSog
cHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKKyAgICBCeVZh
bEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKICAgICAKICAg
ICBlbWl0TG9hZDIoYmFzZSwgcmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QyKTsK
ICAgICAKQEAgLTMxNCw3ICszNTMsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxh
YmVsKCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21w
aWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAg
IG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFs
SW5mbywgbV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBw
cm9maWxlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0R2VuZXJpY0NvbnRp
Z3VvdXNQdXRCeVZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBQYXRjaGFibGVK
dW1wJiBiYWRUeXBlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdTaGFwZSkKQEAgLTQxOSw2ICs0NTgs
NyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBt
X2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZhbEluZm87
CiAgICAgCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawog
ICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hl
Y2sKQEAgLTQ1OCw3ICs0OTgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRM
b2FkKHZhbHVlLCByZWdUMCwgcmVnVDEpOwogICAgIGFkZENhbGxBcmd1bWVudChyZWdUMSk7CiAg
ICAgYWRkQ2FsbEFyZ3VtZW50KHJlZ1QwKTsKLSAgICBhZGRDYWxsQXJndW1lbnQoVHJ1c3RlZElt
bVB0cihwcm9maWxlKSk7CisgICAgYWRkQ2FsbEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoYnlWYWxJ
bmZvKSk7CiAgICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhpc0Rp
cmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwpOwogI2Vs
c2UKICAgICAvLyBUaGUgcmVnaXN0ZXIgc2VsZWN0aW9uIGJlbG93IGlzIGNob3NlbiB0byByZWR1
Y2UgcmVnaXN0ZXIgc3dhcHBpbmcgb24gQVJNLgpAQCAtNDY2LDcgKzUwNiw3IEBAIHZvaWQgSklU
OjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24s
IFZlY3RvcjxTbG93Q2FzCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDIsIHJlZ1QxKTsKICAgICBl
bWl0TG9hZChwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QwKTsKICAgICBlbWl0TG9hZCh2YWx1ZSwgcmVn
VDUsIHJlZ1Q0KTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKGlzRGlyZWN0ID8gb3Bl
cmF0aW9uRGlyZWN0UHV0QnlWYWwgOiBvcGVyYXRpb25QdXRCeVZhbCwgcmVnVDIsIHJlZ1QxLCBy
ZWdUMywgcmVnVDAsIHJlZ1Q1LCByZWdUNCwgcHJvZmlsZSk7CisgICAgQ2FsbCBjYWxsID0gY2Fs
bE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9u
UHV0QnlWYWwsIHJlZ1QyLCByZWdUMSwgcmVnVDMsIHJlZ1QwLCByZWdUNSwgcmVnVDQsIGJ5VmFs
SW5mbyk7CiAjZW5kaWYKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3Ry
dWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N5bWJvbC5oCmluZGV4IGU1NzkwZDc4NzIyNmJlYTc2MDI0YzlkMWQ2NmE2NzYw
ZjY0ZGU1YTIuLjgzZjVkZTI0ODUyYmMzNzhlZTBhNzcwMzlmNDYzMTgyNWZkZGRiYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC03OSw2ICs3OSw4IEBAIGNsYXNz
IFN5bWJvbCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIEpTT2JqZWN0KiB0b09iamVjdChF
eGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIGRvdWJsZSB0b051bWJlcihF
eGVjU3RhdGUqKSBjb25zdDsKIAorICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZQcml2YXRlTmFt
ZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTeW1ib2wsIG1fcHJpdmF0ZU5hbWUpOyB9CisK
IHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctY29uc3RydWN0b3IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY29uc3RydWN0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM1ODUx
NjAyZTkzNGIzMzY2OGFlZDJjZmY0ZGRjYjc4NzZlZTE4OAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1j
b25zdHJ1Y3Rvci5qcwpAQCAtMCwwICsxLDIzIEBACit2YXIgc3ltYm9sID0gIkBAc3BlY2llcyI7
CitmdW5jdGlvbiBIZWxsbygpIHsKK30KKworT2JqZWN0LmRlZmluZVByb3BlcnR5KEhlbGxvLCBz
eW1ib2wsIHsKKyAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXM7Cisg
ICAgfQorfSk7CisKK0hlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uICgpIHsKKyAg
ICByZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3Jbc3ltYm9sXSgpOworfTsKKworZnVuY3Rpb24g
b2soKSB7CisgICAgdmFyIG9iamVjdCA9IG5ldyBIZWxsbygpOworICAgIGlmICghKG9iamVjdC5n
ZW5lcmF0ZSgpIGluc3RhbmNlb2YgSGVsbG8pKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJh
ZCBpbnN0YW5jZSIpOworfQorbm9JbmxpbmUob2spOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpCisgICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0LmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWFhMjYyZDY0YTY2MTQ5NjQ2NjlhYjc0Y2IyZjAxZmE0ZWQ4MDJmNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1leGl0LmpzCkBAIC0wLDAgKzEsMzQgQEAKK2Z1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlv
biBnZXRCeVZhbChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30K
K25vSW5saW5lKGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3RyMSgpCit7CisgICAgcmV0dXJu
ICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIxKTsKKworZnVuY3Rpb24gZ2V0U3RyMigpCit7
CisgICAgcmV0dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIyKTsKKwordmFyIG9iamVj
dCA9IHsKKyAgICBoZWxsbzogNDIKK307CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kp
CisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN0cjEoKSA6
IGdldFN0cjIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgeyB0b1N0cmluZygp
IHsgcmV0dXJuICdoZWxsbyc7IH0gfSksIDQyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRT
dHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7CitzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIHsgdG9T
dHJpbmcoKSB7IHJldHVybiAnaGVsbG8nOyB9IH0pLCA0Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2VuZXJh
dGVkLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWdlbmVyYXRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODEzYTdlMTQwZDM4NjY1M2ZiYzM1
NGM1MGVhZDU4ZTEyMTlkM2E0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcwpAQCAt
MCwwICsxLDMzIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZh
bHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQor
eworICAgIHJldHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRCeVZhbCk7CisKK3Zh
ciB2YWx1ZSA9ICdsbyc7CisKK2Z1bmN0aW9uIGdldFN0cjEoKQoreworICAgIHJldHVybiAiaGVs
IiArIHZhbHVlOworfQorbm9JbmxpbmUoZ2V0U3RyMSk7CisKK2Z1bmN0aW9uIGdldFN0cjIoKQor
eworICAgIHJldHVybiAiaGVsbG8iOworfQorbm9JbmxpbmUoZ2V0U3RyMik7CisKK3ZhciBvYmpl
Y3QgPSB7CisgICAgaGVsbG86IDQyLAorICAgIHdvcmxkOiA1MAorfTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIg
PT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7CitzaG91bGRCZShnZXRCeVZhbChv
YmplY3QsICd3b3JsZCcpLCA1MCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2V0dGVyLmpzIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdldHRlci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NThlYzBhODZkYjk1NGQ4NDdmNmI4Zjc2MmQyOTZiZWRjZWIxYmY1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWdldHRlci5qcwpAQCAtMCwwICsxLDE2IEBACisKK3ZhciBvYmpl
Y3QgPSB7CisgICAgZ2V0IGhlbGxvKCkgeworICAgICAgICByZXR1cm4gNDI7CisgICAgfQorfTsK
KworZnVuY3Rpb24gb2soKSB7CisgICAgdmFyIHZhbHVlID0gJ2hlbGxvJzsKKyAgICBpZiAob2Jq
ZWN0W3ZhbHVlXSArIDIwICE9PSA2MikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Cit9Citu
b0lubGluZShvayk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBvaygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYjMzZDliZWNiMTRhZDIwNWI4
NzU1YmRmZTFmOTViYjM5N2JiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanMKQEAgLTAsMCArMSwz
MSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyAr
IGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKK3sKKyAgICBy
ZXR1cm4gb2JqZWN0W25hbWVdOworfQorbm9JbmxpbmUoZ2V0QnlWYWwpOworCitmdW5jdGlvbiBn
ZXRTdHIxKCkKK3sKKyAgICByZXR1cm4gImhlbGxvIjsKK30KK25vSW5saW5lKGdldFN0cjEpOwor
CitmdW5jdGlvbiBnZXRTdHIyKCkKK3sKKyAgICByZXR1cm4gImhlbGxvIjsKK30KK25vSW5saW5l
KGdldFN0cjIpOworCit2YXIgb2JqZWN0ID0geworICAgIGhlbGxvOiA0MiwKKyAgICB3b3JsZDog
NTAKK307CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShn
ZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigpKSwgNDIp
Oworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCAnd29ybGQnKSwgNTApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWNvbnN0cnVjdG9yLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4OTVjMjY0NTFk
MjU3YTk3YTJkYjNlYzU4OTI5YjlkNTUzNDMyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY29uc3Ry
dWN0b3IuanMKQEAgLTAsMCArMSwyMyBAQAordmFyIHN5bWJvbCA9IFN5bWJvbCgpOworZnVuY3Rp
b24gSGVsbG8oKSB7Cit9CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShIZWxsbywgc3ltYm9sLCB7
CisgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KK30p
OworCitIZWxsby5wcm90b3R5cGUuZ2VuZXJhdGUgPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJu
IG5ldyB0aGlzLmNvbnN0cnVjdG9yW3N5bWJvbF0oKTsKK307CisKK2Z1bmN0aW9uIG9rKCkgewor
ICAgIHZhciBvYmplY3QgPSBuZXcgSGVsbG8oKTsKKyAgICBpZiAoIShvYmplY3QuZ2VuZXJhdGUo
KSBpbnN0YW5jZW9mIEhlbGxvKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgaW5zdGFu
Y2UiKTsKK30KK25vSW5saW5lKG9rKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytp
KQorICAgIG9rKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>258605</attachid>
            <date>2015-08-09 19:32:52 -0700</date>
            <delta_ts>2015-08-09 19:32:52 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews100 for mac-mavericks</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>424407</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
AAAAOQAcAGNzczMvZmlsdGVycy9maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUtY3Jhc2gt
bG9nLnR4dFVUCQADzgfIVc4HyFV1eAsAAQT1AQAABFAAAAC1jrEKgzAQQPd+xW1ONlEqFufaSVoI
7VSKxOTUgPXkLlL8+/oThTe95b3amLup4GrDhB4iAaP1kKinIIvq1jD5jqJqQseWN9XQIOoS7DCT
xOAMLsRxN+tnMTh75AcjtrnOilSXaXbeKU66bPErmdZHx1bGpIJXzTwT5G+4EcjqRuj3PhCDD4wu
Em/VnycOP1BLAwQUAAIACAApmQlHlupmEcwDAABVCQAANgAcAGNzczMvZmlsdGVycy9maWx0ZXIt
cHJvcGVydHktY29tcHV0ZWQtc3R5bGUtc3RkZXJyLnR4dFVUCQADzgfIVc4HyFV1eAsAAQT1AQAA
BFAAAACllttu4zYQhu/1FLpaOIstoLMloSjgKnY3gU+w7OSiKAiKpBJuaFGgJDd++w4l+ZgsEnR9
YVucmW/+GXJo26ZpWq+2lWdekHuZeZ8mcXx/t47jUvEdrlkityUXbHAwdM+45rIY57lU9Y3hHBhk
iK2AdIzp9K6o4/gHr3vCqKApq7+zRvGq5qTqiImk7E8hycvXb13c+JWRtIbEX28M9wR2AgALwYsa
KVYKTJjhHa2hNfRZb2VFrfaGf7I5PvEubMGJSnBOzN12rNfX8h7vcEoUL2tjeGyLP6RRaJ6qpyyO
GWhs6r4nD7OD9KWStUywEBOFt1p/eKS4OfVp5wVtYapUDN6vSBD/BJHjdg1ngr3tSb9wny6yH4zU
kCM65AjDHJrU2dkOiwYfuG/CU9kownQtJpFFVX85Yh8gjn0zH9eTOJ7jF0aXtfq9hxBW6l3/48uN
YVttUtsOh5REmfnIskQq6EzXvkRCQ6UQbYW9lLviUSpBB1eu70g5etwuZo8KlyVTbajOa5/yMhJ9
Ju+HCYHqHKihSzx6TR0LtmX6LPeb1a1+huv2XHh50Zna7+vZtItaNUVxdg6WrKC8eOpsMDC3vCpx
TZ7HOxBwynjhphN5p0TuMPtMIqwqILSTdyQNgOSfSJmf/19SpVFBj7Iykl+jbiVpdFN1tIYVsub5
fsILXj2zs0OSYALPK1a13YXjbg87qkV9z7IC8yeecQxP5GXeYrWYsBcThY7jO2db3GSqj5lKTLUW
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
yFUZCMhVdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAEmZCUcAAAAAAAAAAAAAAAAaABwAY3NzMy9z
aGFwZXMvc2hhcGUtb3V0c2lkZS9VVAkAAwoIyFUZCMhVdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAA
AEmZCUcAAAAAAAAAAAAAAAAmABwAY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS9zaGFwZS1pbWFn
ZS9VVAkAAwoIyFUZCMhVdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAEmZCUcAAAAAAAAAAAAAAAAw
ABwAY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS9zaGFwZS1pbWFnZS9ncmFkaWVudHMvVVQJAAMK
CMhVGQjIVXV4CwABBPUBAAAEUAAAAFBLAwQUAAIACABJmQlHkyamSwkEAADvCQAAXwAcAGNzczMv
c2hhcGVzL3NoYXBlLW91dHNpZGUvc2hhcGUtaW1hZ2UvZ3JhZGllbnRzL3NoYXBlLW91dHNpZGUt
cmFkaWFsLWdyYWRpZW50LTAwMS1jcmFzaC1sb2cudHh0VVQJAAMKCMhVCgjIVXV4CwABBPUBAAAE
UAAAAKWWW2+jOBTH3/kUfhqlo9kVECABrVbK0mQnnVyqkLYPqxUytmmZOhgZk22+/R5zCUna2VY7
L1Hw8fn9z8XHsBKISFw+IS4eUSqqnMKvRNfVrtiwnDK5lYwFI8c2zV8No1RUVCqo/zApA8NCCJkv
lpk4o3HqJOgmCoPgZr4NgkJme6xYKHZFxtmgMzTPWGUin6agpK4Mu2O4mJgeaRiLxTxXQfA9Uy1h
ktOIqa+sklmpMlI2xFBQ9gcX5Pnzl8Zv+sJIpED485Ux7MGO7eMzMMuVPKyjzeDCq8XM81LJiugw
u6VTKfKEJSICNnXWFjvV2G9ZTq8Mp1dPxyMfcZ7lKq51DfdoSxyXOGc27z9so57JcErQflcLbsUN
3uOIyKxQxvjYkrFP/THqK08Z5A2ZVqrtx/2yC/9WCiVCzPlM4p2und831qIu7aqimCwkg98LEvg/
gue0XsMJZ6/70S7cROvkOyMKNCyz1bCIZXteY2d7zCvccV+5R6KShOlcmvp/OmLvwY99QQ/bWRCs
8DOjt0r+1kIIK3Qrf/8EolYjSi3MiJ+gB5aEQkJlmvKFAgoqOK8zbEOZ5w9Ccjq42PpGKMcd1+vl
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
RwcfqgaPAAAA+gAAAEgAHABjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1p
bWFnZS10aHJlc2hvbGQtMDAwLWNyYXNoLWxvZy50eHRVVAkAA84HyFXOB8hVdXgLAAEE9QEAAARQ
AAAAtY6xCoMwEED3fsVtTjZRKhbn2klaCO1UisTk1ID15C5S/Pv6E4U3veW92pi7qeBqw4QeIgGj
9ZCopyCL6tYw+Y6iakLHljfV0CDqEuwwk8TgDC7EcTfrZzE4e+QHI7a5zopUl2l23ilOumzxK5nW
R8dWxqSCV808E+RvuBHI6kbo9z4Qgw+MLhJv1Z8nDj9QSwMEFAACAAgAKZkJRykcJOHeAwAArwkA
AEUAHABjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1pbWFnZS10aHJlc2hv
bGQtMDAwLXN0ZGVyci50eHRVVAkAA84HyFXOB8hVdXgLAAEE9QEAAARQAAAApZbbbuM2EIbv9RS6
WjiLLaCzLaEo4Cp216kPgeUkF0VBUCSVcMOQAkW58duX1MGynd0m6N4EMYfz/f/MkLRd27adV9d1
nPG4CHL7JkuT5GaxS5JS0j1UJBUvJWVk1Afaz1BRwWdFIaS6srye4cLciVDLWC4XXCXJN6o6wpTj
jKivpJa0UhRVLTEVmPzOBHr+/KXNm70SlCkt/PnK8gew78XwDEy4kodNth1dZHWYBa+UrJGx2S+d
SqEnKG0k9KY+2mFnBvsn5fjKCgZ1MhnHNmOUK9DoWuExlvshCs5i0X/ExgMTwwLZ+5dGcCdu4B5m
SNJSWZPjSCYTHE/sofOY6Lp1pbXq5nG/6u3fSqFEChmbS/hiehcPg3VwiPuuKCJLSfTfC5LOf9SZ
s2YN5oy8nUe3cJNt8m8EKa3hOo2GU2DkeFHUxskeshr23DfpmaglIqaWtv+fjth7nUe+2A+7eZKs
4TPBt0r+2kEQKc0of/ukRd22MBfDHMW5/UDyVEjdmbZ9qdANFYw1FXZWFvxBSIZHF1u/Y+W443qz
epCwLIlsUo2uN+gSFH9E911BTfV7au6iAF9SZ4y8kOa4t8NqVz/CDTpu5BdBfOL26261bLO2Necn
5+CWcEz5YxvTl/WaViVU6Gm21wYGxbNtRigchPxx/hEhKCtNaK7ikTTSpGgg5WHxf0mVQY07VEhg
cYm6Fqg2TTXZBsaFosVhTjmtnsjJIUkh0p+3pGq6a477pKN6E89xIvsHO5NEf0LP6wZrzMRdGskd
L/RORlznsstZCoiNF0xxa8Qs6JJGWNT6Muo3trlq46Io9JvgEzLBNgBR+Mtf6+xuu9SHj5PmsWtu
OIfMBv9Q9TSsm4ESRh71qUwEZ4epXt2T5G+Qm+YByvfimViee6aCc2z/tILleWdQBNF70Db1+2jN
83te7BYIupPANvZR851kFzVH7T9C2k1xOmqfiaWM6vGDlMGqoihJAO7g4E3794Jie3TVgkApqPGp
pxEcLXhOQHDg/KwFU3Zf47Q6cDQ6+4pqfYB0fkbRgYuVlpvWUhr8/Qq+doi3JYQnXYTYxej9Esyx
zcxRr5m5bkS/S0C/kHrPyw89Xwq3YcuLjvJRQAiMA13KVEp4mJYlO8w7fcsbn9l08tzWjwATomxu
vXl1yav20dnQ182bnGagIvLtVc0ULZl+NWTWXdGT/fHZfhx739vf19mcCPPTxBn8h54f5q6+j+l8
e7debja3YJGBdKp/Uqz/AJu7HdhtwBRkm7ttOnPA7Ww732xXYH63TneLzRoAy3dPaG6AIq+l1Xyp
K70WrYvKsf4FUEsDBBQAAgAIAE+ZCUfe2QpNEDwAAJvaAABIABwAY3NzMy9zaGFwZXMvc2hhcGUt
b3V0c2lkZS92YWx1ZXMvc2hhcGUtaW1hZ2UtdGhyZXNob2xkLTAwMS1jcmFzaC1sb2cudHh0VVQJ
AAMWCMhV8QfIVXV4CwABBPUBAAAEUAAAAOxcW3ObyLZ+PvwKnqbkSZD7BnSrclKFuMx44ltZTjJ1
pqZUXBqbHUloQHLsf79Xgy4g4cTMTp2H2daDItPNWt9ava4Nnesij2VZjvTtx1vPlzdykcjitpBS
/8NmxGR/atfh6n4/CT6nn/LZei7L009X5x8v/NOfT9t3ameJXKyyNJPFqIuy9kkWZZYv9kSR5uaJ
1G+flnJ78XduGRbTB5fhKnuQJ4CiAKL69Q709dPqPl8olFgAyhtZLvNFmUWzDYnyXv8DC/6n9rGU
hX7m7bmZCGuaF67k6W023zEkCJsG4gYSOhYjJEZYDDEhuoFshLSrid5GfRHGOlz8XcdoKIamPsA0
oOwEcCzzYtWYjLHmLPLF0zxfl/rHjxUQRJlriyAwBAmoYVlcGNYYc8MmHvepiXjgUU3T3CIs72Wi
394XMkzUfaDKrFyGq/he/2st1wA+zufDcLmcyeE8zBbGqpqqaf5jLJcrQLBVqv+7Ox073tRxXX8y
0QeTs18m/i+fThoz1RqAZj/4N5fTs8tPzvkZTPe8GzU/XOnoEW0+URQmkZSppn260G/kHdxc6pcy
LGDOdmykGcZ7XVOqmk5v/d9v9cPPhhhG2EpT+GHsL9iMww/9D1gVQT78qRfG42nx9VGfXPyve/W5
wwI1zQEdZHFYCTJZyhjML9bPFmlezKuLI829cSa/nl3+ot/6k1tQXFnS0/I+XAKZ6h8jX6/KLJGn
D+FsvbuYzcM7Wam1vM9nCYDEw/vVfKZp9arAmmyWaTR64eLAKjZGfgsfwklcZMuVmxeyVs3/7HQN
ypBmlHKpf74NKkb6G90i+sApwayVYOUwXi5HlOATDfcjHMXUjKT+28QdjX47ux2NlkX2AG7h5vNl
NpOTWf7VDUtZDk6AJ2EU6YNPMl7lxfB+ZJniRCO9+aUsepbfYDtQ/12tmp/CAq4Ufywsqg/mcp4X
TyNi2fREo/3Yx6mNrLhmf35+tliNRv/KVhvmziKZyNWvcl1k5SqLyxqM8ojxLI+//Py2vs9/lPFk
BZh/rjCZlj4AwKAPggAQ6wlIpkSELUAQ4oqnq8nN4IDbhv3ZolwV61hpZnupCTG+BxeMwSRW29EN
WV+R/ZAtkgq1DQtZDagVVtF9Y0ImOdHMvjoNuS302SxbrKYVeGUqgpia1ZdQasbskBCxMdHsH0aJ
96UkwjTWH+aV+m7z/Q1AkRJLEz3tP2GJ4PrezBMJKw5rvF5tjP/TxXbhIM+tcjeczYIinG+szeLg
gBdgbAwpZ0f9mEdxYiZbM1rJYllI+D4AAGzvgKFfXQshlx4b/ubCb5Or6F8QDSpogiPIgA2ylUFx
bgJM3AumQDGxrJqFVIE43EI7QjDJ10Usq8Khsvmfdsg+qQD+VkXM0egy/CKT61XxbkNkk+ze/6Rw
MxMqDBUBZlJdrFALpVvSBP1ZRnu0+jFoysHiRKRv5gGyjYRgNvlsVil5I8rZ4nNezJLBwdQOUXYz
vKuLzwUAkUV1a4WbYlD3b5MLSCp1FtopR4VmcGNM+wogY/ESAb6LvFIrhvrigESlW8wRYGM9sUUx
Sw6x+TM5l1XErM23vvoidETZaotKHf4QZDTQax9smAsmGnr79fbivKZ8s14sGt51DcVvtrirxyDX
bAsF/wHY71G3ptVgmdAHh2RrXTIb8Fp98VI7egneEMrXxV2VWHaA6jrAsp8DRNTi2n0BRWb6dwHV
lYmA5byRKfi4Mn7lvbwfBsrSQwxeHq+VZSi2CsUih37mKcgWmar09gvmhjH8Db1HZWhVLFRlyjGJ
SkMmVQFR9EFHkjhGyNKf4TgawV/xl8sKXqUNzKE4bE9yZxng+BzOvkilIhNURFAvFYk0JCZp+OA6
KjbEz/MwURpKsqRWj7oAKzRI8jXkjwoSVmH2pnUD4MBVCdlKD0G+XiR1DX8IxE7TlCeCSskT6Cgs
0/jjcvLx5hwizEJWFVGVfhbhTJ9+zVb3++vK3eRM3kH0GuWL2ZMTq45y9Oc0UsY0zRYP+RepohbX
COmLJokS/T9GUvk50wjtyz2GJvQ73Gse3RgUY0topBWQ3eBSrr7mxRe9k6/AaRxizmANpv93SewW
69rSpu4sLMsMEvk02bCaHpqH/xHTWv/LPFOAg4cH/3BFMAKlmH3AEcRkwtALwGFeqWerC6d8WsT+
9Yf4GNc1tqZu0CJ1/YHSg0s1dXddqG2K6aeL8LEtzpSAQBzksfopO0xwEtfyfMC2cr+J8u31TEVB
ucJ0CpWB6nK/IcGxZqFAJ61IrQgfWlwTiMWkDAXT3cApivBJddtPwXpRia6sCHyH9xUMRZEOYX6W
58sqrqtiQT5CTt9INNgED42InqTjFKLwxXq2yuCGR1lMNsGySZiA5VPUl3AiSBfh7SIMHvIsqdKA
TTSKe2nYJNCOY1hqN7j5eHl+dXU9PZtMXQdatctfplcfb6e3V1NnOrn6eOP6aHrt3wRXNxfT4OOl
e3t2dTmdVr2dRkk/rpjFFqm5rhfnsBZeXktVoiougRy0L0Uq0yZF+EcZP8UaZT1JUWmbepPQbm8H
qmAEK2ge7VsefFrthY2RgPKgWC9uZbkalKsE1m6KR6MohJgwhe4a3Oqd6qPf6vtB9fd0VYTZqqzG
3jcHoUfL43CVF/WQ/r5ZalKIRYM2vuF8PiII8xONWv2wo1S1j0nrjgG4eKvxr4wPNMO7+GJsQ86l
dk+dYRzLgztU69HNG1PSKTNmRO3ZQJSYZVHyNEuG8JVF+jO8KwOwhYXMNAFth4VquvFu1w2Pqm00
IFA+lSs5n0Jts5CzNs1WuozBKq0QzFJ5+F/VfGhV18WiSjTV3tme2rLeqmuRawJjMSMp4vp24vTr
X/UPpXyKqp2xXtTMNBK1mE1SmO4EJt/cXlQq3Qwa83AR3smiv36YBYHgi1QticVaWtnS7liyphyI
QUMNFd10O386vysaSYeKrWJ6EMTgJm2CO/WYZKce+t9mD+y/TWBz1DT4g5q3bip6a4SmIQ71eagM
q7xTIX7ZpYwXEJIJpJUtIVUQsYPd8ZekzRSbzbQ5kcVDFkOoje+v8zr+cXyw6/0SsiYVx9kYYwsf
bFj/gHTc3j7+bgvDZZKmtv7msIUZ1Ot5ok+bbaZiWfUsFFo1qzenJI1ADZeT2p6mU/VIpi6aKObV
LnMvg8VciL35R3nyVJHi1S5zP0o2CfeUdrmO2tUGc08vioV+RGjnQ9bfCRohVUGjlPOvUABNy+xO
9ZYdXhJ/O5hzyUWYxEhfhIu8nEm5rPbidqEifvNmiLtrgiaVUG0ZQRWxL8BW91m5yQmjUUV4CqX4
oFm+FfkiH42SdVGZyLtZvrjT1VezjqvG3uHZW5Bs+5m1yznb7PvMSQrKk0SP5lWVOBopFX5crLJZ
EM5K2cC4XmSQ1KeqDXq3m612dLP4Yg1d0fuf2gVpf4mULG/1KM9nlSy42qTdM6ie6fV+hAXymWm6
l+9XGS5hEeIQioi7/3/5qs1nu/GY8m880gKRGGGHIoERxHVvP9kKV232QZkNkURJMIUWQo4gAJz0
ffYlBZN2w0iqTv42LBuaUiDe6qq51AcHyH4+GZy83zw5vFYdf70pStUj4g0dtdlG8UnfJ2kKFxb/
Ia5N0PL38HYtsjiAqB5h8x8WhsWPC8PqUduPDMM2lDJt7Y9GF2GhNrb/Rny2MRTI06XS5P00flAh
5m9WdDSm0V4DYPJQ1tXUbGL3jtMsShhtOjXQy5Q3Tx/CIlMPF+t4+EyU2F+d1wGidu6+ETgyaWJt
Xjr4xd28SVPxDfLiUj6uru/Bb+utJhsfeDO1rd4hERhKxA8Z3sX1r6pvVsw4RI7tcP3c0e4fqrjA
Fq2fcz7vZtDz64N0s1cXzlSIYv1jFBcWTmtWX1fp7fPcTH1Qj4I1X9eo6vcLsI1O/jvKLP7q36/+
/erf/1j/Fq/+/erfr/79j/VvjF4d/NXBXx38n+vg+NXBXx381cH/uQ5OXh381cFfHfwf6+BIjzeH
I9VbnOq06OaUpF4dg9AHFjOibHUy0nS9CB9HHacXYSBqDWwWAvRXxMcD6kCiXiS7AQXUDkXEbIgD
aiR75pZyN4DTDY+0GoiWTVqmZGnCkuqO4wEaKyZ6wY+ZMBXPCnF0C66YQC/TDQtqoMMBwiwlCQTP
Q1qWrG6hjVswCm3bjtNqgD13h9mBlyom2bJFa3vKUS/S2cEtGBGkXpotSNcqAi3tPL/L4nCmu9cf
69O5RPOLIi+qE62b87q7Oy3tVr3mcbmeR9vzyZhpmjbOFmHxpJ+p857lSNseUn3cnU/VDb150WZ2
9e7CwZt0A3SivwuEhznlyBDI9A3qEGFwN/AMh1iBoLaNTJu///456ha7mHRgiEmaMv0NeNHm3Xz1
WuPkPptvXKtCQz3GEKXUCHzBDGoHDuByTMNEwkMCY+GPgy40z1E9wGUd4+JYgBcf4Vov1dnoJjTH
cX3XGruG59rCoL4AlQlBDH9sutSzAhaM/RdAaxJuoeM8OUYnU1i5+BuxeWAh8gZugn8gD+M3AJR4
tk9RAEAD2zOohZkh7AAbHnZ8gq0Aea7VBbRNeZiq03zq/avTzQHx8tQ5mNPET4iIj/ATM+IH+EEX
H6CI6MBtce4gRnzDFMI0KLew4VA+Nsa+hbhNhC+w24W7ptiNtx5r4UywOMJJE8LSNOo6aNIBlFlj
QYIxNcCcwGUoNo3x2EKGTz1u+uBGnFrPAH1es5vBJlQTJ8eOZFIcQtw6Vum5vAvjpy68Y8o4Rz42
GCPeRrGO5Rljwj3LJISOLf68Ymu631JvPaOJPLbC8Ah5bEWxCkMN5F9lFKs36RerNJups5g7LvrA
HGK4H76VaWCHswAjA40JNSj2bYP7YNeOxYXvMc/nSIWFSZWyT8+zqID4eHpdn9kOtjTLWskVPwdq
n6cyKxtyHQ9qNXSVKKzQThv2vb3IScrVOTL1krA+IFQMGcC1HY/RsRgbpus7BnVt3xBgE4aDLIFE
IFzHVAayLgsVHU7VzQ1WPEREHrKCixSlKW29xZQv0uxu897JNlSZwhpiU1mpENwdWxBAPRNCKYRR
QwSmbZgQB1yTupiabgNETfP0m9RbIDEzj0Fiof496gwG6sAdQAos7gWuaRBk2wDJ4YbDmDBcABR4
vm+PPb8BqU2kzVzwY+aEV6FcMc8A/cOQbNkzZUTjMWNjDM7quJSAGwAEB/mQ6SCsE0ocZlq0zb1F
RWuzCo/5U6iWlPDt1xQ3r0aWw6vJ9qdyUjRklZeiymJM0EOAxqbBHMIUNkDp+cwwx8z2LDAgYuJj
A29YdotTp682Ju+RdE/dj2tt+UiX0Lxy6kbFPAtX6oDJVvmEDQWq3JhCoqQerDolY0ihhFHwCx8S
FRdj4WDLRmP6LZNsUz7AJjqwxfgg4HhZGd/IOC9UP6IP+FDdokxpyIYWIHQ9x3E8BJEFewg81wIb
Gbuu4Qeu8DkUJ77tf3MdWgy6tdua0hKCdfm9jUgat4R4qAo/fWBX6OEbgHuEYW8M5ZLjgkNBhCQG
F9QzfChb1NFV5Ar0TeBOHMuZLNS57O+ZT82/e1o9prUFoB1SxeZBFqsrpEcoDahlD4m6of6hXJcj
D3FIWYI6IJ1LTYNbkHuFSwPPQ8QO6Pi77qGId4PejrZhyw7YHKUHFrUjOKy5O8lcHR5c1XETIl+1
SLhaJCvwEPUDS9k/fAkoz8bCsw3P4j4XDrNIYL4kjXVx6pasa2ZLSl69QXooJTsMZBcyycKqboOO
HmwOCVVoUp9ShgSkOQqrAu2CIXybGmSMfOH7nHPqv0ScLfFuEbajbdisIxSFMj6wqV/PbvN8FuWP
EIVUNaQiruAKuhUEyCeugV3QP8U4AMcJkAFVBvVMYlPHs75tUGERPaf0xrQdgO6Zu2GtLUdyLFzE
zAPLmzzNo3z3HwmBoamEgokYoiFRRQh3fD4m2BgHkPOoTQODc9cybDoObIbGQRCMX2ZsDTbPWVlj
itZGbXWIYsYdebJaZ2e9us+LKjaTIYH7BLNVkwrdkeUgE5aLKEvjXMmCIFtCj0RNihwPv0SWYz7P
B4T2vLZUVofTRKr6SNvJpt5kK572iR9XUhGkjNAxoQRCJjfGDtRl1PR9qMsRNzwEDsSpiYnt/bik
f4zmufR0OK8te9K1ool1tKJxHkKdM+SVuCAtNMy+UNHOYQTsEYolKL/glyd85HrQ2mPuf0daIPnc
esHQAUy7C2Z4APPWdXchWhUoxEG26QmD2QF0Sr6NDWFCyz8OxsgzOQ1Y1YJ+186AbDdQGGjCjEJ6
bElRaIa7kipcJCp67AppYvMhxlU1xZCPAoeAFwAug0J1a/BgbBs+stUJTF84Y9GuZw+oNZHEjB+v
a8zSQ5suZbwustVTuj/FAous7jPBXv/N27Utx3Ec2Xd8iSMcDdf98lhXmbHSUhJXCr9tzKUhYUUC
DICU1/56n+yeW/XUABMywi8ccLqjOrMrK/OczKwacSshGKs5uarlwJlKCHMSMN9pATArEbpZBMLS
L870h91DjltlLvids/tale5WPZW2e4ZCy+fn7+bd8Af65KZ3W2KSJhlQE+cNAY48OO3mtA/Cni3a
1BdVeP95fPjm277Y8+33oNpdIRY6nEPCjVebu7GZlp/vt+PjIdbtDBph7FarKWHhfYxaw/c74l0O
Zi04OLTBh66MpeBf1OZ0+L5Op3c0CvjteTDbrM4ABqZvtR2/TJshnjdT4kVPWkitbonOJl9DVHAa
sgLbSkGBzTAgc4XggGUZdL0qBGQ8KO8fdDkdc3bbTSu/6CmlDpb183cfvv/49Zf7h0Ui0d+ayb6i
FaoorFhTQwH+APPDrKiBawumZ4XwybyRffVFWaije+psDlR+Pnju6X+PisgpxZCy5yaKgUdYkzQi
DJgiCbYkEJlzSFzxLp87G7AVR8uOOFrvxflxhcj8sBkPyQWmZivnyolE6YQc4Q+lGSIW66C9TUaF
rCJ7mQJN1OXd+/5L3Z8JM73UVoJG+PVanQu/Xi/TuO/ef/j6dLfawM79DEz97NUzY6VEGLYLRJS9
MwPIGx+St1HASRdXw8ta7Efu63G4vJDa9aRehsvvVg+/PD3+Pp7GTAvSkmKyA7gxBLaKkl0lDEki
AnNpPFPXsYDd2BdYwO7qQur1udQbB7vlC9L/21wrqcf0Ip2FSu7F7l57SghLBeFKZ6ATb4AwI7Ea
7UJK2oSc1FXu5fCsi+R/d/2mFbrjJbds7OWTWtgvAffJfLDU8BetSgfXDrqf4O0Lg28BovQ56SEJ
rpKP5FzEtWD5CvB/dttNq8NdRzG+dP+lvqPK2APBfrqbCAwlp+nUsiHaADBWsZR9BMdUVpQSZIYa
VyV992P3xd9fbaVWviO1W+9h2errl8eD93F6eu1VgQZjeVJYAmQAYRmijhSlrNLFapuCa+HYcZT2
4W7Tebh3iwIFnWsz1g90JODT+Pw8GYM2t17M5jAlHJgxQmtA2RwzIidTfHA5h8GGmhAzPfMmX/MK
z5/Vf5nn97Wa+d5r9dv9a/3mXV34dAAtnmuSAxgrZdIzZQwDH3hJmrOgQJ/0G/n0w8NbkTed0Ljd
HmLR+vkTlt0+KBL6FSkkxgKCogTmlQxB0cFnD3AiNqtsPLcLWH4yRvvsu3OnsGUaVticm/Pj6u8J
yj2tbteAwR9n5GQoS6NJHiu5Llgsg7V4cdL7qdSrBsC+SCf52MQ6UOOUWv5l+YS/7Ook5LQ37z8c
r980km7O7XiLeV2kMX4cPz1+GX++H/9+ZMmzE/BkAXRUdTYSjixTVFccKyoJMAr4ZA9MW2IO15jw
+WMu2cTyvptW/nN72IoVn0ozR6V++Lp6+vLPuYDIJw4s5UyOYjYuVCOGjNAIfVIefIG1RBWUFNp4
80p8Pw7dV+B4/aaVUXQEX7OFI34Ervzl4w6o0hzsAKvUPrOS4pA5YzQNERJLO8QMKlSEjVbFPwxY
52utuNuO8cgVWxjPerX57evn07Ihv9VzIow+ITj3OgeHcK5soDRYMdTfgDUQU+VgDsZ5f439xMWT
TuWfr920ovJz+Y2deiAWAX2Xzfe3avLZIhmEEZgFqxwuD3EDBlLrwJQWypqac9X/loEsQvwLyfzD
5UY1a89TK1vrlolxsqTnqVVgSuft0pPaTgXpyKTNdqBTdKlYAYybwSCYK2CqoQI58rfIvpJdfdiL
cNn0Dre0ao6uo+YI77uaOd43f6Pz6m/DsfLqb+VsdEFE5SXirigZ9A4OawgCrFtIxwvj2sCNvZrZ
++Zp9fnX+83zFbFrIUurx905m9o6AmAXS5WHYxkBbtQEk6dP4li5BK2qHxzPADkFLjkEmQZefVJg
KFJafzW2XDztBXi5uLPRzwnW0c+MHXPcfKTQIm81qTT/AZ18pQSaBcWSABoI2hkB2+ehACK5nHjV
Ubzq2tILri21rs2Zu47A+HZnWOHnGr5u7w8AE4GD4HAOxSqjy5CLK1TPp2pFsUPVuVgEDlbsyykD
jPtKPq2xqVaMVgPX8QBrZxevvDY5wsmMGBAqp0KrUFJ5AWoiDcNLhxKD1ykNEQZkuKmxVPeiNi/r
kv7SzwlCys6qXnu2x3PfTUd9HfsWyECY4MLLEAfFqKGKeSA6W/XgQHhFVQY4a9G20IzSPH/DztMD
241w++f//+fNYd4Zo8I5zT1lvlLWmGxFvRw1gxQprgcjo0ws62SE6iZaDsO1QnTqzNuNWi0K+U27
+Z+EEqAWfHZwHn7NgYcNInjqGgTzd4XnIUTrmfXA5d69VMk/HboVTa07onmxF23z9fPzsa9DWjGJ
g4AJ9KQpFR7xfoJGzPRMIb4Yp2PNAch70VhyMk4jwNZ0JmgUd/sJ+j1/+P7QViLkraT5oZKaFBFr
MxPldiUCZGCmiioyGVUBve2bVd/HDQbo39bI16g1dgoN+JLv1drNy75CcF5tYJlFLksYDOg4XnFy
U2MeOK5yGq+9RGtfmvFm5IVoHWsc7bLysH78hPWo5ryTl3OanhKNGmDaZAQhuI4yOOq7qqGwAiMs
1V5Vr4l4Sh/ZPX5qZbXnJYWRn6HoqXZ4MR2foqnGgIdlRfURavuZ3EsKkXuXNXdOvWgtp8O/UDTv
pOMh6zkuHYVa9sl8N35ZUUp+ypPZfZfMraCyJVMQkcESOCcG40UdvGViKMWWyJhzopi3K1vuJbmk
53y10VEY29GRsPds66Ahi3S8igZuwtcBZHNKM/DBq+KGHIXJIbAA9vM26fj9s1uBrewJLJcQbUK9
1IJxhNKlJh54YkOKjEo7OgzA1m5INYhieZZA1H8YSs/XFqKeu8dRGrl/t/XxcIz8PoTuHIiTOjih
5WACNX8FGLxPsQ7ccqVYBtpyr+CX488mXW094X8+XAF1lkLftMq5jsZrdXc3dlsY3r1HYGBzZ5nS
lk0pcmkpoYXIXQUQpqRoWQA4bRIMLsqwwF5dMbvBX2lYePe+FX6tO8JvIHxzBPa3q4df9k2v5K/s
rmlp7i1ztXDJo8GCdxTdvBi8A/5JntLJiPciqzefuVORLqyrkzsapRU/xxCj2sGbdsbCz+mvmRJm
s8aYLuoElFN1XUnjsbBKhl+QjANuZ7i6mLQWTlfrmLuW6UxPuTxx0+VWg/V5MX7U8pyzfXx8+vCP
hw0s7tbPFkefU4FRm+gp9R8o80v42knwNhtYBCiSzmbx5nN2kOeSrrvLja5asY6uxh8Q35//vFrf
HyCXn5yJ4MEBjMOZWOrlVVoPwB91sEoWXz03ubKzTuLDMM3zbSdNSV++wI+J65O1+KnX24D3gpZV
TttCWEY0lFjlLmomUymlvtLs8Ho0PL1jIfq2I/p2iUZ+HT9+plUNsEoWQvQLXNJIo8yQGaG56qlx
FKyCSnnZSlWKfJv+Nzz6QusbrrTKbDvIxPFxke3+/HT/cNIpePs9/X9OtO5WwARSXKZYUyQl4LF8
EcgRbUALtBUpeovgPrUav639H2Tp33m4fNOqeNfRe7Xsqj7QQu8t0UI595PKgOUzqAj9ZPRYBZ4l
AubFZ5btXCu+3OLfWQ7urhPg3d2yv+vDuKEda7ufe5rKkLt6cC42BWoxEdFRwj6kwSm4H2bAU12l
OHhVo0b7hIsNQCf3LPTohO3VSt+J+bU+rv9vc5K70zNICdnW7J0ahOXgtayqIUjDQXoEk9yXZKdG
4xO/cjpOI8DYybvdMa4XL3L1+2kr1Vz4MCSNmASqjn4PLrvBOk0t8wJvM+Y8KAeWIBCKdCj/Ztbn
9I6bVljT02BccMbtw/Pz9vAihZhKkFPlxiUTCJUyRblCatrUrg7ZJ6BWRZarX7LOk3FbsTp7L+7Y
LkWwqI9++PH7fSPRNL0x2QqGMvBKVX5rQGJ9lTBQW6XWxbOeV7hQD8XYL1RBcbWV2nfMQdkZRkLF
b8P3If3Xsfzp57YnW2zw0eWBG0ntIFwNEeR2MEZG453R/jXU/GaZhVMJb1otdEc1p6eC9dR2+PxR
HJM2fMLEyRWhgYoH46gX3jgQlyoLDBuLDNyHWxuX3YsnwzQCaHkewu805bhN2w3e9OHOwXBqxFXF
FwFv5TVlgI1WsNRkhmJArbRMIdXy5sHiKM2l3vBezIdaoqPrWizcyrvNURS4FWraF/qWE2XEdHEu
LBBLpEVQ8I/TtLfOZVUUN6bUqxp2Th9xodfo5I5WiU3Hs+jNau9ZPq8+He1l3gHiAaaIdOSpLYoF
PkRezVCdZ5p5zWVamMvJGItnn7ODO6OXyev7h9+asuLcLiQYvUEXNIvOyyFkSl47YfAGAUGpNFIC
HExV9i3Q07tTGZoX+/DbTSu+6+jkD52um69PH8Frdi/Uult4l4mTuyps9XFgWtBOVkuZKDgbYRh1
umY3d+o2edPjSK0IfuyIsFovccOvq7m9n8u5wZ/vyhvVOym9CoMQJtPeMDg62OlQg4azjibk6+r8
uwdcwAvzxUbwiSEvBd8yt/de95uv1I96ghU4oLSe4BfzNgc7cGUTRIZNepnFYIULRiXaaC2WGwqb
sRo5tuKuI4dbVrxXU01moo30FzG/ueNn+qSVArJenGJY3krPtceYsHCAX4zwFiZ6BSGZKz+XGStd
bqX3ZyvaM+bYSxsi51Wwa5Jg1sI9TTWi6S8CEEEUL6h7qVDLb4Y63nA/cK5paB5Mrxv/jyYaj9K8
lAxbwHfSkZ8rziXfw/ffv7t/3pwVDJjyiVmpB+6oBuajH7yS4K8mRccEt0rV/1TB4Chgoxhl5c4V
2+3vPVnQm9VHOr2Hfrp+qs/OTa3H/tBUrdLCA8FKS84SCyTKyLFKbNYBRL8o91b9DF1hLriC3q3N
C1DnTd74Uh+6ohc/DPQnuK899E0IpIHDkcokwYGoGdNZ5mnri2XZeweS1IW+7ZiNOHY9nouDLxfz
cTQMmgSKWSff8KmIj3gJvgjeH4rBujLwt86AYlBmKMP24C3+PUx5vN5qcNd5ofbufOvQp0+PD9+v
HsaPM1C7pWY2T2kLExUIJTyCZpV6jZMdPEwI4Fgkbgvi1yus/srAeyrCJS94vGOhpD1X0klzLD78
tKw+AM9LQfhBljlXUen0Fdq7q7Q1zICG6beqPvzUsSwnuyIfIuDT+Onx9/Hu/uPYNDpKDY/lOaZA
UEMCpViCAGG2IYIlK29ZqV0jX463EMZ3hFHrZYGKftjwy+PXza/7bQ0nYE0oQF05RcX9nyQvcJqI
XgzJwNNKHegAF5sB4kSJVVTgj6syui88uilNLW9r1fSso+Z2PG65eBo3T//4fNJnbOYURZXeSuqA
5IqIE2NmwGoGhGM5g9x64rgXNl20QzbyIPqcy+Pnc4MmeehneveiGDE1MiZejI5w5NRXmgPgMDWr
RSG59tRNz2JfjuNQCxFcR4S1WriHY+rv3ftpR7LYdcBj7d0iFmO6KcBqC9QImbShRiUPnO4Si2D6
XuDFVe7dK43D7y/uSJ4utaJvOkaLLy/65ts5KFPejFz07n9ycs/VZZaStdTpDFgZtRt8LWZgSdBP
1jlh43+E8s/XGj23246VbO9cp7IybQjbN79ybieQr4xVCJMFBIOOV9B0vJOHfkoIJ0UEDuLiVUQ3
jXwZm06XW6nvOrMzcrXIsM6/CXNgnXAa86kVwXgdEdCpr8ODJIEpBWvFIHyWvMjKpXsxj3U67qlc
nPOz9L0HMV/2Es+I/8uu3D9B75PWAj5X6vh0voBHWAf4H3Qgj1wRHoEm7ZC4iWC4xojX8hgng18I
7Sd3NMoY1lHGCHaelaPm8dX9Q5s1jlkCbkk/wA9Rd1st1OYNYFKpuqJBW1y5MjN3GP9idu5wR6uB
UB0NzKH16Jtv51bZRfTWhcFyXcIileRpYgHWUwZuUYEBuhhrYm8VvU8EaEU3sif6sgfyv8cvtKF9
nxHVt3MijsOPAwj6QsmvaNUATgJwaHXGK6lSmKvOCdgN3tdjd7ER2orzZcmtGxf7XP463n/aUi/q
3PojJqGnTQFGwEfWqSQtJBXc7JAjOK5kNldnrxF6N/ilEtV0sRXa3XWE9oedn/S7ioeQ7RSlCXgW
nlNdMDEykOCAk6g3GBSvAijpWn0/UJ6M1crg9bkMa7PcEzwR9Z8S9V4KTPVUWJj/mg+Jy8kbhOvg
JNUV2BAYYFGynmXNgpD5+vL2T+mFVMFP6aaVc9sT/rAH6LfxH59+OTSPTLU8GYLLTuchVdp7AFcB
pAH0VoA7eZAimNxvNjwdayHE2BHiLFsxLbe0+vzl67G8uCuvFwaPmgPwlwT40R7IIsYwRO+YzCoA
w6s3yQCeSHABjJzc0erYSUzwzXrZ6bUdn3/78vj5+SQz7qY68fRJliJ0LAn2UR31NlYBT6ENG4Bg
Aw86Uv71qp2R84P2+Ri64cIWyfMbG8U2o+goNi7Plkt06OqPIyHv8WkHwQ95XC0JaUUBM4Lbo4Mo
MIsCfzkDYskQ70GKCiv5qqDTe9SFFdG5s1FuKzvL487pDsLKu/48Spopx6fJKtZZMORAZxFismSK
0I2rAYE4xhSiKP713rx8sd1uf/Wmle489Se44Iseo+NP1v/JUCckuSP6nJrYVA4GTDIrRXv7LWCh
piPQqFLBAwtWvQIL92NfEHt/+aYR0emO3FRHnH9Db/1POjPosLlPTK3gkUC51EPkVI5TlNhhho48
8s5SxBQqLTb3nY7SPN92KJegY2rbqf4hE07SU+ybzi5KvApmjRpyqbQVK9UhUvtooFZclo1CNH/z
atUPF/qXfsitTnbb0YnMdzNjqPo3ysGP2yWKApFMSlqHIEknPDJaisCug2EV2JualuQbHYiwEKEV
3/emZL1sjH/YGduhM35efC7ywit1wdNOBhkDdSPzQifIOdAeG6RRLxGFZthGrpXqvNY1NYTZs3h1
2iJIlrPD2PN+WhlTqgKCpcorcRnqb7B8yJUFJSAmD+KP76fdXTwVXfJOGJL/Ku7aetvIkfW7foVe
FsgAp43mnRxgHnjNZhJPcmJnZs9T0JbkRBhHzlry7mR//VaxdWm2KNmLCfYIA4+jpskqNlmsKlZ9
JW7GcKv/WOas4tTNFv2FAOa1Z/wP/H9Or6agScN+ax2RCJaUGoPBBYY4sPQt/PDPwk7bjXBixW+f
Fiyo45sZ+BJdejdbX83Xb0PvGGnZ3hGcwEpMCYz3jB4jDJybsGMbTSNloKETGvUJZ82wz5KciruO
KTG2tD7cLP/+uNx8y5FfKDw0CjCvEkwY442PGo48UKMbFzEt3NE2GGFJr4w+OY273uvTuHta0i1I
jW7YXPNj929vpwxVfkad5UymRjJMGgSR0DiQtw2NToEOzaQT7nka667/c57dsbUChN5UqFfjqBOf
UBCF5UNGjvm2VzgIHHVbFEzlfEsMjw1xHBUqn2PvgBEmfASbS4QnMoCLEZ72ZadntB81Kjk/ToHH
L8f5njfr+cW+DPwKBMGXxWqzx3PoU1sDVY4b3TgHGxksDPitFbZR0oDFqRFynD0BDDXq/1RY2KhZ
wY8mx3Yn02ysGL9crBY9YGJ3dwWTkpN0e26I3MbfccWNa0FhBH2nz4kxwF+jGBqnDkN+ngUaUhmq
zlilYckaozXWuh1wsH/pL6+qGatS2UAoAvhotGp8K/D89Q0xzCTRSp5s/L4ZqwNKRjzc1HiYj17P
Dojs83JnmQlYpqhNGgOKHViFTYsx9kzJHLmNwRqBGSksD0R/D9tshz7211fn0cn++mrE36LCH9fH
jrKrPmVq6CYziYLdTgWiSaAvAU9BCvZw8AlUfyYx8vmZbrJt7yedZNvnJe28snUM22d/rP9+t9ws
2P4gFDlfqKXSuISuPYeuPbAijdeioVxoMB8NZX4EjFJ0UxBgKq4PZrrx3n1SBqcWjBYSdZNURDhi
MGptgDUvQQa1Lch149OflcGnJarpaI2LfbjO73/czatplwhIrOG4A7K9wCs3B0vbYTQo2Ks2CB5O
YHofeiwJua1MZ9eOUQq2+nO32uFX5ikEVVFxjsB46NaiXoFWQzTeqSGEQdsG+yzjed/5Wd29W01K
GlmFcFlL8fiwWd7tIUVg3i8Yz3MZBXNGpdjEVirQhEBJs8aDKsyjp5aC3WHScz1geYzTJnN+XNJf
04o7PYZFqlhqoBTpbPDjcogstQTj4Qi8B7CeEmiXAmGRPU8aAwUZ+T6WYKXhiJ/Kiu4M2xlO/zqk
VGdQGk5j6xGN1lu0o73ljcbQHrCfYxAhcENHKdX/qqRTG3YzqxwWN7djXdh/flxhPa3tFOzPcdGX
F3AYoO6VbQJBvH4EzzZSefhnAjIl1VXjs7IUymFOLIiyUcnOLamxMw7uvH54XG/iP7q7x/xG7Keh
poVHIOj1FlPTG27x3krBzFoMptMSsWUVZZE+S1euDXQC2LTScsRaZcfOsJbFzdC0Xq5u9+5zjsk+
WdFSAQxTIiSsD42lQUDHstSzxrfchqiMCufTzQ+9FjTNaFehiY9Tf9ZfF4vZ54s3HWIeXS2+dKvN
cnYJz+AtDhDlUEznUJX+FzS2qNTKUw+qvYF1FR3GFeMVuSWtwlRTEc9rItUhT2XDVZqW3IqKsJ9r
Pro2yGmEeEP2cH93lQv8VIRn8rBRPUaKRoztTwqEZ5II02USa4FJZ+Szob+Lwc7kMxftJiUXNdbw
QO0X1x/ru80A1IFlPFFluIGTSzJMHU8twuwoBEkD88CBGk88KSXQsJNy9K6i0c1v9AA+EyxKX0Rz
gJbB0R7XIKlbb3NapcdgbFgdIJaaKGkIcJyqSMIpCM1RpwVNlUR1+LLb33l/nXVfD4YAx8t5QwJL
ScAJKOFUzCaA0R7DLTVI6+hZECM9bdhJOXpXeR+3rN2NngMzt4bOLqRItxeqR7twwRjmwJiKuXJJ
gEPZYXQ+c9J6BQpbFCMn61F/k3LgY6nKW7KHdPj5HR3BzrkoEqxp0YjoYSq0E43DFEoXdSuT8PYp
E+L5sHP7wScFdcegNvjl/pbsj+5hgAnd4qwJoai1sIKjwcDDFDGHvaVga8NZwOEFKjI6UgedFIMT
enyocnJ0Mdtz74dlYnJAAtsCEO7CrkD2UYtoBzbjflvEoY+g/ifHtFVCp3jesqyMc67YQdGw5Kty
d4tfZgcUTEKBBYU628GOURlJLCHGjmlag768Fq/MbQIN3CiZwc2VGAH7neiwJMrMK0R19AiQAdHo
ZzNEVbxZ3m39ejnfEaVZYK0JmoVGZDxhhfqUiKFJyQWrnZRO06chJYr+zwjiol3JTcdq3OxTgR4H
s8p4RjXy3EqfGkvAmGFacbxdhOPdEMPAmGVtHAmdxxPz2MnayOMQiO1ZDlbZ/afVslxLfSw938bS
Z5gb7ZxjEe/PEAs2JthTraMIvGTbwJwO8rsAlV1lqt7XiCoW+LjZaAYqy5seYcge4udQav72xv6C
fG9zgxm7yJYFSUQlS2gjo+YIeRTgLGh148HWC5zDKpNPu4Ow79NGET4t6KekIqYpETuZ97kPx2i6
9YocsLEOrnasbpdSaoQCRYQZOE4dWskxugQiJlHKR9kYxx2O6KmsKMrHCZxhcfP4qQfAxdvzjLwJ
P9HCJC7EALMmKAP1T4I+7mjIBbm8IjS11qvn3ZwfRjh1ZX5oUfLAqzzc1jXc9bfV5vOiAFzAtaG2
+SVqG0bLEkZkNVFjkBluDE2dbohIBoxO4VT7/ZEF+pV/dUzf8fbYNyon4ra2uG71aCJ+WWzS1a6i
QY/HqCOVvjWm8dFg9TywpQyxsDNABhjEaSfsfLJX7vNkWFS6GtFpanTORzeQ6023We/vUNkuIdwL
eCetpk0wHKQpZvUZzO1XFg4Hx0AdKAqsHYM0HbodUXWs4fJB5a/Z+nZe0+SY9U4j0KPVBLRbz0GP
klxjyDXeQ8GRxUdK9qCngoJOVOYlF8rodbi7bvVpOT9gzuCBbQSXUXLSJIX4sda1jWM+NKAL0RQC
USyMDuxhL+XwHa8M3x1XfFn/bh9ulvvqT3RrEGbMBU6kEAKMJIUhjjAFIA4Q9ZIkT5IWsInUU7XF
hr2fBhgfNCq5mFc2wYzd7l6je2OvjjKQQzTM4sUlCH2BWW4UzmrpGxHgxTJJQCP6b6UqHegr2Jrx
irI8O8SuVys5vxCgnvZgnXglJQTCdWMOBsG6YoiUnaSK3sQW60SdrUo37LckrGJxw5f7cILH1T+X
q/mhpELv69DBeyY0KMgezVEaYdUaActEYDVA7wSvx/cPeyvJUDUyzB777QHskbt/XJj9zGTcXOKp
x8zWRDyGtcIPh5BYMraek8CTNaPU0LKbkgJDaxSMpa99e/XL/WZ5O6hpta1xt71wU6YlTkuFYSFY
cALlCehnDdFeECuT8/5ZbofRQCd8nmWjEUOmxtA4dicjy394tY9o6OMZcHajB8UcjSIJWjrDisea
RUTE0pTRkGx4HnDddoCTqQrHTU/HPgwajHitWCjztjtCBOkeZp/7GnEXW5i+LaSxQwQDPIwspp0z
CYLYsGgy9JcMJmJa3fdL5NwTcupabvt4yKRoF8dBFYIIOSolUdNd7PUV1izsCxayvE7x4NEmmIba
mMvLoQcDdCTKpJSiDZSm9r+HdQYPJiVbNV4RgNYUF+BXV2UEBufREO5AHrUYXBjRQcQFabw1EUuZ
wflwXvODHk/ca1+NKNQVChliL89rd8C7UpgCRCO5IGC9Za8+A93MG3SIYAoQwhSDUZAaeAN4U0aY
Z/xZZajOX+9OShpnx4Tzdhy++XrxcLN4uF8Pr3YTabVNIAOI0RajxxBrDE5cE5KPQsSUzPnZ3XVa
J3f3dFJSJivkCla5hlr8atOwODMoeKrPIYBfciytDm0SHuytELBsimw0Fq9hzHmFtVOjkM+GVvnV
nkFW+dWWPFQCcwQ3Yyf+u8UDlo7Fqj1DpDueo2eRgQB0Mo4IojyH5UTENgXT30mrY2ItUfFZ0NaV
gU7AQR03LBm7qa2lm70p0FNy4Q5Kr1EXfY6gwjrZIoEF7PF4kco1zoLOJpWnxjgQSmPNt+xsRMex
8i8E2Rd6vn6VxmU74CBGRArX4C1HwxRiY4D0aJRj8F9sHaPxO/lPD6NPSvp0hWjKjuoBb+/nt1L2
4rhC0CBqgFLbegq2hE+IDoVwJNZw1Qjrg40xtuGJzLyj4U6o8GWrkrFKlhLCQO1WRVh2n1b3a7wD
WqzXWGioLHBHcvoH98GBCuUa34KcYZzCOscirtzkChTAyNhZfL7fkkRVWzDdPpHq53fx5ZHDvY2B
RzTVEkLiIkKmDAyLHshsqSXvvpvDfTd6QbQUld0mlTlZ7jfLIsRqILl2Q65X0l7IXHaHM698CiBA
YIpZMvBbmyIclNwZ5TmWl3q2LMxDnBGH+XnJSuXuR0gwVue0yHc8AI1z1aOyO4VVcSPCn6kcE+Eb
qzQWKAZr30nWwsF5NtWxNrFdhZrbmVHmKFRjFz+Gghkro+cz/RCj5rV3XkretBguCVMcGotlRI2D
01IxQkXr/2SM2rDFkAtJu2MlWLJtyVf0W/QXcSAyLvQBCw2dgAFkoJaiIW0AUcglQoMb3wRYAxEI
F4GNIXaOuiooYRVXhGQ3eyP+3erTaHMRQZw1FMR/RJwaJ00Di4Y36AMB2xYU1cC+0+baD16QzCt7
S/KuAA1+v/iEFaq/7WnPWoVVyrZcg+VgBaJpeCzLJsEKxSA/D6tRBv//CBpcEl3yXHtN8qhGMC64
4zoJWmyxuhQ1LshgG4K36ywqdL5wMCRkoiS6JKh7uvD5UwCAZZuCC1mJr5FyPo63+9s7v53dfWhN
rmQTJRizqkkR6xvjLY8hsAm8UKAqUlADngc0dui9Tv/heUn74li5VVTMjgMts9G6rVBBpejNBxM8
YY4q0AcJ+n3hdDQMYTZjiFKCDeXCk6BwJ4xQv302KSiroKMohoWVC3IRxeFxuSuPTVmv8IHBFBJG
ECDy1BbSRWnaJNMyIhLYPkE9O5jt1ZlItiKWFcg7ttMUZ/PzV07LtByGlNCeBdDZiTZAuNIY2wjH
TWNkNE3QIUSfmIuKPX3lBH2fuXKCp5OS1EWN/sXIzuwz8B9Xy826z7//sOrdHEXyPRZbJ0w0QlhM
UIH9alkukiMNtSpEOFyfTr7Hns9k3uPjkoPj0q3wpdqfS+v1XeVQEsRrTD9ugvJorFEwMy0Gk3IH
s01IAMNnFJJb9lPSUNE3FMJtlyVP3wT7rgiXAjs9g0NsHc3chtAKIxoqECA+tQav1hHHAEHGbaBe
nM+LwAFOuLbgSUGypsfmgdJ8H6/o36erx+VmUdxVpwSGk8il/DgGMmssfmRUQzSRWApXaRNGcSlF
NyUFFXgtpfW8cj7kO/dKGQnE2WmZxVcHYolg1qTxrHHRWm2jVpK756HKP4EpX9KtFzW6b0fO9pu7
+9nv+xsqybJRqIXE0grUYpSlaUG0RuMaEgWHM52qpOk55XLYZUlSxbuszJGgf9M9rmafBxjeivYL
sP8lR7Up6lttGttiZQumOOJn2Ca2nNhEuEmUfz8/ZUnPqai+YZtJyeC8wrXcx1jBPB2CyJnJGjRH
cL2AJ7KB3cWctmBmsYgQPhGsADjZCKvjkn2rxY8rs2AVGhZdTv3N92lI/gEOYY8NbHkLpjQaR5Rk
0AwOJ1f2uAT0fJEAK7hKyLDHgpSOVARhR8bHZxU+fJdBQrP1BnZ8CzudNMEiumf0FKM2SSMkFUR7
LKb+XXL735WkHCGFl+zpytvujByFz67wwmKgQ5ML2rsuwEbijoMNmkQupotgdCK1DZc2JQbsMcrO
5qYOOi4JMxUVIMN+9oS9f/WumnCUmJetABWFJIqmJhYA8yBMNRz1rZIKvRPfM+FoQEdJ/6yt0D/b
X47BcivAKCQFUYX1BojO4HkwpRpMlEZZ6QyYoGAp6xPXc7Pq8BXZdUPm42K/EYQoaKY5a172BYed
s5S1yTQklxHymAIO5lLTSkoUMRS+Dd9PWtl4Qi2Jk5L0yvEwa/fuqT++DKGgab4Xh92OSgec9hGT
WiLIArBPm1bhFFNhpEqjwMUvVSBoGKg6Ot3LxL8/dg8YH73aH+wqu0stsdR59IYx2BwYp+iSBT06
CoRUAs3jxDsd91cSoyr2x0yPr6W79aHEGlHbO2kpRIIdyxpBwWrKuICO5FxdsPmsjcnwcG677jst
KdK6RtG+1Mb9fBDGkWGXsZIxj842nDtcYwLUixTaRhPjWpZS4HIUVDXoYzKJf2wLSV7ezw/XuleP
X77AUvwRaPPd3d16+qWbL6Y336b3m8+Lh+nXh3sML4QjetM9fFrk8qGbz8v17sGPmadNt/794+39
w8evy/mP094B1l/Ef5zBz83ix2k7/HK92OTwlu335cBPdd/+ue7hHwOuYAbyeAjvAyunyg6Grvxn
Y05+vZyiO2I4v++h1dvV3bcpwozgk/vb6R4L4cfp9f2mu/uJMnmhL6cPi/VyvlhtfiJcXfDLF5L+
5Yfp+p9YWGH+8f5x8xFoe1xlKDMYcf6TNtiK6b/8MPntYblBKFXoA8ff90wu2MvpP+HhZrH6iYCh
d/mCQKeHkdhF2381GOen9vWLFr4ajoUdvTAGhppO3seXr97+Mr3+v3dxeuLz66v31x/sm8lPh8+p
ptvHE/9yiqWEcamtNyAW17XGYGTL19h0mSv2nvvsm64z1ET/F+sTbRV9PQlb4FeQ+ShP+iya8R9w
DRM2+flq+vOr6+mnPhcYOp/dz8fUEHqm6QvgD8T+Yv4DNgWbG5ru/nD3aArLqZvPsYr7FChDx87g
jfwweZ0LOE4tfjN9u5qdmg79enJp37x566dPzBe/YJe7pi+6+Zfl6oeTrRlM2NX/vgHDavoV30RG
lKy2hPMYml5b/3r68oN9H05TIHAWJlcbWAXTJz6wbtUl7LePmVp7Hc80lcjWb4sbdDFd5vk71ZRz
zV9PPn4M9to+QQBlsGOh6atL+zI+0VZQjb2+efXL6xhgLZz+GNX3eh3/dv3UBBicrI8fP/zyyr8N
50kQHNj6kvf3FBEtTreUGidru2O+LL5g7u7pD/T6H2zw67fX9s30yTd7IV/2Tf9nCivwcV3sh34f
5I/CesiXII4m/wZQSwMEFAACAAgAO5kJRy7e0PTcAwAArwkAAEUAHABjc3MzL3NoYXBlcy9zaGFw
ZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1pbWFnZS10aHJlc2hvbGQtMDAxLXN0ZGVyci50eHRVVAkA
A/EHyFXxB8hVdXgLAAEE9QEAAARQAAAApZbbbuM2EIbv9RS8WjiLLaCTZUsoCriK3XXqQ2A5yUVR
EBRJJdwwokBRbvz2JUXJp+w2QfcmiDmc7/9nyKHtAQDcV8/1chwUYQ5usjRJbubbJKkk2yFFU/FS
MU4HfcB+RoqJcloUQqorx+8ZuBi5EbaMxWJeqiT5xlRHmJQko+orbSSrFcO1JaaC0N+5wM+fv9i8
6SvFmdLCn6+c4ACmhR+jMzAtldyvs83gIqvDzMtayQYbm/3SqRR+QhJgoTf10Q47Ndg/WUmunPBY
FhqPYsA5KxVsdZ3hMVYMcXgWi/4jNjrGYlRgsHtpBbfiBu1QhiWrlDM+HAkJSTwGx84TquvWlTaq
O4/7ZW//VgolUsT5TKIX07v4QMkxGZK+K4rKSlL994Kk8x915rRdQzmnb8+jW7jJ1vk3ipXW8NxO
I3axH0U2TneIN6jnvknPRCMxNbXY/n86YO91Hv0CHrazJFmhZ0pulfy1g2BamaP87ZMW9axoMNbd
jXPwQPNUSN0Z275U6IYKztsKOyvz8kFITgYXW79j5bDjer18kKiqqGxTja5/1KU4/ojuu4KaGhyo
OQ7JJXXK6Qttr7s9LLv6EW7Ycb1xHMYnbr9ulwubtWnK8uQe3NKSsPLRxvSwXrO6Qgo/TXfawFHx
bJsRGh6FglH+ESEka01oR/FAGmhSdCTlw+L/kmqDGvWoICwuUdcCN6apJtvASqFYsZ+xktVP9OSS
pAjrzxtat901131sqT7B2HUj8IOdSaI/4edVizVm4s5MXCB/6J8ccZPLLmchEDFeCCPWiFnQJQ2I
aPQw6je2HbVRURRjEgeUjgmAMBr+8tcqu9ss9OUrafvYtRNeIg7gP0w9HdfNgVJOH/WtTETJ9xO9
uqPJ3zA3zYOs3Iln6vjemQrJCfhpBcf3z6AY4fegNvX7aM0Lel7sFRh54xAY+7j9TgJFU2L7j5Cg
LU5HwZlYypk+fphyVNcMJwkkHRy+af9OMAIGVxYEK8GMT30a4cGC74aUhO7PWjBl9zVO6n2JB2df
UdYHTGdnFB24WLHctJHS4O+X6LVDvC1heNJFRDyC3y/BXNvMXPWGm3Gj+l2C+oXUe15+6PlS2IYd
PzrIRyGlKA51KRMp0X5SVXw/6/Qdf3Rm081zoB8BLkTVTr15demr9tHZ0OPmj08zcBEFYNlwxSqu
Xw2ZdSN6sj8+209i/3v7+zrbG2F+mrhH/0M/GOaensd0trlbLdbrWzjPYDrRPylWf8D13RZu13AC
s/XdJp268Ha6ma03Szi7W6Xb+XoFoRN4JzQvxJFvaU250JVeC+uidp1/AVBLAwQUAAIACABNmQlH
950EDRM8AACN2wAASAAcAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLWlt
YWdlLXRocmVzaG9sZC0wMDItY3Jhc2gtbG9nLnR4dFVUCQADEgjIVRIIyFV1eAsAAQT1AQAABFAA
AADsXFlz28ayfr74FXg6RcUGNQuWGZavq0AsiWJtJcp26qZSLCwDCcckwQCkLP370zPgAoCQLfqk
7kMiPtAUZtD9dU+vA4yvyyIRVTXStx9/PV/eiEUqyttSCP13xyS2+Yd2Ha3u95Pgc/qpmK3nojr9
dHX+8SI4/em0fad2lorFKs9yUY76KGufRFnlxWJPFGlekQr99mkpthd/Y7Zhm/rgMlrlD+IEUJRA
VL/egb5+Wt0XC4kSc0B5I6plsajyeLYhUd3rv2PO/tA+VqLUz/w9NwthTfOjlTi9zec7hgRhy0DM
QFzHfIT4yKJDSpluIAch7Wqit1FfRIkOF3/TMRryoaUPMA2peQI4lkW5akzGWHMXxeJpXqwr/eNH
BQRR03N4GBqchNSwbcYNe4yZ4RCfBdRCLPSppmleGVX3ItVv70sRpfI+UGVeLaNVcq//uRZrAJ8U
82G0XM7EcB7lC2Olpmpa8JiI5QoQbJUa/OZNx64/dT0vmEz0weTs50nw86eTxky5BqDZD8HN5fTs
8pN7fgbTff9Gzo9WOnpEm08cR2ksRKZpny70G3EHN1f6pYhKmLMdG2mG8V7XpKqm09vgt1u9+9kQ
w4hYsYAfxv6CLXWO9N9hVTj58IdeGo+n5ddHfXLxv97V5x4L1DQXdJAnkRJkshQJmF+iny2yopyr
iyPNu3Env5xd/qzfBpNbUFxV0dPqPloCGfWPUaxXVZ6K04dott5dzOfRnVBqre6LWQogyfB+NZ9p
Wr0qsCabZRqNXrg4sIqNkV+jh2iSlPly5RWlqFXzPztdgzJSQjIm9M+3oWKkv9Ftog/cCsxaClYN
k+VyRAk+0fBxhCMWgeb1XyfeaPTr2e1otCzzB3ALr5gv85mYzIqvXlSJanACPIlJkT74JJJVUQ7v
R7bFTzRyNL/MjJ/lN9gO1H+rVQsyWMCV5I+5TfXBXMyL8mlEbIeeaPQ49jFYmZ3U7M/Pzxar0ejf
+WrD3F2kE7H6RazLvFrlSVWDkR4xnhXJl5/e1vcFjyKZrADzTwqTZesDAAz6IAgAmccCsgmPWoAg
xJVPV5ObQYfbhv3ZolqV60RqZnupCTG5BxdMwCRW29EN2UCS/ZAvUoXagYVUA3KFZXTfmJBFTjTr
SBESzByuz2b5YjVV4KWpcGJp9rGEbCsxu4SIg4nm/GWU2LGUUJQl+sNcqe+22N8AFCmxNX6k/fM4
5Uzfm3kqYMVhjderjfF/utguHOS5VeFFs1lYRvONtdkMHPACjM1E0tnRkc5HUyvdmtFKlMtSwHcH
ALC9A4aBuhZBLj00/M2FXydX8b8hGihonCHIgA2yyqAYswAmPgqmk4Ji7ZqFkIE42kI7QDAp1mUi
VOGgbP5fO2SfZAB/KyPmaHQZfRHp9ap8tyGySXbv/yVxmxZUGDICzIS8qFBzqVvSBP1ZxHu0+iFo
00lwwmN9Mw+QbSQEsylmM6XkjShni89FOUsHnak9ouxm+FcXn0sAIkp1q8JNMaj718kFJJU6C+2U
I0MzuDGmxwogEv4SAb6LXKkVQ33RIaF0ixkCbOaR2JzETLvYgpmYCxUxa/Otr74IHZG22qJShz8E
GQ30egw2ZFkmb+jtl9uL85ryzXqxaHjXNRS/+eKuHoNcsy0Uggdgv0fdmlaDNbk+6JKtdWk6gNc+
Fi914pfgjaB8XdypxLIDVNcBtvMcICIX1zkWUGxlPwqorkw4LOeNyMDHpfFL72XHYUAo62Lwi2Qt
LUOylSgWBfQzT2G+yGWlt18wL0rgb+g9lKGpWCjLlEMSSkMWlQGRH4OOJhBbka0/w3E0gr+SL5cK
ntIGZlActid5sxxwfI5mX4RUkQUqIugoFbHEJhZp+OA6LjfEz4solRpK87RWj7wAKzRIizXkDwUJ
yzB707oBcGBVQrbSQ1isF2ldw3eBOFmWsZRTIVgKHYVtGb9fTj7enEOEWQhVEan0s4hm+vRrvrrf
X5fuJmbiDqLXqFjMntxEdpSjP6axNKZpvngovggZtZhGyLFo0jjV/2skys9NjdBjuSfQhH6He82j
H4NkbHONtAKyF16K1dei/KL38uU4SyLMTFiD6f9dEqfFura0qTeLqipPiD1NN6ymXfMIPmJa639Z
5BJw+PAQdFcELE8j1jHgCDJFaqIXgMNMqWerC7d6WiTB9YfkENc1tqde2CJ1/YHSzqWaurcu5TbF
9NNF9NgWZ0pAIAby2McpO0pxmtTyfMCOdL+J9O31TEZBscJ0CpWB7HK/IcGhZqFAJ61ILQl3La4J
xDaFiLipe6FbltGT7LafwvVCiS6tCHyHHSsYimMdwvysKJYqrstiQTxCTt9INNgED43wI0knGUTh
i/VslcMNj6KcbIJlkzABy6foWMIpJ32Et4sweCjyVKUBh2gUH6Vhi1ArxrDUXnjz8fL86up6ejaZ
ei60apc/T68+3k5vr6budHL18cYL0PQ6uAmvbi6m4cdL7/bs6nI6Vb2dRslxXLEJwb3mul6cw1r4
RS1VhVRcAjnosRSpyJoU4R9p/BRr1DySFBWOpTcJ7fZ2oApGsILWwb5l59NqL6wElpHp5XpxK6rV
oFqlsHZTPBrFEcSEKXTX4FbvZB/9Vt8Pyr+nqzLKV5Uae98chB6tSKJVUdZD+vtmqUkhFg3a+Ibz
+YggzE40ah+JXcj2MW3dMQAXbzX+yvhAM6yPL8YO5FzqHMc3RTgRnTtk69HPG1PSKzM2idyzgSgx
y+P0aZYO4SuP9Wd4KwNwuI2sLAVtR6VsuvFu1w2P1DYaEKieqpWYT6G2WYhZm2YrXSZglXYEZik9
/E81H1rVdblQiUbtne2pLeutuha5JjAzMUmGmL6dOP36Z/1DKp8itTN2FDUri3ktZpMUpjuByTe3
F6VKN4PGPFpEd6I8Xj+mDYHgi5AtiW22tLKl3bNkTTmQCQ01VHTT7fzp/K5sJB3Kt4o5giAGN2kT
3KnHIjv10H+aPZj/NIGtf5rA9qjp4Z0iv+6ijtYIzSIc6fNIelJ1J3Pask8ZLyAkUsijW0KyAjQ7
jwNeUidk2GrWCRNRPuQJ5Jbk/rqoAz7DnW3+l5C1KD8sPzC2cWeH/i+oP9r75d/t2ZhIs8zR33R7
tkG9nif6tNlXS5aqSaPQm9pHc0qzGNRwOantaTqVz6DqKpFiprbVjzJYzDjfm39cpE+KFFPb6sdR
cki0p7RL7tRRO+pHelHC9QNCOx9yfiRoRFQGjUrMv0LFN63yO9lM93hJ8u3sxQTjUZogfREtimom
xFJtPu5CRfLmzRD3F0FNKtBs8xjKpn3FubrPq00SHI0U4Sn0HoNmvVoWi2I0StelMpF3s2Jxp8uv
ZuGqxt7h2VuQbPuZtetXxzr2IVtqRSxN9XiuyuLRSKrw42KVz8JoVokGxvUihypmKvu+d7vZcgs7
Ty7W0Aa+/1e7Aj9eIinLWz0uipmSBatd6T0D9RDz6Gd2IJ+VZXv5fhHREhYhiaBquvv/l0/ttjuN
57I/8AwPRDKJ2RUJjCCpNzMmW+HU7ib0FRBJpART6JnECALAybEP+1IrFk7DSNTWxW1UNTQlQbzV
ZTetDzrIfjoZnLzfPCq9llsc9S4wlc/EN3Tk7iLFJ8c+OpS4MP8vcW2CVrCHt9sT4B2I8pk9+8vC
MP/rwrB8tvhXhmEGpUxb+6PRRVTKnfwfiM8Oho5gupSavJ8mDzLE/GBFRxMa7zUAJg9lXU3NIc7R
cdqMU5M2nRro5dKbpw9RmcunqXU8fCZK7K/O6wBRO/exERgKvNTevGXxs7d5dUjxDYvyUjyuru/B
b+u9NQd3vJk69tEhERgKxLoM75L6l9ookMwYRI7tcP2g1fmBUIWwTesHu8+7GXbA0bLN5mQ0kyHK
/IEYhWyc1ay+rrLb57lZ+qAeBWu+rlHVL1RgB538M8os/urfr/796t9/W//G6NXBXx381cH/vg6O
Xx381cFfHfzv6+Dk1cFfHfzVwf++Dk5fHfzVwV8d/G/r4EhPNsdB5Xur8nzs5lyorg5+6APbNOJ8
dTLSdL2MHkc95zVhIG4N1J8UAJVJzwCCuFGmuwEJ1Il4bDoQB+RI/swt1W4AZ5vFztRAvGzSslKb
CjNVdxwO0EQy0Ut2yMSU8azkB7dgxQSjZ2BBk9MdIKYtJYHqqEvLFuoW2rgFo5hGKKJqwHzuDqsH
L5VM8mWL1vZcp15ms84tMIjka8Il6VtFoKWdF3d5Es107/pjfR6ZaUFZFqU6w7s5oby709Zu5Xse
l+t5vD2RjU1N08b5Iiqf9DN5wrUaadtjuY+7E7m6oTcv2shWLy903h0coBP9Xch9zChDBkdWYFCX
cIN5oW+4xA45dRxkOez990+Ot9gxqwcDs7LM1N+AF21OI8gXOSf3+XzjWgoN9U0TUUqNMOCmQZ3Q
BVyuZViI+4hjzINx2IfmOaodXH26ERi8+ADXeilPgzehua4XePbYM3zP4QYNOKiMc2IEY8ujvh2a
4Th4AbQm4RY6xzIP0YHdZFnyjdg8sBF5AzfBP5CH8RsASnwnoCgEoKHjG9TGpsGdEBs+dgOC7RD5
nt0HtE15mMnzi/IFrNPNkfjq1O3MaeKn2CYH+KnpdPGDLj5AEdGD22bMRSYJDItzy6DMxoZL2dgY
BzZiDuEBx14f7ppiP956rIUzFofWacYZyrK472hND1DTHnMSjqlhIwQuQ7FljMc2MgLqMysAN2LU
fgbo85rdDDah2oinB1BtLMCRrEOVnou7KHnqwzumJmMowIZpEn+jWNf2jTFhvm0RQsc2e16xNd1v
qbee0USeWiI5QJ5amZBhqIH8q4gTeXZgscrymTx9uuOiD6whhvvhW5oGdpkZYmSgMaEGxYFjsADs
2rUZD3zTDxiSYWGiUvbpeR6XEB9Pr+tT6uGWZlUrWfFzofZ5qvKqIdfhoFZDl4nChuxh70XaXaSc
yZNz8rVofUAoH5oA13F9k4752LC8wDWo5wQGB5swXGRzxEPuuZY0kHVVyuhwKm9usGIRIqLLCi5S
MFHaeo2pWGT53ebFk22osrg9xJa0Us6ZN7YhgPoWhFIIowYPLcewIA54FvUwtbwGiJrm6Tept0Bi
0zoEibn896AzGMgjhgAptJkfepZBkOMAJJcZrmlywwNAoR8EztgPGpDaRNrM5eG6LnPCuAzlknkO
6B+GZMvelEY0HpvmGIOzuh4l4AYAwUUBZDoI64QS17Rs2ubeoqK1WUWH/ClUS1L49nuKm3cjq+HV
ZPtTOikamspLkbIYC/QQorFlmC4xJTZA6QemYY1Nx7fBgIiFDw28YdktTr2+2pi8R9I/dT+uteUj
fUIz5dSNinkWreSRmq3yiTnkSLkxhURJfVh1SsaQQolJwS8CSFSMj7mLbQeN6bdMsk25g433YEtw
J+D4eZXciKQoZT+iD9hQ3iJNaWgObUDo+a7r+ggiC/YReK4NNjL2PCMIPR4wKE4CJ/jmOrQY9Gu3
NaUlhNnn9w4iWdIS4kEVfvrAUejhG4D7xMT+GMol1wOHgghJDMapbwRQtlDompDH0TeBu0kiZqKU
J9G/Zz41//5p9ZjWFoD2SJV0s1hdIT1CaUBtZ0jkDfUP6boM+YhByuLUBek8ahnMhtzLPRr6PtRO
IR1/1z0k8X7Q29E2bNEDm6GsY1E7gsOau5vO5XHJVR03IfKpRcJqkezQRzQIbWn/8MWhPBtz3zF8
mwWMu6ZNQuslaayPU79kfTNbUjL1CmlXSrMbyC5EmkeqboOOHmwOcVlo0oBSE3FIcxRWBdoFgwcO
NcgYBTwIGGM0eIk4W+L9ImxH27DNnlAUiaRjU7+c3RbFLC4eIQrJakhGXM4kdDsMUUA8A3ugf4px
CI4TIgOqDOpbxKGub3/boKIyfk7pjWk7AP0zd8NaW470ULjYtDqWN3max8Xuv04CQ5MJBRM+REMi
ixDmBmxMsDEOIedRh4YGY55tOHQcOiYah2E4fpmxNdg8Z2WNKVobtd0jipX05Em1zu56dV+UKjaT
IYH7uOnIJhUzZrvIguUi0tIYk7IgyJYYQR1Dkevjl8hyyOf5gNCe15bK7nGaWFYfWTvZ1Jts5dM+
8WMlFUHSCF0LSiBkMWPsQl1GrSCAuhwxw0fgQIxamDj+X5f0D9E8l56689qyp30rmtoHK5oUEdQ5
Q6bEBWmhYQ64jHauScAeoViC8gt++TxAng+tPWbBd6QFks+tFwx1YDp9MKMOzFvP24VoWaAQFzmW
zw3TCaFTChxscAta/nE4Rr7FaGiqFvS7dgZk+4HCQBNmHNFDS4ojK9qVVNEildFjV0gThw0xVtWU
iQIUugS8AHAZFKpbg4VjxwiQg7ADynbHvF3Pdqg1kSQmO1zXxMy6Nl2JZF3mq6dsf4wFFlneZ4G9
kiEFYCj0PRZa/+Ht2prjuI31O39JqlKgcb884uqoYh3J1pEqb6f2MmszkkgVKSnH+fXpxuxlMINd
btmsvGhXnClM96DR/X3dDawgQKwjhDkBMN8qDmBWQOimARCWujjT7/YPOe2VOeN3Fve1Ku1WPZW2
B4aCy+fD63H//5E+2fpuc4hCRw3UxDqNgCMRq+yY9oGwZ7LS5aIKb74M9z/+1Bd7vP0OqHZXiJkO
S0i4cXKzG5pp+XC3HR6OsW5v0BDGbpWsCQvnQlAKfL9F3mXBrDkDDq3hQxVKo3cXtZkO39dpekej
gNsug9lmtQAYMH2r7fC17oZ42tTEi6paCCVvkc5GV3yQ4DREAWwrOAY2TQGZSwgOsCy9KleFgAQP
SocHnU/HLG67aeXnPaXk0bI+vH739tO3X+/uZ4lEd6urfQXDZZawYnXxGfAHMD+YFUmYMsD0DOcu
6heyr74oM3VUT53NkcqPR+09/t9JEVFTDDE5pgMnLIA1Cc09gSkSwJY4RObkI5Osy+cWA7biKNER
R6mDOL+sIDLfb4ZjcoHK0cqZtDxiOiEF8IdCkwCLlShnopY+yUAvU6BKXV696b/Uwyk49aW2EjTC
r9dyKfx6bWZp0Fdv3n173K02YOduBKZu9OqJ0pwDGLb1SJSd1QTIGyPRmcDBSWdb/GUtDiP39The
nklte1LPw+Xr1f2vjw/fh2nMNEBaYoiGADcGgY3EZFf2JAqIwExoR+V1LGA/9hkWsL86k3q9lHpj
wW7ZjPR/HGsl5ZRexNNf0b2Y/WuPEcJShnClEqATpwFhBmQ1yvoYlfYpyqvcy/FZZ8n//vpNK3TH
S27p0MsntbBfANxH84GlBt9wVVpw7UD3I3j7TMG3AKJ0KSoSOZPRBXQu/FqwfAX4X9x20+qw6yjG
5u4/l1dYGbtH2I93I4HB5DSzTpJgPICxAkvZBeCY0vCcvUigxlVJ38PYffEPV1uppetIbdcHWLb6
9vXh6H2sqq+9SKDBsDwxLAFkAMJCggoYpYxU2SgTvW3h2GmU9uF203m4s7MCBZ7kM5R3eAji4/D0
VI1B6VvHR3OoCQeqNVcKoGwKCSInlYzYlDwxvkSImY46na55hctn9V/m8r5WM9d7rW57eK0/vioz
nw5Ai6USBQHGipn0hBlDzwjLUTHqJdAn9UI+/fjwVuRNJzRut8dYtH76DMvuEBQR/fLoI6UegqIA
zCsoBEULPpuAEzFJJu2YmcHyyRjts3dLp7ClCqywOSnol9W/Iij3uLpdAwz+NCInjVkahfIYwVSG
xUKMgRcnnKulXkkA9gU8u8hE2oEaU2r5w/wJP+zrJOi0N2/ena7fNJJulna8hXmdpTF+GT4/fB0+
3A3/OrHk0Qk4tAA8nDtpAY4sYVSXDFZU5MAowCc7wLQ5JH+NCS8fc84m5vfdtPIv7WHLV6yWZk5K
/fxt9fj132MBkVUOLMRIjkLS1hfNSYLQCPrERFwGawnSS8GVdvqZ+H4auq/A6fpNKyPvCL6mM0f8
ALjy1097oIpzsAesQrlEcwwkMUpxGgJILAwJCahQ5iYYGf4wYB2vteJuO8YjVnRmPOvV5uO3L9Oy
IbtVYyIMP0Fw5lTyFsK5NB7TYFljfwOsgRALA+agrXPX2E+YPWkq/3jtphWVLeXXhmMPxCyg77P5
7lZWn82jhjACZkELA5cHcQMMpBRCpeLS6JJSUX/KQGYh/kIy/3i5Uc2YZWpla+w8MY6W9FRbBWo6
b5+eVKYWpAMVJhnCKKvFCsC4CRgEtRmYqi+AHNlLZF/Rrt4dRDhvesdbWjUH21FzAO+7Gjnej//A
E/pv/any6m7FaHSeB+kExF2eE9A7cFjEc2DdXFiWKVMa3Nizmb0fH1dffrvbPF0Ru2aytHrslmxq
axGAnS1VHg+iBHAjK0yun8ixUvZKFkcsSwByMrhk70UkrLgogaEIYdzV2HL2tAvwcnZno5/ltKOf
HjrmuPmEoUXcKlRp/AI6uYIJNAMUSwDQgKCdIGC7RDJAJJsiKyrwZ11bvODaYuvarN51BIa/7g3L
fyj+2/buCDAhcCAcTj4bqVUmKduM9XysVmRDikrZQOCg2VxOGcC4z+TTGptqxWg1sB0PsLZm9spL
kyOsZkQBoTIstHIppONATYSm8NJBCeJUjCSAAWmmS8jFXtTmsi7xh35OEKTsrOq1owc897oebnbq
W0ADoZxxJ3wgkmJDFXWA6ExRxALh5UVqwFmztoVmlOb5G7pMD2w33B6e//9fNsd5pxQL5zj3mPmK
ScFkS+zlKAlIkWSKaBFEpElFzWU30XIcrhWiU2febuRqVshv2s3/wiUHasFGB+fAr1ngYYR7h12D
wPxtZon4YBw1DnC5s5cq+dOhW9HkuiOa4wfRNt++PJ36OoThVRwImICeFKbCA7wfryBmOiohvmir
QkkekPessWQyTiPAVncmaOC7wwR9T+/eHttKuLgVOD9YUhM8wNpMSLltDgAyYKayzCJqWQB6mxer
vg8bGKB/WyNfo9bQKTTAH9lBrf28HCoEy2oDTTQwkT3RQMfhFUdbG/OA40qr4LXnYMylGW9GnonW
scbBzCsP64fPsB7lmHdyYkzTY6JRAZjWCYIQuI5MLPZdFZ9pBiPMxVxVrwnwlD6ye/jcymqWJYWB
LVB0rR2eTcfHoIvWwMOSxPoItv1U9xJ9YM4mxayVF61lOvyFonknHQ+yLnHpwOW8T+b18HWFKfma
JzOHLplbjmVLKkFECpbAGDIYxwtxhnKSs8mBUmt51i9XtjxIck7P8WqjI9emoyNi79HWgYbM0vEy
aHATrhAgmzXNwIiT2ZIUuE7eUw/s52XS8YdntwIb0RNYzCFaRb3YgnGC0rlE5lmkJAaKpR3lCWBr
S2LxPBuWBCDqPwylx2szUZfucRBaHN5teTgenH8IoXsHYoXylitBtMfmLw8G72IohBkmJU2Atuwz
+OX0Q1FXW4//33dXQJ250Detcraj8VrudkO3heHVGwgMdOwsk8rQmiIXBhNaELkLB4QpMFpmAJwm
cgouSlNPn10x+8GfaVh49aYVfq06wm9A+ObQ759W978eml7RX5l909LYW2ZLZoIFDQveYnRznDgL
+Cc6TCdDvOdJvvjMTUU6s64mdzRKS7bEEIPcw5t2xvyH+LeECbNRY5gu7AQUtbouhXawsHICvyAo
A7idwNWFqBS3qhhL7bVMpz7l/MTVy60G62UxflBiydk+PTy++/1+AxZ360aLw89aYFQ6OEz9e8z8
Ir62Anib8TQAKBLWJP7ic3aU55yu+8uNrnXbw0JX7Y6I769/Xa3vjpDLVWfCmbcAxsGZGOzllUoR
wB+FGCmyK47pVOiik/g4TPN800lT4h8v8GPk+mgtrvZ6a+C9QMsKw20hNEE0FLDKbVBUxJxzeabZ
4floOL1jJvq2I/p2jkZ+Gz59wVUNYBUtBOkXcEkttNQkUURzxWHjKLAKLOUlI2TO4mX63+DRZ1rf
4EqrzLaDTCwbZtnuL49395NOwdu3+P8x0bpfARWk2ISxJgtMwMPyhUAO0QZogTI8BmcguNdW45e1
/6Ms/TuPl29aFXcdvVfzruojLXTOIC0UYz+p8LB8iAygnwgOVoGjEYF5dokmM9aKz7f4d5aD3XUC
vN3N+7veDRvcsbb/gatahtzXg1M20WOLCQ8WE/Y+EivB/VANPNUWjINXNWq0TzjbADS5Z6ZHJ2yv
VmrHx9f6sP7nZpK7UyNI8cmU5Kwk3DDgtbRI4oVmQHo4FczlaGqj8cSvTMdpBBg6ebcdZWr2Ilff
p61UY+FDozS8ClQs/gJessRYhS3zHN5mSIlICyyBQyhSPv/JrM/0jptWWN3TYJhxxu3909P2+CI5
ryXIWrmxUXtEpVRirhCbNpUtJLkIqFWi5apL1jkZtxWrs/diR/cpgll99N0vbw+NRHV6QzQFGAph
Bav8RgOJdUWAgZoilMqO9rzCmXoojH2hCgpXW6ldxxykGWEkqPiTf+vj30/lTze2PZlsvAs2EaYF
toMwSQKQW6K1CNpZrdxzqPnFMgtTCW9aLVRHNdzvud43MT594qekDauYONrMFaBioi32wmsLxKWI
DIYNiwy4DzMmzLsXJ8M0AiixDOE7hTlu3XaDN324YzCsjbgyu8zBWzmFGWCtJFhq1CRroFZKRB9L
fvFgcZLmXG94L+aDWryj65rP3MqrzUkUcCvYtM/VLUPKCNPFGDeAWAIuggz/WIV762ySWTKtc7mq
YWf6iDO9RpM7WiU2Hc+iNquDZ/my+nyyl3EHiAMwhaQj1bYo6hkJrGhSrKOKOsVEnJnLZIzZs5fs
YKfVPHl9d/+xKSuO7UKc4hu0XtFgnSA+YfLacg1vECAolkayBwdTpHkJ9PRqKkPzYu8/3rTi245O
7tjpuvn2+Al4zf6FGnsL3qVyclu4KS4QqjjuZDWYiQJnwzXFTtdkx07dJm96GqkVwQ0dEVbrOW74
bTW29zMxNvizfXmjOCuEk55wrhPuDQNHB3ZKilfgrIP26bo6//4BZ/DCeLERvDLkueBbag/e627z
DftRJ1iBAZRWFX5RZ5I3hEkTQWSwSScSJ4Zbr2XEjdZ8vqGwGauRY8t3HTnsvOK9qjWZShvxGzK/
seOnfuJKAbKeraSwvKUaa48hwsKpO7SdARO9gpCMlZ/zjBUvt9K7xYp2lFp6aUPkuAr2TRLUGHBP
tUZUvyGA8Dw7jt1LGVt+E6jjNHOEMYVDM6973fh/NNF4kuZSMmwG31FHtlScCXaA799f3z1tFgUD
Kl2kRijCLNbAXHDESQH8VcdgKWdGyvLfKhicBGwUw6zcUrH9/t7Jgt6sPuHpPe+fhsdanx2bWk/9
obEYqbgDBCsMOktYIEEEBqvEJOWB6GdpX6qfoSvMGVfQu7V5AXLZ5A1/VMeu6NlPIf0F3NcB+kYI
pJ6BIxVRAAfCZkxrqMOtL4Ym5yyQpC70bcdsxDHrYSmOWc9bRE+GgZOAMWvyF1aL+BAvgS8C7/dZ
w7rS4G+tBoqBmaEEtgfe4s9hytP1VoNd54Wa3XLr0OfPD/dvV/fDpxGo3WIzm8O0hQ4SCCV4BEUL
9hpHQxyYEIBjHpnJEL+eYfVXBt6pCOe84OmOmZJmqaQV+lR8eD+vPgCeFxzxg8hjrqLg6Su4d1cq
o6kGGqZeqvrwvmNZVnRFPkbAx+Hzw/dhd/dpaBodhQKP5RhMAceGBEyxeA6E2fgALFk6Q3PpGvl8
vJkwriOMXM8LVPhTjl8fvm1+O2xrmIA1LgHqihoVD19RXsBpPDhOogZPK5THA1xMAhDHcyi8AP64
KqN74dFNaWp+W6umox01t8Npy8XjsHn8/cukz1iPKYoinBHYAckkEidKNYHVDBCOpgTk1iHHPbPp
oh2ykQeiz1IeJ80xC4s/THwQRfPayBhZ1iqAI8e+0uQBDmOzWuCCKYfd9DT05TgNNRPBdkRYy5l7
OKX+Xr2pO5L5vgMe1t4txGKYbgywygBqBJmUxkYlBzjdRhqA6TsOL64wZ59pHH5zdkdyvdSKvukY
LfzxrG++HYMy5s3QRe//J6p7LjbRGI3BTmeAlUFZ4krWhEaOP9JnuQn/Fco/Xmv03G47VrLd2U5l
pW4IOzS/MmYqyJfaSAiTGQgGHq+g8HgnB/pJzq3gAXAQ488iujryeWxaL7dS7zqzMzA5y7COPwpz
ZJ3gNMZTK7x2KkBAx74OByQJmJI3hhPukmBZFCbsxTzWdNypXIyxRfreATGf9xKPiP/rvtxfofek
tYCNlTpWzxdwENYB/BPl0SMXCI+AJg2JTAdguFrz5/IYk8HPhPbJHY0ymnaU0Zwus3LYPL66u2+z
xiEJgFvCEfBD2N1WMrZ5AzApWF1RQFtsvjIzdxz/bHbueEerAZcdDfSx9ejHn8ZW2Vn0VpmC5doI
i1SgpwkZsJ7U4BYlMEAbQon0paL3RIBWdC16os97IP9n+Iob2g8ZUXU7JuIY+HEAgi5j8isYSYCT
ADg0KsErKYLrq84J2A/e12N/sRHa8OWyZMYOs30ufxvuPm+xF3Vs/eFV6LopQHPwkaWWpLnAgpsh
KQDHFdSkYs01Qu8HP1eiqhdboe2uI7Q77vzEH1Y8hmwrMU3AEncM64KRooF4CzgJe4OB4hUASqoU
1w+Uk7FaGZxayrDW8z3Blai/j9h7yWGqa2Fh/DYeEpei0xCuvRVYV6DEU4BF0TiaFPVcpOvL2+/j
hVTB+3jTyrntCX/cA/Rx+P3zr8fmkVrLE97bZFUiseDeA3AVgDQAvWXAncwL7nXqNxtOx5oJMXSE
WGQr6nKLqy9fv53Ki/vyeqbgUZMH/CUA/CgHyCIET4KzVCTpAcPLF8kATiQ4A0Ymd7Q6dhITbLOe
d3pth6ePXx++PE0y47bWiesnWgpXIUewj2Kxt7Fw8BRKUwII1jOvAuZfr9oZOT7okI/BG85skVze
2Ci2GXhHMTz7pQUheOjqLwMi7+FxD8GPeVwlEGkFDmYEbg8PooBZ5PDNaiCWFOI9kKJMc7oq6PQe
dWZFdO5slNuKzvLYWdVBWGnfn4dJM2lZnaxsrAGG7PEsQpgsEQPoxiSBQBxC9IFn93xvXjrbbne4
etNKt0z9ccbZrMcoFggCIz/T2AmJ7gg/axObTF4Dk0xS4t5+A7BQ4RFoWKlgnnojn4GFh7HPiH24
fNOIaFVHbqwjjj+it/43nhl03NzHayt4QFAuFAkMy3ESEztU45FHzhqMmFzG2ea+6SjN802HcnFj
5nb8c0KcpGrsq2cXRVY4NVqSlAtuxYqFBGwf9diKS5OWEM1fvFr185n+pZ9Tq5PZdnRC892MGKr8
A3Pww3aOooBIRimMhSCJJzxSXIqAXYmmBbA3Ni2JFzoQYSZCK77rTcl63hh/vze2Y2f8uPhsYJkV
7ILHnQwieOxGZhlPkLNAe4wXWl4iCs2wjVwr2Xmta2wIM4t4NW0RRMvZY+xxP60IMRYOgsXCCnIZ
7G8wjKRCveQgJvP8j++n3V+cii5YJwwJhay+QXnf/1PctfW2kSPrd/0KvSwwA5w2mndygHngNZtJ
PMmJndk9T0FbkhNhHDlrybuT/fVbxdal2aJkL9bYIww8jpomi2yyWB9Z9dUyRxWnbrboLwQwrj3z
f+D/c3g1BUsa1lvriESypNQYdC4wxAHSt/DDP4s7bdfCiRm/fVp0QR3fzMCXeKR3sz2r+fZ9eDpG
WrY/CE6AElMC8J7ZY4SBfRNWbKNppAwsdEKjPnFYM6yzFKdyXMeUGCOtjzfLvz0uN9+z5xcqD40K
zKsEA8Z446OGLQ/M6MZFDAt3tA1GWNIbo08O4672+jDunpZyC1KTGxbX/Pj4t8cpQ5OfUWc5k6mR
DIMGQSU0DvRtQ6NTYEMz6YR7nsW6q//cye4YrYCgNxXp1djrxCdURGH5kJljvu8NDgJb3ZYFUznf
EsNjQxxHg8pn3zvoCBM+AuYS4YkI4KKFp8+y0zPKjwqVPT8Ogccvx/GeN+v5xT4P/AoUwdfFarPn
c+hDWwNVjhvdOAcLGRAG/NYK2yhpAHFqpBxnTxBDjeo/5RY2Klb0R5Nj3Mk0GxvGrxarRU+Y2N1d
waDkIN2+N0Ru/e+44sa1YDCCvdPHxBjoX6MYglOHLj/PIg2pNFXvWKVg2TVGa13rdsTB/pW/vKpG
rEplA6FI4KMR1fhW4P7rG2KYSaKVPNn4shGrA0lGfbip9WE+ej07IrIvyx0yEzBN0Zo0Bgw7QIVN
iz72TMnsuY3OGoEZKSwPRL8ENtuxj/359Xl2sj+/HvVvUekf18cHZVd9yNTwmMwkCridCmSTwLME
3AUp4OHgE5j+TKLn8zOPyba1nzwk2z4vZeeVpWPYPvpj/be75WbB9huhyPFCLZXGJTzac3i0ByjS
eC0ayoUG+Ggo8yNilKKaQgBTOfpgphuv3Sd1cGoBtJCom6Qi0hEDqLUB5rwEHdS2oNeNT/+pDj6t
UU1Ha73Yu+v8/sfdvBp2iYTEGrY7ENsLvHJzMLUdeoMCXrVB8HCC0/tQYynIbWU4u3bMUrC1n7vV
jr8yDyGYiopzJMbDYy3qFVg1ROOdGlIYtG2wzwLP+8rP2u7dalLKyCqCy1qIx8fN8m5PKQLjfsF4
HssomDMqxSa2UoElBEaaNR5MYR49tRRwh0nPPQHLbZyGzPlxKX/NKu70mBapgtTAKNIZ8ON0iCy1
BP3hCLwHQE8JrEuBtMieJ42Ogoy8DBKsFBz1pzKjO8N2wOmfh5DqTErDaWw9stF6izjaW95odO0B
/ByDCIEbOgqp/mclnNqwm1lls8jJHMp58OVxhfm0tkOw38dFn17AoYO6V7YJBPn6kTzbSOXhnwnE
lFRXwWdlKpTNnJgQZaGyO7ek1p2xc+f1w+N6E//e3T3mN2I/Dy0t3ALBrrcYmt5wi/dWCkbWojOd
lsgtqyiL9Fm2cq2hE8SmlZKjrlVW7Ix0eyfhHgMvV7f743OOwT7Z0FIBgCkREuaHxtQgYGNZ6lnj
W25DVEaF8+Hmh1oLmWa0q8jEx6E/62+LxezLxdsOOY+uFl+71WY5u4Rn8BYHjHKoprOrSv8Lgi0q
tfLUg2lvYF5Fh37FeEVuSasw1FTE85ZItclT0XCVomVvRUXZzzUfXRvkMEK8IXu4v7vKCX4qyjN5
WKgePUUj+vYnBcozSaTpMom10Eln5LOpv4vGzsQzF+UmZS9qXcMNtZ9cf6zvNgNSB5b5RJXhBnYu
yTB0PLVIs6OQJA3ggQMznnhSaqBhJWXrXcWim9/oAX0mIEpfeHOAlcERj2vQ1K23OazSozM2zA5Q
S02UNATYTlUk4RSF5qjSQqZKoDp82e3vvL/Num8HIMDxct6QwFISsANK2BUzBDDao7ulBm0dPQti
ZKcNKylb7yrv45a1u9azY+YW6OxcinR7oXq2CxeMYQ7AVMyZSwJsyg6985mT1isw2KIYHbIe1Tcp
Gz7Wqrwle0qHX97TEe2ciyLBnBaNiB6GQjvROAyhdFG3Mglvn4IQz6ed2zc+KaQ7JrXBL/e3ZH90
DwNO6BZHTQhFrYUZHA06HqaIMewtBawNewGHF6jIaEsdVFI0TujxpsrJ0cVs33s/TBOTHRLYloBw
53YFuo9aZDuwmffbIg99BPM/OaatEjrF88iy0s65ZAdFwbJflbtb/DIfQMEgFFxQaLMdcIzKTGIJ
OXZM0xo8y2vxytwmsMCNkpncXIkRsd+JCkuhzLwiVEePCBmQjX42Q1bFm+Xd9lwvxzuiNgusNUGz
0IjMJ6zQnhIxNCm5YLWT0mn6NKVEUf8ZRVyUK3vTsVpv9qFAj4NRZTyzGnlupU+NJQBmmFYcbxdh
ezfEMACzrI0jpfN4Yhw7WWt57AKx3csBld1/Xi3LudT70vOtL32mudHOORbx/gy5YGOCNdU6isRL
tg3M6SBfhKjsKkv1oSZUMcHHxUYjUJne9IhD9uA/h1rzL2/tr9jvbWwwYxcZWZBEVLKENjJqjpRH
AfaCVjcesF7gHGaZfPo4COs+DYrwaSE/JRU1TYnY6bwvvTtG061X5MCNdThqx+x2KaVGKDBEmIHt
1CFKjtElUDGJUj6KxjiucCRPZUZRPg7gDIubx889AS7enmfmTfiJCJO4EAOMmqAMzD8J9rijISfk
8orQ1Fqvnndzfmjh1JX5oUTZB17tw23dwl1/X22+LArCBZwbahtforZutCyhR1YTNTqZ4cLQ1OmG
iGQAdAqn2pdnFuhn/tWxfMfLY1+oHIjb2uS61aOB+HWxSVe7jAY9H6OOVPrWmMZHg9nzAEsZYmFl
gA4wyNNO2Plgr1znSbeodDWS09TknI9uINebbrPe36GyXUC4F/BOWk2bYDhoU4zqMxjbryxsDo6B
OVAkWDsmaTpUO5Lq2MLlg8xfs/XtvGbJMeudRqJHqwlYt56DHSW5RpdrvIeCLYuPjOxBTYUEnaiM
S06U0dtwd93q83J+4JzBDdsILqPkpEkK+WOtaxvHfGjAFqIpBKJYGG3Yw1rK5jteab47zviy/t0+
3Cz32Z/oFhBmzgVOpBACQJJCF0cYAlAHyHpJkidJC1hE6qncYsPaTxOMDwqVvZhXFsGM3e5eo3tr
r44ikEM0zOLFJSh9gVFuFPZq6RsR4MUyScAi+m+FKh3kK7o14xVjeXbwXa9mcv5BgHnak3XilZQQ
SNeNMRgE84ohU3aSKnoTW8wTdTYr3bDeUrAK4oYv9+4Ej6t/LFfzQ0qF/qxDB++Z0GAge4SjNMKs
NQKmicBsgN4JXvfvH9ZWiqFqYpg999sD4JG7v1+Y/chk3lziqcfI1kQ8urXCD4eUWDK2npPAkzWj
0NCymlICQ2sSjLWvfXf16/1meTvIabXNcbe9cFOmJU5LhW4hmHAC9QnYZw3RXhArk/P+WccOo4ZO
nHmWhUYdMrUOjX13MrP8x9d7j4benwFHN3owzBEUSbDSGWY81iwiI5amjIZkw/OI67YNnAxVOC56
2vdhUGDU1wpCmbfdESNI9zD70ueIu9jS9G0pjR0yGOBmZDHsnElQxIZFk6m/ZDARw+peLpBzL8ip
a7nt42EnRbs4dqoQRMhRKoma7WKvrzBnYZ+wkOV5ihuPNsE01MacXg5PMMBGokxKKdpAaWr/e1xn
8GBSdqvWVySgNcUF+NVV6YHBeTSEO9BHLToXRjwg4oI03pqIqcxgfzhv+UGNJ+61r0YS6oqEDLmX
57U74F0qTAGqkVwQQG/5VJ+BbeYNHohgCBDSFAMoSA28AbwpI8wz/qw0VOevdyeljLNjwXk7dt98
s3i4WTzcr4dXu4m02ibQAcRoi95jyDUGO64JyUchYkrm/OjuKq2Lu3s6KSWTFXEFq1xDLX6zaZic
GQw81ccQwC/Zl1aHNgkPeCsETJsiG43JaxhzXmHu1Cjks6lVfrNnmFV+s2UfKo45gpvxIf77xQOm
jsWsPUOmO569Z7EDAeRkHBlEeXbLichtCtDfSatjYi1R8VnU1pWGTtBBHRcsO3ZTm0s3eyjQS3Lh
DkavURd9jKDCPNkiAQL2uL1I5RpnwWaTylNjHCilseVbVjaS49j4F4LsEz1fv07jtB2wESMjhWvw
lqNhCrkxQHs0yjH4L7aO0fhC56eH1ielfLoiNGVH+YC39/NbLXtxnCFo4DVAqW09BSzhE7JDIR2J
NVw1wvpgY4xteCIy76i5EyZ8WarsWCVKCWmgdrMiLLvPq/s13gEt1mtMNFQmuCM5/IP74MCEco1v
Qc8wTmGeYxJXbnIGCujI+LD4fL2liKo2Ybp9INUv7+OrowP3NgYeEaolpMRFhkwZGCY9kBmpJe9e
7MB913ohtBSV1SaVOZnuN+si5GogOXdDzlfSXsicdoczr3wKoEBgiFky8FubImyU3BnlOaaXerYu
zE2cUYf5edmVyt2PkABW57SIdzwQjXPVs7I7hVlxI9KfqewT4RurNCYoBrTvJGth4zwb6lgb2K4i
ze3MKHPkqrHzH0PFjJnR855+8FHz2jsvJW9adJeEIQ6NxTSixsFuqRihovX/oY/asMSwF5J2x0aw
ZNuUr3hu0V/Egcq40AcuNDwEDKADtRQNaQOoQi6RGtz4JsAciCC4CGxMsXNUVSEJqxxFSHazB/Hv
V59Hi4sI4qyhoP4j8tQ4aRqYNLzBMxDAtmCoBvZCi2vfeCEyr6wtybuCNPjD4jNmqP6+lz1bFVYp
23INyMEKZNPwmJZNAgpFJz8Ps1EG//9IGlwKXfa59prkUY5gnHDHeRK02HJ1KWpckME2BG/XWVR4
+MIBSMhESXRJUPd04vOnCADLMkUvZMW/Rsr52N/ur+/9dnT3rjU5k02UAGZVkyLmN8ZbHkNgEXih
wFSkYAY8j2jsUHtd/sPzUvbFsXGrqJgdO1pm0LrNUEGl6OGDCZ4wRxXYgwTPfWF3NAxpNmOIUgKG
cuFJUrgTINRvn00KySrsKIphYuVCXGRxeFzu0mNT1ht8AJhCQg8CZJ7aUrooTZtkWkZEAuwT1LOd
2V6f8WQrfFlBvGOcpjibn79yWqbl0KWE9l0Am51oA4Irjb6NsN00RkbTBB1C9Im5qNjTV05Q95kr
J3g6KUVd1ORfjHBmH4H/uFpu1n38/cdVf8xRBN9jsnXCRCOExQAVWK+W5SQ50lCrQoTN9enge6z5
TOQ9Pi57cJy6Fb5U+31pvb6rbEqCeI3hx01QHsEaBZhp0ZmUOxhtQgIAn5FLbllPKUPF3lBIt12m
PH0b7PvCXQpweiaH2B40cxtCK4xoqECC+NQavFpHHgMkGbeBenE+LgIbOHG0BU8KkTU9hgdK872/
ov+Qrh6Xm0VxV50SACeRU/lxdGTWmPzIqIZoIjEVrtImjPxSimpKCSr0WkrreWV/yHfulTQSyLPT
MouvDtQSwahJ41njorXaRq0kd89jlX+CU76UWy9qct+ODttv7u5nv+9vqCTLoFALiakVqEUvS9OC
ao3GNSQKDns6VUnTc8blsMpSpMrpsjJHiv5t97iafRlweCvaT8D+l+zVpqhvtWlsi5ktmOLIn2Gb
2HJiE+EmUf5y55SlPKe8+oZlJmUH55Vey72PFYzTwYmcmWxBcyTXC7gjG1hdzGkLMItFpPCJgAJg
ZyOszkv2veY/rsyCVWRYdDn0N9+nofgHOoQ9N7DlLUBpBEeUZNIMDjtXPnEJePJFAszgqiDDGgtR
OlJRhB0Zb59V+vBdBAnN6A1wfAsrnTTBIrtn9BS9NkkjJBVEe0ym/iKx/e9LUY6Ywsvu6crb7owc
uc+u8MJiYEOTC9ofXQBG4o4DBk0iJ9NFMjqR2oZLmxKD7jHKzsamDiouBTMVEyDTfvaCfXj9vhpw
lJiXrQAThSSKUBMTgHlQphq2+lZJhacTLxlwNJCjlH/WVuSf7S/HYLoVZBSSgqrCfANEZ/I8GFIN
EKVRVjoDEBSQsj5xPTerNl/RXTdkPk72G0GJgmWao+Zln3DYOUtZm0xDchohjyHgAJeaVlKiiKHw
bXg5bWXjCbMkTkrRK9vDrN0fT/3xdUgFTfO9OKx2NDpgt48Y1BJBFwA+bVqFQ0yFkSqNHBe/Vomg
oaFq63SvE//22D2gf/Rqv7GrfFxqiaXO42kYg8WBfoouWbCjo0BKJbA8TrzTcX2lMKqCP2Z6fC3d
rQ8p1oja3klLIRKsWNYICqgp8wI6kmN1AfNZG5Ph4dxy3VdaSqR1TaJ9qo37+cCNI9MuYyZjHp1t
OHc4xwSYFym0jSbGtSylwOXIqWpQx2QS/9gmkry8nx+uda8ev36FqfgTyOa7u7v19Gs3X0xvvk/v
N18WD9NvD/foXghb9KZ7+LzI6UM3X5br3YOfcp823fr3T7f3D5++Lec/TfsDsP4i/tMMfm4WP03b
4ZfrxSa7t2y/Lxt+qvr2P6se/jHoFYxAbg/pfWDmVLtjYLP599qc/HY5xeOI4fh+gFLvVnffp0gz
gk/ub6d7LoSfptf3m+7uZ8rkhb6cPizWy/litfmZcHXBL3+Q9E8/Ttf/wMQK80/3j5tPINvjKlOZ
QYvzn7XBUkz/6cfJXx6WG6RShTqw/X3NsPm8mv4DHm4Wq59Ji+UJVHpoCcyB/qtBOz+3b35o4ath
W1jRD8ZAU9PJh/jq9btfp9f/9z5OT3x+e/3h+qN9O/n58DlVdPt44l9NMZUwTrX1BtTiulYYQLZ8
g0WXOWPvuc++6DpTTfR/sT5RVtE3k7AlfgWdj/qkj6IZ/wHXF+3l5Jer6S+vr6ef+1hgqHx2Px9L
Q+iZoj9A/0DtL+Y/YlHA3FB094e7R1OYTt18jlncpyAZHuwM3siPkzc5gePU4jfTd6vZqeHQbyaX
9u3bd356frwwtORyV/SHbv51ufrxZGkGA3b1v28BWE2/4ZvIjJLVkrAfQ9Fr699MX320H8JpCTAx
6eXkagOzYPrEBy+YL2G9fcrS2ut4pqjEbv1lcYNHTJd5/E4VBSAPg/XpU7DX9gkBKIMVC0VfX9pX
8YmyguZa377+9U0MMBdOf4zqa72Of71+YgAATrRY9OOvr/27cF4Ewfmbyde8vqfIaHGmJKqUyXbF
fF18xdjd0x+o9d9Y4Nfvru3b6ZNv9kK+6ov+zxRm4OO6WA/9OsgfCThGXII6mvwLUEsDBBQAAgAI
AE2ZCUdEX1q73AMAAK8JAABFABwAY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS92YWx1ZXMvc2hh
cGUtaW1hZ2UtdGhyZXNob2xkLTAwMi1zdGRlcnIudHh0VVQJAAMSCMhVEgjIVXV4CwABBPUBAAAE
UAAAAKWW227jNhCG7/UUulo4iy2gsyVhUcBV7K5Tn2A5yUVREBRJJdwwokBJbvz2JUXJsp3sJuje
BDGH8/3/zJC0bdM0rRfbcmAIcy8zb9Ikjm/muzguBd3DmiT8uaSMjPqA/gxryotpnnNRXxlOz8gy
YgVIMxaLeVHH8Xdad4RJgVNSfyONoFVNUaWJCcfkD8bR0+cvOm/6QlBaS+HPV4Y7gAMngmdgUtTi
sE63o4usDjMvqlo0SNnsl06l0CMUJuJyUx/tsFOF/YsW+MrwjurIDseRyRgtatDqGv4QC3zkncWC
n8TGQ8yCOTL3z63gjt/APUyRoGVthMeRRBmOQnPoPCaybllpU3fzuFv29jeC1zyBjM0EfFa9i4bB
utjHfVdqIkpB5N8Lksx/kJnTdg1mjLyeR7dwk66z7wTVUsO2Oo0xdp0g0HGyh6yBPfdVesobgYiq
Rff/0xF7J/PIF/N+N4vjFXwieFOLrx0EkVKN8vdPUtTWot4Y2SjKzHuSJVzIzuj2JVw2lDPWVthZ
mRf3XDA8utj6hpXjjuv18l7AsiSiTVW6zqBLUPQR3XcFJdU9UsfIw5fUKSPPpD3uelh69SNcr+Na
vu9FJ26/7ZYLnbVtiuLkHGxIgWnxoGPysl7TqoQ1epzupYFB8WybEvIHIXecfUQIikoS2qt4JI0k
KRhImZ//X1KlUOMeZVn5Jeqao0Y1VWUrWMFrmh9mtKDVIzk5JAlE8vOWVG131XEPNdVFUWhZgfmD
nXEsP6GnVYtVZqLOTIgCx3dORtxkostZcIiVF0yxNqIWZEkjzBt5GeUb2161cZ7nIY5cQkJsAhD4
v/29Sm+3C3n4CtI+du0NLyAzwb+0fhzW1UAJIw/yVMa8YIeJXN2T+B+QqeYBWuz5EzEc+0wFZ9j8
ZQXDcc6gCKL3oDr1bbTkuT0vsnME7dAzlX3UfieZeVMg/Q8XZlucjJpnYgmjcvwgYbCqKIpjgDs4
eNX+PafYHF1pECg5VT7lNLyjBcfyCPasX7Wgyu5rnFSHAo3OvqK0D5DMzigycLGiuUkjhMLfLeFL
h3hdgn/SRYhtjN4vQR3bVB31hqnrRuS7BOQLKfc8/9DzpbAOG05wlA88QmDkyVImQsDDpCzZYdbp
G874zKaVZaZ8BBjnZXvr1atLXqSPzoa8bk54moHywDWXDatpyeSrIdLuip7sj87248h5a39fZ3si
1E8Ta/DvO66f2fI+JrPt7WqxXm/APAXJRP6kWP0J1rc7sFuDCUjXt9tkaoHNdDtbb5dgdrtKdvP1
CgDDtU9otiffCU1rioWs9JprF5Vl/AdQSwMEFAACAAgAKZkJRwcfqgaPAAAA+gAAADMAHABjc3Mz
L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWludmFsaWQtMDAxLWNyYXNoLWxvZy50eHRVVAkAA84HyFXO
B8hVdXgLAAEE9QEAAARQAAAAtY6xCoMwEED3fsVtTjZRKhbn2klaCO1UisTk1ID15C5S/Pv6E4U3
veW92pi7qeBqw4QeIgGj9ZCopyCL6tYw+Y6iakLHljfV0CDqEuwwk8TgDC7EcTfrZzE4e+QHI7a5
zopUl2l23ilOumzxK5nWR8dWxqSCV808E+RvuBHI6kbo9z4Qgw+MLhJv1Z8nDj9QSwMEFAACAAgA
KZkJRxH6gsfdAwAArwkAADAAHABjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlLWludmFsaWQtMDAx
LXN0ZGVyci50eHRVVAkAA84HyFXOB8hVdXgLAAEE9QEAAARQAAAApZbbbuM2EIbv9RS8WjiLLSDJ
kmwJRQFXsbtOfQgsJ7koCoIiqYQbhhQoyY3fvqQo+ZTdJujeBDGH8/3/zJC0PQCA++q5eYyHRZCD
myxNkpv5NklKxXaopql8KRmngz5gP6OaSTEtCqnqK8fvGagYuRG2jMViLuok+cbqjjARJKP1V9oo
VtUMV5aYSkJ/5xI/f/5i86avFGe1Fv585QwPYFr4MToDU1Gr/TrbDC6yOsxcVLVqsLHZL51K4Sek
AJZ6Ux/tsFOD/ZMJcuUEx7LQeBQDzpmoYavrhMdYEeLgLBb9R2x0jMWowGD30gpu5Q3aoQwrVtbO
+DASEpB4DI6dJ1TXrStt6m4e98ve/q2StUwR5zOFXkzv4gMlxyQkfVdqqkpF9d8Lks5/1JnTdg3l
nL6dR7dwk63zbxTXWsNzO42Ri/0osnG6Q7xBPfdNeiYbhampxfb/0wF7r/PoF/CwnSXJCj1Tclur
XzsIpqUZ5W+ftKhnRUlUeDjOwQPNU6l0Z2z7UqkbKjlvK+yszMWDVJwMLrZ+x8phx/V6+aBQWVLV
phpd/6hLcfwR3XcFNXV4oI5wQC6pU05faHvc7bDs6ke4geXiYhwG8Ynbr9vlwmZtGiFOzsEtFYSJ
RxvTl/WaVSWq8dN0pw0cFc+2GaHwKDQc5R8RQqrShPYqHkgDTYqOpDws/i+pMqhRjxq6xSXqWuLG
NNVkG5iQNSv2MyZY9URPDkmKsP68oVXbXXPcxx01x2PXjcAPdiaJ/oSfVy3WmIm7EY+KyA/9kxE3
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
yt8/gajdiNKEMhIk5j1LIqmgMk35IgkFlULUGbahzLN7qQQdXGx9I5Tjjuv18l7hPGeqdtW6Tq8L
wh/RfVcQqMOOylzi0kvqVLBnVo9706xm9SNct+W6I8cNTqL9tlsuGq9tlWUnc7BhGeXZQ2ODw3rN
ixyX5HG6hwB6xbNtWsjrhYaj5CNCWBVAqI/ikTQAkt+TEi/9v6RCo0YdyqbpJepakkoXVXtrWCZL
nh5mPOPFIzsZkggTeN6yoq6uHvdxS7USz7J88wc7wxCeyNOqxupggtaNsKHjOSctrhLV+iwkpjoW
ymkTiF6AlAZUVnAY4Y6tj9ooTdMxDYaMjamJkO/99vcqvt0uYPgyVl929QnPsDDRv7x87Nd1Q5lg
DzCVoczEYQKrexb+gxJdPMSzvXxihmOfqcCom7+sYDjOGZRg8h60cX0bDbxhxwvslGB77Jo6fFK/
k8y0ykjzRyqzTg6s5plYJDi0H0UCFwUnYYhoC0evyr+XnJqDqwaEcsl1nNAN9xiCY7mMutavhqDT
7nKcFIeMDM5eUU0cKJqdUcBwsdJwo0opjb9b4pcW8ToF76SKmNqUvJ+CHttYj3ol9HFjcC8huCFh
z/MPY74UbsyG4x/lfZcxHLiQykQpfJjkuTjMWn3DGZ2FCa8aEy4BIWVen3p967IXiKMNA46bMz71
IKk/NJeVKHku4NZQcXtET/YHZ/tp4Ly1v8uzngj9aWL18XvO0EtsOI/RbHu7WqzXGzSPUTSBT4rV
n2h9u0O7NZqgeH27jaYW2ky3s/V2iWa3q2g3X68QMob2Cc12ie80tCpbQKbXsomisIz/AFBLAwQU
AAIACABPmQlHlEPTkxM8AACS2gAAPwAcAGNzc29tL2Nzc3N0eWxlZGVjbGFyYXRpb24tY3NzdGV4
dC1maW5hbC1kZWxpbWl0ZXItY3Jhc2gtbG9nLnR4dFVUCQADFgjIVREIyFV1eAsAAQT1AQAABFAA
AADsXFtzm8i2fj78Cp6m5EmQ+8KlW5WTKsRlxhPfynKSqTM1pULQ2OxIQgPIsf/9Xt3oAhJOzOzU
eZhtPSgy3az1rdXr2tC5LvJYlOVI33789WJ1I5aJKG4LIfQ/HJPY9E/tOqru95Pgc/opn68Xojz9
dHX+8SI4/fm0fad2lohllaWZKEZdlLVPoiizfLknijQvT4R++7QS24u/M9uwTX1wGVXZgzgBFAUQ
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
z9QDAAD9CQAANwAYAAAAAAABAAAApIFPQAAAYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1oaWRl
cy1hbGwtZWxlbWVudHMtc3RkZXJyLnR4dFVUBQADrgfIVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoA
AAAAAEeZCUcAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQZREAABhY2Nlc3NpYmlsaXR5L21hYy9V
VAUAAwYIyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABHmQlHREAjav8DAAA9CgAAPgAYAAAA
AAABAAAApIHgRAAAYWNjZXNzaWJpbGl0eS9tYWMvbWVkaWEtZW1pdHMtb2JqZWN0LXJlcGxhY2Vt
ZW50LWNyYXNoLWxvZy50eHRVVAUAAwYIyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABHmQlH
gvdr6dcDAAD9CQAAOwAYAAAAAAABAAAApIFXSQAAYWNjZXNzaWJpbGl0eS9tYWMvbWVkaWEtZW1p
dHMtb2JqZWN0LXJlcGxhY2VtZW50LXN0ZGVyci50eHRVVAUAAwYIyFV1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACABPmQlHEmRisABAAAAG/gAAKgAYAAAAAAABAAAApIGjTQAAYWNjZXNzaWJpbGl0
eS9tZWRpYS1jb250cm9scy1jcmFzaC1sb2cudHh0VVQFAAMWCMhVdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAKZkJR9fg8klQAwAAKQoAACcAGAAAAAAAAQAAAKSBB44AAGFjY2Vzc2liaWxpdHkv
bWVkaWEtY29udHJvbHMtc3RkZXJyLnR4dFVUBQADzgfIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIAE+ZCUeylhRozD0AAKHgAAA6ABgAAAAAAAEAAACkgbiRAABhY2Nlc3NpYmlsaXR5L21lZGlh
LWVtaXRzLW9iamVjdC1yZXBsYWNlbWVudC1jcmFzaC1sb2cudHh0VVQFAAMWCMhVdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgAO5kJR3uCbwT/AwAAdgoAADcAGAAAAAAAAQAAAKSB+M8AAGFjY2Vz
c2liaWxpdHkvbWVkaWEtZW1pdHMtb2JqZWN0LXJlcGxhY2VtZW50LXN0ZGVyci50eHRVVAUAA/EH
yFV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABHmQlHAAAAAAAAAAAAAAAABwAYAAAAAAAAABAA
7UFo1AAAY2FudmFzL1VUBQADBQjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAEeZCUcAAAAA
AAAAAAAAAAAOABgAAAAAAAAAEADtQanUAABjYW52YXMvcGhpbGlwL1VUBQADBQjIVXV4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAAEeZCUcAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQfHUAABjYW52
YXMvcGhpbGlwL3Rlc3RzL1VUBQADBQjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAEeZCUda
DgSjCQQAAO8JAABCABgAAAAAAAEAAACkgT/VAABjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJ
bWFnZS5pbmNvbXBsZXRlLmVtcHR5c3JjLWNyYXNoLWxvZy50eHRVVAUAAwUIyFV1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACABHmQlHx7/MJNwDAACvCQAAPwAYAAAAAAABAAAApIHE2QAAY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5lbXB0eXNyYy1zdGRlcnIudHh0
VVQFAAMFCMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAASJkJRwAAAAAAAAAAAAAAAAwAGAAA
AAAAAAAQAO1BGd4AAGNvbXBvc2l0aW5nL1VUBQADBwjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoA
AAAAABmZCUcAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQV/eAABjb21wb3NpdGluZy9nZW9tZXRy
eS9VVAUAA7IHyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABPmQlHHCgcG9s9AADN4AAAOwAY
AAAAAAABAAAApIGu3gAAY29tcG9zaXRpbmcvZ2VvbWV0cnkvY2xpcHBlZC12aWRlby1jb250cm9s
bGVyLWNyYXNoLWxvZy50eHRVVAUAAxYIyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAZmQlH
Zmkhl/0DAAB2CgAAOAAYAAAAAAABAAAApIH+HAEAY29tcG9zaXRpbmcvZ2VvbWV0cnkvY2xpcHBl
ZC12aWRlby1jb250cm9sbGVyLXN0ZGVyci50eHRVVAUAA7IHyFV1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAAAAABImQlHAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UFtIQEAY29tcG9zaXRpbmcvcmVn
aW9ucy9VVAUAAwcIyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABImQlHe/+0F/8DAAA9CgAA
OgAYAAAAAAABAAAApIG7IQEAY29tcG9zaXRpbmcvcmVnaW9ucy92aWRlby1pbi1vdmVyZmxvdy1y
ZWdpb24tY3Jhc2gtbG9nLnR4dFVUBQADBwjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAEiZ
CUdvmkiG1gMAAP0JAAA3ABgAAAAAAAEAAACkgS4mAQBjb21wb3NpdGluZy9yZWdpb25zL3ZpZGVv
LWluLW92ZXJmbG93LXJlZ2lvbi1zdGRlcnIudHh0VVQFAAMHCMhVdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAO5kJRwAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BdSoBAGNvbXBvc2l0aW5nL3Zp
ZGVvL1VUBQAD8gfIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAE+ZCUcl6lvQUj4AALn0AAAm
ABgAAAAAAAEAAACkgcEqAQBjb21wb3NpdGluZy92aWRlby9wb3N0ZXItY3Jhc2gtbG9nLnR4dFVU
BQADFgjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACqZCUeH880N/QMAAHYKAAAjABgAAAAA
AAEAAACkgXNpAQBjb21wb3NpdGluZy92aWRlby9wb3N0ZXItc3RkZXJyLnR4dFVUBQAD0AfIVXV4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAE+ZCUe1CC+/dEEAAHYdAQA9ABgAAAAAAAEAAACkgc1t
AQBjb21wb3NpdGluZy92aWRlby92aWRlby1jb250cm9scy1sYXllci1jcmVhdGlvbi1jcmFzaC1s
b2cudHh0VVQFAAMWCMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAO5kJR3cCIHzMAwAApQkA
ADoAGAAAAAAAAQAAAKSBuK8BAGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWNvbnRyb2xzLWxheWVy
LWNyZWF0aW9uLXN0ZGVyci50eHRVVAUAA/IHyFV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAY
mQlHAAAAAAAAAAAAAAAABwAYAAAAAAAAABAA7UH4swEAY3J5cHRvL1VUBQADsAfIVXV4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAACmZCUcAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQTm0AQBjcnlw
dG8vc3VidGxlL1VUBQADzgfIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAE+ZCUeV2zYV8jsA
AP7tAAAxABgAAAAAAAEAAACkgYG0AQBjcnlwdG8vc3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVl
cy1jcmFzaC1sb2cudHh0VVQFAAMWCMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAGJkJRzay
p3T2AgAAfAYAAC4AGAAAAAAAAQAAAKSB3vABAGNyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11c2Ut
dmFsdWVzLXN0ZGVyci50eHRVVAUAA7AHyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABPmQlH
1zYHYk46AAC50wAAMQAYAAAAAAABAAAApIE89AEAY3J5cHRvL3N1YnRsZS9qd2staW1wb3J0LXVz
ZS12YWx1ZXMtY3Jhc2gtbG9nLnR4dFVUBQADFgjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ACmZCUfuo60T5gIAAFQGAAAuABgAAAAAAAEAAACkgfUuAgBjcnlwdG8vc3VidGxlL2p3ay1pbXBv
cnQtdXNlLXZhbHVlcy1zdGRlcnIudHh0VVQFAAPOB8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAO5kJRwAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BQzICAGNzczMvVVQFAAPxB8hVdXgLAAEE
9QEAAARQAAAAUEsBAh4DCgAAAAAAKZkJRwAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BgjICAGNz
czMvZmlsdGVycy9VVAUAA84HyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAApmQlHBx+qBo8A
AAD6AAAAOQAYAAAAAAABAAAApIHJMgIAY3NzMy9maWx0ZXJzL2ZpbHRlci1wcm9wZXJ0eS1jb21w
dXRlZC1zdHlsZS1jcmFzaC1sb2cudHh0VVQFAAPOB8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAKZkJR5bqZhHMAwAAVQkAADYAGAAAAAAAAQAAAKSByzMCAGNzczMvZmlsdGVycy9maWx0ZXIt
cHJvcGVydHktY29tcHV0ZWQtc3R5bGUtc3RkZXJyLnR4dFVUBQADzgfIVXV4CwABBPUBAAAEUAAA
AFBLAQIeAwoAAAAAACqZCUcAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQQc4AgBjc3MzL2ZsZXhi
b3gvVVQFAAPPB8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAT5kJRzxARSxOPQAAS+EAAC8A
GAAAAAAAAQAAAKSBTjgCAGNzczMvZmxleGJveC9hbGlnbi1hYnNvbHV0ZS1jaGlsZC1jcmFzaC1s
b2cudHh0VVQFAAMWCMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAGJkJR2jFVUl+AwAA/AgA
ACwAGAAAAAAAAQAAAKSBBXYCAGNzczMvZmxleGJveC9hbGlnbi1hYnNvbHV0ZS1jaGlsZC1zdGRl
cnIudHh0VVQFAAOwB8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAT5kJR+MTctRDPgAA7/YA
ACUAGAAAAAAAAQAAAKSB6XkCAGNzczMvZmxleGJveC9ib3gtc2l6aW5nLWNyYXNoLWxvZy50eHRV
VAUAAxYIyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAqmQlHaybrqQ4DAADEBwAAIgAYAAAA
AAABAAAApIGLuAIAY3NzMy9mbGV4Ym94L2JveC1zaXppbmctc3RkZXJyLnR4dFVUBQADzwfIVXV4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADuZCUc9zg/EkQAAAP4AAAA7ABgAAAAAAAEAAACkgfW7
AgBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wcmVpbnN0YWxsZWQtZm9udHMtY3Jhc2gtbG9n
LnR4dFVUBQAD8QfIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADuZCUdlwHqMwgMAAEMKAAA4
ABgAAAAAAAEAAACkgfu8AgBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wcmVpbnN0YWxsZWQt
Zm9udHMtc3RkZXJyLnR4dFVUBQAD8QfIVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAEuZCUcA
AAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQS/BAgBjc3MzL3NoYXBlcy9VVAUAAw0IyFV1eAsAAQT1
AQAABFAAAABQSwECHgMKAAAAAABJmQlHAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UF1wQIAY3Nz
My9zaGFwZXMvc2hhcGUtb3V0c2lkZS9VVAUAAwoIyFV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAA
AABJmQlHAAAAAAAAAAAAAAAAJgAYAAAAAAAAABAA7UHJwQIAY3NzMy9zaGFwZXMvc2hhcGUtb3V0
c2lkZS9zaGFwZS1pbWFnZS9VVAUAAwoIyFV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABJmQlH
AAAAAAAAAAAAAAAAMAAYAAAAAAAAABAA7UEpwgIAY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS9z
aGFwZS1pbWFnZS9ncmFkaWVudHMvVVQFAAMKCMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
SZkJR5MmpksJBAAA7wkAAF8AGAAAAAAAAQAAAKSBk8ICAGNzczMvc2hhcGVzL3NoYXBlLW91dHNp
ZGUvc2hhcGUtaW1hZ2UvZ3JhZGllbnRzL3NoYXBlLW91dHNpZGUtcmFkaWFsLWdyYWRpZW50LTAw
MS1jcmFzaC1sb2cudHh0VVQFAAMKCMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgASZkJR2Qv
LtzdAwAArwkAAFwAGAAAAAAAAQAAAKSBNccCAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvc2hh
cGUtaW1hZ2UvZ3JhZGllbnRzL3NoYXBlLW91dHNpZGUtcmFkaWFsLWdyYWRpZW50LTAwMS1zdGRl
cnIudHh0VVQFAAMKCMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAATZkJRwAAAAAAAAAAAAAA
ACEAGAAAAAAAAAAQAO1BqMsCAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL1VUBQAD
EgjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACmZCUcHH6oGjwAAAPoAAABIABgAAAAAAAEA
AACkgQPMAgBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1pbWFnZS10aHJl
c2hvbGQtMDAwLWNyYXNoLWxvZy50eHRVVAUAA84HyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAApmQlHKRwk4d4DAACvCQAARQAYAAAAAAABAAAApIEUzQIAY3NzMy9zaGFwZXMvc2hhcGUtb3V0
c2lkZS92YWx1ZXMvc2hhcGUtaW1hZ2UtdGhyZXNob2xkLTAwMC1zdGRlcnIudHh0VVQFAAPOB8hV
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAT5kJR97ZCk0QPAAAm9oAAEgAGAAAAAAAAQAAAKSB
cdECAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL3NoYXBlLWltYWdlLXRocmVzaG9s
ZC0wMDEtY3Jhc2gtbG9nLnR4dFVUBQADFgjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADuZ
CUcu3tD03AMAAK8JAABFABgAAAAAAAEAAACkgQMOAwBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRl
L3ZhbHVlcy9zaGFwZS1pbWFnZS10aHJlc2hvbGQtMDAxLXN0ZGVyci50eHRVVAUAA/EHyFV1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACABNmQlH950EDRM8AACN2wAASAAYAAAAAAABAAAApIFeEgMA
Y3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS92YWx1ZXMvc2hhcGUtaW1hZ2UtdGhyZXNob2xkLTAw
Mi1jcmFzaC1sb2cudHh0VVQFAAMSCMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgATZkJR0Rf
WrvcAwAArwkAAEUAGAAAAAAAAQAAAKSB804DAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFs
dWVzL3NoYXBlLWltYWdlLXRocmVzaG9sZC0wMDItc3RkZXJyLnR4dFVUBQADEgjIVXV4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIACmZCUcHH6oGjwAAAPoAAAAzABgAAAAAAAEAAACkgU5TAwBjc3Mz
L3NoYXBlcy9zaGFwZS1vdXRzaWRlLWludmFsaWQtMDAxLWNyYXNoLWxvZy50eHRVVAUAA84HyFV1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAApmQlHEfqCx90DAACvCQAAMAAYAAAAAAABAAAApIFK
VAMAY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS1pbnZhbGlkLTAwMS1zdGRlcnIudHh0VVQFAAPO
B8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAS5kJRwAAAAAAAAAAAAAAABoAGAAAAAAAAAAQ
AO1BkVgDAGNzczMvc2hhcGVzL3NwZWMtZXhhbXBsZXMvVVQFAAMNCMhVdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAS5kJRz9/qDUJBAAA7wkAADkAGAAAAAAAAQAAAKSB5VgDAGNzczMvc2hhcGVz
L3NwZWMtZXhhbXBsZXMvc2hhcGUtb3V0c2lkZS0wMTAtY3Jhc2gtbG9nLnR4dFVUBQADDQjIVXV4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAEuZCUdoaW3R3QMAAK8JAAA2ABgAAAAAAAEAAACkgWFd
AwBjc3MzL3NoYXBlcy9zcGVjLWV4YW1wbGVzL3NoYXBlLW91dHNpZGUtMDEwLXN0ZGVyci50eHRV
VAUAAw0IyFV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABNmQlHAAAAAAAAAAAAAAAABgAYAAAA
AAAAABAA7UGuYQMAY3Nzb20vVVQFAAMRCMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAKZkJ
RwcfqgaPAAAA+gAAACcAGAAAAAAAAQAAAKSB7mEDAGNzc29tL2Nzc2ltcG9ydHJ1bGUtbWVkaWEt
Y3Jhc2gtbG9nLnR4dFVUBQADzgfIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACmZCUddWL3D
3AMAAK8JAAAkABgAAAAAAAEAAACkgd5iAwBjc3NvbS9jc3NpbXBvcnRydWxlLW1lZGlhLXN0ZGVy
ci50eHRVVAUAA84HyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABPmQlH8Rq75wk8AACE2gAA
MQAYAAAAAAABAAAApIEYZwMAY3Nzb20vY3Nzb20tdmlldy1pbWctYXR0cmlidXRlcy0wMDEtY3Jh
c2gtbG9nLnR4dFVUBQADFgjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADqZCUezzh+D2gMA
AK8JAAAuABgAAAAAAAEAAACkgYyjAwBjc3NvbS9jc3NvbS12aWV3LWltZy1hdHRyaWJ1dGVzLTAw
MS1zdGRlcnIudHh0VVQFAAPwB8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAT5kJR5RD05MT
PAAAktoAAD8AGAAAAAAAAQAAAKSBzqcDAGNzc29tL2Nzc3N0eWxlZGVjbGFyYXRpb24tY3NzdGV4
dC1maW5hbC1kZWxpbWl0ZXItY3Jhc2gtbG9nLnR4dFVUBQADFgjIVXV4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIAE2ZCUdmBPZ23AMAAK8JAAA8ABgAAAAAAAEAAACkgVrkAwBjc3NvbS9jc3NzdHls
ZWRlY2xhcmF0aW9uLWNzc3RleHQtZmluYWwtZGVsaW1pdGVyLXN0ZGVyci50eHRVVAUAAxEIyFV1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABNmQlHAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UGs
6AMAZWRpdGluZy9VVAUAAxEIyFV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABNmQlHAAAAAAAA
AAAAAAAAEQAYAAAAAAAAABAA7UHu6AMAZWRpdGluZy9kZWxldGluZy9VVAUAAxEIyFV1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACABNmQlHJS+RnZkDAABYCQAAKAAYAAAAAAABAAAApIE56QMAZWRp
dGluZy9kZWxldGluZy81MjA2MzExLTItY3Jhc2gtbG9nLnR4dFVUBQADEQjIVXV4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIAE2ZCUdKhrnbbQMAABgJAAAlABgAAAAAAAEAAACkgTTtAwBlZGl0aW5n
L2RlbGV0aW5nLzUyMDYzMTEtMi1zdGRlcnIudHh0VVQFAAMRCMhVdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAGZkJRwAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BAPEDAGVkaXRpbmcvZXhlY0Nv
bW1hbmQvVVQFAAOyB8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAGZkJR9fK+S6PAAAA+gAA
AEMAGAAAAAAAAQAAAKSBTvEDAGVkaXRpbmcvZXhlY0NvbW1hbmQvZm9ybWF0LWJsb2NrLWZyb20t
cmFuZ2Utc2VsZWN0aW9uLWNyYXNoLWxvZy50eHRVVAUAA7IHyFV1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAAZmQlH9AgSRbUDAACRCQAAQAAYAAAAAAABAAAApIFa8gMAZWRpdGluZy9leGVjQ29t
bWFuZC9mb3JtYXQtYmxvY2stZnJvbS1yYW5nZS1zZWxlY3Rpb24tc3RkZXJyLnR4dFVUBQADsgfI
VXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAABmZCUcAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADt
QYn2AwBlZGl0aW5nL21hYy9VVAUAA7IHyFV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAqmQlH
AAAAAAAAAAAAAAAAHgAYAAAAAAAAABAA7UHP9gMAZWRpdGluZy9tYWMvYXR0cmlidXRlZC1zdHJp
bmcvVVQFAAPPB8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAGZkJR9fK+S6PAAAA+gAAADoA
GAAAAAAAAQAAAKSBJ/cDAGVkaXRpbmcvbWFjL2F0dHJpYnV0ZWQtc3RyaW5nL2FuY2hvci1lbGVt
ZW50LWNyYXNoLWxvZy50eHRVVAUAA7IHyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAZmQlH
2vNUl8gDAADLCQAANwAYAAAAAAABAAAApIEq+AMAZWRpdGluZy9tYWMvYXR0cmlidXRlZC1zdHJp
bmcvYW5jaG9yLWVsZW1lbnQtc3RkZXJyLnR4dFVUBQADsgfIVXV4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIAE+ZCUfvT51sxjwAAJfdAAAxABgAAAAAAAEAAACkgWP8AwBlZGl0aW5nL21hYy9hdHRy
aWJ1dGVkLXN0cmluZy9iYXNpYy1jcmFzaC1sb2cudHh0VVQFAAMWCMhVdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAKpkJR/zFb97HAwAAywkAAC4AGAAAAAAAAQAAAKSBlDkEAGVkaXRpbmcvbWFj
L2F0dHJpYnV0ZWQtc3RyaW5nL2Jhc2ljLXN0ZGVyci50eHRVVAUAA88HyFV1eAsAAQT1AQAABFAA
AABQSwECHgMKAAAAAABNmQlHAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UHDPQQAZWRpdGluZy9w
YXN0ZWJvYXJkL1VUBQADEQjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACmZCUcHH6oGjwAA
APoAAAAqABgAAAAAAAEAAACkgRA+BABlZGl0aW5nL3Bhc3RlYm9hcmQvNDA3NjI2Ny0zLWNyYXNo
LWxvZy50eHRVVAUAA84HyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAApmQlH6tLV35QDAABW
CQAAJwAYAAAAAAABAAAApIEDPwQAZWRpdGluZy9wYXN0ZWJvYXJkLzQwNzYyNjctMy1zdGRlcnIu
dHh0VVQFAAPOB8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAT5kJR3yGHRjLPQAAYfIAADkA
GAAAAAAAAQAAAKSB+EIEAGVkaXRpbmcvcGFzdGVib2FyZC9ibG9jay13cmFwcGVycy1uZWNlc3Nh
cnktY3Jhc2gtbG9nLnR4dFVUBQADFgjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADmZCUcI
LyifWgMAAIQIAAA2ABgAAAAAAAEAAACkgTaBBABlZGl0aW5nL3Bhc3RlYm9hcmQvYmxvY2std3Jh
cHBlcnMtbmVjZXNzYXJ5LXN0ZGVyci50eHRVVAUAA+4HyFV1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACABPmQlHr5A6RDA/AABU+gAAOgAYAAAAAAABAAAApIEAhQQAZWRpdGluZy9wYXN0ZWJvYXJk
L2NvcHktcGFzdGUtY29udmVydHMtZml4ZWQtY3Jhc2gtbG9nLnR4dFVUBQADFgjIVXV4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIAE2ZCUcFDvzlmgMAAK4JAAA3ABgAAAAAAAEAAACkgaTEBABlZGl0
aW5nL3Bhc3RlYm9hcmQvY29weS1wYXN0ZS1jb252ZXJ0cy1maXhlZC1zdGRlcnIudHh0VVQFAAMR
CMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAKZkJRwAAAAAAAAAAAAAAABEAGAAAAAAAAAAQ
AO1Br8gEAGVkaXRpbmcvc3BlbGxpbmcvVVQFAAPOB8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAKZkJRwcfqgaPAAAA+gAAADkAGAAAAAAAAQAAAKSB+sgEAGVkaXRpbmcvc3BlbGxpbmcvZWRp
dGluZy13b3JkLXdpdGgtbWFya2VyLTItY3Jhc2gtbG9nLnR4dFVUBQADzgfIVXV4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIACmZCUcaa7oC+AIAAPIGAAA2ABgAAAAAAAEAAACkgfzJBABlZGl0aW5n
L3NwZWxsaW5nL2VkaXRpbmctd29yZC13aXRoLW1hcmtlci0yLXN0ZGVyci50eHRVVAUAA84HyFV1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABNmQlH8ufoR8gAAAAuAQAADQAYAAAAAAABAAAApIFk
zQQAZXJyb3JfbG9nLnR4dFVUBQADEgjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAE2ZCUcA
AAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQXPOBABmYXN0L1VUBQADEgjIVXV4CwABBPUBAAAEUAAA
AFBLAQIeAwoAAAAAAE2ZCUcAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQbLOBABmYXN0L2JveC1z
aXppbmcvVVQFAAMSCMhVdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgATZkJR7GBLCuQAAAA+gAA
ADAAGAAAAAAAAQAAAKSB/M4EAGZhc3QvYm94LXNpemluZy9jc3MtdGFibGUtY29sbGFwc2UtY3Jh
c2gtbG9nLnR4dFVUBQADEgjIVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAE2ZCUeCAsnAXgIA
AJoGAAAtABgAAAAAAAEAAACkgfbPBABmYXN0L2JveC1zaXppbmcvY3NzLXRhYmxlLWNvbGxhcHNl
LXN0ZGVyci50eHRVVAUAAxIIyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABPmQlH024Ju3YD
AABaDwAAEQAYAAAAAAABAAAApIG70gQAZnVsbF9yZXN1bHRzLmpzb25VVAUAAxYIyFV1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAADmQlH6op8QmEFAAAFDwAACgAYAAAAAAABAAAApIF81gQAaHR0
cGQuY29uZlVUBQADhgfIVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAASZCUcAAAAAAAAAAAAA
AAArABgAAAAAAAAAAACkgSHcBABweXdlYnNvY2tldC53cy5sb2ctMDlBdWcyMDE1LTE5MDgwNy1l
cnIudHh0VVQFAAOHB8hVdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAABJkJRwAAAAAAAAAAAAAA
ACsAGAAAAAAAAAAAAKSBhtwEAHB5d2Vic29ja2V0LndzLmxvZy0wOUF1ZzIwMTUtMTkwODA3LW91
dC50eHRVVAUAA4cHyFV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABQmQlH5HxFo54mAADbpAAA
DAAYAAAAAAABAAAApIHr3AQAcmVzdWx0cy5odG1sVVQFAAMXCMhVdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAT5kJR3wZECyCSAEAHjsIAAoAGAAAAAAAAQAAAKSBzwMFAHN0YXRzLmpzb25VVAUA
AxYIyFV1eAsAAQT1AQAABFAAAABQSwUGAAAAAGgAaAAsLQAAlUwGAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>258606</attachid>
            <date>2015-08-09 19:36:10 -0700</date>
            <delta_ts>2015-08-09 19:36:10 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews105 for mac-mavericks-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>425877</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAG6ZCUcAAAAAAAAAAAAAAAAOABwAYWNjZXNzX2xvZy50eHRVVAkAA1AIyFVQCMhV
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAALeZCUcAAAAAAAAAAAAAAAAOABwAYWNjZXNzaWJpbGl0
eS9VVAkAA9oIyFUFCchVdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAM2ZCUc+dPtKrD8AAFn3AAA6
ABwAYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1oaWRlcy1hbGwtZWxlbWVudHMtY3Jhc2gtbG9n
LnR4dFVUCQADAgnIVY0IyFV1eAsAAQT1AQAABBQAAADsXFtz27iSfl7+Cj5NyZPQBgiQBFTZnKIo
KvGMb2s5yVRNTal4AW2eSKSGpBz7/PptgJRE3TxmNrU1NbYfbJkEur9u9A0X4arII1GWfX35E+Wz
42A+n4rjLyL8Na3kHy/PKpFVx0NxL6b5fAaf9d+JSdAf2lVQ3a07w8/J53y6mIny5PPl2adz/+Tn
k4ZOUgQz8S0vvp58FkWZ5ll54p78duWNRXGfAoaTZ3I+fphHJ83z8uQ8iC7Hz+2qncbwO01SUfQ7
Sas1kNeS2sh8o/fg9zE+xm+ONC+PhX7zOBfLJr8x27Cp3rsIqvReHIGiCqm2q5W+//Wvf+m/4z+0
a1HOQRlpOG36dhyBT6Uo9NPhGpqFsKYNg0qc3KSzFR4TYctAzEBcx7yPcZ+YxzbjuoEchLTLsb4p
IuhVh4e/6Rgd82NL72EyIvQI0M7zomo1xlhzszx7nOWLUv/0SQFhNuWuS4jhm8g0LG84Mpyh5xnu
cGAPsGNb3PI1TfOKoLwTsX5zV4gghn5I14dpOQ+q6E7/cyEWAH6tjFmQZkalmmqa/xCJeQUIljr3
f/MmA3c4cT3PH4/13vj0w9j/8Pmo1VIOESj+V//6YnJ68dk9O4Xmw+G1bB9UOnpAzU8YBnEoRKJp
n8/1a3ErbVW/EEEBbZbv+pphvNc1qarJ5Mb/7Ubf/mmIYRTYSQQfjPYDAR/032Uz9usfemE8nBTf
HvTx+X97l1/+5j6kudAojQKl0/FcROBPkX6aJXkxUw/7mnftjj+eXnzQb/zxTV8PImnyaZhO0+rx
JCjSwLhLY3BF+UeURjCdGmIqJPXy+K6aTTWtNgkwiMZG+v1nWgbacKBfgvtgHBXpvPLyQtTj8l+r
gcYY29xKmNC/3IwUI/2Nbpt6zy3Bp6Qo5XE0n4On4CMNdyNMktgKhf7L2Ov3fzm96ffnRXoPPunl
s3k6FeNp/s0LSlH2joCnSQnSe59FVOXF8V0f/ONIMzvzS2h4kF9v+aL+X42Tn8CQVZI/5jbRezMx
y4vHvmk75Egj3dhbBCM7qtmfnZ1mVb//77RqmLtZPBbVR7Eo0rJKo7IGI91xMM2jrz+/rfv5DyIa
V4D5Z4XJsvUeAAZ9mAgA0Y6ATG7yYAMQmFfxeDm+7m1xa9ifZmVVLCKpmeWjNsToDvw/ApOolm8b
sr4k+2uaxQq1AwOpXsgRlsmxMSHLPNKsrjqlAXf06TTNqokCDwwItR3N7kqIWxHdImSaDjY154dR
Yp0p2XsocZtpvCslEiSRfj9TA3GTrztIdZm2hlEnehSJmDN97TCxANsBa1lUjRt9Pl+aAGTzKvcg
fo1kYK7t1mbgyudgthTJsIE7urGdxNHSICtRzAsBv1cAJK8D9vvL+DL8N4SQlfFCU5kcW/9CURDU
NvzTqtPnYLpYtnGL2zNw0aaJlIZyCIctIMqYOYX4hM1OgmEU2qKJh9FTQrTx/BARZEBf9qx9UaIn
W3XWGra+B30Chkm43rTr9z/enJ+dizgN/Dpt9ftxGrtxLGsx9xYejO+COP92nedVb9Vp/aw2FBht
vbdNSSG0TYYAI+2EMQ4jLuga4wqayMpFIfZBUzAo2GubORiwVJDVTUGYMSyeUlCayZwqYjCmfK0T
WWBA9hbFBbhZbXHUPqAVh0ql2J1whTGjpIXLu0unseR1mjUp/iJvJgT9TH56XGNTkN7K2gBcXuXm
d+rztUjebTR6/xYGczFtmqpC4jK7vBdFAjkA3tmL6XslmwOq3pDYnd7mRVrdzaDu6WPOQD6no3xU
0ETfr8+lSEro00b/u/Id6Kt6eXdBdivG+aKIRJ3frC0RapdSQ8O6QsfRYejzoJAWO5+LLFZQekq7
V0FZwgBcVcXWGKg6ygSPWreQpZRUKe+ES8ShA5XUinptuL0N0/bydbEwTitxE5Rf1Qhj5sDco4rP
0tB/qMASAAOxbSjnUEcQTkLjNYgm/Es+z0RCYaDWapAFJe6KQCSB/iSzFa7/kSV5LHnXBS02zdqJ
t3soazFlYjTNbnBEbDO6CWeYRwsZHa6UqUBeWTK7KYQYFflMNrrJv4psU2fqUfof2UV9BB3Vgyfn
626Vz9Jo1UyOH0x7TdIVLYI0/iTa+WI2XyHpPdl0/JhFd0WewRT7HGx9lZg3hJGFMrUAKu0KNRB/
ATVQXrjrgPL/cVWk2e3pbD5VLkgdCN+b/QGYIwe8W0aJYjuALitcQxGB6LHM4vvhDR4rmE6t2zeN
vkB8FcVPWwX8IivT20zE+jTPbutsfMhxuyWcGCMOYX4HxlkexLWNzmZpJaXoPQ3IJuZakXVv5TxM
gXJ2l4n0g6AQDZnNFCho1+/DX1Wv1lS9aaoSdI0MMoR83DsgwPZECKp3BRYcZx/VplyUo886qtEk
BP+VGhXSfXiwjH5bygP3MKUnd8sGITPxRgERRHcivg6+XYtSZcVVklUCl3JkvwTgIZFI70V8YJCX
MDmStami2JCryXwJpl8VZAtUR1BHxDgRzpOIg1j50WCRJO3QA5VhIeL6aRMQnRW+df+6GIOETzpl
FNMJzShuJfzxIiwaksthhSq60ZzEd1k0CLeHuKm09tUCbRmgLpPepH616hxJ+ip4nAJPOblYFQ47
eOpkxeUQmF0lDSPSQdLDZvJsEYi1P34R0ilUWI4TW0S/z9NYP72CCRUUgPFUnIuyDG7Fu+ZvqYLI
9ZZMww2Z3rbjzWbTtzX93sEG/f7PRz3FXlKCMRaFyCKxmvitdHL0vm7W4KqTRPHTE7x//oHMlY8g
UPzHtpJA81yuoNGuiudJrD+Bam0yOy8bzjVqqLkyoSouALtPOypP21ypYC+dhk3tALYDslidZCEx
Z5G5kuVCVHLNutn6WMNri9RdAkxgNnWIdI1cxii7G3KbISfSt1BIoPXi8xJmWcX9/mSC+/1Flv65
EJM5BKE9SN/q65Yx1NOLaTWJxVRUYl/r9/r72qTM1mqsDTUdcTpKEdCYHZbiMlvpu+Znt/gxSJKE
dVtFD0kUhnVQvl5kZ3k+h/oW5r95MfsCw9OrJyRgcckiU1iCaR9TIiXjHTlRis0nOEnfVssr4H69
poU3Wq370I1cKpmM8kUW15sZbXZOkiQssbhthVifTLzR9aeLs8vLq8npeOK5Z2enFx8ml59uJjeX
E3cyvvx07flocuVfjy6vzyejTxfezenlxWSipswaxd24MieyzZprLcEwr6fgJVK7BaZGza4UiUja
FOEPkGIEa5R0JGULx9LbhFabQKB1xDW6Efg+nt7k+TTMH3aNVRGMIpsEKNaBjrco5B6pf6+Ktnx+
msnZjkrPtkatrlSd0NGb6HIhHmqyHtSNeabmKQDU7krSCiN9onYEPmVVOl2RPZdeBdMgufRYo/6S
VnejdApTD1keWxrd8GB3Pj/kwYqXzZFtUqFPhlfjFRNV1xKqUdaRlMV4qBu/X4zbO3fZNvZzmL1D
NAOx5N5xP1ViQNCqt9v+qGf1GuWdmLOEcx7tMC8WmSRoWUSzUDeCgjqM6BvkzoNUDimnSLM2PG29
M7qfGrdMFiHwi4d5NJnVVAizNAu8a5qG8PQ4foQPO3u7G1RELFgIdtomwrlmkWdv5bdCnNwcjmHM
9IYShtC8FkNKurGPO5v1OWQ5iyrAADY+gHhLidiCWqOsgkJZ1Wq/FffVBioQKB/LSswmMAvJxHST
ZptU7IhQ2AFEFpmG/1TtC1EtCoUdqV3TNbV5vUm7QW5jPGCCnyCmLxtOvv1Zf5AqJUjtiXahlqAk
5LWYbVKYrAQ2n9xYliptXhqzIIN8WXTXT2RDLP8qpKvBNLmtlSXtPUPWphFgzqkJWWjZfjK7LSZp
dp9/VcGR8KViOhDEUBhtElypxzJX6iEvzR7oSxPY+g6BnQAHEJ+k3ZS3E5hszvfJ+gxCdozZipBa
Rto69vCcwibBVruwWUXK6O4qr8Mbw1vHGZ5D1oLKdKdeggIUb51E+AEF0+a5gL9MgUFgIwtqg4ux
yt83q1GlVJ0M6GRuEeN8bW5hHj/WUyt1MqAbJccM1pRWuYU46mhAR6uNuL5DaGWzdr8dpC/Gn67P
1rOceiL7atR/L6PeJrZNkFIzTBJHf/P71nD26vE80iftFTQ17/tDzfLY1mmY53CKkxDUcDGu7Wmi
qrZ6rkbw91j+IR9iP86H+A/2Ied7El1AZKIrxexbkFYTuUgZTPd5SfQXBUgcEieOkJ4FWV5OhZCu
ZqJVeovevDnG++vYFhWOgoiFhLVWWKq7tGzqmH5fEZ4kedFarKl30fr9eFEoE3nXWlxdt1Lv3uHp
W5Bs+TN9r79vHSpxrK4n5OwoZnGsh7NgCvPHfl+qUE0iR8G03LOgJCeZ71at5SGZNDpfVOLh/U9t
rN8jkZTlrR7CbLdeSKNYLh2vGKgTiJ0P3IF8VpKs5fsogjkMQhRAjrr9/5ev3otsHar8jgN4IBI1
6bZIYARRvVAxXgqntsCY3oNIIiWYhEEp+hAAjrqe1LMjIZyWkbjlYxbJbfV3GyCWS9hbyH4+6h29
b845XuVpVh/w4UQeaG3oyGMmBB91PfcncWH+f8TVBC1/DW+1WMe3IMoDt+yHhWH+48KwPEv4I8Mw
g1JmU/v9/nlQfE2z2++Izw6GSd1kLjV5N4nuZYj5zlmIiEi41gCYPExFamqO6XSO0yyIKWk7NdBL
pTdP7uVpcPnNBxUPD0SJ9dNZHSBq5+4agQnEX7s5Iv3Ba750oPiO8kKusl3dgd/WK+IO3vJm4tid
QyIwFIhtM7yN6k9yLUcxYxA5lq/rDXPnO0IVwTap18UPuxl2tpbgiVzs7xyjiI2TmtW3Krk5zM3S
e/VbsOarGlV9GhrL3eMXUWbxV/9+9e9X//7H+jdGrw7+6uCvDv7PdXD86uCvDv7q4P9cBzdfHfzV
wV8d/J/r4OTVwV8d/NXB/7kO/uIO7WDrxUlsvziJnRcnMXtxEvMXd94WvTiJX96ZavPFSfzizkmb
L67mMl9czYX0qLmg8Vta3ckLLZubGnV1ZZPes6kRptVRX9P1Injo77lBEV6EGy/qCQ6H2UQRbb9I
IsRAw0W8/SLghCPJJE5bbzAKHBybSHYp0x0mKJRMwvnyhRTbsixgQ1SP3RfClEz0gq3fBJYdcIvg
QI58wdtMnJhwO0hgDllgJF8sH+DQspFp2/IF3oWFlCTY3GYvLx6TL0hbRMwSO45jKQnMcg70sHaZ
4EgySecbtJaXHepFMt3qgpGJ5JfhCnPfKAIt7Sy/TaNgqntXn+obQrGp+UWRF+pazebS0FVXW7uR
B6gvFrNwedUqppqmDdIsKB7105n6Drm2vCnzYXVJpm7omw9jeSr42Vei9tS1rIa+updVfzdyGLMY
twyfjSyDDAfEGFjOyPBcZ8Q5Mx1K0Pu/942bbY04iO+qCR4mCdXfgK83VwTciLIa36WzJgD0EGiC
DClFhBBj5HNqEGfkGhy5lmEhPkQcY+4PRvs0cYjqFi6xD5cAW9XfQPfmG9rbmKjHh5Y75MYQm8gg
AzwyBv7QNoacD5zBgFKH4q6js+Ymtbut9H1YWpJgROiOhjGybStJoj1fwt5jcZgO3JHlMMOxLdMg
NjeNwcjihmVSRsDsLJ+zZ8lUP9gAF0fWLrgEgZfs+Yb+mbgNosd9ECkdYGTZnuFg7BuEMW4wzwSn
oD7zKBq5Lh4dhljTPaj8VYs2cowiZwc5dgjeUuvW0tge7ObQ8QkaecZw5AxBvZga3BlhsCDXN7E9
QkPP3od9k/J+9JttNvAHMtVs4TeDGDQf7rsbZA9wW96TOfQBM3WZQZDjGK7pWQb1+Yi53GWWOTyg
9MOIm5dtqODlaAcqpWaivmBRD5D05OtFloniNJOXRsorU+QVFrVXeiY2+QgPIVIyiBRD5oGKmWP4
jjUaDDDF/sg7bB6HaB+H6s8eh3yi06ZgnO8RTERJwneC32IuL6puxxrX9XzPHoDheA43iM+RwTk4
pz+wPDK0R3Q08J8R/9qE2+hsJ9m1cJvJ0LyRwb6JMKo1kKjvh6/HVe9Zxxj6w29pLthldISRgQYm
MQj2HYP5YOyuzbg/pEOfIemjY1XwnZylYQGp9eSqvvZ3tKRZnqyTipsF08cyLTdDzNbLtkiOjeiO
SPCQJUncFilYxGkuv7g2FR+H7kf37Gq6uD3N9J55bB8T6K7+JlR6rz9gbGA6xsjFMAge8gzXRbbh
jAZs4Fm2zam/K5X/ABAbk2+4HH8VD9XalmqO69crEAesbqedVssniyubRE6rGFk9DBImr2eU37IG
0Qg/lgI57pCSAR8Ylue7IJDjG5wR2wChOOIj7rmWDEeLspCGdCI7t1gxatrhNitGibkd0Wvze4CE
Q2zn2JQd6g8AYcDQEDF7aHDiSp0Sy2A2AhweGQ2HyHRGZLCr05aJLInvDzHLt9omQrEHthVLV2zB
/iDvYqfHSNmASvgQ7SBB+sYAMIMTIsvg1MJQjnHfItwduZb5JFaguB8mvNhEaO1D6FBZkWwpVl01
6i6qu1zeZSfN1oR+nDqyfsSM2S7AxJ4Jyh0xZjDmIYO6GGFiEeQO8XPccJfPYW1vtvtf3q5tuY0j
yb7zK+ZREROFrfvlsa4ab8hjrzme3VcABC2uaUpLSl5rvn5ONi5ENQogY4exEQ6SRreqT1bl5WRm
VaOX6pgA7D+0azNzMken4N7ZRcD9FO8XwpIJalAcyRGCLIdjaQaKY3JmSblgEUBTbf7iEjwPPhIh
H13voLuNPYXuxRw6TUD8e/5LIXfoJtUxcKwLvVCkP1yDUWH+awkNQRT+0RcwF/gOI70B2+f+tcsx
PeX8KkyXr3qwQwn8pFKw7vz376/Jm9w9zMJPgP8jn56c1FVrzWyL4F0iQfs9fLowThrhpAwTdzk/
9T983jy8/zDGvL39DqHrPJSZOGEkzma2IFttPH6H/5/eiWldNK1IUcgfvCrMTDK5qJk3YDmtpRJ9
sjb5yxZ9Ov5YvtP7ZtLcnkqzdPBI3btyflr+b8bgj8tdYCAtQ+7L/uQMSQNGCvCwdOeiYCoQSeBG
s8Z5CuDzLvPBCpG6HDLC+RPmoedwvYO/5uIU/pqbE3dFL7D5cfmwuX+iZUBkJVdFdm0TDDs2LARv
MG6XHQsIPkxYmQU4szNJXQ4Dy8fV2KZjHy2eIZyznuc7ZkLakZB2JiQt8j0miIpMYvJeR5/gAwiL
pDWBRkQWq6UkC9EPEdCDLHFbpHC5mcuW9DziWIbn6zMJ3EACIeZOjCpn2+9K2TzuLBCy8EkYxDny
BdJEHir4D5fQNIm/vMXCcZOQJ7rKa6mv8mSDR51ZlsGdvXBiwEXWWk05DrzHT9/9uIh7n2ZCWCgz
caCmsuXGSyYamJ1SFFFyAF/NDWmOdby5lwnI+8fl54936zMqtX9P3eTcjnD0+G8HIf+GL2eLQ060
3D1OJ0O/HVYFyegi8MlNN7ApLqpnzeGHklKyWEABbJTQX+VcyO1FN314wlig7parHvBgFW7UnLiU
u+0Wk8dve88z+QNiWtxTukN0CqvCUjRYFFMrMW3PCkykemWEdOXFRdkP/aJTOEUz/ien9/WyqwG9
uVltTrzg/adHeisykcuwjUX0ewqxxqYAOQOI2ZbdeNXgzyO5Bq+8K5fD0dGLpV4t/QHPOX+4u9zL
uhoErJsdlTsq5d8vv9Dr7fZ2J/VeTcH0iypUS5AJ1BS8DmwCbqT4kEJEQsonh79PPbbj/du5kXts
azvCZqfEDzeT9m4LJSCoP3+527dB3oHJUAksNF6dDYwHD2QcLhrUPjEfnEXeXYMz4QjZ+QE7UBuh
TkFt4J1OGf1+5aavrqC3FLwTXm/NnH4TkSw1Gg3F8KJYJCIlwTxUhgsLWQeXFNjwa4nk/GnnOeX8
zl4+zQfyabd3v+tPn7/d3kHC/VxzeCw5qUJuMpTWLKOXvcHYQVu80ogoskolrBWy+qEq9GP2cNwg
1G2W82BdNquvv1x/+231aWIkE5fCT4CqIpWKzJQZqZAa26ZZkiWyUEx2QjYes3vNFB8/4YxXObqj
l2HpRzKs9zb2cXP3283yni2fHva7LN8p+TytVFJsrTHjrCI2iCzJZcNqTa3V2qTUstfj0wF7PCt9
iueWr2cRaivK/m15cOuaJlXCwy0kkVQfq09gDakJA6anGuWkljmVmtMc2Fp6zcR2jxnPbHfLsSjU
5DoRhT68YI1EGoj/hKluYmFlprImqBrHS2NBNcl8Mlzliskt5l8MT8d39NDlzQB6WM6gX2+Wj+uP
U5UfKzBFmek3RZmQfDFIPqN0SHpsQpqgamDCCW1LgI/T5u2C6wHImTXaX+6FDKuBkBu5T1YbshL6
crunL6Aoe48iyXtH5D5cewgXET1Vzh6rYj2zIXiTi4GE+c1DaPzb9SuY3ynoXubbkU7eLvcy7wLf
zcPT082Bx0q5N3fVYEWRgy1xTTGBaj3GN1ZCri1rFTU3lwLq0bgzWKOluF3tvdCvm2+//fJ4CPDE
3lSMvnhMf0bmyVQqikXkC6xKX0VUMiLZGUI5HqsD4cypOzdeqf3crB+/ff7yaUFf9+if54bceHFN
eWuY4EUzpS3ieIYnLMH6mlQyRZneCZ4OddU/9NQJmmWYV5WfNuuvj1O1YVcFMtqJhdALOZVSkHOI
HASrgeI3hW6458asNdDQIkCO9EUlvd4Nf86mtleveoxhAHzNZ4ztYftS6mfCJqbSlU+iCuqqRKq2
qRQro49YTNlr0I2orL6kXd2wPa71ae3ArPjtYWnhbHZrsjd0K7aZjgpOZemZ0AmzyLllSKsT47xg
1XkANneGN/RDdnhWgg/wiNUsyv1184WKnFMFZmp7TL0nL0S1RBhrRshNTjPPPfJ8Z4qVuilpXxXb
doOPV3d3sQdtlwPQdj0LCt8vH355/PT7Zl8Do1l0spmMmWK6Oqq8aOoB1MiygskJZRENXpXK78c+
U//aXZ2hHoSylZsXVZ8+bzbrjwus2adfHu76cE85lJwYxvQb8gSfUlJVMysVdcqaYIEnxGZdIy8K
oc+Kt6gkXU+ofhqB6mxxfls/A+406Tc3cnUrt0b5afXf66OqhdkqfoR6l+A1k4464BzcFPYnmE2S
KwHdc1PP5MipHY/TAbjxA8XZiEMeN4V6ZPn01QB7iun5wm25XCohKHgAVuG2mCoZrE76BM23oMeu
+mpyD+RkvKv+wXaARomZj9q+oengotRCbHNKsDKTNJZeedAZpST8k3OSIb1QoqomlL8YAo/H7XGp
QWi+9cgm1Gkr8cv2TdyLSP+3fy03DE5sOZggR2FDkg4xmpnosYIN5pc8YncWNlnwdStbvcxSjgY/
UwM8uuNYGGtvTgO6tRvz7HCpAJo7l4tl0UR8fdaNZ4Ry5RFEkXgipxAGOYWVpUjhXRXljMudD9pj
GrRX6MNhr/YrDOlpO70/P2wJbje3lF0IZZgxEWHBIPmJakqTbZDRlZpce3luaeQLE0uXZxKcMhTr
zcGQ0od4/Zz7Br0w1H6oQUXKd02LyIVklCwKm5kprjhYtLOh/UuF4KNbf9+sMcD4tg5fJxadUDsV
a3OwyKO3dh+6ylpw5xCCWQscZpgQAL1VlTkZK8hpLVWMSzvPg/UYNqfW57TxszCxe/fsvmUordmS
rQC3pKhr7zX4i/KICnBakrQXsVoYl0p9KSM4k77k3bWrHtl6AJd6tx3c95uHzfa1gMv7nUek5u2k
yJZPpMviX4VE33suBfBGONqQdECqXOAhEg+YzdeE5sGjzrShT2/sRXNmJNrt6UpcLx9uJr+nDkQj
NOlKlobRTglIU5E0S6QGJTcwDxANYctrpHke/Yx9Hq732D0fYA/z2LJ8OpQDpXALMWm0NaYlpRUz
EixdVerZCl1YqqmZCEmCLpcCy2HQHlEY6XWwM0RPX5Zwd/tm7FTnJ+XIxvvKvUQqoxFxKZ8PLUTm
YvEKYLmc1PospqNhZ6hOHZlz65s5laSG5lF0m1YZMW1haMJyss2COrKiNeIEp16xionlmESg4oP3
+uW+6sX4dnzHVY91MxDg1u2ndf3nPy9Xd/sJ1WGiDlJExF9oo3UKpqYR05JzjTmtKqYVqtn4LE88
GqZ//u1p2c55cSjb/fuP9f1zJNA0XYkaZroK1lyj6VKeGoKKcW1sKcKBIFzuQU2bkr/74RVFiOen
X/X4bgag5dyyv/96/+Xuy6ev648nzTrKFc1CqGkX2P5PKgZ4CV8VJMtWwXaoDhCCQyJZJKxHNmTx
r9r0cOHRnVrMb+vFVAMn4M287rfLOD4sqfV9vflt+UAveMW1u4df2pHACyGmFvb2j2nzofUuy8wQ
CyMcRaL9BA4kKSImNqWjqZe3pwwfeWbLxOjWTtrlgJO4FWlit231Q4k/dlIhlfJkzjuWomMp3ATD
pKFWDTJr6oUQbU0ucKxjNvGyUHjAGRlw5apHN9DDlXQzPVw93SwO7xWn77bY7qCXR5u1ZJEOwdKz
lIiqFo+/uIF/hFvy0Udpm3qhxjIb/1yxZXbbsTze3Zz6eB/sZpY5/MfX5eOXf2w334oFTT6yl8nN
p2J9bBZuHhESjikXFip4YtJRK2lssO3y5D8PPcb/fP2qx3g7AB4O/Zw/nu6/HF7u8E5MESm4oIOy
zCqVSU8yoDpBG52QgYO5iCx6H3o8SPf0pTvtlvmlnzfDc3uxHe5SxuN1ZSJpTplWZDEX5ITK5GqK
NeWF+XtFO/y4eNBecf/spl5yvxpJPm8if9zcfyZVUdMWVU2+J1ZnldWWFe7ge4gLQFLNqLyDbELX
quxbFD7+gkePb6IrvTCD7MGv9Hw3wGGwqeHyn3ft7mDKnIPETwtpwNWglYU5nw1RCsuCRZpffCk1
N5WqUy92LWjs8/0WunrVQzUD/IbvU+Vf/zjKfrSkMLDdVKKydT45g4Cep4M7ifmSCtNeexWpxtsV
Ro4q4H+MUiA8U4+AmL01Pm5++/T75ri/qsgildHQA+FAtKnMUJD1RNk0OGJyKhHTq20IYz7eDIwd
gLHq9nb7gunVP+jYAD9MDBUOYP8+0ubeJEBulIZL9hyZOZiBd1QelXpWKepG6Z/vxOD5O97cN+/+
fnez+bR3qQJ8nqpW2oLVqVCZtLSN19BZomA8wwJ6JZMKScgXNWka+bwqTZd71KsB6rXgl23hQ/wr
lTh3Zq7UQlODRTThWkROaCudceABQcEjT8xGWTBuSGTry7aAsS/YAq5e9VBH+N3NWfzf/TCl4zDk
iRIGjmwK5jyFCm5cKykiobJUmQlcMZ85jAQ5kdCpIUm43IKcBh+jny710AdVVr/2SP2W2yLn+/+i
b6Idbg+LEnaiWmGyFphQymRCXiB+eFG5MFYL8Zbbw2ZYOjluN6eVhcB3eyyO0u/6p3fWmoWhIzz0
m2hEilLxFpiYEjLkYVQajYxbZLkiSHz6hhuqYj2TmterHvpqII+dV0p+Xt39z9fdzt3pQIYnj5Jd
E/BimuWK5VBqSse1YD5JXoKJooVX9Vr2o48R7692uOXmlBsFeXvoTk8O4Pvdt4jvVcpPUaymrGwG
k8uIZXTcoVCXdnuiR6rqqrHtjTZRn4DoZbg9ZVhBLdU+S/39+7unQ4ldSzggcp0cjps7uHFB7gae
MrCAEANSnZPnUCWt/78KlkcAr3oZ9ECwzaFV/P7Dz/Od7bFyUGmk/FNlB2GywcbBNGrUxlluheXm
bRbl8PAOslaneRqY9IFm/O271mYVg5ay8Rwek7JKphzARw2W65LCf5UnJesbVQyen96BNnIA2sj5
meejr7HcVzcpOcvVKkkl4kr7O21uLAhw1Wxc4U0Cf3tV0/F59JcOO8+wbwbY1WFPwx/Lx+fcRnLS
fGOcjNFRy94XsOsqoPkceRgSMa8rR6JTZ8nN8yD9w9XAi5uT3OYTdGp9T5OmFtPOo+0fUyEVJqcB
JSvqMhsJH+JBAWrWwpcsmknyRXXNH85v7c0fesCDlCSYoMdFk6dvD18+brqTesRg3EQCpt9TUUi1
hCll1RMxpU6tl8kzYVpo3pvk+NtvdN22Yq9P8Z32aw839RMRzGgi7GyHztOuOr3XH+epPERi88LB
f2tkNlGKRgX9VC1nyWgPqp5qcu5izfZ45Bm0gTVavrmwoW3xw/Xz3jZLh5SmI798oj0G3qRR2VZH
Sf1UpDKxVM1M0q7Y7Ko04u34wjOSM0p5PdoKF242A8W8oTjszr9P5J1Ru6p+pPKQMRbTT75f0KlD
DgbRrKs5VM6rzBe3IB+P2wMbBdcNdc1udyVgeVIBNq05a5ipmQ61Y+YTbf9OFWkSMvhYhH+zCrAc
QN4Mmmzh1s7PU909/Hps17t6i+S09c5HwxNiLZ03gF/y0oLbUGAyutXYuIfTeosCxHfHGDrm//Dr
VQ9/wNNud6coMQH0RYeHFrfXxJNFkUHQfs7MFTWpPOg+sX9YQ0PKjEUKaagTR2P1GAYts3C79vPt
muvlPb3n9OcnOkT+ZfN4u1x323Ryc9rI4JlTjia3IPSoJJiTrphobKja/0t1wGNHOQJzxl2Obj2e
gCUfHPpcCm1HnqnfOax2maPQVAeg1fFgmJy27zlQHLJYz0LJhmUkjTkkOoMoX73v/eX9wye3dYKJ
YAeCrQ6sbfaFxu+UCoet2brqKIhHZJXwg6ohjgdQOJCqEsAw6jgO9GP2cAb1haVYi32J6Gn5dC8X
z37HbTeswZE7wZn1tIXO+gi3oyrTvmZolhLOzXYSdcP0AAZ9r6Xkep6d0s92nT/99vmRTkPSShs7
zcy0h4NgcWvBx2F2JdE5GHLKvhTqbTZwnBx4eHWrePassy3j2X1XvRADFVZ8viXwxAWTCu/631sv
r1LOTcbKchONNijRxi0QudI4lj57LaL8v3v53cWrHuV6AN2pQa2MDq48HRdelZ7CZDUqBdcqq9zS
AblmWQwZoHXNMkreUmivNbrpGeeNbbrc43d6hH/OPQd0EKSTin5TvUxV1bigw0bUtVfON+aVoZcM
ZA26CWGVeBu6ObhxJs9IlfzNgPw/7U8UHc5QTMeT4PW5ckidBKeXUIhq4QOFY9xXG0JsyCXfZH9j
d6jpfK5wuKUXc8UHYq7UbNn+lvNxjFMycmdKYNrB9hX1joJJGS4p8WKQMsD2X6NpGHYMGBdmMEfa
dXNw4fS1vfe/L8KBOpI9CJFhqiA3TWSqXeJH0tUzWzmcU9EthtmW8n6YDoFxA6cJUZ+rFfNihU7W
JGRJjNrJiB2FElE8viRpS4w8mlDeqlgxAuwHU2ZoG43uesrbgZYP+3Od04ZtuDenNZW8iFzJ7JD1
CU/7AWS2oMwlvirrPwx+UYhl78StHQC3y0Oy8P7D5D/n020ql0nRS4QaYQ6pIlRrC96F/Kj4lFrm
bzXdRwA66M4MlMRZ/PbdnC8fftm/CYem3e1O/bgppvpWhRKI8uKfxF1Lcxw3kr7zV+xxIyaKgffj
iGeYMeOxbK21c5vop8SwRGpIUTMxv34yUd3VBRS62eFleA+WKHYZyKwGkJnIL7+kpuA32WCRVQ6c
D4t5fM2iePOQey7SORTD6YlaadVVur0mORZafLrH72wstSAEnUUs+CFwpAwkJXAitCpsGxidRG4V
BLivhVTXAsEPEvxwd7ka44e7Sr+1XMaIq7WFv3Zdipe7n8CiETPWC8vivWkGzgN4FgPPmQ1cImwI
dQ06gFnWQRFHXg3SD4O/QujSuBXrVed8X6/1MaPiPuQCkz2VJZbMG+xv2DtgeGPCax9LCMLy9QCR
btJMKqy7vbwGP1zmb2lC3VqMWoN1Z3mtd21cdreZexQMUypM3lI0xEJLSrGCLvuIV8fwh0EUHjHg
GQmqVLruDnM+xRnHbnPGm9jQzpm238uyhkDjv7h3Lvx5ATvWSTusARyowmSspWLwDgIqpbhX1igJ
//1Bt/hzCeeqrRlbOkprxtv7iD/vnta7p8fnOdA0Q1zocvIDtRDPcO+QYcdJcJNySFImiOEve9nH
QftSHz+txeX7jrjCTqDD5/22V0HBXfAGvTlnKOblhBy8EgbRcZjfstGIBjMzG6mWQKw6EqgWwRc+
vTxg95iD2tOlvByJ27wRMgbthkiREYwmsBJKB/hnBvdGMUN6IJKOs19Pc+Z0qR+q1dmLjjr7CRz7
j5fVEwLfHqa3qgvcx4GP4YPH+xtwIR3DezQHJ2SSWHMRWeD90sN2vEaY5e3qmtPJdwi/5Pcv999O
X3BJ0WSHnINuCFLgYWewSN+C326oEiFabWxsimOqYSoJOFt3JOC2Oa4wbvj4+eC9YNL94MVwcApJ
gtcSKVZkCurBZ+V68BHeS2Laa+F/txczflaLy1c9cdfNzewa2/dM2GbFS2LLSIVOLYTJDk0EMgda
2MtJgudrYFcYdulSdj5kI9IyEgb3Xx897e/x/btFvhNr0jkDny9GvHAyCctHpRiSSDwokbV2+o/K
d07yzdXasCXbH/5ye1Tr5WFT1eYqBi8R4c3UFO4hiOuNIwgJUt5SsMHizAaZBqqnX+070+9IDy0+
FqOjCdUE81gMwnIuiB1kwEq9bDniBRETRJJNyRjDr6s8PAx+ASfeIEI2cJB0xN639ZLup/d/ffx2
v5+RGYxOtT5UaIDfTL1RelDgb8HbxOPb8wQvN0jqVPYhXHVcNhOduVuoH6oUEp06vo3YtQyvoyDh
8WF///HlaVLqgNqmE2abW8ccwvfxAOXcIUdDkgPLEAo5CEdyupxd7sxzjqJh8WCll+5UbWz0KTW+
fv5yQpoVzBsLLhDi2EA5MhgTCACMKaew0lFEZalu6FtmY9Rz2+WN6mal15dyamPMcADyEq3BVSzX
f+WnYu9ZsgxvNhOYVh5hwVhFLQRl4O4YAmuGhrfLq52kOWOAp89vah03PcVbqNf/PL08f0vfV59f
yvfmPs4x2LIsI+EM4g2Fw6JMDXo68JmxtoF4CDh5YldBdHoTnbng6TxZq7aSHdVWesGesUFq+P99
gn/unubOJQQqwVkEgHksdBUuDOgyDURFGUzGcOwqSs16hrOR4+yZSo9Nh2tqg9u9Zl794W4q0SlU
zpjhtWgGmMoZ85sDDeB8ckrz4ELGcCzzKJnmLr4NWPjuYhHP9HGl3K7jbsEvV03dwt1P718OeTI7
6mbHNHskEPJ7At+MwztfiGYGSwLExVZ7JoxK5hXM9zTyOYTh4eNG6nVP6pYe5+vT/Xz13r7Dfx/v
LpjCuD4lQsB5pHD8YiI1BYZVJHSQikmwLEJZK97iy3lXizJ/qnzUqLeszNjsxaqhqOyqN56HB66z
4oaYaJgE+48HdB6RyTbIMEjNgrdaJPMK3+PvuY2aZLmg8+Iw3ItdR+8TBvyXFfgXD5tdk9AXigrD
gh2Ci1gQz9XgCeODtBocRxeFJ+SNEvq1BHPht0Iu3bOtOCAsi1P3z/uHCRnB5ejUmBgClwbMfcDs
G0uD51YOBIJEL3TwUugzLuJptFoMJXtiTMHc+BZu/fQOqcXSyxLQIYO4zAFCeGSfVxoiF6fCAEEp
s9ZDiBUbc14P1sixPFi2hfbJ1GUlfx3pSiAmwYpGPDXxb9yaWUSw0RoLG8F+I4mnlQiOwcsg6ojT
4hXs+HHsc6Uhh48ruVWnKgp+uTu+v8ft7Hah0GqjCySSd4MQHu8VJIc4OML5Tq0nPOcoVEP+NRuj
mbuzhNSuZYb/ywoChE8zsizNxiqy8QeM7ALsbWJsYRcHp1IL5DxwQyKCukyFzUy8netTy3Pu7nn+
TK31bulPbzU7sdK8PH2+FdPVg7m1oixXcDUhRIV4lUjYNqAkFr6aOMDBjhDfaFxs+YZmI1Ui6E6t
IvxSz3gavt5DbPn3E1UzL+V6IVqq4EClnmJMAg6wF2BHErxfR6MLtLpSqjga6gFrcQTriKOmstav
m9XXE4JeYPRsaYSlJsGOYZjJA/Klm4DOrmGJpACehqlfxnyQevYOVcxWa9KuwseP9w+/3o32ZnTa
eMl+0BR8LBGNwmMEO8lAdOnB6BjGWcwu6qtSi4cJzkaby0fP25vZA7WunfqWrd62bMrb1bfVdvet
1JA9b4rGIxcRl+M1b7DZwTePRKIYazDk3FPgFSWRqRE0OJmvclUjTBSPE51XZ/FYrdRWdZRaYPWq
vmR1TZVNMRkNuwoiU1hNTmO2AxmpSvbKCkesuXQzNB+6Fm3fsU6GTyt78/L1+QSc4XrkGeIqOQFe
+CC4h+DGSeTwImKgRBkJZ63TUbQ7/TTOTT1XZ3EbPcEFn58/d6jNJA0GYWkDLN2IMGDYXQ4LzYQ3
MVIaZWoEaMapZdCd7W3W63MdBzo1/1hURrhDKWC5UTSNNoDdSeCFO/jqlPDXZaNeyUXVcq83Hbk3
YklJ8Xn3/pd3xz1SYP8+6EyMGWjGBI5WZvA2w8EgdOZSwnHd80HPoIxg7AvYIvi0lnrTW3KbTXFE
4Kv5XCzTCZo4sfw5QRwJ4ARxRks6WkCQkxBBHDHRAce7cd1NMB+xEsV2Ei1bu7Dv69Xmt5evFfbz
Vo6wlNtxf1IrYXZ4iUIjmY1OCjm0yWB9yHDiC2XsVaS0vplp/jLHz2r5e5Z6hQuX1ozTz7+Nrdvy
Ar7K9SFuDMG5mMBfkrggrELuSLyalMaFIJWL4Sq+ldNc53ikj5/f1EJ3lvJatJzK032uBSf5QAai
ckSCRziMPO49D966h5AX0eXJRhL1GPGePRs7V7vbdQddvZNkpe0COnasb8NFgQjykoY/1dAFE3xQ
SgwEK695QPYHDnbJelizmlNYgeH/WEM3f+KmErhjTHdyq5qL0R9G6tu630vmAol29GBzgUxA+Ga8
BN/fK2Y50TGbqziAD4OfK5ouH1ZC257QVk/GMt6vPj48PiPtw+75GRdSXWwG//foCHpkrx8CcRBj
CwYON960C1toA0j0bcnK5XFrEc0yLICduGDSOIAf9lVPlxGmQdlIcUByDCZDhAKhM+w98JcH7Cc2
SM954MQ79wqb7hFh8Ro2YPlcpdJ2uzwJd9u9PZrhf32dth645rj12FhFAMsaVkUWyIEHkRW421QO
CmL+QKIMivWZMafhaiH2y+NstyO0ea8QJeb3x1c50vqaxFQg1g4BtjysVmoHSx0blEjOYnMWyi/n
qsqYZzknc9WhCERiHTnpVD/471MBVelNIsDjD8jzHBxiDgJ2WsGL78hEijJGYVmzGP/dq56CKURv
XjM5a6vNpykUViNJYaBJSY/8Y+ALR4dstMjJwjiVFk980of0z4ZqRFgyqe6Joh1MLfrEJRFQkKgj
lWrSRnPhIPDlWH7Og4eImCJfJfEenCiWrHr1NMSBz5+E+OlNJV3Hu9sT08Joi1EKq6/fXk73dYfO
BIl4BfYdyYkocrSDn+k9RJbWEB6Fiz6/yZXkXIILKOfDE7WORnZ0XE0Et+8ePjZ3dFRSD1sjDCpp
JLVVdjAETskM7nNiwdgY+Rvd0U2T1yKvlhZ/T7ftlfF29/zbt8evz7NWGaZUQpe/8TafSZ8CI0M2
mKbOjA1wxpPBWOKok+AKSHIdWX2Z6Hgjgg+c46xfPHhT67CMaPbcTnwV95sXjFhnFfcUNocsngyx
GoKngQr8TnDLWg5eg2bGKRGwQ2ZzcdWMdVNPqTpybFjzgk/X1eMrctsv9w/I0z1lSMlUmwCuFuEp
I34VSyaQysrbCE6BMslYJxTL8jr++uVMl3Kk9ZO1lhve03J62y+zHhcFmhJdEA6Lbh2FgJEbLXC9
2MFZajlVkZPUXMy8dLtawCSd9yvIdBqvXma0zWakIgA7GSB4NngZobB/Kxbgebyb0EImDUezayY/
jVJNLjpN8vbCtlxRP0e8CpLFrSu5r0AzIxCNDjFlBMPAe/BITuewDJNEsJdKvXnu4eczzdp+rrq0
7SVd3lDv1QKYgIf8sk2ekQdoombWRwWnNc3Y+iFp5BUVZmAqM4qchcy/Hoq/5k3Vz1RaIMfWQgv4
5dlWWbcj+AW/KFTk8C9emp1kE0kIGrxwiMLglJYG/HEILklgUjBqmPZ/CFpx/KzWswMjQaLBhrZ2
bCk20oXP4ws4QZzgKoOviKUcjniM49nAktcyZ65gX1xXWXMc/1JLs5Y0vJRrLaQ3bKL4OsSG9w/7
aQ8LpEsck0RRUEelAgfOQKxshMWGwBxiDXAGEsSI8fJt3GnUWiZmOjJx2sj0gDiYWecHestGui8I
KYUXOQ1Zujhy1TkJu1woBy8UgkHOLrYVmg9cC9a5v9yvV6v9pjpsvheX4Mj6PyLvwcWl4B8hHZew
I6bSgE0bknOBU7DRwZI3W8BjDUF/AZfPbmoF1h2t1mTRruv5N/e0vp8MIjvQHhbeMUGVlBC+aU2Q
ZAriZc+wIIlmOGkhkPPmctzRjH7+zmT2UK1Fp/RxvyGtlR/Zo0t3TPxppI6nB+r4An5NlCcjwI3y
Qo5cPz5kOYDLCwG/luKati4j4Px8Y078+KYWtLPkN/x0M34o+qcdQgFBEsmO4SV0huDTC4iqstdD
IpqAJUnWedvWb1aj1ZJw3pOEL4zP5nGFNseUQkEMabAtFjpBThS8GKHYGFAO0ULQFym11LzGRwVD
nntp8FEtpug4lxsLL0zV2Jeqt9zIk1eay4lkE9LUW4n8GUoiSSdEpkk5GiSEpiGnN7f/J2nOIWF6
ecj9prdBt6qt34TdscEeA0/bUi84VongsroVIy9pdBjnCnADMOYMSmPnjjCkHGwyUYik02t79DTB
2R16eqRSYtthc8RftuuqhIgIET1VO4KAYGYCGYLH1jZWQsiJ9LgBVn3SNCKp+++OO8fPalG3naNk
u215NN5/Wo3dlikf+y3TQ4VLtoZzK9zAkECIM9iQHiFv2Umao1cuRndVdDBOcCYgGD9sBN93BN/p
QjRaeMXCj++7DGdKu0gZZokNxveYpTXehAFCAZslUSK79LYMZzNJKh12q8XGtnCKr/e76uUXbr2z
1NOIjvJeykFDXIPgLwgg0RwZBX+BK0CCu7xi5sP31Zk/cTOXlS/5IpGfTTQKlCwWNtZ9evz8fvew
RYThouw6ByZSQOhAwn5OWavBoTevhc2cGKm9VVejo6vJLuCkq+duai26qm0LJg+rF/PfcFnutm0B
pZI+CK5hyyL8CSLLgMuLIGLaY0sWT/gbtY1uRGjE33XEN6fqz7uWYUsnSWMO+MJJqbPFBpWODjQF
SYkTjkj5RpdD0+S1yIYvRTZy1Sym4lT8GtAeM3lb/ofDT4UEWcdgFRJQG44QAAKGmechaEuiJI7x
eH3H8V/DBbfm13BTy7leCm/Fat7A7d3q6Xn3dMJ8jS6N4dIhNnBQDtmmnUOQhs+lO50gMQVh1P9j
A7e50De1cl2Nt8cD+JhpqzDx02kMe6Vgd6w1AawEtpkUWP0CP2WpBxmpQ9eEcnmRkqgzeiNkZxtY
u+7QKew+uFmmVGL3Rj02urotjfY8g7g8S/AhUkT4gVEQ1cAfHPxmjU5Fkurq7PkHdyF5/sHVOtjN
UoeVmTIP//oy5zlhJUSh0SEkAiRMSMebwOMzhA1EYxUMg9evc0Pe9qXLcoITic7s24kDbPOnP81o
sYt3LLIycJLIgRGNFskZ5OpDZGiQOaZ0aEBS9xboOOiWrE3n61tbu/AGD8zSR268Zcp7xpANpp8E
xgmSkiD1FAQ8zgpYcw68xpQSia/cryymO+Me1k/Vim063+lGthfhP+6+rbaHlMqhEscgQ7Qp1JTY
0zK5gVKEF1qWB6vhO4b3mzwhxrCk3g5eeJTknC0dP72p1el4N1vRpo3wLvulEGCXdth8PBWpwWwz
8gQ5JQ4t47Vh2GKHg1fjwD7pq0lY7i4wsNzd1OKxnszTMf5jISM6rfdC9cwoK80+BNERyYkdiAqL
yiSNxSBKS94s92qUav4d6ey2nWihcO92T9gLGkHQcwIEUdJueFhFOJO4sGkworDAF8QMnAJw1JoE
7hTV6SpsSmeiM1jy5YO1YsJ0FDNtSLR+/AKKHNq32rE4q+A4pWKDikizr1Erbz2EGIkkcEtSvg7K
6GGWPsjm8Ust67LXtyV7tmsQNj27C3b1v/6bq4JKVLxcHEqhkrHRYoFnqTzBnnHeDAwWtZIkMpbJ
H2ff4YNK1/2S2xx+aeR+y6oOdCcggNC3VJXe7VhQk7Apny40SWFw2mBeSCBZPQd/62KHzC+d5b9f
XjpaSjbwtz2k0R4fvp9snSiXWF4ITykc4gE72RgQBtZEHFwKinHmhFS8TaDNRrmpp1quUqQBb46s
X3ZfHr/tPtzv/jmjShiTxwUpWXA0YGB4xFIIgd84tu2ERewsRGrJXxcTL6c557O1z93U8i/PNIh/
21z46vscszKqo7AB43hXmA1jmkYzaCOxfz3DsCYiwz8FUyMlk69Eza9TWcyfuKmFlT0N2iK2lO8K
xHgKLkvdDehgLJx8utyPQ0hmveWD0CwlxyMDu3nNd3Ecuy/58dNGatOTenO0JV9XX2Zu29iomoeE
/kgsdVwEoi9PsxrAEBJJrKQ8NOx0szGauZe2lypFGhTY9/vCEZdXm90EIT+CyEdEmGA+I10f8Qi/
lNjDDHsuWwrbPzr4I1yV/D3OcObgOnx6U0tLlypYvCYWbTh4yEHYQ79v5FZSKcSBZAqRLGJfbMoZ
u0sxoVWOMcu3oo6cpj/vYrRZCNRiGenSFZ1q2J//8fn+245PXoYs/h5hyvpsEX+N9Apg0m0w4GQL
aaS3lvHQpJGrYSoB1tvO8lgfbv0KePbh4/32FKmiS2HRkCmki9V4tDkPLgV4YQMYYZZL0662MGk+
Sj39rrOf1/tOg0O8n1ndP9QlqT5ycNMQ2McxAWNzwvP1P6VdS2/iMBC++1fMpVKQVlGekCBxyIYU
0ZCygrTdPUUpSSkqkIoYtf33+9mhtHRraLU+ILA/5mF7nJnIHsNBPBeX1Lsd1/GiL0Zie/rKcGyP
ONTgzv9Xg5nZVu6zkIGdyBhvynkqHxWGLk8/Go4ddsLzPjw0sc/53Mc3AzqFgfPT74SO2Jf75cBS
sjgSW8p2xqJnXm7gp1FSFW/H/afb1Qq0u1A1zJfLmlZ5UdLtC1X8HkPwuKnwbKnxtOP5Zl7KVH38
Hq7nrqEru4jn9UMGXzB7XBRdsps6mTg4m+GTl10y3lfWJZd38+3qDxmfIm/8H3n8eKcVekDyE6lt
MeKf8YOrb/rf48muE5qU84P+nQA1Xi9fSFzYJlqqO9q/2utSWvF82YODqHsJbcp6UZRr3kNwrVuJ
5ppnLaqfxBHpIqu2PINs27W8yRccix7CQb2TaI5/1mI3mwUX2WpBRAiwJ23q9oCe0MjLdU/c+pho
guqelWXqRqJZh4x6RqwZqDpgBkKa74EVsUk0GI4vKf3zKyJFuR5O0qtgxHpvRQXdNbNwQAu5vB8t
VtuJBbSW70Obf9SfQ03HAFS8wlsDJntfUeDYeDHr71LQwqxFupzmoP1H2o6HDmMXU7oYpjRvbhWF
HLOq+Ci4aR2BahgBuHBl0RJQz28D+vrH1ybCfMqLQuRtJUgmToO/G5EWi+WxHwpEDY0Rjym0g2pJ
MBqNwxM9i+nUTl6hWi52ZbWUaNsCVbijmxdK8zlZjqWEmh+grqmGtmM2TYMwpsFVMOmrhXXbmMps
yvPZA50oMCY7gW1mUrEgjegIe91J2E15KxK6JLKr1UrBZFmW9YM0OCWA3UCHSTCITmBdC6OVZaPh
ZRz1MW3URRyREFTT6Hd6nKZpew306nIYjvvHRXAd2NdKLgUkbslSIz0bqw/b2eGqGV91AdVvrAXp
OA1GpwZWJIAcNNAfhMm6rQ9MpzGZRlTHFUNAjP0FUEsDBBQAAgAIAI+ZCUcnNlI72wMAAJ8KAAA3
ABwAYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1oaWRlcy1hbGwtZWxlbWVudHMtc3RkZXJyLnR4
dFVUCQADjQjIVY0IyFV1eAsAAQT1AQAABBQAAACtlU1v2zgQhu/5FToVTpGD9RFZMooCiZKgTpMm
G3mb44IiRzYbmRQoyqn763dIfdlO7HaBvdiSOPPMyxnO0HUcZ/zTdV0/Z3mQObdpMp3ezubTaan4
mmhI5KrkBYy6headaC7FdZ5LpU9PvI5x7rvjkDaMu7uZ0NPpD65bwoVgKegvUCteaU6rhphIBpeF
pC8fzxq/659AU42BP56e+D3Yi72Y7IBBaLV5SJ9Ge14tZiYqrWpqZHaftkPRJVEOlWjUrbbYa4P9
ygU7PQmGbQUknjhFwYX+x8Y9OR/W4nMa7KyFR9YmW2vh3lo0rPkkp856ZcXM5S1Zk5QqXuqTuLMJ
xsDiyBmqwgBzglmodVur7/fd1h6V1DIhRXGjyMrk1R33RQ9zRruMaVClAvztScbpQIJv04fsB9A+
f8Z0vilh6/WKaNIk+UPv9J0UdWdzoRZ3eBZaE5TltrLccRYCNEb0mIRt2v8hwGsF5F4c+rHzDFki
FSb2y/z+7h4YJ9cFrMCcE8bZBWN/V6AuFvghXRImX5+k1KPeafhmUu63aJbRGIIB3RNBVLWC94jo
HXTC3Chy4ZgwLpCggWE55aAlkUITLkB9w4NidnreAjMWBf4WMFnyghmjmeVg+3yTmufcHAphnjYD
1LLOnOf5DZ42PApSfbLPT5B/2jH6fOa4bl20poki1fJBPKxB5YV8xbWwLj4bUWEvKoAgd95X3+mw
Smftbt+KOuBrvZIlEQtIZa0oYNjJENalh8OWRJnilCUIZjEju51HUlW440et9jaN5KglA8smOFz7
9aZIo50yJnIYWSnXMCfVi0lK3DMmecAGRtuixuyPQN54AEFOnKM+Pf6vGmpgBlHhOfS6DgVgYRTs
Mq4krc0ZfLR5ws7tmHMFcKPkyhjN5QuIXb32E/9lXOwjZtLI9YZQY5xRR0OV9arsMaOjpulG0KWS
QtbVPVYJA/lDIAK/CURs9d8W3rynWnGxmK3KAkvvdR1LWUi884F6BRTDMjOa3odfbjRUwx46o2eF
ZVEf9q6uWlR8IYA5hRQLjNq1NXPH8SRy3lDuJGFNbVYrro2I0VFe25HjIIvCyPK+chwy+G/vkgaX
FNyOngaK3Wg+jw7E3r988f7DOJNet+f77u90W/47lK7dsshzd4YaoUtgT+T1CSrb9P0Mscork4dn
gsWkwNfADqSkiRH3MdwcJkdjEGbLfFnn+fapxMmugDVf8aD7bV96k8yjbGv8pHWmWla3fbx1WpEG
/KBa9H4q2kH73mTaDo5j2ZTZ/mxNTIN+JJsCY5r7FBW6g8KM+v9B4eFM/mHofwFQSwMECgAAAAAA
ppkJRwAAAAAAAAAAAAAAABIAHABhY2Nlc3NpYmlsaXR5L21hYy9VVAkAA7gIyFUFCchVdXgLAAEE
9QEAAAQUAAAAUEsDBBQAAgAIAKaZCUfCJWtlEQQAAPcKAAA+ABwAYWNjZXNzaWJpbGl0eS9tYWMv
bWVkaWEtZW1pdHMtb2JqZWN0LXJlcGxhY2VtZW50LWNyYXNoLWxvZy50eHRVVAkAA7gIyFW4CMhV
dXgLAAEE9QEAAAQUAAAArZZbc9o6EMff+RR+6pBOJoMvGOzpdCYhyZQ0txPT5vGMkNagxkgeWSal
n/6s5BuQQNuZ82JsafXbv3a1K+6lQxUplk4mF04qS8HwqRwqV2ckzzM4e4b5V67Nz0QKDUKfXcIa
Mpmv8D32Pd876/UKzWSpY/sCSsU913GcwU93QIkPaTB3bpJJHN9MZ3GcK74mGiZylfMM+s1E9U00
l+IqRQX6pOc1jPnIG4S0YtzeTtFt/IPrmnAuWAL6C5SKF5rToiJOJIOLTNKXj6fVuqufQBONjj+e
9PwWHBIvIjtg3JTaPCRP/b1VNWYqCq1KamQ2Q9uu6JKY2KFRM1tjrwz2KxfspBd02xqSaORkGRf6
X+u3N+zmyJAGO3PhkbnR1ly4Nzfu5gKSUme9smJm8oasSUIVz3UvatMVpCwaO11WGGBMMAqlrnP1
/a7Z2qOSWk5Ill0rsjJxdQdt0kcpo03ENKhcAT5bkll0IMA3ycP8B9A2fsZ0tslh6/OSaFIF+UO7
6DvJysbmXC1u8SzUJijLrWWNAhoCVEb0mIRt2v8hwKsEsGFIQj9ybC0pDOyX2d3tHTBOrjKw5RQz
zs4Z+1aAOl/gQLIkTL4+San77aJuzITcr9E+5g2CDt0SQRSlgveIuDpohA2jsQvHhHGBBA0M0yk7
LaYlEC5A3eNBMTsd1kDPjQJ/CzhZ8owZo6nlYPncS81Tbg6FMG+bDmpZp87z7BpPGx4FqT7Z9ydI
P+0YfT51XLfMatOJaWMP4mENKs3kK86FZfbZiApbUUMIUud99Y0Oq3Ra7/atqANr7arJkogFJLJU
FNDtqHPr0sNuc6JMcvIcBLOYvt3OIykK3PGjVnubRvK4SZuLZ3rekask9XfSOJFdy0q4hhkpXkxQ
opYxTgPWMeoSNWZ/BPIGHQhS4hxd0+L/KaEEZhAFnkPPbRgehONgl3EpaWnO4KONE1Zuw5wpgGsl
V8ZoJl9A7Oq1Q/yXWWJfMZJGrte5GmCPOuoqL1d5i+kfNU02gi6VFLIs7jBL6MjvHBH4jSNis/82
8eY70YqLxXSVZ5h6r6lY3x0Rb9hRL4GiW2Za0/vwi42GottDY/SsMC3qw97VVYqCLwQw/FcgFui1
KWt/6EajsfOGcisJq3KzWnFtRPSP8uqKnJM0CseWh/8x4hh/7V1S4SYZt62ngmI1muH+Ad/7ly/e
f+hn1Or2fd/9nW7Lf4fSlJtLfXenqRG6BPZEXp+gsEXf9hCrvDBxeCaYTAp8DexASCofUevDS2F0
1AdhNs0XZZpun0rs7ApYNYoH3W/qkqU+ZVvtJynnqmY128dbpxZpwA+qRu+Hom6073WmbefYlk2a
7WOrYxr0I9lk6NPcp6jQ7RTOqf8XCg9H8g9d9/4DUEsDBBQAAgAIAKaZCUc/jn+t2AMAAJ8KAAA7
ABwAYWNjZXNzaWJpbGl0eS9tYWMvbWVkaWEtZW1pdHMtb2JqZWN0LXJlcGxhY2VtZW50LXN0ZGVy
ci50eHRVVAkAA7gIyFW4CMhVdXgLAAEE9QEAAAQUAAAArZVNb9s4EIbv+RU6FU6Rg/VhyTKKAomS
oE6TOht5m+OCJkc2G5kUKMqp++t3SH3ZTux2gb3YkjjzzMuZ4dB1HGf40x1S4kMWLJy7NJlM7qbz
yaRQfEM0JHJd8BwG7UL9TjSX4ibLpNLnZ17LWETeMKQ14/5+KvRk8oPrhnApWAr6C1SKl5rTsiYm
ksFVLunLx4va7+Yn0FRj4I/nZ34HDokXkz0wCK22s/RpcODVYKai1KqiRmb7aTcUXRHlUIlG7WqD
vTHYr1yw87Og39aIxJGT51zof2zcs1G/RkY02FsLT6xFO2vhwdq4XwtIRp3N2oqZyzuyISlVvNBn
cVeuIGPx2OmrwgBzglmodFOr7w/t1h6V1DIheX6ryNrk1R12RY8yRtuMaVCFAvztSMbpSILv0tni
B9Auf8Z0vi1g5/WaaFIn+UPn9J3kVWtzqZb32AuNCcpyG1lRQEOA2oiekrBL+z8EeLUANgpJ6MfO
MywSqTCxX+YP9w/AOLnJYQ2mTxhnl4z9XYK6XOKHdEWYfH2SUg86p/6bSbnfoH2sGwQ9uiOCKCsF
7xHRO2iFjeKxC6eEcYEEDQzLKXstiRSacAHqGzaK2emoAXpuHPg7wGTFc2aMppaDx+eb1DzjpimE
edr2UMu6cJ7nt9ht2ApSfbLPT5B92jP6fOG4bpU3poki5WomZhtQWS5fcS2s8s9GVNiJGkGQOe+r
b3VYpdNmt29FHfG1XsmKiCWkslIUMGzUh3Xp8bAFUaY4RQGCWczAbueRlCXu+FGrg00jedyWzcWe
XvTkukiDvTImsh9ZKdcwJ+WLSUrcMcZZwHpGc0SN2R+BvGEPgow4J306/F8VVMAMosQ+9NyW4UE4
DvYZ15JWpgcfbZ7w5LbMuQK4VXJtjObyBcS+XvuJ/zIu9hEzaeR6faghzqiToYpqXXSYwUnTdCvo
Skkhq/IBq4SB/D4Qgd8EIrb6bwtv3lOtuFhO10WOpffaE+u7EfFGPfUaKIZlZjS9D7/aaij7PbRG
zwrLoj4cXF2VKPlSAHNyKZYYtT3W/siNo7HzhnIvCatrs15zbUQMTvKaE7kgWRyOLe8rxyGD//Yu
qXFJzu3oqaF4Gs3nwZHYh5cv3n8YJ+p0+77v/k635b9DaY+bS313b6gRugL2RF6foLSHvpshVnlp
8vBMsJgU+AbYkZTUMeIuhpdBdDIGYbbMV1WW7XYlTnYFrP6Kje6355JlPmU74yetFqphtdvHW6cR
acAz1aAPU9EM2vcm025wHMumzPZnZ2Ia9CPZ5hjT3Keo0O0VLqj/HxQez+Qfhv4XUEsDBBQAAgAI
AM2ZCUfBloebyEAAALgEAQAqABwAYWNjZXNzaWJpbGl0eS9tZWRpYS1jb250cm9scy1jcmFzaC1s
b2cudHh0VVQJAAMCCchVtgjIVXV4CwABBPUBAAAEFAAAAOxdW3ObyLZ+PvwKnnbJk2DTN6CpnExJ
CCXO+FaWkkzV1JSKS2OzI4EGkGP/+7O6QRK6zQk5qbOnYutBlqF7rW+tXrduWq2bIo9EWbr66hXl
89NgsZiJ088i/C2t5B8vzyqRVadD8SBm+WIOn/U/CMH4T+0mqO43neF19imfLeeiPPt0ffHx0j/7
5ayhkxTBXHzNiy9nn0RRpnlWnvXPfr/xxqJ4SAHD2TdyPn1cRGfN9fLsMoiux9/aVTuP4T1NUlG4
naTVGsgbSS0Tv9J78H6KTtGrE83LY6FPnhZi1eR3xzIsqveugip9ECegqEKq7Wat719//VX/A/2p
3YpyAcpIw1nTt7yH6xx0+7EUhX4+3DBlJtK0YVCJs0k6X3PCJmKG6Rgm1xF3EXYJO6WmrRumbZra
9VjfBg8a0+Hi7zoyT/kp03uIjAg9ARyLvKhajRHS+lmePc3zZal//KiAOBbl/T4hho9NbDBvODLs
oecZ/eHAGiDbYpz5mqZ5RVDei1if3BciiKGfqevDtFwEVXSv/7UUSwC/Uf08SDOjUk01zX+MxKIC
BCtt+r9700F/OO17nj8e673x+bux/+7TSaulVD6o9Df/9mp6fvWpf3EOzYfDW9k+qHTz0WxeYRjE
oRCJpn261G/FnbRC/UoEBbRZ3XM1w3ira1JV0+nE/32i774aYshksYXgg9G+QOCD/ods5vz2p14Y
j2fF10d9fPnf3vXnf7h3aH1olEaB0ul4ISLwlEg/z5K8mKuLrubd9sfvz6/e6RN/PHH1IJLGnIbp
LK2ezuYiTgMjAspFPitP76v5TNNqEwADaGzCdb/REswt9/wQPATjqEgXlZcXoh6H/1oPLDKj2GSJ
I/TPk5FipL/SLaz3+iX4kIRenkaLhUswOtFQN8KBFbNQ6B/Gnut+OJ+47qJIH8AHvXy+SGdiPMu/
ekEpyt4J8MSUmHrvk4iqvDi9d8EfTjTcmV9Cw6P8eqsb9f9qXPwEhqiS/BG3iN6bi3lePLnYssmJ
RrqxDwNkWlHN/uLiPKtc999p1TDvZ/FYVO/FskjLKo3KGox0v8Esj7788rru5z+KaFwB5l8UJmbp
PQAM+sAmAKIdAXGOebAFCIy1eLoe3/Z2uDXsz7OyKpaR1MzqUhtidA/+DlZaVqu7DVlfkv0tzWKF
2oaBVDfkCMs015gQwyca66pTGnBbn83SrJoq8MCAUMvWrK6EOIvoDiGMbYQ1+4dRcjpTsg5Q4paj
8a6USJBE+sNcDcQk33SQ6sKWhsxunmSLmDv6xmFiAbYD1rKsGjf6dLkyAcjLVe4Fs9lIBuLabi0H
XPkSzJaaMmygjm5sJXG0MshKFItCwPsagOR1xH4/jK/Df0MIWRsvNJXJsPUvFAFBbcP/Wnf6FMyW
qzb94u4CXLRpIqWhHMJhC4gyZk4hPiHcSTDbDi3RxMPo74Ro4/khIsiAvupZ+6JET3aquA1sfR99
zDhESK437Vz3/eTy4lLmLX8mZBJ03TiN+3Esa6/+HVwY3wdx/vU2z6veutPmWm0oCED0dikphBZ2
TMBIO2GkOOKCbjCuoYmsXBbiEDQFg4K9tpmDAUsFsW4KchwHib9TUJrJnCpiMKZ8oxNZUED2FsUV
uFltcdQ6ohWbSqVYnXBh6lDSwuXdp7NY8jrPmhR/lTelvZvJT08bbArSa1kbgMur3PxGfb4VyZut
Rm9fw2AuZ01TVUhcZ9cPokggB8A9azl7q2SzQdVbEvdnd3mRVvdzqHtcxB2Qz+4oHxU00Q/rcyWS
Evq80f++fEf6ql7efZDdiXG+LCJR5ze2I0LtUmponK7QeSSOsl8uYogLk0KIfgKBZz1eO/glKFk8
7WNyKKRcxLtisoV5FBNQEVmsFNNTY30TlCWYw01V7FkE5DUFjiF8CJ1tMqjxzE7oYKbBMdG3OH0f
KAKjuIZCbQkFdYLiRKbTDogfxvtgDhR1NkS8uqm3LCtgpwKOTCcY13Pb46+GP6NmYIaQW03swPzg
lc4xNTFCDDHCLVPD5EdVNJj+2DoEs/9gHYKtn7QOwXbXOsSm9v93HdKkhqvgi4ilXzZMm5WIJjkg
vXcZFNBCTTnkvIdBVMXdoqodksBM2o7pP4BZSywikwMIAT2eCXWxVZoolflqbAGQmuY/yhHcVBOy
gzIsLlPAh/ElxLN6lr5WHkBmFiDuFnMpg/kd3eE0CYo7AVVDkhZiS4CytwPp9cGecnh+2cndq2Zy
BQeIFSLeogyJ+ptyOIQFsMRyoajWk0ZZoqgptRw0R86ezY4qQJHDv1sFagkBCodeq59yEGxCRUG6
RXYiQsZaWIbXl59hcpt/lTVuvQLTGM+xXKNuv200ebRBDfOtwm6BRa351DmBm2D7BHeDnpjMsf8W
+kUe1KOual9CIR+Nq/giDf3HCsYcxo9YYMKk2/QA+ogobDHOo2VT9c7l2lhaebO8FDVPGI/eqkGd
f00MlQrpWO1HFEO2WbNUgV9KJ308uhfRF7n4MhOy4lM6dsBsW43qEolI+2AdGeMYxuUw4yTNUrlc
dxMUZZrdKc6Qw/YY20wy7lbKExtZQXJIyYe4EoYatnJMbRvYdausGYsE1OtbM5oVS8lIigu5aBEU
YpKPq3zR5q6SL5i9jIhQXJFuMZxwapvBvqSfYaqgcnBWjylzjlhvtwBMHJNge5/d7qDK/6WAcb4M
Z6J2XCLFLNX0wC+KvBgEpVS4LL1ptxiIEmaaVqv0DsCK4xXxxqav6imaUrGj5vXtRt4slVoKZl+E
XEZlUPZQ1BEEJu3s2dAPvm5w1NpY6aI9uYeEMlgmiSjqgAyFaG+vfx3c1Hpmt9gmMMGs5XbjZVg0
NFfjFKfxaAvcZqCgPKabkWocEWaccqGZkv0HWvpRIGEo7MBSkxBo57rw93Yfx62IRPog9m5eirIM
7kTv/EatrmaZUOutUB+pK83toYig2C3q6ZMsi47Radg01aBUKu0kS0C5E+G1LFeiks9SmodtG3ht
kbpLgMD7e8dI18s9kOoo64Scx45pR/oOik2eW8Esq9h1p1ME8+ks/WsppgtIxAeQvtY3LWORBMtZ
NY2FTB+HWr/VVd6GKVjrqYEFgY5aHaUIaOwcl+I6W+u75me1+DkU+HUr/mNMojCsC5PbZXaR5wsI
4lDj5cX8MwyP4kKh+ukly0xhCWYwPSVSMqcjJ0ph4n+c00Oexr/UNQg4Zt3CG63XJ+lWCJdMRvky
i+uHbG12dpIkTsK4xUKkT6fe6Pbj1cX19c30fDz1+hcX51fvptcfJ9PJ9bQ/HV9/vPV8c3rj346u
by+no49X3uT8+mo6VUs7GjO7cXXsyMI111qCYV4vFZWmeqqFNYa6UiQiaVOEP0DKIUhjuCMpS8BM
pU1o/XBSLhlxjW0FvvfnkzyfhfnjvrEqglFkwcwq1oGOtyzkU/m6KAfS59mlfI4vY76lMdqVKsxI
9Sa6XMGsS5GF4m2eS8mpDUBZV5IsjPSpmkZ+zKp0tiZ7Kb0KUoOcStSoP6fV/SidQV0hl8qZxrY8
uL9YHPNgxcvipoWp0KfDm/GaiVpUJlRjdkdSzOGhbvxxNW4/Uc52sV8G5ReIZiCW3NPgpkoMCFr1
Y+E/JXcMhud0Yu4knPNoj3mxzCRBxojGeDeCgtoO0bfIySmzLIipqVlbnrZ5Yn+YGmfYiaAumT4u
oum8pkIcplngXbM0hKun8RN8OLpopqiIWDgh2GmbCOeahb95Q0s7xLHYwjBmekMJQWjeiCEl3dpf
MJ+7HLIcFA4SMICNjyDeUSJiSQypKSiUVa33BSBXPegHAuUTTIrnU6j4MjHbptkmFdsiFFYAkUWm
4b9U+0JUy0JhN9XT/Q21Rb2ZYIvc1njEIk5MR181nH79q/6g5nemenbfhVpiJiGvxWyTQmQtMP7b
DRBSpc1NYx5kkC+L7vqJLLCEL0K6mkW3tLKifWDI2jQCxDnFkIVW7afzu2KaZg/5FxUcCV8ppgNB
BLPEbYJr9TC8Vg95bvZAn5vA7LkJbH2HwHaAAgjI0lHKu2lVBItDsn4DIStGzpqQLAzozn6kb6nk
EsTaldw6NUT3N3kdzx20s8/oW8gywvcLRIQstLNF6EdUiHqnnB8ElsmgGLqq19wn61GlVG3Z6WRu
kcP5xtzCPH6q55Jqy043SjYONpTWyZTYas9OR6uNuL5HaG2zttvOSlfjj7cXm2ldPXN/Mep/llHv
EtslSCkOk8TWX/2xM5y9ejxP9Gl7HUpNdP9U01pnZ5vat3CKkxDUcDWu7WmqytR6ckrQ91j+MR9y
fpwP8R/sQ873JLqAyERXivnXIK2mZXqXBbNDXhL9LxVXHBI7jkw9C7K8nAkhXQ2b6/QWvXp1ig4X
7i0q3AwiJyROa0mpuk/LpnBzXUV4muRFa3Uqui/yLHfdeFkoE3kzy7M7Xb61V6bUvTdo9lpHq73Z
5uyt/rb1oNhmXbeuxiS2E1MP58EMJsyu+14ECwAZBRDDD62gyVn1m3Vr+eAzjS6XlXh8+6821u+R
aNYsrDFK9R5Yv6Q6DYNSuBizzltgQTCK6a5goKqoXr8Yr0RUu+ScHY5IPhtiXTkKYccbjv3yKYsm
MF9/swXitS5Xv/TeDrJfTnonb5ttujd52jyj40Tux27oyDVrgk66boCVuBD/P+JqXNvfwFuv4fEd
iHK/+LMIVhwS/rb2XVfuYUizu++IYjaCud50ITV5P40eZCz7zlpdRCTcaABMHgr2mpqN7c7RzAli
StquDfRS6dPTh6BIA/kVHFeSPxIrNlfndZhQq8x21zjFkzi2mh3+77zmOzKK7ygv5OLbzX3QPGNG
8qHJljcT2+ocP4ChMJ1dhndR/Uku8ShmDkSO1e36QYz9HYGDIPlQSS6XH3czZO+szBP5DKBzLCAW
SmpWX6tkcpwb03v1XbDmmxpVvZkf2eYz8W9kvjj4i4O/OPjP6+DoxcFfHPzFwX9eB8cvDv7i4C8O
/vM6OHlx8BcHf3Hwn9fB6YuDvzj4i4P/vA7+7Pa2IOvZSWw/O4mdZycxf3a7Us1nJ/Hz23mMn53E
z243MX5224nxs6u58LOrufCzq7nws6u5sNyBNBy90+WXKmfywBX5QRTNGbL/8PWRLusEMB2NmoUJ
kNd1VwK7brFsDmLpbe7WF9QpKOrL6PLAp6H8ipw8XtQ66b5H8vuXDuh/ZumA/bClA+vHLR3YP3jp
gDy7Apw8uwKcPLsCnDy7Apw8uwLc1KPmtPevaXUvz71vUraujhLTexY1wrQ6cTVdL4JH98Bx7HAj
3LpRv2yAVES7N5LIdEDDRbx7IyLENiWTOG3dkd9vdgg2ZZeyfQPaY3lYu5DcF6sbUmzGBQ8jonrs
3wixZKIXzuZO5EhaHMsuesH3JVHckdm+wUVIHBNJERFq3xB2HFHuMCkJwnvsBVW0SFtExKTo8tTO
AtFjPdg+LBRJJuliS12rk9T1IpntdEEmNuWpAgU+NIpAS7vI79IomOnezcf65wYQ1tRxQuqM/uYX
CNZdLW0ivwR2tZyHq19kQFTTtEGaBcWTfj4P7kTpaqtj9x/XJ+7rhr59EctvNn3zb1f01K83GPr6
5xv0NyPbcZjDmeE7I2aQ4YAYA2aPDK9vjzh3sE2J+faffXz/tkbiQ2qKk4Tqr8DXm9OHJqKsxvfp
vAkAPRM0QYaUmoQQY+RzahB71De42WcGM/nQ5AhxfzA6pIljVLdx2fQALpuCreqvoHtzrM4uJurx
IesPuTFE2DTIAI2MgT+0jCHnA3swoNSmqOvobLhJ7e4q/RCWtiQhD/meJGEUsySJDpycc8DiEB30
R8x2DNti2CAWx8ZgxLjBMHUImB3zufNNMtUX2uAiStgeuIjZMPwHDie6EHdB9HQIIqUDGB7LM2yE
fIM4DjccD4NTUN/xqDnq99HoOMSa7lHlr1tsIbchkO0hjwO0o9adyccB7Hho+8QcecZwZA9BvYga
3B4hsKC+j5E1MoeedQj7NuXD6LfbtPHHiOI9/AJR0Hx46JSwA8AteWTt0AfMtO8YxLRto489ZlCf
j5w+7zsMD48o/Tji5mYbamKZ1h7UxCJMfUm0HiDpybfLLJOnNsuTYOW5aPLQ0dorPYwwH6EhREoH
IsXQ8UDFjm34NhsNBogif+QdN49jtE9D9eeAQ/5Np23BeHJAsARyBN8LfsuF/NWbdqzp9z3fswZg
OJ7NDeJz0+AcnNMfMI8MrREdDfxviH9twi10CMn6bAcdXEzQTgb7KsKo1kCiDvXZjKveY6cI+sO7
NBfUd+gImYY5wMQgyLcNxwdj71sO94d06Dum9NGxKvjOLtKwgNR6dlP/pshoRbM82ySVPsz4n8q0
3A4xOzfbIuGY74UbedFKEqg8+pPx+/OVgolFTon0TmINLGKNjL7jg5LtPoeAPjINe+RbzsADeyLW
PuoW3NZhPKsce9jy230m48NtVkfSqSYrsDsShockhLQVtwctWMZpLo8XmIn3w/77/sXNbHl3nuk9
fGqdEuiu/iZUasAfOM4A28aoj0ADnukZ/b5pgQYGUgGWxam/rwH/EQahgd1wOf0iHquNt9QcN7fX
II741V47rZZPlo8WiaJWHbG6CJccebq9PPwHRCP8VApk94eUDPjAYJ7fB4Fs3+AOsQwQiv8Pcde2
HMeNZN/5FfOoiAn04H55xFXjDXnsHY69+9rdbEpcy6SWpLzWfP2crL6wUY0mGWvGboSCpFhF1Ekg
LyczgS4eWsjR0JJ+fbgnU/kL/fHRo7yWdjV/FLRAzmPW1sB+fyRdcgtJf7D9ARCS54V7W1hQkeZU
GeYtB46sWilcuqbSs1q1H3ysJvurFz3CzQC2uSJncwT7Pb26Si/4pAMTpYE/BwWoLAEz3Aw3LGgj
QDhDNSrEFo18FitGHMPEhR6hGSHccq7ZxE5vaohfHz/d3d/cfiS1lfi7oB0xZOG9jYApssTkNu+Z
95kzHQUXyigei3iNozl9zvnZ7u/rpVqbU6ns2szc6NFnFbyzi4D7idEshCUT1EoHyRFkLYfrbAaK
Y3JmSblgQRHgkfyzS/A0+EiEfHS9g+429hS6F3PoNAHx5/zXQg7fTapjQI4WevKgmsNFBsx/LaGB
JiAC+AJuBt9hpDfIZ7h/7XJMTzm/CtPlix7sUAI/qRSsO//8/SV5k5vbWYAN8H8UtZKTumqtmW0R
zFIkaL9H1BLGSSOclCE/7/9/+LK5ff9hjHl7+w3c+XkoM3HCSJzNbEG22nj8yrM/vRPTumhakaKQ
IXlVmJlkclEzb8DjWksl+mRt8s9b9On4Y/lO75tJc30qzZLIf/f5cH9f/k/G4PfLXWAgLUN2z/7k
DEnjlAB4WLpzUTAViAZxo1njPAVkLC7zwQqRuhxy3vkT5qHncL2Dv+biFP6amxN3RZ+r+OPydvP5
gZYBkZVcFdm1TTDs2LAQvMG4XXYsIPgwYWUWyAqcSer5MLC8X41tOvbR4gnCOet5umMmpB0JaWdC
0iJ/xgRRGU1M3uvoN/gFhEVankAjIovVUhqJ6IcI6EEHuS1SuNzMC0zqMOJYhqfrMwncQAIxp7HT
5+9vXy25ud9ZIGThkzCIc+QLpIk8VPAfLqFpEj95i4XjJiETdpXXUl/lyQaPOrMsgzt74cSAiyCr
nrI4eI+/f/fjIu59mglhQa/cpBipsuXGSyYamJ1SFFFyACPPDYmcdby5lwnI+/vll08364eXuGqP
o8d/PQj5V3w5WxxyouXmfnr/wbfDqginFoFPbrqBTXFRPWsOX5SUksUCCmCjhP4q50JuL7rpwxPG
AnW3XPSAB6twpebEpdxs25T33/aeZ/IHxLS4p4SO6BRWhaVosCimVmLanhWYSPXKCOnKi4vy6iTj
FM34T07v62VXA3pztdqceMHPd/eX327XRC7DNhbR9ynEGpsC5AwgZlt241WDP4/kGrzyrsg3T7EO
eM75w93lXtbVIGBd7ajcUbPi8/KRPnV5b3dS79UUTL+oQtUSmUBNwevAJuBGig8pRAG7mxz+PvXY
jveXcyP32NZ2hM1OiR9uJu3dloJAUH96vNk3et6ByVCRLzRenQ2MBw9kHC4a1D4xH5ytgdfgTDhC
dn7ADtRGqFNQG3inU0a/X7npjTv0WVLvhNdbM6fvRCRLjUZDMbwoFolISTAPleHCQtbBJQU2/Foi
OX/aeU45v7OXT/OBfNrt3e/67su36xtIuJ9rDo8lJ1XITYbSmmX0GcQwdtAWrzQiiqxSCWuFrH6o
Cv2YPRw3CHWb5TxYl83q68fLb7+u7iZGMnEpfAWoKlKpyEyZkQqpsW2aJVkiC8VkJ2TjMbvXTPHx
E854laM7ehmWfiTDem9jnzY3v14tP7Plw604FGvk07RS0bS1xoyzitggsiSXDas1tVZrk1LLXo9P
B+zxrPQpnmu+nkWorSj7D3GGW9c0qRIebiGJpPpYfQJrSE0YMD3VKCe1zKnUnObA1tJrJrZ7zHhm
u1uORTGWyxNR6JfPWCORBuI/YaqbWFiZqawJqjfy0lhQTTKfDFe5YnKL+YPh6fiOHrq8GkAPyxn0
y83yfv1p6mNgBaYoM32nKBOSLwbJZ5QOSY9NSBNUDUw4oW0J8HHavF1wPQA5s0b7y72QYTUQciP3
yWpDVrJ9kxQoyt6jSPLeEbkP1x7CRURPlbPHqljPbAje5GIgYf7/qFIOQfcyX4908nq5l3kX+K5u
Hx6uDjxWyr25qwYrihxsiWuKCVTrMb6xEnJtWauouXkuoB6NO4M1Worr1d4L/bL59uvH+0OAJ/am
YvTFY/ozMk+mUlEsIl9gVfoqopIRyc4QyvFYHQhnTt258Urt52Z9/+3L4x08TFj4p7khN15cU94a
JnjRTGmLOJ7hCUuwviaVTFGmd4KnQ130Dz11gmYZ/Kyq/LBZf72fqg27KpDRTiyEXsiplIKcQ+Qg
WA0Uvyl0wz03Zq2BhhYBcqSfVdLL3fDnbGp79aLHGAbA13zG2G6370p5ImxiKl35JKqgvlGkaptK
sTL6FYspew26EZXVz2lXN2yPa31aOzArfn1YWjib3ZrsDd2KbaajglNZeiZ0wixybhnS6sQ4L1h1
HoDNneEN/ZAdnpXgAzxiNYtyf9s8UpFzqsBMjZ2pu+aFqJYIY80Iuclp5rlHnu9MsVI3Je2rYttu
8PHq7i72oO1yANquZ0Hh++Xtx/u73zb7GhjNopPNZMwU09VR5UVTD6BGlqmrK5RFNHhVKr8f+0z9
a3d1hnoQylZuXlR9+LLZrD8tsGZ3H29v+nBPOZScGMb0HfIEn1JSVTMrFfUCm2CBJ8RmXSMvCqHP
ireoJF1OqP4+AtXZ4vy2fgbcadJvruTqWm6N8m71X+ujqoXZKn6EepfgNZOOevwc3BT2J5hNkisB
3XNTz+TIqR2P0wG48gPF2YhDHjeFemT5y48H5q48X7gtl0slBAUPwCrcFlMlg9VJn6D5FvTYVV9N
7oGcjHfRP9gO0Cgx81HbTwg9uCi1ENucEqzMJI2lV1OHUkn4J+ckQ3qhRFVNKP9sCDwet8elBqH5
2iObUKetxMftC2IWkf63f1sMDE5sOZggR2FDkg4xmpnosYIN5pc8YncWNlnwdStbfZ6lHA1+pgZ4
dMexMNZenQZ0azfmyeFSATR3LhfLoon4+qwbzwjlyiOIIvFETiEMcgorS5HCuyrKGZc7H7THNGiv
0C+HvdqvMKSH7fT+dLsluN3cUnYhlGHGRIQFg+QnqilNtkFGV2py7eW5pZGfmVi6PJPglKFYbw6G
lD7Ey6fcN+iFofZDDSpSvmtaRC4ko2RR2MxMccXBop0N7Q8Vgo9u/W2zxgDj2zp8nVj+ajMQa3Ow
yKOXyRy6ylpw5xCCWQscZpgQAL1VlTkZK8hpLVWMSztPg/UYNqfW57TxszCxe0PAvmUordmSrQC3
pKhr7zX4i/KICnBakrQXsVoYl0p9KSM4k77k3bWLHtl6AJd6tx3c9/Q22eX2sMbOI1LzdlJkyyfS
ZfFXIXHPuBTAG+FoQ9IBqXKBh0g8YDZfE5oHjzrThj69sRfNmZFo16crcbm8vZr8njoQjdCkK1ka
RjslIE1F0iyRGpTcwDxANIQtr5HmafQz9nm43mP3fIA9zGPL8uFQDpTCLcSk0daYlpRWzEiwdFWp
Zyt0YammZiIkCbo8F1gOg/aIwkivaQtOh+jhcQl3t2/GTnV+Uo5svK/cS6QyGhGX8vnQQmQuFq8A
lstJrc9iOhp2hurUkTm3vppTSWpoHkW3aZUR0xaGJiwn2yyoIytaI05w6hWrmFiOSQQqPnivX+6r
Phvfju+46LFuBgJcu/20rv/85+XqZj+hOkzUQYqI+AtttE7B1DRiWnKuMadVxbRCNRuf5YlHw/TP
vz4t2zkvDmW7f/uxvn+KBJqmK1HDTFfBmms0XcpTQ1Axro0tRTgQhOd7UNO26+9+eEUR4unpFz2+
qwFoObfs779+frx5vPu6/nTSrKNc0SyEmva57X+kYoCX8FVBsmwVbIfqACE4JJJFwnpkQxb/qk0P
zzy6U4v5bb2YauAEvJnX/XYZx4cltb4vN78ub+k1A7h2c/uxHQm8EGJqYW9/mLZXWu+yzAyxMMJR
JNpP4ECSImJiUzqa+vz2lOEjz2yZGN3aSbsccBK3Ik3sNuZ+KPHHTiqkUp7MecdSdCyFm2CYNNSq
QWZNvRCirckFjnXMJj4vFB5wRgZcuejRDfRwJd1MD1cPV4vD21/olWvbMwLyaLOWLNIhWHqWElHV
4vETN/CPcEs++ihtUy/UWGbjnyu2zG47lse7q1Mf74PdzDKHf/+6vH/853Z7sVjQ5CN7mdx8KtbH
ZuHmESHhmHJhoYInJh21ksYG256f/Kehx/ifrl/0GK8HwMOhn/P7w+fHw2eLvRNTRAou6KAss0pl
0pMMqE7QRidk4GAuIovehx4P0j196U67ZX7p583w3F5sh7uU8XhdmUiaU6YVWcwFOaEyuZpiTXlh
/l7RDj8uHrRX3D+7qZfcr0aSz5vInzafv5CqqGmLqibfE6uzymrLCnfwPcQFIKlmVN5BNqFrfWF/
7isLH3/Fo8c30ZVemEH24Fd6vhvgMNjUcPmPm3ZzMGXOQeKnhTTgatDKwpzPhiiFZcEizS++lJqb
StWpF7sWNPb5fgtdveihmgF+w/ep8i+/H2U/WlIY2G4qUdk6n5xBQM/T0aTEfEmFaa+9ilTj7Qoj
RxXw30cpEJ6pR0DM3hrvN7/e/bY57q8qskhlNPRAOBBtKjMUZD1RNg2OmJxKxPRqG8KYjzcDYwdg
rJq2juPm1T/pYAQ/TAwVDmD/PtLm3iRAbpSGS/YcmTmYgXdUHpV6VinqRumf78Tg+Tve3Dfvfr65
2tztXaoAn6eqlbZgdSpUJi1t4zV0WioYz7CAXsmkQhLyRU2aRj6vStPlHvVqgHot+PO28CH+jUqc
OzNXaqGpwSKacC0iJ7SVTnHwgKDgkSdmoywYNySy9WVbwNjP2AKuXvRQR/jd1Vn83/0wpeMw5IkS
Bo5sCuY8hQpuXCspIqGyVJkJXDGfOYwEOZHQqSFJeL4FOQ0+Rj9d6qEPqqx+7ZH6LbdFzvf/+Y9v
XzbD7WFRwk5UK0zWAhNKmUzIC8QPLyoXxmoh3nJ72AxLJ8f15rSyEPhuj8VR+l3/9M5aszB0SIm+
E41IUSreAhNTQoY8jEqjkXGLLFcEid++4YaqWM+k5vWih74ayGPnlZKfVjf//XW3c3c6kOHJo2TX
BLyYZrliOZSa0nEtmE+Sl2CiaOFVvZb96GPE+6sdbrk55UZBXh+605MD+D5/viHSuFcpP0WxmrKy
GUwuI5bRcYdCXdrtmSWpqqvGtjfaRH0Copfh+pRhBbVU+yz1t+9vHg4ldi3hgMh1cjhu7uDGBbkb
eMrAAkIMSHVOnkOVtP6/KlgeAbzoZdADwTaHVvH7Dz/Nd7bHykGlkfJPlR2EyQYbB9OoURtnuRWW
m7dZlMPDO8haneZpYNIHmvGP71qbVQwaHbji8JiUVTLlAD5qsFyXFP5VnpSsb1QxeHp6B9rIAWhD
Z3/cmber76ublJzlapWkEnGl/Z02NxYEuGo2rvAmgb+9qun4NPpLx7ln2DcD7Oqwp+H35f1TbiM5
ab4xTsboqGXvC9h1FdB8jjwMiZjXlSPRqbPk5mmQ/uFq4MXNSW5zB51af6ZJU4tp59H2h6mQCpPT
gJIVdZmNhA/xoAA1a+FLFs0k+aK65g/nt/bmDz3gQUoSTNDjosnDt9vHT5vuLCIxGDeRgOn7VBRS
LWFKWfVETKlT62XyTJgWmvcmOf72G123rdjLU3yn/drDTf1EBDOaCDvbofOwq07v9cd5Kg+R2Lxw
8N8amU2UolFBP1XLWTLag6qnmpx7tmZ7PPIM2sAaLd88s6Ft8cPl0942S4eUpkPNfKI9Bt6kUdlW
R0n9VKQysVTNTNKu2OyqNOLt+MITkjNKeTnaCheuNgPFvLqW803I3SemvDNqV9WPVB4yxmL6yfcL
OnXIwSCadTWHynmV+dktyMfj9sBGwXVDXbPrXQlYnlSATWvOGmZqpmP7mPlE279TRZqEDD4W4d+s
AiwHkDeDJlu4tvPzVDe3vxzb9a7eIjltvfPR8IRYS+cN4Je8tOA2FJiMbjU27uG03qIA8d0xho75
3/5y0cMf8LTr3SlKTAC9jvrQ4vaaeLIoMgjaz5m5oiaVB90n9g9raEiZsUghDXXiaKwew6BlFq7X
fr5dc738TB+z/9MDHZN/3NxfL9fdNp3cnDYyeOaUo8ktCD0qCeakKyYaG6r2f6gOeOwoR2DOuMvR
rccTsOSDQ59Loe3IM/U7h9UucxSa6gC0Oh4Mk9P2PQeKQxbrWSjZsIykMYdEZxDlq/e9v7x/+OS2
TjAR7ECw1YG1Xd08fFk+IiIeKjLhsDVbVx0F8YisEr5QNcTxAAoHUlUCGEYdx4F+zB7OoL6wFGux
LxE9LB8+y8WT33HbDWtw5E5wZj1tobM+wu2oyrSvGZqlhHOznUTdMD2AQd9rKbmeZ6f0tV3mu1+/
3NNpSFppY6eZmfZwECxuLfg4zK4kOgdDTtmXQr3NBo6TAw+vbhXPnnW2ZTy776IXYqDCis+3BJ64
YFLhXf976+VVyrnJWFluotEGJdq4BSJXGsfSZ69FlP97L7+7eNGjXA+gOzWoldHBlYfjwqvSU5is
RqXgWmWVWzog1yyLIQO0rllGyVsK7bVGNz3jvLFNl3v8To/wz7nngA6CdFLRb6qXqaoaF3TYiLr2
yvnGvDL0IQNZg25CWCXehm4ObpzJM1IlfzUg/w/7E0WHMxTT8SR4fa4cUifB6UMoRLXwgcIx7qsN
ITb6VLG3iLLdoabzucLhll7MFR+IuVKzZftHzscxTsnInSmBaQfbV9Q7CiZluKTEy7+Iu7LmOG4k
/c5fsY8bMVEM3McjzjVj7LFsrbX7ttGnxLBEaklRMzG/fjJR3dUFFLrZ4WV4HyySXWUgEw3khcwv
JbgMcPav2WkwbJ9geNCQ2dtd20mEgzB4/Pz91k6mI54HSgMcVTBuMg0Yu4R/vEhmUImAcIoiO9uk
lNfDVBRI3RGawOopWtEGK4RX0oOXNOB1MuiOiI4oTB89U9E54qSNbxWs6BFsOksmMY1GVHfK40Cr
h2NdZ0nYBvGmhcCQFxpXLGjw+qjBfAAWFJjM0V3l9U+DX2RiVQtxpTqEq9XkLPzHj0V+tsstE2Ge
I0xSRpqtT6CqhQK7C/yjaLzPgbzVcs8IqEjXsrNJtIKfplrz1cPHI9YPLrs+VP3oolNNTpRT0PKU
mpK/yQaLuHlgfFi8x9csijd3uecknctiOL1RM626TLdhkmOhxad7/M7GUgtC0FjEgh8CImUgKYER
oVVB20DvJHKrwMF9zaW6NhH8QMEPd5erMX64q/hby6WPuFojPNGuC/Fy9zNoNGLGemFZrDfNwHgA
y2LgObOBS0wbQl6DDqCWdVDEkVed9MPgrwC6NGbFetWR7+u1Pt6ouA+5pMmeyhLLzRucbzg7oHhj
wrCPJQTT8vUAnm7STCqsu728Bz9cxm9pXN2ajJqDdWd7rXetX3a3mVsUDK9UmLylqIiFlpRiBV32
EUPH8I/BLDxiwDISVKl0XQxzPsUZw25zxprY0I5M2+9l2UPA8Y/unQt/XaQd66Qd1gAOVOFlrKVi
8A4cKqW4V9YoCf/9SVH8OYVz1taMLQ2lNeNtPOKvu6f17unxeZ5omsEvdDn5gVrwZ7h3iLDjJJhJ
OSQpE/jwl63s46B9qo9Pa3L5vkOusFPS4fN+26ug4C54g9acMxTv5YQcvBIGs+PwfstGI5qcmdlI
NQVi1aFAtRl84dPLAzYvPLA9BeXlCE3njZAxaDdEiohgNIGWUDrAnxnMG8UM6SWRdIz9epoz0qV+
qWZnLzrs7Kfk2P99WT1h4tvDtKq6pPs4sDF88Bi/ARPSMYyjOZCQSWLNRWSB90sP2/EaYpbR1TWn
k+0Qfs3vX+6/nb7gckWTHaIquiFIgcLOYJG+BbvdUCVCtNrY2BTHVMNUFHC27lDAbSOu0G/4+Plg
veCl+8GK4WAUkgTLEilWZArqwWblevAR1iUx7bXwf9iKGZ/V5PJVj9x1E5ldY/fIKbdZ8XKxZaRC
oxbcZIcqArERLZzlJMHyNXAqDLsUlJ0P2ZC09ITB/NdHS/t7fP9ucd+JNemcgc0XIwacTMLyUSmG
JBIPSmStnf6z7jsn+uZsbZhesgUfbo9svTxsqtpcxWARMb2ZmoI9BH69cQRTgpS3FHSwOHNApoHq
6Vf7zvQ70ssWH4vRUYVqYgugZOJcEDvIgJV62XLMF8ScIJJsSsYYfl3l4WHwC3niTUbIBgRJh+x9
Wy/pfn7/t8dv9/sZmMFoVOtDhQbYzdQbpQcF9hasJopvzxMsbpDUqexDuEpcNhOdiS3UL1UMiU4d
30bsWgzbkZDw+LC///jyNDF1yNqmU842t445TN9HAcq5Q4yGJAeWwRVy4I7kdPl2uTPPOYiGxYsV
X7pTtbHRp6vx9fOXU6ZZyXljwQVCHBsoR4xmAg6AMUUKKx1FVJbqBr5lNkY9t11GVDcrvb50pzb6
DIdEXqI1mIol/Fd+K/qeJcswsplAtfIIG8YqasEpA3PHENgzNLzdvdqJmjMKeHp+U/O46THepnr9
59PL87f0ffX5pXxv7uM8B1uWbSScwXxD4bAoUwOfDmxmrG0gHhxOnthVKTq9ic4EeDpv1qytZIe1
lV6gZ2wQ/P6/nuDP3dPcuARHJTiLCWAeC12FCwOaTANRUQaT0R27ClKznuGs5zh7p+Jj08Ga2uBx
r5FXf7ibSnQKWDXe8FpUA0zljPebAw1gfHJK8+BCRncs8yiZ5i6+TbLw3cUinulxxdyuY27Bh6um
buHu5/cvh3syO/Jmx2v2SMDl9wS+GYcxX/BmBksC+MVWeyaMSuaVnO9p5HMZhofHDdXrHtUtPM7X
p/v57r19h38fYxdMoV+fEiFgPFIQv3iRmgLDKhI6SMUkaBahrBVv8eW8q0mZv1UeNewtKzM2e7Fq
ICq77I3y8IB1VswQEw2ToP9RQOcxM9kGGQapWfBWi2RewXv8I9GoiZYLPC+E4V7sOnyfcsB/XYF9
8bDZNRf6QlFhWLBDcBEL4rkaPGF8kFaD4eii8IS80YV+TcGc+K2QS/NsKw4ZlsWo+/v9w5QZweVo
1JgYApcG1H3A2zeWBs+tHAg4iV7o4KXQZ0zE02g1GUr2yJicuXEVbv20htRi6WVx6BAjXeYALjzi
6ysNnotTYQCnlFnrwcWKjTqvB2voWAqWbYF9MnVZyd9GuBLwSbCiEaUm/sSjmUUEHa2xsBH0N4J4
WonJMRgMoo44LV7JHT+Ofa405PC4olt1qqLgw91x/R63s+hCgdVGE0gk7wYhPMYVJAc/OIJ8p9YT
nnMUqgH/mo3RzN3ZQmpnG7H24wochE8zsCzNxiqy8Rf07AKcbWJsQRcHo1ILxDxwQyKCukyFzUy8
nelT03Mu9jx/p+Z6t7Snt5qdUGlenj7fiin0YG6tKNsVTE1wUcFfJRKODTCJha8mDiDYMcU3Ghdb
vKHZSBUJulOrCB/qGU7D13vwLf/nBNXMS7leiJYqEKjUU/RJwAD2AvRIgvV1NLpAq5BShdFQD1iT
I1iHHDWVtX7drL6eMugFes+WRthqEvQYupk8IF66CWjsGpZICmBpmHox5oPUs3egYrZak3YXPn68
f/jtbtQ3o9HGy+0HTcHH4tEoFCPYKwe8Sw9KxzDOYnZRX3W1eJjgrLe5fPW8vpm9UPPaqW/Z6m2L
prxdfVttd99KDdnzpnA8YhFxOYZ5g80OvnkEEkVfgyHmngKrKIlMjaDByXyVqYqNLONxovPsLF6r
mdqqDlOLXL2q81pdU2VTTEbDqQLPFHaT03jbgYhU5fbKCkesuRQZmg9dk7bvaCfDp529efn6fEqc
4XrEGeIqOezZMwjuwblxEjG8iBgoUUaCrHU6ivakn8a5qefqbG6jp3TB5+fPHWgzSYPBtLQBtm7E
NGA4XQ4LzYQ3MVIaZWoIaMapadCd423W63MdBzo1/1hURrhDKmC7UVSNNoDeSWCFO/jqlPDX3Ua9
chdV073edOjeiCUkxefd+1/fHc9ISfv3QWdizEAzXuBoZQZvMwgGoTOXEsR1zwY9k2UEY1/ILYKn
NdWb3pbbbIohAl/N56KZTqmJE8qfE8SRAEYQZ7RcRwtwchJmEEe86ADxblz3EMxHrEixnYuWrV3o
9/Vq8/vL1yr381aOaSm34/mkVsLssIhCI5iNTgoxtMlgfcgg8YUy9ipQWt/MNF/M8VlNf09Tr3Dj
0hpx+vn3sTldXqSvcn3wG0NwLiawlyRuCKsQOxJDk9K4EKRyMVyFt3Ka6xyO9PH5TU10ZyuvRYup
PMVzLRjJBzAQlSMCPIIw8nj2PFjrHlxezC5PNpKoR4/3rGzshHa360529U6SlbaL1LFjfRtuCswg
L9fwpxq6YIIPSomBYOU1D4j+wEEvWQ97VnMKOzD8H2vo5m/cVAR3lOlOblUTGP1hhL6t+71kLhBo
Rw82l5QJcN+Ml2D7e8UsJzpmcxUG8GHwc0XT5WFFtO0RbfWkLOP96uPD4zPCPuyen3Ej1cVm8H+P
hqBH9PohEAc+tmBgcGOkXdgCG0Cib0tWLo9bk2iWbgGcxAWSxiH5YV/1dBnTNCgbIQ5IjsFk8FDA
dYazB/bygB3TBuk5D5x4515B0z1mWLyWG7B8r2Jpu11Kwt12b49q+B9fp6MHpjkePTZWEcC2hl2R
BWLggWcF5jaVgwKfP5Aog2J9ZMxpuJqI/VKc7XaENusKXmJ+f1zKEdbXJKYCsXYIcORht1I7WOrY
oERyFpuzUH75rqqMeRZzMlcdioAk1qGTTvWD/zwVUJXeJAIs/oA4z8FhzkHATisY+I5MpChjFJY1
m/GfveopmEL05jWTsbbafJpcYTWCFAaalPSIPwa2cHSIRouYLIxTaVHik35K/2yohoQlkuqeKNrJ
qUWbuFwElEzUEUo1aaO5cOD4ciw/58GDR0wRr5J4D0YUS1a9Kg1x4POSEJ/eVNR1rLs9MW0abVFK
YfX128spXnfoTJCIV6DfEZyIIkY72Jneg2dpDeFRuOjzm4Qk5xRcyHI+vFHzaGSHx9UEcPvu4WMT
o6OSejgaYVBJI6itsoMhICUzmM+JBWNj5G8Uo5smr0leLTX+nm7bkPF29/z7t8evz7NWGaZUQpef
GM1n0qfAyJANXlNnxgaQ8WQwljjqJJgCklwHVl8mOkZE8IVzmPWLF29qHpYezZ7bCa/ifvOCHuus
4p7C4ZDFkiFWg/M0UIHfCR5Zy8Fq0Mw4JQL2AG0CV81YN/WUqkPHpm09fApXj0vktl/uHxCne7oh
JVNtAphahKeM+atYMoFQVt5GMAqUScY6oViW1+HXL2e6dEdav1lzueE9LqfVfpn1uCipKdEF4bDo
1lFwGLnRAveLHZylllMVOUlNYOal29UCJumsryCTNF69zGCbzQhFAHoygPNsMBihsEMtFuB5jE1o
IZMG0eyayU+jVJOLTpO8vbAtVtQvEUNBsph15e4r0MwIeKNDxPaVHDbV4BGczmEZJomgL9XbN7L8
5Uyztl+qLm17SZcR6r1aJCagkF+2yTPykJqomfVRgbSmGVs/JI24osIMTGVGEbOQ+ddd8desqfqd
igvE2FpwAR+ebZV1Oya/4BeFjBz+4qXZSTaRhKDBCgcvDKS0NGCPg3NJApOCUcO0/1OyFcdnNZ+d
NBIEGmxga8eWYiNc+Ny/AAniBHZUVRxLORzx6MezgSWvZc5cwbm4rrLmOP6llmYtaHgp11pQb9gE
8XXwDe8f9tMZFgiXOF4SRUEdlQoMOAO+shEWWx5z8DXAGEjgI8bL0bjTqDVNzHRo4rSh6QHzYGad
H+gtG+G+wKUUXuQ0ZOniiFXnJJxyoRwsKDiDnF1sKzQfuCasE7/cr1er/aYSNt+LSXBE/R8z78HE
pWAfIRyXsGNOpQGdNiTnAqego4Mlb7aBxxqC/gYuz25qBtYdrtZk0a7r+Xf3tL6fFCI7wB4W3DFB
lZTgvmlNEGQK/GXPsCCJZpC04Mh5c9nvaEY/HzOZvVRz0Sl93G9Iq+VH9OjSHRN/G6Hj6QE6viS/
JsqTEWBGeSFHrB8fshzA5AWHX0txTVuXMeH8fGNOfHxTE9rZ8ht+iowfiv5pB1BAkESyYxiEzuB8
egFeVfZ6SEQT0CTJOm/b+s1qtJoSznuU8IXy2TyuUOeYUiiILg22xUIjyImSL0YoNgaUQ7Tg9EVK
LTWv4VHBkOcWDR7VZIqOcbmxsGCqzn2pesuNOHmluZxINiFMvZWIn6EkgnSCZ5qUo0GCaxpyenP9
f6LmXCZM7x5yv+kd0K1q6zfhdGywx8DTttQLjlUiuK1uxYhLGh36uQLMAPQ5g9LYuSMMKQebTBQi
6fTaGT1NcPaEnl6pmNh20Bzxw3ZfFRcRU0RP1Y5AIKiZQIbgsbWNleByIjxugF2fNI0I6v6H/c7x
WU3qtiNKttsWR+P9p9XYbZnysd8yPVS4ZGs4t8INDAGEOIMD6THlLTtJc/TKxeiu8g7GCc44BOPD
hvB9h/CdLkCjBVcs/PS+i3CmtIuU4S2xQf8eb2mNN2EAV8BmSZTILr0twtmMkoqH3WpxsC1I8fV+
Vy1+wdY7Cz2N2VHeSzlo8Gsw+QscSFRHRsEPMAVIcJd3zHz4PjvzN27mtPIlXiTis4mGgXKLhY11
nx4/v989bDHDcFF2nQMTKWDqQMJ+TlmrwaE1r4XNnBipvVVXZ0dXk13Ik67eu6m56LK2LTl5WL2Y
/xu35W7bFlAq6YPgGo4spj+BZxlwexHMmPbYksUT/kZtoxsSGvJ3HfLNqfrzrkXY0knSmAMuOCl1
ttig0tGBpiApccIRKd8oODRNXpNs+JJkI1fNZipGxW8B9TGTt+V/OPxWQJB1DFYhALXhmAJAQDHz
PARtSZTEMR6v7zj+W7hg1vwWbmo610virVjNG7i9Wz09755OOV+jSWO4dJgbOCiHaNPOYZKGz6U7
nSAxBWHU/2MDtznRNzVzXY63RwF8vGmrcuInaQxnpeTuWGsCaAlsMymw+gV+y1IPMlKHpgnl8iIk
UWf0hsjOMbB23YFT2H1ws5tSid0b9djo6rY02vMM/PIswYZIEdMPjAKvBv7hYDdrNCqSVFffnn9w
Fy7PP7iaB7tZ8rAy083DP77McU5YcVFodJgSARQmhONNYPEZwgaisQqGwfLr3IC3feminOBEojP7
dsIA2/zlLzNY7GIdi6wMSBI5MKJRIzmDWH2YGRpkjikdGpDUvQU6Brola9P5+tbWLqzBA7L0ERtv
eeU9Q8gG1U8C4wRBSRB6ChweZwXsOQdWY0qJxFfiK4vpzpiH9Vs1Y5vOd7qRbSD8p9231fZwpXKo
xDGIEG0KNCX2tExuoBTTCy3Lg9XwHcP6Jk+IMSypt0svPFJyTpeOT29qdjrWzVa010YYy34pANil
HTYfpSI1eNuMOEFOiUPLeG0YttjhYNU40E/6ahCWuwsILHc3NXmsR/Mkxn8qYESn/V6gnhllpdmH
IDoiOLEDUmFTmaSxGERpyZvtXo1Szb8jndO2E20q3LvdE/aCxiToOQCCKNduKKwiyCQubBqMKCjw
JWMGpACIWpPAnKI6XZWb0pnoTC758sWaMWE6jJnWJVo/fgFGDu1b7VicVfI4pWKDigizr5Erbz24
GIkkMEtSvi6V0cMs/SSbxy81rcte35bs2a7JsOnpXdCr//bvXJWsRMVL4FAKlYyNFgs8S+UJ9ozz
ZmCwqZUkkbFM/jz9Dg8qXvdLbHP40Mj9llUd6E6JAELfUlV6t2NBTcKmfLrAJIXBaYP3QgLB6jnY
Wxc7ZH7pbP/9MuhoKdnAT3u4Rnt8+H7SdaIEsbwQnlIQ4gE72RggBvZEHFwKinHmhFS8vUCbjXJT
T7XcpQgD3oisX3dfHr/tPtzv/j6DShgvj0umZMmjAQXDI5ZCCPzGsW0nbGJnwVNL/jqfeDnNOZut
fe+mpn8p08D/be/CV9/nOSsjOwobMI6xwmwY0zSaQRuJ/esZujUREf4pqBopmXzFa34dymL+xk1N
rOxx0BaxpXxXUown57LU3QAPxoLk0yU+Di6Z9ZYPQrOUHI8M9OY138Vx7D7lx6cN1aZH9eaoS76u
vszMtrFRNQ8J7ZFY6rgIeF+eZjWAIiSSWEl5aNDpZmM0c/+rtaNrThQGvvMr8tIZnbkyBAIYZ3xA
Phyr1Bul7d0Tg0KtUz96gtfrv7/dgFSsaDt3eXA0WfcjIclu2Ox+3HupYShHXmC/FyJGnBfNktKF
fO9EnnuEMbXrYbg+pYvulzrmMMOcy5zC9Hcs+LA/9fJ3T6Fm4SpapSq39KMIHI+J2bE5WLyD4EW+
b4ytZLi2c614FCxZ9H3hrudhdimVmYbnOJ7+v0JHluTrVYzjtxAoxUdLl0a0vMOe/louskQrtQxd
6HuKavCux9H/GsMrwJbO7RYo2Uxv6V3OVc0+eo1cQVNhYBqfeDymxamfcJ5dzxfxu6WKKgXHjczA
cLEmLm1WF1QK0MKuYRNWPZG06/hi0iGWKvnkxHyePp5IcIjnM9FiXb2S2nU0UNPQsU/DFzDcc3F9
BQXRwyT1uqmzlvtJS6zEX2uOlRBVCR75Rwlm1Kj1sxCGHUaMp+I5FVuFIovbjwrTbNP2HNDQ0M/Z
4/BNAZlsi3W5aTP0y/20YSlInLEtRbskuX+yZAt6GvE38ft1/8lutQLcbRDVjpbLlKyiOCHTN7LJ
nmAIXrYb2FtS2O2yaDtPRKi+7AlUz6KhLbooi9LnEHTB8GURt4ma14nAweEMPrOkTZTDyjTJRG6+
or5K+BJ65d/Qw48DqaAHBD0MbQsjflIcqhpfFEm698k4mVf6dwxQo/XyjWDCNmzZPJLyaK9Ngk0W
LTugIMotn2yTdBEn66wDxrWs+g2dXjVJ+opXpONws8tC4G23Fpl8gWLcAXNQNvwG41dN6WG7yDBa
LSBBBkrUYCr0yCs0Zsm6o5ky9xsaYC1JMV3W8qoDQh1l0FCgqkJM1noNbgIpIo3dXn90S4Kf311S
U+774+DOGkqd91IHWjRLQqN+hElI0jy/XfMEMOYO8yW7RxZiJzhbVIMNEDQVR6f5P9LToJQpAIqn
fWsAEwNVU0AHag0kp4hWCysARtbJ7+Qf42YtWfGlfMvqj87zaqrAwM2E3PQDMs9zlQLLs018LCNV
BdbToA0YV1AMk1h0XYsbALr/476JwFMaxTFGgyUgBN4xPxjnpjQQl4mIhTVkBFZeDcfQC741HI7s
C4MAzzL396CNCH29mrXQmgpYQcndvpEgmhOVqbWg9AhUp/WgxkCaBJY9IL07a+zUM6sbMvWlSRbN
nsmFojKYsjDjQyGYFbjkDHmZ+dJDMsUwMb7o6lr5NWQgDB0rsC4xoCEDYdj3rZ57AVZXYbTCcNi/
HbgOPDb1BS9eINbA/RGcx0m1Vg56d9u3R855FnQGU3ElFhiCubfOMKBhZxVTdpWPb30BrF9YYYJR
YA0vDSy6nvZy0G8EHtZdWpk6+ZTJWaWmbPqwHkp/AVBLAwQUAAIACAClmQlHTxLBSFIDAAApCgAA
JwAcAGFjY2Vzc2liaWxpdHkvbWVkaWEtY29udHJvbHMtc3RkZXJyLnR4dFVUCQADtgjIVbYIyFV1
eAsAAQT1AQAABBQAAADNVstu2zoQ3fsrtLpwgiwk6m0UAVzVRe3rxEHkNssLihzZbBVRoCgn+fuS
etuJU6AoLroxZM7MmcMzD8kyDMN8tkyCPZo6ibGKo9lstdzOZoVgBywh4o8Fy2DaGZr/WDKeL9KU
C3kxQR1Ggi3TIw3Ger3M5Wz2nckWYZ7TGOQXqAQrJSNlgxhxCh8zTn5cXjVxi2cgsVSJLy8mdg8c
hijER8CQS/Gyie+nJ1EtzDIvpaiIptkdjVORPRYG4cqps7awCw37L8vpxcQZruXg0DeyjOXyvzrv
xB1soUucI5v3js0f2bwTWzDYbJwS4/BYk9nyFT7gmAhWyEnYl8sHGgbGUBUKShOlQiXbWn276a52
J7jkEc6yzwI/al0tsy+6l1LSKSZBFALUb4+kg84IvIo3yXcgvX7adftSwOjvJyxxI/I/fdA3nFWd
z1zs1qoXWhdFy2pp+X7iATRO5D0KY7Q/QQA1BKgbhp4dGg+QRFwoYb9sb9Y3QBleZPAIuk8oo3NK
v5Yg5jt1EO8x5U/3nMtpHzScacntFtpBJARngO4RIS8rAW8hqminIxYEgQXvEWO5QpBAVTn5wCXi
ucQsB3GrGkXf1G0BkRM49ggw2rOMaqdljaPG55ZLljLdFLl+ehlAa6wr42H7WXWbagUuPtTP95B+
OHK6vjIsq8pa10jgcr/JNwcQacaflM2rsmtNyutJOeCkxtvsOx4102V729ekzsTWUdEe5zuIeSUI
qLT+kDYkcDa0Kqhqvq0AmKdqSHqBTnIrwGAA9ME8C4iLAnJaM5rWytzhslTi3UnxSj+1JjRy2CJj
moTINo68fgcQtZuABsQMxh2/il9DvtrPqB5Y1zGxmTimZaJggtD55YfsXy845PyJBYfcv3LBIW9Y
cL7j/98Lrp2/W/wDqG6JNimBQrexnkDUjYKf2NhMx+2wOKgiajDItX5qgmgG9eFo49U1XNTSKkTd
7vCsBRy2nQ7QBepGxHGRaTsnDlssdqB2WcoEHOUtpydIV29GalkuTxZT53YPOw0mgB4hqy306wWF
wp61RYLwt1mrL5tu7mxIXHeE9Glz86C+PviTfsWUBZZk34p8bp5r83VL/axDQ+5aZba6zKnpBv67
mdccNyqpV9BPUEsDBBQAAgAIAM2ZCUcnjeN5dz4AAFzmAAA6ABwAYWNjZXNzaWJpbGl0eS9tZWRp
YS1lbWl0cy1vYmplY3QtcmVwbGFjZW1lbnQtY3Jhc2gtbG9nLnR4dFVUCQADAgnIVdoIyFV1eAsA
AQT1AQAABBQAAADsXGtv2ziX/rz6Ffr0wplWDilSEml0O5Blqc1Mbhun7QCDwtCFSvTWljySnCbv
r99Dyhf51om6xWIwEwewHZE85zmH50ZS1nVZxKKqBvrqFRezfjifT0X/k4h+zWr54RV5LfK6PxIP
YlrMZ/Bd/50Qyj5r12F9vxkMr9OPxXQxE9Xpx6vzDxf+6U+nSzppGc7E16L8cvpRlFVW5NWpe/rb
tTcW5UMGGE6fybn/OI9Pl9er04swvho/d6h2lsB7lmaiHHSSVltC3khqI/OV3oP3Pu7jVyeaVyRC
v32ai1WX35ht2FTvXYZ19iBOQFGlVNv1Wt8///yz/jv+rN2Iag7KyKLpcmx1D9e5+Vn7UIlSPxtt
mFoIa9oorMXpbTZbczIRtgzEDMR1zAeYDDDqU5vrBnIQ0q7G+jZ40JgOF3/ToRvvW3oPk4DQE8Ax
L8q61Rljzc2L/GlWLCr9wwcFhNmUuy4hhm8i07C8UWA4I88z3NHQHmLHtrjla5rmlWF1LxL99r4U
YQLjkK6Psmoe1vG9/sdCLAD8RvWzMMuNWnXVNP8xFvMaEKy06f/mTYbuaOJ6nj8e673x2bux/+7j
SaunVD6o9Ff/5nJydvnRPT+D7qPRjewf1jp6RMtXFIVJJESqaR8v9BtxJ61QvxRhCX1WbQPNMN7q
mlTVZHLr/3ar776WxDASNCHwxWhfsOCL/rvsxn79rJfG42n59VEfX/y3d/XpL+4dmgudsjhUOh3P
RQyeEutneVqUM3VxoHk37vj92eU7/dYf3w70MJbGnEXZNKufTmciyUJDzLK6Moro3yKujVLMp2Es
FLL7ejbVtMYkwCCWNjIYPNMy0Ja7/hI+hOO4zOa1V5SimZf/Wk80xhZJ05QJ/dNtoBjpr3Tb1Htu
BT4lRan68Xw+ICY+0XA3wth2rEjov4y9weCXs9vBYF5mD+CTXjGbZ1MxnhZfvbASVe8EeJqUIL33
EVRRlP37AfjHiWZ25pfS6Ci/3qqh+V/Nk5/ClNWSP+Y20XszMSvKp4FpO+REI93YmzxCdtywPz8/
y+vB4N9ZvWTu5slY1O/FosyqOourBox0x+G0iL/89LoZ5z+KeFwD5p8UJsvWewAY9GEiAES7AiIm
D7cAgXWVT1fjm94OtyX7s7yqy0UsNbO61IYY34P/x2AS9ap1SdaXZH/N8kShdmAiVYOcYZn2liZk
mSea1VUEEXJHn06zvJ4o8MCAUNvR7I6EQmLFdIeQaTrY1JwfRol1pmQfoMRtpvGuakrCNNYfZmoi
bovNAKku09Yw6uZJDks40zcOkwiwHbCWRb10o48XKxOAPF0XXjidBjIwN3ZrM3DlCzBbimTYwB3d
GKVJvDLIWpTzUsD7GoDkdcR+fxlfqWi6Nl7oKpNj618oCsLGhv+1HvQxnC5Wfdzy7hxcdNlFSkM5
hMMWEGXMnEJ8wmYXwahwLFss42H8LSHaeH6ICDKgr0Y2vijRk52qbgNbPzAtMSc24fqy32Dw/vbi
/ELmMX+qstZgkGSJmySyFnPv4ML4PkyKrzdFUffWgzbXGkPBAKK3S0khtE2GACPthDEybS7oBuMa
msirRSkOQVMwKNhrmzkYsFSQ1U1BzGRYfEtBWS5zqkjAmIqNTmSBAdlblJfgZo3FUfuIVhwqlWJ3
wsUp5NYWLu8+myaS11m+TPGXxbLUH+Ty29MGm4L0WtYG4PIqN79R329E+mar09vXMJmL6bKrKiSu
8qsHUaaQA6DNXkzfKtkcUPWWxO70riiz+n5WQbzAnIF8Tjf5iBA01Q/rcyWSEvpsqf99+Y6MVaO8
+zC/E+NiUcaiyW/WjgiNS6mpYV2h4/g49HlYSoudz0WeKCg9pd3rsKpgAq7rcmcOVB1lgkdteshS
SqqUdzNlajlQSa2pN4bb2zJtr9gUC+OsFrdh9UXNMGYOrD3q5DyL/McaLAEwENuGcg51BIFTmmxA
LMO/5PNMJBQmaqMGWVDirghEGurfZLbG9T+yJE8k76agxabZOPHuCGUtpkyMptkNjuXYjG7DGRXx
QkaHa2UqkFdWzG5LIYKymMlOt8UXkW/rTF3K/iOHqK+go2by5ErcrYtZFq+7yfmDZa9JuqJFkMa/
iXa+mM3XSHrf7Dp+yuP7sshhiX0Btr5OzFvCyEKZWgCVdoWaOH8CtRQV/C//y/I7N4U6oMn1vpp9
mNrlpIP6tocCJkfOtdUVUuo434bURLYgyzO5PGwllDCG/29EpUKWSrTSJcETvGIBdUwCkLj0hm55
hIkUIVs/wgZM717EXy6bBNLEAVV1tDt50wzwfwqnX5ReLKmXTsHetnBiWuYGxHgRlUvi50WYSLVA
GdLoRF6AyeolxSKaNqEbW1Qqoj1AZh212GT7m1z6USDUFDiEFWPTbzCAz5t9HDciFtmD2Gu8EFUV
3one2bVaYeW5UNEBMpG6smweiRgsvfFLy8F67xidJZtlZQoLRZN3kgVTwmJzLculqOX+ynIDbgOv
LVJ3CTCBzH+MdFPyQQIlqBNylJgIPHcHhQTabJSsYFZ1MhhMJngwWOTZHwsxmUPyPID0tb7pmUDs
X0zrSSKmUPYf6v1WVykXI7O1c2BD/CG4oxSUJuy4FFf5Wt8NP7vFj0FoJp0WIhbFSRxFTal2s8jP
i2IOsRhqtaKcfYLp6TXJk+u9dJErLOF0AEYiJSMdOQkKq6TjnB6KLFERikjHbHp4wXqNQrYCuWQS
QAhLmo23NjtHbmKlFretCOuTiRfcfLg8v7q6npyNJ557fn52+W5y9eF2cns1cSfjqw83no8m1/5N
cHVzMQk+XHq3Z1eXk4kq7zRidePKnBhWWIprI8GoaMrFCqmdLVMjdleKRKRtivAhwzjBGnE6krJh
3am3Ca03LEHriGtkK/C9P7stimlUPO4bqyIYxzYJUaIDHW9Ryp16/wHeJOmzXGZmVYPaGuFdqTqR
oy+jy6V4bMh6xWxWSMmpwzWKupK0olifqN2rD3mdTddkL6RXQWqQy+QG9SdYgQTZFNK6XC5bGt3y
YCjBj3mw4mVzZJtU6JPR9XjNRC0sCdWo2ZGUxXikG79fjtu7zPku9guoNCGagVjynANKdCkGBK1m
a/hzU4FqlHRizlLOebzHvFzkkqBlEY3SbgQFdRjRt8hdwBIHqHGKNLrlaZtd/MPUuGWyGIFfPM7j
yayhQhhMFnjXNIvgaj95gi975xBbVEQiWAR22ibCwbqcZx9ytUKcPMigMGf6khKszXsbMaSkW2cO
s9mAQ5ajTAEGsMkRxDtKxFaaQGoKS2VV67MBPFCb/UCgeqpqMZtAXZWL6TbNNqnEEZGwQ4gsMg3/
ofqXol6UCjtSO/wbavPmQGGL3NZ8JCJJEdNXHSdf/2i+SJUSpPbvu1BLURrxRsw2KUzWApvfPASR
Kl02GrMwh3xZdtdPbEMs/yKkq8FaqK2VFe0DU9amEWLOKaw0J6v+k9ldOcnyB1ilyOBI+EoxHQhi
yCDbBNfqscy1esg/zR7oP01g6zsEdkIcQnySdlPdTeoynB+S9RmE7ASzNSGZJ+nOEd1zCpsUW+3C
Zh0p4/vroglvDO8cvT2HrAUFx169BAtGvHNq9gMKpu0zrD9NgWFoIwtqg8uxyt+361mlVJ1idTK3
mHG+MbeoSJ6apZU6xepGyTHDDaV1biGOOsbqaLUx1/cIrW3WHrSD9OX4w835ZpXTLGRfjPqvZdS7
xHYJUmpGaeror37fmc5eM58n+qS9LaPWfZ/VKo/tnNw+h1OSRqCGy3FjTxNVtTVrNYK/x/KP+RD7
cT7Ef7APOd+T6EIiE10lZl/DrJ5U2R2s4w95SfwnBUgSESeJkZ6HeVFNhZCuZqJ1eotfverjw3Vs
iwpHYcwiWGxudljq+6xa1jGDgSI8SYuytVnT7PgOBsmiVCbyZlrkd7p8a2/UqLY3ePoaJFu9pm/1
t60DUMfqejcHJQ5LEj2ahVNYPw4GUoVqERmE0+rAhpJcZL5Z95YHull8sajF49t/tbF+j0RSltd6
BKvdZiMN1qa9FgN1t0znm0NAPitNN/K9F+EcJiEOIUfd/f/Lp3acnNYNQN9xswiIRE26KxIYQdxs
VIxXwqkjcab3IJJICSZRWIkBBICTrneVUMKE0zISt3rKY3kE9GYLxGtdbnPpvR1kP530Tt4u78m5
LrK8OYzmRN58taQjN6cJPul6j4rEhfn/EdcyaPkbeOvNOr4DUd4cxn5YGOY/LgzL+15+ZBhmUMps
a38wuAjLL1l+9x3x2cGwqJvMpSbvJ/GDDDHfuQoRMYk2GgCTh6VIQ80xnc5xmoUJJW2nBnqZ9ObJ
Q1hmobz/VsXDI1Fic3XWBIjGubtGYJQ6ib28ne+dt7xBVvENilLusl3fg982O+LydGTLm4ljdw6J
wFAgtsvwLm6+yb0cxYxB5Fg1NycuTvdQZSZYnh7JffHjboadnS14Ijf77c6sbJw2rL7W6e1xbpbe
a1rBmq8bVM2de9hBJ/+MMou/+PeLf7/499/WvzF6cfAXB39x8L+vg+MXB39x8BcH//s6uPni4C8O
/uLgf18HJy8O/uLgLw7+t3VwpMfLhx58zep7+fiH5dMPdPUzSL1nUyPK6pOBputl+Dg48FQCaIi2
GpqJ4ACojHcb0hgxiBtlstsgRAhxQLZkrRZ5S19KTCSHVO0GZMIfvJjkPl81SKEtDMozsRqx34CR
ZKKXbNMSYTMUKHYsGc9KvicJUtwx2moQJk4JwrIBb8GidmoSmkhJoDraZU9NRYu0RcSMpMKypCSY
Hhth7cPCsWSSzbdorR4goJfpdGcIljoDTyrNQ7MItLTz4i6Lw6nuXX9onrqBTc0vy6JUj6pYPohj
PdTWbuWNHpeLWbR6MAmmmqYNszwsn/SzWXgnqoG2evrE4/rBE7qhb1+k8u6FZz/CpaceYmLo66eY
6G8ChzGLccvwWWAZZDQkxtByAsNznYBzZjqUoLd/7adYbGskPKSmME2p/go8ffmDm1tR1eP7bLZ0
/x4CTZARpYgQYgQ+pwZxAtfgyLUMC/ER4hhzfxgc0sQxqtu4BD2ACzw0TfVXMHz5S5JdTNTjI8sd
cWOETWSQIQ6MoT+yjRHnQ2c4pNShuOvsbLhJ7e4q/RCWliSYomjPEDElMQgSH/ixyAGLw3ToBpbD
DMe2TIPY3DSGgcUNy6SMgNlZPmfPkqm5sAUuMtN9cLEDIcHaB3cu7sL46RBESocYWbZnOBj7BmGM
G8wzwSmozzyKAtfFwXGIDd2jyl/32EIuCN5DblEe7ah1J4UfwG6OHJ+gwDNGgTMC9WJqcCfAYEGu
b2I7QCPPPoR9m/Jh9Nt92vgtRuI9/DajoPno0A/jDgC35bMnRj5gpi4zCHIcwzU9y6A+D5jLXWaZ
oyNKP4542diG6sTpXozATmJydSNYM0HSk28WeS7Ks1w+iEEkw0WeTEXjlZ6JTR7gEURKBpFixDxQ
MXMM37GC4RBT7AfecfM4RrsfqY8DDvmNQVuCJZwcEEzYUKjvBb/FXD78qR1rXNfzPXsIhuM53CA+
Rwbn4Jz+0PLIyA5oMPSfEf/ahNvoQisWe+hCS6CdDPZVRHGjgVT9jmUzr3rP6mMYD+/SXLDLaICR
gYYmMQj2HYP5YOyuzbg/oiOfIemjY1XunZ5nUQmp9fS6eZROsKJZnW6Sigt181OVVdshZqexLVJE
Y7QnElyEqJ60RQoXSVbIG2yn4v3Ife+eX08Xd2e53jP7dp/AcPWZUum9/pCxoekYgYthEjzkGa6L
bMMJhmzoWbbNqb8vlf8IEJcmv+TS/wKrno0tNRw3zWsQR6xur5/WyCeLKzsEb9nIvbrIkMXkIw/k
r0FANML7UiDHHVEy5EPD8nwXBHJ8gzNiGyAURzzgnmvJcLSoSmlIp3JwixWjph3tsmKUmMlORG/M
7xESDrGdvikHNF8AwpChEWL2yODElTollsFsBDg8EoxGyHQCMtzXactEVsQPh5hVq7aNUByAbSXS
FVuw38nnm9E+UjagEj5EO0iQvjEEzOCEyDI4tTCUY9y3CHcD1zK/iRUoHoYJDdsIrUMIHVWR7ChW
Pb7DXdT3RQnLPWm2Jozj1JH1I2bMdgEm9kxQbsCYwZiHDOpihIlFkDvCz3HDfT7Htb3db1uq2NqX
yo6tnSDTulu3Z/c59Jf5vo9t6YKUUG4iSEE2gsASWGA4lucZQ+JwGxLo0A/YN6dgQ/yQCF6rfQu6
I+x96AzvQpcKcD9670cyHDrKdCwHoT7tE2k/iEJFBfr3RzyAJArxkY2gcoHYYZnMgmofsedOh+Jy
fBZUs7YN9qAETJkUeLf38WIso0mW76QfDvFPxvShY1KfUmrYgQt1Fx6C9TOI6dhyTLmkM7mqXY6r
/mou8nfnhzE33TNIXceh7IjDD4kjdiakscb2c/H0HlbzQuWMjAisHxgZGZaSyXGpwSyocoJgOHLZ
0LaH7NsevU//sHz7/Xak+V/erq25jWM5v/NX5FFVp4aZ++VxrrYS+dixbCevAAhIjGnKISUf6/z6
fL24ELMYgKyYlSoXQXNXs90z093f192z2JxqA0++2XTnOn9c/CNj8IfFLjDQLuMW/8wZ0sYpAeFh
6c5FwVQgkMCNZo3zFIDnXeaDFaLtcmCE8yfMQ8/heif+iotT8VfcnLgrOmj7w+J+ffdIy4DISq6K
7NomGHZsWAjeYNwuOxYQfJiwMgtgZmeSuhwGFg/LsU3HPlo8iXDOep7umClpR0ramZK0yHeYIEoy
icl7Hf0Ff4CyIK0JMCKyWC2RLEQ/REAPsMRtkcLlZi5b0tOIYx2ers80cAMNhJg7Mcqcbd8/un7Y
WSB04ZMyiHPkC6SJPFTgHy6x0yR+8xYLx00CT3SV11Jf5MkGjzqzLIM7e+XEAIustJo4DrzHj29/
uI57n2ZCuFZmwkBNZQtwJJloQHZKUUTJAXg1N9Ac63hzzwOQbx4Wv3+8XZ3ZUvv3aUzO7UiOXv7N
IOTf8MVscciJltuHqYP962FVhFPXgU9uugFNcVE9aw4/lJSSxQIIYKPE/lXOhdyeddOHJ4wV6m65
6gUerMKNmgOXcrtNhT983XueyR8Q0uKe6A7BKawKS9FgUUythLQ9KzCR6pUR0pVnF2U/9LNO4VSa
8T85va/XXQ3gzc1yfeIF7z490JuGCFyGbSyizynEGpsC9AwAZlt041WDP4/kGrzyrlwOR0cH4F+s
/UGec/5wd7nXdTkIWDc7KHeUyL9bfKbXcOztTur9NgXSL6pQLkEmQFPgOqAJuJHiQwpRwO4mh7+n
Htvx/vXcyL1sKzuSzU7EDzfT7t0mSgBQf/58uy/uvQGSoRRYaLw6GxgPHpJxuGhA+8R8cBa8uwZn
wpFk5wfshFoLdSrUmrLaJ4h+v3LT6yDpNNUb4fXWzOmTgGSp0WhsDC+KBREpCeahMlxYyDq4pICG
Xwok5087jynnd/b6aT7Qb5dioprlp9+/bm6h4X6uOTyWnLZCbjKU1iyjl1LA2AFbvNKIKLJKJawV
svrhVujH7MVxg1C3XsyDdVkvv3x4//W35acJkUxYCj8hVBWpVDBTZqQCNbZNsyRLZKGY7IRsPGb3
kik+fsIZr3J0R68DWPtAh9Xexj6ub3+7WdyxxeP9vhr8RsmnaaWUYmuNGWcVoUGwJJcNqzW1VmuT
Ust+H58O2Muz1KfybPhqFqG2quzf6gG3rmlSJTzctSSQ6mP1CaghNWGA9FQjTmqZU6k5zSFbSy+Z
2O4x45ntbjlWxVh+kiOZ/njBGgk0EP4JU97EwspMZU1QNo6XxoJqkvlkuMoVk1vMXwxPx3f0osub
gehhMRP9/XrxsPo4ZfmxAlOUmT4pyoTkiwH5jNKB9NgEmqBqYMIJbUuAj9Pm9YLrQZAza7S/3CsZ
lgMl13JPVhtYCb0w/vEzIMreo0jy3hHch2sP5SKip8rZY1WsZzYEb3Ix0DC/egiNP71/AfI7FbrX
eTPak5vFXudd4Lu5f3y8OeBYKffmrhqsKHKgJa4pJlCux/jGSsi1Za2i5uZSQD0adybWaCk2y70X
+nX99bcPD4cAT+hNxeiLx/RnME+mUlEsgi+wKn0VUckIsjMU5XisTghnTt258Urt52b18PX3z5+u
6SsU/NPckBsvrilvDRO8aKa0RRzP8IQlWF+TSqYo0zvB06Gu+oeeOkGzCH6WVX5cr748TNmGXRbI
aCeuhb6WUyoFnEPkIFgNFL8pdMM9N2atwQ4tAuBIX9yk73fDn7Op7dWrXsYwEHzFZ4jtfvvyvCfA
JqbUlU+iCqqqRMq2qRQroz+xmLLXgBtRWX1pd3XD9nKtTnMHZsk3h6WFs9mtyd7QrdgyHRWcytIz
oRNmkXPLQKsT47xg1XmAbO4MbuiH7ORZCj6QRyxnUe7v68+U5JwyMFPZY6o9eSGqJcBYM0Jucpp5
7sHznSlW6qakfVFs2w0+Xt3dxV5ouxgIbVezoPDd4v7Dw6c/1vscGM2ik81kzBTT1VHmRVMNoEaW
FUxOKIto8CIqvx/7TP5rd3Um9SCULd08qfr4+3q9+niNNfv04f62D/fEoeSEMKZP6BN8SklVzaxU
VClrggWeEJt1jbwohD4rXiOT9H6S6seRUJ0tzm/rZ8Cdkn5zI5cbuTXKT8v/Xh1lLcx240ds7xK8
ZtJRBZwDm8L+BLNJciWw99xUMzlyasfjdALc+MHGWYsDj5tCPVj+4sMBuSvPr90Wy6USgoIHYBVu
i6mSgeqkT9j5FvDYVV9N7gU5Ge+qf7AdSKPEzEdtT5IfXJS6FltOCVRmksbSKw84o5SEf3JOMtAL
JapqQvmLIfB43F4uNQjNGw82oU5LiZ+3bwy8jvR/+9cHwuDEFoMJchQ2JOkQo5mJHivYYH7JI3Zn
YZMFXrey1cso5WjwMznAozuOlbH25jSgW7s2Tw6XEqC5c7lYFk3A12fdeEYoVx5BFMQTnEIYcAor
S5HCuyrKGZc7H7SXaVBeoT8Oa7VfYEiP2+n9+X4LcLu5JXYhlGHGRIQFA/IT1USTbZDRlZpce35u
aeQLE0uXZxqcIhTrzcGQ0rv4/on7Bn1tqPxQg4rEd02L4EIyShaFzcwUVxws2tnQ/lIi+OjWP9Yr
DDC+rZOvU8vfrAdqrQ8WefR2wUNVWQvuHEIwa4HDDBMCoLeqMidjBTitpYpxaudpsF6G9an1OW38
LEzs3pG1LxlKa7ZgK8AtKaraew38ojyiApyWpN2LWC2MS6U+xwjO0Je8u3bVS7YaiOvmzYDfrO/X
29eXLO52HpGKt9NGtnwCXRb/KiT6LjEpIG+Eow1JB1DlAg+ReMBsviQ0Dx51pgx9emOvmjMj1Tan
K/F+cX8z+T11ABqhSVeyNIw6JaBNBWmWoAYlNyAPAA1hy0u0eRr9jH0erveyez6QPcxjy+LxkA6U
wl2LaUdbY1pSWjEjgdJVpZqt0IWlmpqJ0CTocimwHAbtJQqjfR3sTKLHzwu4u30xdsrz0+bIxvvK
vQSV0Yi4xOdDC5G5WLyCsFxO2/qsTEfDzqQ6dWTOrW7mUJIKmkfRbVplxLRrQxOWk20W0JEVrREn
ONWKVUwsxyQCJR+818/XVS/Gt+M7rnpZ1wMFNm4/rau//W2xvN1PqA4TdJAiIv5iN1qnYGoaMS05
15jTqmJasTUbn/HEo2H6529O03bOi0Pa7t9+qN88RQJN05WoYKarYM01mi7lqSCoGNfGliIcAMLl
GtTUlPz2+xckIZ6eftXLdzMQWs4t+7svd59vP3/6svp4UqwjrmiuhZq6wPa/UjLAS/iqIFm2CrZD
eYAQHIhkkbAe2cDiX9T0cOHR3baY39arqQZOwJt53m/HON4tqPT9fv3b4p5eRIVrt/cf2pHC10JM
JeztL1PzofUuy8wQCyMcRaJ+AgeQFBETm9LR1MvtKcNHnmmZGN3aabsYYBK3pJ3Yta2+K/GHTitQ
KU/mvEMpOpbCTTBMGirVgFlTLYRga3KBYx2ziZeVwgPO6IArV710g324lG62D5ePN9eH9x/SO3i3
HfTyqFlLFukQLD1LiaBq8fiNG/hHuCUffZS2qWdyLLPxzyVbZrcd6+MHzXjeB7ueMYf/+LJ4+PzP
bfOtuKbJB3uZ3Hwq1sdm4eYRIeGYcmGhAicmHbWSxgbbLk/+09Bj+Z+uX/UybgaCh0M958/Hu8+H
Q2hvxBSRggs6KMusUpn2SYaoTlCjExg4kIvIovehx4N0T1+402qZX/h5MTy3Z8vhLmU8XlcmkubE
tCKLuYATKpOrKdaUZ+bvBeXw4+RBe8H9s5t6zf1ypPm8iPxxffc7bRU1tahq8j2xOqustqxwB99D
WACaakbpHbAJXauyr5H4+BaPHt9EV3plBuzBL/W8G+Aw2FRw+c/bdnswZc4B4qeFNMBq2JWFOZ8N
QQrLggXNL76UmptK1alnqxY09vl6C1296kU1A/kN31PlX/88Yj9aUhjYNpWobJ1PziCg5+ngTmK+
pMK0115FyvF2iZGjDPifIwqEZ+qRIGZvjQ/r3z79sT6uryqySGU09oFwANqUZihgPVE2DYyYnEqE
9GobijEfbyaMHQhj1WazfRHe8p90bIAfJoYSB7B/H6m5NwmAG6Xhkj0HMwcy8I7So1LPMkXdKP3z
nRg8f4eb++LdL7c36097lyqA5ylrpS1QnQqVSUttvIbOEgXjGRbQK5lUSEI+u5Omkc9vpelyL/Vy
IPVK8Mu28C7+nVKcOzNX6lpTgUU04VoEJ7SVzjjwgKDgwROzURaIGxrZ+rwtYOwLtoCrV72oI/nd
zVn5334/0XEY8gQJAwebgjlPoYIb10qKIFSWMjOBK+Yzh5GAEwmdGkjC5RLkNPhY+ulSL/ogy+pX
HtRvsU1yfvNf9O2Xw/awKGEnqhUma4EJpUwm5AXihxeVC2O1EK/ZHjaTpdNjsz7NLAR+cown1n95
Y625NnSEhz4JRqQoFW+BiYmQgYdRajQybsFyRZD46ys2VMV6hprXq1705UAfO8+U/Ly8/Z8vu87d
6UCGJ4+SXRPwYprliuVQaqLjWjCfJC/BRNHCi2ot+9HHEu+vdnLL9Sk2CnJzqE5PDuC77feQHbaU
n6JYTVnZDCSXEcvouEOhKu32RI9U1VVj2ys1UZ8I0euwOUVYQS3UnqX+8d3t4yHFriUcELlODsfN
Hdy4IHcDTxlYQIgBqM7Jc2wlrf+/EpZHAl71OuiBYutDqfibdz/PO9tj5YDSoPxTZgdhssHGgTRq
1MZZboXl5nUW5fDwTmStTnkakPQBZvz0trVZxqClbDyHxyRWyZSD8FED5bqk8F/lScn6ShmDp6d3
Qhs5ENrQ2R935ut29tlNIme5WiUpRVypv9PmxoIAVs3GFd4k5G8vKjo+jf7cYeeZ7OuB7OrQ0/Dn
4uGJ20hOO98YJ2N0VLL3Bei6Cux8Dh4GIuZ15SA6dUZungbpH64GXtyccJtP2FOrO5o0dT11Hm1/
mRKpMDkNUbKiKrOR8CEeEKBmLXzJopkkn92u+d351t78rhd4QEmCCXqcNHn8ev/547o7qUcIxk0g
YPqckkKqJUwpq56AKVVqvUyeCdNC894kx1+/0XVbin1/Kt9pvfZwUz8RwYwmws46dB532en9/nGe
0kOkNi8c+LdGZhNRNErop2o5S0Z7QPVUk3MXc7bHI89EG1ij5esLDW3X379/6m2zdEhpOvLLJ9hj
4E0apW11lFRPBZWJpWpmknbFZlelEa+HF54kObMp349a4cLNerAxbygOu/NvE3lj1C6rHyk9ZIzF
9JPvF3TqkANBNOtqDpXzKvPFFuTjcXvBRsF1TVWzzS4FLE8ywKY1Zw0zNdOhdsx8ovbvVEGTwOBj
Ef7VMsByIPJ6UGQLGzs/T3V7/+uxXe/yLZJT652PhifEWjpvAL/kpQW2ocBkdKuxcQ+n9RoJiLfH
MnTI//7Xq178AU7b7E5RYgLoC1kOJW6vCSeLIoOgfs7MFRWpPOA+oX9YQwNlxiKFNNwTR2P1MgxK
ZmGz8vN2zdXijt7HRN8eP/VXbxarrk0nN6eNDJ455WhyC0KPSoI56YqJxoaq/V/KAx47ypEwZ9zl
6NbjCVjwwaHPhdB25Jn6zmG1Y45CUx6AVscDYXJq33OAOGSxnoWSDcsgjTkkOoMoX9z3/nz/8Mlt
nWIi2IFiywNqm33x2hulwqE1W1cdBeGIrBJ+UDbE8QAIB1BVAhBGHceBfsxenEF+YSFWYp8ielw8
3snrJ7/jtg1rcOROcGY9tdBZH+F2VGXa14ydpYRzs06ibphegEHdayG5nrNT+tne50+//f5ApyFp
pY2dZmbq4SCxuLXA4zC7kugcDDllXwrVNhswTg48vLhUPHvW2ZLx7L6rXonBFlZ83hJ44oJpC+/q
31svr1LOTcbKchONGpSocQtArjSOpc9eiyj/715+d/Gql3I1EN2pQa6MDq48HidelZ7CZDUqBdcq
q9zSAblmWQwZQuuaZZS8pdBeanTTM84b23S5l9/pkfxz7DmAgwCdlPSb8mWqqsYFHTaiqr1yvjGv
DL1kIGvATSirxOvAzcGNM31GW8nfDMD/4/5E0eEMxXQ8CV6fKwfqJDi9hEJUCx8oHOO+2hBiA5d8
lf7G7lDTea5wuKVXc8kHai7VbNl+yvk4xikZuTMlMO1g+4pqR8GkDJeUeDGgDLD9l+w0DDsWGBdm
Yo52183BhdPXi939cR0O0JHsQYgMUwW4aSJT7hI/kq6e2crhnIpuMcxayvthOgmMGzhNqPqUrZgn
K3SyJoElMSonI3YUIqJ4fEnSlhh5NKG8VrJiJLAfTJmhNpruO3t3Ay3u9+c6p4ZtuDenNaW8CFzJ
7MD6hKd+AJktIHOJL2L9h8EvKrHonbi1A8Ht4kAWvnk3+c/5dJvKZVL0EqFGModUEaq1Be4CPyo+
pZb5a033kQCd6M4MNomz+Oy+Vfvd4v7D/k04NO1ud+rHTTHVtyqUQJQXwk/9m5IFeqscwEegOr6T
Rb865T4W6VwXw9MdvdJ2qPQ8TbI/aPHxltZse9SCcwKLdOCHw6UwXitAhLPT2zaInRQVLAjuc5Tq
pY3gOwm+fXv5NMa3bzv9luaUIy6WAR/r4Ste3n6PiMb99rywmdCbkwAPQBZMtSaZMtQ2RLpmlxGW
XbY88mdJ+m7wZ17oMoMVy8XAvy+Xbl9Rib+0qU326VjiVHmDfcN2EHhLpbRP4Jza8h0D061OGkvn
bi/vwV8uv79lRnV7MXoNloPttVzPednb1TGikFRSkeZaUCDWzghBJ+haKpQ6xg9PXXjcAxlpYW19
WQ7z+BFngN3qDJpYiYFP22zMtIeg8bv4Q8z/ftJ27KqLdAbwf4m7st5IbiT9rl+hxwUGKfA+DMwD
T0xjt8ft7rF334w6sroFq6UeHR7P/PqNYFZlJTNZpVqP4H1wS6pMkxEskhFBfvFFRxVexloqOu8g
oFKKe2WNkvDfH3SKP5VwqtqasaWjtGZ8fh7xn/3jun98eJoCTTPEhS4n31EL8Qz3Dhl2nAQ3KYck
ZYIY/ryXfWi0LfXhaS0u3zXEFXYEHT7ttq0MCu6CN+jNOUPxXk7IzithEB2H91s2GjHDzExaqiUQ
q4YEao7gC19e7pHleq/2eCgvB+I2b4SMQbsuUmQEowmshNIB/szg3ihmSAtE0nD2625O7C71S7U6
O9FQZzeCY//+snpE4Nv9OKq6wH0c+Bg+eDy/ARfSMTxHc7BDJok5F5EF3k49nLc3E2Z5urrmdPQd
wsf86eX2+fgFlyua7JBz0HVBCtzsDCbpW/DbDVUiRKuNjbPkmKqZSgLO1g0JuJ1tVxg3fL7bey94
6b73Yjg4hSTBsESKGZmCevBZue58hHFJTHst/O/2YoZntbh81RJ3PTuZXSPN+IhtVrxcbBmp0KmF
MNmhiUDmQAtrOUnwfA2sCsPOHcpOm5yJtIyEwf3XB0/71/jpw+K+E3PSOQOfL0Y8cDIJ00el6JJI
PCiRtXb6j7rvHOWbqrVheqkWfLg9qPVyv6lycxWDQUR4MzWFewjieuMIQoKUtxRssDixQMaG6u5X
u0b3PWmhxYdkdDShmuA9FoOwnAtiOxkwUy9bjnhBxASRZFMyxvDLMg/3jZ/Bic8QIRvYSBpi7+b5
ku77T399eMYC1iOZweBU632GBvjN1BulOwX+Fowmbt+eJxjcIKlT2Ydw0XY56+jE2UL9UqWQaOTx
bUS/nR2+DYKEh/vd7ed98dySPsX3h28HzDa3jjmE7+MGyrlDjoYkO5YhFHIQjuR0/na50c8piobF
i5VeupG1sdHHq/H109cj0qxg3lhwgRDHOsqRwZhAAGBM2YWVjiIqS/WMvmXSRt23XZ6oblZ6fe5O
bYgZ9kBeojW4iuX4r/xW7D1LluHJZgLTyiNMGKuo7bBqATEE5gwNb3evdpTmhAEen1/VOm5ais+h
Xn97fHl6Tr+u7l7K9+Y+TzHYskwj4QziDYXDpEwNejrwmTG3gXgIOHliF0F0Wh2dOOBpvFmrtpIN
1VZ6wZ6xQWr4/36EP/vHqXMJgUpwFgFgHhNdhQsdukwdUVEGkzEcu4hSs+7hZOQ4eafSY9Pgmtrg
cq+ZV//ybkzRKVTOeMNr0QwwlTPeb3Y0gPPJKc2dCxnDscyjZJq7+DZg4Xdnk3jGx5VyfcPdgg9X
s7yFd99/etnfk9lBNztcs0cCIb8n8M04PPOFaKazJEBcbLVnwqhkXsF8jy2fQhjuH8+kXrekntPj
fHu8nc7emw/49+HsgimM61MiBJxHCtsvXqSmwDCLhHZSMQmWRShrxVt8OR9qUaZvlUcz9ZaZGZud
WM0oKpvqDfvhnuusuCEmGibB/uMGnQdksg0ydFKz4K0WybzC9/h7TqNGWc7ovNgMd6Jv6H3EgH9c
gX9xv+lnF/pCUWFYsF1wERPiueo8YbyTVoPj6KLwhLzRhX4twVT4rZBL92wr9gjL4tT94/Z+REZw
OTg1JobApQFzH/D2jaXOcys7AkGiFzp4KfQJF/HYWi2Gki0xxmBuGIUbP44htZh6WQI6ZBCXOUAI
j+zzSkPk4lToIChl1noIseLMnNeNzeRYbizbQvtk6rSSvw50JRCTYEYj7pr4E5dmFhFstMbERrDf
SOJpJYJj8DCIOuK0eAU7fmj7VGrI/nElt2pkRcGH/WH8HraT04VCq40ukEjedUJ4PFeQHOLgCPs7
tZ7wnKNQM/KvSRuzvhtTSPV2tq391woChC8TsizNhiyy4ReM7AKsbWJsYRcHp1IL5DxwXSKCukyF
zUy8netTy3Pq7Hn6Tq11v/Snt5odWWleHu9uxHj0YG6sKNMVXE0IUSFeJRKWDSiJia8mdrCxI8Q3
GhfnfEOTlioRdCNXET7UE56Gb7cQW/58pGrmJV0vREsVbKjUU4xJwAH2AuxIgvF1NLpAqyOliqOh
brAWR7CGOGpMa/22WX07IugFRs+WRphqEuwYhpk8IF+6CejsGpZICuBpmHowpo3UvTeoYrZaz+sT
YKWf+x/fDfZmcNp4uf2gKfhYIhqF2whWkoHo0oPRMYyzmF3UF10t7js4GW0uXz1tbyYv1Lo28lu2
ejtnU96unlfb/rnkkD1tisYDFxGXwzFvsNnBN49EohhrMOTcU+AVJZGpETQ4mS9yVSN0FA8dnVZn
8Vqt1FY1lFpg9apqe3VOlU0xGQ2rCiJTmE1O420HMlKV2ysrHLHm3MnQtOlatF3DOhk+zuzNy7en
I3CG64FniKvkBHjhneAeghsnkcOLiI4SZSTstU5HMV/px3au6r4ak9voES749HTXoDaTNBiEpXUw
dSPCgGF1OUw0E97ESGmUaSbArJ1aBt1Y3ma9PlVxoJHzj0llhDuUAqYbRdNoA9idBF64g69OCX/Z
bdQrd1G13OtNQ+6NWFJS3PWfPn44rJEC+/dBZ2JMRzNe4GhlOm8zbAxCZy4lbNctH/QEygjaPoMt
gqe11JvWlNtsiiMCX81dsUxHaOLI8ucEcSSAE8QZLdfRAoKchAjiiBcdsL0b11wE0xYrUWzjomVr
F/Z9vdr88vKtwn7eyAGWcjOsT2ol9A6DKDSS2eikkEObdNaHDDu+UMZeRErrZz1NB3N4VsvfstQr
nLi0Zpx++mUo3ZYX8FWu93FjCM7FBP6SxAlhFXJH4tGkNC4EqVwMF/GtHPs6xSN9eH5VC92Yymsx
51Qez3MtOMl7MhCVIxI8wmbkce158NY9hLyILk82kqiHiPfk3tg42t2uG+jqXpKVtgvo2CG/DScF
IsjLNfwxhy6Y4INSoiOYec0Dsj9wsEvWw5zVnMIMDP9mDt30jatK4IYx7eVWzQ5G/zJQ39b1XjIX
SLSjO5sLZALCN+Ml+P5eMcuJjtlcxAG8b/xU0nR5WAltW0JbPRrLeLv6fP/whLQP/dMTTqQ62Qz+
78ER9Mhe3wXiIMYWDBxuPGkXttAGkOjnKSvn261FNMuwAFbigkljD37YVTVdBpgGZQPFAckxmAwR
CoTOsPbAX+6wnlgnPeeBE+/cK2y6B4TFa9iA5XuVStvtcifstzt7MMO/fRuXHrjmuPTYkEUA0xpm
RRbIgQeRFbjbVHYKYv5AogyKtZkxx+ZqIXbL7azvCZ2NK0SJ+dNhKAdaX5OYCsTaLsCSh9lKbWep
Y50SyVkszkL5+buq0uZJzslcVSgCkVhDTjrmD/7rmEBVapMI8PgD8jwHh5iDgJVW8OA7MpGijFFY
NpuM/2plT0EXotWvGZ211ebLGAqrgaQw0KSkR/4x8IWjQzZa5GRhnEqLOz5pQ/onTc1EWDKp7oii
DUwt+sTlIqAgUQcq1aSN5sJB4Msx/ZwHDxExRb5K4j04USxZ9epuiA2f3gnx6VUlXcO72xEzh9EW
oxRW355fjud1+8oEiXgF9h3JiShytIOf6T1EltYQHoWLPr/JkeRUgjMo5/0btY5GNnRcjQS3H+4/
z87oqKQelkboVNJIaqtsZwjskhnc58SCsTHyNzqjGzuvRV4tLf6ObudHxtv+6Zfnh29Pk1IZpmRC
l594ms+kT4GRLhu8ps6MdbDHk85Y4qiT4ApIchlZfenocCKCL5zirF+8eFXrsIxodtyOfBW3mxeM
WCcZ9xQWhyyeDLEagqeOCvxOcMlaDl6DZsYpEbBC5uzgatbWVd2lasixYbMBPh5XD0Pktl9v75Gn
e7whJWNuArhahKeM+FVMmUAqK28jOAXKJGOdUCzLy/jrlz2duyOt36y13PCWluNov0xqXBRoSnRB
OEy6dRQCRm60wPliO2ep5VRFTtLsYOalWdUCOmmMryDjbrx6mdA2m4GKAOxkgODZ4GGEwvqtmIDn
8WxCC5k0bM1u1vmxlapz0SiStxN2zhX1Q8SjIFncunL3FWhmBKLRLqaMYBgYB4/kdA7TMEkEe6nU
m989/HCiWNsPVZU2rI291EktgAm4yS/L5Bm5hyZqZn1UsFvTjKUfkkZeUWE6pjKjyFnI/Ouh+Gve
VP1OpQVybC20gA9Plsq6GcAv+EWhIvu/eCl2kk0kIWjwwiEKg11aGvDHIbgkgUnBqGHa/yFoxeFZ
rWcDRoJEgzPa2qGk2EAXPo0vYAdxgqsMviKmcjjiMY5nHUtey5y5gnVxWWbNof1zJc3mpOElXWsh
vWEjxdc+Nry9341rWCBd4nBJFAV1VCpw4AzEykZYLAjMIdYAZyBBjBjPn8YdW61lYqYhE6czme4R
BzOp/EBv2ED3BSGl8CKnLksXB646J2GVC+VgQCEY5OxsWaFpw7VgjfPL3Xq12m2qzebX4hIcWP8H
5D24uBT8I6TjEnbAVBqwaV1yLnAKNjpY8mYTeMghaE/g8uyqVmDd0GpNFuW6nn5xj+vb0SCyPe1h
4R0TVEkJ4ZvWBEmmIF72DBOSaIadFgI5b87HHbPWT5+ZTF6qtWikPu42ZG7lB/boUh0Tfxuo4+me
Or6AXxPlyQhwo7yQA9ePD1l24PJCwK+luKSsywA4P12YEx9f1YI2pvyGH0/G90n/tEEoIEgi2TE8
hM4QfHoBUVX2uktEE7AkyTpv5/mbVWu1JJy3JOEL47N5WKHNMSVREEMaLIuFTpATBS9GKBYGlF20
EPRFSi01r/FRQZOnBg0e1WKKhnO5sTBgqsa+VLXlBp68UlxOJJuQpt5K5M9QEkk6ITJNytEgITQN
Ob25/T9KcwoJ07qH3G1aC3Sr5vmbsDo2WGPgcVvyBYcsEZxWN2LgJY0O41wBbgDGnEFprNwRupSD
TSYKkXR6bY0eOzi5Qo+vVEpsG2yO+OF8XpUQESGix2xHEBDMTCBd8FjaxkoIOZEeN8CsT5pGJHX/
3XHn8KwWddvYSrbbOY/Gpy+rodoy5UO9ZbrPcMnWcG6F6xgSCHEGC9Ij5C07SXP0ysXoLooOhg5O
BATDw5ngu4bgvS5Eo4VXLLz/1GQ4U9pFyvCW2GB8j7e0xpvQQShgsyRKZJfeluFsIkmlQ79aLGwL
u/h611eDX7j1TlJPIzrKeyk7DXENgr8ggERzZBT8AFeABHd+xkybb6szfeNqKitf8kUiP5uYKVBu
sbCw7uPD3af+fosIw0XadQ5MpIDQgYT1nLJWnUNvXgubOTFSe6suRkdXnZ3BSVfvXdVaNFXbFkwe
Zi/m/8Fp2W/nCZRK+iC4hiWL8CeILANOL4KIaY8lWTzhb1Q2eibCTPy+Ib45Zn++mzNs6SRpzAEH
nJQ8WyxQ6WhHU5CUOOGIlG90ODR2Xots+FJkI1ezyVScih8D2mMmb8r/sP+tkCDrGKxCAmrDEQJA
wDDz3AVtSZTEMR4vrzj+Yzjj1vwYrmo510vhrVhNC7h9WD0+9Y9HzNfg0hguHWIDO+WQbdo5BGn4
XKrTCRJTEEb9PxZwmwp9VSvX1Hh72IAPN20VJn7cjWGtFOyOtSaAlcAykwKzX+C3LHUnI3XomlAu
z1ISNVqfCdlYBtauG3QK/U9uclMqsXqjHgpd3ZRCe55BXJ4l+BApIvzAKIhq4B8OfrNGpyJJdfHt
+U/uzOX5T67WwW6WOqzMePPw29cpzwkrIQqNDiERIGFCOt4EHp8hrCMas2AYDL/OM/K2r02WE+xI
NHrfjhxgmz/9aUKLXbxjkZWBnUR2jGi0SM4gVx8iQ4PMMaV9AZK6tkDDQbdkbRpf39rahTe4Z5Y+
cOMtr7wnDNlg+klgnCApCVJPQcDjrIA558BrTCmR+Mr5yqK7E+5h/Vat2KbxnW7k/CD8ff+82u6v
VPaZOAYZok2hpsSalsl1lCK80LLcWQ3fMYxv8oQYw5J6O3jhQZJTtnR4elWr0/ButmJ+bYRn2S+F
ALuUw+bDrkgN3jYjT5BTYl8yXhuGJXY4eDUO7JO+mITl3RkGlndXtXisJfO4jb8vZETH+V6onhll
pdiHIDoiObEDUWFSmaQxGURpyWfTvWql6r8njdXWizkU7kP/iLWgEQQ9JUAQ5doNN6sIexIXNnVG
FBb4gpiBXQC2WpPAnaI6XYRNaXR0Aku+fLFWTJiGYmYeEq0fvoIi+/KtdkjOKjhOqVinItLsa9TK
Ww8hRiIJ3JKUL4MyeuilDbJ5+FrLuqz1bcmO9TOETcvugl29/g+uCipR8XJwKIVKxkaLCZ4l8wRr
xnnTMZjUSpLIWCZ/nH2HB5WuuyW3OXxo5G7Lqgp0RyCA0DdUldrtmFCTsCifLjRJoXPa4L2QQLJ6
Dv7W2QqZXxvTf7c8dLSUbOCn3V+jPdz/erR1ohxieSE8pbCJB6xkY0AYmBOxcykoxpkTUvH5Bdqk
lau6q+UsRRrw2Zb1sf/68Nz/dNv/Y0KVMFweF6RkwdGAgeERUyEEfuNYthMmsbMQqSV/WUy87OaU
zzZ/76qWf7mnQfw7vwtf/TrFrAzqKCzAOJwVZsOYptF02kisX88wrInI8E/B1EjJ5CtR8+tUFtM3
rmphZUuDeRJbyu8KxHgMLkveDehgLOx8upyPQ0hmveWd0CwlxyMDu3nJd3Fouy354elMatOSenOw
Jd9WXydu21ComoeE/kgseVwEoi9Ps+rAEBJJrKQ8zNjpJm3M+l7aXqoUmaHAfr0tHHF5telHCPkB
RD4gwgTzGen6iEf4pcQaZlhz2VJY/tHBP+Giy99DDyc2rv3Tq1paulTB4jGxmIeD+zsIu6/3jdxK
KoXYkUwhkkXsi005Y3UpJrTKMWb5VtSRY/enXYz5LQRqsYx06YqOOexPf7+7fe756GXI4u8RpqzP
FvHXSK8AJt0GA062kEZ6axkPs2vkqplKgPW2MT3W+1O/Ap69/3y7PUaq6FJYNGQK6WI1bm3Og0sB
XlgHRpjlUrRrnpg0baXuvm+s5/WuUeAQz2dWt/d1SqqPHNw0BPZxvICxOeH+Cg5ixiL1Ukth0oWR
2Nj+yXBsfKPWYGeXGmyoOomzKIEdMsbTMk+LqSA3JfuRCB50yBE8NMQ5Zwu/EdApOOGtDgJxuRcH
lqWLM7FleX51lX577h/BT7t+/7A9pvt/evn6Fdr+DlQNq7u7p+uvq21/vf7n9cPzF/gKvj0+gG15
Amv3vHr83Beqvucv4HruH3xXhuh59fTLz+AL/vztdvvdNRs+K8TBP2/g3+f+u2sy/fCpfy61+faf
1x2/1jz595qHPyZawQiU/pDaFr7xpjqUU/t/6/Pqp/fXH/vP1fh+hLe+v7/75zUWbMMnD7vr8Wjv
u+u/PTyv7v4MDuKNeX/92D/dbvv75z9DcH3D/reya+ltEIbB9/wKXyqBNKGSAqOHHqKCEA0pU5vu
cULdqKpqWif1oWr/fnZo96gW0HxMvtjGD5Qg7Cgn9Hsu7E9UIl1X78dDhbodt+YmX5RYj/A46EXK
CYY9lz3sNgfqVotMSIEv1r7HMzjh5GG1HcXhgEuHuH6L8knSlaBRXzp9HPolDBk5QxIFbJZmeTkF
/XSXgoXu85leiIKNvskGPU+zcQYb83pvJR71JUH35ntos2L/N9QPCEqf8LYIM9a3EG5sYsmScwta
TGtql9MU2l/zDmKvr9hkDpNcw7q5VRT1eHmvrxX3eQvUQQ/gFm5VuwSNhxFCLwsvU4DxtKxr6tsK
qBlVg//wiMukKfsBQSNQ4nnM8nT4aEoURTlut6zPBxhOF6izpL+yXCsaI4kp3I7uPkAv18AD3sJY
srkWYwnZQswSuwZh5PmKzQ/Ll1foIDw5coUJVxlthU5boJEXKPaweqYuLcrYzwYN8FAiWVUlQosO
BdBYsUJorkSWdmBDHhPXIp/KNMFYsBPVPRBXnT7qDgMM4ga6mObjMmlXIQwCyd5MfgNdfWVHRrE3
UOycXG+Nf+2EXP+R4LrUooBOz3pR1kBvACPwuP+VD00eGLpFF2B+AWOfUEsDBBQAAgAIALeZCUfA
NJmb4gMAAPUJAAA3ABwAYWNjZXNzaWJpbGl0eS9tZWRpYS1lbWl0cy1vYmplY3QtcmVwbGFjZW1l
bnQtc3RkZXJyLnR4dFVUCQAD2gjIVdoIyFV1eAsAAQT1AQAABBQAAACtlUtz4jgQgO/8Cp+2yFQO
fmEDNZWqrENqyJDHYmZypITUBg1G8soymcyv35afkARmt2ovYKu7v271y45lWfZPxxk4QZj4K+su
jsbju+liPM4U3xMNkdxlPIV+I6jeieZSTJJEKn3RcxuGO1rZAa0Ys9lU6PH4B9c14VqwGPQXKBTP
Nad5RYwkgz9TSbefLiu7yU+gsUbHny56Xgf23BE5AoPQ6vUxnvffWNWYqci1KqgJszk6dEU3RFlU
olIjrbETg/3KBbvo+Z13IKPQSlMu9LL02xu0MuINqH8kC87IwgNZ8EY27PwxklBrvyuDWcg7sicx
VTzTvVFbrnDIRkOrqwoDzAlmodB1rb7fN1d7UlLLiKTprSI7k1fHbotuJ4w2GdOgMgX425KM0YkE
38WPqx9A2/wZ1cVrBgevN0STKsl/tEbfSVo0OtdqPcNeqFUwLKcKy4dwEABUSvRcCIe0/yMAt84L
HXmBN7KeYRVJhYn9srif3QPjZJLCDkyfMM6uGfuWg7pe40G8IUy+zKXU/daoOzMp92r0yg1G4Hfo
lggiLxR8RERrvwls6A4dOBcYF0jQwLCcsoslkkITLkA9YKOYmw5q4Mh3fe8AGG14yozStOTg+DxI
zRNumkKYp9cOWrIurefFLXYbtoJUn8vnOSSfj5SuLi3HKdJaNVIk3zyKxz2oJJUvKAuK9MoEFTRB
eQB+Yn0cfRNHGem0vu37oE7YllbRhog1xLJQFNBt2Ll16Gm3GVGmOFkGgpWYfnmdJ5LneOMnrd5c
GsnDpmz+IMTl2sqrIvWPyhjJbmXFXMOC5FuTlFHLcBKfdYx6RI3avwK5dgeChFhnbVr8XwUUwAwi
xz50nYYxCIOhf8y4kbQwPfhU5gknt2EuFMCtkjujtJBbEMfxlkf8lzEpHzGTJly3c2XjjjrrKit2
WYvpn1WNXwXdKClkkd9jldCR1zli4W8cKcjx3bxxsb5OcFdWi3lSZguTZ5Lkd8AkDM8Dq16+5YLn
m8M2jgjF9znkZZPiAnGbiR1CYtuBdUIT074Bun2oRhXN6pkKBg5zB25nFhcrVdvMJGEmFtxpVSDm
AO/XZ7JYpSZF9YT4Ljgk8AzkK8ddg//z94w5UOB7eCe8hzwna+hPn8qPsRBQthsOa3lSi2+AYlnK
Dqinx3d8b0jd1usD6BeptvhVo2jSgQ6d/2df9ZT5NnNtbII3dgadZ0TTTQPONRuPl0tnPC4E/7uA
ZYbz/wH70uo0GY5dkeolgxS/sh9pX1m4NTy7jcX32fB0LI+ivSdaNaPpO4yuVtWqnRdiJmWGA4K7
VqrdM+YNdf8BUEsDBAoAAAAAAKaZCUcAAAAAAAAAAAAAAAAHABwAY2FudmFzL1VUCQADtwjIVQUJ
yFV1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAppkJRwAAAAAAAAAAAAAAAA4AHABjYW52YXMvcGhp
bGlwL1VUCQADtwjIVQUJyFV1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAppkJRwAAAAAAAAAAAAAA
ABQAHABjYW52YXMvcGhpbGlwL3Rlc3RzL1VUCQADtwjIVQUJyFV1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAppkJR3VJQK3dAwAAGQkAAEIAHABjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFn
ZS5pbmNvbXBsZXRlLmVtcHR5c3JjLWNyYXNoLWxvZy50eHRVVAkAA7cIyFW3CMhVdXgLAAEE9QEA
AAQUAAAAnVZbc6JIFH7nV/A0ZaZSKe4ItZWqLOqOGRVLzeSRaroPCROk2aZxM/9+DzdRk+xm9wWk
zznfd+7tiqtUkPJZzfiTmvAqZ/gUKuX7G1IUGdw8Qvw9lfUr4LmEXN5M4AAZL/b42zcNy7tRlFIy
Xkm/+QFC+Iquqqr2quu2CySxYvV+G/j+/Xzn+4VID0RCwPdFmsGoF7TfRKY8nybogbxSjB7D00Fz
aIuxWMyR1v+Zyg7hLmdbkN+gEmkpU1q2iAFn8HvG6cvX69Zu+gp0K5H465ViDsCO4ZEzYAxK/Aq3
m9GFVQczz0spKlq72R+dUtFnUucOlXppBzutYb+nObtSrCO7oY9dT82yNJdRw6vYg8yxqXUmc/5B
5g4yjSRUPewbwh2/JweypSItpDI+liSJmTdWh8wzwLgx0kp29fix7N1fCy55QLJsJsi+zp03FNZk
NuuzIkEUAvB5gYT2T2g5bc5InMHbenQH99sw/glUIoeudRy2aRqO08rhQLKK9LhvzLe8EhTqWNr8
fznC/kA7uFYfdzPfX5EXYGspfutAKBR1KW+/IKnekjrEi6kXq03DC8xMm766+QXPsibCzpV5/shF
xkYXqu+4ctSYhMtHgYMFojGteY2BF6j3Gd5/JURUs0clOrXYJeo0g2Z8+2K1p5/BtTpc00gs78Tb
b7vlorXaVHl+0gdryFmaP7UyHNZJWhZE0ufpAR0YGM/UaiJ7IDLd+DNERJSI0IziEWmESM6AFNvJ
/0Uqayi3gzIYSS6hJpxWdVJr6xos5zJNfs3SPC2f4aRJAkLxewNlk9263cdduyeuoWmO+oGm7+MX
fVk1sLUzXudMTDTDNk5KXMWis1lwwmpfWMpaR+oDDGmE6xqHEXdsN2qW51jEMdV22/s+vjdvMTZA
IT3AG+ESypI8wWi+bvYhJrPZkNj4zUknngDFVhJYXKObNculzpgaR9YVyL+4eMGlQdFkADol/89c
Rs9l25pL1Qu7GrptyB4YrzDfjyLd96s8/bOCqMB98Q72tTpoMkhIlcmIQYZL8D3tW/UWfTGPvrgW
G3/sS5gf40SrbuZsQjQax+0mw5ZdcF7gfQoCr8s9rpOXWtc+6uoWrpaPdQ88Zdh8RjMdbpIk48T2
HDvW1SgKZpuH1SIM19F8GwV3eIet/ojCh120C6O7aBs+bIKpFq2nm1m4WUazh1Wwm4erKFIM9wRt
jNU1WrTWgQlvN0qpKcb4TNGE5FQRX4rhnWo44NrqqXxbAE2TlCqmdtSj1DGJxlQUB5UQOIvNkqkt
5vkSq6CY+pmyG7tq11YreG218W/FnueK8jdQSwMEFAACAAgAppkJR9m8rhioAwAAwQgAAD8AHABj
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLmVtcHR5c3JjLXN0ZGVy
ci50eHRVVAkAA7cIyFW3CMhVdXgLAAEE9QEAAAQUAAAAnZZNc+I4EIbv/hU+TZGpHPxt7NpKVdaB
HTKAKSCTo0uW2okmxvLKMpv599v+AANJdrN7wWV19/O2Wq02pq7rxqtpuj6QzEn1+00UhvezbRiW
ku+JgkjsSp7D6GDo3oniophkmZDqSrMOjMAEw6MdYz6fFSoMf3LVE24LtgH1DWrJK8Vp1REjweD3
XNCXr9dd3OQV6Eah8NcrzR7AnhWQMzAUSv6KN+vRRVSPmRWVkjVt0jwsnUrRZyJ1KtDpYO2xkwb7
nRfsSnOO6pY59gM9z3mhklZXcweb51LnzOb9g80fbAbJqL7ftYJbcU/2ZEMlL5U2Ph5JlrJgrA+V
Z4D7xp3Wqj+PH4tD+isplIhInk8l2TW1C4aDtZnLDlVRIEsJ+HtBwvgnjJy0ayTN4e159Av3mzj9
CVShhmn0Gq5tW57X2WFP8pocuG/CN6KWFJq9dPX/csT+wDi41h+30zBckhdgKyV/6yEUyuYob76g
qNmJeiRIaZDqj5BGQmJluvJFAgsq8rzdYZ/KrHgUMmejC9d3Ujl63MWLR0nKEmQb2uhagy7Q4DO6
/yqIVPtAJSZ12CV1ksMO2nbvDqtb/QzX6bm2lTnBSbbftot5F7Wui+KkD1ZQMF48dTa8rHe8Komi
z5M9JjAonrk1Qu4gZPvpZ4SIrJDQXsUjaYQkbyClbvZ/SVWD8nuUxUh2iboTtG6K2kQ3sEIonv2a
8oJXz3DSJBGh+L6Gqq1u0+7jvt0z3zIMT//AMwzxjb4sW2yTTNAnkxLDcq2TI65T2cfMBWFNLoyz
LpFmAbc0YqLGy4gztr9qTuA5xLMbyHeOfYHP9VvGGijwPbwxLqCqyBOMZqt2HmIx2wmJjd+u9OY7
oNhKEg/X6u+a41NvTK2j6hLUX0K+4NCgGDKATsX/s5Z10HJdw6f6RVyD7hryAK4UC8MkMcOwLvif
NSQlzot32Nf64MkgI3WuEgY5DsH3vG/0G8zFPubiO2z8cS5xcdwnRvV3ziXEoGnaTTJs2bkQJX5P
QeLncofj5KXxdY++poOj5WPfveAMm89qb4efZdk4cwPPTU09SaLp+mE5j+NVMtsk0S1+w5Z/JPHD
NtnGyW2yiR/W0cRIVpP1NF4vkunDMtrO4mWSaJZ/Qhvj6VodrUvgTnQTpTI0a3zmaEN26ogPzQpO
PTzwXf3UvimB8oxTzTaOfpR6NjGYjuaolhLvYjtkmohZscBT0GzzzNlPfb1vqyW8dt74t2InCu1v
UEsDBAoAAAAAAKKZCUcAAAAAAAAAAAAAAAAMABwAY29tcG9zaXRpbmcvVVQJAAOwCMhVBQnIVXV4
CwABBPUBAAAEFAAAAFBLAwQKAAAAAACRmQlHAAAAAAAAAAAAAAAAFQAcAGNvbXBvc2l0aW5nL2dl
b21ldHJ5L1VUCQADkQjIVQUJyFV1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAzZkJRwKvkgxVQAAA
pu0AADsAHABjb21wb3NpdGluZy9nZW9tZXRyeS9jbGlwcGVkLXZpZGVvLWNvbnRyb2xsZXItY3Jh
c2gtbG9nLnR4dFVUCQADAgnIVY4IyFV1eAsAAQT1AQAABBQAAADsXFlz27iWfh7+Cj7dkjuhDBAg
Cagy6aIoMnG3t7GcpaqrS8UFtHkjkWqScuz76+cA1EJtaTOTmurqth9smQDO+c7B2QBQuC6LWFTV
QF/9xMWsH87nU9H/JKJfs1r+8Yq8FnndH4kHMS3mM/is/0ZMh/+uXYf1/WYw/Jx+LKaLmahOP16d
f7jwT386XdJJy3Amvhbll9OPoqyyIq9O3dPP195YlA8ZYDh9Juf+4zw+XT6vTi/C+Gr83KHaWQK/
szQT5aCTtNoS8kZSG5mv9B787uM+fnWieUUi9NunuVh1+cxsw6Z67zKsswdxAooqpdqu1/r++eef
9d/w79qNqOagjCyaLsdW9/Ccm79rHypR6mejDVMLYU0bhbU4vc1ma04mwpaBmIG4jvkA4wEhfcfh
uoEchLSrsb4NHjSmw8PPOkZ93rf0HiYBoSeAY16UdaszxpqbF/nTrFhU+ocPCgizKXddQgzfRKZh
eaPAcEaeZ7ijoT3Ejm1xy9c0zSvD6l4k+u19KcIExiFdH2XVPKzje/2PhVgA+I3qZ2GWG7Xqqmn+
YyzmNSBYadP/7E2G7mjiep4/Huu98dm7sf/u40mrp1Q+qPRX/+Zycnb50T0/g+6j0Y3sH9Y6ekTL
nygKk0iIVNM+Xug34k5aoX4pwhL6rNoGmmG81TWpqsnk1v98q+/+LIlhxOJUwAdj8yBRH/TfZDf2
6+96aTyell8f9fHFf3tXn/7i3qG50CmLQ6XT8VzE4CmxfpanRTlTDwead+OO359dvtNv/fGtmsN5
UWV1lt+d3oliJury6TSeZvO5SIyHLBGFEQOjsphORdm/r2dTTWtsAixiaSSDwTNNA2356y/hQziO
y2xee0Upmon5r/VMY5QmmKVM6J9uA8VIf6Xbpt5zK3AqKUvVj+fzATHxiYa7EQ4ZsiKh/zL2BoNf
zm4Hg3mZPYBTeqCMbCrG0+KrF1ai6p0AT5MSpPc+irguQAEDcJATzezML6XRUX69VUPzv5ooP4U5
qyV/zG2i92ZiVpRPA9N2yIlGurGPIorsuGF/fn6W14PBv7N6ydzNk7Go34tFmVV1FlcNGOmPw2kR
f/npdTPOfxTxuAbMPylMlq33ADDow0QAiHYEFMYmD7cAgfWWT1fjm94OtyX7s7yqy0UsNbN61IYY
30MAADut6lXrkqwvyf6a5YlC7cBEqgY5wzLvLU3IMk80q6tOnZA7+nSa5fVEgQcGhNqOZnclFFsx
3SFkmg42NeeHUWKdKdkHKHGbabwrJTtMY/1hpibittgMkOoybQ2jbp7EccKZvnGYRIDtgLUs6qUb
fbxYmQAk6rrwwuk0kJG5sVubgStfgNlSJMMG7sbc4WkSrwyyFuW8FPB7DUDyOmK/v4yvon9DCFkb
L3SV2bH1L1QFYWPD/1oP+hhOF6s+bnl3Di667CKloRzCYQuIMmZOIT5hs5NgDhO2WMbD+FtCtPH8
EBFkQF+NbHxRoic7Zd0Gtr6HHiMrjG3C9WW/weD97cX5hUiy0J8KmRUHgyRL3CSRxZh7Bw/G92FS
fL0pirq3HrR51hgKBhC9XUoKoW0yBBhpJ4yUpFzQDcY1NJFXi1IcgqZgULDXNnMwYKkgq5uCeMSw
+JaCslzmVJGAMRUbncgKA7K3KC/BzRqLo/YRrThUKsXuhMu0IkpauLz7bJpIXmf5MsVfFstaf5DL
T08bbArSa1kbgMur3PxGfb4R6ZutTm9fw2QupsuuqpC4yq8eRJlCDoA2ezF9q2RzQNVbErvTu6LM
6vtZBfECcwbyOR3lcwRN9cP6XImkhD5b6n9fviNj1SjvPszvxLhYlLFo8pu1I0LjUmpqWFfoOD4O
fR6W0mKhSMwTBaWntHsdVhVMwHVd7syBqqNM8KhND1lKSZXybqZsCQcqqTX1xnB7W6btFZtiYZzV
4jasvqgZxsyBxUednGeR/1iDJQAGYttQzqGOIMKUJhsQy/Av+TwTCYWJ2qhBFpS4KwKRhvo3ma1x
/Y8syRPJuylosWk2Trw7QlmLKROjaXaD4yCb0W04oyJeyOhwrUwF8sqK2W0pRFAWM9nptvgi8m2d
qUfZf+QQ9RF01EyeXIq7dTHL4nU3OX+w7jVJV7QI0vg30c4Xs/kaSe+bXcdPeXxfFjmssS/A1teJ
eUsYWShTC6DSrlAT50+glqKC/+V/sIZzU6gDmlzvq9mHqV1OOqhveyhgcuRcW10hpY7zbUhNZAuy
PJPLw1ZCCWP4/0ZUKmSpRCtdEjzBKxZQxyQAiUtv6JhHEEPI1o+wAdO7F/GXyyaBNHFAVR3tTt40
A/yfwukXpRdL6qVbsBfENi1zA2K8iMol8fMiTKRaoAxpdCIfwGT1kmIRTZvQjS0qFdEeILOOWmyy
/V0u/RgQJKI0DGHF2PQbDODvzT6OGxGL7EHsNV6IqgrvRO/sWq2w8lyo6ACZSD1ZNo9EDJbe+CUk
Cr13jM6SzbIyhYWiyTvJEloxi821LJeilhssyx24Dby2SN0lwAQy/zHSTckHCZSgTsi5iBB47g4K
CbTZKFnBrOpkMJhM8GCwyLM/FmIyh+R5AOlrfdMzgdi/mNaTREyh7D/U+62uUi64RmvnwIb4Q3BH
KRKasONSXOVrfTf87BY/BqGZdFuIJMQWwK+p5Bb5eVHMIRZDrVaUs08wPUsuCNbx6SJXYMLpAFMi
RSMdWTkUlknHWT0UWaJCFJGe2fTwgvUihWxFcskkgBiWNFtvbXZOmqYstbhtRVifTLzg5sPl+dXV
9eRsPPHc8/Ozy3eTqw+3k9uriTsZX3248Xw0ufZvgqubi0nw4dK7Pbu6nExUfacRqxtX5sSwxFJc
GwlGRVMvVkhtbZkasbtSJCJtU4Q/Mo4TrBGnIylbQMXaJrTesgStI66Rrcj3/uy2KKZR8bhvrYpg
DMvAECU60PEWpdyr9x/glyR9lsvUrIpQWyO8K1UncvRleLkUjw1Zr5jNCik5dbhGUVeSVhTrE7V9
9SGvs+ma7IV0K8gNcp3coP4ES5Agm0Jel+tlS6NbLgw1+DEXVrxsjmyTCn0yuh6vmaiVJaEaNTuS
shiPdOO3y3F7nznfxX4BpSaEMxBLnnRAjS7FgKjV7A3/3pSgGiWdmLOUcx7vMS8XuSRoWUSjtBtB
QR1G9C1yF7DGAWqcIo1uedpmH/8wNW6ZLEbgF4/zeDJrqBAGkwXeNc0ieNpPnuDD3knEFhWRCBaB
nbaJcLAu59nHXO0Qx+I0hTnTl5Rgcd7biCEl3Tp1mM0GHNIcZQowgE2OIN5RIrbSBHJTWCqrWh8O
4IHa7QcC1VNVi9kECqtcTLdptkkljoiEHUJkkXn4D9W/FPWiVNiR2uLfUJs3Jwpb5LbmIxFJipi+
6jj5+kfzQaqUILWB34VaitKIN2K2SWGyFtj85imIVOmy0ZiFOSTMsrt+Yhti+RchXQ0WQ22trGgf
mLI2jRBzTmGpOVn1n8zuykmWP8AyRQZHwleK6UAQQwbZJrhWj2Wu1UP+afZA/2kCW/80ge3vENgJ
cQgBWTpKdTepy3B+SNZnELITzNaEZGFAdw4ln1PJpdhqV3Lr1BDfXxdNPGd457DxOWQtqLD2CkSM
bbxzTvgDKsTtU7s/zfmwMkYWFEOXY1Ww3K5nlVJ1btfJ3GLG+cbcoiJ5ahaT6tyuGyXHDDeU1smU
OOrgrqPVxlzfI7S2WWfQzkqX4w8355t1XbN0fzHqv5ZR7xLbJUipGaWpo7/6bWc6e818nuiT9kaU
Wuj+rpa1bOes+jmckjQCNVyOG3uaqDK1WZwS/D2Wf8yH2I/zIf6DfYh9T6ILiUx0lZh9DbN6UmV3
eTg95CXxn1RcSUScJEZ6HuZFNRVCupqJ1uktfvWqjw8X7i0qHIUxi2B1vdlTqu+zalm4DQaK8CQt
ytb2VLPHPRgki1KZyJtpkd/p8ld7a0q1vcHT12qXpvmZvtXfto58Havr+yuJhViS6NEsnMKCeTCQ
KlSr5iCcVge20OSq+s26tzzCzuKLRS0e3/6rjfV7JJKyvNYjWN43W4ewGO+1GKj3gzq/DgPyWWm6
ke+9COcwCXEIOeru/18+dYLhtF55+o7XY0AkatJdkcAI4mZnZrwSTr0EwPQeRBIpwSQKKzGAAHDS
9T2axMLCaRmJWz3lsTz0erMF4rUu9/X03g6yn056J2+XbyFdF1neHL9zIl83W9KR2/EEn3R9K0fi
wvz/iGsZtPwNvPXuJN+BKF+HYz8sDPMfF4blmz4/MgxzKGW2tT8YXITllyy/+4747GBYxU7mUpP3
k/hBhpjvXIWImEQbDYDJw1KkoeaYTuc4zcKEkrZTA71MevPkISyzUL5yrOLhkSixeTprAkTj3F0j
cIhRYi9fYHznLd8JVnyDopTbitf34LfN7rw8D9ryZuLYnUMiMBSI7TK8i5tPcvNKMWMQOVbNzRmT
0z1UURvL8zJ5EHDczbDDt88ciDzesDuzsnHasPpap7fHuVl6r2kFa75uUDXvKmIHnfwzyiyMXhz8
xcFfHPzv6+D4xcFfHPzFwf++Dm6+OPiLg784+N/XwcmLg784+IuD/30dnL44+IuDvzj439bBkR4v
L3r4mtX38sqL5Y0Puvrmp96zqRFl9clA0/UyfBwcuIkBGqKthuZHwNyU8W5DGiMGcaNM9hq4w5Fk
kmStFnkfA5Y3MkBD1W5A2LQVCMl9vmqQQlu2SFMTqxH7DRhJJnrJNi0hk7RMLnHpJd+XRHHHqN2Q
UBpaJpeyY7zVEFmpHdmJlASWP7vsqalokbaI2IlSkydMNtBjI6x9WDiWTLL5lrpWdyboZTrdGSK/
JyPf9y3NQ7MItLTz4i6Lw6nuXX9obhpxNL8si1LdzrG8e2Q90tZu5Ysel4tZtLqLBVNN04ZZHpZP
+tksvBPVQFtduPG4vmtDN/Tth6l8e+HZt9b01L0thr6+uEV/EziMWYxbhs8CyyCjITGGlhMYnusE
nDPToQS9/Wtf3NHWSILCfTXBQzAG/RU4+vIrRreiqsf32Wzp/T0EmiAjShEhxAh8Tg3iBK7BkWsZ
FuIjxDHm/jA4pIljVLdxYXwAF8Ywf/orGL787swuJurxkeWOuDHCJjLIEAfG0B/ZxojzoTMcUupQ
3HV2NtykdneVfghLWxLB43hPEhELlqbxga/HHLA4TIduYDnMcGzLNIjNTWMYWNywTMoImJ3lc/Ys
mZoHbXAppWwPXGpxBAFhH9y5uAvjp0MQKR1iZNme4WDsG4QxbjDPBKegPvMoClwXB8chNnSPKn/d
Ywu5Q/cNN00iuqPWnQx+ALs5cnyCAs8YBc4I1IupwZ0AgwW5vontAI08+xD2bcqH0W/3aeHHCFvW
Ln74sUHz0aGvAh4AbsvbNkY+YKYuMwhyHMM1PcugPg+Yy11mmaMjSj+OeNnYhgoJy9mDatrEVi+C
NRMkPflmkeeiPMvl1RMiGS7yZCoar/RMbPIAjyBSMogUI+aBiplj+I4VDIeYYj/wjpvHMdr9SP05
4JDfGLQtWIgOCJYSqNP3gt9iLu+7asca1/V8zx6C4XgON4jPkcE5OKc/tDwysgMaDP1nxL824TY6
Khx7Dx0VjO1ksK8iihsNpOqLO5t51XtWH8N4+C3NBbuMBhgZaGgSg2DfMZgPxu7ajPsjOvIZkj46
VtXe6XkWlZBaT6+by4OCFc3qdJNUXCibn6qs2g4xO41tkayIR3siwUMI6klbpHCRZIV8wXYq3o/c
9+759XRxd5brPbNv9wkMV39TKr3XHzI2NB0jcDFMgoc8w3WRbTjBkA09y7Y59fel8h8B4tLkl1z6
X2DRs7GlhuOmeQ3iiNXt9dOW8plEhdiWoa0emizamUr3YnQTJqLIPxPo/u58VMrvs+o93DdpnzAY
D5/6UmxwSYcgigwbuRAAsOcY3IR6xER2wE3PoX7Avy32QVbHhDvYeSmhrB5t4sDStiVh85CZMZPX
WMgv+MDkEa6wO+6IkiEfGpbnuzBljm9wRmwDpo0jHnDPtWTAXVSldJVTObjFilHTjnZZMUrMZCdn
NQ72CCmV2E7flAOaDwBhyNAIMXtkcOJKqyGWwWwEODwSjEbIdAIy3FdfywlWxA8H0VWrto1QHIBt
JTLYtGC/k5fW0T5SVq5KGojnUAL4xhAwQ5hBlsGphaHg5L5FuBu4lvlNrEDxMExo2EZoHULoUFlz
7ShWXcniLur7ooT1rHRME8Zx6sgKGTNmuwATeyYoN2DMYMxDBnUh6xGLgMXi5wSafT7Htb3db1uq
2NqXyo6tHd9rvY/cs/tc+hpUNH1syyBDCeUmgiRrIwidgQWGY3meMSQOt6FEGPoB++YUbIgfEsFr
tW9Bd4S9D53hXehSAe5H7/1IBnxHmY68dqIPMUPaD6JQM4L+/REPoEyADMBGUJtBdLRMZsF6BrHn
ToficnwWVLO2DfagBEyZFHi39/FiLONllu8kWA4RXmatoWNSn1Jq2IELlSUe/i9v17bcRo5k3/UV
++iICXBxvzzi6vWEe+xttXfnlZeirW1Z8lKytz1fv5lFslioAinGtGIiOiw1q4TKBJCZ52QmirD7
LUQtpgxXzHDuenR2fuo/fOse3r5vy7y//Q6C83lRJuq4ljrdZEH2u3GNpOBudXd/9/wTfTj+ncQV
SQIYkhWJqF4n4yWxCnBcKSF5G7QO9rJFz8dv6ze/b6LNdq7N0oBHqo7q/rr8vwiD75aH6IC7jGr4
M6NQGyMYCA+WboxnRDiEQVRJUigNDhiLibSxQrhdBs47fcI0/gzXK/HXlM3FX2N388Rd4dnpj8uH
7v6pD6ULlN2hXesAhu0LLAQtYNwGoygEH8I0jwxYgVFBXA4Dy92qbdO+jhYnEc5Zz+mOiZK6paSe
KImLfA8ThFk01nuv0SfwASgLtDwAUPLEZ400EqIfREALcJDqxJmJRV22pNOIbR1O1ycamIYGyORr
J4apwf1LZbvdwQJBF9orA3EOfQFXnroMCI9y2GkcfrMaFo6qAEzYZJpTvsqTNR51Zlkad9bKsQYW
WUvRszjwHr+++7jwR5+mnFsI1WOgIqKmynLCCmBXITCiRAeIPBYgctrQYl4GIG93y29f7tZnttTx
HSm9cxvJUcu/bYT8Pv1TLQ460XS363v0fw6rwoxYONq76QJoirJsSTHwj+CcE58AAmiPqVNhjIvl
RTc9PKGtUHXLTS1wYxU2Ygpc0t0+17/7efQ8vT9ApEUtEjqEU7AqJHgFi6JyRi5hSQITyVYoxk16
cVGOQ7/oFObStP9kfl+tu2jAm82qm3nB+8cdvj0KwaXbxyL82YdYpYMDPR0Asz26saKAP/foGqyw
Jl0OR6N3Glyt/SDPOX94uFzrumoErM0Byo0qFffLZ3yzytHugDwdtikg/SQSZkt4AGgKuA7QBLiR
ZF1wnoHd9Q7/SD324/37uZFr2da6JZvuqS3cjLt3nwoCgPrp+e5YvXwDSAaTfK7QbLQj1FmQjIKL
BmgfiHVGZ0ezM8qNJDs/YCVUx8RcqE5sG4j+uHL9Kz7xvNgbZuXezPEnAsmUvZKwMSxLGohICmAe
IoILc1E6EwSg4WuB5PRp5zHl9M5aP0kb+klzdL/rx28/t3eg4XGuKXgs3m+FWLhLpWiC7xkBYwfY
YoWEiMIzF0xrxrNtboV6zFoc0wh13XIarFO3+v759ufX1WOPSHosBf+CUJmFlIGZEsUFUGNdJAk8
eeKSiobxQn0010zx+AlnvMrojlqHpW3psD7a2Jfu7utmeU+WTw/HcvcbwU/TiknTUgpRRgtEg8CS
TFQk51BKzoVzyet9PB+wlmcl5/Js6XoSofaqHF/UAm5d4qRy8HALjiDV+mwDoIZQmAKkJwpyUk2M
CMVICrKVcM3EVo9pz2x1y1gVpSmfqYIfXrBGBA2If1yfN9FgZSqTwjDfSFMhThRObFBUxAyTm9Sf
DE/jO2rR+aYhultORL/tlrv1l76OASvQR5n+J0YZF2xSQD49N0B6dACaILIjzDCpkwMfJ9XrBddB
kDNrdLxcK+lWDSU7fiSrBVgJfgvA0zNAlKNH4ei9PXAfKi0o5yF6ihgtrIq2RDtnVUwKNIyvHkL9
b7dXIL+50LXO29ae3C6POh8C3+bh6Wkz4FjOj+YuCliRp4CWqMSYgLkeZQtJLuYSpfCSqksBdTTu
RKzWUmxXRy/0e/fz6+fdEOARvQnvbbIw/RGYJxEhCeKBL5DMbWZecA9kpynKeKxKCKPm7lxZIY5z
s979/Pb8uMDvxbCnuUE3nkwRVivCaJJESA1xPIInTE7bHERQSajaCc6HuqkfOneCaunsJG/+1K2/
7/pswyELpKRhCyYXvE+lAOdg0TGSHcZvDN3gngvRWsEOTQzAkby4SW8Pw5+zqf3Vm1pG1xB8TSeI
7WH/QsQTYGN96soGlhnWjTxm20TwmeBHxIdoJcANL7S8tLuqYWu51vPcgVrR7bC04GwOa3I0dM32
TEc4IyK3hMkAs0ipJkCrA6E0wapTB7KZM7ihHrKSZ8VoQx42LRD8rXvGJGefgekLO311zTKWNQLG
HCHkBiOJpRZ4vlFJc1kE11fFtsPg7dU9XKyF1suG0Ho9CQq/LB8+7x5/dMccGM6i4UVFmCkis8HM
i8QaQPYkCjA5JjREg6uo/HHsM/mvw9WJ1I1QtjLTpOrTt65bf1nAmj1+frirwz1yKN4jDHmoxzgb
QhBZEs0F1gILI44GiM0ye5oEhD7NXiOTdNtL9WtLqMoWp7fVM2DmpF9t+GrL90b5uPqf9ShrofYb
38P2Ts5Kwg3W+ClgU7A/RnTgVDDYe6avmYyc2nicSoCNbWycjg08rg/1wPKXnwfkLixdmD2WC8k5
AR6AZHBbRKQIqI7bADtfAzw22WYVa0Fm493UD9YNaQSb+Kj9WfnBRYkF23NKQGUqSFh6YQHOCMHB
PxnDCdALwbIoTNiLIXA8bi2XaITmrQU2IebF0uf9SyAXHv/v+EZIMDi2x2AMHYV2gRuI0UR5CytY
wPyChdgdmQ4a8LrmJV9GKaPBz+QAR3dUymy365kymukBW719/3H3+BmG/Lo8ZLQnhQDpCohXMonZ
cyzZAdjSwJeLgthgmQD4W16nEHBGlLE6Wm/m+ETrTp3iB+ZzYxVBYJdJxPE2ykIjIBNhARMAjwaK
xBRQJM1T4syazNKZCDIdtJapUS3CD5vF9e/gF572u+XTwx6vV1sFyRITiijlIcop4HJe9KxfO+5N
ysGUl7cKjnxhn+DliQZzwKWtGvxCeO9vT1TeyYXCakp2wiN9V8UDteOwOzzTkahkkgEHZbQrfyqv
Pbr1R7eGAdq3VfJVatlN11CrGxzM6P2XQ5FcMmoMIApSHAWvEiCeWy0yMdxnwNo5ZdbOVJ0Gq2Xo
5s7ESDVtJjm81OxYAeVa7bGjAy8rsM3CSoBjwkKQAx/McfcC9GDKhJRfIjhn2Fg8XLupJVs3xMVS
dCXu2+6h279vZnl/cPBYi+43sqY9htTwVy7g991xBvJ6iBsuSAfMP4HDC9TBbF6DNBqPOlNVn99Y
q2ZUS7XtfCVulw+b3o2LATeBEzQpckWwtQW0yYU4DkwnxQJACnAT0+kabU6jn7HP4Xotu6UN2d00
VC6fhuwmZ2bB9i0rSpUgpCCKA+kQGUvQTCYScijKgyZOpktxchi0lsi19rXTE4menpfg7o4hpS9b
4OaIytpMLQdmJgFAYHrCFeeJ8ckKEJbyfluflWk07ESquSMzZr2ZImOsz46Cdb/KEKIXCicsBl0g
wlGSpIQ4QbH0LXwg0QfmMJdirXy5THwxXI/vuKll7RoKbM1xWtd/+QsEx+OESteHaM48wAnYjdoI
MDUJMS0YU4iRIsO0wtYsdEJ7R8PUz9/Os5DGsiEL+deP+e0pEkicroD1P5kZKabgdAmL9U1BqFQ6
JWYA71wuqfVd5O8+XJFTOT39ppZv0xCaTy37l+/3z3fPj9/XX2a1R6S+asFE37Z3/BVzG5aDr3Kc
RC3AdjCt4ZwBXpw4WA8vVoirejguPLraFtPbajVFwwlYNU1jHgjU+yVW8m+7r8sHfHMYXLt7+FxG
Ci8Y6yvy+1/6blFtTeSRQCz04CgCtkcYAEkeYmIR0qt8udum+cgzwK91a6XtsoFJzAp3YtVn/D75
j5VWwAz7hr0DSpE+JaqcIlxh5alAULcOE6ElGEdhHaPyl5WCB5zRAa7c1NI19uGKm8k+XD1tFsML
K/Et0fsjD3zUe8YTNxAsLQkBoWqy8BtV4B/BLVlvPddFvJAymox/Lnc0uW2sjzWbuY+3Dg+sVETo
P78vd8//2HdLswVOPpCx3s2HpK0vGtw8REhwTDERhywiSC8FV9rpcnnyT0O35T9dv6ll3DYEd0N5
6o+n++fh0OAb1kckZ5x0QhMtRMR9EkFUw7Bvy9EAyIVFVvvQ8SDV05dmXvyzSzut7cfyYnXfhAiP
l5mwICkSR098TEBxhYpZJa3SC/N3RXV/nAspV9w/uanW3K5amk9r4l+6+2+4VUTfUyzR9/hstNBS
k0QN+B7EAqCpJJitAjYhcxb6NfI4/wGPbt+EV2plGuzBruS0uWEYrK8f/fdduRtMmVIA8f1CKsBq
sCsTMTYqhBSaOJ0dSTalHIsI2YgXizA49vnyEV69qUVVDfkVPVLl3/8YsR/JMQzse2RE1MYGoyCg
x/6kVSA2hUSklVZ4TFlXeZ5RQv+PFgWCZ8qWIOpojbvu6+OPblwuFmiRQknYBwwbrDFrkoD1eF4k
YMRgRECkl0tTjOl4E2F0Qxgtttv9mwtX/8BzHnSYGEwcgP1bj73KgQG4ERJcsqXAzAEZWIPZXi4n
ia9qlPr5hjWef8DNdS3yv/CLmY8ulQGexySc1IDqhMuEa+xKVnj4yylLYAGt4EG4wPiLO6kf+fxW
6i/XUq8aUq8ZvWwL7/3fMGN7MHMhFhLrRawwUzxwQp3xUAp1EBQs8MSohAbEDRrp/LItwNgXbAGu
3tSituQ3m7Pyv/vQ03Ew5B4SOgpsCsy5DxVUmZKCB0KlMTPjqCA2UjAS4ERMhgIk4XJFtR+8LX1/
qRa9kTS2awvUb7nP2b79O35Ba7PbzXOwE1ES4TmBCYWIJmQZxA/LMmVKS8Zes9ttIkulx3Y9r0jB
h9MlePdhSAs97oAy2gXH3dP/7FvFmJEBWxE5HhqTyRJwB4EEC2CCl+Jz8NcA8uox55ZidEutSiOn
Ax8ORdL1/Wb97Xv38PnuYXBpAIgWyvZ5EeUD9oFHJ4D6OiDmNlADSC9SGxyVXIkXY3q8Jp86F2Oi
xTzVA483k4NwPv/bG63VQuEhOPyJuC54LmhxhPUMGYgxpt49oZozwxyHT1+xYc/nM7mSfFOLvmro
o6epq0+ru//9fugM7480WXTx0RQGYUWSmME+hOjzI5LB0nCanPKsuKtqecfR2xIfr1Zy824OVh3f
Dhn63iP/sv/uwsHGbQ8rcohCR4DWEcAF5uYTdgHsz8RxkU1W+pVy83Mhah22c8jrxFIcLeLHL3dP
QwlHcogIGMsoRFJqIK4y9P8QuhwBcyjAcmKwFLaSlP+qDPJIwJtaB9lQrBOn8smnacHEZwrcRql9
qg1wSwFnBdAve6mMppppql6rYPKpIbIUc+IM1GbAfb+9K2WSwikhKkshhCHNJ8KA8F4C7TBBwH+Z
BsHzK6VwTk+vhFa8IbTCs2XmzDd0HdPNyJZj1oJjzj5j/7COhTgG5CEqk2jhIH+5qqh9Gv2l1wVM
ZO8asoshHPyx3J3IJqe485Uy3HuDLSEWwljJDHY+BWIMzNjKTIF55gnbPA1SP1w0vLiakc1H2FPr
+0MYcn2eAX/pM9tgchJEiQK7GBQHH2IBk+UomU2RFRX4Px2P9tdqgRsc0Skn21msp58Pz1+66qwr
QkrTo7L+Z5+lEyXAlJJskSlgJ4DlwRKmiivWqmDo6zdS70v9t3P55v0Aw031RDjVmgg96QB7OpQL
jvvHWMzXodo0USAk2RMdkDNjhSVkTUlQ0gJ3CjkYczGJPh55IlrDGjXtLjRMLj7cnnonNR6C6w/N
0x6HKvAmBfPo0nOs1wO39ClLooI0SUeTuWKvhxdOkpzZlLetVku36Robc4Nx2Jx/Hc8bJQ5lFo/5
OqU0TD/6foanWikgiKJNji5Tmnm82OI+HrcWrBVcu44dN8pfP/JZSl6VYrQiKkd8LQTMfMDjBSED
by0q+sTsq6XkeUPkroGQ3VZPz+vdPfw+tutDAoxTbO20XtEAsRbPs4BfslwDtsHApGTJvlALTus1
MkLvxjJU+P/h95ta/AZO2x5O6cIE4FcaDT0HViJOZok7hv3CkQqsGlrgX0jHwBqKEQEWyYXmnhiN
VcvQqGG67dpO24HXy3t8odmnJ3wNw3O32y7XVRtYLEYq7iwxwuDkJgg9IjBigFUpr7TL0v6pxOzY
UbaEOeMuW7eOJ2BJG4eKl0zqlmeqO9PFgcoziYkZXB0LCJNie6gBiIMWa4lLUZEILD66gGdc+dXn
Kl7uT5/dVinGnG4othpQ2+S7Gt8I4YbWf5mlZ4gjIjJK1Mga6gDCAahKDhBGbseBesxanEbCZ8nW
7Jize1o+3fPFye+YfUMkOHLDKNEWWzS19eB2RCbS5gg7SzBjJp1q1TC1AI1C5JJTOWWn+G+5jY9f
v+3wtC2utNL9zPRNNSgW1RrwOJhdCnjOCp2yTQmLzQUwTnTUXV27nzzrbA1/ct9NrURjCws6bTmd
uWDcwoeGhL2XFyHGwn0msbCCDXDYGAhALhUKSx+tZJ7/817+cPGmlnLdEN2IRvISD0Y9jTPhQvZh
MisRnCmZZKrxAGbRxLsIQsscuee0BFeuNbr+GeeNrb9cy29kS/4p9mzAQQCdmIXtE5gii0IZHmbD
NgphbCFWKHyJRZQAN0FZwV4HbjZunOjT2kp20wD/T8cTa8MZnf74G3h9KgxQJ0bxNS4sa/CBzBBq
s3bOF+CSr9I/Wx2aO88VhltqNVe0oeZKTJbttxjHMU5wT41KjkgDti+wmOdUiOCSAk0KKAPY/jU7
DYZtCwwXJmK2dtdmcOH4BX33PxZugI5oD4xFMFUAN4VFTCbDP0FmS3Sm4JySLN5NjizUw1QSKD6H
KEul9vDg7ftfu4dNt+t25f5x+XxKWKQsokoZj6BiwqIImKMoJOE0B8ACxrMX6v6XEhYnsDh5/vGV
A5OPa31MIwjA0p2yL7Nu1aBVANZHsF8BYmFCYg3TmQLXyXvqlUuvlXxpLYBtbAGFfVrV15YfBlo+
HM9B9wccwF0bKTGFh2CRRwMslllsOOFRAwVI/qosxv8Td2XNcdxI+p2/Yh83YgIM3McjTpsx9li2
1tp9m+hTZlgitaSomZhfv5mo7upCFbrZ4WF4HyySXWUgEw3khcwvx8EvMrFqlZLWHcL1anR+vvuh
6oP5cqtMeRAIK1aQZhcymB5Sgx0J/l6yIZRI32q5JwQ0pBvV2SRGw0/brPnq4eMRGwuX3Ryq5Ey1
EWzJTDCwWhizNUGYE4c4k2BMOUwUMTzJNw8hTEk6lyZzeqNlWneZnod9joVJv93jdzaUJlGKxi8W
yFEQkYRmPPlGV3Qa9LaScBoc9tdcxGsLJw4UfH93uXrp+7sZf+sOf2YMjnz37tdDitSPuycYYZG2
7lgGVwtMIkRBxBIFEASlRFIobNeYJDXuKul/muiaTdqnquFsrZbe/KpCse26YE93P4HtQe2AHKCq
nW04mHlgA4KsLpwIhRl3+C1GE8GAMlFTT18NpxwGfwXaaWYArlcdTbxem+NlpP9Qaob5qUC5XlqD
5AKpACZSyhigc5RigY4hBdSO4UpjBf7l0/XhMpLTLCjRktFysO4cnPVu7kHfbaa2H8fLL65uGZpM
0ijGsJa2hIRBfvjHYgIrtWDDSqZ1vi7aPJ3ijAm+OWP3bVhHWu/3qu4h4PgH/87Hvy4y9k02HquB
CdOYx+CYJMGD66s1nA9ntYL//qT7limFU9bWnC9N2jUX88jRX3dP693T4/M0R7uAB+9LDoQ5i0fe
I9aWV2DQlpiVyqW4y/7QcdA+1cenLbli3yFXuvEq+Hm/7dVSCR+DRbvbW4Y3qFKRoKXFxFK8iXTJ
ylm62WSklgK56lCg58mv8beXBwT0P7A9Xp+oAaQyWKlSNJ4khtiALIP+0ybCnwUMUc0t7eVfddyy
dpoz0qV9qWVnLzvs7Me88v99WT1hzujpZt3UTDkP1lOIASNtYOx7jhFPDxIyK6y+SjyKfhHyfLwZ
Mcs4+Fqw0SqKv5T3L/dfT19wvUwrHvFVPYlKorCzCNfhwMOyTMuYnLEuzcrkmmEaCgRfdygQbiau
0MP7+Omg/TBd4qAFBZi7NMOyJIa12ZIF8C6EISHBumRugpHhD9tnw7OWXLHqkbuexdDX2FFhLAvQ
ol5BWqXRXOceNyBYXKDTHJzlrMCmt3AqLL8UPp8OOSNpGbMAR80cLYlv6f27xc00olMIDtZsShga
tBkLyZUkWYKvpGUxxps/62Z6pG/K1oabJVvw4fbI1svDpqnS1xwWESsDmK0oZAUsdU8xm04Hx0AH
yzMHZByonX6170y/o71CiwGWAlWooXjjyEUWQlJHVMSa3eIEptpiOh3NLmdrrbiuBvkw+IUSi1ky
1QYESYfs/bxy2v/0/m+PX+/3E1iTwV0wh+Im8AhYsNoQDfYWrCaK7yAyLG5UzOsSYrxKXM4mOhMF
al9qGJKdit6N3G1nYdKBkPj4sL//eGgUXisPxSFMeix3EM5zj5UvKECF8IjWkhXhBZw8D45WyZfz
ADrznANrWbzY8GU6BU8bc0piWD9/PiVp1nRRHn2k1HPCBKK1U3BtrK1SWJskk3bMzICcJmO0c7tl
7HuzMutLt5+DN3TIgafGgKlYA7X1t6rveXYcY9AZVKtIsGGcZg7cTTB3LIU9w+Lb3YCeqDmjgMfn
Ny2Pmx7j8xS9/3p6ef6av60+vdTvzX+cli+ouo2kt5iqKz2WZxvg04PNjGVBNIArLTK/KpmqN9GZ
UFznzZa1leqwtjILHJ0NtsH47yf4EwGgT8YlOCrRO8ydDFjyLn0kaDIRqpOKtqA7dhW4bjvDWZ94
8k7Dx6aDOrfB495iMH9/N1a3Vdh6vIt3qAa4LgVvogmLYHwKxgrxsaA7VkRS3Aif3ibP/u5i/dv4
uGFu1zG34MPVrOTn7qf3L4cbTTfw5oaEiERpzoHCN+MxOg/eDHE0gl/sTODS6mxfKZcYRz6XEXp4
PKN63aN6DpT15el+untv3+Hfx6gM1+jX50wpGI8MxC9eeefIsQCLEaW5As0itXPyLb6cdy0p07fq
oxl7y6KmzV6uZmC1XfYGeXhAPaxmiE2WK9D/KKDLkNTvoopEGR6DMzLbV5Bf/0icbaTlAs8LYbiX
uw7fp/KJX1ZgXzxsdrPUC6mZtDw6En1CaAyhSaBcEOUMGI4+yUDpG6VetBRMid9KtTTPtvKQC1uN
un/cP4w5LEINRo1NMQplQd1HvCflmQThFMGWGUGaGJQ0Z0zE02gtGVr1yBiduWEVbsO4hsxh1XJ1
6LBbgip4FYGdNjTmeHsdCTil3LkALlaaqfN2sBkdS8GyrQBwtq3I+tsAXAQ+CRYDo9TEn3g0i0yg
ow3WBIP+RjhfpzCNCYNBzFNv5CtlF8exz1VVHR43dOtOQSF8uDuu3+N2El2oAPtoAskcPJEyYFxB
CfCDE8h35gIVpSSpZzCAkzFmc3e2kN65mVj7YQUOwm8T2DzDhwLM4Rf07CKcbWpd7TMARqWRiH7i
SaaS+cIQX0S+nenT0nMuqj59p+V6t7Snt4af8Klenj7dyjH0YG+drNsVTE1wUcFfpQqODTCJNeM2
ERDsmIydrE9z5LHJSA0JplPmCx+aCcTJl3vwLf9+Am0XtdI1Jsc0CFQWGPokYAAHCXokw/p6lnxk
TUipgTdpB2zJkbxDjh4rwr9sVl9OxSeS19h7gq2mQI+hmykidk6wEY1dyzPNESwN2y7GdJB29g5o
1NYYOt+Fjx/vH369G/TNYLSJeq/DcgypejQaxQh2zQLvMoDSsVzwVHwyV10DHCY4620uXz2vbyYv
tLx2SsO2ZjvHVd+uvq62u6+1/PJ5UzkeUMmEGsK80RUP3zze56KvwRF9U4NVlGVhVrLoVbnKVE0w
UTpOdJ6dxWstU1vdYWqRVdk0Fm3LEV1O2Ro4VeCZwm7yBm87EJuu3ss56amzlyJD06Fb0vYd7WTF
uLM3L1+eTylOwgyIY0JnL8EKJ1IEcG68QjQ/Kgmj2iqQtd4kOT/pp3Fu2rk6m9uaMbHz+flTB+RQ
sWgxgZDA1k2YsA2ny2ONpgw2JcaSyjMCZuO0NJjO8bbr9bneIx24DKzHpMIjFbDdGKpGF0HvZLDC
PXx1WobrbqNeuYtq6V5vOnRv5BLN5dPu/S/vjmekFmiEaAq1lrCCFzhGWxJcAcEgTRFKgbju2aBn
8sFg7AtZYPC0pXrT23KbTTVE4Kv5VDXTKYl0xPv0knoawQgSnNWLdglOTsZc74QXHSDere8egumI
DSmuc9GydQv9vl5tfn/50mTp3qohgeh2OJ/MKZgdFlEaxIEyWSOaPiUuxAISX2rrroKnDrOZpos5
PGvp72nqFW5c1mLPP/8+tKksi0RjYQ5+Y4zepwz2ksIN4TSiyGJoUlkfo9I+xaugik5znUOUPz6/
aYnubOW1nKOrj/FcB0byAUdHl4RQryCMAp69ANZ6AJcX6wCySzSZweM9Kxs7od3tupMHv1N0Zdwi
ye9YGoqbAnP9a4LBqfw02hii1pJQBC0QEYFTBOglF2DPGsFgB8Z/s/x0+sZNQ3BHme7UVs8Co98P
INht56ciJGJUGeJKTQbhWKKpwPYPmjtBTSr2KjTww+Dn8Abqw5bo7dJP2RkzAIh890OupZynHIcc
mdcBQ2y0oDMdJXE6OATioSawEgp/m8StYeJTxtbwd0O66623M6OeT/erjw+Pzwj2snt+xjPQVjTC
/z3YsAFbcJBIPXAkucRUNEekq2AhNIV5XdTlcVsS7dKjASGywM85ZKTsm8ZUQ+4M4wOwCS0p2gLO
FXj9IDbA1CfY9pGoIBAhMXj/CiT4Me3ltbSG5XsNS9vtUojvtnt3tCD++WWUGuBVoNTgQ6kKnEjY
0EUikCc4heApMEW0CGCsJxU178P7jsO1ROyXkni3o2y2ruDglvfHpRywyW3mOlLnSARpBQeNOeKY
50TL7B12mGLi8jVbHfMscG5p2qwBSbxDJxuLVP91qtKrDZYkOCsRweqjx3SJiO2iMGafuMxJpSQd
n23Gf/VK9GAK2ZvXjnbmavPb6MXrAWk1sqxVQNRBMOOTR0htRGLigimHyor260YmQ81IWBbf76lm
ncRtNOfrHUZNdx7woLOxRkgPPrtA0AkRAzjzDEF3aQhg//Hs9KuCHAc+L8Tx6U1DXccw3VM7z9Wu
+jSuvnx9OYUaD+1VMg0aTBOEJGPYaAJM5BDAKXaWiiR9CuVNoqlTCi6k0h/eaHm0qsPjakTpfvfw
cRZeZIoFOBqR6GwQmVs7YilIyQKWf+bRupTEG4UXx8lbkldLY2XPtvNo93b3/PvXxy/Pk34/tpbb
1594EcFVyJFTUizesBfOCch4SqyjnnkFVoyi13XcqBMdgzn4wrnGG4sXb1oels7YXrgRpeZ+84LO
9gRng8HhUNUIo86A30eYxO8Ej6wTYPAYbr2WERsZz2Jus7Fu2il1h44Nny3wKdI+LJHffr5/wGYD
4+UuHQtgwEqkIhdMKsa6HASwCy6BPaNtts5LzYu6rgnHcqZL17vtmy2XG9Hjclztl0mjnppVk3yU
Hiu7PQNfV1gjcb844h1zgukkaJ7FlF66rXlgks76SjpK49XLBHveDngXoCcj+P0W4yga22xjlWfA
sIqRKhsQzX42+WmUZnLZ6fS5l26OEPdzwiiWqhZpvbaLrHAKjjRJuWAeD6xDQEhKj7W+NIG+1PrN
r01+PtNx8uem1eResaXRuteLnAoU8sten1YdsioNdyFpkNasYP+abBBNWFrCdeEMkUp5eD2K8Jo1
1b7TcIHIegsu4MOz/f5uh7wd/KKQkcNfonZsKjbRGA04EOBAgpRWFlwJ8Itp5EpyZrkJf0qi5fCs
5bOTAYPwojOw6qEv4tDzYOoagQTxUugCtiLWC3kaMATBCc/BqFKEhnNxXfnWcfxLfRnnnQ/2li5j
43vLR2C/g1t7/7Afz7BEkNThfitJ5pnSYMBZcPOtdNi3XYCvAcZABvc2XQ4knkZtaeK2Q5NgM5oe
MIVn0r6G3fIB5A+8YRlkyaQobCmNCJVewSmX2sOCgh8r+MXeaNOBW8I6odf9erXabxph862aBMfW
JUM5BJi4DOwjBOGTbkgHtaDTSPY+CgY6Ojr6Zht4KOzob+D67KZlYN3hak0XPQeff/dP6/tRIfID
2GlFG5RMKwXumzEUoeXA1Q8cq95YAUkLjlywl/2O2ejnwz2Tl1ouOvW1+w2da/kBM762+MXfhv4X
7ND/oubtZiaylWBGBakGhK8QiyJg8mrujJLX9KYacuXPdxfGxzctoZ0tvxGnoP4BWYJ1UCskzbR4
jvHzAs5nkOBVlWBIpoaCJsnOBzcvEm5GaykRokeJWCifzeMKdY6t1ajo0mBvPzSCvKypbpRhd1NF
kgOnLzHmmH0NhQ6GPLdo8KglU3aMy42DBdNt2k7TIHNAx6wdMmV2GXttOIUgLVohNC94pll7FhW4
prHkN9f/J2rOJfH0rlD3m94B3ep5kTCcjg02Snna1qLUocAFt9WtHNCIk0c/V4IZgD5n1AbbD0WS
S3TZJimzya+d0dMEZ0/o6ZWGiW0HwxU/nO+r6iJiduuppBYIBDUTKYkI6wYeBLicCIodYddnwxK2
cvjDfufwrCV12xEl2+0crOX9b6uhZTwTQ9N4dijOKc4K4aQnHFGqBIcDGTBbr3jFSgrap3QVpN5h
gjMOwfBwRvi+Q/jOVHjhiiYYf3zfxTXUxifG8YLbon+PF8w22EjAFXBFUS2Lz2+LazihpOFht1oc
bAdSfL3fNYtfETXPAs5jYlcIShEDfg3mrYEDierIavgBpgCN/vKOmQ7fZ2f6xs2UVrFEiUUQQDlj
oF7AYXfwp8dP72u9bqe2v0Quc8Ssh4xN6YrRxKM1b6QrglplgtNXJ3Y3k11I8W7eu2m56LK2remE
WK1X/ge35W47rx3UKkQpDBxZzNwCzzLi9qKY7B2wr1Sgr4ARX1/V2pIwI3/XId+eSnLv5jBuJiuW
SsQFp7X4GbvsekZYjopRLz1V6o2CQ+PkLclWLEm2ajXbTNWo+DWiPubqtv4Ph98q9LlJ0WmEnbcC
sxcoKGZRSDSOJkU9F8leCxABk1wwa36NNy2d6yXxTq6mXSjfrZ6ed0+ndLXBpLFCeUxrJNojxrz3
mF8SSm2xKWnKUVr9/9iFckr0Tctcl+PtUQAfLwmbdP5RGsNZqWlHztkIWgJ75Uos3IHfijJEJebR
NGFCXcS96ow+I7JzDJxbdzA7dh/85JJXYQtaM3Tru63dQgMHv7wosCFywswJq8GrgX8E2M0GjYqs
9NUX/x/8hXv/D77lwW2WPKzsePPwz89TMB1eXRSWPGZzAIUZQbgzWHyWckINFvBwWH5TZgiBn7tQ
OjiR7My+HWupN3/5ywQMv1rHsmgLkkQRTg1qJG8REBKTWqMqKedD26G2o0jHQHd0bTtf39q5hTV4
wJM/AjAub+snuPig+mnkgiLyDeKbgcPjnYQ958FqzDnT9Ep8ZTHdGfOwfatlbNP5TjdqHgj/cfd1
tT1cqRyKiCziwtuKf4qNebMnjGFmpOOFOAPfMaxvDpRay7N+u8zIIyXndOnw9KZlp2PdbOX82ghj
2S8V9h7tSi4GqcgsXpQjGJXXIBg0GJfYlQUbawmwajzoJ3M10s/dBZifu5uWPN6jeRTjP1bEq9N+
rwDvnPHa4kdSRJWmzgOpsKlsNljHoo0Ss+3ejNLMv6Od07aT8yy+d7snbGiP+dtTVApZr91QWCWQ
SUK6TKysvR9qsg9IARC1NoM5xUy+Kq2mM9GZNPjliy1j0nYYs3OXaP34GRg59KB2Q11ZTUFVmhOd
sLmGQa6CC+BiZJrBLMnluizMALP084MeP7e0rvdLWvd8N0sO6uld0Kv/8Z9C14RKLWrgUEmdrUsO
a1Nr0Qw2vgyWcNjUWtHEeaF/nn6HBw2v+2VHA/jQqv2WN200T4kA0twy1DHBYC1Qxs6ipmJxReKN
xXshiS0qBNhbF9v8fu5s//0y6OgY3cBPd7hGe3z4dtJ1sgaxgpSBMRDiEftXWSAG9kQiPkfNBfdS
aTG/QJuMctNOtdylCP4/E1m/7D4/ft19uN/9Y4LyMFwe1yTPmgIECkYkrOKQ+I1j72HYxN6Bp5bD
dT7xcppzNtv8vZuW/qVMA/93fhe++jbNWRnY0dhFdogVFsu5YckSY5VDyxrdmoR9PRioGqW4esVr
fh2FY/rGTUus6nEwr7/L5a5mR4/OZS0ZAh6sA8lnanwcXDIXnCDS8Jy9SBz05jXfxXHsPuXHpzOq
bY/qzVGXfFl9nphtNenAiZjRHkm1BI2C9xVY0QQUIVXUKSbiDAJxMsZs7qXuZVrTWQLbt/sKRFhW
m92Y/X7Mfx+S2SQPBTEhacDMUYWdC7FxvGNw/JOHf+JVl7/HGc4Irv9r7Vp6E4eB8N2/wpeVgrSN
8nASjMQh5IFoSFlB2u6eokBSisqjS4K6/fc746SUUAKtdn1AEH/MjN8zjj1T5ZK6tOrHInDcJmbH
5mD1DoLL5cEgdHhleo57pfgqWLJ49oV7vo8x5TRmmb7r+sb/8k+6Z9+sYhy/hcBSfLR01UTdX7/P
fy8XRabvtQwR+kFRNJP3fI5Hx9EzBCzp3GmDks2MttHjXNOdo9fINTI1Aabpie4xrXb9xLnf9XyR
vluqqFJwXMhM9Els4dRm90ClAC3sChZhzReh+o7vVB1SqbPPTozn6cOJsKa4P5Ms1vXbtD1XBzUN
D/bp+AKG+x7Or6Ag+txCT94Ga3uftMT29BvNsT2iXoIH/rEEM9VsPGchDDsMS6CKfiqWCkUWFzcV
pjuW47ugoeERbZ/DNwVDJtusxy2H4ZHiTxuWgsUZ21LkE+L9KbIt6Gk03KTvngomu9UKaHegqE6y
XOZ0laQZnb7STfEITfC83cDaksNqVyTbeSb8QRaPoHpWGR1RRUWSP8WgC8bPi7RD9fKZ8E4dz+Cz
yDpUOXyYZ4WIyFk9rzO+RF75N/Lw46BUUAOCH/pPhhY/xQ9Uff2LRSJ3IR1n81r9jgE1Wi9fKXr7
wpzNA91v7XVotCmSZVdjmmyFdJvlizRbF11gDb8lQ/3WovkL3u5O482uiEG23VqEIweOaVdVuayE
EuPfWuR+uyjQJTIQQQH2pMFU6NMXyCyydVe1ZDOUkOqelabK7VDS6oy6SiAp8KjGTNb7Em8DK0rG
Xn8wuqHRrx8ebUh3g3F0aw9J9z01Qats4vTpQkzvZ5NmKgFCc7EfWv4jPw1VGUJxC28NMFH7DQmD
rgXErfwcw7BGTz+lj4Bj2qwNdU7KuE8XEgNLKKigEtQ4qGxZ2moAmyx4+/oGpdCfkjRF58AUJMOL
7Act0iLXE3o9iOi8DGgM+NkmPa49VRPynobWhYI6AOhXhQjEtSlq4xM6AqOwoXztgIT2cDhyLjWv
Cn30DSoleDSs1YjWNaAKOvH2lUbJnMI4aoSqAC3322l/OBk2SwDqCAvIJLKdgPZv7bHbDDVMWQ3J
pEhmT5f6Ali6VggTRCwKZkfeOQFkIyT32RT7TSiq+gwUKiuOXTuyLwigMVlD6CC0+94FrKFBa8Xx
cHATeC50m+aEV0yQauT9jC5VAIOZBqC3NwNn5J4XwWDQBCsxH1EM0NeMtGCCC0k1GazKrtCYTCjW
FyakaBTZQ3qxZWWrX0K/U+isu7w2dMohU46ANscmoIT8BVBLAwQUAAIACACPmQlHWn41HeEDAAD1
CQAAOAAcAGNvbXBvc2l0aW5nL2dlb21ldHJ5L2NsaXBwZWQtdmlkZW8tY29udHJvbGxlci1zdGRl
cnIudHh0VVQJAAOOCMhVjgjIVXV4CwABBPUBAAAEFAAAAK2VS2/bOBDH7/kUOi2cIgdJlvUwigBZ
JUGdOo+13OZoUOQoZiOTWopymn76HeppJ7G7C+zFljgzv/lzOBw5lmXZPx07I6Gdeal1k8TT6c1s
OZ0Wim+JhlhuCp7DqDM070RzKa6yTCp9euJ2jDT1bJ82jPl8JvR0+oPrlnAhWAL6C1SKl5rTsiHG
ksGfuaTPn86auKufQBONiT+dnox7MKFuRPbAILR6vU8WozdRLWYmSq0qamR2S7up6Jooi0p06qwt
9spgv3LBTk+8YVsBiQIrz7nQqzrvyWSw0Qn19mz+EVuwY/Pf2MLB5pOMWttNLWYpb8iWJFTxQp9E
/XFFDotCazgVBlgTrEKl27P6fttt7UFJLWOS59eKbExdHbujBFHGaFcxDapQgL89yQQdKPBNcp/+
ANrXz7guXwvYeb0kmjRF/qMP+k7yqvO5UE9z7IXWBWU5rawgBB+gcaLHJOzS/g8Bbi3AsSeE+uPI
eoQ0lgoL+2V5O78FxslVDhswfcI4u2DsWwnq4gkXkjVh8mUhpR71QcOaKfm4RXvjLAJvQPdEEGWl
4CMiRnudsCgNHTgmjAskaGB4nHLQEkuhCReg7rBRzE4nLdCdpN54Bxivec6M06zm4PW5k5pn3DSF
ME+vA7RmnVmPy2vsNmwFqT7XzwvIPu85nZ9ZjlPlrWusSLm+F/dbUFkuX9DmV/m5EeX3ogLwMutj
9Z2OWums3e17UQdi66h4TcQTJLJSFDBtMKR16OG0BVHmcIoCBKsxo3o7D6QscccPWr3ZNJLD7tgm
EOBw7e3NIY32jjGWw8hKuIYlKZ9NUaKeQTKPDYz2ihq3fwVy7QEEGbGOxvT4vyqogBlEiX3oOh0j
sP3Q22dcSlqZHnyo64Q3t2MuFcC1khvjtJTPIPb11kv8lwmpH7GSRq47pLJxRh1NVVSboseMjrom
r4KulRSyKm/xlDDReEjEgt8kUlDiu3nj4ukiw1nZDOarulpYPFMkbwBmQXAc2PTyNRe8XO+2cUwo
vi+grJsUB4jb31g7tG3fOuCJZV8Dfb5rriqGdXcKxr47cYewpEpVGzOXhBktONMaIWYB9zdiskpz
U6LmhtiQZoT4YwP5ynHW4P/iPWMBFPgW3hlvoSzJE4xmD/XHWAio2w0va73Smi+B4rHUHRC2WcmE
htTts96BfpHqGb9qFEMG0G7y/5wranNFkNrYBG/iDLosiKbrDlxqNp2uVs50Wgn+dwWrAu//B+wz
a/BkeO2qXK8Y5PiV/cj73MKpMbZ7Lcxj4WEt96LfJ0Z1H0829gGjmklcibmUBV4QnLVSbR6xbuj7
D1BLAwQUAAIACACRmQlHRUBoO+AAAABMAwAAOwAcAGNvbXBvc2l0aW5nL2dlb21ldHJ5L29iamVj
dC1jbGlwLXJlY3RzLWFzc2VydGlvbi1zdGRlcnIudHh0VVQJAAORCMhVkQjIVXV4CwABBPUBAAAE
FAAAAO2RMU/DMBCFZ/orbgSpcRKbQuKVMlSAAFGJATE4zjU9YZ8jxwbx7wmIDUaQGJje8vSd7n2y
qldF1RRVC3Wra6mVEseqARu8MOPoUNxjd0FJ3Lg8EAslxRqf0YXRI6cHpWSjT7HqHuE8xhDBBdMT
D1BeUhdNfC03nDAyJngHFBueyttM9mlLHuGTOX5EeRbmKqepvDL2+u5LTQP081nkw59nL0GerI40
cIApUzKdQyBvBoRdyNwLgDX1sCPu9eLgN17zxu6LsIQuJ3iJYR7QRLunhDbliAv5raX239KfsvQG
UEsDBAoAAAAAAI+ZCUcAAAAAAAAAAAAAAAAUABwAY29tcG9zaXRpbmcvcmVnaW9ucy9VVAkAA40I
yFUFCchVdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAM2ZCUfLmAUADEAAAET6AAA6ABwAY29tcG9z
aXRpbmcvcmVnaW9ucy92aWRlby1pbi1vdmVyZmxvdy1yZWdpb24tY3Jhc2gtbG9nLnR4dFVUCQAD
AgnIVY0IyFV1eAsAAQT1AQAABBQAAADsXFlz27iTf15+Cj5NyUkoEwR4gJXNFEWRiWZ8rSUnqZqa
UvEAbf4jkRqScuz99NsAKYm6PGY2D1Nj+8GWCaD7142+AEK4KvKIlaUtr36ifN4PFosZ639h4e9p
xf+4eVaxrOoP2T2b5Ys5fJb/wBpFf0pXQXW3GQw/p5/z2XLOytPPl2c3597pm9OGTlIEc/Y9L76d
fmZFmeZZeeqcfr1yx6y4TwHD6TM59x8W0WnzvDw9D6LL8XOHSqMYfqdJygq7k7RSA3kjqaFqb+Ue
/O6jPnp7Irl5zOTJ44Ktuny1DMUgcu8iqNJ7dgKKKrjartb6/vXXX+U/QIPXrFyAMtJw1owt7+A5
1f6UbkpWyKPhhqmuIkkaBhU7naTzNSdNRbqiWopKZURthGxs9YlBZUU1VVW6HMvb4EFjMjz8KiO1
T/u63EPYx+QEcCzyomp1Rkhysjx7nOfLUr65EUAsg1DHwVjxNFVTdHfoK+bQdRVnODAGyDR0qnuS
JLlFUN6xWJ7cFSyIYZwqy8O0XARVdCf/tWRLAL9R/TxIM6USXSXJe4jYogIEK216X93pwBlOHdf1
xmO5Nx59HHsfP5+0enLlg0p/964vpqOLz87ZCLoPh9e8f1DJ6oPa/IRhEIeMJZL0+Vy+ZrfcCuUL
FhTQZ9VmS4ryQZa4qqbTifd1Iu/+NMSQasRJBB+U9gMGH+Q/eDfr9z/lQnk4Lb4/yOPz/3Yvv/zD
vUNyoFMaBUKn4wWLwFMieZQleTEXD23JvXbGn0YXH+WJN56IOVzkZVql2e1pUavz9D6NWa7AjOb3
rEhm+XelbunfVfOZJNUmAQbR2IhtP9My1C13/S24D8ZRkS4qNy9YPS//tZ5opMaxGSUWk79MfMFI
fisbmtxzSvApLkrZjxYLG2voRELdCAeM6CGTfxu7tv3baGLbiyK9B590QRfpjI1BYjcoWdk7AZ4a
warc+8yiKi/6dzb4x4mkdeaXkPAov96qof5fzJOXwJRVnD+iBpZ7czbPi0dbM0x8IuFu7CNkqUZU
sz87G2WVbf8nrRrmThaPWfWJLYu0rNKorMFwdxzM8ujbm3f1OO+BReMKML8RmHRD7gFg0IemAiDS
FZCq0WALEBhv8Xg5vu7tcGvYj7KyKpYR18zqURtidAf+H4FJVKvWhqzHyf6eZrFAbcJEigY+wzzt
NSakayeS3lWEMKCmPJulWTUV4IEBJoYpGR0JaaoekR1CmmYiTTJ/GiWrMyXjACVqWBLtqqYgSCL5
fi4mYpJvBnB1aYaE1G6elOgxteSNw8QMbAesZVk1bvT5fGUCkKer3A1mM58H5tpuDQtc+RzMlqg8
bKBuzOM4iaOVQVasWBQMfq8BcF5H7Pe38WX4Hwgha+OFrjw5tv6FoiCobfiX9aDPwWy56uMUt2fg
ok0XLg2hEA5bQIQxUwLxCWmdBDMTzWBNPIyeEqKN56eIwAP6amTtixw93qnqNrDlffTMgKSNqdz0
s+1Pk/OzcxangTdjPCnadpzGThzzWsy5hQfjuyDOv1/nedVbD9o8qw0FAYjeLiWB0NAsFTCSThhJ
gCkjG4xraCwrlwU7BE3AIGCvbeZgwFxBeifmepJYiD2loDTjOZXFYEz5Rie8wIDszYoLcLPa4ohx
RCsm4UoxOuHSwoTgFi73Lp3FnNcoa1L8Rd6U+nbGPz1usAlI73htAC4vcvN78fmaJe+3On14B5O5
nDVdRSFxmV02dQ20GcvZByGbCarektiZ3eZFWt3NS4gXiFogn9lRvhASv3xYnyuRhNCjRv/78h0Z
K0a5d0F2y8b5sohYnd/0HRFqlxJTY3WFjqLj0BdBwS12sWBZLKD0hHavgrKECbiqip05EHWUBh61
6cFLKa5S2s2UI82ESmpNvTbc3pZpu/mmWBinFZsE5Tcxw8gyYe1RxWdp6D1UYAmAARsGlHNqNxAh
S0i8AdGEf87nmUgITNRGDbygRF0RsCSQn2S2xvU/vCSPOe+6oEWaVjvx7ghhLRpPjJrWDU5MDIts
wxnm0ZJHhythKpBXVswmBWN+kc95p0n+jWXbOhOP0v/lQ8RH0FE9eXwl7lT5PI3W3fj8wbJXw13R
QmHyNNrFcr5YI+k92XX8mEV3RZ7BEvscbH2dmLeE4YUy0QEq6Qo1YH8DNRBeuO+A/P9xVcC6bjRf
zIQLEhPC9/Z4AGbyCe+WUXAYBzBkjWvIIhA95ln8MLzBYwXLqU3/ptMXiK+s+GWngF9mZXqbsVie
5dltnY2POW63hIMTk0KY34NxlgdxbaPzeVpxKXpPAzKwtlFkPVo4jyVAmfubUvJRUFFIE8MSoKCf
bcNfUa/WVN1ZKhJ0jQwyBH/cOyLA7kIIqncBFhznENWmXOSzb3VUI8UY/Z0aBdJDeBCPfjvKA/fQ
uCd3ywaaQdFWARFEdyy+Dr5fs1JkxXWSFQKXfGa/BOAhEUvvWXxkklcwqcprU0GxIVeT+RLMvgnI
OqgOqx0RWwkzn0QMqwyOc7BMknbogcqwYHH9tAmI5hrfZnxdjEHCx90yCqM0ilsJf7wMi4bkalqh
im40x/FdFg3C3SluKq1DtUBbBqjLuDeJX606h5O+Ch5nwJMvLtaFwx6eOllRPgVaV0nDCHeQ9LiZ
PFsErB+OXxh3ChWRzmIdy/d5GsujK1hQQQEYz9g5K8vglr1v/pYiiFzvyDTckuldO95sd31X0+8d
7WDbb056gj2nBHPMCpZFbL3wW+vk5EPdrcFVJ4nilyd4v/mJzIWPqKD4T20lgeYp30EjXRVPk1h+
AtXGZPYaG841aqi5MiYqLgB7SDsiTxtUqOAgnYZN7QCGCbLonWQJItWKtLUsF6zie9bNS40NvLZI
3SVAGFZTx0jXyHmMMrohJ4lqRvIOCg603nxewSyr2LanU2Tbyyz9a8mmCwhCB5C+kzc9Y6inl7Nq
GrMZq9ih3h/kD7VJaa3dWANqOtwt3wc6IrF1XIrLbK3vmp/R4mdBksRWt110GkRhWAfl62V2lucL
qG9h/ZsX8y8wPb16QQIWlywzgSWY2YhgLhntyCkkSHuCE/dtsb0C7tdrerj+et+HbOVSzsTPl1lc
v8xoszOTJLESnRp6iOTp1PWvby7OLi+vpqPx1HXOzkYXH6eXN5Pp5HLqTMeXN9eup06vvGv/8vp8
6t9cuJPR5cV0KpbMEkHduFpmZGg111qCYV4vwUtVvC3QJKJ1pYhZ0qYIf4CUhZFEcEdSBjN1uU1o
/RIItK5SiWwFvk+jSZ7Pwvxh31gFwSgycKDGMtBxlwV/++ndi6ItX4wyvtoR6dmQiN6VqhmachNd
LthDTdaFujHPxDoFgBpdSephJE/FG4GbrEpna7Ln3KtgGcS3HmvUX9Lqzk9nsPTg5bEukS0PdhaL
Yx4seBlUNTTC5OnwarxmIupaTCRidSSlWzSUlT8uxu03d9ku9nNYvUM0A7H4u2M7FWJA0Kpft/1Z
r+olQjsxtxIKVd8e82KZcYK6jiVd7UaQEdPC8ha58yDlU0qJKulbnrZ5M3qYGtU1K1LBLx4W0XRe
U8GWLungXbM0hKf9+BE+7L3b3aLCYmaFYKdtIpRKOn72wYF2iDPiJIY5kxtKCELzRgwu6dZ73Pnc
ppDldCIAA9j4COIdJSIdao2yCgphVev3rcgWL1CBQPlYVmw+hVVIxmbbNNukYpOFzAggsvA0/Jfo
X7BqWQjsqnhruqG2qF/SbpHbmg9Y4CeqJa86Tr//VX/gKsWqeCfahVqiJiGtxWyTQngtsPbki2Wu
0qZRmQcZ5Muiu34iA2L5N8ZdDZbJba2saB+YsjaNAFFKNMhCq/7T+W0xTbP7/JsIjpiuFNOBIILC
aJvgWj26tlYPfmn2QF6awPoPCGwGKID4xO2mvJ3CYnNxSNZnEDJiZK0JiW2knWMPzylsEqS3C5t1
pIzurvI6vFlo5zjDc8jqUJnu1UsIGWjnJMJPKJi2zwX8bQoMAkPVoTa4GIv8PVnPKiHiZEAnc4ss
SjfmFubxY720EicDulEytWBDaZ1bsCmOBnS02ojKe4TWNmvY7SB9Mb65PtuscuqF7KtR/7OMepfY
LkFCtDBJTPntHzvT2avn80SetnfQxLrvT7HKs3ZOwzyHU5yEoIaLcW1PU1G11Ws1jH7E8o/5kPXz
fIj+ZB8yfyTRBZgnupLNvwdpNeWblMHskJdEf1OAxCE240iVsyDLyxlj3NU0dZ3eordv++hwHdui
QtUgskJstXZYqru0bOoY2xaEp0letDZr6rdoth0vC2Ei71ubq5teou09mr0DyVY/sw/yh9ahElPv
ekIuDomZqHI4D2awfrTtTyxYAMgogBh+aEOJLzLfr3vzQzJpdL6s2MOHX9pYf0SiWbPPpMNKvQfW
z6lOw6BktqbpnU/agWBEI7uCgaqiejk/XokoXhRZOxzBTTofjItDnZnxhqNTPmYRf/n8fgvEaqN3
B9mbk97Jh+Y04FWeZvUxGIr5sc+GDj+MgdFJ13N2HBei/09cjWt7G3jrLS26A5EfS30RwcqChL+t
fds+D4pvaXb7A1HMhDX1dLrgmrybRvc8lv1grc4iHG40ACYPBXtNzdTMztHMCmKC264N9FLu09P7
oEgDfvLf5uSPxIrN03kdJurX8V3jVGCS2GgOEn90m6P5gq+fF3wv6uoO/LbeNzbRjjdj0+gcP4Ah
U61dhrdR/YnveAhmFkSOVXP9WtnsHjiCABm43j0+7mbI3NmoxnxL3OjMykBJzep7lUyOc9PlXt0K
1nxVo6rPDCP+jvVF+Dd99e9X/37173+tfyP11cFfHfzVwf+9Do5eHfzVwV8d/N/r4Nqrg786+KuD
/3sdHL86+KuDvzr4v9fBX9zRFqS/OImNFyex+eIktl6cxPTFnUpVX5zEL+/ksfbiJH5xp4m1F1dz
aS+u5tJeXM2lvbiaS5Wj5qrK72l1xy/tbO6slMXlVXLPIEqYVie2JMtF8GAfuEsSGsKthvrHgBVj
Ee02JJFqgYaLeLeBMUxUziROWy1INRiKNJUPKdsNKsX85kl+AU4RLlYNXGzdYsAGixH7DUzjTOTC
2rREJqfFVP51Lbmg+5II7khtNwQxjVHA76ooEGo3RGqgW5auc0mQtsseISJo4baIiIRMDyhXF6xk
j4zQ92GhiDNJF1vqWl37KBfJbGcIUjWVfy2w0A7NItCSzvLbNApmsnt1Yzc3q0peUeSFuGC0uT51
PdSQJvwo+cVyHq6uk0VEkqRBmgXFozyai2/TS6s7Qx/W14XKirz9MObno5998W5PXD2ryOu7Z+X3
vgk6t6iueJavK3g4wMpAN33FdUyfUkszCVY//LPvHm1rhKl0X03wMEmI/BZ8vbksYcLKanyXzpsA
0FNBE3hIiIoxVnyPEgWbvqNQ1dEVXaVDlSJEvYF/SBPHqO7gig/hgulL5LcwvPmu+i4m4tKh7gyp
MkSaquAB8pWBNzSUIaUDczAgxCSo6+xsuHHt7ir9EJa2JFGA1T1JophESRId+Dr6AYtDZOD4umkp
pqFrCjaopgx8nSq6RiwMZqd71HqWTPWDNriYBPteEusJgYiwD+6M3QbR4yGIhAyQqhuuYiLkKdiy
qGK5GjgF8SyXqL7jIP84xJruUeWve2whNwO2j5wha0etO9ufB7BrQ9PDqu8qQ98cgnoRUajpI7Ag
x9OQ4atD1ziEfZvyYfTbfdr4GQr3HS9BEWg+PHRLygHgBr8xdOgBZuJYClZNU3E0V1eIR33LoY6l
a8MjSj+OuGlsQQW/M8JdqPCQBuKrJvUEcU++XmYZK0YZvz6TXx7DL/OovdLVkEZ9NIRIaUGkGFou
qNgyFc/U/cEAEeT57nHzOEa7H4o/BxzyiUFbgpkq2RfM1CEh0r3gt1zwK7vbscZxXM81BmA4rkkV
7FFVoRSc0xvoLh4aPvEH3jPiX5twG53GEnMPnZbw0LyVwb6zMKo1kIhvym/mVe7pfQTj4Tc3F+RY
xEeqog40rGDkmYrlgbE7hkW9IRl6lsp9dCwKvtOzNCwgtZ5e1Rcg+yua5ekmqThZMHss03I7xOw0
tkUStc+uSPAQgjpUHs5k/Gm0UjA2cB9z78TGwMCGrziWB0o2HQoB3VcV0/cMa+CCPWFjH3ULbusb
7qsce9jy22Mm48N9Vve8iC4rsNsSGsEBCQ2WJHF70oJlnOb8S4oz9mnofHLOrmbL21Em97S+0ccw
XPxNCNeAN7CsgWYqvoNAA67qKo6jGqCBAVeAYVDi7WvAe4BJaGA3XPrf2EO18Zaa46Z5DeKIX+31
k2r5ePlo8OpuI/f6IWYWv4qTf6MeRMO0zwUynSHBAzpQdNdzQCDTU6iFDQWEoir1qevofEqXZcFd
5ZQPbrGyiGbssQIr0OKdnFU72EPFbcnsa3xA/QEgDCx1qFrGUKHY4TrFumIZKuBwsT8cqprp48GT
VrUifthMVq3SNkJ2ALYe82DTgv2R37tP+qqwAVHSQDyHEsBTBoAZwoyqK5ToCApO6umYOr6ja09i
BYqHYULDNkL9EEKT8JprR7HiWllnWd3l/N5CbrYajKPE5BUysizDAZjI1UC5/v8Rd23Njd3I+V2/
Yh+nagsM7pdHXGedGq8dz3qTV5KiPIplzUTSOJ799fn68CLiEKRUWVVS5ZJkHgzwNYDu/robOPSe
eZ8501FwoYzisYjXGJrTcc7Pdt+ul2ptTqWyazMzo0c3Ht/ZRUB7YjQLYUkFtdJBcjhZy2E6m8HG
MTmzpFywoAiwSP7iEjx3PhIhHz3voLuNPYXuxRw6TUD8e/5LIYPvpq1j4DoWerKgmsNEBsx/LaGB
JsAD+AJuBtthpDeIZ7h/7XJMo5xfhenxVQ92KIGfthS0O//9+49kTW7vZw42wP6R10pO6qq1ZrZF
MEuRsPs9vJYwThrhpAz5sv3/4cvm/v2HMeZt81uY8/NQZuKEkTib2YJsd+OagoLb1e3d7RNIs5jW
RdOKFIUIyavCzCSTi5p5Ax7XWirRJ2uTv6zRp/2P5TttN5Pm5lSapYNF6t6L9NPyvzM6f1juHAPt
MkT37E/OkDROCYCHpjsXBVOBaBA3mjXOU0DE4jIfrBBtl0PMOx9h7noOzzv4ay5O4a+5OTFX9LKi
H5f3m7tHWgZ4VjJVpNc2QbFjw0LwBuV22bEA58OElVkgKnAmqctuYPmwGut07L3FM4Rz2vPcYiak
HQlpZ0LSIt9hgiiNJibrdfQJPoCwCMsTaERksVoKI+H94AE96CC3RQqXm3mBSR16HMvw/HwmgRtI
IMTciFFucPu9OJuHnQZCFj4JAz9HtkCayEMF/+ESO03iL2+xcNwkRMKu8lrqqyzZYKgzyzJo2Qsn
BlxkrdUUxcF6/PTdj4u4t2kmhIUyEwdqKltuvGSigdkpRR4lBzDy3BDIWcebe5mAvH9Yfvl0u358
iav2OHr8NwOXf82Xs8UhI1puH6bXt387rIpwahH4ZKYb2BQX1bPm8ENJKVksoAA2SqKBzoXcXjTT
hxHGAnVNrnrAg1W4VnPiUm63B6Uevu0tz2QPiGlxTwEd0SmsCkvRYFFMrcS0PStQkeqVEdKVFxfl
1UHGKZrxPzlt18uuBvTmerU5sYJ3nx/oDdhELsPWF9HvycUamwLkDCBmW3bjVYM9j2QavPKuyDcP
sQ54ztnD3eNe1tXAYV3vqNxRseJu+USvMtzrndT7bQqmX1ShbIlMoKbgdWATMCPFhxSigN5NBn8f
emz7+5dzPffY1naEzU6BHxrT7t2mgkBQf3663Rd63oHJUJIvNF6dDYwHD2QcJhrUPjEfnK2B1+BM
OEJ2vsMO1EaoU1AbWKdTRr9fuelrSuiNFO+E11s1p99EJEuNRmNjeFEsApGSoB4qw4SFrINLCmz4
tURyPtp5Tjlv2cun+UA+7fbmd/35y7ebW0i4n2sOiyWnrZCbDKU1y+jFflB20BavNDyKrFIJa4Ws
frgV+j57OG7g6jbLubMum9XXXz5++231eWIkE5fCT4CqIpWKyJQZqRAa26ZZkiWyUEx2QjYes3vN
FB+PcMaqHLXoZVj6kQzrvY592tz+dr28Y8vHe3FI1sjnaaWkaWuNGWcVsUFESS4bVmtqrdYmpZb9
Pj7tsMez0qd4bvh65qG2ouzfjAizrmlSJSzcQhJJ9bH6BNaQmjBgeqpRTGqZU6k5zYGtpddMbDfM
eGa7JseiGMvliSj04QVtJNJA/CdMeRMLLTOVNUH5Rl4aC6pJ5pPhKldMbjH/pHs6btFDl9cD6JQC
7qB/3Cwf1p+mOgZWYPIy02/yMiH5YhB8RukQ9NiEMEHVwIQT2pYAG6fN2znXA5Aza7R/3AsZVgMh
N3IfrDZEJfRFho9PoCh7iyLJekfEPlx7CBfhPVXOHqtiPbMheJOLgYT5/yNLOQTdy3wz2pM3y73M
O8d3ff/4eH3gsVLu1V01aFHkYEtck0+gXI/xjZWQa8taRc3NJYd61O8M1mgpblZ7K/Tr5ttvvzwc
HDyxNxWjLx7TnxF5MpWKYhHxAqvSVxGVjAh2hlCO++pAOHNqzo1Xaj8364dvX54+L+irPf3z3JAZ
L64pbw0TvGimtIUfz7CEJVhfk0qmKNMbwdOurvpBT40g1fFnWeXHzfrrw5Rt2GWBjHZiIfRCTqkU
xBwiB8FqIP9NrhvmuTFrDXZoESBH+uIm/bjr/pxObZ9e9RjDADhl/DvGdr99AfkzYRNT6sonUQXV
jSJl21SKldFHLKbsNehGVFZf2l1dtz2u9WnuwKz4zWFpYWx2a7JXdCu2kY4KTmXpmdAJs8i5ZQir
E+O8YNV5ADZ3hjf0XXZ4VoIP8IjVzMv9dfNESc4pAzMVdqbqmheiWiKMNcPlJqeZ5x5xvjPFSt2U
tK/ybbvOx6u7e9iDPq51PH+4njmF75f3vzx8/n2zz4HRLDrZTMZMMV0dZV401QBqZFlB5YSy8Aav
CuX3fZ/Jf+2ezlAPXNnKzZOqj182m/WnBdbs8y/3t727pxhKTgxj+g15gk8pqaqZlYpqgU2wwBN8
s66RFwXXZ8VbZJI+Tqh+GoHqdHHerJ8Bdxr0m2u5upFbpfy8+s/1UdbCbDd+xPYuwWsmHdX4Obgp
9E8wmyRXAnvPTTWTI6N23E8H4NoPNs5GHOK4ydUjyqevgdhTTM8XbsvlUglBwQKwCrPFVMlgddIn
7HwLeuyqryb3QE76u+oHtgM0Ssxs1PY9YwcTpRZiG1OClZmksfRqqlAqCfvknGQIL5SoqgnlL7rA
4357XGrgmm88ogl1Wkp82r51fRHp//avYIfCiS0HE2QobEjSwUczEz1WsEH9kofvzsImC75uZauX
WcpR52dygEctjoWx9vrUoVu7Mc8GlxKguTO5WBZNxNdn3XiGK1ceThSBJ2IKYRBTWFmKFN5VUc6Y
3HmnPaZBeYU+HNZqv0KRHrfT+/P9luB2c0vRhVCGGRPhFgyCn6imMNkGGV2pybWX55Z6vjCx9Hgm
wSlDsd4cFCl9iB+fY9+gF4bKDzWoSPGuaRGxkIySRWEzM8UVB412NrR/KhF81PT3zRodjJt1+Dqx
/PVmINbmoJFHb2g/VJW14M7BBbMWONQwwQF6qypzMlaQ01qqGKd2njvrMWxOtc9p42duYvee4X3J
UFqzJVsBZklR1d5r8Bfl4RVgtCTtXvhqYVwq9aWI4Ez4knfPrnpk6wFcqt12cN9v7jfbV1wu73YW
kYq300a2fCJdFv8qJPqOeymAN8LQhqQDQuUCC5F4wGy+xjUPhjpThj5t2IvmzEi0m9OV+Li8v57s
njoQjdCkK1kaRiclIE1F0CwRGpTcwDxANIQtr5Hmufcz+nl43mP3fIA9zH3L8vGQDpTCLcS0o60x
LSmtmJFg6apSzVbowlJNzURIEnS55FgOnfaIwmhfBztD9Pi0hLnbF2OnPD9tjmy8r9xLhDIaHpfi
+dBCZC4WrwCWy2lbn8V01O0M1akhc259PaeSVNA88m7TKsOnLQxNWE62WVBHVrSGn+BUK1YxsRyT
CJR88F6/XFe96N+OW1z1WDcDAW7cflrXf/7zcnW7n1AdJuogRYT/xW60TkHVNHxacq4xp1XFtGJr
Nj6LE4+66ce/OU3bOS8Oabt//bG+f/YEmqYrUcFMV8GaazRdylNBUDGujS1FOBCEyzWo6dj1dz+8
IgnxPPpVj+96AFrONfv7r3dPt0+fv64/nRTrKFY0C6Gmc277PykZ4CVsVZAsWwXdoTxACA6BZJHQ
HtkQxb/q0MOFobttMW/Wi6kGRsCbed5vF3F8WFLp++Pmt+U9vawYz27vf2lHAi+EmErY2z+m45XW
uywzgy+MMBSJzhM4kKQIn9iUjqZePp4yHPLMkYlR007a5YCTOPqS4v5g7ocSf+ykQijlSZ13LEXH
UrgJhklDpRpE1lQLIdqaXOBYx2ziZaEwwBkZ8OSqRzfYhyvpZvtw9Xi9OLxDnr7HZHtHQB4d1pJF
OjhLz1Iiqlo8/uIG9hFmyUcfpW3qhRzLrP9zyZZZs2N5vLs+tfE+0CHELnL4t6/Lh6d/bI8XiwVN
PqKXycynYn1sFmYeHhKGKRcWKnhi0lEraWyw7fLkP3c9xv/8/KrHeDMAHg71nD8e754Oryh5JyaP
FFzQQVlmlcq0TzKgOkEHnRCBg7mILHobetxJN/rSnVbL/NLPi+G5vVgOdyljeF2ZSJpTpBVZzAUx
oTK5mmJNeWH+XlEOP04etFe0nzXqJferkeTzIvKnzd0X2ipqOqKqyfbE6qyy2rLCHWwPcQFIqhml
dxBN6FpfOJ/7ysTHXzD0uBE96YUZRA9+peenAQ6dTQWXf79ttwdV5hwkflpIA66GXVmY89kQpbAs
WIT5xZdSc1OpOvVi1YL6Pl9voadXPVQzwG/4PlT+9Y+j6EdLcgPbQyUqW+eTM3DoebqalJgvqTDt
tVeRcrxdYuQoA/7HKATCmHoExOy18WHz2+ffN8f1VUUaqYzGPhAORJvSDAVRT5RNgyMmpxIxvdqG
MOb9zcDYARirpqPjaLz6B12M4IeJocQB9N9HOtybBMiN0jDJniMyBzPwjtKjUs8yRV0v/fhODMbf
8ea+ePf32+vN571JFeDzlLXSFqxOhcqkpWO8hm5LBeMZFtArmVRIQr64k6aez2+l6XGPejVAvRb8
si58iH+lFOdOzZVaaCqwiCZci4gJbaVbHDzAKXjEidkoC8YNiWx9WRfQ9wVdwNOrHuoIv7s+i/+7
H6ZwHIo8UcLAEU1BnSdXwY1rJUUEVJYyM4Er5jOHkiAmEjo1BAmXS5BT52P006Me+iDL6tceod9y
m+R8/x/0rcPD42FRQk9UK0zWAhVKmVTIC/gPLyoXxmoh3vJ42AxLJ8fN5jSzEPjujMVR+F3/9M5a
szB0SYl+E41IUSreAhNTQIY4jFKjkXGLKFcEiU/f8EBVrGdC83rVQ18N5LHzTMnPq9v/+ro7uTtd
yPBkUbJrAlZMs1yxHEpN4bgWzCfJSzBRtPCqWsu+9zHi/dMOt9yccqMgbw7V6ckAfL/7xvj9lvKT
F6spK5vB5DJ8GV13KFSl3d5Zkqq6amx7o0PUJyB6GW5OGVZQS7WPUn///vbxkGLXEgaITCeH4eYO
ZlyQuYGlDCzAxYBU5+Q5tpLW/1cJyyOAV70MeiDY5lAqfv/h5/nJ9lg5qDRC/imzAzfZoONgGjVq
4yy3wnLzNotyGLyDrNVpnAYmfaAZf/uutVnGoNGFKw6LSVElUw7gowbLdUnhv8qTkvWNMgbPo3eg
jRyANnJ+q/voK0v32U0KznK1SlKKuNL5TpsbCwJcNRtXeJPA315VdHzu/aXr3DPsmwF2dTjT8Mfy
4Tm2kZx2vjFOxuioZO8L2HUV2PkccRgCMa8rR6BTZ8HNcyf94Gpgxc1JbPMZe2p9R5OmFtPJo+0f
UyIVKqcBJSuqMhsJG+JBAWrWwpcsmknyxe2aP5w/2ps/9IAHIUkwQY+TJo/f7p8+bbq7iMRg3EQC
pt9TUki1hCll1RMxpUqtl8kzYVpo3pvk+NsfdN2WYj+e4jut1x4a9RMRzGgi7OyEzuMuO73fP85T
eojE5oWD/9bIbKIQjRL6qVrOktEeVD3V5NzFnO1xzzNoA220fHPhQNvih4/PZ9ssXVKaLjXzifYY
WJNGaVsdJdVTEcrEUjUzSbtis6vSiLfjC89IzmzKj6OjcOF6M9iY1+SH3fk3prwzapfVj5QeMsZi
+sn2C7p1yMEgmnU1h8p5lfniEeTjfntgI+e6oarZzS4FLE8ywKY1Zw0zNdO1fcx8ouPfqSJMQgQf
i/BvlgGWA8ibQZEt3Nj5farb+1+P9XqXb5Gcjt75aHiCr6X7BrBLXlpwG3JMRrcaG/cwWm+RgPju
GEPH/O9/verhD3jaze4WJSaAvtTyUOL2mniyKDIIOs+ZuaIilQfdJ/YPbWgImbFIIQ33xFFfPYZB
ySzcrP38uOZ6eUdv6/35ka7JP20ebpbr7phObk4bGTxzytHkFrgelQRz0hUTjQ1V+38qD3hsKEdg
zpjLUdPjCVjywaXPpdB2ZJn6k8NqFzkKTXkAWh0Phsnp+J4DxSGN9SyUbFhG0JhDojuI8tXn3l8+
P3zSrBNMBDsQbHVgbbMvr36nVDgczdZVR0E8IquEH5QNcTyAwoFUlQCGUcd+oO+zhzPILyzFWuxT
RI/Lxzu5eLY7bntgDYbcCc6spyN01keYHVWZ9jVjZynh3OwkUddND2BQ91pKPn+NxnR5vX3Mn3/7
8kC3IWmljZ1mZjrDQbC4teDjULuS6B4MGWVfCtU2GzhODjy8ulQ8G+tsyXjW7qoXYrCFFZ8fCTwx
wbSFd/XvrZVXKecmY2W5iUYHlOjgFohcaRxLn70WUf7vrfzu4VWPcj2A7tQgV0YXVx6PE69KT26y
GpWCa5VVbumCXLMshgzQumYZJW8ptNcq3TTGeWWbHvf4nR7hn3PPAR0E6aSk35QvU1U1LuiyEVXt
lfONeWXoJQNZg25CWCXehm4OGs7kGW0lfz0g/4/7G0WHOxTT9SRYfa4cQifB6SUUolrYQOEY99WG
EBtiyTc539hdajofKxya9GKu+EDMlZot299yPvZxSkbuTAlMO+i+otpRMCnDJCVeDEIG6P5rdhq6
HQPGgxnM0e66Pphw+ormu98X4UAdSR+EyFBVkJsmMuUu8SPp6pmtHMap6BbD7Eh5302HwLiB0YSo
z9mKebJCJ2sSoiRG5WT4jkKBKIYvSdoSI48mlLdKVowA+8GUGTpGo7ua8raj5f3+Xud0YBvmzWlN
KS8iVzI7RH3C03kAmS0oc4mvivoPnV8UYtkbcWsHwO3yECy8/zDZz/l0m8plUvSapEaYQ6pw1dqC
dyE+Kj6llvlbTfcRgA66M4NN4ix++27Ol/9D3LX0RpIb6bt+xR4XMCjw/TjyiRHs8fRMe3r3tqhn
tzDdUltqtQ3/ekcwq7KSmaxSYVYYH6YlVeaQESySEUF+8cXDxyPXDw67OWT9mGpTbclMMLDyjNmK
3+TEIW8eOB8O7/ENT/LNQ+6pSOdQDKc3WqV1V+n5Mckx0eLTPX5nQ6oFpegsYsIPhS2F0JzBiTC6
sm1gdJKE0xDgvhZSXQsEP0jww93lbIwf7hr91moZI67WDn7suhQvdz+BRaN2yBdW1XszHJwH8CyI
KIUToRA2hLpGE8Esm6ipp68G6YfGXyF0mbkV61Vnf1+vzfFGxX8oFSZ7SkusN2+wvmHtgOFNGY99
HKUIyzcEIt1suNKYd3t5Dn64zN8yC3VbMVoN1p3ptd7N47K7zdSj4HilwtUtQ0MsjWIMM+hKSHh0
DP9YROFRC56RZFrn684wp12ccew2Z7yJDevsafu9qnMINP6Lf+fjnxewY5ONxxxAwjRexjomSfAQ
UGktgnZWK/jvDzrFn0o4VW3N+dJRWnMxP4/48+5pvXt6fJ4CTQvEhb7kQJiDeEYEjww7XoGbVGJW
KkMMf9nLPjbal/r4tBVX7DviSjeCDp/3214GhfAxWPTmvGV4LycVCVpaRMfh/ZZLVs4wM5OWWgnk
qiOBniP44qeXB6yBdFB7PJRXAzVdsFKlaDxJDBnBWAYroU2EPwu4N5pb2gORdJz9tpszu0v7UqvO
XnbU2Y/g2L+/rJ4Q+PYwjqqpcB8PPkaIAc9vwIX0HM/RPOyQWWHOReJR9FMP5+3NhFmerq4FG32H
+Et5/3L/7fQF1yua4pFV0ZOoJG52FpP0HfjtlmkZkzPWpVlyTNNMI4Hg644Ews22K4wbPn4+eC94
6X7wYgQ4hTTDsCSGGZmSBfBZhSEhwbhkboKR4Xd7McOzVlyx6om7np3MrrEI1Yht1qJebFml0amF
MNmjiUBuRAdrOSvwfC2sCssvHcpOm5yJtIyEwf03R0/7e3r/bnHfiTnpgoPPlxIeONmM6aNKkiyz
iFoWY7z5o+47R/mmam24WaoFH26Par08bJrcXM1hEBHezGzlHoK43nqKkCAdHAMbLM8skLGhtvvV
vtP9jvbQ4kMyOppQQ10llMxCSOqIipipV5xAvCBigmh2OVtrxXWZh4fGL+DEZ4iQDd/rjtj7eb6k
/+n9Xx+/3e8nZAaDU20OGRrgN7NgtSEa/C0YTdy+g8gwuFExr0uI8artctbRmbOF9qVGIdnJ49vI
3XZ2+DYIEh8f9vcfX55GpQ6obTZitoXz3CN8HzdQITxyNGRFeIFQyEM4UvLl2+VOP+coGhYvNnqZ
TtbGxpyuxtfPX05Is4p549FHSj0nTCBHM4UAwNq6C2uTZNKOmRl9y6SNtm+3PFHdrMz60p3aEDMc
gLzUGHAV6/Ff/a3ae54dx5PNDKZVJJgwTjMHQRm4O5bCnGHx7e7VTtKcMcDj85tWx01P8TnU629P
L8/f8vfV55f6vfmPUwy2qtNIeot4Q+kxKdOAnh58ZsxtoAECTpH5VRCdXkdnDng6b7aqrVRHtZVZ
sGdskPz+f57gz93T1LmEQCV6hwCwgImu0keCLhOhOqloC4ZjV1Fqtj2cjRwn7zR6bDpcUxtc7i3z
6g93Y4pOJavGG16HZoDrUvB+k7AIzqdgrBAfC4ZjRSTFjfDpbcDCdxeTeMbHjXK7jrsFH65meQt3
P71/OdyTuUE3N1yzJwohf6DwzXg884VohjgaIS52JnBpdbavYL7Hls8hDA+PZ1Kve1LP6XG+Pt1P
Z+/tO/z7eHbBNcb1OVMKziOD7RcvUnPkmEXCiNJcgWWR2jn5Fl/Ou1aU6Vv10Uy9ZWbGZi9XM4rK
rnrDfnjgOqtuiE2WK7D/uEGXAZnsoopEGR6DMzLbV/gef89p1CjLBZ0Xm+Fe7jp6nzDgv6zAv3jY
7GYX+lIzaXl0JPqECfFCk0C5IMoZcBx9koHSN7rQbyWYCr+VaumebeUBYVmdun/cP4zICKEGp8am
GIWyYO4j3r7xTIJwilAIEoM0MShpzriIp9ZaMbTqiTEGc8Mo3IZxDJnD1Msa0CFHuioRQnjk19cG
IhevI4GglDsXIMRKM3PeNjaTY7mxbCvtk23TSv460JVATIIZjbhr4k9cmkUmsNEGExvBfiOJp1MI
jsHDIOapN/IV7Pix7XOpIYfHjdy6kxUFH+6O4/e4nZwuVFptdIFkDp5IGfBcQQmIgxPs78wFKkpJ
Us/IvyZtzPruTCG9m3Pf/2UFAcKnCVmW4UMW2fALRnYR1ja1rrKLg1NpJHIeeJKpZL4w6QqXb+f6
tPKcO3uevtNqvVv601vDT6w0L0+fb+V49GBvnazTFVxNCFEhXqUKlg0oiYmvNhHY2BHim6xPc76h
SUuNCKaTqwgfmglPw9d7iC3/70TVLGq6XkyOadhQWWAYk4ADHCTYkQzj61nykTVHSg1HQ9tgK47k
HXH0mNb6dbP6ekLQS4yeHUsw1RTYMQwzRUS+dBvR2bU80xzB07DtYEwbaXvvUMVsjaHzWfj48f7h
17vB3gxOm6i3HyzHkGpEo3EbwVo5EF0GMDqWC56KT+aqq8VDB2ejzeWr5+3N5IVW105+y9Zs52zK
29W31Xb3reaQPW+qxgMXkVDDMW90xcM3j0SiGGtw5NzT4BVlWZiVLHpVrnJVE3SUjh2dV2fxWqvU
VneUWmD1msprbU6VyylbA6sKIlOYTd7gbQcyUtXbKyc9dfbSydC06Va0fcc6WTHO7M3L1+cTcEaY
gWdI6OwleOFEigDBjVfI4UUlYVRbBXutN0nOV/qpnZu2r87ktmaECz4/f+5QmykWLcLSCEzdhDBg
WF0eE81ksCkxllSeCTBrp5XBdJa3Xa/PVRzo5PxjUhkVHqWA6cbQNLoIdieDF+7hq9MyXHcb9cpd
VCv3etOReyOXlBSfd+9/eXdcIxX2H6Ip1FrCCl7gGG1JcAU2BmmKUAq2654PegZlBG1fwBbB01bq
TW/KbTbVEYGv5nO1TCdo4sjy5yX1NIITJDir19ESgpyMCOKEFx2wvVvfXQTTFhtRXOeiZesW9n29
2vz28rXBft6qAZZyO6xP5hT0DoMoDZLZmKyRQ5sSF2KBHV9q664ipQ2znqaDOTxr5e9Z6hVOXNYy
Tj//NhSnKwv4qjCHuDFG71MGf0nhhHAauSPxaFJZH6PSPsWr+FZOfZ3jkT4+v2mF7kzltZxzKo/n
uQ6c5AMZiC4JCR5hMwq49gJ46wFCXkSXZ5doMkPEe3Zv7Bztbtdr1xFntzqK87enlx2mqiEEdPd0
ct2HsdTOZMPR40xIkRqCgYlaFIFpYJSPzoNf+h/i4ewJ3mrewZXvFF0ZtwDNHTP7cDkgdr4CEE7Z
g9HGELWWhGLOuYjIeyHAIrsAq9UIBmsv/j+zB6dv3DQCd9yIndrq2ZHwDwPpb1vppgiJFEOGuFLB
IhC42qAg6gmaO0FNKvYq9uND4+fSxevDRmjXE9qZ0U1I96uPD4/PSHixe37GJdSm2cH/PbjAAXn7
SaS+ECE5hBp4xyBdJUygKcyTdS6324polwER7EELDpED7GPfVLMZACqMD+QOtKRoC8RmjGJWJkQK
BGvFERWEiIIG71/hET5iS15DRSzfa1Tabpc2YLfdu6MD8s+v46YDQQluOnzIn4BpDbOiSGT/g5gS
Ag2miBYBfP2kouZ9TtCxuVaI/XIj3+0om40rxMfl/XEoB0Jjm7mO1DkSYbOD2cocccxzomX2DsvS
MHH5lq62eZZtszS1mUAk3pGTjZmT/zqljtWqLBJinYgM19Ej2iJijRk88k9c5qRSko7PJuO/enlj
0IXs9WtHN3W1+TQeAuiBnjGyrFVA5jWIApJHHl5ko+GCKYe2jvaTGSZNzURYmoQ91ayDJsZooF6B
VAzuQCKbjTVCegj5BSbeixiIpwyZOmkI4D7y7PSruyE2fH4nxKc3jXQdv3ZP7RxAXM1xXH399nI6
qTzUZMg0aPBskJaJITs9eNghQEztLBVJ+hTKmxzGTiW4gO8+vNHqaFVHx9VI7fvu4ePsdJIpFmBp
RKKzQTpf7YilsEsWCBwyj9alJN7odHLsvBV5tfR19mw7Pyzf7p5/+/b49XlSJMTWHPD6E+8xuAo5
ckqKxQv6wjmBPR68Dkc98wqcIEWvo+mvHR09DXzhHFv/4sWbVodlLLcXbmTquN+8YKw+4RoAh6me
24BdcgbCRsIkfie4ZJ0Ar8Fw67WMWP10dmQ3a+um7VJ35Njw2QCfDuqHIfLbL/cPyFA+3g3TMSsD
nEwqckHkLiaLIIlXcAmcAm2zBYdO86KuY+5f9nTpdrh9s9VyI3pajqP9MqnuUUE5yUfpMd3YMwiV
hTUS54sj3jEnmE6C5tmR1Eu3ngd00hlfScfdePUyIay2AwkD2MkodLZ4DKOxNi+mHgY8lTFSZQNb
s591fmql6Vx2ygPupZuzZP2c8BBMVbeu3vpFVjiFOJwkLNwpYFKRgLR8HhNQaQJ7qd++hOfPZ8rU
/dzUp9srtjyb3+sFJAM3+WWBQKsOoEzDXUgadmtWsOgFhCDwTUtLuC6cIVsjD68fQrzmTbXvNFog
u9hCC/jwbJGw2wH2g18UKnL4S9QyL8UmGqMBLxziT9illQV/HMJqGrmSnFluwh+C0xyetXp2ADRI
sTgj7B2KqQ1E6dP4AnYQL7GWrBaYxOJpwBMMTngORpUiNKyL63KKju1fKuY2p0uviWoL6S0fyc0O
UfH9w35cwxKJIofrsSSZZ0qDA2cVrGLpsNizgFgDnIEMMWK6fA55arWViduOTILNZHpABNCk5gW7
5QPRGYSUMsiSSVE+DSx9XsEql9rDgEIwKPjFgkrThlvBOie3+/Vqtd80m8336hIc6x0MOQfg4jLw
j5CITLoBTWrBppHsfRQMbHR09M0m8JA90Z/A9dlNq8C6o9WaLgqVPf/mn9b3o0HkB8LHyrgmmVYK
wjdjKNJrQbwcOKZisQI7LQRywV6OO2atnz8tmrzUatFJ+txv6NzKD7zZtS4o/jaQ5rMDaX6F/WYm
spXgRgWpBpajEIsi4PJCwG+UvKagzQC1P1+SFB/ftIJ2pvxGnO4EDnQHrEOlIGmmxXM8fi8QfAYJ
UVUJhmRqKFiS7Hxw88zVprVWEiF6koiF8dk8rtDm2JoiiSENFgRDJ8jLipSjDEsiKpIcBH2JMcfs
a0xc0OS5QYNHrZiy41xuHAyYblE/TVW9gSGwltWT2WUk6HcKmUO0QnpSiEyz9iwqCE1jyW9u/0/S
nMMA9W5g95veAt3qeeYqrI4NVld42tZMySE/BqfVrRwYWZPHOFeCG4AxZ9QGa5ZEkkt02SYps8mv
rdFTB2dX6OmVRolth8cSP5zPqxoiIjj2lOcJAoKZiZTEgEV9nIKQE4mBI8z6bFhCOvvfHXcOz1pR
t52tZLudM4i8/7Qa6kwzMVSaZofcnuKsEE56wpE6SXBYkAHBfsUrVlLQPiV/VXQwdHAmIBgezgTf
dwTfmUqxWhnV4o/vu9xu2vjEON6PW4zv8X7aBhsJhAKuKKpl8fltud0mkjQ67FaLhe1gF1/vd83g
V1bBs6TbiAsLQSliIK5B2BsEkGiOrIYf4ArQ6C/PmGnzfXWmb9xMZRVLpkxkppMzBer9HZYUfnr8
/H73sEVs5SLhvEQuc0TQRMZKVsVo4tGbN9IVQa0ywemrceFNZxcQ4s17N60WXdW2FY2IeZvlf3Fa
7rbz1FGtQpTCwJJF4BdElhGnF0WseMBiNIGKNyqYPRNhJv6uI7495b3ezbnFTFYslYgDTmuGMZbm
9IywHBWjXnqq1BsdDo2dtyJbsRTZqtVsMlWn4teI9pir2/o/HH6r9M8mRaeRetsKBD9QMMyikGgc
TYp6LtL1tdZ/jRfcml/jTSvneim8k6tp6bp3q6fn5ZWZFcojKpJojzzb3iM8JZRal0/SlKO0+j9Y
um4q9E2rXFfj7XEDPt4xNtkA424Ma6WilpyzEawEFtiUmPcDvxVliErMo2vChLpIxtRpfSZkZxk4
t+4QSew++MkdscK6lWYo8XVbSwwGDnF5UeBD5ITAC6shqoF/BPjNBp2KrPTVuIEP/gJs4INvdXCb
pQ4rO948/PPLlOGF1xCFJY9gEJAwIxFxBo/PUk6owfwfDsNvyoy27kuX3wU7kp3etyP72eZPf5oQ
glfvWBZtYSdRhFODFslbZClETGxUJeV8KL3SVlXoOOiOrm3n61s7t/AGD5zaR1bA5WX/hBscTD+N
XFCkY0HSLQh4vJMw5zx4jTlnml45X1l0d8Y9bN9qFdt0vtONmh+E/7j7ttoerlQOOUgWubFtJeXE
ap7ZE8YQWOl4Ic7AdwzjmwOl1vKs3w5YeZTknC0dnt606nS8m62cXxvhWfZLpf6uhcDFsCsyi7fN
yJDkNWwMGpxLrEyBxYUEeDUe7JO5mn7m7gL3zN1NKx7vyTxu4z9WGqbTfK8k15zxWuZEUpOQltmD
qDCpbDaYBqONErPp3rTS9L+jndW2k3MQ4LvdE1bBRvj3lPpB1ms33KwS7ElCukysrPz3FSsEuwBs
tTaDO8VMvgqV0+noDIp++WKrmLQdxew8JFo/fgFFDoVr3ZCWVhGsSnOiExYYMKhVcAFCjEwzuCW5
XAfiDNBLH170+KWVdVnl3NE9382wRT27C3b1v/5b6IrH1KIeHCqps3XJYWprzbnBannBEg6TWiua
OC/0j7Pv8KDRdb9kdYcPrdpveVN77wQEkOaW6Vq1HlOJMpYjNJUgKhJvLN4LSaTpF+BvXawN+qUz
/ffLQ0fH6AZ+usM12uPD95Otk/UQK0gZGINNPGINHwvCwJxIxOeoueBeKi3mF2iTVm7arpazFAnQ
Z1vWL7svj992H+53/5iQRAyXxxUjWnE0YGBEwiQQid84FiyFSewdRGo5XBcTL7s557PN37tp5V/u
aRD/zu/CV9+nmJVBHY2lJ4ezwmI5NyxZYqxy6FljWJOwtgEDU6MUV69Eza+TeEzfuGmFVT0N5ul7
udxVcPUYXNaMI9DBOtj5TD0fh5DMBSeINDxnLxIHu3nNd3Fsuy/58elMatuTenO0JV9XXyZu21Ci
W8SM/kiqGWwUoq/AiiZgCKmiTjERZ7x8kzZmfS9tL9OazlBg3+8rO15ZbXYjeP4Inx8QYZKHgkSF
NCDwVGH1Nqw27Rgs/+Thn3jV5e+xhzMb1+HpTSstW6rg8JhYzsPBwx2EO1Q6R1YpnWMitDCIZBH7
4nIpWFeLS6NLSkW9FWnm2P15F2N+C4FaLCNdtmJj9v7z3z/ff9uJ0ctQ1d+jXLtQHCLPkVgCTLqL
FpxsqawK7t+lHV1v4jDsPb/CLycV6a7qF5Qi8dC1BXUl6wm67e6pKrQwNCgTLdrt35+dMkY5Cpsu
D4glnu3YTmKHxLE03Tn5GbmGpsbAND1jHtP9rp84NpwvlulHpEouhUULWYcS5Zo0tdk36FKgF/YD
F2FtIJ4rO72SdYylTj47M56n8zNPO9L+TLLM65dxb1wd3TQ62KfTDzDWwKP5FR3EgWVSeum20fU+
GYkd8DeGYweIeg/m1r89mKmdxnMWIrCjXPmqsFOxVCiyuPepGLpjOgMXPTQ64T2w8JuCfXJs48Yy
HYNOJH86sBQkLsSWop0x70+ZbdFPA75JPxIdTHbrNeLuYVedZLUqYJ2kGUzfYFM+oQpethtcWwpc
7cpku8hEksLyCV3PfUNPiKhMiucYfcH4ZZn2QK/qRMrkeIafZdYD5biyyErxKuG+vk74Gnrl/9Dj
H0e9QgkIepTUFzV+jh66+qr1NZrsgcM4W9TkO0aoMF+9AT1VRy2bORy29noQbcpk1dd0jPg4bLNi
mWZ52cfgWta51Fa/taB4pcvhabzZlTHytsvFG8ZIMe1jOCibXDKsby32uF2WlKcXkRADB9SqrA/h
FRvLLO+rFqElrAdSmiF3uKTVCfWVQFKwqkYMEUlWF0kBG3tDP7yD6PdPDxrKgz+O7u0R63+UJtB9
MxMe9RwHIRTVy36tM8D0ahpnzhCWYiW4WLSOEhBoIbZOq/8ozoOqBoHSbl+OYEJRDQV9oG7A3H2e
XpwBKKdQlY3gFLfRRa2yasnyw8u8QlsL2O0Ebv0IFtUrrcjybJOe9lHVBNbzoBLqFR3DLBWi61od
Mqt9eW8CtNIkTSkPLmAn6Hb9kZ5bLBDXqMCmGggxymtgGKXA7dEodK4oAY20w99BpYTOerUaoXWU
Akcnd/sGUbIAzdAaQVUEnUS2E8Dw3h67FyTbkVXOJmUye76iA2SWrOuBx4JbO/KaQbFbBmeP2ZSy
3nAhvwugJmdx7NqRfY0BXe4SqM/toXfVYlAFcTzy7wLPRVtoLnSPhLBG3q/oMk5Vt0hYcXx/5zuh
e5mFtmEEbC1mDaCnxJohTSHX/ThcV/ptLoj1C9NGFEb26JpiKUvmsAL9DmiBu6I2HqpxUJm1qZCw
gLG/UEsDBBQAAgAIAI+ZCUfPqtK72QMAAJ8KAAA3ABwAY29tcG9zaXRpbmcvcmVnaW9ucy92aWRl
by1pbi1vdmVyZmxvdy1yZWdpb24tc3RkZXJyLnR4dFVUCQADjQjIVY0IyFV1eAsAAQT1AQAABBQA
AACtlV1z2joQhu/5Fb7qkE4u8AcGM53OJE4yJU0KB3OayzOytAY1RvLIMin99WflTyBAe2bODdjW
6nlf7Uor27KswU97wAh4iRdbj1E4mTxOl5NJpviWaAjlJuMp9JuB6p1oLsV9kkilr3pOw6D2eODT
ivH0NBV6MvnBdU24ESwC/QUKxXPNaV4RQ8ngNpX09eN1Ne/+J9BIo/DHq57bgQdOQA7AILTazaJF
/2hWjZmKXKuCGpvNp30puibKohKDmtEae2+wX7lgVz2vU49JMLLSlAv9T6nbG7ZjzmBIvYMx/8LY
aG/MPxobd3qEJNTabkozS/lItiSiime6F7TlSoYsGFtdVRhgTjALha5r9f25WdpcSS1DkqYPimxM
Xu1BQ2EsYbTJmAaVKcDflmQmnUnwYzSLfwBt82dCl7sM9l7viCZVkj+0k76TtGhibtTqCfdCHYK2
7NrWKHF8gCqIXrKwT/s/DDiVAfDtge8G1gvEoVSY2C/L56dnYJzcp7ABs08YZzeM/Z2Dulnhh2hN
mHxbSKn77aTum0m5W6M94gbgdeiWCCIvFJwi4myvnj1MkrENl4xxgQQNDMspOy+hFJpwAeobbhSz
0mENdOLEc/eA4ZqnzARNSw4en29S84SbTSHM066Dlqxr62X5gLsNt4JUn8rnBSSfDoI+X1u2XaR1
aKhIvp6J2RZUkso3HPOL9LMx5bemYuxG1mn3jY/S6bRe7XtTZ+aWs8I1ESuIZKEooOyok7XpedmM
KFOcLAPBSky/XM6c5DmueK7V0aKRPG7KRp0RNtd2vCpS/6CMoexaVsQ1LEn+apISNIwYEo91jPqI
mrA/AjmDDgQJsS7OafF/FVAAM4gc96FjNwzm+WPvkHEnaWH24LzME57chrlUAA9KbkzQUr6COPRb
fuK/zJTyETNp7DqdFLbEy1JZsclaTP9iaLQTdK2kkEX+jFVCIbcTIvAbIVJW/33hzXukFRer6SZL
sfROc2LdmBFn2FHvgKIsM63pNPx2pyHv1tAEvSgsi/pwdHUVIucrAcxKpVihanOs3WQUjMbWO8qT
JKyqzWbDtTHRv8irTySNg8Qfl7yvHJsM/pd3SYULU162ngqKp9F87p/RPr588f5DnVHrO3Bd+3e+
S/4JSnPcHD+wD5oaoWtgC/K2gLw89G0PKZ3nJg8vBItJgW+BnUlJpRG0GuMERhc18HY15NsiSfZ3
JXZ2Baz6ihvdbc4lBAFle+0nKmJVs5rl461TmzTgmarRx6moG+2pzrQvjm3ZlLn82euYBj0nuxQ1
zX2KDu3OYUzd/+DwfCb/UPpfUEsDBAoAAAAAALaZCUcAAAAAAAAAAAAAAAASABwAY29tcG9zaXRp
bmcvdmlkZW8vVVQJAAPXCMhVBQnIVXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADNmQlHyQBOL7g+
AADL8QAAJgAcAGNvbXBvc2l0aW5nL3ZpZGVvL3Bvc3Rlci1jcmFzaC1sb2cudHh0VVQJAAMCCchV
sAjIVXV4CwABBPUBAAAEFAAAAOxcW3OjuLZ+PvwKnnY5040jIQGSq0/vwhi6M5PbidM9UzU15eIi
Enbb4AGcTvavP0vCF3zrCX26Tu2aJA+OjaS1vrW0bhKg67KIRVUN9NVfXMz64Xw+Ff1fRfRLVst/
XpHXIq/7I/EgpsV8Bt/134np0D+067C+3wyGv9PPxXQxE9Xp56vzTxf+6U+nSzppGc7E16L8cvpZ
lFVW5NWpe/rbtTcW5UMGGE6fybn/OI9Pl9er04swvho/d6h2lsBnlmaiHHSSVltC3khqI/ON3oPP
Pu7jNyeaVyRCv32ai1WX35ht2FTvXYZ19iBOQFGlVNv1Wt///Oc/9d/xH9qNqOagjCyaLsdW93Cd
m39onypR6mejDVMLYU0bhbU4vc1ma04mwpaBmIG4jvkA4wGhfYcx3UAOQtrVWN8GDxrT4eJvOkZ9
3rf0HiYBoSeAY16UdaszxpqbF/nTrFhU+qdPCgizKXddQgzfRKZheaPAcEaeZ7ijoT3Ejm1xy9c0
zSvD6l4k+u19KcIExiFdH2XVPKzje/3PhVgA+I3qZ2GWG7Xqqmn+YyzmNSBYadP/zZsM3dHE9Tx/
PNZ747MPY//D55NWT6l8UOkv/s3l5Ozys3t+Bt1HoxvZP6x19IiWf1EUJpEQqaZ9vtBvxJ20Qv1S
hCX0WbUNNMN4r2tSVZPJrf/brb77tySGUWJbDL4Y7QshfNF/l93YL3/opfF4Wn591McX/+1d/fof
7h2aC52yOFQ6Hc9FDJ4S62d5WpQzdXGgeTfu+OPZ5Qf91h/fqjmcF1VWZ/nd6UOWiOIUftai7N/X
s6mmNdMPk7+0h8HgmVaAtlzz5/AhHMdlNq+9ohTNHPzXelIxppYTp0zov94GipH+RrdNvedW4D8S
dtWP5/MBMfGJhrsRNgW1IqH/PPYGg5/PbgeDeZk9gP95IHc2FeNp8dULK1H1ToCnSQnSe59FXBeg
gAH4wolmduaX0ugov96qofmt5sRPYXpqyR9zm+i9mZgV5dPAtB1yopFu7ClmyI4b9ufnZ3k9GPwr
q5fM3TwZi/qjWJRZVWdx1YCRrjecFvGXn9424/xHEY9rwPyTwmTZeg8Agz5MBIBoV0DI5OEWIDDU
8ulqfNPb4bZkf5ZXdbmIpWZWl9oQ43vw9RhMol61Lsn6kuwvWZ4o1A5MpGqQMyxT3NKELPNEs7qK
EIXc0afTLK8nCjwwINR2NLsjIRNZMd0hZJoONjXnh1FinSnZByhxm2m8q5rCMI31h5maiNtiM0Cq
y7Q1jLp5UmolnOkbh0kE2A5Yy6JeutHni5UJQE6uCy+cTgMZhBu7tRm48gWYLUUybOBuzJMkTeKV
QUI8nJcCPtcAJK8j9vvz+Cr6F4SQtfFCV5kIWz+hAAgbG/7HetDncLpY9XHLu3Nw0WUXKQ3lEA5b
QJQxcwrxCZtdBCNpatpiGQ/jbwnRxvNDRJABfTWy8UWJnuxUcBvY+oFpERjZhOvLfoPBx9uL8wuR
ZKE/FTIBDgZJlrhJIusu9w4ujO/DpPh6UxR1bz1oc60xFNCK3tulpBDaJkOAkXbCGIeEC7rBuIYm
8mpRikPQFAwK9tpmDgYsFWR1Yp6kKcPiWwrKcplTRQLGVGx0IosJyN6ivAQ3ayyO2ke04lCpFLsT
rjBKKWnh8u6zaSJ5neXLFH9ZLMv6QS6/PW2wKUhvZW0ALq9y8zv1/Uak77Y6vX8Lk7mYLruqQuIq
v3oQZQo5ANrsxfS9ks0BVW9J7E7vijKr72cVxAvMGcjndJQvgsSvH9bnSiQl9NlS//vyHRmrRnn3
YX4nxsWijEWT36wdERqXUlPDukLH8XHo87CUFjufizxRUHpKu9dhVcEEXNflzhyoOsoEj9r0kKWU
VCnvZsoxLE+jDa7GcHtbpu0Vm2JhnNXiNqy+qBnGzIF1Rp2cZ5H/WIMlAAZi21DOoW4gIpHSZANi
Gf4ln2cioTBRGzXIghJ3RSDSUP8mszWu/5EleSJ5NwUtNs3GiXdHKGsxZWI0zW5wEmozug1nVMQL
GR2ulalAXlkxuy2FCMpiJjvdFl9Evq0zdSn7txyivoKOmsmTq263LmZZvO4m5w+WuCbpihZBGv8m
2vliNl8j6X2z6/gpj+/LIofl9AXY+joxbwkjC2VqAVTaFWri/AXUUlTwW/6C5ZqbQh3Q5HpfzT5M
7XLSQX3bQwGTI+fa6gopdZxvQ2oiW5DlmVwethJKGMPvG1GpkKUSrXRJ8ASvWEAdkwAkLr2hYx6x
Y4Rs/QgbML17EX+5bBJIEwdU1dHu5E0zwP9rOP2i9GJJvXQK9pbNQ9MyNyDGi6hcEj8vwkSqBcqQ
RifyAkxWLykW0bQJ3diiUhHtATLrqMUm29/Q0o8CIdQSIawYm36DAfy/2cdxI2KRPYi9xgtRVeGd
6J1dqxVWngsVHSATqSvL5pGIwdIbv7QcrPeO0VmyWVamsFA0eSdZzBix2FzLcilquZey3GzbwGuL
1F0CTCDzHyPdlHyQQAnqhpymCDx3B4UE2myUrGBWdTIYTCZ4MFjk2Z8LMZlD8jyA9K2+6ZlA7F9M
60kiplD2H+r9XlcpF5bZrZ0DG+IPwd2ksMDh2XEprvK1vht+dosfg9BMzG47PjyMo6gp1W4W+XlR
zCEWQ61WlLNfYXp6TfLkei9d5ApLOB1gSqRkpCOniMIq6TinhyJLVIQi0jGbHl6wXqOQrUAumQQQ
wpJmk63Nzkmh+k4tblsR1icTL7j5dHl+dXU9ORtPPPf8/Ozyw+Tq0+3k9mriTsZXn248H02u/Zvg
6uZiEny69G7Pri4nE1XeacTqxpU5MaywFNdGglHRlIsVUjtbpkbsrhSJSNsU4Z8M4wRrxOlIyhZQ
sLYJrTcnQeuIa2Qr8H08uy2KaVQ87hurIhjHNglRogMdb1HKXXn/AT4k6bNcZmZVg9oa4V2pOpGj
L6PLpXhsyHrFbFZIyanDNYq6krSiWJ+o3atPeZ1N12QvpFdBapDL5Ab1r7ACCbIppHW5XLY0uuXB
UIIf82DFy+bINqnQJ6Pr8ZqJWlgSqlGzIymL8Ug3fr8ct3eU813sF1BpQjQDseQ9DSjRpRgQtJqt
4T+aClSjpBNzlnLO4z3m5SKXBC2LaJR2Iyiow4i+Re4CljhAjVOk0S1P2+zYH6bGLZPFCPzicR5P
Zg0VwmCywLumWQRX+8kTfNm757BFRSSCRWCnbSIcrMt59g2tVoiTNy04zJm+pARr895GDCnp1v2F
2WzAIctRpgAD2OQI4h0lYitNIDWFpbKq9b0BPFCb/UCgeqpqMZtAXZWL6TbNNqnEEZGwQ4gsMg3/
qfqXol6UCjtSO/wbavPmhsIWua35SESSIqavOk6+/tl8kSolSO3fd6GWojTijZhtUpisBTa/eRNE
qnTZaMzCHPJl2V0/sQ2x/IuQrgZrobZWVrQPTFmbRog5p7DSnKz6T2Z35STLH2CVIoMj4SvFdCCI
IYNsE1yrxzLX6iEvzR7oSxPY+g6BnRCHEJ+k3VR3k7oM54dkfQYhO8FsTUjmSbpzi+45hU2KrXZh
s46U8f110YQ3hnduvT2HrAUFx169hLGNd+6a/YCCafse1l+mwDC0kQW1weVY5e/b9axSqu5idTK3
mHG+MbeoSJ6apZW6i9WNkmOGG0rr3EIcdRuro9XGXN8jtLZZe9AO0pfjTzfnm1VOs5B9Ner/LKPe
JbZLkFIzSlNHf/P7znT2mvk80SftbRm17vtDrfLYzp3b53BK0gjUcDlu7GmiqrZmrUbw91j+MR9i
P86H+A/2Ied7El1IZKKrxOxrmNWTKruDdfwhL4n/ogBJIuIkMdLzMC+qqRDS1Uy0Tm/xmzd9fLiO
bVHhKIxZBIvNzQ5LfZ9VyzpmMFCEJ2lRtjZrmh3fwSBZlMpE3k2L/E6XH+2NGtX2Dk/fgmSrv+l7
/X3rBqhjdX2aw4ooSxI9moVTWD8OBlKFahEZhNPqwIaSXGS+W/eWN3Sz+GJRi8f3/2hj/R6JpCxv
9QhWu81GGqxNey0G6mmZzg+HgHxWmm7k+yjCOUxCHEKOuvv/l0/tODmtB4C+42EREImadFckMIK4
2agYr4RTt8SZ3oNIIiWYRGElBhAATro+VWJFlnBaRuJWT3ksbwG92wLxVpfbXHpvB9lPJ72T98tn
cq6LLG9uRnMiH75a0pGb0wSfdH1GReLC/P+Iaxm0/A289WYd34EoHw5jPywM8x8XhuVzLz8yDDMo
Zba1PxhchOWXLL/7jvjsYFjUTeZSk/eT+EGGmO9chYiYRBsNgMnDUqSh5phO5zjNwoSStlMDvUx6
8+QhLLNQPmur4uGRKLG5OmsCROPcXSOw6dDEXj7O98FbPgyr+AZFKXfZru/Bb5sdcXl3ZMubiWN3
DonAUCC2y/Aubr7JvRzFjEHkWDU3d1yc7qEqDLG8eyT3xY+7GXZ2tuCJ3Oy3O7Oycdqw+lqnt8e5
WXqvaQVrvm5QNU/uYQedvIwyi7/696t/v/r339a/MXp18FcHf3Xwv6+D41cHf3XwVwf/+zq4+erg
rw7+6uB/Xwcnrw7+6uCvDv73dfAX99AOtl6cxPaLk9h5cRKzFycxf3HP26IXJ/HLe6bafHESv7jn
pM0XV3OZL67mQnq8PDjsa1bfyyPUlieI6ep4Eb1nUyPK6pOBputl+Dg4cLIXNERbDc2ffL+mjHcb
0hgx0HCZ7DaA4CmSTJKs1SJflXGwQHJI1W5A3CbQbEsm0XzVIMW2TCu0TKxG7DdgJJnoJdu0REzS
EqZ8U0wveZtJGLLU5PLFzBIj2bC6EFJC0ziU3DHel10xKbG5x57K4wxKTNoi4jhKCJGHQJSwyjky
wtpngmPJJJtv0VodzKWX6XRnCEYmkm+VleahWQRa2nlxl8XhVPeuPzUn14EB+2VZlOq4t+Vhduuh
tnYrH6C+XMyi1eF+mGqaNszysHzSz2bhnagG2uoEt8f14W26oW9f5PKp4Gcfg9hTBwEa+vokQP1d
4DBmMW4ZPgssg4yGxBhaTmB4rhNwzkyHEvT+P/skuG2NpIfUBCZB9Tfg68sX2W9FVY/vs9kyAPQQ
aIKMKEWEECPwOTWIE7gGR65lWIiPEMeY+8PgkCaOUd3GZZsHcNkmANPfwPDlG9q7mKjHR5Y74sYI
m8ggQxwYQ39kGyPOh85wSKlDcdfZ2XCT2t1V+iEsLUkwMQnalQQTi8ZpGh94CfuAxWE6dAPLYYZj
W6ZBbG4aw8DihmVSRsDsLJ+zZ8nUXNgCF4fxPrgkpRAR9sGdi7swfjoEkdIhRpbtGQ7GvkEY4wbz
THAK6jOPosB1cXAcYkP3qPLXPbaQp6HYQ05tzHbUurM1dgC7OXJ8ggLPGAXOCNSLqcGdAIMFub6J
7QCNPPsQ9m3Kh9Fv92njpzzie/gtHoPmo0MHThwAbssz3UY+YKYuMwhyHMM1PcugPg+Yy11mmaMj
Sj+OeNnYhmoLJ9mDaoswVi9YNBMkPflmkeeiPMvlAWciGS7yZCoar/RMbPIAjyBSMogUI+aBiplj
+I4VDIeYYj/wjpvHMdr9SP074JDfGLQlWIrtfcFSG3IE3wt+i7k8QLUda1zX8z17CIbjOdwgPkcG
5+Cc/tDyyMgOaDD0nxH/2oTb6LhjkT103JGxeSuDfRVR3GggVe+Hb+ZV71l9DOPhU5oLdhkNMDLQ
0CQGwb5jMB+M3bUZ90d05DMkfXSsCr7T8ywqIbWeXjdHVAYrmtXpJqm4eTh9qrJqO8TsNLZFCm22
HwvhIhh90hYpXCRZIV9cm4qPI/eje349Xdyd5XrP7Nt9AsPV/5RK7/WHjA1NxwhcDJPgIc9wXWQb
TjBkQ8+ybU79fan8R4C4NPkll/4X8VhvbKnhuGlegzhidXv9tEY+WVzZJAxbzr6+mMRMHiUm37IG
0QjvS4Ecd0TJkA8Ny/NdEMjxDc6IbYBQHPGAe64lw9GiKqUhncrBLVaMmna0y4pRYiY7Eb0xv0dI
OMR2+qYc0HwBCEOGRojZI4MTV+qUWAazEeDwSDAaIdMJyHBfpy0TWRE/HGJWrdo2QnEAtpVIV2zB
/iDPCKZ9pGxAJXyIdpAgfWMImMEJkWVwamEox7hvEe4GrmV+EytQPAwTGrYRWocQOlRWJDuKVcfi
uYv6viiz/E6arQnjOHVk/YgZs12AiT0TlBswZjDmIYO6GEFdQJA7ws9xw30+x7W93W9bqtjal8qO
d4NM6y24nt3n0F/m+z62pQvCAoWbCFKQjSCwBBYYjuV5xpA43IYEOvQD9s0p2BA/JILXat+C7gh7
HzrDu9ClAtzP3seRDIeOMh3LQahP+0TaD6JQUYH+/REPIIlCfGQjqFwgdlgms6DaR+y506G4HJ8F
1axtgz0oAVMmBd7tfb4Yy2iS5Tvph0P8kzF96JjUp5QaduBC3YWHYP0MYjq2HNPCjmlyVbscV/3V
XOQfzg9jbrpnkLqOQ9kRhx8SR+xMSGONsSyZsyibZjWUlFjNC5UzMiKwfmBkZFhKJselxv/ydm3L
cRzJ9R1f4UdGbBRc98tjXbV0UCt5uZL9OjMYkLAgUAZAWdyv98mea/XUDBAWwhEKDIRuVmdWVWae
k5nV4w1QTmupRJ+sTf6yRZ+OP9bv9L6ZNren2iwcPFL3vpS/L/4nY/DHxTYw0C7jFv8M4ZvcuRIQ
HpbuXBRMBQIJ3GjWOE8BeN5lPlgh2i57Rjh/wjz07K934q+4OBV/xc2Ju6IX2Py4eFjfP9EyILKS
qyK7tgmGHRsWgjcYt8uOBQQfJqzMApjZmaQuh4HF43Js07GPFgcRzlnP4Y6ZknakpJ0pSYt8jwmi
JJOYvNfRX/AHKAvSmgAjIovVEslC9EME9ABL3BYpXG7msiUdRhzrcLg+08ANNBBi7sQoc7Z5h//6
cWuB0IVPyiDOkS+QJvJQgX+4xE6T+M1bLBw3CTzRVV5LfZUnGzzqzLIM7uyVEwMsstJq4jjwHn9/
/+N13Pk0E8K1MhMGaipbbrxkogHZKUURJQfg1dxAc6zjzb0MQL57XPz2+W51Zkvt3lM3ObcjOXr5
bwch/4YvZotDTrTcPU4nQ7/tV0U4dR345KYb0BQX1bPm8ENJKVksgAA2Suxf5VzI7UU3vX/CWKHu
lqte4MEq3Kg5cCl3mxaTx287zzP5A0Ja3BPdITiFVWEpGiyKqZWQtmcFJlK9MkK68uKi7IZ+0Smc
SjP+J6f39bqrAbyhF7fOveD9l0d6gyeBy7CJRfQ5hVhjU4CeAcBsg268avDnkVyDV96Vy+Ho6MVS
r9Z+L885f7i93Ou6HASsmy2UO0rl3y+e6fV2O7uTerdNgfSLKpRLkAnQFLgOaAJupPiQQhSwu8nh
76jHZrx/PTdyL9vKjmSzE/HDzbR7N4kSANSfnu92ZZB3QDKUAguNV2cD48FDMg4XDWifmAcfBu+u
4MrhSLLzA3ZCrYU6FWoN73SK6HcrN71mnd5S8E54vTFz+iQgWWo0GhvDi2JBREqCeagMFxayDi4p
oOHXAsn5085jyvmdvX6aD/TTbud+V19++3Z7Bw13c83hseS0FXKTobRmGb3sDcYO2OKVRkSRVSph
rZDVD7dCP2YvjhuEuvViHqzLevn108dvvy6/TIhkwlL4CaGqSKWCmTIjFaixbZolWSILxWQnZOMx
u9dM8fETzniVozt6HRZ+pMNqZ2Of13e/3izu2eLpYddl+U7Jw7RSSrG1xoyzitAgWJLLhtWaWqu1
Sallv49PB+zlWepTeW75ahahNqrs3pYHt65pUiU83LUkkOpj9QmoITVhgPRUI05qmVOpOc0hW0uv
mdjuMeOZ7W45VsVYLk9UoT9esEYCDYR/wpQ3sbAyU1kTlI3jpbGgmmQ+Ga5yxeQW8yfD0/Edvejy
ZiB6WMxE/7hePK4+T1l+rMAUZaZPijIh+WJAPqN0ID02gSaoGphwQtsS4OO0ebvguhfkzBrtLvdK
huVAybXckdUGVkJfuvT0DIiy8yiSvHcE9+HaQ7mI6Kly9lgV65kNwZtcDDTMbx5C4z8+vgL5nQrd
63w72pO3i53O28B38/D0dLPHsVLuzF01WFHkQEtcU0ygXI/xjZWQa8taRc3NpYB6NO5MrNFS3C53
XuiX9bdfPz3uAzyhNxWjLx7Tn8E8mUpFsQi+wKr0VUQlI8jOUJTjsTohnDl158YrtZub1eO3356/
XNPXkPnD3JAbL64pbw0TvGimtEUcz/CEJVhfk0qmKNM7wdOhrvqHnjpBswh+llV+Wq++Pk7Zhm0W
yGgnroW+llMqBZxD5CBYDRS/KXTDPTdmrcEOLQLgSF/cpB+3w5+zqc3Vq17GMBB8xWeI7WHzUuoD
YBNT6sonUQVVVSJl21SKldGfWEzZa8CNqKy+tLu6YXu5Vqe5A7Pkt/ulhbPZrsnO0K3YMB0VnMrS
M6ETZpFzy0CrE+O8YNV5gGzuDG7oh+zkWQo+kEcsZ1Hub+tnSnJOGZip7DHVnrwQ1RJgrBkhNznN
PPfg+c4UK3VT0r4qtm0HH6/u9mIvtF0MhLarWVD4fvHw6fHL7+tdDoxm0clmMmaK6eoo86KpBlAj
ywomJ5RFNHgVld+NfSb/tb06k3oQypZunlR9+m29Xn2+xpp9+fRw14d74lByQhjTJ/QJPqWkqmZW
KqqUNcECT4jNukZeFEKfFW+RSfo4SfX3kVCdLc5v62fAnZJ+cyOXt3JjlF+W/7U6ylqYzcaP2N4l
eM2kowo4BzaF/Qlmk+RKYO+5qWZy5NSOx+kEuPGDjbMWex43hXqw/MWnPXJXnl+7DZZLJQQFD8Aq
3BZTJQPVSZ+w8y3gsau+mtwLcjLeVf9gO5BGiZmP2ryhae+i1LXYcEqgMpM0ll55wBmlJPyTc5KB
XihRVRPKXwyBx+P2cqlBaL71YBPqtJT4vHkT93Wk/9u9lhsGJzYYTJCjsCFJhxjNTPRYwQbzSx6x
OwubLPC6la1eRilHg5/JAR7dcayMtTenAd3atTk4XEqA5s7lYlk0AV+fdeMZoVx5BFEQT3AKYcAp
rCxFCu+qKGdc7nzQXqZBeYX+OKzVfoUhPW2m96eHDcDt5pbYhVCGGRMRFgzIT1QTTbZBRldqcu3l
uaWRL0wsXZ5pcIpQrDd7Q0of4scD9w362lD5oQYVie+aFsGFZJQsCpuZKa44WLSzof2pRPDRrb+v
VxhgfFsnX6eWv1kP1FrvLfLord37qrIW3DmEYNYChxkmBEBvVWVOxgpwWksV49TOYbBehvWp9Tlt
/CxMbN89uysZSms2YCvALSmq2nsN/KI8ogKclqTdi1gtjEulvsQIztCXvL121Uu2GohLtdtO3O/W
D+vNawEX91uPSMXbaSNbPoEui38VEn0frxSQN8LRhqQDqHKBh0g8YDZfE5oHjzpThj69sVfNmZFq
t6cr8XHxcDP5PbUHGqFJV7I0jDoloE0FaZagBiU3IA8ADWHLa7Q5jH7GPvfXe9k9H8ge5rFl8bRP
B0rhrsW0o60xLSmtmJFA6apSzVbowlJNzURoEnS5FFj2g/YShdG+DnYm0dPzAu5uV4yd8vy0ObLx
vnIvQWU0Ii7x+dBCZC4WryAsl9O2PivT0bAzqU4dmXOrmzmUpILmUXSbVhkx7drQhOVkmwV0ZEVr
xAlOtWIVE8sxiUDJB+/1y3XVi/Ht+I6rXtb1QIFbt5vW1V/+slje7SZUhwk6SBERf7EbrVMwNY2Y
lpxrzGlVMa3Ymo3PeOLRMP3zb0/Tds6Lfdru336s3x0igabpSlQw01Ww5hpNl/JUEFSMa2NLEQ4A
4XINampKfv/DK5IQh6df9fLdDISWc8v+/uv9893zl6+rzyfFOuKK5lqoqQts9yslA7yErwqSZatg
O5QHCMGBSBYJ65ENLP5VTQ8XHt1ti/ltvZpq4AS8mef9tozjw4JK3x/Xvy4e6AWvuHb38KkdKXwt
xFTC3vwyNR9a77LMDLEwwlEk6idwAEkRMbEpHU293J4yfOSZlonRrZ22iwEmcfQli33b6ocSf+y0
ApXyZM5blKJjKdwEw6ShUg2YNdVCCLYmFzjWMZt4WSk84IwOuHLVSzfYh0vpZvtw+XRzvX+vOH23
xaaDXh41a8kiHYKlZykRVC0ev3ED/wi35KOP0jb1Qo5lNv65ZMvstmN9vLs59fE+2PWMOfz718Xj
8z83zbfimiYf7GVy86lYH5uFm0eEhGPKhYUKnJh01EoaG2y7PPmHocfyH65f9TLeDgQP+3rOH0/3
z/uXO7wTU0QKLuigLLNKZdonGaI6QY1OYOBALiKL3oceD9I9feFOq2V+4efF8NxeLIe7lPF4XZlI
mhPTiizmAk6oTK6mWFNemL9XlMOPkwftFffPbuo198uR5vMi8uf1/W+0VdTUoqrJ98TqrLLassId
fA9hAWiqGaV3wCZ0rcq+ReLjr3j0+Ca60iszYA9+qefdAPvBpoLLf9y1u70pcw4QPy2kAVbDrizM
+WwIUlgWLGh+8aXU3FSqTr1YtaCxz9db6OpVL6oZyG/4jir/8scR+9GSwsCmqURl63xyBgE9Twd3
EvMlFaa99ipSjrdLjBxlwP8YUSA8U48EMTtrfFz/+uX39XF9VZFFKqOxD4QD0KY0QwHribJpYMTk
VCKkV9tQjPl4M2HsQBirbm83L5he/pOODfD9xFDiAPbvIzX3JgFwozRcsudg5kAG3lF6VOpZpqgb
pX++E4Pnb3FzX7z7+e5m/WXnUgXwPGWttAWqU6EyaamN19BZomA8wwJ6JZMKScgXd9I08vmtNF3u
pV4OpF4JftkWPsS/UYpza+ZKXWsqsIgmXIvghLbSGQceEBQ8eGI2ygJxQyNbX7YFjH3BFnD1qhd1
JL+7OSv/+x8mOg5DniBh4GBTMOcpVHDjWkkRhMpSZiZwxXzmMBJwIqFTA0m4XIKcBh9LP13qRR9k
Wf3Kg/otNknO7/6TvlV+2B4WJexEtcJkLTChlMmEvED88KJyYawW4i3bw2aydHrcrk8zC4FveyyO
6Hf9l3fWmmtDR3jok2BEilLxFpiYCBl4GKVGI+MWLFcEib++YUNVrGeoeb3qRV8O9LHzTMlPy7v/
/rrt3J0OZHjyKNk1AS+mWa5YDqUmOq4F80nyEkwULbyq1rIbfSzx7mont1yfYqMgb/fV6ckBfL/5
ft/9lvJTFKspK5uB5DJiGR13KFSl3Zzokaq6amx7oybqEyF6HW5PEVZQC7Vjqb9/f/e0T7FrCQdE
rpPDcXMHNy7I3cBTBhYQYgCqc/IcW0nr/6+E5ZGAV70OeqDYel8q/u7DT/PO9lg5oDQo/5TZQZhs
sHEgjRq1cZZbYbl5m0XZP7wTWatTngYkvYcZ/3jf2ixj0FKmM8eJEatkykH4qIFyXVL4r/KkZH2j
jMHh6Z3QRg6ENnT2x535GstddpPIWa5WSUoRV+rvtLmxIIBVs3GFNwn526uKjofRXzrsPJN9PZBd
7Xsa/lg8HriN5LTzjXEyRkcle1+ArqvAzufgYSBiXlcOolNn5OYwSP9wNfDi5oTbfMGeWt3TpKnr
qfNo88uUSIXJaYiSFVWZjYQP8YAANWvhSxbNJPnids0fzrf25g+9wANKEkzQ46TJ07eH58/r7qQe
IRg3gYDpc0oKqZYwpax6AqZUqfUyeSZMC817kxx/+0bXTSn246l8p/Xa/U39RAQzmgg769B52man
d/vHeUoPkdq8cODfGplNRNEooZ+q5SwZ7QHVU03OXczZHo88E21gjZavLzS0Xf/w8dDbZumQ0nTk
l0+wx8CbNErb6iipngoqE0vVzCTtis2uSiPeDi8cJDmzKT+OWuHCzXqwMW8oDrvz7xN5Z9Q2qx8p
PWSMxfST7xd06pADQTTrag6V8yrzxRbk43F7wUbBdU1Vs9ttClieZIBNa84aZmqmQ+2Y+UTt36mC
JoHBxyL8m2WA5UDk9aDIFm7t/DzV3cMvx3a9zbdITq13PhqeEGvpvAH8kpcW2IYCk9GtxsY9nNZb
JCDeH8vQIf+HX6568Qc47XZ7ihITQF90uC9xe004WRQZBPVzZq6oSOUB9wn9wxoaKDMWKaThnjga
q5dhUDILtys/b9dcLe7pPac/PdEh8uf14+1i1bXp5Oa0kcEzpxxNbkHoUUkwJ10x0dhQtf9TecBj
RzkS5oy7HN16PAELPjj0uRDajjxT3zmstsxRaMoD0Op4IExO7XsOEIcs1rNQsmEZpDGHRGcQ5av7
3l/uHz65rVNMBDtQbLlHbbMvNH6nVNi3ZuuqoyAckVXCD8qGOB4A4QCqSgDCqOM40I/ZizPILyzE
SuxSRE+Lp3t5ffA7btOwBkfuBGfWUwud9RFuR1Wmfc3YWUo4N+sk6obpBRjUvRaSz18yMR1ebx/z
l19/e6TTkLTSxk4zM/VwkFjcWuBxmF1JdA6GnLIvhWqbDRgnBx5eXSqePetsyXh231WvxGALKz5v
CTxxwbSFt/XvjZdXKecmY2W5iUYNStS4BSBXGsfSZ69FlP93L7+9eNVLuRqI7tQgV0YHV56OE69K
T2GyGpWCa5VVbumAXLMshgyhdc0ySt5SaK81uukZ541tutzL7/RI/jn2HMBBgE5K+k35MlVV44IO
G1HVXjnfmFeGXjKQNeAmlFXibeDm4MaZPqOt5G8G4P9pd6Jof4ZiOp4Er8+VA3USnF5CIaqFDxSO
cV9tCLGBS75Jf2N3qOk8V9jf0qu55AM1l2q2bP/I+TjGKRm5MyUw7WD7impHwaQMl5R4MaAMsP3X
7DQMOxYYF2ZijnbXzd6F09f23v9+HfbQkexBiAxTBbhpIlPuEj+Srp7ZyuGcim4xzFrK+2E6CYwb
OE2oeshWzJMVOlmTwJIYlZMROwoRUTy+JGlLjDyaUN4qWTES2A+mzFAbje5qypuBFg+7c51Twzbc
m9OaUl4ErmR2YH3CUz+AzPTeuxJfxfr3g19UYtE7cWsHgtvFnix892Hyn/PpNpXLpOglQo1kDqki
VGsL3AV+VHxKLfO3mu4jATrRnRlsEmfx6bs5Xzx82r0Jh6bdbU/9uCmm+laFEojyQvipf1OyQG+V
A/gIVMd3sug3p9zHIp3rYjjc0Stth0rP0yS7gxaf72jNNkctOCewSAd+OFwK47UCRDg7vW2D2ElR
wYLgvkSpXtsIvpXgr+8vn8b46/tOv6U55YiLZcDHeviKl/c/IKJxvzkvbCb05iTAA5AFU61Jpgy1
DZGu2WWEZZctj/xFkr4d/IUXusxgxXIx8O/LpdtVVOLPbWqTPRxLnCpvsG/YDgJvqZT2CZxTW75j
YLrVSWPp3O3lPfjz5fe3zKhuL0avwXKwvZbrOS97vzpGFJJKKtJcCwrE2hkh6ARdS4VSx/jhqQuP
eyAjLaytr8thHj/iDLBbnUETq/8l7sqa5LiN9Pv8Cj5uhKMmcB96wxlm2LIocqXdN0Uf1eSEOIfn
oGX/emeiuqsLVeieXnlC+yDOTFcJyEQDyEzgyy9pY0/b7WSZQ6DxX90HF/6ygB3rpB3mAHZU4WWs
paLzDgIqpbhX1igJ//1Bp/hTCaeqrRlbOkprxufnEX/pH9f94/3TFGiaIS50OfmOWohnuHfIsOMk
uEk5JCkTxPDnvexDo22pD09rcfmuIa6wI+jwabdtZVBwF7xBb84ZivdyQnZeCYPoOLzfstGIGWZm
0lItgVg1JFBzBF/48nKH1WP2ao+H8nIgbvNGyBi06yJFRjCawEooHeDPDO6NYoa0QCQNZ7/u5sTu
Ur9Uq7MTDXV2Izj27y+rRwS+3Y2jqgvcx4GP4YPH8xtwIR3DczQHO2SSmHMRWeDt1MN5ezNhlqer
a05H3yF8zJ9ebp6PX3C5oskOOQddF6TAzc5gkr4Fv91QJUK02tg4S46pmqkk4GzdkIDb2XaFccPn
r3vvBS/d914MB6eQJBiWSDEjU1APPivXnY8wLolpr4X/3V7M8KwWl69a4q5nJ7NrLN8zYpsVLxdb
Rip0aiFMdmgikDnQwlpOEjxfA6vCsHOHstMmZyItI2Fw//XB0/4WP31Y3HdiTjpn4PPFiAdOJmH6
qBRdEokHJbLWTv9R952jfFO1Nkwv1YIPtwe1Xu42VW6uYjCICG+mpnAPQVxvHEFIkPKWgg0WJxbI
2FDd/WrX6L4nLbT4kIyOJlQTvMdiEJZzQWwnA2bqZcsRL4iYIJJsSsYYflnm4b7xMzjxGSJkAxtJ
Q+zdPF/S/fDpb/fPN7sJmcHgVOt9hgb4zdQbpTsF/haMJm7fnicY3CCpU9mHcNF2OevoxNlC/VKl
kGjk8W0Eko+va24GFCTc3+1uPr88jkrtUdt0xGxz65hD+D5uoJw75GhIsmMZQiEH4UhO52+XG/2c
omhYvFjppRtZGxt9vBpfP90ekWYF88aCC4Q41lGODMYEAgBjyi6sdBRRWapn9C2TNuq+7fJEdbPS
63N3akPMsAfyEq3BVSzHf+W3Yu9ZsgxPNhOYVh5hwlhFLQRl4O4YAnOGhre7VztKc8IAj8+vah03
LcXnUK//fnx5ek7fVl9fyvfmPk8x2LJMI+EM4g2Fw6RMDXo68Jkxt4F4CDh5YhdBdFodnTjgabxZ
q7aSDdVWesGesUFq+P95hD/7x6lzCYFKcBYBYB4TXYULHbpMHVFRBpMxHLuIUrPu4WTkOHmn0mPT
4Jra4HKvmVf//H5M0SlUznjDa9EMMJUz3m92NIDzySnNnQsZw7HMo2Sau/g2YOH3Z5N4xseVcn3D
3YIPV7O8hfc/fHrZ35PZQTc7XLNHAiG/J/DNODzzhWimsyRAXGy1Z8KoZF7BfI8tn0IY7h/PpF63
pJ7T4zw83kxn7/UH/PtwdsEUxvUpEQLOI4XtFy9SU2CYRUI7qZgEyyKUteItvpwPtSjTt8qjmXrL
zIzNTqxmFJVN9Yb9cM91VtwQEw2TYP9xg84DMtkGGTqpWfBWi2Re4Xv8PadRoyxndF5shjvRN/Q+
YsA/rsC/uNv0swt9oagwLNguuIgJ8Vx1njDeSavBcXRReELe6EK/lmAq/FbIpXu2FXuEZXHq/nFz
NyIjuBycGhND4NKAuQ94+8ZS57mVHYEg0QsdvBT6hIt4bK0WQ8mWGGMwN4zCtR/HkFpMvSwBHTKI
yxwghEf2eaUhcnEqdBCUMms9hFhxZs7rxmZyLDeWbaF9MnVayd8GuhKISTCjEXdN/IlLM4sINlpj
YiPYbyTxtBLBMXgYRB1xWryCHT+0fSo1ZP+4kls1sqLgw/4wfvfbyelCodVGF0gk7zohPJ4rSA5x
cIT9nVpPeM5RqBn516SNWd+NKaT6eW2Tv64gQPgyIcvSbMgiG37ByC7A2ibGFnZxcCq1QM4D1yUi
qMtU2MzE27k+tTynzp6n79Ra90t/eqvZkZXm5fHrtRiPHsy1FWW6gqsJISrEq0TCsgElMfHVxA42
doT4RuPinG9o0lIlgm7kKsKHesLT8HADseUvR6pmXtL1QrRUwYZKPcWYBBxgL8COJBhfR6MLtDpS
qjga6gZrcQRriKPGtNaHzerhiKAXGD1bGmGqSbBjGGbygHzpJqCza1giKYCnYerBmDZS996gitlq
Teaz8P7zzd1P7wd7MzhtvNx+0BR8LBGNwm0EK8lAdOnB6BjGWcwu6ouuFvcdnIw2l6+etjeTF2pd
G/ktW72dsylvV8+rbf9ccsieNkXjgYuIy+GYN9js4JtHIlGMNRhy7inwipLI1AganMwXuaoROoqH
jk6rs3itVmqrGkotsHpVXbI6p8qmmIyGVQWRKcwmp/G2Axmpyu2VFY5Yc+5kaNp0LdquYZ0MH2f2
5uXh6Qic4XrgGeIqOQFeeCe4h+DGSeTwIqKjRBkJe63TUcxX+rGdq7qvxuQ2eoQLPj19bVCbSRoM
wtI6mLoRYcCwuhwmmglvYqQ0yjQTYNZOLYNuLG+zXp+qONDI+cekMsIdSgHTjaJptAHsTgIv3MFX
p4S/7DbqlbuoWu71piH3RiwpKb72nz5+OKyRAvv3QWdiTEczXuBoZTpvM2wMQmcuJWzXLR/0BMoI
2j6DLYKntdSb1pTbbIojAl/N12KZjtDEkeXPCeJIACeIM1quowUEOQkRxBEvOmB7N665CKYtVqLY
xkXL1i7s+3q1+fXlocJ+XssBlnI9rE9qJfQOgyg0ktnopJBDm3TWhww7vlDGXkRK62c9TQdzeFbL
37LUK5y4tGacfvp1KN2WF/BVrvdxYwjOxQT+ksQJYRVyR+LRpDQuBKlcDBfxrRz7OsUjfXh+VQvd
mMprMedUHs9zLTjJezIQlSMSPMJm5HHtefDWPYS8iC5PNpKoh4j35N7YONrdrhvo6l6SlbYL6Ngh
vw0nBSLIyzX8MYcumOCDUqIjmHnNA7I/cLBL1sOc1ZzCDAz/YQ7d9I2rSuCGMe3lVs0ORv88UN/W
9V4yF0i0ozubC2QCwjfjJfj+XjHLiY7ZXMQBvG/8VNJ0eVgJbVtCWz0ay3iz+nx3/4S0D/3TE06k
OtkM/u/BEfTIXt8F4iDGFgwcbjxpF7bQBpDo5ykr59utRTTLsABW4oJJYw9+2FU1XQaYBmUDxQHJ
MZgMEQqEzrD2wF/usJ5YJz3ngRPv3CtsugeExWvYgOV7lUrb7XIn7Lc7ezDDvz2MSw9cc1x6bMgi
gGkNsyIL5MCDyArcbSo7BTF/IFEGxdrMmGNztRC75XbW94TOxhWixPzpMJQDra9JTAVibRdgycNs
pbaz1LFOieQsFmeh/PxdVWnzJOdkrioUgUisIScd8wf/dUygKrVJBHj8AXmeg0PMQcBKK3jwHZlI
UcYoLJtNxn+1sqegC9Hq14zO2mrzZQyF1UBSGGhS0iP/GPjC0SEbLXKyME6lxR2ftCH9k6ZmIiyZ
VHdE0QamFn3ichFQkKgDlWrSRnPhIPDlmH7Og4eImCJfJfEenCiWrHp1N8SGT++E+PSqkq7h3e2I
mcNoi1EKq4fnl+N53b4yQSJegX1HciKKHO3gZ3oPkaU1hEfhos9vciQ5leAMynn/Rq2jkQ0dVyPB
7Ye7z7MzOiqph6UROpU0ktoq2xkCu2QG9zmxYGyM/I3O6MbOa5FXS4u/o9v5kfG2f/r1+f7haVIq
w5RM6PITT/OZ9Ckw0mWD19SZsQ72eNIZSxx1ElwBSS4jqy8dHU5E8IVTnPWLF69qHZYRzY7bka/i
ZvOCEesk457C4pDFkyFWQ/DUUYHfCS5Zy8Fr0Mw4JQJWyJwdXM3auqq7VA05Nmw2wMfj6mGI3Pb2
5g55uscbUjLmJoCrRXjKiF/FlAmksvI2glOgTDLWCcWyvIy/ftnTuTvS+s1ayw1vaTmO9sukxkWB
pkQXhMOkW0chYORGC5wvtnOWWk5V5CTNDmZemlUtoJPG+Aoy7sarlwltsxmoCMBOBgieDR5GKKzf
igl4Hs8mtJBJw9bsZp0fW6k6F40ieTth51xRP0Y8CpLFrSt3X4FmRiAa7WLKCIaBcfBITucwDZNE
sJdKvfndw48nirX9WFVp20m6PKHeqQUwATf5ZZk8I/fQRM2sjwp2a5qx9EPSyCsqTMdUZhQ5C5l/
PRR/zZuq36m0QI6thRZa2ZOlsq4H8At+UajI/i9eip1kE0kIGrxwiMJgl5YG/HEILklgUjBqmPZ/
CFpxeFbr2YCRINHgjLZ2KCk20IVP4wvYQZzgKoOviKkcjniM41nHktcyZ65gXVyWWXNo/1xJszlp
eEnXWkhv2EjxtY8Nb+524xoWSJc4XBJFQR2VChw4A7GyERYLAnOINcAZSBAjxvOnccdWa5mYacjE
6UymO8TBTCo/0Gs20H1BSCm8yKnL0sWBq85JWOVCORhQCAY5O1tWaNpwLVjj/HK3Xq12m2qz+VZc
ggPr/4C8BxeXgn+EdFzCDphKAzatS84FTsFGB0vebAIPOQTtCVyeXdUKrBtarcmiXNfTr+5xfTMa
RLanPSy8Y4IqKSF805ogyRTEy55hQhLNsNNCIOfN+bhj1vrpM5PJS7UWjdTH3YbMrfzAHl2qY+Jv
A3U83VPHF/BrojwZAW6UF3Lg+vEhyw5cXgj4tRSXlHUZAOenC3Pi46ta0MaU3/Djyfg+6Z82CAUE
SSQ7hofQGYJPLyCqyl53iWgCliRZ5+08f7NqrZaE85YkfGF8NvcrtDmmJApiSINlsdAJcqLgxQjF
woCyixaCvkippeY1Pipo8tSgwaNaTNFwLjcWBkzV2JeqttzAk1eKy4lkE9LUW4n8GUoiSSdEpkk5
GiSEpiGnN7f/R2lOIWFa95C7TWuBbtU8fxNWxwZrDDxuS77gkCWC0+paDLyk0WGcK8ANwJgzKI2V
O0KXcrDJRCGSTq+t0WMHJ1fo8ZVKiW2DzRE/nM+rEiIiRPSY7QgCgpkJpAseS9tYCSEn0uMGmPVJ
04ik7r877hye1aJuG1vJdjvn0fj0ZTVUW6Z8qLdM9xku2RrOrXAdQwIhzmBBeoS8ZSdpjl65GN1F
0cHQwYmAYHg4E3zXELzXhWi08IqF7z81Gc6UdpEyvCU2GN/jLa3xJnQQCtgsiRLZpbdlOJtIUunQ
rxYL28Iuvt711eAXbr2T1NOIjvJeyk5DXIPgLwgg0RwZBT/AFSDBnZ8x0+bb6kzfuJrKypd8kcjP
JmYKlFssLKz7eP/1U3+3RYThIu06ByZSQOhAwnpOWavOoTevhc2cGKm9VRejo6vOzuCkq/euai2a
qm0LJg+zF/P/4rTst/MESiV9EFzDkkX4E0SWAacXQcS0x5IsnvA3Khs9E2Emft8Q3xyzP9/PGbZ0
kjTmgANOSp4tFqh0tKMpSEqccETKNzocGjuvRTZ8KbKRq9lkKk7FTwHtMZPX5X/Y/1ZIkHUMViEB
teEIASBgmHnugrYkSuIYj5dXHP8pnHFrfgpXtZzrpfBWrKYF3D6sHp/6xyPma3BpDJcOsYGdcsg2
7RyCNHwu1ekEiSkIo/4fC7hNhb6qlWtqvD1swIebtgoTP+7GsFYKdsdaE8BKYJlJgdkv8FuWupOR
OnRNKJdnKYkarc+EbCwDa9cNOoX+Zze5KZVYvVEPha6uS6E9zyAuzxJ8iBQRfmAURDXwDwe/WaNT
kaS6+Pb8Z3fm8vxnV+tgN0sdVma8efjtdspzwkqIQqNDSARImJCON4HHZwjriMYsGAbDr/OMvO22
yXKCHYlG79uRA2zzpz9NaLGLdyyyMrCTyI4RjRbJGeTqQ2RokDmmtC9AUtcWaDjolqxN4+tbW7vw
BvfM0gduvOWV94QhG0w/CYwTJCVB6ikIeJwVMOcceI0pJRJfOV9ZdHfCPazfqhXbNL7TjZwfhH/f
P6+2+yuVfSaOQYZoU6gpsaZlch2lCC+0LHdWw3cM45s8IcawpN4OXniQ5JQtHZ5e1eo0vJutmF8b
4Vn2SyHALuWw+bArUoO3zcgT5JTYl4zXhmGJHQ5ejQP7pC8mYXl/hoHl/VUtHmvJPG7j3xcyouN8
L1TPjLJS7EMQHZGc2IGoMKlM0pgMorTks+letVL135PGauvFHAr3oX/EWtAIgp4SIIhy7YabVYQ9
iQubOiMKC3xBzMAuAFutSeBOUZ0uwqY0OjqBJV++WCsmTEMxMw+J1ve3oMi+fKsdkrMKjlMq1qmI
NPsatfLWQ4iRSAK3JOXLoIweemmDbO5va1mXtb4t2bF+hrBp2V2wq+/+i6uCSlS8HBxKoZKx0WKC
Z8k8wZpx3nQMJrWSJDKWyR9n3+FBpetuyW0OHxq527KqAt0RCCD0NVWldjsm1CQsyqcLTVLonDZ4
LySQrJ6Dv3W2QuZtY/rvloeOlpIN/LT7a7T7u29HWyfKIZYXwlMKm3jASjYGhIE5ETuXgmKcOSEV
n1+gTVq5qrtazlKkAZ9tWR/72/vn/ueb/h8TqoTh8rggJQuOBgwMj5gKIfAbx7KdMImdhUgt+cti
4mU3p3y2+XtXtfzLPQ3i3/ld+OrbFLMyqKOwAONwVpgNY5pG02kjsX49w7AmIsM/BVMjJZOvRM2v
U1lM37iqhZUtDeZJbCm/LxDjMbgseTegg7Gw8+lyPg4hmfWWd0KzlByPDOzmJd/Foe225IenM6lN
S+rNwZY8rG4nbttQqJqHhP5ILHlcBKIvT7PqwBASSaykPMzY6SZtzPpe2l6qFJmhwL7dFI64vNr0
I4T8ACIfEGGC+Yx0fcQj/FJiDTOsuWwpLP/o4J9w0eXvoYcTG9f+6VUtLV2qYPGYWMzDwf0dhN3X
+0ZuJZVC7EimEMki9sWmnLG6FBNa5RizfCvqyLH70y7G/BYCtVhGunRFxxz2p79/vXnu+ehlyOLv
Eaaszxbx10ivACbdBgNOtpBGemsZD7Nr5KqZSoD1tjE91vtTvwKevft8sz1GquhSWDRkCuliNW5t
zoNLAV5YB0aY5VK0a56YNG2l7r5vrOf1rlHgEM9nVjd3dUqqjxzcNAT2cbyAsTnh/goOYsYi9VJL
YdKFkdjY/slwbHyj1mBnlxpsqDqJsyiBHTLG0zJPi6kg1yX7kQgedMgRPDTEOWcLvxHQKTjhrQ4C
cbkXB5alizOxZXl+dZV+e+4fwU979/399pju/+nl9hba/g5UDauvX5/e3a62/bv1P9/dP3+Br+Dh
8R5syxNYu+fV4+e+UPU9fwHXc//guzJEz6unX38BX/CXh5vtd+/48FkhDv5lA/8+99+9I9MPn/rn
Uptv/3nd8WvNk/+sefhjohWMQOkPqW3hG2/1B64+tf+3Pq9+/v7dx/5zNb4f4a0f7r7+8x0WbMMn
97t3/67s+nobhWH4ez6FXyaBdKr4PzqJh6ggxCBlatPb3RPiBpqqu7VSoZru25+dtL1tWormx+SH
bWI7hICdy9beHcj92P5JcIE4iwUc+mHb9bsxcemTr7BC98aG4ZVSpLtmfxwb1O24Uyf5osQuwdfB
2a2wgvmNzR4P25Gq1SITUuDC2p35Obxi59jvEs8jvIdcL6I8kqya3ghKnNJysOmdMGRkzWMUBWyV
5UW9BPnzIQMDfS9WcsMrlvwnE/TUzRY5bNX0fpW8yCkJOqj9UH3F8DnUDQhKW3g7hKnRNzF15l7J
0lMJWgxrKpejE+0/8g7imSOYfg4V9XVd3TAq2f0a7gsJz/oAUlT5ad99vEfXU1w/h1poLFzt9Z1N
0HgeIfR84bkL0PXarqMSr4A3QYnjb4xns1JlCAGnFqjx1c2gcVwywauqXkwYAT0vEmeo1dIPXLYR
7ePYCly5Hv6CbJ/BCzzziCF0LfmihHzDV6lZgzDCCGHrsX36DROEweQLjM1GactldsVg0SwQ7LH/
RQVdhBo/I9cAA4c1Tcoln1LA19BC8DybwIYemqBpqmJZZin6gpkoRYK4yuyHnHBDP9bQzbJY1Ol1
FcIgKNmLmgqATskyI28DGtdTHL5o+5oJuX5hLpC15NWUYakAZK6h3wA98Di8iwcdB9qtMWrRBMDY
P1BLAwQUAAIACACimQlHu049EOADAAD1CQAAIwAcAGNvbXBvc2l0aW5nL3ZpZGVvL3Bvc3Rlci1z
dGRlcnIudHh0VVQJAAOwCMhVsAjIVXV4CwABBPUBAAAEFAAAAK2VWXPiOBCA3/kVftoiU3nwhTlq
KlVZh9SQIcdiZvJIyVIbNBjJK8tkMr9+Wz4hCcxu1b6Are7+utWXHcuy7J+O47vgJ35s3UXhZHI3
W04mmeJ7oiGUu4yn0G8E1TvRXIppkkilL3puw/CdkR3QijGfz4SeTH5wXROuBYtAf4FC8VxzmlfE
UDL4M5V0++myspv+BBppdPzpoud1YNsdkyMwCK1eH6NF/41VjZmJXKuCmjCbo0NXdEOURSUqNdIa
OzXYr1ywi57feY/JeGilKRd6VfrtDVqZaw+ofyQLzsiGB7LgjWzU+SMkodZ+VwazlHdkTyKqeKZ7
47ZcyYCNR1ZXFQaYE8xCoetafb9vrvakpJYhSdNbRXYmr47dUBhLGG0ypkFlCvC3JRmjEwm+ix7j
H0Db/BnV5WsGB683RJMqyX+0Rt9JWjQ612o9x16oVTAspwrLSxI3AKiU6LkQDmn/RwBunRdw7MAb
W88Qh1JhYr8s7+f3wDiZprAD0yeMs2vGvuWgrtd4EG0Iky8LKXW/NerOTMq9Gk2JNwa/Q7dEEHmh
4CMiWvu1NUuSkQPnAuMCCRoYllN2sYRSaMIFqAdsFHPTQQ0kceJ7B8Bww1NmlGYlB8fnQWqecNMU
wjy9dtCSdWk9L2+x27AVpPpcPi8g+XykdHVpOU6R1qqhIvnmUTzuQSWpfEFZUKRXJqigDSrGbWR9
HH0TRxnprL7t+6BO2JZW4YaINUSyUBTQ7bBz69DTbjOiTHGyDAQrMf3yOk8kz/HGT1q9uTSSR03Z
qDvE5drKqyL1j8oYym5lRVzDkuRbk5Rxw4gh8VnHqEfUqP0rkGt3IEiIddamxf9VQAHMIHLsQ9dp
GMwPRv4x40bSwvTgU5knnNyGuVQAt0rujNJSbkEcx1se8V/GpHzETJpw3c6VjTvqrKus2GUtpn9W
NXoVdKOkkEV+j1VCR17niA1/40hBju/mjYv1dYK7slrM0zJbmDyTJL8DJsPheWDVy7dc8Hxz2MYh
ofi+gLxsUlwgbjuxAbXtwDqhiWnfAN0+VKOKZvVMDYIxcQduZxYVsapt5pIwEwvutCoQc4D36zNZ
xKlJUT0hnj8AEngG8pXjrsH/xXvGAijwPbwT3kOekzX0Z0/lx1gIKNsNh7U8qcU3QLEsZQfU0+O5
1B5Rt/X6APpFqi1+1SiadKBD5//Z17jx5Sc2NsEbO4POM6LppgHnmk0mq5UzmRSC/13AKsP5/4B9
aXWaDMeuSPWKQYpf2Y+0ryzcGp7dxDLAHhqdjuVRtPdEq2Y0B2NC47hatYtCzKXMcEBw10q1e8a8
oe4/UEsDBBQAAgAIAM2ZCUcgOOCs6kAAACcBAQA9ABwAY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8t
Y29udHJvbHMtbGF5ZXItY3JlYXRpb24tY3Jhc2gtbG9nLnR4dFVUCQADAgnIVdcIyFV1eAsAAQT1
AQAABBQAAADsXVlz27iyfr78FXg6JU9CmSBAkFTlZoqiyEQz3o7lLFVTKRUX0OYJRWpIyrHvr78N
UAu1Zczc1K2psf2ghQC6v250NxqL4KuyiHhVDdDqLypm/WA+z3j/Ew9/T2vx5hZ5zfO6P+L3PCvm
M/iM/iCEWF+Uq6C+2zSGv9OPRbaY8er04+XZh3Pv9JfTJZ2kDGb8W1F+Pf3Iyyot8urUOf185U54
eZ8ChtMncu4/zKPT5fPq9DyILidPbaqMY3hNk5SXg07SKkvIG0mZpr9CPXjt4z5+daK4RczRzeOc
r6p8tpjKKOpdBHV6z09AUaVQ29Va37/++iv6A39Rrnk1B2WkYbZsW93Bc1v/onyoeInGow1TQ8OK
MgpqfnqTztacdA0bqmapmo2wPcBkoJl9k2hI1UxNUy4naBs8aAzBw88Ia327b6AeJj6hJ4BjXpR1
qzLGipMX+eOsWFTowwcJxGLUdhxCVE/XdNVwR75qjlxXdUZDNsQmM2zDUxTFLYPqjsfo5q7kQQzt
NIRGaTUP6ugO/bngCwC/Uf0sSHO1llUVxXuI+LwGBCttep/d6dAZTR3X9SYT1JuM3028dx9PWjWF
8kGlv3vXF9PxxUfnbAzVR6NrUT+okfagLf/CMIhDzhNF+XiOrvmtsEJ0wYMS6qzKBoqqvkWKUNV0
euN9vkG7f0tiWItBYPigth+AzjX0h6hm/f4FlerDafntAU3O/9u9/PQ39w7FgUppFEidTuY8Ak+J
0DhPinImHw4U99qZvB9fvEM33uRG9uG8qNI6zW9P79OYF82rGgH1ssgqNQseealG0LWiff+unmWK
0lgF2MTSTAaDJxqHtuWxvwX3wSQq03ntFiVvuua/1n2NMWWWnlgcfbrxJSP0CjEd9ZwK3EqgqfrR
fD4gOj5RcDfChAdGyNFvE3cw+G18MxjMy/Qe3NIFdaQZn2TFNzeoeNU7AZ46BV/sfeRRXZT9uwG4
yImid+aX0PAov96qoPkuVe0l0Gu14I9tRlBvxmdF+TjQmUlOFNKNvYG5xqKG/dnZOK8Hg/+k9ZK5
k8cTXr/nizKt6jSqGjDCI4dZEX395XXTznvg0aQGzL9ITAZDPQAM+tA1AES7AmK6HWwBAvstHy8n
170dbkv247yqy0UkNLN61IYY3UEIAKOt6lXpkqwnyP6e5rFEbUJHygLRw2LkW5qQoZ8oRkcRdBzY
JsqyNK+nEjwwIJSZCutKiBkR3SGk6ybWFfOnUbI6U2IHKNnMUuyulLQgidD9THbETbFpINSlMwVr
3TwpCWPbQhuHiTnYDljLol660cfzlQnAUF0XbpBlvojNjd0yC1z5HMyWaiJs4I5uTJI4Whlkzct5
yeF1DUDwOmK/v00uw/9ACFkbL1QV42PrK+QFQWPD/1o3+hhki1Udp7w9AxddVhHSUBvCYQuINGab
QnzCeifBtMRifBkPo+8J0cbzU0QQAX3VsvFFgZ7sJHYb2OgA+gQzRmy0rDcYvL85PzvncRp4GRfj
4mAQp7ETxyIdc27hweQuiItv10VR99aNNs8aQ8EAordLSSJkuqUBRtoJYxzYNqcbjGtoPK8WJT8E
TcKgYK9t5mDAQkFGNwVphoX59xSU5mJM5TEYU7HRicgxYPTm5QW4WWNxlB3RikmFUlgnXGFkgE9t
cLl3aRYLXuN8OcRfFMtsf5CLT48bbBLSa5EbgMvLsfmN/HzNkzdbld6+hs5cZMuqMpG4zC/veZnA
GABlbJG9lbKZoOotiZ3stijT+m5WQbzAtgXymR3lw5wm6LA+VyJJocdL/e/Ld6StbOXeBfktnxSL
MuLN+GbsiNC4lOwaqyt0HB2HPg9KYbHzOc9jCaUntXsVVBV0wFVd7vSBzKN08KhNDZFKCZXanXDx
yDIhk1pTbwy3t2XabrFJFiZpzW+C6qvsYWyZMP2o47M09B5qsATAQBiDdE7rCIImNN6AWIZ/weeJ
SCh01EYNIqHEXRHwJEDfZbbG9W+RkseCd5PQYl1vnHi3hbQWXQyMut4NThwwi27DGRXRQkSHK2kq
MK6smN2UnPtlMROVboqvPN/WmXyU/o9oIj+CjprOE5Nxpy5mabSuJvoPZr466YpWg2H8u2jni9l8
jaT33aqTxzy6K4scZtnnYOvrgXlLGJEoUwOg0q5QA/4XUAPphfsOKL5P6hKmduPZPJMuSE0I39vt
AZgpOrzbiBJFJGircMQjED0Wo/guvCRbVHcbDa6KP0Fk5U3PCmUd9Mpuo0mMMUtaoWGbkxhpY2n+
lLR8T8reLapHSUygyR6fsyKIpcBpnopZsfgOyu/FxSLMpFnoTLKuZMD2yrIohzDLFMkozD/0jgHa
1DWNtQJ0EAHPFXFwtzsefb1oBs0m9slMq13JzVKhniD7Ks3AEKroFo1DlhAt2QMRfNvgaLSx0kU7
3Sp5PFwkCS9/WY8Oe+2bnEfMMEmnEG2YgaYb+gbZZBGWS5qrfoKk0N8Ct+koIEA3PdU0EDmAmPoT
vL/qiI4CIQajAXR7U28wgPfrfRzXPOLpPd8rPOdVFdzy3vhKznfznMtYDXmBfLIsbpyv8SXDxKh3
jM6SzXKeIJSqd5KFRMyK9LUsF7wWC17LFdENvLZI3SXABPKwY6SbBBzSGUK6ITcMzYzQDgoBtFm2
WsGs6ngwmE7xYLDI0z8XfDqHSHoA6Wu0qRnDSLzI6mnMM5iEHar9FsnoizW9tY7DYDQgtKMUJo2t
41Jc5mt9N/xYi58FAyUxuq2/BVoUhk3ifL3Iz4piDiMjZM5FOfsE3dOEU8NGvWSRSyxBNoBpspCM
deSEKcxZj3O6L9JYxgkiHLOp4frrGSPZCuGCiV8s8rhZCW2zM5MksRLDZkaI0XTq+tcfLs4uL6+m
48nUdc7OxhfvppcfbqY3l1NnOrn8cO162vTKu/Yvr8+n/ocL92Z8eTGdymRbIVY3rpYZwXxXcm0k
GBVN8l5pcp1RV4jdlSLhSZsivAEpi2CFah1JMQ7Thzah9QoyaF2zFboV+N6Pb4oiC4uHfWOVBKOI
EUizENBxF6XYOvHu5SBZzMe5yJNkzGcK1btSNUMTLaPLBX9oyLrFbFbkMsMBoKQrSSOM0FSuJX7I
6zRbkz0XXgVDg1i0aFB/gvmgn2aQUIjFC0OhWx4ME6JjHix5MVtjOuVoOrqarJnIaT6hCjU6kjIs
O0TqHxeT9rJ/vov9HPJ+iGYglth4ggmTEAOCVrNQ/6WZDyiUdWJuJbZtR3vMy0UuCBoGUajZjSCn
pkXQFrlzmHCK9JBqCt3ytM22ymFqtqFbEeQl04d5NJ01VIgFnQXelaUhPO3Hj/Bhb2NoiwqPuRWC
nbaJ2LZiaE/edWyFOLGzxKDP0JIShtC8EUNIurUJNJsNbBjlDCwBA9j4COIdJWIjiWFoCkppVeud
GjyQWy9AoHqsaj6bQsaX82ybZptUbPKQswAiixiG/5T1S14vSoldk/stG2rzZntni9xWf8DUINEs
tKo4/fZn80GolGhyN6ULtURLQrsRs00Kk7XA+ne3pIRKl4XqLMhhvCy76ydiEMu/cuFqMDNta2VF
+0CXtWkE2LYpzPunq/rT2W05TfN7mDOK4EjslWI6EMQw8G4TXKvH0NfqIc/NHuhzE9j4AYHNAAcQ
n4TdVLdTmInPD8n6BEIsxtaakBgn6c6G6VMSmwQb7cRmHSmju6uiCW8W3tkIfQpZA1KsvXwJY4Z3
9jB/QsK0vaP4l0NgEDDNgNzgYiLH75t1r1Iq9xQ7mVtk2fbG3MIifmymVnJPsRslUw82lNZjCzHl
pmJHq41stEdobbNs0A7SF5MP12ebWU4zkX0x6r+XUe8S2yVIqR4miYle/bHTnb2mP0/QtL0sI+d9
X+Qsz9rZR38KpzgJQQ0Xk8aepjJra+ZqBP+I5R/zIevn+ZD9k33I/JGBLiBioKv47FuQ1tMqvYV5
/CEvif4iAYlDYsaRhvIgL6qMc+FqurYe3qJXr/r4cB7bomJrQWSFMLXerLDUd2m1zGMGA0l4mhRl
a7GmWX8fDOJFKU3kTVbkt0i8tBdqZNkbnL0GyVZ/2Vv0trUdbRpdz9awMLDiGIWzIIP542AgVCgn
kX6QVQcWlMQk8826ttheT6PzRc0f3v6rjfVHJBKyvEYhzHabhTSYsPdaDOTZpc5HdUA+I0k28r3n
wRw6IQpgjLr9/5ev2cVoHcf6gaM7IBLV6a5IYARRs1AxWQknDyhYqAeRREgwDYOKDyAAnHQ948PC
kJstI3GqxzwSG3JvtkC8RmKZC/V2kP1y0jt5uzwhdVWkeXM0wCbiKNySjlicJvik64khgQvb/0dc
y6DlbeCtF+vsHYjiqJ7108Kw/fPCsDiF9DPDsAWpzLb2B4PzoPya5rc/EJ9NDJO66Vxo8m4a3YsQ
84OzEB6RcKMBMHmYijTUTN3sHKetIKak7dRALxXePL0PyjQQB6JlPDwSJTZPZ02AaJy7awQmZhCz
5eHKd+7yxLLk6xelWGW7ugO/bVbExe7IljcTk3UOicCQa9Yuw9uo+STWciQzCyLHqrjZcTF/IFRp
WOweiXXx426GzZ0leCIW+zvHKI3hpGH1rU5ujnMzUK8pBWu+alA15yixqZ08jzTLfvHvF/9+8e9/
rH9j7cXBXxz8xcH/uQ6OXxz8xcFfHPyf6+D6i4O/OPiLg/9zHZy8OPiLg784+D/XwZ/doR1sPDuJ
2bOT2Hx2ElvPTmL72Z231Z6dxPiHTlgyjio+C+Z3kCBM63TGY3nmZu9c2tOP/IZ2yFtHfjfUm8M8
WfFNngUxux8mtiCVbVEW/cRb54kxbQ7L/JxEhP68RMT4yYmIrr909XPparJ1BjUC5c7ETRf9Svww
dZFBlEkznhZ/8wnm9olPeVfHsSN7lk1Dg6FPQOAyd1eTS3l89MBB1L8iZUNE99PbycoyBdlrnskr
9KSmyYETqd8naiWRziTRVRf40AXjy9b5aLwz5XsCUoMGAUrS2818Uv5GSH8eJ611+hLRnktEM166
+rl0NdsbvIJFnBZ959/NVQ8vv574e/16oumduvl5ct8R35a/VW6TNXhMsW6jdzznZRotaa+WROXq
YWvh0Nq9gPCpTGBUDAlynattyusHDXmQ4VksPurmS9h8JmFTQ9HytuNvaX0n7n1eXnuM5OWHqMeo
Gqb1yUBBqAweBgeuI4aCcKugWfDnALWMdguSSLPAtMp4tyDWmKYJJnHaKhE/Hbd0KIGCql2gUWqI
n0VYgvt8VSCENnRqW5ohW+wVmAkVTFBpbUqimBqBDmyEyZf2bgEESEELa23u2DTixDJNUYDbBbbO
Et1MmJAE63u4QBRRQNoi4iiJLSquqCsxPdbC2FOwhiPBJJ1v0VpdG4zKJNtpgjVdE/dNlPqhXgRa
yllxm0ZBhtyrD81125gq8qYmeUf18gbudVOm3AjPvljMwtWN5FBfUYZpHpSPaDwLbnk1UFbXTj+s
b5xGKtp+yMSv5J58d3tP3l6uovX15eiNb1qWAfMa1bN8QyWjIVGHhumrrmP6NujQpER7+/e+vnpb
I/EhNcVJQtEr8PTlxU43vKond+ls6f49DTRBRpRqhBDV92yqEtN3VFtzDNXQ7JFmY2x7Q/+QJo5R
3cYlrt3aw2XqYKvoFTRf3li0i4m69shwRrY6wrqmkiH21aE3YurItofmcEipSXHX3tlwE9rdVfoh
LC1JYCZO2K4kmDADJIkOXEp0wOIwHTq+YVoqmLSuEmbr6tA3bBV81iJgdoZnW0+SqXmwBS4O9X1w
PAkgIuyDO+O3QfR4CCKlQ6wZzFVNjD2VWJatWq4OTkE9y6Wa7zjYPw6xoXtU+esabeRUC+kecmpi
vqPWna3iA9j1kekRzXfVkW+OQL2YqrbpY7Agx9Mx87WRyw5h36Z8GP12nS38QZjs4TeCCDQfHrqA
7QBwJm6cHnmAmTqWSjTTVB3dNVTq2b7l2I5l6KMjSj+OeFnYhmpSGYO3oZpUuKIpfRE6SHgyJMyQ
OI9zcf2yuHIujzPeeKWrQ17t4xFESgsixchyQcWWqXqm4Q+HmGLPd4+bxzHa/VC+HXDI7zTaFsy2
DwjGoySx94LfYi7+60M71jiO67lsCIbjmrZKPFtTbRuc0xsaLhkxn/pD7wnxr024jc622L7abUuE
wK0R7BsPo0YDibwvadOvqGf0MbSHV2Eu2LGojzVVG+pEJdgzVcsDY3eYZXsjOvIsTfjoRKZ7p2dp
WMLQenrVXKDvr2hWp5tBxcmD7LFKq+0Qs1PYFikwabAnEjwEp433p1LihiL+fuS8d86ussXtOEc9
vc/6BJrL94QK7/WGljXUTdV3MHSCq7mq42hMNf2hNXQNxmzq7UvlPQDEpckvufS/8od6Y0sNx03x
GsQRq9ur15YbQtW+3CF0rxjN9uQWV9lFVV/824AiFyxQj/ZFY3gVCchw6Jqai1XfZaZKfMqgC3VX
pdi1GERhf2Q5+xJvqJ3KqanbMIlWj/fk2VTaksQO9sNuGBh4xyilOt59dPyNLZoiblnQsvkAkgxN
03KYSVR9CPkUwZipQx2DYJbnmiPiGQ5znmKRK2YtO1w9amOPWLTv7jCRCg72wiJP6+1OANSisXgT
3eDbVLdA70PXGqpE90cQ0xgG6/OxY/smgy/f7QYRAJz/5e3KmuO4kfQ7f8U+KmICPbiPR5wab8hj
r2l797VPiWua1JKUV5pfv5no7upCFbrZM2ZshIJidBVRXwLIzC8PVB8W/MwiDLfc7OEiU4f5oiNC
MXwonMW3ZuMrrEBPhFugdhifpAguEBWzB+0wmTgrYMNQ7agrLnqFvu3L8xNapb/iH48eZSXXq+mj
rBR8M6EHe1v2FdiL0GbB8Q/2v+AiW5qo1TA7wqOCCkXAsAGOKEpKlJsiwnyeRqt7HLzvr45Xb1qE
2w5sCKN2zWv/3uO35OxVi1fVkuA6gW1lEgAzWHSqiIPYD7i9yxCb+eIVv4gVRuzDhAstQtVDaORk
Kw4FFv/l5dMjvmIYbSCHv3PS4CZk1moPMFnkMLnFWmJtpER6RplQgvrErtGg+XPOz3Z7XyvVWs2l
0ms1MQ6j3N47vXCoU0AeF0yjPZdCOk6Bz2gKXqoo2DgqgpYJ4zSwsZCLvbgEp8F7IsTR9Qa62eo5
dMum0KtG/hr/ltC3mrp1lKF0IRcC9w+VQM9h/nNyBRgZOFubgAaDI1LcKggdqb12OepTzq9CvXzT
gu1KYOuWAu2Ov35/i67p7mHCZRw4U1bNMZdZSkl08UDiWYDdb4EgMGW4YoZzV4nw+an/4fP24f2H
Pub97XfAg85DmYjjeuJsJwuy341rjL/uVnf3dy/f0FBXb4krkgQEo1YkoqpMxktiFVDmUkLyNmgd
7GWNno/fl29+30Sa3VyapQGL1LyW86fl/0YY/Gl5YBm4y6hGn6lQGiMYgAdNN8YzIhwyTqokKZQG
B8GhiVT3fM7TdkgvTJ8wdTnD9Qb+mrI5/DVVM3OFbwf9cfmwva/+EmgamirUax1AsT04SUULKLeJ
hjhwPoQBdWEQgBkVxGU3sHxa9XXat97iBOGc9pzumAipe0LqiZC4yPcwQZixZNV6jT6BD0BYRV0A
TuqJzxojdvB+4AEtMG+qE2cmFnVZk04j9mU4XZ9IYDoSsCk5q9/Nsf8Wu+3TQQNBFlqFAT+HtoAr
T10GMk057DQOv1kNC0dVkFaYTHPKV1myzqPOLEvnzlY41uEiaylqwAzW46fvflz4o01Tzi2Eqhyo
iKipspywAmGCEOhRooPgJxaImbWhxbxOQN4/LT9/uluf2VLHl4BX4zbC0eLfdVz+hi4ni4NGNN09
1dfufBtWhRmxcLSa6QJsirJsSTHwQ3DOiU9AAbTH5LUwxsXyqpkentAXqLnlpgXcWYWNmBKXdLfv
33/6drQ81R4g06JI/T3SKVgVEryCRVE5Y9hmSQIVyVYoxk16dVGOQ79qFOZo+n8yv6+VXXTozWa1
nVnB+8cn/LIKJJfuELm5SjCDUTo4kNMBMduzGysK2HOPpsEKa9JldzR6a+/V0g94ztnDw+VW1lXH
YW0OVG5UFbpfvuC7w496x+VxmwLTTyJhYgqiO/ghBbAJMCPJuuA8A72rBv8YeuzH++u5kVtsa93D
pmsWAW7G3bvPugFB/eXl7lhMfAdMBvOprtBstCPUWUBGwUQDtQ/EQvyWHc3OKDdCdn7ABtSWiTmo
LVinOaM/rlz9RjF8Bdw7ZuVezfF/JJIpeyVhY1iWNAQiKYB6iAgmzEXpTBDAhq8lktOnneeU0ztb
+STtyCfN0fyuHz9/w569Ya4pWCxet0Is3KVSNME3aYOyA22xQoJH4ZkLpjXj2Xa3QjtmC8d0XN12
OXXWabv68vH22++rx8pIKpeCnwAqs5AyRKZEcQGhsS6SBJ48cUlFw3ihPpprpnj8hDNWZXRHK8PS
9mRYH3Xs0/bu983yniyfH45H2N4JfppWzE+XUogyWiAbhCjJREVyDqXkXDiXvN3H8wFbPOOU+vHD
HV1PPNRelOOryMGsS5xUDhZuwZGkWp9tANYQClPA9ETBmFQTI0IxkgK2Eq6Z2OYx/ZltbhmLojTl
M1HwwwvaiKQB+Y+reRMNWqYyKQxTuzQV4kThxAZFRcwwuUn9Sfc0vqOFzjcd6LMs1e12+bT+VEtG
sAKLfWZqnyEMLtikIPj03EDQowOECSI7wgyTOjmwcVK9nXMdgJxZo+PlVki36gi55cdgtUBUgl87
/PwCFOVoUThabw+xD5UWhPPgPUWMFlZFW6KdsyomBRLGN3eh/ufbK5jfHHQr8663J3fLo8wHx7d5
eH7eDDyW86O6iwJa5CmwJSrRJ2CuR9lCkou5RCm8pOqSQx2NO4HVW4rd6miFftt++/3j0+Dgkb0J
722yMP0RIk8iQhLEQ7xAMreZecE9BDtdKOOxGhBGzc25skIc52b99O3zy+MCv4jbnuYGzXgyRVit
CKNJEiE1+PEIljA5bXMQQSWhWiM4H+qmfejcCKqls5MSxfN2/eWpZhsOWSAlDVswueA1lQIxB4uO
kezQf6PrBvNciNYKdmhiQI7kxU16exj+nE7tr960GF0H+JpOGNvD/ht/ToSN1dSVDSwzLNF5zLaJ
4DPBj4gP0UqgG15oeWl3NcO2uNbz3IFa0d2wtGBsDmtyVHTN9pGOcEZEbgmTAWaRUk0grA6E0gSr
Th1gM2d4Qztkg2fFaAcPW0283N+3L5jkrBmYWkOrhUzLWNZIGHMElxuMJJZaiPONSprLIri+yrcd
Bu+v7uFiC1ovO6D1euIUvl8+fHx6/GN7zIHhLBpeVISZIjIbzLxIrAFkT6IAlWNCgze4KpQ/jn0m
/3W4OkHdcWUrM02qPn/ebtefFrBmjx8f7lp3jzEUrwyj/g/yOBtCEFkSzQWWXQsjjgbwzTJ7mgS4
vl7h5Z/PJN1WVD/1QDW6OL2tnQEzD/rVhq92fK+Uj6v/Xo+yFmq/8T1s7+SsJNxgOwUFbgr6x4gO
nAoGe8/UmsnIqI3HaQBsbGfjbNkQx1VXD1H+8uPA3IWlC7PnciE5J8ACkAxmi4gUgdVxLHcFDfTY
ZJtVbIHMxrtpH6w7aASb2Kj9628HEyUWbB9TAitTQcLSCwt0RggO9skYTiC8ECyLwoS96ALH47a4
RMc17yxEE+K6Ft9pdVC7wA34aKK8hRUsoH7Bgu+OTAcNfF3zki+zlNHgZ3KAozvGwmi9mTt0rbfq
ZHAxARobkwvLIpH42igLjeDKhQUnCoEnxBRMQUyheUqcWZNZOmNyp4O2mDrlFfywW/jfl16rfL88
7AluM7cYXTChiFIe3IKC4MeLGiZrx71JOZjy+tziyBcmFi9PJJgzFG3VoEjhg789xb5OLhSWH7IT
HuNdVTzEQtxz4pmORCWTDGi00a78qUTw6NY/tmsYoH9bg68Ry262HbG2g0aOvhJpqCpLRo0BF0yK
o6CGARyg1SITw30GcppTZv3UzmmwFsN2rn1GKjvvKdh3yO1TJVyrPdlyYJYEtoBYCfxFWPAKYLQ4
7l7w1UyZkPJrEcGZ8CUert20yNYduFi7beDWYwTL/VtMDhYRi7d1I2taSZeGv3KBWkI5A7weDK0L
0kGonMBCBOpgNq9xzZ1HnSlDz29sRTOqJ9puvhK3y4dNtXtiIBqucJMiVwTbbkCaDEEzh9AgxQLM
A4gG0+nKdo7D6Gf0c7jeYre0g91NfcvyeUgHcoatKLijtVIlCCmI4sDSRcaaLZOJhByK8iCJk+mS
YxkGbRG53r52eoLo+WUJ5u5YjK15ftwcUVmbqeUQykjwuBjPu+I8MT5ZAWApr9v6LKbRsBNUc0Nm
zHozpZJY0Bx5t7rK4NMWCicsBl3wa9ZIkhL8BMVasfCBRB+Yw+SDtfL1uupF/za+46bFuu0IsDPH
aV3/5S/L1d1xQqWr1IEzD/4XdqM2AlRNgk8LxhRipMgwrbA1C53EiaNh2ufv5mk7Y9mQtvv3H/P7
kyeQOF0BC2YyM1JMwekSFguCglCpdErMAEG4XIOqHe7f/XBFEuL09JsW36YDmk81+/sv9y93L49f
1p9mxTqMFdWCidpSePwVkwGWg61ynEQtQHcwD+CcgUAycdAeXiCKv6rp4cKjm20xva0VU3SMgFXT
vN8h4viwxNI3HqJ+wG/PgGt3Dx9HLWt8wVgtYe9/qZ2s2prIIwFf6MFQBOwnMECSPPjEIqRX+XJ7
SveRZ1omerc20i47nMSscCc2PdAfkv+xkQpCKWzEYweWIn1KVDlFuMJSDUTWWAtB2hqMo7COUfnL
QsEDzsgAV25adJ19uOJmsg9Xz5vFcOwQvzhwfxyDj5q1eOIGnKUlISBVTRZ+owrsI5gl663nuohX
ciyT8c8lWya3jeWxZjO38dbp7SRy+I8vy6eXf+w7udkCJx+il2rmQ9LWFw1mHjwkGKaYiMvAE4P0
UnClnS6XJ/80dB//6fpNi3HXAe6Ges7X5/uX4c1571j1SM446YQmWoiI+yQCVMOw0QkicGAuLLLW
ho4HaZ6+NPNqmV3aaTE8llfL4SZEeLzMhAVJMdLyxMcEMaFQMaukVXpl/q4oh4+TB+WK+yc3tZLb
VU/yaRH50/b+M24VUfudJdoen40WWmqSqAHbg1wAJJUE0zsQTcichX6LxMff4NH9m/BKK0wnerAr
Oe0GGAarBZf/vCt3gypTCiS+LqQCrga7MhFjo0JKoYnTEOYnm1KORYRsxKtVCxz7fL0Fr960UFUH
v6LHUPm3r6PoR3J0A/umEhG1scEocOixngILxKaQiLTSCo853iYxMsqAf+2FQPBM2QOijtr4tP39
8Y/tuL4qUCOFkrAPmAGijWmGBFGP50UCRwxGBGR6uXRhTMebgNEdMFrsdvtv71n9A8+g0GFiMHEA
+m89NvcGBuRGSDDJlura2m0Npke5nGSKmlHa5xvWeb7TnV7MX+8228ejSWXA5zFrJTWwOuEy4Rrb
eBUeTHPKElhAK3gQLjD+6k6qI5/fSvVyi3rVQb1m9LIufPB/xxTnQc2FWEgssLDCTPEQE+qMB2ao
A6dgIU6MSmhg3CCRzq/rAox9QRfg6k0LtYffbM7i/+6HGo6DIldK6ChEU6DO1VVQZUoKHgIqjZkZ
RwWxkYKSQEzEZCgQJFwuQdbB++jrpRZ6J8tq1xZCv+U+yfn+v37+9nnbbQ/zHPRElER4TqBCIaIK
WQb+w7JMmdKSsbdsD5tgaeTYbeeZBUcPPRaj8Dv/2zut1ULheTD8H2lE8FzQ4girARnEYZga9YRq
iHKZ4/DpGzZU+XwmNM83LfRVRx49zZT8srr7ny+Hzt16useiRYmmMLBiksQMyyFEDcclIzZwmpzy
rLirai3H0fuIj1cb3Hw750aO74bqdDUA3+/f9TFsKVu9WA5R6AhMLoIvw+MOCau0++NhXGSTlS5v
1EQ9A9HKsJszLCeW4hil/vH93fOQYpccDBCaTgqGmxow4wzNDVhKRxy4GCDVMVgKW0nK/6+E5Qjg
TSuD7Ai2HUrF7z/8Mu1s95kClYaQv2Z2wE0W0HFgGtlLZTTVTFP1NosyPLyBLMU8TgMmPdCMn78r
ZZIxKCEqS8FiYlRJhAHwXgLLNUHAv0yD4PmNMganpzegFe+AVnj2p1He09n1IbuJwVnMWnBMEWfs
79SxEMeAq0ZlEi0c8Jerio6n0V87OT/Bvu1gF0NPw9fl0ym24RR3vlKGe2+wZG8TsOvMYOdTiMMg
ELMyUwh08iS4OQ3SPlx0rLiaxTaPsKfW9zhpYlE7j/a/1EQqqJwEKFFglVlxsCEWKECOktkUWVGB
v7pd44fzrb3xQwu4E5I45WQ/afL87eHl07Y59okMxlQSUP+vSSFRAkwpyRaJKVZqLQ+WMFVcsVYF
Q9++0XVfir2d45vXa4eb2olwqjcRetKh83zITh/3j7GYHkKxaaLAf7MnOmCIhgn9kDUlQUkLVD3k
YMzFnO145Am0jjZqur3Q0Lb44fbU26bxkFI9P04r7VFgTQqmbaXnWE+FUManLIkK0iQdTeaKvR1f
OCE5sylve61wbrPtbMzNjk+bkJtX07xT4pDV95geUkrD9KPtZ3jqkAKDKNrk6DKlmceLLcjjcVtg
Pee6xarZ7pAC5rMMsCrFaEVUjviGBJj5gO3fIUOYBBG8T8y+WQaYdyBvO0U2t9PT81R3D7+N9fqQ
b+EUW++sVzSAr8XzBmCXLNfAbdAxKVmyL9SC0XqLBMR3YwwN83/47aaF3+Fpu8MpSpgAfA/aUOK2
EnkyS9wx7OeMVGCRygLdR/YP2lAgZIZFcqG7J0ZjtRg6JTO3W9tpu+Z6eY9fIvHLM76R4GX7tFuu
mzadWIxU3FlihMHJTeB6RGDEcJOUV9plaf9UHnBsKHtgzpjL3q3jCVjSzqHPJZO6Z5nazmFxiByZ
xDwAro4Fhkmxfc8AxUGNtcSlqEiEoDG6gGcQ+dV976/3D89uawRjTncEWw2sbfIGsHdCuKE1W2bp
GfKIKAL8wGyIoQ4oHJCq5IBh5L4faMds4XTyC0u2ZscU0fPy+Z4vTnbH7BvWwJAbRom22EKnrQez
IzKReMSeG8GMmXQSNcO0ADp1ryWnchqd4s9yiyfdn/A0JK600nVmag8HwqJaAx8HtUsBz8GgUbYp
YW2zAMeJjrqrS8WTZ50tGU/uu2mF6GxhQactgTMTjFv4UP/eW3kRYizcZxILK9ighI1bQORSobD0
0Urm+b9u5Q8Xb1qU6w50Izq5Mjy48jxOvApZ3WRWIjhTMskUXyghiibeRQAtc+Se0xJcuVbp6jPO
K1u93OI3sod/yj07dBBIJyb9ar5MZFEow8NGWLUXxhZihcKXDEQJdBOEFext6Gbnxok8va1kNx3y
/3w8UTScoajHk8DqU2EgdGIU32jCsgYbyAyhNmvnfIFY8k36G5tDTedjheGWVswV7Yi5+j/irqw5
jhtJv/NX7ONGTICB+3jEuWaMPZatsXbfNvqUGJZILSlqJubXbyaqu7pQhW52eBneB4sSqwxkooC8
kPmlmH22v8c41XGCe2pUckQaOPsC746cChFEUqBJgcsAZ/+anQbD9gmGBzMye7trO4pwEAaPn7/f
utF0xPPAWISjCsZNYRFjl/BHkNkSnSkIpySLd7OU8naYhgJlOkITWD1FK+bBChm0CuAlEbxOBt2R
0BGF6VPgOnlPvXLprYIVPYJtZ8kUptHI5k55GGj1cKzrrAnbIN6MlBjyQuOKRwNeH7OYD8CjBpM5
+au8/nHwi0ysWiGudYdwvRqdhf/4scrP+XKrTHkQiEhVkGYXMqhqqcHuAv8o2RBKpG+13BMCGtKN
6mwSo+GnbdZ89fDxCKuEy24OVT+m6lRbMhMMtDxjtuZvcuIQohCMD4f3+IYn+eYu95Skc1kMpzda
pnWX6XmY5Fho8ekev9lQakEpGotY8ENBpBCaMxgRRle0DfROknAaHNzXXKprE8EPFPxwd7ka44e7
hr+1WvqIq7WDH7suxMvdz6DRqB3qhVW13gwH4wEsCyJK4UQoTBtCXqOJoJZN1NTTV530w+CvALrM
zIr1qiPf12tzvFHxH8qAXTSWJdabNzjfcHZA8aaMYR9HKablGwKebjZcaay7vbwHP1zGb5m5ui0Z
LQfrzvZa7+Z+2d1malFwvFLh6pahIpZGMYYVdCUkDB3DHxaz8KgFy0gyrfN1MczpFGcMu80Za2LD
OjJtv1d1DwHHP/p3Pv51kXZssvFYA0iYxstYxyQJHhwqrUXQzmoF//1JUfwphVPW1pwvDaU1F/N4
xF93T+vd0+PzNNG0gF/oSw6EOfBnRPCIsOMVmEklZqUy+PCXrezjoH2qj09bcsW+Q650Y9Lh837b
q6AQPgaL1py3DO/lpCJBS4vZcXi/5ZKVs5yZyUgtBXLVoUDPM/jip5cHbM15YHsMyqsBBTBYqVI0
niSGiGAsg5bQJsI/C5g3mlvaSyLpGPvtNGekS/tSy85edtjZj8mx//OyesLEt4dxVU1N9/FgY4QY
MH4DJqTnGEfzICGzwpqLxKPolx7Ox5sRs4yurgUbbYf4a3n/cv/t9IHrFU3xCGDpSVQShZ3FIn0H
drtlWsbkjHVpVhzTDNNQIPi6Q4FwM3GFfsPHzwfrBS/dD1aMAKOQZliWxLAiU7IANqswJCRYl8xN
MDL8YStmeNaSK1Y9ctezyOwae6OOuc1a1IstqzQateAme1QRCEPp4CxnBZavhVNh+aWg7HTIGUlL
TxjMf3O0tL+n9+8W951Yky442HwpYcDJZiwfVZJkmUXUshjjzZ913znSN2Vrw82SLfjl9sjWy8Om
qc3VHBYR05uZrdhD4NdbTzElSAfHQAfLMwdkHKidfrXvTL+jvWzxoRgdVaiheI/FwS0XkjqiIlbq
FScwXxBzgmh2OVtrxXWVh4fBL+SJzzJCNiBIOmTv5/WS/uf3f3v8hn0jRjCDwag2hwoNsJtZsNoQ
DfYWrCaK7yAyLG5UzOsSYrxKXM4mOhNbaF9qGJKdOr6N3G1nwbeBkPj4sL//+PI0MnXI2mZjzrZw
nntM30cBKoRHjIasCC/gCnlwR0q+fLvcmeccRMPixYYv06na2JjT1fj6+csp06zmvPHoI6WeEyYQ
DpuCA2BtlcLaJJm0Y2YG3zIZo53bLSOqm5VZX7pTG3yGQyIvNQZMxRr+q3+r+p5nh2CgKYNqFQk2
jNPMgVMG5o6lsGdYfLt7tRM1ZxTw+Pym5XHTY3ye6vX3p5fnb/n76vNL/W7+4zQHW9VtJL3FfEPp
sSjTAJ8ebGasbaABHE6R+VUpOr2JzgR4Om+2rK1Uh7WVWaBnbBDc9j+f4J+7p6lxCY5K9A4TwAIW
ukofCZpMhOqkoi3ojl0FqdnOcNZznLzT8LHpYE1t8Li3yKs/3I0lOhUXHG94HaoBrkvB+03CIhif
grFCfCzojhWRFDfCp7dJFr67WMQzPm6Y23XMrU1FnW/qFu5+fv9yuCdzA29uuGZPFFz+QOHLeIz5
gjdDHCIiR2cCl1Zn+0rO9zjyuQzDw+MZ1ese1XN4nK9P99Pde/sO/32MXXCNfn3OlILxyED84kVq
jhyrSBhRmivQLFI7J9/i47xrSZm+VR/N2FtWZmz2cjWDqOyyN8jDA9ZZNUNsslyB/kcBXYbMZBdV
JMrwGJyR2b6C9/hHolEjLRd4XgjDvdx1+D7lgP+6AvviYbObXehLzaTl0ZHoExbEC00C5YIoZ8Bw
9EkGSt/oQr+lYEr8VqqlebaVhwzLatT94/5hzIwQajBqbIpRKAvqPuLtG88kCKcIBScxSBODkuaM
iXgarSVDqx4ZozM3rMJtGNeQuYoCjsQgHL0qiKONrQy0Ac/F60jAKeXOBXCx0kydt4PN6FgKlm2F
fbJtWcnfBrgS8EmwohGlJv7Eo1lkAh1tsLAR9DeCeDqFyTEYDGKeeiNfyR0/jn2uNOTwuKFbd6qi
4Je74/o9bifRhQqrjSaQzMETKQPGFZQAPziBfGcuUFFKknoG/jUZYzZ3ZwvpnZuJtR9X4CB8moBl
GT5UkQ1/Qc8uwtmm1lV0cTAqjUTMA08ylcwXJl3h8u1Mn5aec7Hn6Tst17ulPb2t7WUOIAkvT59v
5Rh6sLdO1u0Kpia4qOCvUgXHBpjEwlebCAh2TPFN1qc53tBkpIYE06lVhF+aCU7D13vwLf/7BNUs
arleTI5pEKgsMPRJwAAOEvRIhvX1LPnImpBSg9HQDtiSI3mHHD2WtX7drL6eMugles+OJdhqCvQY
upkiIl66jWjsWp5pjmBp2HYxpoO0s3egYrbG0PkufPx4//Db3aBvBqNN1NsPlmNI1aPRKEawLRF4
lwGUjuWCp+KTuepq8TDBWW9z+ep5fTN5oeW1U9+yNds5mvJ29W213X2rNWTPm8rxgEUk1BDmja54
+PIIJIq+BkfMPQ1WUZaFWcmiV+UqUzXBROk40Xl2Fq+1TG11h6lFrl7T3a+tqXI5ZWvgVIFnCrvJ
G7ztQESqenvlpKfOXooMTYduSdt3tJMV487evHx9PiXOCDPgDAmdvQQrnEgRwLnxCjG8qCSMaqtA
1nqT5Pykn8a5aefqbG5rxnTB5+fPHWgzxaLFtDQCWzdhGjCcLo+FZjLYlBhLKs8ImI3T0mA6x9uu
1+c6DnRq/rGojAqPVMB2Y6gaXQS9k8EK9/DptAzX3Ua9chfV0r3edOjeyF7Dkfe/vjuekZr2H6Ip
1FrCCl7gGG1JcAUEgzRFKAXiumeDnskygrEv5BbB05bqTW/LbTbVEIFP87lqplNq4ojy5yX1NBrs
KMLqdbQEJydjBnHCiw4Q77W7y/IQTEdsSHGdi5atW+j39Wrz+8vXJvfzVg1pKbfD+WROweywiNIg
mI3JGjG0KXEhFpD4Ult3FShtmM00XczhWUt/T1OvcOOyFnH6+fehD2BZpK8Kc/AbY/Q+ZbCXFG4I
pxE7EkOTyvoYlfYpXoW3cprrHI708flNS3RnK6/lHFN5jOc6MJIPYCC6JAR4BGEU8Oxhv5wALi9m
l2eXaDKDx3tWNnZCu9t1J7t6p+jKuEXq2LG+DTcFZpDXa/hTDV20MUStJaFYeS0ioj8I0EsuwJ41
gsEOjP/HGrrpGzcNwR1lulNbPQuM/jBA37b9XoqQCLRjiCs1ZQLcNxsU2P5BcyeoScVehQF8GPxc
0XR92BDtekQ7MyrLdL/6+PD4jLAPu+dn3EhtsRn834MhGBC9nkTqwceWHAxujLRLV2EDaArzkpXL
47Yk2qVbACdxgaRxSH7YNz1dhjQNxgeIA1pStAU8FHCd4eyBvUywOR1RQYgoaPD+FTTdY4bFa7kB
y/calrbbpSTcbffuqIb/+XU8emCa49HjQxUBbGvYFUUiBh54VmBuM0U0+PyRJhU17yNjjsO1ROyX
4my3o2y2ruAllvfHpRxgfW3mOlLnSIQjD7uVOeKY50TL7B02Z2Hi8l1VHfMs5mRpOhQBSbxDJxvr
B/91KqCqvUkkWPwRcZ6jx5yDiJ1WMPCduMxJpSQdn23Gf/Wqp2AK2ZvXjsbaavNpdIX1AFIYWdYq
IP4Y2MLJIxotYrJwwZRDiU/7Kf2ToWYkLJFU91SzTk4t2sT1IqBmog5QqtlYI6QHx1dg+bmIATxi
hniVNAQwonh2+lVpiAOfl4T49KahrmPd7amdp9FWpRRXX7+9nOJ1h84EmQYN+h3BiRhitIOdGQJ4
ls5SkaRPobxJSHJKwYUs58MbLY9WdXhcjQC37x4+zmJ0TLEARyMSnQ2C2mpHLAUpWcB8zjxal5J4
oxjdOHlL8mqp8fdsOw8Zb3fPv397/Po8aZVhayV0/YnRfK5CjpxiazwEOeGcgIynxDrqmVdgCih6
HVh9negYEcEXzmHWL168aXlYejR74Ua8ivvNC3qsk4p7BodDVUuGOgPOE2ESvwkeWSfAajDcei0j
tludBa5mY920U+oOHZt5j8xTuHpYIr/9cv+AON3jDSkdaxPA1KIiF8xfxZIJhLIKLoFRoG22zkvN
i7oOv34506U70vbNlsuN6HE5rvbLpMdFTU1JPkqPRbeegcMorJG4XxzxjjnBdBI0zwIzL92uFjBJ
Z30lHaXx6mUC22wHKALQkxGcZ4vBCI3NgLEAL2BswkiVDYhmP5v8NEozuew0ydtjY/X24/6SMBSk
qllX774iK5yCN0pSLpgMA+sQEJzOYxkmTaAvtX7zu4dfzjRr+6Xp0rZXbBmh3utFYgIK+WWbPKsO
qYmGu5A0SGtWsPVDNogrKi3hunCGmIU8vO6Kv2ZNte80XCDG1oIL+OXZVlm3Q/ILfihk5PAvUZud
FJtojAascPDCQEorC/Y4OJc0ciU5s9yEPyVbcXjW8tlJI0GgwRls7dBSbIALn/oXIEG8FLqArYil
HJ4G9OM54TkYVYrQcC6uq6w5jn+ppdkcNLyWay2ot3yE+Dr4hvcP+/EMS4RLHC6JkmSeKQ0GnAVf
2UqH3aUF+BpgDGTwEdPlaNxp1JYmbjs0CTaj6QHzYCadH9gtH+C+wKWUQZZMivJpwKrzCk651B4W
FJxBwS+2FZoO3BLWiV/u16vVftMIm+/VJDii/g+Z92DiMrCPEI5LuiGn0oJOI9n7KBjo6Ojom23g
oYagv4Hrs5uWgXWHqzVdtOt6/t0/re9HhcgPsIcVd0wyrRS4b8ZQBJkCfzlwLEhiBSQtOHLBXvY7
ZqOfj5lMXmq56JQ+7jd0ruUH9Oixae4AHc8O0PE1+TUzka0EMypINWD9hFgUAZMXHH6j5DVtXYaE
8/ONOWf9epHQzpbfiFNk/FD0zzqAApJmWjzHIHQB5zNI8KpKMCRTQ0GTZOeDm9dvNqO1lAjRo0Qs
lM/mcYU6x9ZCQXRpsC0WGkFe1nwxyrAxoCLJgdOXGHPMvoZHBUOeWzR41JIpO8blxsGC6Tb3pekt
N+Dk1eZyMruMMPVOIX6GVgjSCZ5p1p5FBa5pLPnN9f+JmnOZML17yP2md0C3el6/Cadjgz0Gnra1
XnCoEsFtdSsHXNLk0c+VYAagz4mdwX2IkeQSXbZJymzya2f0NMHZE3p6pWFi20FzxF/O91V1ETFF
9FTtCASCmomUxICtbZwClxPhcSPs+mxYQlD3P+x3Ds9aUrcdUbLdznE03n9aDd2WmRj6LbNDhUtx
VggnPeEIICQ4HMiAKW/FK1ZS0D6lq3qWHyY44xAMD2eE7zuE70wFGq24YvGn912EM218YhxviS36
93hLa4ONBFwBVxTVsvj8tghnE0oaHnarxcF2IMXX+12z+BVb7yz0NGZHhaAUMeDXYPIXOJCojqyG
H2AK0Ogv75jp8H12pm/cTGkVS7xIxGeTMwbqLRY21n16/Px+97DFDMNF2XWJXOaIqQMZ+zkVo4lH
a95IVwS1ygSnr86Obia7kCfdvHfTctFlbVtz8rB6sfwXbsvddl5AqVWIUhg4spj+BJ5lxO1FMWM6
YEuWQMUbtY2ekTAjf9ch356qP+/mCFsmK5ZKxAWntc4WG1R6RliOilEvPVXqjYJD4+QtyVYsSbZq
NdtM1aj4LaI+5uq2/g+Hv1UQZJOi0whAbQWmAFBQzKKQaBxNinou0vUdx3+LF8ya3+JNS+d6SbyT
q2kDt3erp+fd0ynnazBprFAecwOJ9og27T0maYRSu9NJmnKUVv8/NnCbEn3TMtfleHsUwMebtiYn
fpTGcFZq7o5zNoKWwDaTEqtf4G9FGaIS82iaMKEuQhJ1Rp8R2TkGzq07cAq7D35yU6qwe6MZGl3d
1kZ7gYNfXhTYEDlh+oHV4NXAHwLsZoNGRVb66tvzD/7C5fkH3/LgNkseVna8efjnlynOCa8uCkse
UyKAwoxwvBksPks5oQarYDgsvykz8LYvXZQTnEh2Zt+OGGCbv/xlAotdrWNZtAVJoginBjWSt4jV
h5mhUZWU86EBSdtboGOgO7q2nc+3dm5hDR6QpY/YeMsr7wlCNqh+GrmgCEqC0FPg8HgnYc95sBpz
zjS9El9ZTHfGPGzfahnbdL7pRs0D4T/tvq22hyuVQyWORYRoW6Epsadl9oQxTC90vBBn4BvD+uZA
qbU867dLLzxSck6XDk9vWnY61s1Wzq+NMJb9UgGwaztsMUhFZvG2GXGCvJaHlvHGcmyxI8Cq8aCf
zNUgLHcXEFjublryeI/mUYz/VMGITvu9Qj1zxmuzD0lNQnBiD6TCprLZYDGINkrMtnszSjP/jnZO
207OU+He7Z6wFzQmQU8BEGS9dkNhlUAmCekysbKiwNeMGZACIGptBnOKmXxVbkpnojO55MsXW8ak
7TBm5y7R+vELMHJo3+qG4qyax6k0JzohzL5BroIL4GJkmsEsyeW6VMYAs/STbB6/tLQue307uue7
WYZNT++CXv23fxe6ZiVqUQOHSupsXXJY4FkrT7BnXLCEw6bWiibOC/3z9Ds8aHjdL7HN4ZdW7be8
6UB3SgSQ5pbp2rsdC2oyNuUzFSYpEm8s3gtJBKsXYG9d7JD5pbP998ugo2N0Az/d4Rrt8eH7SdfJ
GsQKUgbGQIhH7GRjgRjYE4n4HDUX3EulxfwCbTLKTTvVcpciDPhMZP26+/L4bffhfvePCVTCcHlc
MyVrHg0oGJGwFELiF8e2nbCJvQNPLYfrfOLlNOdstvl7Ny39S5kG/u/8Lnz1fZqzMrCjsQHjECss
lnPDkiXGKuxfz9GtSYjwz0DVKMXVK17z61AW0zduWmJVj4N5EVsudzXFeHQua90N8GAdSD5T4+Pg
krngBJGG5+xF4qA3r/kWx7H7lB+fzqi2Pao3R13ydfVlYrYNjapFzGiPpFrHRcH7+t/Wjmw3bSD4
7q/Yl0pEapDX9yLx4BNRcKjASdony2CHoHCk2DTN33dmbQw2GBK1+4Bgd5hjz9nd2RmLetotLISi
KjKVynbNO90Rjhrt07WXappYswL7veA+4rxolpQm5Hsj8twiTJEsD931iRaaX6oYwwxjLjMKw98x
4cP+0OXvnkLDxFWUClVu6akIDI+Jlfp2sLiDYEW8b/StpLm2cyt6FHayaPvCXM/D6FKSomue43jq
/3IdWZJvVjHqtxAoxelOl0a0fMOe/louskQutQyV63uipDHLY2h/je4VYElntgFKtqIaqsWYJNu1
a+QKmgoD0/hM95gWp37ceHY9X8SHnSqqFAwXMg3dxeo4tZkWqBSghd3CIix5PGhX/WHSMZYq+eTM
eJ4+nQlwiOcz0WJdfZJqOTKoaWjYJ+MFDPNcnF9BQfQwSL2qq4rhfnAnVuJv3I6VEFUJntipBDOq
NdpZ8I0deoynvJ/ypUJs89ePoiLbuu05oKGhnbPH4JsIMtmmYjHdVtAu98MbS07iwt6SlwuC+ydL
tqCnEX8TH577T3arFeDugKh2tFymZBXFCZm+k032DE3wut3A2pLCapdF23nCXfVlz6B6FgUdXkVZ
lL6EoAuGr4u4Q6Q8jzsODmfwmSUdIh5npknGY/MV+VXC19CL/4YefhxJBTXA6aFrW2jxs+JQmX6S
pvDgk3Eyr9TvGKBG6+U7wYBtWLJ5IuXRXocEmyxadiUFtkQ+2SbpIk7WWZff+votVfxyQ9I3fCId
h5tdFgJvuzWP5AsUYw4m5mDC43aRobdaQIIMlKgBUY+8QWGWrLtURngKWA+k9LaRZx0R6oqDFtKu
EANELcaAFBHGbq8/uiPBz+8uaUgP/XFwbw6F7iE1gRbFgt0jCz69X0ySpgwQNOXnofk/0vOgVBEB
FI/w1gDGa78hgWJjDASncEELwxrd5eQP7eu4FQPqUMgjwFxPwOu3CfnWD8g8D0AKLM82cV1GKnGs
50Fb0Fig7SXxDYIaTAPQ/R/3RQS6XhTH6OKVgBD4cPyo8W6EAX8hREzMISPYujXwC7Xgm8PhyL4s
FsUZzd+DtiI04LpphJalPdZwaI57bk2io6RK4uCzovmgE2/fSRDNCYyjZpaBiUlg2gPSuzfHTrNs
qtamvjDJotnLtdaF8Sf7MOpDLpwZuBdqTGsrvvCYTLHf+Jz9JlBDN6DbhKFjBuY1BhTkNQz7vtlz
r8CqkoFYh/27getAL2tOzIA5AUAD90dwrR/IKFYY3t/17ZFzmQVVAbFWfJIhGH+rGdKQEGsxwld5
+14cY5+YZYJRYA6vjlva1no56FcCfXuXVrpj3g150vGBjQ9zovAXUEsDBBQAAgAIALaZCUfC+wNi
wwMAAMwJAAA6ABwAY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8tY29udHJvbHMtbGF5ZXItY3JlYXRp
b24tc3RkZXJyLnR4dFVUCQAD1wjIVdcIyFV1eAsAAQT1AQAABBQAAACtlktz4jgQgO/8Cp+2yFQO
fmEeNTVVGSepIQMJi9nJcUtILdBgJJcsk8n++m35CWHCzFbtBWx199etfoHnOI77w/PCAAgP185D
Ek8mD9PVZJJpcSAGYrXPRAr9RlC9EyOUvONcaXPV8xvGwAM3ohVjNptKM5l8F6Ym3EiWgPkChRa5
ETSviLFi8DlVdPfhurK7+wE0Mej4w1Uv6MCRPyYnYJBGvz4ly/4bqxozlbnRBbVhNkfHruiWaIcq
VGqkNfbOYr8Kya56Yevd98h46KSpkObv0m9v0MmiAQ1PZNEF2fBIFr2RjTqZSzh1DvsymJV6IAeS
UC0y0xu35eJrNh45XVUYYE4wC4Wpa/Vt3lxtoZVRMUnTe032Nq+e2xY94Iw2GTOgMw342ZKs0TsJ
fkie1t+BtvmzqqvXDI5eb4khVZL/aI2+kbRodG70Zoa9UKtgWF4dlstHEUClRC+FcEz7PwLw6wC4
F0XB2HmGdaw0JvbLaj6bAxPkLoU92D5hgt0w9lcO+maDB8mWMPWyVMr0W6PuzKY8qNGMjMcQduiW
CDIvNPyMiNZhE5g7GHlwKTAhkWCAYTlVF0uspCFCgn7ERrE3HdTANR1gF3TAeCtSZpWmJQfH51EZ
wYVtCmmfXjtoybp2nlf32G3YCkp/LJ+XwD+eKH26djyvSGvVWJN8+ySfDqB5ql5QFhXpJxtU1Abl
Qcidn0ffxFFGOq1vex7UO7alVbwlcgOJKjQFdDvs3Hr0fbcZ0bY4WQaSlZh+eZ0FyXO88cLoN5dG
8qgmAx0Ncbm28qpI/ZMyxqpbWYkwsCL5ziZl3DJCHrKOUY+oVfstkO92IODEuWjT4v8soABmETn2
od9MKDASjcJTxq2ihe3BRZknnNyGudIA91rtrdJK7UCexlseiX+sSfmImbTh+p0rF3fURVdZsc9a
TP+iavIq6VYrqYp8jlVCR0HniMAvHJGy+ueFt++J0UJupvssxdL7zcRSGpDj8G+BoltmV9NbOE+L
fNtF34ifNRakTEkztMzzIn7UTqeadpUwW6xmnChngT88V58pwkq/Qop8C8y+4w36TBXr1GamHYyh
77rR0WAQiupLyMsJwkpvge4eq+2AZk3XryMeuPzMjLx0lpXrxvHx6tTAPhecg8bl6dczMBgS1x/4
HTEp1rpmNZfBxXx/Am1uE9T9HwyikESBhXwVuDDxe3nOWAIFcYAz4RzynGygP12U/yikhHJmcOOU
J7W4KrKtWVBPTBDQaET91usjmBeld/jTTNGkAx07/6++/gVQSwMECgAAAAAAj5kJRwAAAAAAAAAA
AAAAAAcAHABjcnlwdG8vVVQJAAONCMhVBQnIVXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACimQlH
AAAAAAAAAAAAAAAADgAcAGNyeXB0by9zdWJ0bGUvVVQJAAOwCMhVBQnIVXV4CwABBPUBAAAEFAAA
AFBLAwQUAAIACADNmQlH7JPRqSY6AABa2QAAMQAcAGNyeXB0by9zdWJ0bGUvandrLWV4cG9ydC11
c2UtdmFsdWVzLWNyYXNoLWxvZy50eHRVVAkAAwIJyFWNCMhVdXgLAAEE9QEAAAQUAAAA7Fxbc+O2
kn5e/go+nDolZ0IZIIibKjspipeJE9vjsjyTVKVSKl4gmxlJVChpxv732wApibpNrDmzu6nEepBl
Euj+Guj+ugEKuqnKTM3nPXv1yspJN5nNxqr7s0p/Khb6T1BOF2q66IbqoxqXswl8tn8lruf9Zt0k
i4dNZ3idvy/Hy4man79/e/nuKjr/5ryRM6qSifpUVh/O36tqXpTT+bl//stNMFDVxwIwnD9Tc/dx
lp031+fnV0n2dvDcrtZFDu/FqFBV7yRrrQbyxlKG3Fd2B967uItfnVlBmSv77mmmVk1+Ecxhnt25
ThbFR3UGA1XpYbtZj/f3339v/4p/s27VfAaDUaTjpu/8Aa5L9zfr3VxV9kW4UUoRtqwwWajzu2Ky
1uQiTB0kHCRtLHsY94joUiltB3GErLcDexs8jJgNF3+xMerKLrU7mMTEOwMcs7JatBpjbPnTcvo0
KZdz+907A0QwT/o+IU7kItehQRg7PAwCxw/7rI85o5JGlmUFVTJ/ULl991CpJId+yLbDYj5LFtmD
/cdSLQH8ZugnSTF1FqapZUWPmZotAMFqNKNfgmHfD4d+EESDgd0ZXLwZRG/en7Va6sGHIf0pur0e
Xly/9y8voHkY3ur2ycJGj6h5pWmSp0qNLOv9lX2r7rUX2tcqqaDN6l7PcpzXtqWHaji8i365s3df
jTCMkixJ4IPTvpDBB/tX3Uz89JtdOY/n1adHe3D138Hbn//i0WH50KjIEjOmg5nKIFIy+2I6KquJ
udizglt/8MPF9Rv7LhrcwRxWT7NFeT5fpouxOv/90wdHPWovcpZz5XxMxks17z4sJmPLqj0B/KBx
jV7vmQ6BtqL0x+RjMsiqYrYIykrV0/Ff6/nFGKej0Ugo++e72CiyX9nMtTv+HEJJWzDvZrNZj7j4
zMKnCZaM01TZPw6CXu/Hi7teb1YVHyEUg3IyK8ZqMC4/BclczTtnoNP1CLI771W2KKvuQw/C4sxy
T9Y38tKj+jqrG/X/ZnqiEczUQuuH3sTuTNSkrJ56LuPkzCKnqU9kilhWq7+8vJguer3fi0Wj3J/m
A7X4QS2rYr4osnkNRkdhf1xmH775tu4XPapssADM3xhMlNkdAAzj4SIA5J0KiDAANB4X08WwUrNx
kikt1YOBNgD1DOhsVE+x59Ezi56oIsGcqkYFBET1ZBRIgix2qiRCqdyR5LoMUYvbNfUffzWSCM8I
AjaRWOm4AUfGBCMBDIs94klLnA4p8/Ygcexa8tSZyJNRZn+cRFrKXbnpABKJyyyMTvN0LnIp7I1D
56rXU+A7y0Xj5u+vVi4F6XNRBsl4HGu+rP2KCQi1K3ArD+mwxieGGRrljZ+DE6lqVil4XwPQujo7
3txg+XHwNv0dQnz1v26qc1brX8jVCaCZzhf/Xnd6r2mx+c+v7i8hhJom2hpPAl21gBhnlh7wB3ZP
MgzoiqmGr7LPGdHG81VM0IS76lnTrUZPTqPxlDDFV/p+LNOrIoOpT+Yfer1qOe0c4BcPcSD6Gg04
A2Wg1Nup8Dba7H2lLiMpzRK7aacVvxmXaTKup1mblCbZh2Y4Dc0jMPXHwRWkqzq/rREBAAkEhOlJ
AFw2oiNszxeQHodDrN9Gy2lmUm/z+bs1urDMljptQ2Yo54s7GJrO+l49tpFxYehskv0jtNStznq9
fw3Rty0tYE4JWb+svpbw19/aH8sitztnr3u9cqYqLbxzZsYM43ZmEnqW2EmukWGOBdEZvp6JuBmh
epY6WnHNC9LurEYvGfeANPWE8BN1sTzNal15U66s9M3jqpxspt4YR6D262yuGe8HuKBXnGqj4KNa
7wJK/SouKpV3hsMgvl1OL8typhcA1Tf1OBtzCW5rhsKvO5nAYgASLQxES7fWGJfLaV6XeW3dXNdO
I5plRHm20fXu+vLt25vhxWAY+JBkr98M3767G969HfrDu4ur6NZc7vvBT8P43XVwd/H2ejg0cWG5
6ESl6QiP7JaBYWlMNB5DseXik+QxktMkOSBvruFJYbnuafgEZwlty4M/pqhxqeWSE2UBtVG7LWld
bGsXkpa7xVs/XNyV5TgtH/dpwwjMMkYSlNsgJ1hWepUZfYQ3LfpieqXXpab2sFx6qlSeclglZQoW
sNcQ4kYslICTUpvucQDKThVJIZyGpkp8Byvx8VrslQ6tYmrYu0b9c7F4iIvxwvgAg1HeCl1YqsBK
5mDhZHQxiZjrKXsY3gzWSkw5RzzLFSeKokKmtvPr9aC9QpruYr/S6WmpzdJr9F5hzOjlql7f/Ka1
u67lypOUi5GUMttTDklQC6SUWASdJlB5HPhzS5wmDpAmPWSRrUDbrEAPS5PUFRmCwIVl53BSSyGC
WgTCa1ykcLWbP8GHo1WukaJyJVLw07YQKS1Cnr1B02JPvQhPYc7sRhKkl87GDG3p1noZWFIiWB55
BjCAzY8g3hlETEc55NCkMl61XuDinlmxgoD503yhJsMPqpqq8bbMtqicq1QxTVV69f+HaQ+V37Iy
2JFZpm6kzepV8Za4rfnIVT5Cwl41HH76o/6ghxTWMe6J0kZolMrazLYoTNYGu59dyeshbW46k2Sa
3Kvq9PHJGJSUH5QONeZtjcpK9oEpa8tIsJQeZJDhqv1wcl8Ni+nH8oMhRyJXA3OCQEzYjsD18FB3
PTzkn+YP3j/NYPoFBvMEJ8BP2m/m98NFlcwO2foMQSyHynIlSOdJb2ef6TmVzQhvVTZrpswebsqa
3gTe2T96jlhK5IGCCTO8s/XzFQqm7Y2eP02BScIQhdrgemDy9916Vj3P7PSc5G6ZkHLjbmmZm10j
IsxOz2mSuJtsJK1zC+Fmr+dEr82kvSdo7bOs1ybp68G720tIqlNlFjaXZZJ/CU2/OPX/plPvCtsV
6HluOhpx+9WvO9PZqefzzB5Wal4uq0zpC1qlKUmJJ3Z2N5+jKR+lMAzXg9qfhqZqM0s/TPCXeP6x
GBJfL4bkV44h/iWJLiE60c3V5FNSLIbz4n6ajA9FSfYnBUieEp5nyJ4m03I+VmpmVt3r9Ja9etXF
h+vYlhQJpbJIiWhtBS0einlTx/R6RvBwVFadTYPsoSqnZa+XLyvjIt+Ny+m9rd/aO0rm3nd4/C1Y
tnqNX9uvW7uEnJ76SCIjXOS5nU7MflWvp4fQLCLjZDxXLYzLaQGF6FAvMr9bt9bbckV2tVyox9f/
bmP9Eou0Ld/aKax2jS3Yw3anpcA88jn5CQfYR0ejjX0/qGQGk5AlkKPu/+/tM3uqvPUUi7onP1EB
kzzX2zUJnCCrNyoGK+PMvrGwO8Ak2oJhmsxVDwjg7NQnLxkRirecxJ8/TTO9M/ndFojVBuUOsm/O
zJaleTxyUxbThQEmiX6C2MiBgQCOOzMcdyIuLP9DXA1pRRt46+0/uQNRP+EUX42G5dejYf1w6GvS
sIBSZnv0e72rpPpQTO+/gJ85hkXdcKZH8mGYfdQU84WrEJWRdDMC4PKwFKmlcZefzNMiyT3SDmqQ
V+hoHn5MqiLR3x0xfHiEJTZXJzVB1MF9KgOLEc9Z80z6TdB8ucPojctK77LdPEDc1tv8HO9EM+Hs
ZEoEhQqJXYX32WqTu5gaZQKYY3W7fmDGT6cqN8eseaxwPMww33mqQIR3Oke5OcPN7v6nxejuuDZq
d+q74M03Nap581ABnf0zyiz5Et8v8f0S33/b+MboJcBfAvwlwP++AY5fAvwlwF8C/O8b4O5LgL8E
+EuA/30DnLwE+EuAvwT43zfA/3Ff2sFUf20tfmP/DPDH+vyC/qCq5sTiX5zVToluliVZQydgb6+3
Mtico2i+ur65W1/QJzdMcLgEoiPUX2DVjzTZyafI/pOA9/5/Ap5+tYBnXy/g+VcOeGRnzQndT8Xi
QZ9VbhzfNqdX7A7znLRYnPUs266Sx96BI7RwI926UU/ECCKnyvZv6FOxdpWvb2ignFLMOYSIvlMc
6TJf3wDZKx36Rjpry6LeiLoCmx77N/RBaBikSuwr8XSoV3Kvi2eUYHQEFsZ7N1yPaUtgObQrK3FN
F9LqgrEkLstyoW94x3rQfe2EaiXFbEvW6tirXY3GO10w0qeUYL7dQ7MIsqzL8r7IkrEd3LzrNQfK
raiqysqcq25Oja+7MutOf7PrejlJV6fosWdZVr+YJtWTfTFJ7tW8Z62OSj+uT0nbjr190Xxd6dm/
N9AxJ+4de33k3v4u5kJQIakTiZg6JOwTp0957AQ+j6UULvcIev3XPnK9NSIpOzBMKRuNPPsVRHpz
AOtOzReDh2LShH8HwUiQ0PMQIcSJI+k5hMe+I5FPHYpkiCT4WtSPD43EMak7uOQhXBJczn4F3Zuf
NNjF5AUypH4onRC7yCF9HDv9KGROKGWf9/uexz186uxstOnR3R30Q1halmAkUrJrCUZpBoZk+454
yOOw1/djyoXDGXUdwqTr9GMqHaALQcDtaCTFs2yqL7TBYeKO9sBhjwMl0H1wl+o+yZ4OQfS8PkaU
BQ7HOHKIENIRgQtB4UUi8FDs+zg+DrGWe3Tw1y22kDOC95FnMt0Z1p0UfgC7G/KIoDhwwpiHMLzY
cySPMXiQH7mYxSgM2CHs25IPo99u08bvIpLt4SfIg5FPDx3fPACc6XPUYQSYPV84BHHu+G5AHS+S
sfClL6gbHhn044ibm22onqfUHlSP4tx887OeIB3Jt8vpVFUXU30iUuX95TQfqzoqAxe7MsYhMKUA
pghFAEMsuBNxGvf72MNRHBx3j2Oyu6n5cyAgP9NpyzAq+AHD8gRW5nvkt5zp35hoc43vB1HA+uA4
AZcOiSRypITgjPo0ICGLvbgfPYP/2oLb6Fie0D10LE/5Tgb7pNKsHoGRObi2mVe7Q7sY+sO7dhfs
Cy/GyEF9lzgER9wRETi7z4SMQi+MBNIxOjDl3vllkVaQWs9v6h+AiFcy5+ebpOJD3fw0L+bbFLNz
02qgu8QTq0rGsdsXXbGblP2r8DbJVTn9RVPnm8sQQMAyqYO7rtclAvrDp66njQKvh6hBDkM+BAIO
uCNdyMsuYrF0A+5Fsdw3KnoEhI3HH1R1xLUON24sNGXUSNGsbWFzUYyEPgSsD3rZHZdIg537oUf6
su/QIPIdEvDIkYIwx0dMIhnLwKeaeJbzSrvMue7cUiU8l6W7qoRH3HyHu2tHe4TUQhjvurpD/QEg
9AUKkWChI4kPLhwQ6giGAEdA4jBELo9Jf3/4Ws6wEn6YTFZ3rW2E6gBsmuuga8F+o392x+vqhm7X
pHbgNUiFkdMHzBBuiDoSWAgKLxlRIv3Yp+5nsYLEwzDhxjbCjO4jZBnd8dLWV9Y7rCu1V0IO7GKm
k4r+tQwXAS0zBMEWUxhiGgROn3DJIKn0o1h8FuxG+CHMQev+FnSB2T50gYUum/RiLnh/NbgZL++L
6Q6hyS4zLNHnrhd5nuew2IdMjvswygJYAlPuwsLJdaXJhseBv52p6ZvLwwNdNy+ADI9D2TFHHjJH
7czElcqLxM90EVakxbhYPGmu0P08AjaFBCpSQUKHGpu47zmCQt6M437oiz5jffF5z9mXf9i+/XY7
1oz2rUk4eP7WufDb5FMAwqukYSFN44hBN061NZxgAO9Kh3MfO0TqtIOo58QI9SVUiDxAB2ZIh+J6
jbGrYZfn1ve34GcI78PPEDW+1eYbfVb7Jpmq8dxQdldjlzoqWB/Cwo9hIlAMocE1WwPJOZi5AYYq
jNM++TzdJFV6OCL8bVbaQDjGTJsWO0ayQ0ayHSP1JI/1T0wobaKO/dYVuADGwjKo33e57/gR02U7
sCwwrYD0i1joYh7E9PORtJF42IbN/R0L+AELMN6JGfNLVfXPr6mqiUCwBRljgE81F7jURzIKICO5
4GkufBIMJg7RPqw8eISiMHpOxXBI1ZFpOdBy2zh8IOdlHjFVM7DH7cVN119xGpWyS6jJtTEJGKLC
dXDscocQzceBhAooiKFwZhzF/M8T3ZsqmT0U2RGXum0OOhlya+HYxj86kPxylOxMjibRsKjMIYin
9axgTroSGZqOIWsjHAkn5vBGXNd1/BAyIvNdpn/Ficsg/lOaXms4bNBWE2sb8IFZyIm3EyRhUW+u
Vk8r5jF8oDM6ErqA1mkbZsXp+xQmhUaR4/uQM0MIkUgQil0e/umkrET/KSnsozncZb/dtu3kQHGQ
p2qPBcdlNXiaZrqIkXUu0n9NiqWsL8FO6Ye4rg0EiYHPfU0Ngggefj4dtX5D4dnWr/Ec48Pm9rat
6YGElTeFUGtreJws9M/1reIOivTGTaGiDEmoV6duH+pLqIqgmgAaCYXsSx9D3BnCX5W4tbzzY5K3
sWXsEDYg6txg095bL72L6f27RbF6ktKBSkZvqsgYRZxJB0kByBBQNJSQfUdIzmAlF0lOZQvZcYFb
oBQm+6AUsNOuc2z81vzslj6Q18HCq8Nc/9UFbxj51APHEDhkUPCGfQgPEgCFycCTvP8/vF1bbyM3
sn73r9jHARYUeL888jqZs5PNnDhzsK+6tGZ84rGzlh0k++u3qiW1mt2ULCRGgMR21B2yipeq76sq
UgKw5FXmt9Hbebw+fbPWT9KGfoegBaa9H3/5HVhoN4w1BYvF+6UQC3epFE3wXhPY7ABbrJDgUXjm
gmnNeLbNpVC3WYtjGq6uW06ddepWL19uf/+2euwRSY+l4CcIlVlIGRgQUVwABQPOTgJPnrikomG8
UB/NNUM87uGMVRm9UeuwtC0d1sc99rW7+7ZZ3pPl7uFYUPBO8NOwYpCqlEKU0QLRIHAMExXJOZSS
c+Fc8nodzxus5VnJuTxbup54qL0qx4thwKxLHFQOFm7BEaRan20A1BAKU4D0RCHWRk2MCMVICrKV
cM3AVt20R7Z6ZayK0pTPVMEPL+xGBA2If1zPzzXsMpVJYRjfoakATS6c2KCoiBkGN6k/6Z7Gb9Si
801DdLeciH7bLZ/WX/u4McxA72X63+hlXLBJMUo8N0B6dACaILIjzDCpkwMbJ9XbOddBkDNzdHxc
K+lWDSU7fiSrBVgJ3pe7ewaIcrQoHK23B+5DpQXlPHhPEaOFWdGWaOesikmBhvHNXaj/6fYK5DcX
utZ521qT2+VR54Pj2zzsdpsBx3J+3O6iwC7yFNASlegTLCiubCHJxVyiFF5SdcmhjtqdiNWaiu3q
aIV+7n7/9uVpcPCI3oT3NlkY/gjMk4iQBPHAF0jmNjMvuAey0xRl3FYlhFFzc66sEMex2V/8u8Ab
pO1pbNCMJ1OE1YowmiQRUoMfj2AJk9M2BxFUEqo2gvOmbupO50ZQLZ3twcVp++269ctTH20w/d5T
Shq2YHLB+1AKcA4WHSPZof9G1w3muRCtFazQxAAcyYuL9PbQ/Lk9tX96U8voGoKv6QSxPXTP2NwJ
sLEFhhZsYJlhnN5jrEoEnwl+RHyIVgLc8ELLS6uraraWaz2PHagV3Q5TC8bmMCfHja7ZnukIZ0Tk
ljAZYBQp1QRodSCUJph16kA2cwY31E1W8qwYbcjDpoHof3bP/uX5ax+B6QPpfTbDMpY1AsYcweUG
I4mlFni+UUlzWQTXV/m2Q+Pt2T08rIXWDaewMtO45O6Xrlt/XYD2j18e7mrHiWyE975aHiLozoYQ
RJZEc4FZjMKIowG8nMyeJgFORLO3iMnc9lL92BKqWtXT1+oRMHP6rDZ8teX75f24+v/1iP+r/RLy
sFCSs5Jwg9lJCigPVjIjOnAqGMyi6aPcI/MwbqcSYGOXcwHwWrbD/uqdJvDl5ZcBAwtLF2aPikJy
TsBeIhkMABEpAj7iNsAa0gA0gclnFWtBZu3d1B3rhjSCTXb7/lj/sNnFgu3ZGeAbFSRMvbAADITg
sNON4QSAumBZFCbsRWcybreWSzSc3NYCLq8u11u+bO4eF8/76xsXHv/reJcjwBm2RzMMt5x2gRvw
dkR5CzNYoiHBgheMTAcNyFfzki/7+1HjZ6JpozcqZbbbWUbHaqYHlPL+46enxy/Q5LflITY8CalL
V0C8kknMnmOSBWCLBuZZFFhZywQAyfI2IfUzoozV0Xoz9/Rad+pkiTEyGitbDKtMIiK2URYawccL
C94VGCmQDaaAbGieEmfWZJbO2OJpo7VMnW7JpCfudr9eXsAu7Par5fPDHvlWSwVpBxOKKOXBXyhg
RV70/Fk77k3KwZTXlwq2fGGd4OOJBnPooq0a7EL46G9PpNjJhcK8RHbCIxFWxQNJ4rA6PNORqGSS
AQNltCt/KkI8evXXbg0NtF+r5KvUspuuoVY3GJjRzZVDWlMyagz4ZlIcBasSwDNaLTIx3GdArTll
1o75nBqrZejmxsRIZac54/39a8dMHNdqj8IcWFkB1gMcGgAbYcHJgQ3muHrBiTNlQsqvUYUzvCYe
nt3Ukq0b4ho5Efd999Dtr8ZZ3h8MPAzhnsFp2qMxDf+XC/gdK5yBvB78hgvSAYdOYPACdTCa1+CM
Rldn8qDzF2vVjGqptp3PxO3yYdObcbHXCOehcJMiVyQqjWg4A5vmwBlSLNlYoR3T6RptTq2f2Z/D
81p2Sxuyu6mrXO6GOCFnZsH2RQZKlSCkIIoDfBeZFzB7MpGQQ1EeNHEyXfKTQ6O1RK61rp2eSLR7
XoK5O7qUPgGAiyMqazO1HDiOBACBRN8V54nxyQoQlvJ+WZ+VadRsJZVZz3e8MVtzlGr997+DbznK
I13v4Tjz4I1hMrURsFIluIRgTCFGigxSwcwWOuFfo2bq/rfzcJixbAiH/c+n/P5kSCVOT8BElMyM
FFPAK1FhMdEmCJVKp8QMwIXLuZ2+fPTDD1eQ+1PvN7V8m4bQfLoxvn+5f757fnxZf50lwZCDqQUT
fb3O8U8k2ZbDVnecRC1g6SG/ds4AQUscFh8vwI7tNbvmQtdVAnv6Wq2maOwhq6bxtAP/+LjElPJt
9235gHeEwbO7hy9lpPCCsT41vP+jLxPT1kQeCbgSD/ssYJ7eAMbw4FKKkF7ly0UTzS7P4KbWq5W2
y4ZLNytciVWB4cfkP1VaAbHqK5QOTl76lKhyinCFKRBgrJhjQBAbjKMwj1H5y0pBB2d0gCc3tXSN
dbji04qx1W6zGK6mxOuR97XOfFRswxM34GsscG1EesnCX1SBedEOqK71XBfxSuxi0v65IMbktbE+
1mzmJtI63U14xP++LJ+e/7Mvk2QLHHzgMr2VDElbX4CqJ3AwYJhiAtIOMCtILwVX2ulyefBPTbfl
Pz2/qWXcNgR3Q57kt93983A+8B3rDbozTjqhiRYi4jqJIKphYM8Y8HFw/Cyy2oaOG6l6X5p5Fsou
7TTJHMuraWYTInQvM2FBUuRdnviYgCEKFbNKWqVXxu+KNPM4lFCueH/yUq25XbU0nyZnv3b3v+BS
EQuBkRC0PT4bLbTUJFEDtgddKWgqgaTFAGBc5iz0W4RBvoOu2y/hk0qZlZzDLbtS9MjUfv5tBL4l
RzO6L3YQURsbjAKHGPsjCoHYFBKRVlrhMfZYhRlGkdnfWggc+pQtQdRxNT913x5/7cZ5P4ErWigJ
48iwIhNJewLQ7XmRAFGCEWBcDM2lKca0vYkwuiGMFtvt/o6/1X+wQJoOA4O8FfaP9VjcGBiAAyHB
pFkKxBA8qzUYtuNyEnepWqn7N6zR/wG21Uml/7vbdI9Hk8QATmIMSGpARcJlwjWWMSo8NeGUJTCB
VvAgXGD81bxM3/L5lFL/uJJ6zRpSr7H0rNoYQ4uLDz/0bAq8QQ9JHAUwTOFvnFiqTEnBAx7WSKwd
FcRGCosMIC2ToTBnL6eW+sbb4vePatEbMT+7toDcl/uQ2/t/4bdHNct+PId1JkoiHNgecNGIS9Ay
sF+WZcqUloy9ZdnPRJZKj+16HpqHD6dT8OGHgdU/PgHitwuORqr/3dfMMCMD1mRxPK0gkyWwnQIJ
FpwZL8Xn4K8BhFU356Zi9EqtSoOSw4dDtmh9v1n/8tI9fLl7GEwCOOSFsj2tVT4kPBwCPBxWD/Aq
G6gBpBGpDY5KrsSrPiVeEw6bizHRYs7U3fwEhs9/e6e1Wig8fYG/EVcEzwUtjjApwVlHHzBy6gnV
wBqZ4/DpG1Yu+XyG6uabWvRVQx89jTx8Xt39++VQIosri1s0kdEUBmZZkphhfwjR01vJYGo4TU55
VtxVSY1j622Jj08ruXk3B0uOb4cAa2/Rvo/3d4gij3vc9vgkhyh0BGgXAXJhaDVhOnR/GIOLbLLS
bxRanQtR67CdQy4nluK4I379/m43ROAlB+CBvoCCJ6IG/BKzWCrugCDAdgDerGOwFJaSlH9VAHAk
4E2tg2wo1olT9PvzNN7tMwVsrdQ+UgJ+v4Cx0olkL5XRVDNN1VvFuz83RJZiTtwAWg+46acPpUxC
CCVEZSm4MKSZRBgQ3kuAvSYI+CfTIHh+oxDCqfdK6P648FRoxTeTzTv6aqRjtBDZWsxacAy5Ziyk
1LEQxwC8RmUSLRzkL1cV6p5af+2c6kT2riG7GNzBb8unE9nhFFe+UoZ7bzA3bsGNlcxg5VMgZsDM
rMwUmE+esJ1TI3XnomHF1YzsPMKaWt8f3JDreS7+0QcmYctJECUKTOcqDjbEOliuUTKbIisq8D/s
j/bPaoEbHMUpJ9tRlN3vD89fu+qQFeZwTY/K+t99lEiUAENKskWkjYlcy4MlTBVXrFXB0LevKN1n
am/n8s3TucNL9UA41RoIPSmF2R2ivcf1YyzGi1BtmigA+uyJDsjZMEAesqYkKGmBe4QcjLkYAx23
PBGtsRs17S5Uji1+uD0VkQFF6ZPs/W9c7mBNCg2KSM8x3QrczKcsiQrSJB1N5oq9HV44SXJmUd62
as7cpmsszA36YXP+Ioh3Shyi5B7jRUppGH60/QyPkVFAEEWbHF2mNPN4sdZ33G4tWMu5dpiF2h5i
wnwWElalGK2IyhHPI8PIB6yzDhl4H1B6n5h9s5Awb4jcNRCy2+rpwaW7h5/H+/oQgOEUa9ysVzSA
r8XCfrBLlmvANuiYlCzZF2rBaL1FROLDWIYK/z/8fFOL38BpWyOP04BfnjOkjK1EnMwSdwwLJyMV
mPSxwL+QjsFuKEYEmCQXmmti1FYtQyMF5bZrO62LXC/v8e6szzs8//vcPW3xi7sPZ8L21chGKu4s
McLg4CZwPSIwYoBVKa+0y9L+qcDg2FC2hDljLluvjgdgSRtnE5dM6pZlqkt0xYHKM4mBDZwdCwiT
Yp2cAYiDO9YSl6IiEVh8dAEP+/GrC8xfL9SdvVYphl+KPVdsNaC2yZfkvRPCDTXQMkvPEEdEZJSo
kTXUAYQDUJUcIIzc9gN1m7U4K9YQZ82OMa/dcnfPFye7Y/aVYWDIDaNEW6xV09aD2RGZSJsjrCzB
jJkUGlXN1AI0EmFLTuWUneLPchsfv/3yhMcOcaaV7kemr4lAsajWgMdh26WAB07QKNuUMFdYAONE
R93VqddJX2dTsJP3bmolGktY0Gnt3cwE4xI+5JP3Vl6EGAv3mcTCCtYvYV0XALlUKEx9tJJ5/set
/OFhJbowsiG6mWK3BpwC0IZRQNlXzmZRKMNTMZhFFsYWYoXCU9dRAlwDzyHY28C1xosTfVpTYTcN
8Lw7Hn0Ziv37czRgNakwQD0YZQ5vFdBgQ5gh1GbtnC/Axd6kfLA6fXMeaw+v1GquaEPNlZhM208x
jn2E4J4alRyRBvaOwGSMUyHClg40KYDcsHeu2TbQbFtgeDARs7W6NoMJxK9Su/914QbohZuAsQhL
HcBBYRGDsfAjyGyJzhQ2d5LFu0ntc91MJYHicxe/VGrvXt9//LF72HRP3VO5f1w+nwh/yiKqlPEs
GxL+ImCMIvBoTnMAX2o8eyVve4nwn8DWpP/j2eXJx7U+pmFEYepO0YtZsV7QKgBrIphvBl+SkJjC
cKbAdfKeeuXSWwUvWhNgG0tAYZlK9e3ch4aWD8cDlX2lNJg7IyWGwBBs8WiABTKLBQM8aoDQyV8V
BRgav6jEsjbqWjcE18uBPLz/2NvT6XCrTHkQeB9MQZldyOC6pQYcBnwp2RBKpG813CMBKtGNaiwS
o+F39Y3dH5cPX46XmuCwm8NxG9P7WFsyEwy8PmO2r4/kxOEFYQBGHCb6DU/yzSn4WKRzZQ6nN2ql
dVPpadjkeMLh6x3O2f6MA6UIHvGkDQUTSWjGnW+AdwOKRraShNNAeF+jWNfWjR8k+O7D5WMQ332Y
6Ldq6GeG4ML7T58PJS7fd0/Qwqxq17EMVAUgBV5fhRXaYAhKiaRQWK4xSWrcVdb/1NE1i7QtVaXZ
atWYuVU3pUAf1mPwwTF7wdWCoc+WRjGGp8JKSBilhR8WC8ioTYCkmdb5unDhuIszGGp9BnisWcNc
4FU5266fno/+k4//mFXMmmw8nmsjTGMi1zFJggfuojVMkLNawb9/UcB8LOFYtRXnc0y14mJK/f/R
Pa26p8fduEayAAXzJQfCnMU15ws4Uq8AUZWYlcpAly8D2mOjbamPT2txxbYhrnRDLm+33bTOMggf
g0Xg5y3DFJhUJGhpsTINU0kuWTmpVxm1VEsglw0J9LR6Ln59ecDLvw9qD/Fvtb/eKlipUjSeJIa3
KbEMBlibCP9ZAAlpbmmrgKNBZutuzlDZ+qVana1sqLMd6jr//bJ8wqKzU2rU9KU2Htx3iAFDJYA2
PceQlZewPRWefkg8ivZxuml7E2HmgcyVYINbjj+W25e759ME99mQ4vFmNk+ikhl2mcWD5w4gvmVa
xuSMdWlyTKVqppJA8FVDAuEm5gopxpf7g/nFfPfBDAvAWzTDsCSGpwwlCwBvhSEhwbhkboKR4Q8D
hP2zWlyxbIm7mgRBV3j7+lCWq0WfQ7JKI14ERuqxKgLvV3Owl7MCUGlhV1h+Kf45bnIi0jzDAUzB
HF3Zr+n20yy1iOesBQc4lRLGdmzGI5FKkiwBrGtZjPHmr0otDvKN1VpzM1cLPtwc1Xp5WFfnTTWH
QcTSYmb7+3QKQEVPsZxIB8e40vLMBhkaqrtfbhvdd3SyLvsrnfYHrNGFGoopIw4MXkjqiIp4Zq44
gbV6WE9Es8vZWiuucqDHxi/cJjWphlmDIWmIvV1PIxA/3P7z8Rm/13s4oL/Hq+ZwuAAgKQtWG6Jp
wZQhmu8gMgxuVMzrEmK8ylxOOjoThqhfqhSSjRN1a9ltJnGuvSDx8WF79+XwncL9yR9xiHMd66WF
89w7ShIaUCE83juQFeEFWIYHpF/y5URuo59z1w7MXqz0Mo0DB2tzykKvdt9OVWp9vRyPPlLqOWEC
73mlgK2t7a2wNkkm7ZiZXEkyaqPu282Dl+ulWV1KX+3h+KGIlhoDULGPtPV/9f6eZ8cxiJjBtYoE
C8Zp5oDvANz5b3HX1txGbqzf+Sv4kipv5YwK98tW+QG3cRRba8eWd5MnF8UhvSpbko8o7SW/Pt0Y
cjiYi6RNVAkfLIkDA90YoNHd6P7aEFgzNDzfFdaRmpkDuHu+KHlcTzE+jLE6v73f3aVfVl/v83tz
n/vxzzIvI+EMxioKh+mRGvh0oDNjXgHxYMvxxJ4UDTM10IwvaKJlydpKTrC20iNEiDUCaP90C38i
ZOZRuYxJB2cx+M1jyqlwoUKVqSIqymBq9KnSJ0FyFCPMGmW9NgUf6wn8pDVu9xK18i+nXSpoBrzF
y1SLxwBTdY1XiRUNoHxySuvKhRqMT1HzKJnmLj5PoO7pg+mi3eOCuc2EugVfrgY5A6dvP9zvr6Rs
y5ttb7QjAWvaE3gzDt3DYM1UlgRaBas9E0Yl80i8ddfzXEjf/vGA6ospqoeQL99uL/ur9+Qd/n1w
CzCFXpCUCFjLiYL4xTvLFBhmcNBKKibhZBHKWvEcL+ddSUq/VX40YG+cFbHeitUAdnGSvVYe7vG7
shpiomESzn8U0HUb1WyDDJXULHirRTKPYBj+O46ejpYHeB4Jw63YTPB9jB9/vwL94nq9GdydC0WF
YcFWwUVMTeeq8oTxSloNiqOLwhPyTHfnJQV94hshx+pZI/bBjFmp+/XyugtC4LJVakwMgUsDx33A
iy6WKs+trAgYiV7o4KXQMyrisbeSDCWnyOiMuXYWTnw3h9Ri1mA26BBnWdboC0eMboVBuk6FCoxS
Zq0HEysOjvOyswEdY8HSZCgjU6Z0/NBCcIBNonkbsoo/cWvWIsIZrasoBJzfCExpJcahoDOIOuK0
eCTu/ND3XFrG/nFBt5rISIIvN4f5u2l63oUMSYwqkEjeVUJ49CtIDnZwBPlOrSe8rqNQA0CrXh+D
sSeWkNrYgVh7swID4eceAJRmbQZX+wtadgH2NjE2IzODUqkFog+4KhFBXU0xv188n+pT0jPn1u23
KbnejPXpRrMj0sr97dcT0bkezIkVebmCqgkmKtirRMK2ASZBv+MmViDYMZo2GheHGDq9ngoS9ESe
IHypexAD3y7Btvx0hB/mOVUuREsVCFTqKdokoAB7AedIgvl1NLpAC5dSAS9QdliSMwGb0mhNhuvg
5vPl9cfTVuK3ahPPrn2ago/ZplC4kbHiBdh3HsS+YZzF2kX9JE/wfoBZe2/cdF7i9xqUvE5kpzS6
GWL0Nqu7VbO5yxlUu3XmuEW44bJ1tAZbO5h7vNJDbZ8hkpsCvSSJmhpBg5P1k5RFLOoUDwPNszNq
VjLVqAmmRoFpRcGsMiPKppiMhnUNtiEsbqcNYt9HTJ2wRFvhiDUP+Wb6XZekbSfOB8O7dOX1/bfd
MUqE6xZzh6vkBOjBleAezAsnERmKiIoSZSRIO6ejGO61Yz+LcqyJxW10Fxu3232dAMySNBiMwapg
6UaMeYXN7jBNTHgTI6VRpgEBg35KGtZTk7Be58MJGn/N0uoYGdahmTlBHAlwMHJG8+2fAMU3YQBn
ROc3bHnjJl9Lv8eCFDvhfG/sSOZfrNZf7r8VoXcnso1qOGlXDLUSRlemEhqxOXRSiBVMKutDTWEL
KGOfBL7pByP1V337rKR/SnqvLsBypyWy7u5LW/SoHkUPcr23JUJwLiY4QyXe8liFGHnorpLGhSCV
i+FJ8BHHsebwcg/PFyXRY1O8uRBD7NjOx2dBcdpjG6g6IpAdbA+PQB0eNDgPZhAG9yYbSdStFTS7
Wyfcfc3FRHDrRpKVtqO0vUO+Fy4KDODNt57HnLJggg9KiYpgJiwPmI3PQVJaD2tWcworMPyHOWX9
FouC4AnxvpGNGjjL/tJCfJb1E2ouEDdEV7bON9QM864k6INeMcuJjrV5EtbpvvO5JNb8sCS6Geuu
G63brPRXb1LOzzpevKZAnfLodiE1GlhBVFZ5i+gORHta+5o9TzRJO/AxjKT9uyDdTs231d3JEy9X
n69vdoggsNntcA+UaUrwv1u9xiPAeBWIA44EExgfYythcwY6iX6Y7PBwvyWJZqzlghAZgTLsr8m3
RdGK9kKfsjZbntQxmBoUbrAEQWyA+ldhEaFKeo6oVd65RwBPD3fxDxevcBPtCpaaZizEN83WHs60
3751UgM0TZQarI0/hx0JC7oWCK4GhgJoj1RWCkzYQKIMik2DF3bdlURsx5J4syF0MK9g9NQfDlPZ
Iq+axFQgFgxokFaw0aitLHWsUiI5i/UzKH/46iX3OQsLWBfFSoAkNkEn7TLP/nlMvcnlIwRLJCAU
b3B4hR6wGAb6cSMTKcoYhWWDxfjPqbwbGEJMjWs6zWe1/rmz7FSLfhdoUtIjEhQoltEhYCjCezBO
pcXDikwHg/e6GpAwzqjdEkUnUrFRwcx+7RyD2aJdJm00Fw7sOI6Z2Dx4MPAoAiES74PzLFn1qCDH
jueFOD5dFNRpNkGyGQaQ5vM0rL7d3R/dT3vw+ES8AtUEcW4owmiD0ubBWvbWEB6Fi75+Fg9bn4IH
4mP3LUoejZzgcdVhkL67/jxwOVFJPWyNUKmkEXcUrGxDQErWoIsmFoyNkT+Ty6kbvCR5NVZWtrQZ
ekCbze7L3c23Xa+agck5tPknOqeZ9CkwUtUGb11rxiqQ8aQyljjqJGgxkjwNTzwPdDDwscEcrPio
4aLkYWwebLntoBsu1/do/vWS5ylsDpmVMGI1WCIVFfhOcMtaDgqPZsYpEbAs3sAPM+hrUQ6pJuhY
s8EEH72v7RS55uryGqGUuws/0kW1g5ZIeKox0hGD7REVydsI+owyyVgnFKvl0yDGxyM9dOVXtiy5
XPMpLrvZvu+VIciRFtEF4TBd01GwvrjRAteLrZylllMVOSlA8YsuBiNPzK8gnTRe3feQdU2bxA7n
ZABL1KBlr7BoI6ZueTT0tZBJg2h2g8GPvRSDC7mZGNwOYYf+FtGvIrNGmq9yAq0Z0aBJx1RjbAfM
g+eYSo8JfCTCeanUs7vS/xZnkHxiwZOkY6V1q0b37Cjkx3XAjNxH2mlmfVQgrWmN6PxJI8KjMBVT
NaOIHsf842VnHtOmyjYFFwjXNOICvpytZnTSxnLgi0JG9n/xXI+iNpGEoMGAAAMSpLQ0YEqAXUwC
k4JRw7T/rwTftc9KPieiIhCzbgAg2lZ9ahGd+6YRSBAnuKpBV8QkBkc8uiBYxZLXsq65gn3xtESo
Q/8PVZ0a4jpvDRn7S7eGdWhRe7P28nrb7WGByHvtnUcU1FGpQIEzYOYbYbEKKAdbA5SBBOZtfNi1
dey1pImZCZo4HdB0jWEdPXB+esJa5CiwhoUXdapqiYUZEfbMSdjlQjmYULBjOXuw8ku/45KwCWfg
9mK12q4LYfNLVgkOwOxtjDaouBT0I0R2ErYNETRwplXJucApnNHBkmdbwG20+fQCzs8WJQMXE1xd
kFFFpd0Xd3tx2R2IbI+glyGsBFVSgvmmNUG8JTD1PcNUHFqDpAVDzpuH7Y5B7/Punl6jkouJpLnt
mgxP+RbHF8VWBtNtMcnpHpM8x3ImypMRoEZ5IVvYHh9qWYHKq5jVUjyl8kbue15i5seLktCJJb/m
RzfzPl2cTqSiC5JI7Rh6dGswPr0Aq6r2ukpEEzhJknXeDjP/it5KSjifooSPDp/1zQrPHJOThtGk
wcpFqAQ5kcOfCMXabbKKFoy+SKmlJj0ycdDl3KTBo5JMMaFcri1MmCpDOYryXy3kWq7/JZJNiH9u
JSIvKIl4j2CZJuVokGCahjo9+/l/pGYusGPqWm27ntqgjeKDpQ27Y43g9bdNzpQzWfrgsjoRLcRl
dGjnClAD0OYMSmNxhVClOthkohBJp8f26HGA2R16bFIw0UwAA+KXw3WVTUSMeDzm+QGBcMwEUgXE
agILAkxORFoNsOqTphHhtf9tu7N9VpLaTIiSphkiMHz4eXXb5iRy1iZC4U9UVqzh3ApXMYSe4Qw2
pMcIrtpJWkevXIxPwsnaDzBjELQPB4RvJwjf6IxZmSHCwtmHSbAypV2kDC89Ddr3gUgw7U2owBSw
tSRK1C49L1hZj5IeD4iBNbLg8csmhzFhmkr9d2R90wyTZpT0QXANywIjRsB6CcgCVmcGSZ6wvh1/
puqxAxIG5G8myDfHXLTTIf6PTpLGGoSQFiRn/WGdOrB4aQqSEicckfKZHBDd4AXJWAxlRLIVq34p
pHer293m9hhp0p48hkuHEUmVcogv6xxeTPs613kSJKYgjPoflkLqE70omZvkuDnsk8NdThGJ220a
WG45YsBaE2AzY8E2gTH38FstdSUjdXiCUC4fxByZ6L0k0q7HRK5M51z97aoPAsCyFkajwytUUC0T
gm8mONQMYRXRGLfOgHRdD5CNriYhAHAgMTF60+Wwrf/85x6IbFYARK0MLGQsgK5RTDuDQFYYyxVk
HVPao92XSNwTOoglF2ZiE11YOzrw9jisB+Co8YVkD08WpBtYi5xgxj7isoBO56yA9+XgYEwpkfiI
CTkabuYELFuVjK0n3ularkc1pe9Wzd5rvI+dh3O8DQgiAiurJTDrKQYEWVZXVsM7hvlNnhBjWFLP
FxB0oGQuS6B9uijZacY8NmLoGUd33f0lWhG5KCtvJQo1eBeIIBpOiX3hYm0Y1nPgVNYOxKN+KizI
x9N5Dfzj6aIkj03R3InAs4zUcVzvGdiVUWbRZSQIomES64BUWFQmaQzfVlrywXIveinG35CJ3bYR
w9CZd5tbrEiKYYv9bGCRbxZQU4o+aC5sqozImMk5ngGkAIgpk2pQyXV6UuTAxEAz0Z/jhiVjwkww
ZoZa38XNFTCyLyJo23SKHHklFatURFBqjVx560GLSiTBqZjqp4U+eRhlOgTi5qqkdVxx1pIt2wzi
H6bOLDiTli+4ylFMimffiBQqGRstpmTlWHGst+RNxWBRK0kiYzX5752N8KDgdTtGMoYvjdw2rKje
dLzrFPqEqlxBGEPgExa0QinP61A5bdD1LTjxihM4DR8s3DSx/Ldjv4qlZA0/7f6m4Ob6l+NZJ7Kd
DnaupxSEeMC6DwaIgTURK5eCYpw5IRUf3hH0elmUQ41XKYIWD0TW+83Vzd3mx8vNr73k5vZ+LEdW
5SgHOGB4xOBlgW8ci8fBInbWS5n809T+8TBz+s6wXcHURC4wfjlM2kj1aQ7o63JQcpy5ktRYkBs6
O9BAn7be8kpolpLjkcGp8xRODn1P0394OqDaTFG9Pkjib6urntLTFhvlIeFpHnPeAgHV2dNaVXCM
EEmspDwMgI96fQzGHp9cVCkyiHD55TLDD9Wr9aYL2DyEbLbRLoL5GpGgiMfQMonlZrBupqWweaKD
f8KTbocOI8xs+/3TRUktHbNg0Y8khlcHeyel3ddsRZgOlUKsSE3BDMHLcZvqGiuZMKFVHWMtnwuV
rBt+/oAeuimRCz5mbUW7nM3d/3+9vNvwY6ntrC0RpqyvLUY7YjoxHIg2GFBRhTTSW8t4GNwzFd0U
BFw0E8vjYu8WyIGB158vm6ONhAeyxWNAIRKhRsHgPBzIoMNUcISxOheIGQbi93sph99M7OeL7UQt
qgC2z+ryukzB8pGDkoORPxw9tLZOKJ1Avaqx0LDUUpj0RCCurv9Z4KeuxWKRftvXGD+7aY45oR/u
r66g/++Bw7D6+nW3vFo1m+XF78ubu5+B7m+3NyDOdiBg71a3nzcZ+unuZ9B29g++zzNzt9p9+QTq
x6dvl833S95+l4EcP63h37vN90vS/3K3ucu1h/bflwM/1j35z7qHP3pcwQzk8RBqEKZpajzQLqn9
Y2MufjxbYvnf/vy+h1Zvr7/+vkRgD3xys112zozvl+c3d6uvLxlTJ+xsebvZXTab67uXlNoTdfZC
8j99t9z9inl0zaeb+7tPQNv9dS68CCM2LylR2EzoP323+On28g7RA6ETJKDrmp7wV8tf4eHd5vol
syf27AWDXruhOGhL7Ve9gV6S1y8IfFUMBh29sAaGWi7ep1enb39Ynv/jXVrOfH48fX/+0b1ZvDx+
5pruHy/Cq+VllokPfpgir7HpLnuA2v+xm25KBTZFf/81NMuzP/OhxpjXi7iHBITdjJgKbTbmsG9h
TsjZoi2R8MhHcCZe75u+gBkHLWHTfDfTWInXh18PTZewnlZNgzh6S6AMUwZ7b+S7RXuCnL59eL4s
TthfPyz/enq+/NxWeYOu1zfNcKIpy6xNNy3pN1ZB0z9K7+scSb90+M3yLZgsMyTDqzhzb968DY+s
BK5O6Nmh6YsVxmZ8N9uaM+gVNLbb35fnq89LJthsUzpoKul8U/V60fotl6/efHizfKAhvODFh3MX
Xi9ffXTv43xTmdn6cLdaf3lshVEJcgPEzqc8B+48PUTAiTxb/LS5wNV4lt/K7MSSE322+PQpunP3
CAFYnRybnp65V+mRtpLBi/306c3pD69ThBU2/8FwcOz1PP39/JEJgDXLsenHH07D2/gwCVLAK7jK
Um6JFWbmW2ow6s8WexFz1S6F2Y8Ctv6AmDt/e+7eLB99syf6Vdv0/5awru93xS5rd1e7WSRKcBDK
i38BUEsDBBQAAgAIAI+ZCUc7aMu/TwMAABsHAAAuABwAY3J5cHRvL3N1YnRsZS9qd2stZXhwb3J0
LXVzZS12YWx1ZXMtc3RkZXJyLnR4dFVUCQADjQjIVY0IyFV1eAsAAQT1AQAABBQAAACtVV2PozYU
fedX+KGqktFU4iN8WdVKWSbZJs3HaGB2HqoKGXPpeIdg1pho9t/XBkLIbtWnfXGC7znnXp97MRZC
yHy3LCv0/GKRoW0cYbzdJBjXgp2JhIifalbC7BLon4lkvFoVBRdybtgXDRJmpkd7jd1uU0mMvzA5
KCyrPAb5B7SCNZLRpleMeA4fS07f7u573uodaCxV4ru54VyFHU8JlyWrZCqgLgkFYzFGieW7MESh
kuKb4V5jjuuGNzGvizk+dUxqmqEFueFP4XRxAw+uReSkoOh8Wun9hG/JmcRUsFoa4eiiH+RhgK5m
5YAxqCO1crDw8/5y0kfBJY9IWa4FOenjWubYC7PIBx+ViyBqAWodlTRp9p1bg+g2PmZfgMrLs4Ym
32qYPD4QSRDlVSN/HUmfSdleMEvxz061aICosqyhLM93PYAeRP+vhKnazyjAHgrIMscD/0LZ8mzP
qDKRNG8Yi7aa/TBAltMzbc/JXErQC2QRF6DZn0qekbI3SxeVEfo2HEvxFgPP9gq3sFAjc4zT1NJL
0VZUT//l/++j6AOn7Qn01Ne8kYkqazbG+kFZdf1T5Iirtr4rpEbNMf4lNe8nWVQVnBLJxc8S/3CP
zpzlaDb/gDGvQWjx2Vwf1R3MpZZvBQ56Sda9DevhnL1FM03Xjnoj3Msz2sNz1tRE0tcLpVkLftoT
ViWvAkius/jXLIFf9DTJTiDWTEA+S9No/dRWO87rRO/e9fXqhIFm+kVRBIVLqQML1IGfD7vj8THd
xGm0VHfN4VN6fE7S5Jgu02SzXz112x+X0Z/p+vkQJZvjIU0NK5yKZYVVoEnmB97lNmzzivKc3CXk
P1CNYVsTscD3iDuFqR/DtqcINboumsbjGigrGDVsZ8RR6jnEzJEKR60QquGrs1o0Y1Pt1XVi2Isb
sJ/56AkosDMcVNM7tLpxT1yld2+QrmpX2t21z5Vk5Yje69axqnvn+hwvTL6uWSm1F96o4YWmZy8A
pQ+P8Ug2bH8KcIMwQ7/9dYiXdV0y2n0mUPV9pr1+Y1tdhLoKALMuKc7hawst4L8N+9pzLyjCMKQ/
aKrXXeHCCQ4WvhrfG5QeQcO5djN07YCaqufvNU1PXfDaQ8ghyHJAY+xfUEsDBBQAAgAIAM2ZCUc2
ANz8zTcAAL3OAAAxABwAY3J5cHRvL3N1YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMtY3Jhc2gt
bG9nLnR4dFVUCQADAgnIVbAIyFV1eAsAAQT1AQAABBQAAADsXFtz28aSfl78CjycOkXFATUXDGaG
5XUKV0eOJKtM2UlVKsXCZSghJgkGIGXr328PwAtIgrbo9W6dSqQHiiIG3V/3dH/dM+DopixSVVUD
c/2TFtN+PJ9PVP9XlfySL/Qvv5gt1GzRD9SDmhTzKbw3f6cUyz+Mm3hxv70Zfs4/FJPlVFXnH95e
vr8Kz384X8kZl/FUfSrKj+cfVFnlxaw6d89/u/GHqnzIAcP5EzX3P8/T89Xn1flVnL4dPvVW4yKD
13ycq3JwkrXGCvLWUgeRF2YPXvu4j1+cGX6RKfP2ca7WQ34TjuXYZu86XuQP6gwcVWq33Wz8/dNP
P5m/4z+Md6qagzPyZLK6t7qHzyX5w3hfqdK8CLZKGcKGEcQLdX6bTzeaCMLMQsJC0sRygMmAyL7k
1LQQR8h4OzR3wYPHTPjwNxOjvuwzs4dpRO0zwDEvykVrMMaGOytmj9NiWZnv39dAhGNL16XUCgki
FvODyOKB71tu4Dke5g6TLDQMwy/j6l5l5u19qeIM7kOmGeTVPF6k9+ZfS7UE8FvXT+N8Zi3qoYYR
fk7VfAEI1t4Mf/NHnhuMXN8Ph0OzN7x4PQxffzhrjdTOB5f+Er67Hl1cf3AvL2B4ELzT4+OFiT6j
1U+SxFmi1NgwPlyZ79SdjkLzWsUljFlfGxiW9co0tKtGo9vwt1tz/2clDKMsTfQbq/0BgTfm73qY
+OUPs7Q+n5efPpvDq//23/76H54dhguD8jSufTqcqxQyJTUvZuOinNYfDgz/nTv8+eL6tXkbDm9h
DsvH+aI4r5bJYqLO//z00cqnOoqsZaWsh3iyVFX/fjGdGEYTCRAHq9AYDJ4YEGgnS9/ED/EwLfP5
wi9K1UzHf23mF2M7GY/HQpm/3ka1IvOF6RCz51aQStqCqp/O5wNK8JmBTxMsHc4SZb4Z+oPBm4vb
wWBe5g+Qin4xnecTNZwUn/y4UlXvDHQSmyKz90Gli6Ls3w8gLc4McrK+sZ0c1ddbX2j+rqcnHMNM
LbR+LB1q9qZqWpSPA+JwembQ09THMkFO2qi/vLyYLQaDP/PFSrk7y4Zq8bNalnm1yNOqAaOz0JsU
6ccffmzuCz+rdLgAzD/UmJhj9gAw+IMgAGSfCog6AGgyyWeLUanmkzhVWqoNjq4B6hnQ1aiZYttm
ZwY7UUWMOVMrFZAQ5WOtQFJkOKdKoozJPUmEOIgZ/LtJEqdLSu0DSRwTQ546FVk8Ts2Haail3Bbb
G0AiJY6B0WmhzkUmhbmN6EwNBgqCZ7lYxfmHq3VMQf1cFH48mUSaMJvAcgTk2hXElY10XuMT8wyN
s1WgQxSpcl4qeN0A0Lp6e+G8wvJm+Db5E3J8/bceqotW608o1jGgmVWLf29u+qB5cfWXW95dQg6t
hmhrbAl81QJSR7O0gUAwOckw4CtHrQgr/ZIRbTzfxQTNuOs7G77V6OlpPJ5QR/G1vjdFcpWnMPVx
9XEwKJezXgfB2IgD0zdoIBiYA0rtvRZvq808VMocmrA0NlfjtOLXkyKJJ800a5OSOP24cmfN8whM
fTO8gnrVFLgNIgAggYEwOwkAccZsjM1qAfVxNML6ZbycpXXtXb1/uUEXFOlS120oDUW1uAXX9DbX
Gt+GdQjDzXW1/wwj9aizweBfI/RjSwuYU0DZL8rvJfzVj+ZDkWdm7+zVYFDMVamF985qn2HcLk1C
z5JzUmikmGNBdYlvZiJaeaiZpZ5W3PCCNHtr78WTAbapnhB+oi4nS9JGV7bqV9b6qqgsptupr42j
0Pz1tp/V0Q9wQa841UbBx43eBfT6ZZSXKuuNRn70bjm7LIq5XgGUPzR+rs2luK0ZOr/+dDoAZ4Nu
2datNUbFcpY1fV5bN9fN05ilKVW2Wet6f3359u3N6GI48l2ostevR2/f345u347c0e3FVfiu/thz
/V9G0ftr//bi7fVoVOeFQdCJSpMxHpstA4OiNrGOGIYNgk+S59CMxXGHvErDk8Ig5DR8gjsxa8uD
X3VXQ5hB6ImygNqY2Za06bZ1CEmD7PDWzxe3RTFJis+HtFELTFOHxigzQY6/LPUyM3yAFy36Ynal
F6Z1y2AQdqpUnnBYJqUKVrDXkOK1WOgBp4U23eYA1DlVJIN0GtVt4ntYik82Yq90auWzmr0b1L/m
i/sonyzqGHDAyzupC2sVWMqYXVxa63IkcoitzFFwM9woqfs5ahtEnCiKCZmY1u/Xw/YSabaP/UqX
p6U2Sy/SB3ltxiBTzQLnD62dEIPIk5SLsZQyPVAORVALZIwaFJ0mUNkc+HNHnCYOkCZtZNCdRNsu
QbulSUZEiiBxYd05mjZSqGAGhfSa5Al82s8e4c3BInpHisqUSCBO20KkNCh98g5Niz31KhzDnJkr
SVBeelsztKU7C2ZgSYlgfWTXgAFsdgTxnhMxG2dQQ+OyjqrNChcP6iUrCKgeq4Wajj6qcqYmuzLb
ojKuEuVoqtLL/7/q8dD5LcsaO6rXqVtp82ZZvCNuZz4ylY2RMNcDR5/+at5ol8JChpwobYzGiWzM
bIvCdGMw+eJSXrt0ddGaxrP4TpWn+yd1oKX8qHSqOfaOV9ayO6asLSPGUtpQQUbr8aPpXTnKZw/F
x5ocqVw75gSBmDp7AjfuYWTjHvpPiwf7n2Yw+waDeYxj4CcdN9XdaFHG8y5bnyDIyaCzXAvSddLe
22h6SmczxjudzYYp0/uboqE3gfc2kJ4illHZ0TBhB+/t/XyHhml3p+erJTCOHcSgN7ge1vX7djOr
tl1v9ZwUbqmQchtuSZHV20ZU1Fs9p0niJN5K2tQWyuu9nhOjNpXmgaBNzDqDNklfD9+/u4SiOlP1
wuayiLNvoennoP6/DOp9YfsCbZsk4zE3X/y+N529Zj7PzFGpqmJZpkp/oFXWLSm1xd725lM0ZeME
3HA9bOJpVHdt9dIPU/wtkX8sh8T3yyH5nXOIf0uhi6kudJWaforzxajK72bxpCtL0q80IFlCeZYi
cxbPimqi1LxedW/KW/riRR9397EtKRLFqUioaG0FLe7zatXHDAa14NG4KHvbAel9WcyKwSBblnWI
vJwUsztTv7R3lOprL/HkR7Bs/TN5Zb5q7RJyduoziZRykWVmMq33qwYD7cJ6ERnFk0q1MC5nOTSi
I73IfLkZrbfl8vRquVCfX/27jfVbLNK2/GgmsNqtbcE2NnstBfUzn5MfcYB9bDze2veziucwCWkM
Neru/9++ek+Vtx5jMXLyIxUwySb2vkkQBGmzUTFcG1fvGwuzB0yiLRglcaUGQABnpz56SalQvBUk
bvU4S/XO5MsdEOsNyj1kP5zVW5b145GbIp8tamCS6keIKzngCOC4s1Mf5GhcWP4vca1IK9zC22z/
yT2I+hGn+G40LL8fDeuHQ9+ThgW0MrveHwyu4vJjPrv7Bn7mGBZ1o7n25P0ofdAU842rEJXSZOsB
CHlYijTSOOEn87SIM5u2kxrk5TqbRw9xmcf6yyM1Hx5hie2n04YgmuQ+lYHFmGfO6qH0a3/17Y5a
b1SUepft5h7yttnm53gvmyl3TqZEUKiQ2Fd4l643ufNZrUwAc6wvNw/M+OlURTLsrB4rHE8zzPee
KlBhn85RJHPwanf/02J8e1wbM3vNVYjmmwZVtXqogM7+GW2WfM7v5/x+zu+/bX5j9Jzgzwn+nOB/
3wTHzwn+nODPCf73TXDynODPCf6c4H/fBKfPCf6c4M8J/rdNcGSmqxN7n/LFvT67uDq6Z9ZfZjd7
jm0l+eJsYJhmGX8edBypgwvJzoVmIhjQQ5keXtCn5Mwy21zQQDljmHPgAX0lP3JLtbmAxysd4/pC
Mm/LYnhspwLXdxxe0AcjwUmlOFRiaz4r5cEtdq0EoyOwYJGzf4HYjrYEuqN9WTGpb6GtWzDmiQMx
K/QF+9gd7FA7ZVpJPt+RtT4GZ5bjyd4tGOlDCzDfpGsWQZZxWdzlaTwx/Zv3zZFRmJGwLIuyPme5
OkW6udUxbvUXPa6X02R9qhbbhmF4+SwuH82LaXynqoGxPjr5eXNq0rTM3Q+x/vbCk88f9+oTuJa5
OYJrvoy4EExIZoUiYhYNPGp5jEeW7/JISkG4TdGr/+wjmLseibvcFI/HtvkCMn11HuNWVYvhfT5d
pX8PgSdoYNuIUmpFobQtyiPXkshlFkMyQBJjGXpRlyeOSd3DNe7CBRE3Nl/A7asjzvuYbF8GzA2k
FWCCLOrhyPLCwLECKT3uebbNbXzq7Gy1ae/uO70LS8sS4OSE7luCaZKCIelhIHZFHLY9N2JcWNxh
xKKOJJYXMWkxYgsKYcdCKZ5kU/NBG5xNyYGbMTgJKIEdgrtUd3H62AXRtj2MmONbHOPQokJIS/gE
ksIOhW+jyHVxdBxiI/eo8zcjdpA7FB8iT2Wy59a9Et6BnQQ8pCjyrSDiAbgX25bkEYYIckOCnQgF
vtOFfVdyN/rdMW38DNH0AL+DbPB80nWaqwO4o49VBiFgtl1hUcS55RKfWXYoI+FKVzASHHH6ccSr
i22o3FbqACpnOKu/CNZMkM7kd8vZTJUXM31ASmXecpZNVJOVPsFERjgAphTAFIHwwcWCWyFnkedh
G4eRfzw8jsnuJ/WvjoT8wk07hjHBOwzLgPzkAfkt5/rMeZtrXNcPfceDwPG5tGgokSUlJGfoMZ8G
TmRHXvgE/msLbqOTWZwcoJNZku1VsE8qSRsPjOtzLNt5NXusj+F+eNXhgl1hRxhZyCPUojjklggh
2F1HyDCwg1AgnaPDut07v8yTEkrr+U1zIDxay6zOt0XFhb75scqrXYrZu2g00HWT4VA+trcmrT+E
min0iTl9KsLsESr7NsDlbmBTT3oW80PXoj4PLSmoY7nIkUhG0neZTstlVWqHnuubW6qETZxkX5UA
usv2mK2Zhs9AvNThfaJvaN4ABE+gAAknsCR1YYJ9yizhIMDh0ygIEOER9Q491nLVWnh3qq2vGrsI
VQdslumQbMF+rf9Jhd3XA0m/LnyQ9VAoQssDzBCMiFnSZhjaEhkyKt3IZeSLWEFiN0y4sIswZYcI
nZTthWXr+509py9hvK4QfexoyrWpLQkC0nIQhGLEwMXM9y2PcukA5XphJL4Idiu8C7Pfur4DXQDD
HkAXWOimQi91/A9Xw5vJ8i6f7aW77Dt1Dnmc2KFt25YTuVDnsAdeFpBDmHECywpCZF0rjgN/O1ez
15fdjm6G50AVx6HsmSO7zFF7M3Glsjx2U92i5Ek+yRdQwnEdOjYFmwIK/ZqggcVqm7hrW4JBVYki
L3CF5zie+HLkHMrvtu9w3J4140NrYg6Rv3OI8l38yQfhZbyif01yyIHbONPWcIoBPJEW5y62qNSk
jJhtRQh5Evon7qOOGdKpuOnA9zXsF5jN9R34KcKH8FPE6thq840+2HgTz9Sk0tNA+hq71FnheJAW
bgQTgSJIDe5zSwLJWdghPoYehTOPfplu4jLpzgh3l5W2EI4x03bEnpFOl5HOnpF6kif6PLbSJurc
b30CH4CxsEjwPMJdyw0d3dQCywLTCihOyAkI5n7EvpxJW4ndNmyv71nAOyzA+8vC+v+6NP+sSJWr
DARbUG0M8KnmAsJcJEMfKhKBSCPwTjgwcYh50JfzEIVB+JR62qXqyLR0jNw1DnfUvNSmdU8J7PHu
4qbvrjmNSdmnrK61EfUdxASxcES4RanmY19Cf+BH0FY6HEX864XuNazQ7/P0SEi9W50KqMmthWMX
/7ij+GUo3pscTaJBXtbfGH7czArmtC9RTdMRVG2EQ2FFHF4oIcRyA6iIjksgfinn0o++StMbDd0G
7QwxdgF3zEJG7b0kCfJm67F8XDNPzQe6oiOh20tdtmFWLM9lMCksDC3XhZoZQIqEgjJMePDVSVmL
/iopHKLpvuVw3K7ttKM5yBJ1wIKTohw+zlLdxMimFunfdYlljifBTukGuOkNBI2Az11NDYIKHny5
HLUOHD/Z+g2eY3y4urxra9JRsLJVI9TaOJ3EC/3PrdZ5R+x1mEJHGdBAr92IB/0ldEXQTQCNBEJ6
0sWQdzXhr1vcRt75Mcm72FKnCxsQdVZj09HbLEzz2d37Rb5+mNKDTkZvOcgIhdyRFpKwlKcIKBpa
SM8SkjuwzgklZ7KF7LjAHVAK00NQio4PgmMbt/X/qNGnV3pY2E2a69+64Q1Cl9kQGAIHDjS8gQfp
QX2gMOnbknsUeskn0W+HtuP9+v7IXfts1GHfakmvnxEV80dYo6mNrxEwFqlDwY+IDKLIsfQ/AYBk
h7ZFUBsqCgkJxY6DSSg6Q2FX5i4c3lHqVLxfrAOVLO+Gj9OkqDuSupeCVwAVYi8IYQVkMUJhCQYr
WssjgWvJgPkckwi5Pn+Ki9sajrBKa8SuDbHosiFd59i9yqdZPLHiarZ++tajZOtWvYUTRZHFuEN1
NwhrDP4/vF1ZcyM3kn7XL3HEBBi4j0ecbe20x72WvbuvPLu1LUseHb2e+fWbWUUWC1UgxbAZjrB1
VTWQiSPz+zITYFQk51BKzoVzyet1PG+wlmcl5/Ls6HrioXpVDrcogFmXOKgcLNyCI0i1PtsAqCEU
pgDpiUKsjZoYEYqRFGQr4ZKBrbppj2z1ylgVpSmfqYJ/PLMbETQg/nEdP9ewy1QmhWH0g6YCNLlw
YoOiImYY3KT+pHsav1GLzjcN0d1yIvrddvm8/tJFVWEGOi/TfUcv44JNilHiuQHSowPQBJEdYYZJ
nRzYOKmu51wHQU7M0eFxraRbNZTc8gNZLcBK8HbJl1eAKAeLwtF6e+A+VFpQzoP3FDFamBVtiXbO
qpgUaBiv7kL9z3cXIL+50LXOu9aa3C0POu8d3+bx5WUz4FjOD9tdFNhFngJaohJ9ggXFlS0kuZhL
lMJLqs451FG7E7FaU7FbHazQ1+2/fv38PDh4RG/Ce5ssDH8E5klESIJ44Askc5uZF9wD2WmKMm6r
EsKouTlXVojD2PTXZC7wvlV7HBs048kUYbUijCZJhNTgxyNYwuS0zUEElYSqjeC8qZu607kRVEtn
O3Bx3H4v2/XbcxdtMN3eU0oatmBywbtQCnAOFh0j2aH/RtcN5rkQrRWs0MQAHMmzi/Ru3/ypPdU/
valldA3B13SC2B63r9jcEbCxBYYWbGCZYRTbY6xKBJ8J/on4EK0EuOGFludWV9VsLdd6HjtQK7ob
phaMzX5ODhtds57pCGdE5JYwGWAUKdUEaHUglCaYdepANnMCN9RNVvKsGG3Iw1YTL/eP7at/e/3S
RWC6MHMX67eMZY2AMUdwucFIYqkFnm9U0lwWwfVFvm3feHt29w9roXXDKazMNC758tt2u/6yAO2f
Pj/e144T2QjvfHX3HbRxNoQgsiSaC4zxF0YcDeDlZPY0CXAiml0jJnPXSfVTS6hqVU9fq0fAzOmz
2vDVjvfL+2n1v+sR/1f9EvKwUJKzknCDuTsKKA9WMiM6cCoYzKLpotwj8zBupxJgY5dzAfAOo/3+
6pwm8OXl5wEDC0sXpkdFITknYC+RDAaAiBQBH3EbYA1pAJrA5LOKtSCz9m7qjnVDGsEmu70/Azts
drFgPTsDfKOChKkXFoCBEBx2ujGcAFAXLIvChD3rTMbt1nKJhpPbWcDl1U1Uy7fN/dPitb/rbOHx
t8PFZwBnWI9mGG457QI34O2I8hZmsERDggUvGJkOGpCv5iWf9/ejxk9E00ZvjJXRejN3jVpv1dF0
YSgxVsYLpkUihLRRFhrBKQoL7ggoHKBzpgCda54SZ9Zklk4Yr2mjtUxb3ZJJT/xTP8BvsJFe+uH9
5bGHitXYIk5nQhGlPBhYBTTCi45wase9STmY8v7YYstnBhYfTzSY+3pt1bCRwkd/d2SRTi4UBvKz
Ex6ZoyoeWAX3nHimI1HJJAM7Gvh8+VMh1dGr37ZraKD9WiVfpZbdbBtqbYcdOboXbcgDSkaNAWdG
iqOwDQO4EqtFJob7DDAvp8zaQZJjY7UM2/nuM1LZiZvY3+5zSF1xrXrY4sAsCdhu4AEACQgLXgGM
FsfVC16PKRNSfg9bnyACcf/sppZs3RDXyIm4H7aP2/7iheXD3iLCEPaUR9MOvmj4Vy7gFf6cgbwe
DK0L0gHpTGAhAnUwmpc45kZXJxKH8xdr1Yxqqbabz8Td8nHT2T3Ra4TzULhJkSsSlUb4mIF+cgDZ
KZZsrNCO6XSJNsfWT+zP4Xktu6UN2d3UtyxfhsAaZ2bBuhWtlSpBSEEUB7wrMi9g9mQiIYeiPGji
ZDrnWIZGa4lca107PZHo5XUJ5u6Q1uwi5rg4orI2U8uBFEjwuMiMXXGeGJ+sAGEp75b1SZlGzVZS
mfV8xxuzMwep1n/723J1f5BHus7zcubBfcFkaiNgpUpwCcGYQowEil5wZgudEJZRM3X/u3n8yFg2
xI/+41P+cDSkEqcnYOZGZkaKKeCVqLCYmRKESqVTYgb86/lkSFeNePvjBWz42PtNLd+mITSfbowf
3h5e71+f3tZfZlkjJC1qwURX/nH4EVmp5bDVHSdRC1h6SEidM8BoEofFxwvQSXvJrjnTdZXxnb5W
qykae8iqaQBqD9g/LjEHe7f9dfmIN9DAs/vHz2Wk8IKxLpfa/9BVHWlrIo8EXImHfRYwsW0AY3hw
KUVIr/L5KoNmlydy961XK22XDZduVrgSq3q1j8l/qrQCJmLR5u2dvPQpUeUU4QpzBkDxMCiPqC8Y
R2Eeo/LnlYIOTugAT25q6RrrcMXNZB2uXjaL4eIzvHyzL53lo+oUnrgBX2OBnCLSSxZ+ogrMi3bA
Da3nuoh3yP6k/VOsf/LaWB9rNnMTaZ3eToD3f74tn1//3VfdsQUOPoD/zkqGpK0vwG0TOBgwTDEB
ywWYFaSXgivtdDk/+Mem2/Ifn9/UMu4agrshsfD7y8PrcPrkO9YZdGecdEITLUTEdRJBVMPAnjEg
sOD4WWS1DR03UvW+NPO0jV3aaVY2lnfzsiZE6F5mwoKkSFQ88TEBpRIqZpW0Su+M3wV52TH3Lhe8
P3mp1tyuWppPs5lftg+/4VIRC4GhA7Q9PhsttNQkUQO2B10paCpJUTEAGJc5C32NuMH30HX7JXxS
KbOSc7hlV4oemNrX30fgW3I0o311gIja2GAUOMTYVbwHYlNIRFpphcdgXcXLR6HM31sIHPqULUHU
YTU/b399+rYdJ8oErmihJIwjM4DzkOUmAN2eFwkQJRgBxsXQXJpiTNubCKMbwmix2/U3SK3+jfW2
dBgY5K2wf6zHasDAABwICSbNUiCG4FmtwTgXl5NARdVK3b9hjf73sK3OwvzX/Wb7dDBJDOAkBk2k
BlQkXCZcY92fwiJ8pyyBCbSCB+EC4+8mMrqWT+dguseV1GvWkHqNtVrVxhhaXNz+2LEp8AYdJHEU
wDCFn3FiqTIlBQ94WCOxdlQQGyksMoC0TIbCnD2fi+kab4vfPapFbwTJ7NoCcl/2MaoP/4OfTdKs
k/Ec1pkoiXBge8BFIy5By8B+WZYpU1oyds06mYkslR677ZwYunn9uM/AYYG8Kqwdx+/oxoLnghZH
mJTgG6IPGNnyhGogKcxx+OsVK0t8PsGs8k0t+qqhj54S3V9W9/9825cworXlFndkNIWBFZAkZpgO
ITo2JRmxgdPklGfFXRR0PrTelvjwtJKbb+e+2fHdkKbrNtAP8eEeQcthSdnOHeYQhY6AJCJ4eKwv
Tpiu6kvJucgmK12uVE06E6LWYTf38E4sxYElffvh/mWIkEoOfg5NDwXDRw2YQWaxlNcBHnVgogHU
xWApLCUp/6p400jAm1oH2VBsO+TMPnz8ZVri6zMFKAeUsyPm4GYK7HGdSPZSGU0101RdZ1KGziuR
pZjzBEByg5v++baUCWMtAeg7BYuJrIYIA8J7CSjLBAH/ZRoEz1dirMfeK6EVbwit+PSowuhzHg7B
KSQHMWvBMcKXsdBNx0IcA6wUlUm0cJC/XFRIeWz9vVN2E9m3DdnFkNz9ffl8xNac4spXynDvDeYu
bQJ0lxmsfAo8AIiAlZkC0M4TcH1spO5cNKy4mmHrJ1hT6wccNLHoSjD6H7o4GGw5CaJEgek2xcGG
WAfLNUpmU2RFBf7uco0fT9c4xo+1wA1I7JSTbdL+8q/H1y/b6ogI5thMBwK6711QAsgrDCnJFoEd
JtosD5YwVVyxVgVDr1/x12fS7ubyzdNtw0v1QDjVGgg9KVV42QcXD+vHWAxPoNo0UcCP2RMdkCJg
PDZkTUlQ0gLUDTkYczbkNm55IlpjN2q6PVPZs/jx7ljkA4i4S4J233G5gzUpNCgiPcd0GFABn7Ik
KkiTdDSZK3Y9vHCU5MSivGvVBLnNtrEwN+iHzelj7N8psQ/KegxPKKVh+NH2MzzmQwFBFG1ydJnS
zOPZWsxxu7VgLee6xaTHbh+C5LMIpCrFaEVUjniaEkY+YB1syEAzgEH6xOzVIpC8IfK2kSNxOz09
WHL/+HW8r/d8n1OsQbJe0QC+FguvwS5ZrgHboGNSsmRfqAWjdQ0CfDuWoUL+j19vavEbOG1n5GEa
8JMAhgyllYiTWeKOYWFbpAJzDBbgPqJ/2A0FKCdMkgvNNTFqq5ahkfFwu7Wd1q2tlw94EQh+NHNX
aLrDjyHdn9npq0WNVNxZYoTBwU3gekRgxHCTlFfaZWn/VBxqbChbwpwwl61XxwOwpI2zY0smdcsy
1SWUYs8cmUQejbNjAWFSrGMyAHFwx1riUlQkAmmMLuBhLH5xAfD7hZSz1yrFmNMNxVYDapt84s93
QNmHGlWZpWeII6II8AWjCYY6gHAAqpIDhJHbfqBusxZnxRrirNkhxPKyfHngi6PdMX3lDhhywyjR
FmuJtPVgdkQm0uYIK0swYyaFIFUztQCNvMuSUzllp/i13OEn/j7jsTCcaaW7kelS8CgW1RrwOGy7
FPBAABplmxKmpgpgnOiouzjTN+nrZMZv8t5NrURjCQs6rY2amWBcwvv0ZW/lRYixcJ9JLKxgfQnW
3QCQS4XC1Ecrmed/3MrvH1aiCyMbopspdmvAKQBtGHSSXWVjFoUyPLWASUthbCFWKDwVGyXANfAc
gl0HrjVenOjTmgq7aYDnl8PRhKEYuzvnAFaTCgPUg1Hm8Ey0BhvCDKE2a+d8AS52lfKu6nTEaaw9
vFKruaINNVdiMm0/xzj2EYJ7alRyRBrYOwJj/06FCFs60KQAcsPeuWTbQLNtgeHBRMzW6toMJhA/
F+bh28IN0As3AWMRljqAg8Iixv7gS5DZEp0pbO4ki3eT2tS6mUoCZRpGB1Q9sv0p2ZdBqwAsg2A6
EGxvQiIH3acAlN976pVL1yL7LYFtY8gUVhFUH825b2j5eDgg1lV+gnkwUmLICMEJjwZYE7OYz+VR
A+RM/iLWPDR+VollbQS1bgiulwPY/vCxsz/T4VaZ8iDw9oeCMruQwdVJDbgF+EWyIZRIrzXcIwEq
0Y1qLBKj4Xv1cZ0fl4+fD1cY4LCb/fEB0/kkC5RfMPCSjNmufI0Th9cBgfN2mIc1PMmrU9axSKey
0Mc3aqV1U+lpmOFQsf3lHuesr9mmFMEWnhygYFIIzRmcsAGeCqgT0X0STgNBfI+SXFoHu5fg+9vz
Zd3f31b6rVYN/VbbKbC+XY9dGseYOFcLhp5AGsUYngUpIWHsD75YrIKhNgE+Y1rny4JQ4y5OeOb1
CXe2Zo1Ntdup3W7bbaqP/pOPf5+V/ZlsPJ5mIUxjNsoxSYIHRKy1CNpZreD/vygMO5ZwrNqK87mn
XnExJZR/3z6vts9PL+NCrwLA3pccCHMASEXwhYToFfjpErNSGUjYeZh0aLQt9eFpLa7YNcSVbqha
etltWhXMwsdgEU54yzCxIoG4a2mxvAYTFC5ZOUm6j1qqJZDLhgR6WgIUv7w9fu0+z7hTe4iqqv7K
lwA8NkXjSWJ4hwrLYKa0ifBrAf+quaWtLHSDItXdnCBI9Uu1OvN7X/CPQ3HaP4GPYuXM4zCqpqsX
8ODkQgxIwAHDeI6BEC9heyqseU48ivYhmml7E2Hm4bGVYIPzij+Vu7f71+MEdzH24vG2Ik+ikhl2
mcXjpg6Ao2VaxuSMdWlSnF41U0kg+KohgXATc4XA9fPD3n1i1nTvRgWgEpphWBLDs0WSBQBNwpCQ
YFwyN8HI8IfdaP+sFlcsW+KuJqG1FV5QOtQWatFlJqzSiKqA53hM7eKdQw72clYAvSzsCsvPRdXG
TU5EmsfNAX+aA9T7lu4+zRJWeLpScAAdKWHEwGY8CKUkyTKLqGUxxpu/KmE1yDdWa83NXC344+ag
1tvjujplpjkMItZHMtvdolEAUHmKNRE6OMaVlic2yNBQ3f1y1+h+SyfrsrvIpT9WiS7UUExEcOCF
QlJHVMSTMsUJLDjCogiaXc7WWnGRAz00fuYOmUlKfw2GpCH2bj3ltT/e/ePpFT/6cjiW26M6s6+Q
BuDGgtWGaFowEYXmO4gMgxsV87oAYb/IXE46OkFu65cqhWTjHM1abjeT6EkvSHx63N1/3n/sXnd8
QeyjJ4eiT+E8946ShAZUCI+njbMivAAW94CHSz6fHmz0c+qw8ezFSi/TqJpem2Nuc/Xy67HUpiv6
4dFHSj0nTODdhxQQqLWdFdYmyaQdM5OLCEZt1H27eUhsvTSrc0mRHrTuKwGpMQAVu/hN91Pn73l2
HENTGVyrSLBgnGaO4PV+1FJYMyxeLzFylOaEAx6e39Q6rluKT2t1fn5+e3nN35YPb928+c/jIk7V
LSPpLRZcSY+Hogzo6QEzY3E0DcB4ROYX1Vi0OjoRYWi8Wau2VA3VlmZ2DnyNl8r+9zP8un0eg8uU
TfQOK3gCHjSTPhKETITqpKItGKljFx3Er3o4SV1G71R6rBu3pqxxu9d31X1/OxwA6y6BxBSdQzfA
dSmYoCIsAvgUjBXiYwGKJotIihvh03WqDW/PHhIbHlfKbRtwC/64nBQ+3/5497ZPdLheN9fnSRMF
zhkozIzHoCOwGeJoZMC1TeDS6mzfKRodWj5VIrZ/PJF61ZJ6etHDb8/349W7+IS/H8gz1xgryJlS
AI8MzC9mwnLkWIbOiNJcgWeR2jl5jcn5VIsyfqt7NFFvXtq93snl5LK1pnq9Pdzf2tPBEJssV+D/
0UCXvjTTRRWJMjwGZ2S279xc9kfCIYMsZ3SeGcOd3Db0PhbB/rQEfPG43k4yslIzaXl0JPqEB1KF
JoFyQZQzABx9koHSK2VkawnGwm+kmsOzjdyXyHWg7v/uH4fUtlA9qLEpRqEsuPuI6ROeSRBOEQok
MUgTg5LmBEQ8tlaLoVVLjIHM9aPw/8VdSXMcu5G+96/oiyOk8BQD+6IIHbCVhpb49CxRz54To9nV
LTEkLsNuvsW/3pmoXgq1kPSY4emDSFWBQAIN5IbML0/8YQ2pxdSnbNAh9qisA5jwiFurNFguToUK
jFJmrQcTK/bEedlZj44hY2kygIkp49J/ahPvwSbRvA2ExJ94NGsRQUbrKgoB8hvh6KzE6AZ0BlFH
nBZPBM/u+56KLd+9LuhWI2kV8HC1X7/bpuNdyECkqAKJ5F0lhEe/guRgB0fg79R6wus6CtWDsen0
0Rt7ZAuple2xtQ8LMBC+dWBfNGvTUNpf0LILcLaJsRmPFZRKLTDn2FWJCOpqKmzNxMupPiU9U87P
bpty1quhPt1odsRXeLj/cSIOrgdzYkXerqBqgokK9iqRcGxgkqDfcRMrYOwYoxmNi33kjE5PBQl6
JNkJHupOnvTdFdiWF0fQUZ7zfUK0VAFDpZ6iTQIKsBcgRxKsr6PRBVq4lIoc6bLDkpwRsIRGa9Lf
B7dfr26+nLYcv1WbeHaA0xR8zDaFwoOMKPBg33lg+4ZxFmsX9bNul3YDTNp7w6bTHL/ToJzrSIh9
o5s+Mmez2C6a1TangWyWecYtrgWXraM12NrB2iMoHWr7DPGbFOglSdTUCBqcrJ+lLEYYKO4Hmp7O
oFk5qUaNTGoQ7lRUyinTOmyKyWjY12AbwuZ22iAedKxcvsCwwhFrHvPNdLsuSVuPyAfDDzmXy4e7
zTH2gOsWaYOr5ATowZXgHswLJxEPhoiKEmUkcDuno+iftWM/s3Kskc1t9CHiarP5MQKTI2kwGNlT
wdaNGEkJh91hrovwJkZKo0w9Anr9lDQsxxZhuczCCRr/yNzqGG90wDBygjgSQDByRvMdmQDFN2FY
YETnNxx540a/lm6PBSl2xPne2AHPv1wsvz/cFQFdJ7K9Kz9pdwy1EkZXphIaAQZ0UogQSirrQ03h
CChjnwW553sjdXd9+66kf4x7Ly7Bcqclnubme1sIpB7EpHG9syVCcC4mkKESb3msQmQsdFdJ40KQ
ysXwrBz441hTKJn797OS6KEp3lyKPmLkwcdnQXHaJWirOiJ8FRwPj2gDHjQ4D2YQhowmG0nUrRU0
eVpH3H3N5UjI5EqShbaD3KN90gpuCgwLzXeDx8SYYIIPSomKYDofD5hSzIFTWg97VnMKOzD8m4kx
3RazguAR9r6Sjeo5y/67BfYrUdNrLhD8QFe2zve4oNIbL0Ef9IpZTnSszbMQDnedT2Xi5ZcF0XaM
aKsP7DteLb7e3G4wl3i12eBGKjNI4K9b5cAjNm8ViAO7SzBQwtD7KmzORSXR9+PQH++3JNEMVUU4
iYP07N2N7LrAe2/vjilr82ZJHYOpQWsFcwrOHuhQFVanqKTnPHDinXsCK3B/7fs47rsbaVdMqWmG
nHDVrO1eMPx+dzh6oK7h0WNtaDBsa9gVtUBcItC2QQWjslJgBwYSZVBsHPfr0F1JxHrIzlYrQnvr
CpZD/Xm/lC1ooUlMBWLBCoUjD7uV2spSxyolkrMIPU/54/cXuc9JRK26wPkHktgInfSQFPSPY1ZE
Rl4XLJGAKJbB4T10QBx5dIZGJlKUMQrLepvxH2MpETCEGBvXHNSHxfLbwTxSLXBUoElJj5gwoJ1F
h1h7mOjPOJUWOT4Zj9PtdNUjYYgTtyaKjiRlopaWncM5PK4FikvaaC4cGEMcczJ58GAlUcQQI94H
51my6kluiB1Pc0J8Oyuo02yEZNOP7ctCKSzutg9HH84OdzkRr0C+I+IFRQRa0Hw8mJzeGsKjcNHX
L+Km6lLwSOjirkU5RyNH5rg4wPf9fPO157ehkno4GqFSSSNkH5iqhgCXrEGhSywYGyN/Ib/NYfCS
5MVQ4q9p03cjNqvN9+3t3aYDBG5yemP+iR5eJn0KjFS1wavLmrEKeDypjCWOOgmqgCTPg+LNA+2t
ZGwwhcg7aDgr5zDUsdfcHpK4r5YPaEN10mgpHA6ZNRliNajzFRX4neCRtRy0Bs2MUyJgvaWeM6PX
16wcUo3QsWS9BT66MNslcs311Q2ikB5uzcgh4BhULTDvawyqwzhoxEfxNoJSoEwy1gnFavk8dN7h
SI/dm5Uty1ku+dgsD6v90EHwzuEK0QXhMJPOUTBhuNEC94utnKWWUxU5KfCkiy56I4+sryAHbrx4
6IBSmja/GORkAHPOoHmssBoYZtV4tJa1kEkDa3a9wY+9FIMLuRoZ3PYBSP4a0Tkhs1qX70MCrRnR
oI7GVGOABKyD55jljLlVJIK8VOrF/dF/jROYHrGYk6RDr+VaDS6rkckPS+gYuQtX08z6qIBb0xqB
rZNGrDdhKqZqRhFHivmnKzY8pU2VbYpZIHDLYBbwcLIQyEkbEIFfFE5k9z+eodxrE0kIGrRwsMKA
S0sD+jgYlyQwKRg1TPv/SARb+66c50hoAaJX9aAE24IpLRhq174ADuIEVzXoihhf7ohHO55VLHkt
65orOBfPy1HZ9/9YwZY+JGrOwRhQb9gBN2ZnG17drA9nWCAGV3txEAV1VCpQ4AzYykZYLC/HwdYA
ZSCBjRgf9w8dey1pYmaEJk57NN1gbEQH15qesBZDBkxK4UWdqlq62AIgOQmnXCgHCwrGIGePFk3o
dlwSNuJRW18uFutlwWx+zSrBHtO4DQcGFZeCfoQYL8K2cXYGZFqVnAucgowOlrzYBm4Dm8c3cH43
KydwOTKrSzIoRrL57u4vrw4Cke2wtDKYjaBKSjDftCaIvAL2smeYJUFr4LRgyHnzuN3R633aZ9Jp
VM5iJJ9pvSR9Kd8ieiLbyrCaLZwv3cH55oDIRHkyAtQoL2QL4OFDLStQecHg11I8B7Q+9z3NMfPr
WUnoyJZf8qOvdpfJS0eyhAVJpHYM3aI1GJ9egFVVe10loglIkmSdt/2krKK3khLOxyjhA+GzvF2g
zDE5nxNNGiz6gUqQEzmGiFAseySraMHoi5RaatITCwddTi0avCrJFCPK5dLCgqkyHqKonNOCL+XS
OSLZhNDBVmJSvJKI/AaWaVKOBgmmaajTi8v/IzVT0RFjd1Pr5dgBbRTvbW04HUvEfb5vchKTydwH
t9WJaMHuokM7V4AagDZnUBpxyUOV6mCTiUIknZ46o8cBJk/osUkxiWYEIgwf9vdVNhExbPCYggUE
gpgJpAoegfutBJMTMRcD7PqkaUSg3f+z3dm+K0ltRlhJ0/ST4z9/W9y36WKctTk3+BOVFWs4t8JV
DFFBOIMD6TEMqnaS1tErF6N7lnXQDjBhELQve4SvRwhf6Yxel8GCwtnnUdgipV2kDG8ODdr3gUgw
7U2owBSwtSRK1C69LGxRh5LOHBCeaGDB48MmxwJh2k79d5z6qulnDinpg+AatgWGXYD1EnAKBCM1
PUKxe8JfqPBij4Qe+asR8s0x7em0D82ik6SxBiakBckJZljiCSxemoKkxAlHpHwhB8Rh8IJkrCMw
INmKRbeKyM+L+83q/hiu0Uoew6XDsJ5KOUSadA5vd32dS6QIElMQRv0/VhHpEj0rJzc642Z/TvYX
IkU46+HQwHbL1+7WmgCHGWsdCQxch99qqSsZqUMJQrl8FA5ipPeSSLscErkwB+fq79fd/GyWtTAa
Hd5DgmqZEIYvgVAzhFVEY/A3A9J13QOduR7NzsaBxMjozQG7ZPnnP3fgJLMCIGplYCPLimGdaW6d
QYwhDIgKso4p7XCvS0zeER3EkkszcogurR0IvB0i4x7TZ3ir10GWBO4G1iInmEyNkBmg0zkr4Pty
IBhTSiQ+YUIOhpuQgGWrcmLLke90KZeDcqzbRbPzGu8C0EGOt1E1RGBRogRmPcWoGsvqymr4jmF9
kyfEGJbUy0XV7CmZCrVv387K6TTDOTai7xlHd93DFVoRuZ4hbzkKNXihhvgGToldzU9tGCK7cypr
B+xRPxex4cvptAb+5XRWksfGaD6wwLMMonDc7xniESuWo8tIECwKT6wDUmFTmaQxBlppyXvbveil
GH9FRk7bSvTjT35e3WMxP4z96yaeinyzgJpS9EFzYVNlREZPzUEBwAWATZlUg0qu07Ou30cGmgih
HDYsJybMyMRMX+u7vL2Giezqb9k2JyGHL0nFKhURnlbjrLDYN2giJIFUTPXz4oc8jDIeR3B7XdI6
LNZoyZqtekEEYzILZBJWB29Lg/PsG5FCJWOjxbymHHCNpUq8qRhsaiVJZKwm/znZCC+Kua6HmKbw
0Mh1w4rCJ8e7TqHbwtxeYxx5wlowyOV5HSqnDbq+BSdecQLS8NGaJyPbfz30q1hKljpXNM/e/dub
X4+yTmQ7HexcTykw8YAI8AaIgT0RK5eCYpw5IRXv3xF0epmVQw13KcKX9ljWp9X17Xb1y9Xqt06G
cHs/lsOTcqgACBgeMQJY4DeOdZdgEzvrpUz+eWr/cJgpfaffrpjUSEItPuxnPqT6NEfFHRI5crC2
ktRY4Bs6O9BAn7be8kpolpLjkYHUec5M9n2P079/26PajFG93HPiu8V1R+lp6/TxkFCaxxz8T0B1
9rRWFYgRIomVlIceJk2nj97YQ8lFlSK9MJFfrzIyTL1Yrg5Rj/u4xzZkRDBfI0gP8RifJbHwBJac
sxQOT3TwT3jW7dB+hIljv3s7K6mlwylY9COJ/tXBzklpd+UOERFCpRArUlMwQ/By3Ka6xpoGTGhV
x1jLlwKMOgw/LaD7bkqcBR9ObUEPiY+b//1xtV3xY5XarC0RpqyvLYYMYk4uCEQbDKioQhrprWU8
9O6Zim4KAi6bke1xuXML5Oi6m69XzdFGQoFsUQwoBInTyBicB4EMOkwFIozVuVREP5q920s5/Grk
PF+uR6rSYDH6xdVNmcfkIwclByN/OHpobZ2QO4F6VWONTqmlMOmZGEmH/icxeQ4tZrP0+64879lt
c0ys/PxwfQ39v4EZhsWPH5v59aJZzS//mN9uvwHdd/e3wM42wGC3i/uvq4zKs/0G2s7uxZu8MtvF
5vsFqB8Xd1fNmzlrn2WMvYsl/LtdvZmT7sPNapurkOyelwM/1T3597qH/3RmBSuQx0MUOFim0elQ
Jsy/Nubsl7M5Vs7sru8naPXx5scfc6ytgW9u1/ODM+PN/Px2u/jxljFyws/m96vNVbO62b4F0+KE
nr2S/E+v55vfMBmtubh92F4AbQ83uWYZjNi8pUTAn70S+k+vZ3+7v9oisBt0ggQcuqYn/N38N3i5
Xd28tUyz968o9NoZ6sSe5Uedgd6S968IPCoGO2HvXlkLQ81nn9K7048/zc//5+c0n/j8cvrp/Iv7
MHt7/Ew13b2ehXfzq8wTH/0wRd5j0032ALV/sRlvSgU2RX//DTTLqz/xocaY97O4Q2uD04zABG1K
Y79vYU7I2ewvn+d/OT2ff23rJwEdy9umTzhljzR9Bd8AaA2r5jU2NVZB0/0f7l/NYT8tmgYhzuZA
Gebddb6R17P3Obx77vDJ/COYABOzg6mduQ8fPobHV5ZqdaLO9k1fLTDW4fVka86gV9CA7v+Yny++
zplg0x1D08/nLryfv/viPsVpCiRu+9nn7WL5ff7EB2uUnsGBu8jUuvP0SFN1Is5mf1tdYj78WV6/
qaZCWqD14iK6c/cEAYydyDNoenrm3qUn2kpmsNcPpz+9TxH2wvQHo4mx1/P09/MnFgAIENj0y0+n
4WN8nAQpxPvZdT7fc6yyMN1SA8M4m+0O13X7/U5/oNd/4YCffzx3H+ZPfrMn6l3b9L/msAMfNsV5
aM9BSyoWWD0DdjT7J1BLAwQUAAIACACimQlH2NhjHEUDAAAkBwAALgAcAGNyeXB0by9zdWJ0bGUv
andrLWltcG9ydC11c2UtdmFsdWVzLXN0ZGVyci50eHRVVAkAA7AIyFWwCMhVdXgLAAEE9QEAAAQU
AAAArVVbj6M2FH7nV/ihqpLRVAp3sKqVskyyTZrLaMLsPFQVMubQ8Q7B1Jho9t/XBgJkt9qnfWEG
vss5/o7tmAihxbtpOqHn506KtqcI4+0mxrgS7EIkRPxcsQJmV6B7J5LxcpXnXMi5YV09SJguPNp5
7HabUmL8hcneYVlmJ5B/QCNYLRmtO8eIZ/Cx4PTt7r7Trd6BnqQqfDc37NHY9pRxUbBSJgKqglAw
nAElpu9Cj0IpxVfDHTHbdcMbzPsB5k8x6txgwdhNRnKKLueV/h7zLbmQExWskkY4xOkHWRigMbUM
MAa1tkb2WX7eX5f8KLjkESmKtSBnvW5zMQxlkWd9oCpOEJUA9RyctGj2TWy96fZ0TL8Aldd3TY2/
VjB5fSCSIMrLWv46iD6TorlyluKfnZpVT1FtmX1bnu96AB2J/qiFqdvPaMDqG0hT2wP/KtnydM+o
CpHUbxiLppx9t5NMu1O6np26lKAXSCMuQKs/FTwlRReWbiol9K1fltI5vc7ycjc3US0zjJPE1I+8
Kak+Btf/fx9MHzhtzqC3f8VrGau2ZgPWbZRVOz8ljrga67tiatYc41+Sxf2kiuqCUyK5+FnmH+7R
hbMMzeYfMOYVCG0+m+ulun241PTNwEYv8bqLYd2vs4topuU6UW+ge1lKO3rG6opI+nqV1GvBz3vC
yvhVAMl0FX+sEvh5J5PsDGLNBGSzJInWT02547yK9de7rl9dMNBKP8/zIHcptcFBLfn5sDseH5PN
KYmW6tI5fEqOz3ESH5NlEm/2q6f288dl9Geyfj5E8eZ4SBLDDKdmaW7maFL5gbe1DWsxsjw7cwn5
H1ZtWObELPA94k5p6o9hWVOG2roumuKnCijLGTUse+BR6tlkkSEFR40QauCri3poxabcq+vEsJwb
sp/66AkosAsc1NBbtrp6z1yVd2+YrhpX0l66z6VkxcDe69Gxsj1zXY0XJl/XrJA6C2/w8MKFZzmA
kofH0yA2LH9KcIMwRb/9dTgtq6pgtP29QOW3lfb6xDa6CXUVAGZtUZzBvw00gP82rHHmXpCHYUi/
81THXfHCCQ8cX23fG5begoY9TjN0rYAu1MzfK5qcW3CcIWQQpBmgAfsPUEsDBAoAAAAAALeZCUcA
AAAAAAAAAAAAAAAFABwAY3NzMy9VVAkAA9oIyFUFCchVdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAA
AKiZCUcAAAAAAAAAAAAAAAANABwAY3NzMy9maWx0ZXJzL1VUCQADuwjIVQUJyFV1eAsAAQT1AQAA
BBQAAABQSwMEFAACAAgAqJkJR4W4QqLgAwAA4QgAADkAHABjc3MzL2ZpbHRlcnMvZmlsdGVyLXBy
b3BlcnR5LWNvbXB1dGVkLXN0eWxlLWNyYXNoLWxvZy50eHRVVAkAA7sIyFW7CMhVdXgLAAEE9QEA
AAQUAAAAnVbbbuM2EH3XV+hpkSwWge6yhCJAKttdp77BdjaPAkWOEm5kUaUoN/v3HYmy7NzQtA+2
LM6Zc4bDmaGXwqSS1I9mIR7MXDQlw29pUrG/IlVVwNU9ZH9y1T4SUSoo1dUYDlCIao+/Y9cJgivD
qBUTjYq7HyBlbNimaVrPtkUYkNzLzNttEse3s10cV5IfiIJE7CtewMXRoN+J4qKc5BiBujScI0du
gxVQzTGfz1A2/slVz3BTsi2o79BIXitOa82YCAa/F4I+ff2m/SbPQLcKhb9eGu6JOAiQuCh4qVIJ
VUEoGN5gdbzQh96Km5W/DP9kC3zqvbAFJxt+qHnYT9r1nbglB7KlklfKCIe05BmLRuZp9wziGDDG
RvU5+bE4hr6WQomEFMVUkn0b/+iUXJf5TKMwLSArCfj9ign9H9Bz0q2RrIC3OekXbrer7CdQhRrR
USNz2zPWdjiQoiFH3jfuW9FICu1esH7KWn0ZaH+gH3wz73fTOF6SJ2BrJX/rSShU7alff7k0bEuL
UivKaJSZXdFJzIxOX1uAUhRFt8M+lFl5L2TBLl5B3wllQIxXi3uJxQ2yc2117ZMu0Ogzuv8qiKzO
kZXY1GOvWScFdC10PCy9+hleV/NmkZN70Vm033eLufbaNGV5VgdrKBkvH7QNG2bM64oo+jg5YAAn
xRewVsg7Cblh9hkhImtk6DpvYLpAJv/ElPn5/2WqW6qgpxoxkr+mGgvatEltvVuyUiie/5rykteP
cFYkCaH4voG6yy6Wux32rH7oWFZgfoCMY3yjT8uOtg1m1B+xTSzHd86OuMlk7zMX2KcYC+NMB9Iu
4JYucGRiMyJJpEmiPPBI4Jp64sYxPjdvOTZAgR/gjXEBdU0e4GK27sYfJpO2bYWF36305jFQLCWJ
h+v0vRYxGoyoM6guQf0t5BMODYouJ6Jz8f+sZR+1fN8KqfnKr6XWBXkkxmskjtPUjuOm5H81kFY4
L97h/maekAxy0hQqZVDgEHwPfW1eYyzOEEvosdHHsazKYZ/odew5i1g0y/Qkw5KdC1HhnQYSr6w9
jpOnFusNWNvDIfAx9iA4w+Jzuu4I8zwf5X4U+Jltpmky3dwt56vVOp1t0+QG773lH+nqbpfuVulN
ul3dbZKJla4nm+lqs0ind8tkN1st09RwgjO2UUgDR7PpAMZCT5TaMpzwBdCF/ByID8MZnSMCCH3z
3L6tgPKcU8OJBhylgUssZqI5aaTEXuyGTOsxKxd4CoZrvQCHWWj2ZbWEZ43Gq30vSsO1XyD9jJpp
NxDuSsWLAb1oTwsbao5/ALTGPVePU17gVWgY/wBQSwMEFAACAAgAqJkJR39MFkioAwAAiQgAADYA
HABjc3MzL2ZpbHRlcnMvZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLXN0ZGVyci50eHRV
VAkAA7sIyFW7CMhVdXgLAAEE9QEAAAQUAAAAnZZLc6M4EIDv/ApOU8nUHHhjqK1UZYm946xfZTuT
IyWkJtEEI1YIb+bfb4MwOK/a7B5sCnX3161WdwvbNE3r2bYIA5J7mXm7S+L4dr6P40ryI1GQiEPF
C7g4CfQ7UVyU0zwXUl0azomR22AFVDMWi3mp4vgnVz3humQ7UN+hkbxWnNaamAgGvxeCPn39pu2m
z0B3Ch1/vTTcERwECC4KXqpUQlUQCoY3SB0v9KGXQqnkL8MfZYFPvReyYJThj5rHw7Rd34tbciQ7
KnmljHBIS56xaGKOu2cQx4AxNqrPyY/lKfSNFEokpChmkhza+Cdjcl3mM62FaQFZScD/VyS0f0DL
abdGsgLe5qRfuN2ts59AFfqITj4y13WCQMvhSIqGnLhvzHeikRTavZhUlLX6MmB/oB18M+/3szhe
kSdgGyV/6yEUqvbUr75cGralnVIrymiUmfeQJUJiZnT6EoEJFUXR7bAPZV7eC1mwi1eq74QyaNys
l/eSVBXIzrT1a49+gUaf8fuvDpHqnKjEph57TZ0WcIC2lvvD0quf4bqam0VO7kVn0X7fLxfaatuU
5VkdbKBkvHzQMmyYG15XRNHH6REDGD2+UGsdeaMjN8w+44jIGgld5w2kCyT5Iynz8/9LqltU0KMm
jOSvUTeCNm1SW+sWVgrF818zXvL6Ec6KJCEU37dQd9nFcrfDnuqHjmUF5geacYxv9GnVYdtgJv0R
28RyfOfsiJtM9jYLgX2KsTDOdCDtAm7pgokGmxEhkYZEeeCRwG0hf3KsC3xu3zK2QIEf4Y1wCXVN
HuBivunGHyaTtm2Fhd+t9OIboFhKEg/X6XstYjSYUGfwugL1t5BPODQomoygc+f/2Zd98uX7VkjN
V3YtWhfkCVwrFsdpasdxU/K/GkgrnBfvsL+ZoyaDnDSFShkUOATf074yrzAWZ4gl9Njk41jW5bBP
tDr1nEUsmmV6kmHJLoSo8E4DiVfWAcfJU6vrDbq2h0PgY92j4AyLz+m6I8zzfJL7UeBntpmmyWx7
t1qs15t0vkuTa7z3Vn+k67t9ul+n1+lufbdNpla6mW5n6+0ynd2tkv18vUpTwwnOaJOQBo6m6QBu
hJ4otWU44QtFF/JzRXwYzuRcI4DQN8/luwoozzk1nGjQozRwicVMFCeNlNiL3ZBpLeblEk/BcK0X
ymEWmn1ZreBZa+PVfhCl4dovNP2Mmmk3EO5KxYtBe9meFjbUAj8AtI97rh5nvMCr0PgHUEsDBAoA
AAAAAKaZCUcAAAAAAAAAAAAAAAANABwAY3NzMy9mbGV4Ym94L1VUCQADuAjIVQUJyFV1eAsAAQT1
AQAABBQAAABQSwMEFAACAAgAppkJR+gcYtmRAwAA0wgAAC8AHABjc3MzL2ZsZXhib3gvYWxpZ24t
YWJzb2x1dGUtY2hpbGQtY3Jhc2gtbG9nLnR4dFVUCQADuAjIVbgIyFV1eAsAAQT1AQAABBQAAACl
Vttu4zgMfc9X+GmRKYrC18QRBgVmkxTbbtoUSdA+BrJEp5oqlleW0/bvh/Itl2kD7O6LHZs8hzTJ
Q+VBOUzT4sWRauOkqsw4XrXD1PaK5rmEq2dI/hbG3sYqM5CZqwnsQKp8i79J4I+iq16vMFyVhlQ/
QGvS8xzHcd89z/cGwzRMnLvlmJC72xUhuRY7amCstrmQ0G8N9TM1QmXTFDMw33p+y+GPEnfAao7Z
7BbDkp/CNAw/Mr4E8xeUWhRGsKJmHCsOf0rFXi8ua9z0HdjSYOCLb71gTxwMkFhKkZm1hlxSBr2w
s1JvGEFjxY/VH71obwuiaHRkG5yxDc/Y4jO20Rmb5x7YWHhs887YfGuLYAAp9d0oHNGeF3QF4TRl
zm47ta4rdUd3dMm0yE3PC9uODmM+ip194zgQAlje0jTtfLpvq/6olVFjKuWNpltbei/q5sJNedNT
7CjoXANeOyYL6p90riG9W86Tn8BM+2xdVx85HDxOqKE4w1lh/uhAT1SWrc8PvZnhuDQumNagTsuD
YTQMh7UTO5fCIdv/TuDSeV7dEPJAX4E/Gv29Ccogt3q4tgkOm7oB5dRNnUqOGiztdId9tWSQ2fq9
0IxLqF72O6+6h9OqtMhYKfndFrDzqAC2QXETKAmZG4QnDiuqN4DyS4WGo7hF/4Tp8lOkLctF87VP
2EKlv3duC9hYMg38iPnS8UrZQMZ2U82z+Q50KtUbmgalrMoz6rJOWDz6z1nj0mlVRSGyiuscJvP7
Z5Fx9UYIF0VODXtpimwze6RFsYDUNu+Y8rpJ/UuHOrlrjOx1kWkUD89GnilaV6mPOL/FDVxgyQFO
sbJa0kRscykYrkypCrCQVu9JAj7qvYNUMrXkdpLYC7BXu2UlKpNbWLsC4jRkUbyHjSn68gUUqtSs
w0u8T1QG/S/8cBASpSTyNkshiDweHH75skz0CWmmjEg/KloEDvZAP3bPArngNyITRVU7kW36eGIl
EpCkkRZqy6ODwKkPPELwvvidYwEMxA5+M95DUdAN9G8fq9Mny3C6UWko7epNY54Aw3WpcWL9Rmee
FwYx87uoD2DelH7FxckQsic6DP6vYzXq8Fzuu0PmnOD2Y9US4ylOyHrtEVJm4p8S1jmO7Sfcl87e
k+NxUkqz5mDH5TPvawenPHC7XMKQx1/nMs+670RUq43Q4yxJakktymymVI5/KXAdKL19xrqhb+8X
UEsDBBQAAgAIAKaZCUeXlncrWAMAAHsIAAAsABwAY3NzMy9mbGV4Ym94L2FsaWduLWFic29sdXRl
LWNoaWxkLXN0ZGVyci50eHRVVAkAA7gIyFW4CMhVdXgLAAEE9QEAAAQUAAAApVbbbuJIEH3nK/y0
YqI8uH3HGkWaJUSTLBkiQMkjaneXSU8at6fdJsnfTzW+cJkEaXdfgsypc6p86kKI4zjuGyEeieI8
yJy7xThN726XaVpqsaUGxmpTCgnDDmieqRGqmOS50ubLwOs0vFHmRqzRmE5vC5OmP4VpFb4VfAHm
O9RaVEawqlEcKw5/S8VeLi4b3uQN2MJg4osvA38v7EcoLKUozEpDKSmDQdCjlMQhtCgURr8Pwj3m
h+HoCIvOYPEZLDmDjc5gxD3AWHCMkTOYZ7EQIsip54bBiA6I3xvCac6c7WZiQ5fqjm7pgmlRmgEJ
uo7GCR8lzr5xHNIU0N7atO18vO9cf9DKqDGV8kbTjbWehP1cuDlve4odBV1qwL+9kiUNTzrXit4t
ZtlPYKZ7tqHL9xIOHq+poQ5TRWX+6kmPVNZdzDe9nuK4tCFYVtSURSAO4yBugti5Eg7V/ncBl87T
8iZNf9AX4A9Gf22TMijtPlzZAuPWN6CcurnzBNlYabCyky321YpBYf17pgWXsPty2Ec1PZzsrEXF
sULH36yBfcSOYBuUtImygLl+cBKwpHoNuH650HCUtxqeKF1+yLS2XLRv+4gtVPprHzaHtRXTwI+U
Lx1Sy5Yy1rR6nhWzLehcqleEolru7Bn1VWcsGf3nqvHodFtFIbQb1wdcz+6fRMHVa5pyUZXUsOfW
ZFvZA62qOeS2eceSV23pnwY0xV1hZtJnpmESn808VbRxaYg8r+NFLrDsgKdYvQF7LcWmlILhyZSq
Akvp9j3LwMN97ym7NbXidpLYM7AXe2Ulbia3tO4EJHnAwmRPG1OM5XOoVK1Zz5f4ea0KGH4Sh4OQ
KSVRtz0Kfki4f/jmizrTJ6KFMiJ/38kiMdoTvcQ9S+SC34hCVDvvRLEeclVnElCkXS3cLUIj34r8
I9A0/Jz/qTEHBmILf4D3UFV0DcPbh92vT1HgdOOm4Wrvvmnha2B4LjVOrNfuGSGBnzCvz/oDzKvS
L3g4GVL2QofJ/3WudjuIyz03Zs4Jbz9WnXBleJquViRN60L8qmFV4th+oH3p7CM5/pzU0qw42HH5
KPrKwSn33b6WIODJ57XMiv49kdXtRkA4y7JmpeZ1MVWqxH8p8BwovXlC3zD2N1BLAwQUAAIACACl
mQlHEsP7CC0EAAC/CwAAOwAcAGNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXByZWluc3RhbGxl
ZC1mb250cy1jcmFzaC1sb2cudHh0VVQJAAO1CMhVtQjIVXV4CwABBPUBAAAEFAAAAK1WXW/iOBR9
51fkqaKoqghJgESjSlugmnZpixo0PI4c+4ZmGuzIcdiyv36v44QApZmOtDwkYPuec+6neRIWlSR/
tVKxtmJRcIZPaVGxuSZZlsL1CqK/E6VfE8EVcHU9hS2kItvg98AZjIfXnU6umChUUH4BKYOObVlW
/922HXs4it3IeggnQfBwvwyCTCZbomAiNlmSQrfeML+JSgSfxahAXXYGNcbAj/pDajDm83ukDX4l
qkL4i7MQ1HcoZJKrhOYGcSIY3KaCvvWujN3sHWiokLh32XEaYMf1bStNE65+pkJkP0UuO+5+mziu
3a+20Vu563gHe57nH+0ND/eoe7Q3atkbN3IYiam13cz0+lI8kC0JqUwy1fH38RyNmT+2mrAxCAJA
5wpVBfPHY+3zQgolJiRN7yTZaMfRmTorfeYxcwrjCTKTgM8TJLRfo+WsXCNRCh+DWS08hM/RL6BK
c9iGYwBRfzAcmn3YkrQgNe4H81AUkoL2BQuP5+piD/sD7eDKWi3vguCJvAFbKPmtAqGQ6XK5uUDS
gSF1XXtM/cgqq1ViZEz4dOVKkaalh5WUe74SMmXdk6NnpOxPTJ8fVxK7AmRpqnmdhheo/xXe3xIi
qrtHBeqyU9RZCmXv1ckyq1/B9fa4WGj+p7hYDBmRe1wd+yW8q4XIEx3wj4E5sZ/DmtDdcpdBWGRZ
2cv2sKo8SugoHjSm35ePc2P+UnCuAyULfupRhdyrCuGMGGQYNQxDp9/GUBd5CbYgef4Csa6rU76b
Vr5xzeeNXG94zDcVtNAICyLzI5/yOyEXpMiBLSXAbZGkOC+7iOY3aB5Ct6JRwpfYC08oaynegHdb
T4c7Tl+l4KLIH7EaDtK2KDZZCHmObqFDg34jwfaidgkZmpbcyb+o/0/4kchuiAjQdiLdbpx9TJX+
HSqZ8PX9JktvELUaAQ5x+2TgHXQtUKRlU6LIefDbnYK88aE+tJIJjkQsc/pKpEk7FmDB82TNgeF9
ydfI6tSsI+KPDvJWo8wFYWXOxGaTKC2i24pXtf4AP8NxiYe3bxDguxziBm6SJmWjGVAFTC93P+Hu
nXiAFw/yeHvd1HHs3+ku8c+g1F2Nw892oEGZEPoK7IX88wJ5OYeCgAuVxDujPNdxWBFMJoVkC+yT
kBiO0Z4jimHUykFYmebbIo4PqzJEdGBmVRd61bmuZ1PK4oMxVkSywqrdZwmrRGrgZ1lBn4aiGhTn
ZskhOQ4UnebycXivIPSC7FLk1EMTFfqNwog6f6Dw80h+kdrp1wUINvMcaysSZt0v8MJ9JZyl8Ijz
gqzhW/XOy9J8OdE0PdJ0dVjFx0evDH730wNB0LvslvQaCWMLEjht7ua9T5c35lilyzS9vGjh7v2P
5Bg3u4mbHzOrBbTJ2IfNSr0hxX8PHP9T6el8ZZ1z7rLT+Q9QSwMEFAACAAgApZkJR+KBVhD0AwAA
ZwsAADgAHABjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1wcmVpbnN0YWxsZWQtZm9udHMtc3Rk
ZXJyLnR4dFVUCQADtQjIVbUIyFV1eAsAAQT1AQAABBQAAACtlk1v4joUhvf8iqwqirogJAESjSpN
aatpbztFDRqWI8c+oZ4GO3Icbrm//h7HCQFKMx1pWIDwx/Oe78R1HGf45rqeO56kfuLcx7Mour9b
RFGu+IZomMl1zjPoNxv2P9Fcips0lUqf90YNYxQmwzG1jIeHO6Gj6BfXNeGrYDHob1AqXmhOC0uc
SQZXmaSvgwt77+YNaKxReHDe81qw54euk2Vc6J+ZlPlPWaiev9smnu8O620QWm17wd5eEIQHe+P9
Peof7E069qatOYyk1Nmsb8z6Qt6TDYmp4rnuhbt4TqYsnDpt2BhEEaBzpa6D+eOx8XmupJYzkmW3
iqyN4+hMk5UhC5g9hfEElSvA7yMS3l/hzZtqjSQZvA9mvXAfPyW/gGqj4VqNESTD0Xhs92FDspI0
3HfXY1kqCsYXh0pR6LMd9gfegwtnubiNou/kFdhcqy81hEJuyuXyDEVHVtT33SkNE2cJyUwqjIwN
30xiQGWWVR7WptyJpVQZ6x8dPWHK7sT10+NSkTwHVV01ul6rCzT8jO5vBZHq76hAfXZMvclgDaYJ
6mTZ1c9wgx0XCy38kIvFkBO145rYL+BNz2XBTcDfB+bo/gOsCN0utjnEZZ5XveyO68qjhE7SUXv1
2+LxwV5/LoUwgVKlOPaoJg/qQjhhDCpMWoWxN+xSaIq8gs1JUTxDaurqWO+yU2/a6AUTPxgf6l1L
WhrCnKjiwKfiVqo5KQtgCwVwVfKMgeojLWxpAaI7aZSIBfbCdzRrIV9B9DtPx1tBX5QUsiwesRr2
0jYv13kMRYFuoUOjYWuCGyTdJuR4tdLm/6H9f6KPQm4rRIB2C5l2E+x9qsz/WCsuVnfrPLtEaj0C
POIPySjY61qgKMuuiSan4VdbDUXrQ3NoqTiORCxz+kKUTTsWYCkKvhLAnEyKFap6jeqEhJO9vDWU
B0lYlTO5XnNtjOh38urWH+FnPK14/3BsKfythrjFzTJeNZqFamBmuf+B9uDIA3zwoE6ws5t6nvs7
uyv+CUrT1Tj8XA9ayozQF2DP5N9nKKo5FEVCap5ureWFicOSYDIp8A2wD0JiNSY7jSSFSacGYVWa
r8o03a/KGOnA7Kop9Lpz/cCllKV7Y6xMVM1q3Gec1UYa8JOq0cehqAfFqVmyL44DxaS5+tp/riB6
TrYZapqhiRaGrYUJ9f7Awo8j+Ulpb9gUILgs8JyN5My5m+MD94UIlsEjzguygi/1b1GV5vORTdcH
Nl3sV/Hh0QvL7394IIoG5/1K3pAwtqBA0PbZvPPp/NIeq+2yTa/OOrQHf1Ec4+a2cQtT5nRA24y9
26ytt6L49iDwncpM5wvnlHPnvf8BUEsDBAoAAAAAALSZCUcAAAAAAAAAAAAAAAAMABwAY3NzMy9z
aGFwZXMvVVQJAAPUCMhVBQnIVXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACymQlHAAAAAAAAAAAA
AAAAGgAcAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvVVQJAAPQCMhVBQnIVXV4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAACymQlHAAAAAAAAAAAAAAAAJgAcAGNzczMvc2hhcGVzL3NoYXBlLW91dHNp
ZGUvc2hhcGUtaW1hZ2UvVVQJAAPQCMhVBQnIVXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACymQlH
AAAAAAAAAAAAAAAAMAAcAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvc2hhcGUtaW1hZ2UvZ3Jh
ZGllbnRzL1VUCQAD0AjIVQUJyFV1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAspkJR7DCbnDdAwAA
GQkAAF8AHABjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3NoYXBlLWltYWdlL2dyYWRpZW50cy9z
aGFwZS1vdXRzaWRlLXJhZGlhbC1ncmFkaWVudC0wMDEtY3Jhc2gtbG9nLnR4dFVUCQAD0AjIVdAI
yFV1eAsAAQT1AQAABBQAAACdVtty4kYQfddX6GkLb7lcuoBulXKVIyCLFxAFeP2oGs20bK2FRhmN
iPfv07oDthMnLxKa7j6n78Oaq1SQ4llN+ZMa8zJj+BQq5Ycbkucp3DxC9D2R1cvnmYRM3kzhCCnP
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
75GnDJvPaG6HkySJm1iebcW6GkXBbPO4WoThOppvo+Aev2GrP6LwcRftwug+2oaPm2CqRevpZhZu
ltHscRXs5uEqihTDOaO5DrWNltYmMOHtRCk1xXAvHE1Izh3xoRjeuYcNjqWe27cF0DRJqWJqvR+l
tkk0pqI5qITAu9gMmTpini/xFBRTv3B2Ykft2moFr603/q048Fz5G1BLAwQKAAAAAACvmQlHAAAA
AAAAAAAAAAAAIQAcAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvdmFsdWVzL1VUCQADygjIVQUJ
yFV1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAr5kJRyhCT9qiAAAALAEAAEgAHABjc3MzL3NoYXBl
cy9zaGFwZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1pbWFnZS10aHJlc2hvbGQtMDAwLWNyYXNoLWxv
Zy50eHRVVAkAA8oIyFXKCMhVdXgLAAEE9QEAAAQUAAAAxc6xDoIwEIDh3ae4zQnaEjGGVXCRaEJi
HIwhpT2hCXDkWjS8vfgUTv8/fkVVXasMTtr1aCEQMGoLW3HzyF40s+ttQ0GUrmHNiyip9SJ3uh3J
B2cqnIiDF4aGWE9Tj/Edm7MLvxxpDDiGOMc39jQN69eJVGkkD5FUkdrJvVI1frySaWxY+26bwaNg
HgmSJ1wI/Gw6eK0wIAbrGE0gXrJ/6TZfUEsDBBQAAgAIAK+ZCUd4DKM1pwMAAMEIAABFABwAY3Nz
My9zaGFwZXMvc2hhcGUtb3V0c2lkZS92YWx1ZXMvc2hhcGUtaW1hZ2UtdGhyZXNob2xkLTAwMC1z
dGRlcnIudHh0VVQJAAPKCMhVygjIVXV4CwABBPUBAAAEFAAAAJ2WS3PiOBDH7/4UPk2RqRyM8bu2
UpU1sEMGMAVkcnTJUjvRYCyvLLOZb7/tB+aRZDe7F1xWd//+rVarzVDXdeN1OHQ8sFIr0R82YRA8
zLZBUEh+IApCsS94BoOjoX0niot8kqZCqhvNPDLI0DMc2jLm81muguAnVx3hPmcbUN+gkrxUnJYt
MRQMfs8E3X29beMmr0A3CoW/3mijE9gwfXIBhlzJX9FmPbiK6jCzvFSyonWax6VzKfpCpE4FOh2t
HXZSY7/znN1o1kk98VxfzzKeq7jR1ezeZho2tS5szj/Y3BOTkJTqh30juBUP5EA2VPJCaV5/JKnN
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
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzZkJRz50+0qsPwAAWfcAADoAGAAAAAAAAQAAAKSB
kAAAAGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4taGlkZXMtYWxsLWVsZW1lbnRzLWNyYXNoLWxv
Zy50eHRVVAUAAwIJyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPmQlHJzZSO9sDAACfCgAA
NwAYAAAAAAABAAAApIGwQAAAYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi1oaWRlcy1hbGwtZWxl
bWVudHMtc3RkZXJyLnR4dFVUBQADjQjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKaZCUcA
AAAAAAAAAAAAAAASABgAAAAAAAAAEADtQfxEAABhY2Nlc3NpYmlsaXR5L21hYy9VVAUAA7gIyFV1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACmmQlHwiVrZREEAAD3CgAAPgAYAAAAAAABAAAApIFI
RQAAYWNjZXNzaWJpbGl0eS9tYWMvbWVkaWEtZW1pdHMtb2JqZWN0LXJlcGxhY2VtZW50LWNyYXNo
LWxvZy50eHRVVAUAA7gIyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACmmQlHP45/rdgDAACf
CgAAOwAYAAAAAAABAAAApIHRSQAAYWNjZXNzaWJpbGl0eS9tYWMvbWVkaWEtZW1pdHMtb2JqZWN0
LXJlcGxhY2VtZW50LXN0ZGVyci50eHRVVAUAA7gIyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADNmQlHwZaHm8hAAAC4BAEAKgAYAAAAAAABAAAApIEeTgAAYWNjZXNzaWJpbGl0eS9tZWRpYS1j
b250cm9scy1jcmFzaC1sb2cudHh0VVQFAAMCCchVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
pZkJR08SwUhSAwAAKQoAACcAGAAAAAAAAQAAAKSBSo8AAGFjY2Vzc2liaWxpdHkvbWVkaWEtY29u
dHJvbHMtc3RkZXJyLnR4dFVUBQADtgjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM2ZCUcn
jeN5dz4AAFzmAAA6ABgAAAAAAAEAAACkgf2SAABhY2Nlc3NpYmlsaXR5L21lZGlhLWVtaXRzLW9i
amVjdC1yZXBsYWNlbWVudC1jcmFzaC1sb2cudHh0VVQFAAMCCchVdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAt5kJR8A0mZviAwAA9QkAADcAGAAAAAAAAQAAAKSB6NEAAGFjY2Vzc2liaWxpdHkv
bWVkaWEtZW1pdHMtb2JqZWN0LXJlcGxhY2VtZW50LXN0ZGVyci50eHRVVAUAA9oIyFV1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAACmmQlHAAAAAAAAAAAAAAAABwAYAAAAAAAAABAA7UE71gAAY2Fu
dmFzL1VUBQADtwjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKaZCUcAAAAAAAAAAAAAAAAO
ABgAAAAAAAAAEADtQXzWAABjYW52YXMvcGhpbGlwL1VUBQADtwjIVXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAKaZCUcAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQcTWAABjYW52YXMvcGhpbGlw
L3Rlc3RzL1VUBQADtwjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKaZCUd1SUCt3QMAABkJ
AABCABgAAAAAAAEAAACkgRLXAABjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5pbmNv
bXBsZXRlLmVtcHR5c3JjLWNyYXNoLWxvZy50eHRVVAUAA7cIyFV1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACmmQlH2byuGKgDAADBCAAAPwAYAAAAAAABAAAApIFr2wAAY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5lbXB0eXNyYy1zdGRlcnIudHh0VVQFAAO3CMhV
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAopkJRwAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B
jN8AAGNvbXBvc2l0aW5nL1VUBQADsAjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJGZCUcA
AAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQdLfAABjb21wb3NpdGluZy9nZW9tZXRyeS9VVAUAA5EI
yFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADNmQlHAq+SDFVAAACm7QAAOwAYAAAAAAABAAAA
pIEh4AAAY29tcG9zaXRpbmcvZ2VvbWV0cnkvY2xpcHBlZC12aWRlby1jb250cm9sbGVyLWNyYXNo
LWxvZy50eHRVVAUAAwIJyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPmQlHWn41HeEDAAD1
CQAAOAAYAAAAAAABAAAApIHrIAEAY29tcG9zaXRpbmcvZ2VvbWV0cnkvY2xpcHBlZC12aWRlby1j
b250cm9sbGVyLXN0ZGVyci50eHRVVAUAA44IyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACR
mQlHRUBoO+AAAABMAwAAOwAYAAAAAAABAAAApIE+JQEAY29tcG9zaXRpbmcvZ2VvbWV0cnkvb2Jq
ZWN0LWNsaXAtcmVjdHMtYXNzZXJ0aW9uLXN0ZGVyci50eHRVVAUAA5EIyFV1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAACPmQlHAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UGTJgEAY29tcG9zaXRp
bmcvcmVnaW9ucy9VVAUAA40IyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADNmQlHy5gFAAxA
AABE+gAAOgAYAAAAAAABAAAApIHhJgEAY29tcG9zaXRpbmcvcmVnaW9ucy92aWRlby1pbi1vdmVy
Zmxvdy1yZWdpb24tY3Jhc2gtbG9nLnR4dFVUBQADAgnIVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAI+ZCUfPqtK72QMAAJ8KAAA3ABgAAAAAAAEAAACkgWFnAQBjb21wb3NpdGluZy9yZWdpb25z
L3ZpZGVvLWluLW92ZXJmbG93LXJlZ2lvbi1zdGRlcnIudHh0VVQFAAONCMhVdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAtpkJRwAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1Bq2sBAGNvbXBvc2l0
aW5nL3ZpZGVvL1VUBQAD1wjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM2ZCUfJAE4vuD4A
AMvxAAAmABgAAAAAAAEAAACkgfdrAQBjb21wb3NpdGluZy92aWRlby9wb3N0ZXItY3Jhc2gtbG9n
LnR4dFVUBQADAgnIVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKKZCUe7Tj0Q4AMAAPUJAAAj
ABgAAAAAAAEAAACkgQ+rAQBjb21wb3NpdGluZy92aWRlby9wb3N0ZXItc3RkZXJyLnR4dFVUBQAD
sAjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM2ZCUcgOOCs6kAAACcBAQA9ABgAAAAAAAEA
AACkgUyvAQBjb21wb3NpdGluZy92aWRlby92aWRlby1jb250cm9scy1sYXllci1jcmVhdGlvbi1j
cmFzaC1sb2cudHh0VVQFAAMCCchVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtpkJR8L7A2LD
AwAAzAkAADoAGAAAAAAAAQAAAKSBrfABAGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWNvbnRyb2xz
LWxheWVyLWNyZWF0aW9uLXN0ZGVyci50eHRVVAUAA9cIyFV1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAACPmQlHAAAAAAAAAAAAAAAABwAYAAAAAAAAABAA7UHk9AEAY3J5cHRvL1VUBQADjQjIVXV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKKZCUcAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQSX1
AQBjcnlwdG8vc3VidGxlL1VUBQADsAjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM2ZCUfs
k9GpJjoAAFrZAAAxABgAAAAAAAEAAACkgW31AQBjcnlwdG8vc3VidGxlL2p3ay1leHBvcnQtdXNl
LXZhbHVlcy1jcmFzaC1sb2cudHh0VVQFAAMCCchVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
j5kJRztoy79PAwAAGwcAAC4AGAAAAAAAAQAAAKSB/i8CAGNyeXB0by9zdWJ0bGUvandrLWV4cG9y
dC11c2UtdmFsdWVzLXN0ZGVyci50eHRVVAUAA40IyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADNmQlHNgDc/M03AAC9zgAAMQAYAAAAAAABAAAApIG1MwIAY3J5cHRvL3N1YnRsZS9qd2staW1w
b3J0LXVzZS12YWx1ZXMtY3Jhc2gtbG9nLnR4dFVUBQADAgnIVXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAKKZCUfY2GMcRQMAACQHAAAuABgAAAAAAAEAAACkge1rAgBjcnlwdG8vc3VidGxlL2p3
ay1pbXBvcnQtdXNlLXZhbHVlcy1zdGRlcnIudHh0VVQFAAOwCMhVdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAt5kJRwAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1Bmm8CAGNzczMvVVQFAAPaCMhV
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAqJkJRwAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1B
2W8CAGNzczMvZmlsdGVycy9VVAUAA7sIyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAComQlH
hbhCouADAADhCAAAOQAYAAAAAAABAAAApIEgcAIAY3NzMy9maWx0ZXJzL2ZpbHRlci1wcm9wZXJ0
eS1jb21wdXRlZC1zdHlsZS1jcmFzaC1sb2cudHh0VVQFAAO7CMhVdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAqJkJR39MFkioAwAAiQgAADYAGAAAAAAAAQAAAKSBc3QCAGNzczMvZmlsdGVycy9m
aWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUtc3RkZXJyLnR4dFVUBQADuwjIVXV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAKaZCUcAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQYt4AgBjc3Mz
L2ZsZXhib3gvVVQFAAO4CMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAppkJR+gcYtmRAwAA
0wgAAC8AGAAAAAAAAQAAAKSB0ngCAGNzczMvZmxleGJveC9hbGlnbi1hYnNvbHV0ZS1jaGlsZC1j
cmFzaC1sb2cudHh0VVQFAAO4CMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAppkJR5eWdytY
AwAAewgAACwAGAAAAAAAAQAAAKSBzHwCAGNzczMvZmxleGJveC9hbGlnbi1hYnNvbHV0ZS1jaGls
ZC1zdGRlcnIudHh0VVQFAAO4CMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApZkJRxLD+wgt
BAAAvwsAADsAGAAAAAAAAQAAAKSBioACAGNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXByZWlu
c3RhbGxlZC1mb250cy1jcmFzaC1sb2cudHh0VVQFAAO1CMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgApZkJR+KBVhD0AwAAZwsAADgAGAAAAAAAAQAAAKSBLIUCAGNzczMvZm9udC1mZWF0dXJl
LXNldHRpbmdzLXByZWluc3RhbGxlZC1mb250cy1zdGRlcnIudHh0VVQFAAO1CMhVdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAtJkJRwAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BkokCAGNzczMv
c2hhcGVzL1VUBQAD1AjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALKZCUcAAAAAAAAAAAAA
AAAaABgAAAAAAAAAEADtQdiJAgBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL1VUBQAD0AjIVXV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALKZCUcAAAAAAAAAAAAAAAAmABgAAAAAAAAAEADtQSyK
AgBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3NoYXBlLWltYWdlL1VUBQAD0AjIVXV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAALKZCUcAAAAAAAAAAAAAAAAwABgAAAAAAAAAEADtQYyKAgBjc3Mz
L3NoYXBlcy9zaGFwZS1vdXRzaWRlL3NoYXBlLWltYWdlL2dyYWRpZW50cy9VVAUAA9AIyFV1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACymQlHsMJucN0DAAAZCQAAXwAYAAAAAAABAAAApIH2igIA
Y3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS9zaGFwZS1pbWFnZS9ncmFkaWVudHMvc2hhcGUtb3V0
c2lkZS1yYWRpYWwtZ3JhZGllbnQtMDAxLWNyYXNoLWxvZy50eHRVVAUAA9AIyFV1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACymQlHO84u26gDAADBCAAAXAAYAAAAAAABAAAApIFsjwIAY3NzMy9z
aGFwZXMvc2hhcGUtb3V0c2lkZS9zaGFwZS1pbWFnZS9ncmFkaWVudHMvc2hhcGUtb3V0c2lkZS1y
YWRpYWwtZ3JhZGllbnQtMDAxLXN0ZGVyci50eHRVVAUAA9AIyFV1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACvmQlHAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UGqkwIAY3NzMy9zaGFwZXMvc2hh
cGUtb3V0c2lkZS92YWx1ZXMvVVQFAAPKCMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAr5kJ
RyhCT9qiAAAALAEAAEgAGAAAAAAAAQAAAKSBBZQCAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUv
dmFsdWVzL3NoYXBlLWltYWdlLXRocmVzaG9sZC0wMDAtY3Jhc2gtbG9nLnR4dFVUBQADygjIVXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAK+ZCUd4DKM1pwMAAMEIAABFABgAAAAAAAEAAACkgSmV
AgBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3ZhbHVlcy9zaGFwZS1pbWFnZS10aHJlc2hvbGQt
MDAwLXN0ZGVyci50eHRVVAUAA8oIyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACtmQlHgmk7
Q94DAAAZCQAAMwAYAAAAAAABAAAApIFPmQIAY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS1pbnZh
bGlkLTAwMS1jcmFzaC1sb2cudHh0VVQFAAPFCMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
rZkJR+tSQ6anAwAAwQgAADAAGAAAAAAAAQAAAKSBmp0CAGNzczMvc2hhcGVzL3NoYXBlLW91dHNp
ZGUtaW52YWxpZC0wMDEtc3RkZXJyLnR4dFVUBQADxQjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAALSZCUcAAAAAAAAAAAAAAAAaABgAAAAAAAAAEADtQauhAgBjc3MzL3NoYXBlcy9zcGVjLWV4
YW1wbGVzL1VUBQAD1AjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALSZCUd5jBH13gMAABkJ
AAA5ABgAAAAAAAEAAACkgf+hAgBjc3MzL3NoYXBlcy9zcGVjLWV4YW1wbGVzL3NoYXBlLW91dHNp
ZGUtMDEwLWNyYXNoLWxvZy50eHRVVAUAA9QIyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC0
mQlHhbDCLqkDAADBCAAANgAYAAAAAAABAAAApIFQpgIAY3NzMy9zaGFwZXMvc3BlYy1leGFtcGxl
cy9zaGFwZS1vdXRzaWRlLTAxMC1zdGRlcnIudHh0VVQFAAPUCMhVdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAzZkJR79gx1NsOwAAHd8AAC0AGAAAAAAAAQAAAKSBaaoCAGNzczMvdW5pY29kZS1i
aWRpLWlzb2xhdGUtYmFzaWMtY3Jhc2gtbG9nLnR4dFVUBQADAgnIVXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIALeZCUcgW/ZaGQQAABYMAAAqABgAAAAAAAEAAACkgTzmAgBjc3MzL3VuaWNvZGUt
YmlkaS1pc29sYXRlLWJhc2ljLXN0ZGVyci50eHRVVAUAA9oIyFV1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACvmQlHAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UG56gIAY3Nzb20vVVQFAAPKCMhV
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAr5kJRyhCT9qiAAAALAEAACcAGAAAAAAAAQAAAKSB
+eoCAGNzc29tL2Nzc2ltcG9ydHJ1bGUtbWVkaWEtY3Jhc2gtbG9nLnR4dFVUBQADygjIVXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAK+ZCUef6tnGpgMAAMEIAAAkABgAAAAAAAEAAACkgfzrAgBj
c3NvbS9jc3NpbXBvcnRydWxlLW1lZGlhLXN0ZGVyci50eHRVVAUAA8oIyFV1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAADLmQlHAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UEA8AIAZWRpdGluZy9V
VAUAA/4IyFV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADAmQlHAAAAAAAAAAAAAAAAEQAYAAAA
AAAAABAA7UFC8AIAZWRpdGluZy9kZWxldGluZy9VVAUAA+cIyFV1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADAmQlH1veDIroDAADpCQAAKAAYAAAAAAABAAAApIGN8AIAZWRpdGluZy9kZWxldGlu
Zy81MjA2MzExLTItY3Jhc2gtbG9nLnR4dFVUBQAD5wjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAMCZCUcgi63JgQMAAJEJAAAlABgAAAAAAAEAAACkgan0AgBlZGl0aW5nL2RlbGV0aW5nLzUy
MDYzMTEtMi1zdGRlcnIudHh0VVQFAAPnCMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAw5kJ
RwAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BifgCAGVkaXRpbmcvZXhlY0NvbW1hbmQvVVQFAAPt
CMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzZkJR8aHlnHyOwAA/PEAAEMAGAAAAAAAAQAA
AKSB1/gCAGVkaXRpbmcvZXhlY0NvbW1hbmQvZm9ybWF0LWJsb2NrLWZyb20tcmFuZ2Utc2VsZWN0
aW9uLWNyYXNoLWxvZy50eHRVVAUAAwIJyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACcmQlH
H9jpPa0DAACnCQAAQAAYAAAAAAABAAAApIFGNQMAZWRpdGluZy9leGVjQ29tbWFuZC9mb3JtYXQt
YmxvY2stZnJvbS1yYW5nZS1zZWxlY3Rpb24tc3RkZXJyLnR4dFVUBQADpwjIVXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAM2ZCUcP98oV/jkAADTXAABCABgAAAAAAAEAAACkgW05AwBlZGl0aW5n
L2V4ZWNDb21tYW5kL2Zvcm1hdC1ibG9jay1tdWx0aXBsZS1wYXJhZ3JhcGhzLWNyYXNoLWxvZy50
eHRVVAUAAwIJyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADNmQlH1AJCECU6AACb1wAASQAY
AAAAAAABAAAApIHncwMAZWRpdGluZy9leGVjQ29tbWFuZC9mb3JtYXQtYmxvY2stbXVsdGlwbGUt
cGFyYWdyYXBocy1pbi1wcmUtY3Jhc2gtbG9nLnR4dFVUBQADAgnIVXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAK+ZCUfHJIQaqAMAAKYJAABGABgAAAAAAAEAAACkgY+uAwBlZGl0aW5nL2V4ZWND
b21tYW5kL2Zvcm1hdC1ibG9jay1tdWx0aXBsZS1wYXJhZ3JhcGhzLWluLXByZS1zdGRlcnIudHh0
VVQFAAPKCMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAw5kJR+Y1g8WJAwAARgkAAD8AGAAA
AAAAAQAAAKSBt7IDAGVkaXRpbmcvZXhlY0NvbW1hbmQvZm9ybWF0LWJsb2NrLW11bHRpcGxlLXBh
cmFncmFwaHMtc3RkZXJyLnR4dFVUBQAD7QjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMeZ
CUcAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQbm2AwBlZGl0aW5nL2luc2VydGluZy9VVAUAA/UI
yFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADHmQlH60GAEN8DAAAuCgAAKgAYAAAAAAABAAAA
pIEFtwMAZWRpdGluZy9pbnNlcnRpbmcvdHlwaW5nLTAwMy1jcmFzaC1sb2cudHh0VVQFAAP1CMhV
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAx5kJR+wOeD+lAwAA1gkAACcAGAAAAAAAAQAAAKSB
SLsDAGVkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy0wMDMtc3RkZXJyLnR4dFVUBQAD9QjIVXV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAKmZCUcAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQU6/AwBl
ZGl0aW5nL21hYy9VVAUAA70IyFV1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACpmQlHAAAAAAAA
AAAAAAAAFQAYAAAAAAAAABAA7UGUvwMAZWRpdGluZy9tYWMvc3BlbGxpbmcvVVQFAAO9CMhVdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzZkJR8K4o/VJSAAAGB4BAD0AGAAAAAAAAQAAAKSB478D
AGVkaXRpbmcvbWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLWNvbnRyYWN0aW9uLWNyYXNoLWxv
Zy50eHRVVAUAAwIJyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACpmQlH895J56kDAAA+CgAA
OgAYAAAAAAABAAAApIGjCAQAZWRpdGluZy9tYWMvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tY29u
dHJhY3Rpb24tc3RkZXJyLnR4dFVUBQADvQjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMeZ
CUcAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQcAMBABlZGl0aW5nL3Bhc3RlYm9hcmQvVVQFAAP1
CMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAx5kJR7tz0kfHAwAA1QkAACoAGAAAAAAAAQAA
AKSBDQ0EAGVkaXRpbmcvcGFzdGVib2FyZC80MDc2MjY3LTMtY3Jhc2gtbG9nLnR4dFVUBQAD9QjI
VXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMeZCUdXeDaDkAMAAH0JAAAnABgAAAAAAAEAAACk
gTgRBABlZGl0aW5nL3Bhc3RlYm9hcmQvNDA3NjI2Ny0zLXN0ZGVyci50eHRVVAUAA/UIyFV1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAC7mQlHAAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA7UEpFQQA
ZWRpdGluZy9zcGVsbGluZy9VVAUAA+EIyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADNmQlH
YQyAunY7AABO5wAAOQAYAAAAAAABAAAApIF0FQQAZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11
bmlmaWVkLWVtdWxhdGlvbi1jcmFzaC1sb2cudHh0VVQFAAMCCchVdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAu5kJR/pTAxb8AwAAWgsAADYAGAAAAAAAAQAAAKSBXVEEAGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24tc3RkZXJyLnR4dFVUBQAD4QjIVXV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAMuZCUcAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQclVBABlZGl0
aW5nL3N0eWxlL1VUBQAD/gjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM2ZCUe6WIVHgD8A
ABoIAQBCABgAAAAAAAEAAACkgRFWBABlZGl0aW5nL3N0eWxlL21ha2UtdGV4dC13cml0aW5nLWRp
cmVjdGlvbi1pbmxpbmUtbWFjLWNyYXNoLWxvZy50eHRVVAUAAwIJyFV1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADLmQlHn81gJqoDAADBCAAAPwAYAAAAAAABAAAApIENlgQAZWRpdGluZy9zdHls
ZS9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5saW5lLW1hYy1zdGRlcnIudHh0VVQFAAP+
CMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAy5kJRwAAAAAAAAAAAAAAABYAGAAAAAAAAAAQ
AO1BMJoEAGVkaXRpbmcvdGV4dC1pdGVyYXRvci9VVAUAA/0IyFV1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADNmQlHntaU1lw7AABN4QAALgAYAAAAAAABAAAApIGAmgQAZWRpdGluZy90ZXh0LWl0
ZXJhdG9yL2ZpbmRTdHJpbmctY3Jhc2gtbG9nLnR4dFVUBQADAgnIVXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAMuZCUe1ec/RPgQAACcMAAArABgAAAAAAAEAAACkgUTWBABlZGl0aW5nL3RleHQt
aXRlcmF0b3IvZmluZFN0cmluZy1zdGRlcnIudHh0VVQFAAP9CMhVdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAzJkJR4UtAubIAAAALgEAAA0AGAAAAAAAAQAAAKSB59oEAGVycm9yX2xvZy50eHRV
VAUAA/8IyFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADOmQlHZCsWAoIDAACXDwAAEQAYAAAA
AAABAAAApIH22wQAZnVsbF9yZXN1bHRzLmpzb25VVAUAAwMJyFV1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABumQlH6op8QmEFAAAFDwAACgAYAAAAAAABAAAApIHD3wQAaHR0cGQuY29uZlVUBQAD
UAjIVXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAG+ZCUcAAAAAAAAAAAAAAAArABgAAAAAAAAA
AACkgWjlBABweXdlYnNvY2tldC53cy5sb2ctMDlBdWcyMDE1LTE5MTEyOS1lcnIudHh0VVQFAANR
CMhVdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAb5kJRwAAAAAAAAAAAAAAACsAGAAAAAAAAAAA
AKSBzeUEAHB5d2Vic29ja2V0LndzLmxvZy0wOUF1ZzIwMTUtMTkxMTI5LW91dC50eHRVVAUAA1EI
yFV1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADOmQlH5HxFo54mAADbpAAADAAYAAAAAAABAAAA
pIEy5gQAcmVzdWx0cy5odG1sVVQFAAMDCchVdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzpkJ
Rx+VrTH9RgEAtagHAAoAGAAAAAAAAQAAAKSBFg0FAHN0YXRzLmpzb25VVAUAAwMJyFV1eAsAAQT1
AQAABBQAAABQSwUGAAAAAGQAZAAoKwAAV1QGAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258621</attachid>
            <date>2015-08-10 10:47:28 -0700</date>
            <delta_ts>2015-08-10 13:19:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150810104715.patch</filename>
            <type>text/plain</type>
            <size>150455</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTM3YjJhMGE2ODkyNTNlZjIyY2U3NDU0MTk4ODQxNWUzOGI3MmU4Li4yOGUwOWRkODg0YjQzYzA3
NDU5Yjc5ZDJlMDY3NzdjMzRjMjZmYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjIgQEAKKzIwMTUtMDgtMTAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGdldF9ieV9pZCBsaWtlIElDIGludG8gZ2V0X2J5
X3ZhbCB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIFN0cmluZyBvciBTeW1ib2wKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBnZXRf
YnlfaWQgSUMgdG8gZ2V0X2J5X3ZhbCBvcGVyYXRpb24gYnkgY2FjaGluZyB0aGUgc3RyaW5nIC8g
c3ltYm9sIGlkLgorICAgICAgICBUaGUgSUMgc2l0ZSBvbmx5IGNhY2hlcyBvbmUgaWQuIEFmdGVy
IGNoZWNraW5nIHRoYXQgdGhlIGdpdmVuIGlkIGlzIHRoZSBzYW1lIHRvIHRoZQorICAgICAgICBj
YWNoZWQgb25lLCB3ZSBwZXJmb3JtIHRoZSBnZXRfYnlfaWQgSUMgb250byBpdC4KKyAgICAgICAg
QW5kIGJ5IGNvbGxlY3RpbmcgSUMgU3RydWN0dXJlU3R1YkluZm8gaW5mb3JtYXRpb24sIHdlIHBh
c3MgaXQgdG8gdGhlIERGRyBhbmQgREZHCisgICAgICAgIGNvbXBpbGVzIGdldF9ieV92YWwgb3Ag
Y29kZSBpbnRvIENoZWNrSWRlbnQgKHdpdGggZWRnZSB0eXBlIGNoZWNrKSBhbmQgR2V0QnlJZCBy
ZWxhdGVkCisgICAgICAgIG9wZXJhdGlvbnMgd2hlbiB0aGUgZ2l2ZW4gZ2V0X2J5X3ZhbCBsZXZl
cmFnZXMgdGhlIHByb3BlcnR5IGxvYWQgd2l0aCB0aGUgY2FjaGVkIGlkLgorCisgICAgICAgIFRv
IGVuc3VyZSB0aGUgaW5jb21pbmcgdmFsdWUgaXMgdGhlIGV4cGVjdGVkIGlkLCBpbiBERkcgbGF5
ZXIsIHdlIHVzZSBTeW1ib2xVc2UgYW5kCisgICAgICAgIFN0cmluZ0lkZW50VXNlIHRvIGVuZm9y
Y2UgdGhlIHR5cGUuIFRvIHVzZSBpdCwgdGhpcyBwYXRjaCBpbXBsZW1lbnRzIFN5bWJvbFVzZS4K
KyAgICAgICAgVGhpcyBjYW4gYmUgbGV2ZXJhZ2VkIHRvIG9wdGltaXplIHN5bWJvbCBvcGVyYXRp
b25zIGluIERGRy4KKworICAgICAgICBBbmQgc2luY2UgYnlWYWxJbmZvIGlzIGZyZXF1ZW50bHkg
dXNlZCwgd2UgYWxpZ24gdGhlIGJ5VmFsSW5mbyBkZXNpZ24gdG8gdGhlIHN0dWJJbmZvIGxpa2Ug
b25lLgorICAgICAgICBBbGxvY2F0ZWQgYnkgdGhlIEJhZyBhbmQgb3BlcmF0aW9ucyB0YWtlIHRo
ZSByYXcgYnlWYWxJbmZvIHBvaW50ZXIgZGlyZWN0bHkgaW5zdGVhZCBvZiBwZXJmb3JtaW5nCisg
ICAgICAgIGJpbmFyeSBzZWFyY2ggb250byBtX2J5VmFsSW5mb3MuIEFuZCBieSBzdG9yaW5nIEFy
cmF5UHJvZmlsZSogdW5kZXIgdGhlIEJ5VmFsSW5mbywgd2UgcmVwbGFjZWQgdGhlCisgICAgICAg
IGFyZ3VtZW50IEFycmF5UHJvZmlsZSogaW4gdGhlIG9wZXJhdGlvbnMgd2l0aCBCeVZhbEluZm8q
LgorCisgICAgICAgICogYnl0ZWNvZGUvQnlWYWxJbmZvLmg6CisgICAgICAgIChKU0M6OkJ5VmFs
SW5mbzo6QnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01hcCk6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6YWRkQnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm8pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OnNldE51bWJlck9mQnlWYWxJbmZvcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZCeVZhbEluZm9zKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpieVZhbEluZm8pOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVj
b2RlL0V4aXRLaW5kLmNwcDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAg
ICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAg
ICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgIChK
U0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRi
YWNrKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZH
RG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9E
RkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5v
ZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2Rl
KToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhh
c1VpZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAg
ICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAg
ICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrSWRlbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVT
eW1ib2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZH
VXNlS2luZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRm
Zy9ERkdVc2VLaW5kLmg6CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAg
ICAgIChKU0M6OkRGRzo6aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja0lk
ZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb3dTeW1ib2wp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RTeW1ib2wpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN5bWJvbCk6Cisg
ICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUp
OgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKEpTQzo6QnlWYWxDb21waWxhdGlvbklu
Zm86OkJ5VmFsQ29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0
QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAg
ICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9o
YXNfaW5kZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgor
ICAgICAgICAoSlNDOjpnZXRCeVZhbCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoK
KyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0
aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlW
YWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlf
dmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKToKKyAgICAg
ICAgKiBydW50aW1lL1N5bWJvbC5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKEhlbGxvKToKKyAg
ICAgICAgKGdldCBIZWxsby5wcm90b3R5cGUuZ2VuZXJhdGUpOgorICAgICAgICAob2spOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0
U3RyMSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3RyMSk6CisgICAgICAgIChnZXRT
dHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0
ZXIuanM6IEFkZGVkLgorICAgICAgICAob2JqZWN0LmdldCBoZWxsbyk6CisgICAgICAgIChvayk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0
U3RyMSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisgICAgICAgIChIZWxsbyk6
CisgICAgICAgIChnZXQgSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlKToKKyAgICAgICAgKG9rKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAg
KGdldFN5bTEpOgorICAgICAgICAoZ2V0U3ltMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKG9iamVjdC5n
ZXQgaGVsbG8pOgorICAgICAgICAoLmdldCBvayk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3ltMSk6CisgICAgICAgIChnZXRTeW0yKToK
KwogMjAxNS0wOC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlZ3Jlc3Npb24ocjE4ODEwNSk6IFNlZW1zIHRvIGhhdmUgY2F1c2VkIGNyYXNoZXMgZHVyaW5n
IFBMVCBvbiBzb21lIGlQYWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnlWYWxJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJ
bmZvLmgKaW5kZXggZDk4ODUxNjEzMjU4YTcxYjlmMDRiYTQ5MDczZjQ0MDMzZTU3MTA4My4uNjc1
NDFmZDkzNDZhZjIyZjcyMWIxOWI3NWZkZTk2ZmNmZjEwZmRmOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaApAQCAtMjYsMTYgKzI2LDE4IEBACiAjaWZuZGVm
IEJ5VmFsSW5mb19oCiAjZGVmaW5lIEJ5VmFsSW5mb19oCiAKLSNpZiBFTkFCTEUoSklUKQotCiAj
aW5jbHVkZSAiQ2xhc3NJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0aW9uLmgiCisjaW5jbHVk
ZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkluZGV4aW5nVHlwZS5oIgogI2luY2x1ZGUgIkpJ
VFN0dWJSb3V0aW5lLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCisjaW5jbHVkZSAiU3RydWN0
dXJlU3R1YkluZm8uaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBFTkFCTEUoSklUKQorCiBl
bnVtIEpJVEFycmF5TW9kZSB7CiAgICAgSklUSW50MzIsCiAgICAgSklURG91YmxlLApAQCAtMjAx
LDI0ICsyMDMsMzMgQEAgaW5saW5lIEpJVEFycmF5TW9kZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1
cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAKIHN0cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFs
SW5mbygpIHsgfQotICAgIAotICAgIEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBD
b2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQx
Nl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQor
CisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAg
bm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUg
YXJyYXlNb2RlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSwgaW50MTZfdCBiYWRUeXBlSnVt
cFRvRG9uZSwgaW50MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkKICAgICAgICAgOiBieXRl
Y29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4
SnVtcCkKICAgICAgICAgLCBiYWRUeXBlSnVtcChiYWRUeXBlSnVtcCkKICAgICAgICAgLCBhcnJh
eU1vZGUoYXJyYXlNb2RlKQorICAgICAgICAsIGFycmF5UHJvZmlsZShhcnJheVByb2ZpbGUpCiAg
ICAgICAgICwgYmFkVHlwZUp1bXBUb0RvbmUoYmFkVHlwZUp1bXBUb0RvbmUpCiAgICAgICAgICwg
cmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgocmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAg
ICwgc2xvd1BhdGhDb3VudCgwKQorICAgICAgICAsIHN0dWJJbmZvKG51bGxwdHIpCisgICAgICAg
ICwgdG9va1Nsb3dQYXRoKGZhbHNlKQogICAgIHsKICAgICB9Ci0gICAgCisKICAgICB1bnNpZ25l
ZCBieXRlY29kZUluZGV4OworICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wOwogICAg
IENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXA7CiAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9k
ZTsgLy8gVGhlIGFycmF5IG1vZGUgdGhhdCB3YXMgYmFrZWQgaW50byB0aGUgaW5saW5lIEpJVCBj
b2RlLgorICAgIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlOwogICAgIGludDE2X3QgYmFkVHlw
ZUp1bXBUb0RvbmU7CiAgICAgaW50MTZfdCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aDsKICAgICB1
bnNpZ25lZCBzbG93UGF0aENvdW50OwogICAgIFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJv
dXRpbmU7CisgICAgSWRlbnRpZmllciBjYWNoZWRJZDsKKyAgICBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm87CisgICAgYm9vbCB0b29rU2xvd1BhdGg7CiB9OwogCiBpbmxpbmUgdW5zaWduZWQg
Z2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZhbEluZm8qIGluZm8pCkBAIC0yMjYsOSArMjM3
LDE1IEBAIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbEluZm9CeXRlY29kZUluZGV4KEJ5VmFsSW5m
byogaW5mbykKICAgICByZXR1cm4gaW5mby0+Ynl0ZWNvZGVJbmRleDsKIH0KIAotfSAvLyBuYW1l
c3BhY2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQnlWYWxJbmZvKiwgQ29kZU9y
aWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFwOworCisjZWxzZSAvLyBFTkFCTEUoSklU
KQorCit0eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4gQnlWYWxJbmZvTWFwOwogCiAjZW5kaWYg
Ly8gRU5BQkxFKEpJVCkKIAorfSAvLyBuYW1lc3BhY2UgSlNDCisKICNlbmRpZiAvLyBCeVZhbElu
Zm9faAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmlu
ZGV4IGEzNjFkNmRiZjI2NzJjYjAwNGY4ODNjN2U3MDAwMDhhNGM4Nzg5ZTIuLmM5MzMxZjczN2Fi
NzMwMzE5OWU3ZTRhOWEyNGNjYTBkMWRiYzE5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0yNjcyLDYgKzI2NzIsMjIgQEAgdm9pZCBDb2Rl
QmxvY2s6OmdldENhbGxMaW5rSW5mb01hcChDYWxsTGlua0luZm9NYXAmIHJlc3VsdCkKICAgICBn
ZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCByZXN1bHQpOwogfQogCit2b2lkIENvZGVCbG9jazo6
Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAm
IHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSklUKQorICAgIGZvciAoYXV0byogYnlWYWxJbmZvIDog
bV9ieVZhbEluZm9zKQorICAgICAgICByZXN1bHQuYWRkKENvZGVPcmlnaW4oYnlWYWxJbmZvLT5i
eXRlY29kZUluZGV4KSwgYnlWYWxJbmZvKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc3Vs
dCk7CisjZW5kaWYKK30KKwordm9pZCBDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01hcChCeVZhbElu
Zm9NYXAmIHJlc3VsdCkKK3sKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2sp
OworICAgIGdldEJ5VmFsSW5mb01hcChsb2NrZXIsIHJlc3VsdCk7Cit9CisKICNpZiBFTkFCTEUo
SklUKQogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZm8oKQogewpAQCAt
MjY4OCw2ICsyNzA0LDEyIEBAIFN0cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmZpbmRTdHVi
SW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0J5
VmFsSW5mbyogQ29kZUJsb2NrOjphZGRCeVZhbEluZm8oKQoreworICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgcmV0dXJuIG1fYnlWYWxJbmZvcy5hZGQoKTsKK30K
KwogQ2FsbExpbmtJbmZvKiBDb2RlQmxvY2s6OmFkZENhbGxMaW5rSW5mbygpCiB7CiAgICAgQ29u
Y3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA2YzNhMTE1Zjc3NWVlYzNhYmQyMjAyZmVmYTUyNmRm
ODBhM2ZjOTM4Li45NjA3OTFkNzBmYjVhMTdkMmEwMDI0Yjk2ZjRhNTdjNDA4MTNmNWI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0yMDAsNiArMjAw
LDkgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvZGVC
bG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFsRmkKICAgICAKICAgICB2b2lkIGdldENhbGxMaW5r
SW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ2FsbExpbmtJbmZvTWFwJiByZXN1
bHQpOwogICAgIHZvaWQgZ2V0Q2FsbExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01hcCYgcmVzdWx0
KTsKKworICAgIHZvaWQgZ2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
LCBCeVZhbEluZm9NYXAmIHJlc3VsdCk7CisgICAgdm9pZCBnZXRCeVZhbEluZm9NYXAoQnlWYWxJ
bmZvTWFwJiByZXN1bHQpOwogICAgIAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1
YkluZm8qIGFkZFN0dWJJbmZvKCk7CkBAIC0yMTEsMTEgKzIxNCw4IEBAIGNsYXNzIENvZGVCbG9j
ayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25k
aXRpb25hbEZpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGZpbmRTdHViSW5mbyhDb2RlT3JpZ2lu
KTsKIAogICAgIHZvaWQgcmVzZXRTdHViKFN0cnVjdHVyZVN0dWJJbmZvJik7Ci0gICAgCi0gICAg
QnlWYWxJbmZvJiBnZXRCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiAqKGJpbmFyeVNlYXJjaDxCeVZhbEluZm8sIHVuc2lnbmVkPihtX2J5VmFs
SW5mb3MsIG1fYnlWYWxJbmZvcy5zaXplKCksIGJ5dGVjb2RlSW5kZXgsIGdldEJ5VmFsSW5mb0J5
dGVjb2RlSW5kZXgpKTsKLSAgICB9CisKKyAgICBCeVZhbEluZm8qIGFkZEJ5VmFsSW5mbygpOwog
CiAgICAgQ2FsbExpbmtJbmZvKiBhZGRDYWxsTGlua0luZm8oKTsKICAgICBCYWc8Q2FsbExpbmtJ
bmZvPjo6aXRlcmF0b3IgY2FsbExpbmtJbmZvc0JlZ2luKCkgeyByZXR1cm4gbV9jYWxsTGlua0lu
Zm9zLmJlZ2luKCk7IH0KQEAgLTM2NywxMiArMzY3LDYgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFs
RmkKIAogICAgIFN0cmluZyBuYW1lRm9yUmVnaXN0ZXIoVmlydHVhbFJlZ2lzdGVyKTsKIAotI2lm
IEVOQUJMRShKSVQpCi0gICAgdm9pZCBzZXROdW1iZXJPZkJ5VmFsSW5mb3Moc2l6ZV90IHNpemUp
IHsgbV9ieVZhbEluZm9zLnJlc2l6ZVRvRml0KHNpemUpOyB9Ci0gICAgc2l6ZV90IG51bWJlck9m
QnlWYWxJbmZvcygpIGNvbnN0IHsgcmV0dXJuIG1fYnlWYWxJbmZvcy5zaXplKCk7IH0KLSAgICBC
eVZhbEluZm8mIGJ5VmFsSW5mbyhzaXplX3QgaW5kZXgpIHsgcmV0dXJuIG1fYnlWYWxJbmZvc1tp
bmRleF07IH0KLSNlbmRpZgotCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFZhbHVlUHJv
ZmlsZXMoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fbnVtUGFyYW1ldGVycyA+PSAwKTsKQEAg
LTEwMTYsNyArMTAxMCw3IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25kaXRpb25hbEZpCiAgICAgUmVmUHRyPEpJ
VENvZGU+IG1faml0Q29kZTsKICNpZiBFTkFCTEUoSklUKQogICAgIEJhZzxTdHJ1Y3R1cmVTdHVi
SW5mbz4gbV9zdHViSW5mb3M7Ci0gICAgVmVjdG9yPEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOwor
ICAgIEJhZzxCeVZhbEluZm8+IG1fYnlWYWxJbmZvczsKICAgICBCYWc8Q2FsbExpbmtJbmZvPiBt
X2NhbGxMaW5rSW5mb3M7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PENhbGxMaW5rSW5mbywgQmFz
aWNSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0NhbGxzOwogICAgIFNl
bnRpbmVsTGlua2VkTGlzdDxQb2x5bW9ycGhpY0NhbGxOb2RlLCBCYXNpY1Jhd1NlbnRpbmVsTm9k
ZTxQb2x5bW9ycGhpY0NhbGxOb2RlPj4gbV9pbmNvbWluZ1BvbHltb3JwaGljQ2FsbHM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAppbmRleCA0Zjc5ZjJjMWM1
ZTRlN2ZkYmUwNDNhMDQ5NTI1MTAwYWQ1MGZmNDdiLi4yNTI0MzAwZjczMzc2OWVkOWJlMDAxZDc2
NjBmMzY4NTliNmQ4OTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvRXhpdEtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0
S2luZC5jcHAKQEAgLTQwLDYgKzQwLDggQEAgY29uc3QgY2hhciogZXhpdEtpbmRUb1N0cmluZyhF
eGl0S2luZCBraW5kKQogICAgICAgICByZXR1cm4gIkJhZFR5cGUiOwogICAgIGNhc2UgQmFkQ2Vs
bDoKICAgICAgICAgcmV0dXJuICJCYWRDZWxsIjsKKyAgICBjYXNlIEJhZElkZW50OgorICAgICAg
ICByZXR1cm4gIkJhZElkZW50IjsKICAgICBjYXNlIEJhZEV4ZWN1dGFibGU6CiAgICAgICAgIHJl
dHVybiAiQmFkRXhlY3V0YWJsZSI7CiAgICAgY2FzZSBCYWRDYWNoZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKaW5kZXggNTljYmJmNWEyYjM4Nzc5N2UzZWUyYmE4
MWYzNmUxYzYxYzAzYjkyMy4uNmY4YzUxMjAwNzAwNTA1YmY5MWRlZjc0OTAwM2UzMDA1ZTNmNzE4
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKQEAgLTMyLDYg
KzMyLDcgQEAgZW51bSBFeGl0S2luZCA6IHVpbnQ4X3QgewogICAgIEV4aXRLaW5kVW5zZXQsCiAg
ICAgQmFkVHlwZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYSB0eXBlIHByZWRpY3Rpb24gd2FzIHdy
b25nLgogICAgIEJhZENlbGwsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3Jy
ZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBjZWxsIHdlIHdvdWxkIHNlZS4gVXN1YWxseSB1c2Vk
IGZvciBmdW5jdGlvbiBjaGVja3MuCisgICAgQmFkSWRlbnQsIC8vIFdlIGV4aXRlZCBiZWNhdXNl
IHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBpZGVudGlmaWVyIHdl
IHdvdWxkIHNlZS4gVXN1YWxseSB1c2VkIGZvciBjYWNoZWQgSWQgY2hlY2sgaW4gZ2V0X2J5X3Zh
bC4KICAgICBCYWRFeGVjdXRhYmxlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGlu
Y29ycmVjdCBhc3N1bXB0aW9uIGFib3V0IHdoYXQgZXhlY3V0YWJsZSB3ZSB3b3VsZCBzZWUuCiAg
ICAgQmFkQ2FjaGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGFuIGlubGluZSBjYWNoZSB3YXMgd3Jv
bmcuCiAgICAgQmFkQ29uc3RhbnRDYWNoZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYSBjYWNoZSBv
biBhIHdlYWsgY29uc3RhbnQgKHVzdWFsbHkgYSBwcm90b3R5cGUpIHdhcyB3cm9uZy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCAx
ZDk3YzlmZmRiYTZkOTRlMzVjYjY3Y2VkM2RiZWVhNTBiYzcxOWVlLi44OWU1MDM1ZjMwYTNmMGI3
OWJiMjA4MzJhMTJkOWQ2ODQ4ODhjZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC05OCw3ICs5OCw3IEBAIEdldEJ5SWRTdGF0
dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0
dWJJbmZvTWFwJiBtCiAgICAgR2V0QnlJZFN0YXR1cyByZXN1bHQ7CiAKICNpZiBFTkFCTEUoREZH
X0pJVCkKLSAgICByZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm8oCisgICAgcmVzdWx0ID0gY29t
cHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgIGxvY2tlciwg
cHJvZmlsZWRCbG9jaywgbWFwLmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgpKSwgdWlkLAog
ICAgICAgICBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUV4aXRTaXRlRGF0YShsb2NrZXIsIHByb2Zp
bGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpKTsKICAgICAKQEAgLTExNiw3ICsxMTYsMjAgQEAgR2V0
QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVCbG9jayogcHJvZmlsZWRC
bG9jaywgU3R1YkluZm9NYXAmIG0KIH0KIAogI2lmIEVOQUJMRShKSVQpCi1HZXRCeUlkU3RhdHVz
IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbygKK0dldEJ5SWRTdGF0dXMgR2V0QnlJ
ZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxv
Y2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1Yklu
Zm8sIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAg
ICBHZXRCeUlkU3RhdHVzIHJlc3VsdCA9IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5m
b1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAorICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ss
IHN0dWJJbmZvLCB1aWQsCisgICAgICAgIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRXhpdFNpdGVE
YXRhKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KSk7CisK
KyAgICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQYXRoKCkgJiYgR2V0QnlJZFN0YXR1czo6aGFzRXhp
dFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpKQor
ICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhyZXN1bHQubWFrZXNDYWxscygpID8gR2V0QnlJ
ZFN0YXR1czo6TWFrZXNDYWxscyA6IEdldEJ5SWRTdGF0dXM6OlRha2VzU2xvd1BhdGgsIHRydWUp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKworI2lmIEVO
QUJMRShKSVQpCitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5m
b1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
IGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsCiAgICAgQ2FsbExpbmtTdGF0dXM6OkV4aXRT
aXRlRGF0YSBjYWxsRXhpdFNpdGVEYXRhKQogewpAQCAtMjQyLDcgKzI1NSw3IEBAIEdldEJ5SWRT
dGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICAgICAgR2V0QnlJZFN0YXR1cyBy
ZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2Vy
KGRmZ0Jsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJ
bmZvKAorICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRT
aXRlRmVlZGJhY2soCiAgICAgICAgICAgICAgICAgbG9ja2VyLCBkZmdCbG9jaywgZGZnTWFwLmdl
dChjb2RlT3JpZ2luKSwgdWlkLCBleGl0U2l0ZURhdGEpOwogICAgICAgICB9CiAgICAgICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKaW5kZXgg
MzIzNzJjZGRmNWUyNWIwZjM4OGU2Y2ZlZGM0NjYyMGIyZDM4ZDJkMC4uZDdmMGFlNDk2Y2JhMmYz
MGZkY2QxMjg4NmIxNWZiM2I0ODI4Zjk1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCkBAIC03MSw3ICs3MSwxMSBAQCBjbGFzcyBHZXRCeUlk
U3RhdHVzIHsKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKGNvbnN0IFN0cnVj
dHVyZVNldCYsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwogICAgIAogICAgIHN0YXRpYyBHZXRC
eUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiBiYXNlbGluZUJsb2NrLCBDb2RlQmxvY2sq
IGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVNYXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAs
IENvZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwotICAgIAorCisjaWYgRU5BQkxF
KEpJVCkKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3Qg
Q29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgU3RydWN0dXJl
U3R1YkluZm8qLCBDb2RlT3JpZ2luLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKTsKKyNlbmRpZgor
CiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAgCiAgICAg
Ym9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgIT0gTm9JbmZvcm1hdGlvbjsgfQpA
QCAtOTUsNyArOTksNyBAQCBjbGFzcyBHZXRCeUlkU3RhdHVzIHsKICAgICBzdGF0aWMgYm9vbCBo
YXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWdu
ZWQgYnl0ZWNvZGVJbmRleCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSklUKQotICAgIHN0YXRpYyBH
ZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbygKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1
cyBjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjaygKICAgICAgICAgY29u
c3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0
dXJlU3R1YkluZm8qLAogICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLCBDYWxsTGlua1N0
YXR1czo6RXhpdFNpdGVEYXRhKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDM3MzRj
NzZkMWVlODdhODRhMGU2NmQ1NTY3NGQxMGIyYWQyYWEwNTQuLjIyOTA4N2RjYzQzNjQzOTc5NTQ4
MGUzZDVjMTI5NjAzYTE2YzFiNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTIxNjMsNiArMjE2
MywzMiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVj
dXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICBicmVhazsKICAgICB9CiAK
KyAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9
IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAgQVNTRVJUKHVpZC0+aXNTeW1ib2woKSA/ICEo
dmFsdWUubV90eXBlICYgflNwZWNTeW1ib2wpIDogISh2YWx1ZS5tX3R5cGUgJiB+U3BlY1N0cmlu
Z0lkZW50KSk7IC8vIEVkZ2UgZmlsdGVyaW5nIHNob3VsZCBoYXZlIGFscmVhZHkgZW5zdXJlZCB0
aGlzLgorCisgICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdGFudCA9IHZhbHVlLnZhbHVlKCk7Cisg
ICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7CisgICAgICAgICAgICBpZiAodWlkLT5pc1N5bWJv
bCgpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGNoaWxkQ29uc3RhbnQuaXNTeW1ib2woKSk7
CisgICAgICAgICAgICAgICAgaWYgKGFzU3ltYm9sKGNoaWxkQ29uc3RhbnQpLT5wcml2YXRlTmFt
ZSgpLnVpZCgpID09IHVpZCkgeworICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5k
Q29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVChjaGls
ZENvbnN0YW50LmlzU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGlmIChhc1N0cmluZyhjaGls
ZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBsKCkgPT0gdWlkKSB7CisgICAgICAgICAgICAgICAg
ICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIGZpbHRlcih2YWx1ZSwgdWlkLT5pc1N5bWJvbCgpID8gU3BlY1N5bWJvbCA6IFNwZWNT
dHJpbmdJZGVudCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgQ2hlY2tJbkJv
dW5kczogewogICAgICAgICBKU1ZhbHVlIGxlZnQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52
YWx1ZSgpOwogICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0gZm9yTm9kZShub2RlLT5jaGlsZDIoKSku
dmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKaW5kZXggNTY0MjJiMThhMjQ2NTA4NmY4MDY5NDI4MGRhMzY3NjAwMmU2YzVlNC4uMjY4
YTc1NzZiYzM2NjcyNmEwNmM4OGIxZmMwYmUzNDNlZmMwZTdjMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTk2OSw2ICs5NjksNyBA
QCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgICAgIAogICAgICAgICBDYWxsTGlua0luZm9N
YXAgbV9jYWxsTGlua0luZm9zOwogICAgICAgICBTdHViSW5mb01hcCBtX3N0dWJJbmZvczsKKyAg
ICAgICAgQnlWYWxJbmZvTWFwIG1fYnlWYWxJbmZvczsKICAgICAgICAgCiAgICAgICAgIC8vIERp
ZCB3ZSBzZWUgYW55IHJldHVybnM/IFdlIG5lZWQgdG8gaGFuZGxlIHRoZSAodW5jb21tb24gYnV0
IG5lY2Vzc2FyeSkKICAgICAgICAgLy8gY2FzZSB3aGVyZSBhIHByb2NlZHVyZSB0aGF0IGRvZXMg
bm90IHJldHVybiB3YXMgaW5saW5lZC4KQEAgLTMzOTcsMTIgKzMzOTgsMzUgQEAgYm9vbCBCeXRl
Q29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKIAogICAgICAgICBjYXNlIG9w
X2dldF9ieV92YWw6IHsKICAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBn
ZXRQcmVkaWN0aW9uV2l0aG91dE9TUkV4aXQoKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAg
ICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlN
b2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOwog
ICAgICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKLSAgICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0g
YWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhw
cmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOwotICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgZ2V0QnlWYWwpOworICAgICAg
ICAgICAgYm9vbCBjb21waWxlZEFzR2V0QnlJZCA9IGZhbHNlOworICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1faW5saW5lU3RhY2tUb3At
Pm1fcHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgICAgICBCeVZhbEluZm8qIGJ5
VmFsSW5mbyA9IG1faW5saW5lU3RhY2tUb3AtPm1fYnlWYWxJbmZvcy5nZXQoQ29kZU9yaWdpbihj
dXJyZW50Q29kZU9yaWdpbigpLmJ5dGVjb2RlSW5kZXgpKTsKKyAgICAgICAgICAgICAgICAvLyBG
SVhNRTogV2hlbiB0aGUgYnl0ZWNvZGUgaXMgbm90IGNvbXBpbGVkIGluIHRoZSBiYXNlbGluZSBK
SVQsIGJ5VmFsSW5mbyBiZWNvbWVzIG51bGwuCisgICAgICAgICAgICAgICAgLy8gQXQgdGhhdCB0
aW1lLCB0aGVyZSBpcyBubyBpbmZvcm1hdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAoYnlWYWxJ
bmZvICYmIGJ5VmFsSW5mby0+c3R1YkluZm8gJiYgIWJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoICYm
ICFtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudElu
ZGV4LCBCYWRJZGVudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZWRBc0dldEJ5SWQg
PSB0cnVlOworICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0g
bV9ncmFwaC5pZGVudGlmaWVycygpLmVuc3VyZShieVZhbEluZm8tPmNhY2hlZElkLmltcGwoKSk7
CisgICAgICAgICAgICAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBtX2dyYXBoLmlk
ZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl07CisKKyAgICAgICAgICAgICAgICAgICAgYWRk
VG9HcmFwaChDaGVja0lkZW50LCBPcEluZm8odWlkKSwgcHJvcGVydHkpOworCisgICAgICAgICAg
ICAgICAgICAgIEdldEJ5SWRTdGF0dXMgZ2V0QnlJZFN0YXR1cyA9IEdldEJ5SWRTdGF0dXM6OmNv
bXB1dGVGb3JTdHViSW5mbygKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tlciwgbV9pbmxp
bmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgYnlW
YWxJbmZvLT5zdHViSW5mbywgY3VycmVudENvZGVPcmlnaW4oKSwgdWlkKTsKKworICAgICAgICAg
ICAgICAgICAgICBoYW5kbGVHZXRCeUlkKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQs
IHByZWRpY3Rpb24sIGJhc2UsIGlkZW50aWZpZXJOdW1iZXIsIGdldEJ5SWRTdGF0dXMpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFjb21waWxl
ZEFzR2V0QnlJZCkgeworICAgICAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBnZXRB
cnJheU1vZGUoY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlLCBBcnJheTo6UmVh
ZCk7CisgICAgICAgICAgICAgICAgTm9kZSogZ2V0QnlWYWwgPSBhZGRUb0dyYXBoKEdldEJ5VmFs
LCBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlLCBw
cm9wZXJ0eSk7CisgICAgICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgZ2V0QnlWYWwpOworICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfYnlfdmFsKTsKICAgICAgICAgfQpAQCAtNDMwNSw2
ICs0MzI5LDcgQEAgQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZVN0YWNr
RW50cnkoCiAgICAgICAgIGlmIChtX3Byb2ZpbGVkQmxvY2stPmhhc0Jhc2VsaW5lSklUUHJvZmls
aW5nKCkpIHsKICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0U3R1YkluZm9NYXAobG9j
a2VyLCBtX3N0dWJJbmZvcyk7CiAgICAgICAgICAgICBtX3Byb2ZpbGVkQmxvY2stPmdldENhbGxM
aW5rSW5mb01hcChsb2NrZXIsIG1fY2FsbExpbmtJbmZvcyk7CisgICAgICAgICAgICBtX3Byb2Zp
bGVkQmxvY2stPmdldEJ5VmFsSW5mb01hcChsb2NrZXIsIG1fYnlWYWxJbmZvcyk7CiAgICAgICAg
IH0KICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
CmluZGV4IDI5Njc0OWRjMzFiMjNjODk5ODQ5NGI1NmVmMTQzMDg2NGIxMjdlYzYuLjQ2ZjVmZTQ4
ZDI1YzI3ZGQzMTk2YzU4MTI5ZGJlNTg1N2ZiZDdlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0yNjgsNiArMjY4LDEwIEBAIHZvaWQgY2xvYmJlcml6
ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25z
dCBXcml0ZUZ1CiAgICAgICAgIGRlZihQdXJlVmFsdWUoQ2hlY2tOb3RFbXB0eSwgQWRqYWNlbmN5
TGlzdChBZGphY2VuY3lMaXN0OjpGaXhlZCwgbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgIHJl
dHVybjsKIAorICAgIGNhc2UgQ2hlY2tJZGVudDoKKyAgICAgICAgZGVmKFB1cmVWYWx1ZShDaGVj
a0lkZW50LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEo
KSksIG5vZGUtPnVpZE9wZXJhbmQoKSkpOworICAgICAgICByZXR1cm47CisKICAgICBjYXNlIENv
bnN0YW50U3RvcmFnZVBvaW50ZXI6CiAgICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSwgbm9kZS0+
c3RvcmFnZVBvaW50ZXIoKSkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IGJhNGMw
MzU0OTQ2NDkyZjU5ZmRmYmQ1YTZmNjFhNWE2N2QyNTAzMjAuLjNkODVjYWFiZDYxNTczZmRkNTQ5
ZDVmZTc1YmM2NGYzZTU2NGYxZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC0yMDgsNiArMjA4LDMzIEBAIGNs
YXNzIENvbnN0YW50Rm9sZGluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgY2FzZSBDaGVja0lkZW50OiB7
CisgICAgICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJh
bmQoKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlIGNoaWxkQ29uc3RhbnQgPSBtX3N0YXRlLmZv
ck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgY29uc3QgVW5p
cXVlZFN0cmluZ0ltcGwqIGNvbnN0YW50VWlkID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBp
ZiAoY2hpbGRDb25zdGFudCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodWlkLT5pc1N5bWJv
bCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRDb25zdGFudC5pc1N5bWJv
bCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50VWlkID0gYXNTeW1ib2wo
Y2hpbGRDb25zdGFudCktPnByaXZhdGVOYW1lKCkudWlkKCk7CisgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRDb25zdGFudC5pc1N0
cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2luY2Ugd2UgYWxyZWFk
eSBmaWx0ZXJlZCB0aGUgdmFsdWUgd2l0aCBTdHJpbmdJZGVudFVzZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyB0aGUgaGVsZCBpbXBsIGlzIGFsd2F5cyBhdG9taWMuCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnN0IGF1dG8qIGltcGwgPSBhc1N0cmluZyhjaGls
ZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBsKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKGltcGwtPmlzQXRvbWljKCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdGFudFVpZCA9IHN0YXRpY19jYXN0PGNvbnN0IFVuaXF1ZWRTdHJpbmdJ
bXBsKj4oaW1wbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgaWYgKGNvbnN0YW50VWlkID09IHVpZCkgeworICAgICAgICAgICAg
ICAgICAgICBub2RlLT5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9
IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorCiAgICAgICAgICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6IHsKICAgICAgICAgICAg
ICAgICBKU1ZhbHVlIGxlZnQgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVl
KCk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSByaWdodCA9IG1fc3RhdGUuZm9yTm9kZShub2Rl
LT5jaGlsZDIoKSkudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNw
cAppbmRleCAwOGZmYjJhOTEyOTM4NzIxMzExY2FkMjc3NDY3NjFhMjA2NTNhYTVmLi5lNDcwYjhk
ZGFiOTk0MzhmZDg5MDM1MmU0NWUwOTEwMjlmMWE2MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdEb2VzR0MuY3BwCkBAIC0xMDcsNiArMTA3LDcgQEAgYm9vbCBkb2VzR0MoR3JhcGgm
IGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgVmFySW5qZWN0aW9uV2F0Y2hwb2ludDoKICAg
ICBjYXNlIENoZWNrQ2VsbDoKICAgICBjYXNlIENoZWNrTm90RW1wdHk6CisgICAgY2FzZSBDaGVj
a0lkZW50OgogICAgIGNhc2UgUmVnRXhwRXhlYzoKICAgICBjYXNlIFJlZ0V4cFRlc3Q6CiAgICAg
Y2FzZSBDb21wYXJlTGVzczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCmluZGV4IGM0NDIzMTAxNjMyNjU3ZDNlODNmOTcxZTY2YTgzZjYyNTA1NzE1MjQuLmQ2
YTk3OTBiMTNjZTAwNjJkOTc4MTE0MGVkY2UyMjE1MmU0MDBiODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTAxMiw2ICsxMDEyLDE1IEBAIGNs
YXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgZml4RWRnZTxDZWxs
VXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorCisg
ICAgICAgIGNhc2UgQ2hlY2tJZGVudDogeworICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwq
IHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9s
KCkpCisgICAgICAgICAgICAgICAgZml4RWRnZTxTeW1ib2xVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ0lkZW50VXNl
Pihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAg
ICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXlpZnk6CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0
cnVjdHVyZTogewpAQCAtMTc2MCw2ICsxNzY5LDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1Ymxp
YyBQaGFzZSB7CiAgICAgICAgIGNhc2UgRnVuY3Rpb25Vc2U6CiAgICAgICAgIGNhc2UgU3RyaW5n
VXNlOgogICAgICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgorICAgICAgICBjYXNlIFN5bWJvbFVz
ZToKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT3JT
dHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICBpZiAoYWx3YXlzVW5ib3hTaW1wbGVQcmltaXRp
dmVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggMjhjYWIwNTFlNTMwOWUz
Njg4Njk0Y2JiYzQ2NTM5NjY5MmRlODA5YS4uODNmY2Y1YzEwMWUwYzdjNzdhOWVkMjA5NWQ0NTVk
YTY5YzRlNmFmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTEzMjgsNiAr
MTMyOCwxNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PHZvaWQqPihtX29wSW5mbyk7CiAgICAgfQogCisgICAgYm9vbCBoYXNVaWRPcGVyYW5kKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBvcCgpID09IENoZWNrSWRlbnQ7CisgICAgfQorCisgICAgVW5p
cXVlZFN0cmluZ0ltcGwqIHVpZE9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1Vp
ZE9wZXJhbmQoKSk7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFVuaXF1ZWRTdHJp
bmdJbXBsKj4obV9vcEluZm8pOworICAgIH0KKwogICAgIGJvb2wgaGFzVHJhbnNpdGlvbigpCiAg
ICAgewogICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaAppbmRleCA2MmU3Y2E5OGE1MjExMmQ4MmQwZWI2ZjBkMTcyOGJlYWY0YjllMTMx
Li5lOWJmNzI3MDRiMTdhYTY4Njc5ZTliYmVhMGY0ZjJhZGNlZjk2M2EyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yMDksNiArMjA5LDcgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKENoZWNrTm90RW1wdHksIE5vZGVNdXN0
R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja0JhZENlbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwK
ICAgICBtYWNybyhDaGVja0luQm91bmRzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8o
Q2hlY2tJZGVudCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIFwKICAgICAvKiBPcHRpbWl6YXRp
b25zIGZvciBhcnJheSBtdXRhdGlvbi4gKi9cCiAgICAgbWFjcm8oQXJyYXlQdXNoLCBOb2RlUmVz
dWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDc2
YWY2YTJmM2U0NTJiMGYxMTdhYmMzYTZiYjVkZGQyZmFhYjE5OGEuLjM2ZjJkZjdjNzVjNTBjYWZk
MDZlYzljMjc4NTFlZWE5ZjEwZmZhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC02NDks
NiArNjQ5LDcgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2Vs
bDoKICAgICAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAgICAgICBjYXNlIENoZWNrSWRlbnQ6
CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgICAgICBjYXNlIFB1dFN0cnVjdHVyZToK
ICAgICAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50OgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCAwYzBhMjc3NjA1MGVmMWM2MzhjMjBk
ODhjZmVmZTMyM2M3M2E1OTE0Li5iMmQwN2Q1NWU1MzYyNjg0NWI1ZDNmNWM5ZmVlYTRlN2JkODRk
ZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApA
QCAtNTksNiArNTksNyBAQCBjbGFzcyBTYWZlVG9FeGVjdXRlRWRnZSB7CiAgICAgICAgIGNhc2Ug
T2JqZWN0T3JPdGhlclVzZToKICAgICAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAg
Y2FzZSBTdHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0
cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAg
ICAgICAgY2FzZSBOb3RTdHJpbmdWYXJVc2U6CkBAIC0xODgsNiArMTg5LDcgQEAgYm9vbCBzYWZl
VG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlKQogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgIGNh
c2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBF
eGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBmM2Y4
YWY3YTUyZDUwZjlhMmU3MWM0ZjkwMTk5ODQ3YmYwNTAwZDVlLi4wNTM3MzYzNGJkZTExZDY2NDYx
OTEzYTIwYzVhNWJlYTk2OGZhNGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDU3Niw2ICs0NTc2LDMxIEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aChOb2RlKiBub2RlKQogICAgIH0gfQogfQog
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tJZGVudChOb2RlKiBub2RlKQorewor
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwor
ICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7CisgICAgaWYg
KHVpZC0+aXNTeW1ib2woKSkgeworICAgICAgICBzcGVjdWxhdGVTeW1ib2wobm9kZS0+Y2hpbGQx
KCksIG9wZXJhbmQuZ3ByKCkpOworICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAorICAgICAgICAg
ICAgQmFkSWRlbnQsIEpTVmFsdWVTb3VyY2UoKSwgbnVsbHB0ciwKKyAgICAgICAgICAgIG1faml0
LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWwsCisgICAg
ICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3BlcmFuZC5ncHIoKSwgU3ltYm9sOjpv
ZmZzZXRPZlByaXZhdGVOYW1lKCkpLAorICAgICAgICAgICAgICAgIFRydXN0ZWRJbW1QdHIodWlk
KSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEo
KSwgb3BlcmFuZC5ncHIoKSk7CisgICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50KG5vZGUtPmNo
aWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKKyAgICAg
ICAgICAgIEJhZElkZW50LCBKU1ZhbHVlU291cmNlKCksIG51bGxwdHIsCisgICAgICAgICAgICBt
X2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Ok5vdEVxdWFsLAor
ICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKG9wZXJhbmQuZ3ByKCksIEpTU3Ry
aW5nOjpvZmZzZXRPZlZhbHVlKCkpLAorICAgICAgICAgICAgICAgIFRydXN0ZWRJbW1QdHIodWlk
KSkpOworICAgIH0KKyAgICBub1Jlc3VsdChub2RlKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZU5ld0Z1bmN0aW9uKE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgc2NvcGUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwpAQCAtNTczMSw2ICs1NzU2LDIwIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN0cmluZ1ZhcihFZGdlIGVkZ2UpCiAg
ICAgbm90Q2VsbC5saW5rKCZtX2ppdCk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQoreworICAgIERGR19UWVBFX0NIRUNL
KEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGNlbGwpLCBlZGdlLCBTcGVjU3ltYm9sLCBtX2pp
dC5icmFuY2hJZk5vdFN5bWJvbChjZWxsKSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UpCit7CisgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdl
LCBTcGVjU3ltYm9sKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSwgb3BlcmFu
ZC5ncHIoKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdENlbGwoRWRn
ZSBlZGdlKQogewogICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgflNwZWNDZWxsKSkKQEAg
LTU4NDIsNiArNTg4MSw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwg
RWRnZSBlZGdlKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmco
ZWRnZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3ltYm9sVXNlOgorICAgICAgICBzcGVj
dWxhdGVTeW1ib2woZWRnZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3RyaW5nT2JqZWN0
VXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3QoZWRnZSk7CiAgICAgICAgIGJyZWFr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4
IGE1YzQ0NTQ3ZGE2NGJjMmI2M2YwNzNhMTcxMWU2YTExODA2ZjU5NWIuLjU0NWZmMmE2ZWJkMTBl
ZWY4MmIxZmU3YzIyY2NlOWY3MTdlZGQxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTIxOTEsNiArMjE5MSw4IEBAIGNsYXNzIFNwZWN1
bGF0aXZlSklUIHsKICAgICB2b2lkIGNvbXBpbGVTa2lwU2NvcGUoTm9kZSopOwogCiAgICAgdm9p
ZCBjb21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSopOworCisgICAgdm9pZCBjb21waWxlQ2hlY2tJ
ZGVudChOb2RlKik7CiAgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVSZXAoTm9kZSopOwogICAg
IHZvaWQgY29tcGlsZURvdWJsZVJlcChOb2RlKik7CkBAIC0yNDA2LDYgKzI0MDgsOCBAQCBjbGFz
cyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3QoRWRnZSwg
R1BSUmVnKTsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlKTsKICAgICB2b2lk
IHNwZWN1bGF0ZVN0cmluZ09yU3RyaW5nT2JqZWN0KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRl
U3ltYm9sKEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdl
KTsKICAgICB2b2lkIHNwZWN1bGF0ZU5vdENlbGwoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVP
dGhlcihFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU1pc2MoRWRnZSwgSlNWYWx1ZVJlZ3MpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHAKaW5kZXggNTA0MjkwNWI2MmI1MjZjOWVkYWQzZmZiYjU2N2M0NmY2N2Y4MGVhZS4uMTJh
YjhkMDg1ZDA3MDUxMGY3NmZkNGVlNzI1NGY4OGUzMzIyYjdjOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zODIw
LDYgKzM4MjAsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQog
ICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6CisgICAgICAgIGNv
bXBpbGVDaGVja0lkZW50KG5vZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgR2V0RXhl
Y3V0YWJsZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBmdW5jdGlvbih0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2Us
IGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCmluZGV4IDc3MGJkYTU4Y2FiNTAyM2ExZmEwYzM4ZjRjN2EwMzA4ZDQwODBh
MzAuLjEzYzdjODdkODA2ZjdhN2E4NjczMGYwNzlhZDg4MzQ1NDI2YzdmYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMzg1
MCw2ICszODUwLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBDaGVja0lkZW50OgorICAgICAgICBj
b21waWxlQ2hlY2tJZGVudChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEdldEV4
ZWN1dGFibGU6IHsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZnVuY3Rpb24odGhpcywg
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNl
LCBmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Vz
ZUtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRl
eCBlZmExMDRmM2QwNzAwMGI3ZDdiYzQ3M2JjZGYyMDZkMTA1M2ZjOWIxLi45MzZlZjU1NGFmMjRl
MGI2NGZkZjQyOGYxNjNhZThkNzg4ZTk4ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVXNlS2luZC5jcHAKQEAgLTk3LDYgKzk3LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50
U3RyZWFtJiBvdXQsIFVzZUtpbmQgdXNlS2luZCkKICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgog
ICAgICAgICBvdXQucHJpbnQoIktub3duU3RyaW5nIik7CiAgICAgICAgIHJldHVybjsKKyAgICBj
YXNlIFN5bWJvbFVzZToKKyAgICAgICAgb3V0LnByaW50KCJTeW1ib2wiKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBvdXQucHJpbnQoIlN0cmlu
Z09iamVjdCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNl
S2luZC5oCmluZGV4IGViZjk5ZGFlNjAwYzg4MjVkMjJjYmFjNjM4MjJkMTViNTU2MDAzNWEuLjI4
OWI3ODNlNDFiYjM2MTI5MWM4M2M4ZmFkN2IwOGE1NzhlMGE2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVXNlS2luZC5oCkBAIC01Nyw2ICs1Nyw3IEBAIGVudW0gVXNlS2luZCB7CiAg
ICAgU3RyaW5nSWRlbnRVc2UsCiAgICAgU3RyaW5nVXNlLAogICAgIEtub3duU3RyaW5nVXNlLAor
ICAgIFN5bWJvbFVzZSwKICAgICBTdHJpbmdPYmplY3RVc2UsCiAgICAgU3RyaW5nT3JTdHJpbmdP
YmplY3RVc2UsCiAgICAgTm90U3RyaW5nVmFyVXNlLApAQCAtMTE3LDYgKzExOCw4IEBAIGlubGlu
ZSBTcGVjdWxhdGVkVHlwZSB0eXBlRmlsdGVyRm9yKFVzZUtpbmQgdXNlS2luZCkKICAgICBjYXNl
IFN0cmluZ1VzZToKICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICByZXR1cm4gU3Bl
Y1N0cmluZzsKKyAgICBjYXNlIFN5bWJvbFVzZToKKyAgICAgICAgcmV0dXJuIFNwZWNTeW1ib2w7
CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nT2Jq
ZWN0OwogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CkBAIC0xOTYsNiArMTk5LDcg
QEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkKICAgICBjYXNlIFN0cmluZ0lkZW50
VXNlOgogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CisgICAg
Y2FzZSBTeW1ib2xVc2U6CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBTdHJp
bmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCmluZGV4
IDkxMjc1NGRmYzQwMTUyYjBlZDI0ODM2YWM3NWI4Zjk2OTg0Mzk5YmIuLjU4MWY0Y2JkOWE3Njhi
OWFiMmE4MzkyMWNmMjRkMzUyNGJjODU3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBAIC04Nyw3ICs4Nyw4IEBA
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhTdHJ1Y3R1cmVfY2xh
c3NJbmZvLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0
dXJlX2dsb2JhbE9iamVjdCwgU3RydWN0dXJlOjpnbG9iYWxPYmplY3RPZmZzZXQoKSkgXAogICAg
IG1hY3JvKFN0cnVjdHVyZV9wcm90b3R5cGUsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkp
IFwKLSAgICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJl
SURPZmZzZXQoKSkKKyAgICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6
c3RydWN0dXJlSURPZmZzZXQoKSkgXAorICAgIG1hY3JvKFN5bWJvbF9wcml2YXRlTmFtZSwgU3lt
Ym9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfSU5ERVhFRF9B
QlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2Us
IERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUp
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5k
ZXggNjI3MjhjNzQ2ZWY5MWQ3NGI3ODI5YmIzZjlhNDRjNmQ3ZjYxZDdiMy4uYjQ5M2YzMDI3ZTgy
Y2ZjY2U5YzNjY2Y0ODJjMTU1ODYxZDY4Yjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTE4LDYgKzExOCw3IEBAIGlubGluZSBDYXBh
YmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tDZWxsOgog
ICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNl
IENoZWNrSWRlbnQ6CiAgICAgY2FzZSBTdHJpbmdDaGFyQ29kZUF0OgogICAgIGNhc2UgQWxsb2Nh
dGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgpA
QCAtNDE1LDYgKzQxNiw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFw
aCkKICAgICAgICAgICAgICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICAgICAgICAg
IGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJp
bmdPYmplY3RVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgICAg
ICAgICAgY2FzZSBGaW5hbE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE5vdENlbGxV
c2U6CiAgICAgICAgICAgICAgICAgY2FzZSBPdGhlclVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKaW5kZXggNWZiNGUyNDEyYTI1OTM0ZjJk
YmVmYjk5NzFiMDQ1ZWE4MTkyMWM4YS4uYTFiMTliZmU4ODY3ODlmMTMyZWVkY2Y2N2MzZDc4OWMy
MDYzNWQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHAKQEAgLTUzMiw2ICs1MzIsOSBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAg
ICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgICAgICAgICAgY29tcGlsZUNoZWNrQmFkQ2VsbCgp
OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDoKKyAgICAgICAg
ICAgIGNvbXBpbGVDaGVja0lkZW50KCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBHZXRFeGVjdXRhYmxlOgogICAgICAgICAgICAgY29tcGlsZUdldEV4ZWN1dGFibGUoKTsKICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMjAyOSw2ICsyMDMyLDIwIEBAIGNsYXNzIExvd2VyREZHVG9M
TFZNIHsKICAgICAgICAgc3BlY3VsYXRlKFREWkZhaWx1cmUsIG5vVmFsdWUoKSwgbnVsbHB0ciwg
bV9vdXQuaXNaZXJvNjQobG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSkpOwogICAgIH0KIAor
ICAgIHZvaWQgY29tcGlsZUNoZWNrSWRlbnQoKQorICAgIHsKKyAgICAgICAgVW5pcXVlZFN0cmlu
Z0ltcGwqIHVpZCA9IG1fbm9kZS0+dWlkT3BlcmFuZCgpOworICAgICAgICBpZiAodWlkLT5pc1N5
bWJvbCgpKSB7CisgICAgICAgICAgICBMVmFsdWUgc3ltYm9sID0gbG93U3ltYm9sKG1fbm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRy
KHN5bWJvbCwgbV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUpOworICAgICAgICAgICAgc3BlY3Vs
YXRlKEJhZElkZW50LCBub1ZhbHVlKCksIG51bGxwdHIsIG1fb3V0Lm5vdEVxdWFsKHN0cmluZ0lt
cGwsIG1fb3V0LmNvbnN0SW50UHRyKHVpZCkpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIExWYWx1ZSBzdHJpbmcgPSBsb3dTdHJpbmdJZGVudChtX25vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0gbV9vdXQubG9hZFB0cihzdHJpbmcsIG1faGVh
cHMuSlNTdHJpbmdfdmFsdWUpOworICAgICAgICAgICAgc3BlY3VsYXRlKEJhZElkZW50LCBub1Zh
bHVlKCksIG51bGxwdHIsIG1fb3V0Lm5vdEVxdWFsKHN0cmluZ0ltcGwsIG1fb3V0LmNvbnN0SW50
UHRyKHVpZCkpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIHZvaWQgY29tcGlsZUdldEV4ZWN1
dGFibGUoKQogICAgIHsKICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fbm9kZS0+Y2hp
bGQxKCkpOwpAQCAtNzAyMCw3ICs3MDM3LDE2IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAg
ICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQoZWRnZSwgc3RyaW5nLCBzdHJpbmdJbXBsKTsKICAg
ICAgICAgcmV0dXJuIHN0cmluZ0ltcGw7CiAgICAgfQotICAgIAorCisgICAgTFZhbHVlIGxvd1N5
bWJvbChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09w
ZXJhbmRTcGVjdWxhdGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9k
ZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gU3ltYm9s
VXNlKTsKKworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlLCBtb2RlKTsKKyAg
ICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQorCiAgICAgTFZhbHVlIGxvd05vbk51bGxPYmplY3QoRWRnZSBlZGdlLCBPcGVy
YW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAg
ICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNw
ZWN1bGF0aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IE9iamVjdFVzZSk7CkBAIC03NDE3LDYgKzc0
NDMsOSBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgIGNhc2UgU3RyaW5nSWRlbnRV
c2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChlZGdlKTsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIFN5bWJvbFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN5
bWJvbChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN0cmluZ09iamVj
dFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdChlZGdlKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtNzUxMyw3ICs3NTQyLDE2IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsK
ICAgICAgICAgICAgIG1fb3V0LmxvYWQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJ
RCksCiAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHZtKCkuc3RyaW5nU3RydWN0dXJlLT5p
ZCgpKSk7CiAgICAgfQotICAgIAorCisgICAgTFZhbHVlIGlzTm90U3ltYm9sKExWYWx1ZSBjZWxs
LCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgeworICAgICAgICBpZiAo
TFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNwZWNDZWxsLCB+U3BlY1N5bWJv
bCkpCisgICAgICAgICAgICByZXR1cm4gcHJvdmVuOworICAgICAgICByZXR1cm4gbV9vdXQubm90
RXF1YWwoCisgICAgICAgICAgICBtX291dC5sb2FkMzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfc3Ry
dWN0dXJlSUQpLAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMih2bSgpLnN5bWJvbFN0cnVj
dHVyZS0+aWQoKSkpOworICAgIH0KKwogICAgIExWYWx1ZSBpc0FycmF5VHlwZShMVmFsdWUgY2Vs
bCwgQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoYXJyYXlNb2Rl
LnR5cGUoKSkgewpAQCAtNzczNiw3ICs3Nzc0LDE3IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsK
ICAgICAgICAgICAgIE5vdFN0cmluZ09iamVjdCwgbm9WYWx1ZSgpLCAwLAogICAgICAgICAgICAg
bV9vdXQubm90RXF1YWwoc3RydWN0dXJlSUQsIHdlYWtTdHJ1Y3R1cmVJRChzdHJpbmdPYmplY3RT
dHJ1Y3R1cmUpKSk7CiAgICAgfQotICAgIAorCisgICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRn
ZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFs
dWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1N5bWJvbCB8IH5TcGVjQ2VsbCwgaXNOb3RTeW1ib2wo
Y2VsbCkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkKKyAg
ICB7CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9
CisKICAgICB2b2lkIHNwZWN1bGF0ZU5vbk51bGxPYmplY3QoRWRnZSBlZGdlLCBMVmFsdWUgY2Vs
bCkKICAgICB7CiAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRn
ZSwgU3BlY09iamVjdCwgaXNOb3RPYmplY3QoY2VsbCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCmluZGV4IDU4MjNkMDEwOWY4ODViOGIxZmIxZjY3MDE2YjMzYzAzMDIzYjZlYzMuLmM1MDVh
ZjBlYTc4OGQyZDg3Yjk3MTkwOWU3MDZhMzRmOGQ2NmQ1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAKQEAgLTY1NywxNyArNjU3LDIyIEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJp
dmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogICAgIGZvciAodW5zaWdu
ZWQgaSA9IG1fcHV0QnlJZHMuc2l6ZSgpOyBpLS07KQogICAgICAgICBtX3B1dEJ5SWRzW2ldLmZp
bmFsaXplKHBhdGNoQnVmZmVyKTsKIAotICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJPZkJ5VmFs
SW5mb3MobV9ieVZhbENvbXBpbGF0aW9uSW5mby5zaXplKCkpOwotICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKTsgKytpKSB7Ci0gICAgICAg
IENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVm
ZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5iYWRUeXBlSnVtcCkpOwot
ICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRp
b25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmRvbmVUYXJnZXQpOwotICAgICAgICBDb2Rl
TG9jYXRpb25MYWJlbCBzbG93UGF0aFRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9i
eVZhbENvbXBpbGF0aW9uSW5mb1tpXS5zbG93UGF0aFRhcmdldCk7Ci0gICAgICAgIENvZGVMb2Nh
dGlvbkNhbGwgcmV0dXJuQWRkcmVzcyA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENv
bXBpbGF0aW9uSW5mb1tpXS5yZXR1cm5BZGRyZXNzKTsKLSAgICAgICAgCi0gICAgICAgIG1fY29k
ZUJsb2NrLT5ieVZhbEluZm8oaSkgPSBCeVZhbEluZm8oCi0gICAgICAgICAgICBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvW2ldLmJ5dGVjb2RlSW5kZXgsCisgICAgZm9yIChjb25zdCBhdXRvJiBieVZh
bENvbXBpbGF0aW9uSW5mbyA6IG1fYnlWYWxDb21waWxhdGlvbkluZm8pIHsKKyAgICAgICAgUGF0
Y2hhYmxlSnVtcCBwYXRjaGFibGVOb3RJbmRleEp1bXAgPSBieVZhbENvbXBpbGF0aW9uSW5mby5u
b3RJbmRleEp1bXA7CisgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wID0gQ29k
ZUxvY2F0aW9uSnVtcCgpOworICAgICAgICBpZiAoSnVtcChwYXRjaGFibGVOb3RJbmRleEp1bXAp
LmlzU2V0KCkpCisgICAgICAgICAgICBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBh
dGNoQnVmZmVyLmxvY2F0aW9uT2YocGF0Y2hhYmxlTm90SW5kZXhKdW1wKSk7CisgICAgICAgIENv
ZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVy
LmxvY2F0aW9uT2YoYnlWYWxDb21waWxhdGlvbkluZm8uYmFkVHlwZUp1bXApKTsKKyAgICAgICAg
Q29kZUxvY2F0aW9uTGFiZWwgZG9uZVRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YoYnlW
YWxDb21waWxhdGlvbkluZm8uZG9uZVRhcmdldCk7CisgICAgICAgIENvZGVMb2NhdGlvbkxhYmVs
IHNsb3dQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihieVZhbENvbXBpbGF0aW9u
SW5mby5zbG93UGF0aFRhcmdldCk7CisgICAgICAgIENvZGVMb2NhdGlvbkNhbGwgcmV0dXJuQWRk
cmVzcyA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YoYnlWYWxDb21waWxhdGlvbkluZm8ucmV0dXJu
QWRkcmVzcyk7CisKKyAgICAgICAgKmJ5VmFsQ29tcGlsYXRpb25JbmZvLmJ5VmFsSW5mbyA9IEJ5
VmFsSW5mbygKKyAgICAgICAgICAgIGJ5VmFsQ29tcGlsYXRpb25JbmZvLmJ5dGVjb2RlSW5kZXgs
CisgICAgICAgICAgICBub3RJbmRleEp1bXAsCiAgICAgICAgICAgICBiYWRUeXBlSnVtcCwKLSAg
ICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYXJyYXlNb2RlLAorICAgICAgICAg
ICAgYnlWYWxDb21waWxhdGlvbkluZm8uYXJyYXlNb2RlLAorICAgICAgICAgICAgYnlWYWxDb21w
aWxhdGlvbkluZm8uYXJyYXlQcm9maWxlLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5D
b2RlUHRyKGJhZFR5cGVKdW1wLCBkb25lVGFyZ2V0KSwKICAgICAgICAgICAgIGRpZmZlcmVuY2VC
ZXR3ZWVuQ29kZVB0cihyZXR1cm5BZGRyZXNzLCBzbG93UGF0aFRhcmdldCkpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDEwMjM4MjBjNTYxMWMyMDExNjM0Y2FjYzBmZjgwNGY4
ZDMyYzFhMWYuLjkwMTA4YWYxNWRlYjdkMDZhM2I0Yjc1YzNlZjllMWYxYmE5ZDVhOWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMTQ5LDE3ICsxNDksMjMgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgc3RydWN0IEJ5VmFsQ29tcGlsYXRpb25JbmZvIHsKICAgICAgICAgQnlWYWxDb21waWxh
dGlvbkluZm8oKSB7IH0KICAgICAgICAgCi0gICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKHVu
c2lnbmVkIGJ5dGVjb2RlSW5kZXgsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5
cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9u
ZVRhcmdldCkKLSAgICAgICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQorICAg
ICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbyhCeVZhbEluZm8qIGJ5VmFsSW5mbywgdW5zaWduZWQg
Ynl0ZWNvZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbm90SW5kZXhKdW1w
LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2Rl
IGFycmF5TW9kZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUsIE1hY3JvQXNzZW1ibGVyOjpM
YWJlbCBkb25lVGFyZ2V0KQorICAgICAgICAgICAgOiBieVZhbEluZm8oYnlWYWxJbmZvKQorICAg
ICAgICAgICAgLCBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCisgICAgICAgICAgICAsIG5v
dEluZGV4SnVtcChub3RJbmRleEp1bXApCiAgICAgICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5
cGVKdW1wKQogICAgICAgICAgICAgLCBhcnJheU1vZGUoYXJyYXlNb2RlKQorICAgICAgICAgICAg
LCBhcnJheVByb2ZpbGUoYXJyYXlQcm9maWxlKQogICAgICAgICAgICAgLCBkb25lVGFyZ2V0KGRv
bmVUYXJnZXQpCiAgICAgICAgIHsKICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICBCeVZh
bEluZm8qIGJ5VmFsSW5mbzsKICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleDsKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbm90SW5kZXhKdW1wOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcDsKICAgICAgICAgSklUQXJy
YXlNb2RlIGFycmF5TW9kZTsKKyAgICAgICAgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGU7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0OwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6TGFiZWwgc2xvd1BhdGhUYXJnZXQ7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIHJldHVybkFkZHJlc3M7CkBAIC0yMDQsNiArMjEwLDEzIEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgaml0LnByaXZhdGVDb21waWxlR2V0QnlWYWwoYnlWYWxJbmZvLCByZXR1cm5B
ZGRyZXNzLCBhcnJheU1vZGUpOwogICAgICAgICB9CiAKKyAgICAgICAgc3RhdGljIHZvaWQgY29t
cGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5
VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgSklUIGpp
dCh2bSwgY29kZUJsb2NrKTsKKyAgICAgICAgICAgIGppdC5tX2J5dGVjb2RlT2Zmc2V0ID0gYnlW
YWxJbmZvLT5ieXRlY29kZUluZGV4OworICAgICAgICAgICAgaml0LnByaXZhdGVDb21waWxlR2V0
QnlWYWxXaXRoQ2FjaGVkSWQoYnlWYWxJbmZvLCByZXR1cm5BZGRyZXNzLCBwcm9wZXJ0eU5hbWUp
OworICAgICAgICB9CisKICAgICAgICAgc3RhdGljIHZvaWQgY29tcGlsZVB1dEJ5VmFsKFZNKiB2
bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRy
ZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9jayk7CkBAIC0yNDYsNiArMjU5LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENvbXBpbGF0aW9uUmVzdWx0IHByaXZhdGVDb21waWxl
KEpJVENvbXBpbGF0aW9uRWZmb3J0KTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgcHJpdmF0ZUNv
bXBpbGVHZXRCeVZhbChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUp
OworICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJ
bmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgY29uc3QgSWRlbnRpZmllciYpOwogICAgICAgICB2b2lk
IHByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgSklU
QXJyYXlNb2RlKTsKIAogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlSGFzSW5kZXhlZFByb3Bl
cnR5KEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CkBAIC0zNzEs
NyArMzg1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRBcnJheVN0
b3JhZ2VQdXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpOwogICAg
ICAgICBKdW1wTGlzdCBlbWl0SW50VHlwZWRBcnJheVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0
Y2hhYmxlSnVtcCYgYmFkVHlwZSwgVHlwZWRBcnJheVR5cGUpOwogICAgICAgICBKdW1wTGlzdCBl
bWl0RmxvYXRUeXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBi
YWRUeXBlLCBUeXBlZEFycmF5VHlwZSk7Ci0gICAgICAgIAorCisgICAgICAgIEpJVEdldEJ5SWRH
ZW5lcmF0b3IgZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKEluc3RydWN0aW9uKiwgY29uc3QgSWRl
bnRpZmllciYsIEp1bXBMaXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMpOworCiAg
ICAgICAgIGVudW0gRmluYWxPYmplY3RNb2RlIHsgTWF5QmVGaW5hbCwgS25vd25Ob3RGaW5hbCB9
OwogCiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBKdW1wIGJyYW5jaFN0cnVjdHVyZShS
ZWxhdGlvbmFsQ29uZGl0aW9uLCBUIGxlZnRIYW5kU2lkZSwgU3RydWN0dXJlKik7CkBAIC03MDIs
NiArNzE4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpJZGMsIGludCwgR1BSUmVnLCBjb25zdCBJ
ZGVudGlmaWVyKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBH
UFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJS
ZWcsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKENfSklUT3BlcmF0aW9uX0VKc2MsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpzY0MsIGludCwgR1BSUmVnLCBK
U0NlbGwqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihDX0pJ
VE9wZXJhdGlvbl9FSnNjWiwgR1BSUmVnLCBpbnQzMl90KTsKQEAgLTc0Niw2ICs3NjMsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZf
SklUT3BlcmF0aW9uX0VKSkpBcCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwg
QXJyYXlQcm9maWxlKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3Rl
cklELCBCeVZhbEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FSlpKLCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklE
KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FSlosIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VQYywgSW5zdHJ1Y3Rpb24qKTsKQEAg
LTc2Miw2ICs3ODAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJSZWcsIEdQ
UlJlZywgY29uc3QgSWRlbnRpZmllciopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BS
UmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJl
ZywgQXJyYXlQcm9maWxlKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywg
R1BSUmVnLCBCeVZhbEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9FSlMsIEdQUlJlZywgR1BSUmVnLCBzaXplX3QpOwogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VK
LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQs
IFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwpAQCAtNzY5LDYgKzc4OCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3Bl
cmF0aW9uX0VKLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKLCBSZWdpc3RlcklELCBS
ZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklE
KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FSkpKQXAsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIEFycmF5UHJvZmlsZSopOworICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpCeSwgUmVn
aXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCwgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpaLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBp
bnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSlpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3Rl
cklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FWkosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCBkMDhkNzNlYWQ3NDBh
ZGY4ZGE5NjZmM2FkMjg4NDg2MzNkNjRiNjhkLi41ZDY4NjkwMDgxYzk5NmQ3ZTMzYmYzYmQyNWRj
YzU4YjAzMGY3ZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAt
NDExLDYgKzQxMSwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKQXAgb3BlcgogICAgIHJldHVybiBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VK
SkpCeSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMiwgUmVn
aXN0ZXJJRCByZWdPcDMsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMiwgcmVnT3AzLCBUcnVzdGVkSW1tUHRyKGJ5
VmFsSW5mbykpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJh
dGlvbik7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VaSiBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBh
cmcpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihkc3Qp
LCBhcmcpOwpAQCAtNDU5LDYgKzQ2NSwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCBvcGVyYQogICAg
IHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVy
YXRpb24sIGRzdCk7CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5IG9wZXJhdGlvbiwgaW50IGRzdCwg
R1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK3sKKyAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihieVZh
bEluZm8pKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFs
dWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRp
b25fRUogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMSk7CkBAIC02MDAsNiArNjEyLDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwIG9w
ZXJhCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVz
dWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnkgb3BlcmF0aW9uLCBp
bnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRh
ZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK3sKKyAgICBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQs
IGFyZzFUYWcsIFNINF8zMkJJVF9EVU1NWV9BUkcgYXJnMlBheWxvYWQsIGFyZzJUYWcsIFRydXN0
ZWRJbW1QdHIoYnlWYWxJbmZvKSk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKK30KKwogQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSklUOjpXaXRoUHJvZmls
ZVRhZywgSl9KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzFU
YWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9h
ZCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9B
UkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIFNINF8zMkJJVF9EVU1NWV9BUkcgYXJnMlBheWxvYWQs
IGFyZzJUYWcpOwpAQCAtNjY2LDYgKzY4NCwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKQXAgb3Blcgog
ICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAK
K0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZf
SklUT3BlcmF0aW9uX0VKSkpCeSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxVGFnLCBSZWdp
c3RlcklEIHJlZ09wMVBheWxvYWQsIFJlZ2lzdGVySUQgcmVnT3AyVGFnLCBSZWdpc3RlcklEIHJl
Z09wMlBheWxvYWQsIFJlZ2lzdGVySUQgcmVnT3AzVGFnLCBSZWdpc3RlcklEIHJlZ09wM1BheWxv
YWQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyByZWdPcDFQYXlsb2FkLCByZWdPcDFUYWcsIFNINF8z
MkJJVF9EVU1NWV9BUkcgcmVnT3AyUGF5bG9hZCwgcmVnT3AyVGFnLCByZWdPcDNQYXlsb2FkLCBy
ZWdPcDNUYWcsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7CisgICAgcmV0dXJuIGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVpKIG9w
ZXJhdGlvbiwgaW50IGRzdCwgUmVnaXN0ZXJJRCByZWdPcDFUYWcsIFJlZ2lzdGVySUQgcmVnT3Ax
UGF5bG9hZCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMy
KGRzdCksIHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAppbmRleCBkM2NmMGRmZGY3ZTE1MGQ5ZDMxMDYyYjI5ZDhhNmY1ODNm
NmEwMDY1Li44YzhiZTc4MDkwYjk2OGYwYWVlNzA3YTVlMDNiYWFiNGM0ZTY3NDQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTEwNjcsNiArMTA2Nyw3IEBA
IHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUu
YXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFk
ZEJ5VmFsSW5mbygpOwogICAgIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJl
Z1QwLCBwcm9wZXJ0eSwgcmVnVDEpOwogCkBAIC0xMDk4LDcgKzEwOTksNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIAogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAKLSAgICBt
X2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVj
b2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9u
SW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zm
c2V0LCBQYXRjaGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUpKTsKIH0K
IAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0
ZXIpCkBAIC0xMTA2LDcgKzExMDcsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4
ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAogICAgIGlu
dCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBiYXNlID0g
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9
IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKKyAgICBCeVZhbEluZm8qIGJ5
VmFsSW5mbyA9IG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhd
LmJ5VmFsSW5mbzsKICAgICAKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNl
KTsgLy8gYmFzZSBjZWxsIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFy
cmF5IGNoZWNrCkBAIC0xMTE3LDcgKzExMTgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFz
X2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAog
ICAgIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYmFzZSwgcmVnVDApOwogICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVydHksIHJlZ1QxKTsKLSAgICBDYWxsIGNhbGwgPSBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQsIGRzdCwgcmVnVDAs
IHJlZ1QxLCBwcm9maWxlKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQsIGRzdCwgcmVnVDAsIHJlZ1QxLCBieVZhbEluZm8p
OwogCiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0u
c2xvd1BhdGhUYXJnZXQgPSBzbG93UGF0aDsKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21f
YnlWYWxJbnN0cnVjdGlvbkluZGV4XS5yZXR1cm5BZGRyZXNzID0gY2FsbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA0M2UwMmVlODUxZjdl
N2ZjZDc2ZjhkNTMyYWNjMTI4MjBlYzM0ODU0Li4yNTc4ZTViNTg0YWUxN2RhN2E1NzBkYzY5N2Ex
ZGY1MTI5ZjJiNTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwCkBAIC0xMDY3LDYgKzEwNjcsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfaW5k
ZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludCBi
YXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJv
ZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKKyAgICBCeVZhbElu
Zm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKICAgICAKICAgICBl
bWl0TG9hZFBheWxvYWQoYmFzZSwgcmVnVDApOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpT
Q2VsbChiYXNlKTsKQEAgLTEwOTksNyArMTEwMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19p
bmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAg
ICAgZW1pdFN0b3JlQm9vbChkc3QsIHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRp
b25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRU
eXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlW
YWxDb21waWxhdGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBQYXRjaGFibGVK
dW1wKCksIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUpKTsKIH0KIAogdm9pZCBKSVQ6OmVt
aXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBAIC0xMTA3LDcg
KzExMDgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAogICAgIGludCBkc3QgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0
aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
M10udS5vcGVyYW5kOwotICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVj
dGlvbls0XS51LmFycmF5UHJvZmlsZTsKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fYnlW
YWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLmJ5VmFsSW5mbzsKICAg
ICAKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxs
IGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNrCkBAIC0x
MTE4LDcgKzExMTksNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVy
dHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAogICAgIAogICAgIGVtaXRM
b2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1QzLCBy
ZWdUMik7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25IYXNJbmRleGVk
UHJvcGVydHlEZWZhdWx0LCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyLCBwcm9maWxl
KTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9w
ZXJ0eURlZmF1bHQsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIsIGJ5VmFsSW5mbyk7
CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5z
bG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9i
eVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggYjU5MTM0ZWFmNzVmZTgwOTJl
YTJhMmNiNWVjY2U0ZTVmNGY3MTdjOS4uN2FlNDNmMGEwYTlhNWVhNzEyYzliYjA0YzkyZDI2MDky
M2JkNzM1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3Bw
CkBAIC00NzgsNyArNDc4LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlYWxsb2Nh
dGVTdG9yYWdlQW5kRmluaXNoUHV0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmoKICAgICBiYXNlLT5w
dXREaXJlY3Qodm0sIG9mZnNldCwgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSk7CiB9CiAKLXN0YXRp
YyB2b2lkIHB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIGJhc2VWYWx1ZSwg
SlNWYWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUgdmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9m
aWxlKQorc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUg
YmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQnlWYWxJbmZvKiBi
eVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOwogICAgIGlmIChMSUtF
TFkoc3Vic2NyaXB0LmlzVUludDMyKCkpKSB7CkBAIC00ODgsNyArNDg4LDcgQEAgc3RhdGljIHZv
aWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1Zh
bHVlIHN1YnNjcmlwdCwKICAgICAgICAgICAgIGlmIChvYmplY3QtPmNhblNldEluZGV4UXVpY2ts
eShpKSkKICAgICAgICAgICAgICAgICBvYmplY3QtPnNldEluZGV4UXVpY2tseShjYWxsRnJhbWUt
PnZtKCksIGksIHZhbHVlKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGFy
cmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAgICAgICAgICAgICAgICBieVZhbEluZm8t
PmFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICAgICAgICAgICAgICBvYmplY3Qt
Pm1ldGhvZFRhYmxlKHZtKS0+cHV0QnlJbmRleChvYmplY3QsIGNhbGxGcmFtZSwgaSwgdmFsdWUs
IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfSBlbHNlCkBAIC01MDIsNyArNTAyLDcgQEAgc3RhdGljIHZvaWQgcHV0QnlWYWwo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlw
dCwKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUg
dmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQorc3RhdGljIHZvaWQgZGlyZWN0UHV0
QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVl
IHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAg
Ym9vbCBpc1N0cmljdE1vZGUgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUo
KTsKICAgICBpZiAoTElLRUxZKHN1YnNjcmlwdC5pc1VJbnQzMigpKSkgewpAQCAtNTE0LDcgKzUx
NCw3IEBAIHN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICBhcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAgICAg
IGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgICAgICBiYXNl
T2JqZWN0LT5wdXREaXJlY3RJbmRleChjYWxsRnJhbWUsIGluZGV4LCB2YWx1ZSwgMCwgaXNTdHJp
Y3RNb2RlID8gUHV0RGlyZWN0SW5kZXhTaG91bGRUaHJvdyA6IFB1dERpcmVjdEluZGV4U2hvdWxk
Tm90VGhyb3cpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTQwLDcgKzU0MCw3IEBAIHN0
YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCog
YmFzZU9iamVjdCwgSlNWYWx1ZSBzCiAgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVjdChjYWxs
RnJhbWUtPnZtKCksIHByb3BlcnR5LCB2YWx1ZSwgc2xvdCk7CiAgICAgfQogfQotdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKK3Zv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3Jp
cHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8pCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKCZ2bSwgZXhlYyk7CkBAIC01NTQsMjEgKzU1NCwxOSBAQCB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZQogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKICAg
ICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgICAgIHVuc2lnbmVkIGJ5dGVj
b2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7Ci0gICAgICAgIEFT
U0VSVChieXRlY29kZU9mZnNldCk7Ci0gICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhl
Yy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwotICAgICAg
ICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7CisgICAgICAgIEFTU0VSVChleGVjLT5s
b2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLT5z
dHViUm91dGluZSk7CiAKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0
cnVjdHVyZSh2bSk7CiAgICAgICAgIGlmIChoYXNPcHRpbWl6YWJsZUluZGV4aW5nKHN0cnVjdHVy
ZSkpIHsKICAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICBK
SVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKHN0cnVjdHVy
ZSk7Ci0gICAgICAgICAgICBpZiAoaml0QXJyYXlNb2RlUGVybWl0c1B1dChhcnJheU1vZGUpICYm
IGFycmF5TW9kZSAhPSBieVZhbEluZm8uYXJyYXlNb2RlKSB7CisgICAgICAgICAgICBpZiAoaml0
QXJyYXlNb2RlUGVybWl0c1B1dChhcnJheU1vZGUpICYmIGFycmF5TW9kZSAhPSBieVZhbEluZm8t
PmFycmF5TW9kZSkgewogICAgICAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhl
Yy0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2Nr
ZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29t
cHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAg
ICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRp
Y3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CiAKLSAgICAgICAgICAgICAgICBK
SVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCAmYnlWYWxJbmZvLCBS
ZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAg
ICAgICAgICAgSklUOjpjb21waWxlUHV0QnlWYWwoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7
CiAgICAgICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0cnVlOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CkBAIC01NzksNyArNTc3LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UKICAgICAg
ICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhlbiBkb24ndCBldmVuIHdh
aXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwogICAgICAgICAgICAgLy8gd2hlcmUgd2Ugc2Vl
IG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25z
IHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBvcnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0
aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9ycGhpYy4KLSAgICAgICAgICAgIGlmICgr
K2J5VmFsSW5mby5zbG93UGF0aENvdW50ID49IDEwCisgICAgICAgICAgICBpZiAoKytieVZhbElu
Zm8tPnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVj
dHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhF
dmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgZXZl
ciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5B
ZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQURE
UkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYykpOwpAQCAtNTg3LDEw
ICs1ODUsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UKICAgICAgICAgfQogICAgIH0KIAot
ICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgYXJyYXlQcm9m
aWxlKTsKKyAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUsIGJ5
VmFsSW5mbyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZh
bChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYg
dm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigm
dm0sIGNhbGxGcmFtZSk7CkBAIC02MDMsMjIgKzYwMSwyMCBAQCB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwoRXhlY1N0YXRlKiBjYWxsRnJhbWUsIEVuY29kZWRKU1Zh
bHVlCiAgICAgaWYgKHN1YnNjcmlwdC5pc0ludDMyKCkpIHsKICAgICAgICAgLy8gU2VlIGlmIGl0
J3Mgd29ydGggb3B0aW1pemluZyBhdCBhbGwuCiAgICAgICAgIGJvb2wgZGlkT3B0aW1pemUgPSBm
YWxzZTsKLSAgICAgICAgCi0gICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gY2FsbEZy
YW1lLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKLSAgICAgICAgQVNTRVJUKGJ5dGVjb2Rl
T2Zmc2V0KTsKLSAgICAgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBjYWxsRnJhbWUtPmNvZGVC
bG9jaygpLT5nZXRCeVZhbEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsKLSAgICAgICAgQVNTRVJU
KCFieVZhbEluZm8uc3R1YlJvdXRpbmUpOworCisgICAgICAgIEFTU0VSVChjYWxsRnJhbWUtPmxv
Y2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKKyAgICAgICAgQVNTRVJUKCFieVZhbEluZm8tPnN0
dWJSb3V0aW5lKTsKIAogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVjdC0+c3Ry
dWN0dXJlKHZtKTsKICAgICAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcoc3RydWN0dXJl
KSkgewogICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgIEpJ
VEFycmF5TW9kZSBhcnJheU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJl
KTsKLSAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYg
YXJyYXlNb2RlICE9IGJ5VmFsSW5mby5hcnJheU1vZGUpIHsKKyAgICAgICAgICAgIGlmIChqaXRB
cnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+
YXJyYXlNb2RlKSB7CiAgICAgICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxs
RnJhbWUtPmNvZGVCbG9jaygpOwogICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgICAgICBhcnJheVByb2ZpbGUt
PmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihsb2NrZXIsIGNvZGVCbG9jaywgc3RydWN0dXJlKTsK
KyAgICAgICAgICAgICAgICBieVZhbEluZm8tPmFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQ
cmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOwogCi0gICAgICAgICAgICAg
ICAgSklUOjpjb21waWxlRGlyZWN0UHV0QnlWYWwoJnZtLCBjYWxsRnJhbWUtPmNvZGVCbG9jaygp
LCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5
TW9kZSk7CisgICAgICAgICAgICAgICAgSklUOjpjb21waWxlRGlyZWN0UHV0QnlWYWwoJnZtLCBj
YWxsRnJhbWUtPmNvZGVCbG9jaygpLCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JF
VFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAgICAgICAgICAgICBkaWRPcHRpbWl6ZSA9
IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTYyOSwxNyArNjI1LDE3IEBAIHZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxG
cmFtZSwgRW5jb2RlZEpTVmFsdWUKICAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRl
eGVkIGdldCwgdGhlbiBkb24ndCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwog
ICAgICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0
cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBv
cnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5
bW9ycGhpYy4KLSAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby5zbG93UGF0aENvdW50ID49IDEw
CisgICAgICAgICAgICBpZiAoKytieVZhbEluZm8tPnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAg
ICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0
c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAg
ICAgICAgICAgICAgICAgLy8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAg
ICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCks
IFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0
aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgZGlyZWN0UHV0QnlWYWwoY2FsbEZyYW1lLCBvYmplY3QsIHN1YnNjcmlwdCwgdmFs
dWUsIGFycmF5UHJvZmlsZSk7CisgICAgZGlyZWN0UHV0QnlWYWwoY2FsbEZyYW1lLCBvYmplY3Qs
IHN1YnNjcmlwdCwgdmFsdWUsIGJ5VmFsSW5mbyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQordm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8p
CiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC02NDgsMTEgKzY0NCwxMSBAQCB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jbwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRT
dWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZh
bHVlKTsKIAotICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwg
YXJyYXlQcm9maWxlKTsKKyAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwg
dmFsdWUsIGJ5VmFsSW5mbyk7CiB9CiAKIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRp
cmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCit2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5m
bykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTY2MSw3ICs2NTcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdQogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRT
dWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZh
bHVlKTsKICAgICBSRUxFQVNFX0FTU0VSVChiYXNlVmFsdWUuaXNPYmplY3QoKSk7Ci0gICAgZGly
ZWN0UHV0QnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZVZhbHVlKSwgc3Vic2NyaXB0LCB2YWx1ZSwg
YXJyYXlQcm9maWxlKTsKKyAgICBkaXJlY3RQdXRCeVZhbChleGVjLCBhc09iamVjdChiYXNlVmFs
dWUpLCBzdWJzY3JpcHQsIHZhbHVlLCBieVZhbEluZm8pOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSogZXhlYywgRXhlY1N0YXRl
KiBleGVjQ2FsbGVlKQpAQCAtMTQxNCwzNCArMTQxMCw0MSBAQCBzdGF0aWMgYm9vbCBjYW5BY2Nl
c3NBcmd1bWVudEluZGV4UXVpY2tseShKU09iamVjdCYgb2JqZWN0LCB1aW50MzJfdCBpbmRleCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlIGdldEJ5VmFsKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LCBBcnJheVByb2Zp
bGUqIGFycmF5UHJvZmlsZSwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQorc3RhdGlj
IEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNW
YWx1ZSBzdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJl
dHVybkFkZHJlc3MpCiB7CiAgICAgaWYgKExJS0VMWShiYXNlVmFsdWUuaXNDZWxsKCkgJiYgc3Vi
c2NyaXB0LmlzU3RyaW5nKCkpKSB7CiAgICAgICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAg
ICAgIFN0cnVjdHVyZSYgc3RydWN0dXJlID0gKmJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJl
KHZtKTsKICAgICAgICAgaWYgKEpTQ2VsbDo6Y2FuVXNlRmFzdEdldE93blByb3BlcnR5KHN0cnVj
dHVyZSkpIHsKICAgICAgICAgICAgIGlmIChSZWZQdHI8QXRvbWljU3RyaW5nSW1wbD4gZXhpc3Rp
bmdBdG9taWNTdHJpbmcgPSBhc1N0cmluZyhzdWJzY3JpcHQpLT50b0V4aXN0aW5nQXRvbWljU3Ry
aW5nKGV4ZWMpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0gYmFzZVZh
bHVlLmFzQ2VsbCgpLT5mYXN0R2V0T3duUHJvcGVydHkodm0sIHN0cnVjdHVyZSwgZXhpc3RpbmdB
dG9taWNTdHJpbmcuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHJlc3VsdCA9
IGJhc2VWYWx1ZS5hc0NlbGwoKS0+ZmFzdEdldE93blByb3BlcnR5KHZtLCBzdHJ1Y3R1cmUsIGV4
aXN0aW5nQXRvbWljU3RyaW5nLmdldCgpKSkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
ZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoYnlWYWxJbmZvLT5zdHViSW5mbyAmJiBieVZhbEluZm8tPmNhY2hlZElkLmltcGwoKSAhPSBl
eGlzdGluZ0F0b21pY1N0cmluZykKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+
dG9va1Nsb3dQYXRoID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKICAg
ICBpZiAoc3Vic2NyaXB0LmlzVUludDMyKCkpIHsKKyAgICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0
aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKKyAgICAgICAgYnlWYWxJbmZvLT50b29rU2xvd1BhdGgg
PSB0cnVlOworCiAgICAgICAgIHVpbnQzMl90IGkgPSBzdWJzY3JpcHQuYXNVSW50MzIoKTsKICAg
ICAgICAgaWYgKGlzSlNTdHJpbmcoYmFzZVZhbHVlKSkgewogICAgICAgICAgICAgaWYgKGFzU3Ry
aW5nKGJhc2VWYWx1ZSktPmNhbkdldEluZGV4KGkpKSB7CiAgICAgICAgICAgICAgICAgY3RpUGF0
Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCByZXR1cm5BZGRyZXNzLCBG
dW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZhbFN0cmluZykpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBhc1N0cmluZyhiYXNlVmFsdWUpLT5nZXRJbmRleChleGVjLCBpKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAgICAgICAg
ICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgICAgICB9
IGVsc2UgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgICAgICBKU09iamVjdCog
b2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKICAgICAgICAgICAgIGlmIChvYmplY3QtPmNh
bkdldEluZGV4UXVpY2tseShpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0LT5nZXRJ
bmRleFF1aWNrbHkoaSk7CiAKICAgICAgICAgICAgIGlmICghY2FuQWNjZXNzQXJndW1lbnRJbmRl
eFF1aWNrbHkoKm9iamVjdCwgaSkpCi0gICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRP
dXRPZkJvdW5kcygpOworICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5z
ZXRPdXRPZkJvdW5kcygpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIGJhc2VWYWx1ZS5n
ZXQoZXhlYywgaSk7CkBAIC0xNDUzLDc0ICsxNDU2LDkxIEBAIHN0YXRpYyBKU1ZhbHVlIGdldEJ5
VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0
LCBBCiAgICAgYXV0byBwcm9wZXJ0eSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGV4ZWMpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CisKKyAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOworICAg
IGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmIGJ5VmFsSW5mby0+Y2FjaGVkSWQgIT0gcHJvcGVy
dHkpCisgICAgICAgIGJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsKKwogICAgIHJldHVy
biBiYXNlVmFsdWUuZ2V0KGV4ZWMsIHByb3BlcnR5KTsKIH0KIAogZXh0ZXJuICJDIiB7CiAgICAg
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRT
dWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogICAgIEpT
VmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKICAgICBKU1Zh
bHVlIHN1YnNjcmlwdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KTsKIAotICAg
IEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGFy
cmF5UHJvZmlsZSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKKyAgICBK
U1ZhbHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBieVZh
bEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQ
cm9maWxlKiBhcnJheVByb2ZpbGUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZh
bEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwotICAgIAorCiAgICAgaWYgKGJhc2VWYWx1ZS5pc09i
amVjdCgpICYmIHN1YnNjcmlwdC5pc0ludDMyKCkpIHsKICAgICAgICAgLy8gU2VlIGlmIGl0J3Mg
d29ydGggb3B0aW1pemluZyB0aGlzIGF0IGFsbC4KICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9
IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CiAgICAgICAgIGJvb2wgZGlkT3B0aW1pemUgPSBmYWxzZTsK
IAotICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IGV4ZWMtPmxvY2F0aW9uQXNCeXRl
Y29kZU9mZnNldCgpOwotICAgICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQpOwotICAgICAgICBC
eVZhbEluZm8mIGJ5VmFsSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRCeVZhbEluZm8oYnl0
ZWNvZGVPZmZzZXQgLSAxKTsKLSAgICAgICAgQVNTRVJUKCFieVZhbEluZm8uc3R1YlJvdXRpbmUp
OwotICAgICAgICAKKyAgICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNl
dCgpKTsKKyAgICAgICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5lKTsKKwogICAgICAg
ICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhvYmplY3QtPnN0cnVjdHVyZSh2bSkpKSB7CiAg
ICAgICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICAgICAgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7CiAgICAgICAgICAgICBKSVRBcnJh
eU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKHN0cnVjdHVyZSk7Ci0g
ICAgICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFsSW5mby5hcnJheU1vZGUpIHsKKyAgICAg
ICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLT5hcnJheU1vZGUpIHsKICAgICAgICAg
ICAgICAgICAvLyBJZiB3ZSByZWFjaGVkIHRoaXMgY2FzZSwgd2UgZ290IGFuIGludGVyZXN0aW5n
IGFycmF5IG1vZGUgd2UgZGlkIG5vdCBleHBlY3Qgd2hlbiB3ZSBjb21waWxlZC4KICAgICAgICAg
ICAgICAgICAvLyBMZXQncyB1cGRhdGUgdGhlIHByb2ZpbGUgdG8gZG8gYmV0dGVyIG5leHQgdGlt
ZS4KICAgICAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9j
aygpOwogICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9j
ay0+bV9sb2NrKTsKLSAgICAgICAgICAgICAgICBhcnJheVByb2ZpbGUtPmNvbXB1dGVVcGRhdGVk
UHJlZGljdGlvbihsb2NrZXIsIGNvZGVCbG9jaywgc3RydWN0dXJlKTsKKyAgICAgICAgICAgICAg
ICBieVZhbEluZm8tPmFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tl
ciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOwogCi0gICAgICAgICAgICAgICAgSklUOjpjb21waWxl
R2V0QnlWYWwoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgJmJ5VmFsSW5mbywgUmV0dXJuQWRkcmVz
c1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBhcnJheU1vZGUpOworICAgICAgICAgICAgICAgIEpJ
VDo6Y29tcGlsZUdldEJ5VmFsKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksIGJ5VmFsSW5mbywgUmV0
dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBhcnJheU1vZGUpOwogICAgICAgICAg
ICAgICAgIGRpZE9wdGltaXplID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICAKKwogICAgICAgICBpZiAoIWRpZE9wdGltaXplKSB7CiAgICAgICAgICAgICAvLyBJZiB3
ZSB0YWtlIHNsb3cgcGF0aCBtb3JlIHRoYW4gMTAgdGltZXMgd2l0aG91dCBwYXRjaGluZyB0aGVu
IG1ha2Ugc3VyZSB3ZQogICAgICAgICAgICAgLy8gbmV2ZXIgbWFrZSB0aGF0IG1pc3Rha2UgYWdh
aW4uIE9yLCBpZiB3ZSBmYWlsZWQgdG8gcGF0Y2ggYW5kIHdlIGhhdmUgc29tZSBvYmplY3QKICAg
ICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhlbiBkb24ndCBldmVu
IHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwogICAgICAgICAgICAgLy8gd2hlcmUgd2Ug
c2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRp
b25zIHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBvcnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2
ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9ycGhpYy4KLSAgICAgICAgICAgIGlm
ICgrK2J5VmFsSW5mby5zbG93UGF0aENvdW50ID49IDEwCisgICAgICAgICAgICBpZiAoKytieVZh
bEluZm8tPnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgICAgICB8fCBvYmplY3QtPnN0
cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAgICAgLy8gRG9uJ3Qg
ZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1
cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5f
QUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYykpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIAotICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0
QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGFycmF5UHJvZmlsZSwgUmV0dXJuQWRk
cmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKKworICAgIGlmIChiYXNlVmFsdWUuaXNPYmpl
Y3QoKSAmJiAoc3Vic2NyaXB0LmlzU3ltYm9sKCkgfHwgc3Vic2NyaXB0LmlzU3RyaW5nKCkpKSB7
CisgICAgICAgIGNvbnN0IElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gc3Vic2NyaXB0LnRvUHJv
cGVydHlLZXkoZXhlYyk7CisKKyAgICAgICAgaWYgKCFzdWJzY3JpcHQuaXNTdHJpbmcoKSB8fCAh
cGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgICAgICBBU1NFUlQoZXhlYy0+bG9j
YXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOworICAgICAgICAgICAgQVNTRVJUKCFieVZhbEluZm8t
PnN0dWJSb3V0aW5lKTsKKyAgICAgICAgICAgIEpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hl
ZElkKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihP
VVJfUkVUVVJOX0FERFJFU1MpLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICB9CisKKyAgICAgICAg
UHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKKyAgICAgICAgYm9vbCBoYXNSZXN1bHQgPSBi
YXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGFzUmVzdWx0ID8gc2xvdC5nZXRWYWx1ZShleGVj
LCBwcm9wZXJ0eU5hbWUpIDoganNVbmRlZmluZWQoKSk7CisgICAgfQorCisgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYnlWYWxJbmZvLCBS
ZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KLSAgICAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBB
cnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTUzMywxNiArMTU1
MywxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQ
cm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLAogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBh
c09iamVjdChiYXNlVmFsdWUpOwogICAgIGJvb2wgZGlkT3B0aW1pemUgPSBmYWxzZTsKIAotICAg
IHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0
KCk7Ci0gICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICBCeVZhbEluZm8mIGJ5VmFsSW5m
byA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRCeVZhbEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsK
LSAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7CisgICAgQVNTRVJUKGV4ZWMtPmxv
Y2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKKyAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJv
dXRpbmUpOwogICAgIAogICAgIGlmIChoYXNPcHRpbWl6YWJsZUluZGV4aW5nKG9iamVjdC0+c3Ry
dWN0dXJlKHZtKSkpIHsKICAgICAgICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KICAgICAgICAg
SklUQXJyYXlNb2RlIGFycmF5TW9kZSA9IGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShvYmplY3Qt
PnN0cnVjdHVyZSh2bSkpOwotICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFsSW5mby5hcnJh
eU1vZGUpIHsKLSAgICAgICAgICAgIEpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eSgmdm0s
IGV4ZWMtPmNvZGVCbG9jaygpLCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRV
Uk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJ
bmZvLT5hcnJheU1vZGUpIHsKKyAgICAgICAgICAgIEpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9w
ZXJ0eSgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIo
T1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAgICAgICAgIGRpZE9wdGltaXpl
ID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTE1NTMsMTAgKzE1NzEsMTAgQEAgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0
KEV4ZWNTdGF0ZSogZXhlYywKICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0
LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNhc2VzCiAgICAgICAg
IC8vIHdoZXJlIHdlIHNlZSBub24taW5kZXgtaW50ZXJjZXB0aW5nIG9iamVjdHMsIHRoaXMgZ2l2
ZXMgMTAgaXRlcmF0aW9ucyB3b3J0aCBvZgogICAgICAgICAvLyBvcHBvcnR1bml0eSBmb3IgdXMg
dG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9ycGhpYy4KLSAgICAg
ICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKKyAgICAgICAgaWYgKCsrYnlW
YWxJbmZvLT5zbG93UGF0aENvdW50ID49IDEwCiAgICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVj
dHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhF
dmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAvLyBEb24ndCBldmVyIHRy
eSB0byBvcHRpbWl6ZS4KLSAgICAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhl
eGVjLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBG
dW5jdGlvblB0cihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKSk7IAorICAgICAg
ICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1
cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkhh
c0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTU2NSwx
MSArMTU4MywxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0lu
ZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLAogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SlNUcnVlKSk7CiAKICAgICBpZiAoIWNhbkFj
Y2Vzc0FyZ3VtZW50SW5kZXhRdWlja2x5KCpvYmplY3QsIGluZGV4KSkKLSAgICAgICAgYXJyYXlQ
cm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAgICAgICBieVZhbEluZm8tPmFycmF5UHJvZmls
ZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVh
bihvYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIGluZGV4KSkpOwogfQogICAgIAotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMp
OwpAQCAtMTU4NSwxMSArMTYwMywxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLAogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SlNUcnVlKSk7CiAKICAg
ICBpZiAoIWNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlja2x5KCpvYmplY3QsIGluZGV4KSkKLSAg
ICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAgICAgICBieVZhbEluZm8t
PmFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihvYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIHN1YnNjcmlwdC5hc1VJbnQz
MigpKSkpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25H
ZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0KQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZh
bEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTE2MDQsMTAgKzE2MjIsOCBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVgogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHJl
c3VsdCA9IGJhc2VWYWx1ZS5nZXQoZXhlYywgaSk7CiAgICAgICAgICAgICBpZiAoIWlzSlNTdHJp
bmcoYmFzZVZhbHVlKSkgewotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0
ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7Ci0gICAgICAgICAgICAgICAgQVNT
RVJUKGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgICAgICAgICBCeVZhbEluZm8mIGJ5VmFsSW5m
byA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRCeVZhbEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsK
LSAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJs
b2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIo
YnlWYWxJbmZvLnN0dWJSb3V0aW5lID8gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljIDogb3BlcmF0
aW9uR2V0QnlWYWxPcHRpbWl6ZSkpOworICAgICAgICAgICAgICAgIEFTU0VSVChleGVjLT5sb2Nh
dGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlS
ZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRV
Uk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUgPyBvcGVyYXRp
b25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuaAppbmRleCAyZWYyYTU2OTlmN2YzYWQwZTc3MGY0Nzg4ZTk0M2YwN2Y4
MTBiYWQ3Li4zZDgzZjU5MGRjZjkxODAzYTM0NDhiYTA4M2IyZjkyYmNiZTg0ZjliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtNTgsNiArNTgsNyBAQCBl
eHRlcm4gIkMiIHsKICAgICBBOiBKU0FycmF5KgogICAgIEFhcDogQXJyYXlBbGxvY2F0aW9uUHJv
ZmlsZSoKICAgICBBcDogQXJyYXlQcm9maWxlKgorICAgIEJ5OiBCeVZhbEluZm8qCiAgICAgQzog
SlNDZWxsKgogICAgIENiOiBDb2RlQmxvY2sqCiAgICAgQ2xpOiBDYWxsTGlua0luZm8qCkBAIC0x
MTMsNiArMTE0LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9K
SVRPcGVyYXRpb25fRUpJKShFeGVjU3RhdGUqLCBFbmNvZGVkSlMKIHR5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSWRjKShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKKShFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKQXApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKc3NaKShFeGVjU3RhdGUqLCBK
U1N0cmluZyosIGludDMyX3QpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUpQKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgdm9pZCop
OwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25f
RVApKEV4ZWNTdGF0ZSosIHZvaWQqKTsKQEAgLTE5NSw2ICsxOTcsNyBAQCB0eXBlZGVmIHZvaWQg
SklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSWRKKShFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgSQogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9F
SklkSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9K
SVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklU
T3BlcmF0aW9uX0VKSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7Cit0eXBlZGVmIHZvaWQgSklUX09Q
RVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKik7CiB0eXBlZGVm
IHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKUFApKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCB2b2lkKiwgdm9pZCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FSlpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJf
dCwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9w
ZXJhdGlvbl9FSlopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KTsKQEAgLTI1
OSwxMCArMjYyLDEwIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkTm9uU3Ry
aWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJCiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdEJ1aWxkTGlzdChFeGVjU3RhdGUqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RCdWlsZExpc3QoRXhl
Y1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCopIFdURl9JTlRF
Uk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWFsbG9jYXRlU3RvcmFnZUFuZEZp
bmlzaFB1dChFeGVjU3RhdGUqLCBKU09iamVjdCosIFN0cnVjdHVyZSosIFByb3BlcnR5T2Zmc2V0
LCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKSBXVEZfSU5U
RVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFy
cmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25E
aXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwordm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZh
bEluZm8qKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlW
YWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikgV1RGX0lOVEVS
TkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVj
U3RhdGUqLCBFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyopIFdURl9JTlRFUk5BTDsK
IGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua1BvbHltb3JwaGljQ2FsbChFeGVjU3Rh
dGUqLCBDYWxsTGlua0luZm8qKSBXVEZfSU5URVJOQUw7CkBAIC0zMDksMTEgKzMxMiwxMSBAQCB2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCkg
V1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVEaWRDYWxs
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHJvZmlsZVdpbGxDYWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNo
ZWNrSGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGJhc2VWYWwpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKikgV1RG
X0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZh
bEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRT
dWJzY3JpcHQpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9m
aWxlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUq
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdl
dEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZh
bEluZm8qKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyop
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFz
SW5kZXhlZFByb3BlcnR5R2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lO
VEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeUlk
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIGNvbnN0IElkZW50aWZpZXIqKSBXVEZf
SU5URVJOQUw7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UE5hbWVzKEV4ZWNT
dGF0ZSosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBwcm90bykgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCA0ZWYwNmQ5MjEzYTJiMWRiZmZiYTRj
N2MzMzRkMmY2ZjFjNDc5MTdlLi42YWIzZjY0OWI3MGYzOGEyZTIzMDVhZjZmM2RlMmI3NjI4Njdl
MTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcApAQCAtOTgsOSArOTgsMTQgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0
cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKLSAgICAKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5m
byA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKKwogICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXJzKGJhc2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDEpOwotICAgIGVtaXRKdW1wU2xvd0Nh
c2VJZk5vdEltbWVkaWF0ZUludGVnZXIocmVnVDEpOworCisgICAgZW1pdEp1bXBTbG93Q2FzZUlm
Tm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKKworICAgIFBhdGNoYWJsZUp1bXAgbm90SW5kZXggPSBl
bWl0UGF0Y2hhYmxlSnVtcElmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CisgICAgYWRkU2xv
d0Nhc2Uobm90SW5kZXgpOwogCiAgICAgLy8gVGhpcyBpcyB0ZWNobmljYWxseSBpbmNvcnJlY3Qg
LSB3ZSdyZSB6ZXJvLWV4dGVuZGluZyBhbiBpbnQzMi4gIE9uIHRoZSBob3QgcGF0aCB0aGlzIGRv
ZXNuJ3QgbWF0dGVyLgogICAgIC8vIFdlIGNoZWNrIHRoZSB2YWx1ZSBhcyBpZiBpdCB3YXMgYSB1
aW50MzIgYWdhaW5zdCB0aGUgbV92ZWN0b3JMZW5ndGggLSB3aGljaCB3aWxsIGFsd2F5cyBmYWls
IGlmCkBAIC0xMTAsNyArMTE1LDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIC8vIGV4dGVuZGluZyBzaW5jZSBpdCBt
YWtlcyBpdCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2YWx1ZSBpbiB0aGUgc2xvdyBjYXNlLgogICAg
IHplcm9FeHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdUMSk7CiAKLSAgICBlbWl0SnVtcFNsb3dDYXNl
SWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOwogICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRo
Q2VsbChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRl
eGluZ1NoYXBlTWFzayksIHJlZ1QyKTsKIApAQCAtMTQ5LDggKzE1Myw4IEBAIHZvaWQgSklUOjpl
bWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRz
dCk7Ci0gICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxh
dGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworCisgICAg
bV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8oYnlWYWxJ
bmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBub3RJbmRleCwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwg
ZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdERvdWJsZUxvYWQoSW5zdHJ1Y3Rp
b24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQpAQCAtMTk1LDE1ICsxOTksNTAgQEAgSklUOjpK
dW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxl
SnVtcCYgYmFkVHlwZSkKICAgICByZXR1cm4gc2xvd0Nhc2VzOwogfQogCitKSVRHZXRCeUlkR2Vu
ZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSnVtcExpc3QmIGRv
bmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykKK3sKKyAgICAvLyBiYXNlOiByZWdUMAorICAg
IC8vIHByb3BlcnR5OiByZWdUMQorICAgIC8vIHNjcmF0Y2g6IHJlZ1QzCisKKyAgICBpbnQgZHN0
ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKworICAgIHNsb3dDYXNlcy5hcHBl
bmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMSkpOworICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNT
eW1ib2woKSkgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RF
cXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+
c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwg
U3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMyk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3Mo
cmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVy
ZS5nZXQoKSkpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIEpTU3RyaW5nOjpvZmZz
ZXRPZlZhbHVlKCkpLCByZWdUMyk7CisgICAgfQorICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNo
UHRyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSkp
OworCisgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCisgICAgICAgIG1fY29kZUJsb2NrLCBD
b2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVy
cygpLAorICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgRG9u
dFNwaWxsKTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisKKyAgICBkb25lQ2Fz
ZXMuYXBwZW5kKGp1bXAoKSk7CisKKyAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwoKTsK
KyAgICBnZW4uc2xvd1BhdGhKdW1wKCkubGluayh0aGlzKTsKKworICAgIENhbGwgY2FsbCA9IGNh
bGxPcGVyYXRpb24oV2l0aFByb2ZpbGUsIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgZHN0LCBn
ZW4uc3R1YkluZm8oKSwgcmVnVDAsIHByb3BlcnR5TmFtZS5pbXBsKCkpOworICAgIGdlbi5yZXBv
cnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7CisgICAgZG9uZUNhc2VzLmFwcGVu
ZChqdW1wKCkpOworCisgICAgcmV0dXJuIGdlbjsKK30KKwogdm9pZCBKSVQ6OmVtaXRTbG93X29w
X2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZDsKLSAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
NF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZhbEluZm87CiAgICAgCi0g
ICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtT
bG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBs
aW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgSnVtcCBub25D
ZWxsID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVj
awogICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCAKQEAgLTIy
NCw3ICsyNjMsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIAogICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIoYmFzZSwgcmVnVDApOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIo
cHJvcGVydHksIHJlZ1QxKTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDAsIHJlZ1QxLCBwcm9maWxlKTsKKyAgICBDYWxs
IGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVn
VDAsIHJlZ1QxLCBieVZhbEluZm8pOwogCiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5
VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1BhdGhUYXJnZXQgPSBzbG93UGF0aDsKICAgICBtX2J5
VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5yZXR1cm5BZGRyZXNz
ID0gY2FsbDsKQEAgLTI2Myw2ICszMDIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZv
ID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogCiAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMSk7CiAgICAgZW1pdEp1bXBTbG93Q2Fz
ZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CkBAIC0yOTksOCArMzM5LDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJh
ZFR5cGUsIG1vZGUsIGRvbmUpKTsKLQorICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5k
KEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFsSW5mbywgbV9ieXRlY29kZU9mZnNldCwgUGF0Y2hh
YmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBwcm9maWxlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVt
cExpc3QgSklUOjplbWl0R2VuZXJpY0NvbnRpZ3VvdXNQdXRCeVZhbChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBJbmRleGluZ1R5cGUgaW5k
ZXhpbmdTaGFwZSkKQEAgLTM5OSw2ICs0MzgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0
X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhcwog
ICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAg
aW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVBy
b2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Cisg
ICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJ
bnN0cnVjdGlvbkluZGV4XS5ieVZhbEluZm87CiAKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8v
IHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwg
YmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjawpAQCAtNDI0LDcgKzQ2NCw3IEBAIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZl
Y3RvcjxTbG93Q2FzCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm9wZXJ0eSwgcmVnVDEp
OwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1QyKTsKICAgICBib29sIGlz
RGlyZWN0ID0gbV9pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoY3VycmVudEluc3RydWN0aW9uLT51
Lm9wY29kZSkgPT0gb3BfcHV0X2J5X3ZhbF9kaXJlY3Q7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9w
ZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0
QnlWYWwsIHJlZ1QwLCByZWdUMSwgcmVnVDIsIHByb2ZpbGUpOworICAgIENhbGwgY2FsbCA9IGNh
bGxPcGVyYXRpb24oaXNEaXJlY3QgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlv
blB1dEJ5VmFsLCByZWdUMCwgcmVnVDEsIHJlZ1QyLCBieVZhbEluZm8pOwogCiAgICAgbV9ieVZh
bENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1BhdGhUYXJnZXQg
PSBzbG93UGF0aDsKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlv
bkluZGV4XS5yZXR1cm5BZGRyZXNzID0gY2FsbDsKQEAgLTk5OSw2ICsxMDM5LDM2IEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkCiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1bmN0
aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYykp
OwogfQogCit2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZh
bEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlWYWxJbmZv
LT5ieXRlY29kZUluZGV4OworCisgICAgSnVtcExpc3QgZG9uZUNhc2VzOworICAgIEp1bXBMaXN0
IHNsb3dDYXNlczsKKworICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuID0gZW1pdEdldEJ5VmFs
V2l0aENhY2hlZElkKGN1cnJlbnRJbnN0cnVjdGlvbiwgcHJvcGVydHlOYW1lLCBkb25lQ2FzZXMs
IHNsb3dDYXNlcyk7CisKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2NvZGVCbG9j
ay0+bV9sb2NrKTsKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCptX3ZtLCAqdGhpcywgbV9j
b2RlQmxvY2spOworICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvd0Nhc2VzLCBDb2RlTG9jYXRpb25M
YWJlbChNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUZyb21FeGVjdXRhYmxlQWRkcmVzcyhy
ZXR1cm5BZGRyZXNzLnZhbHVlKCkpKS5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+cmV0dXJuQWRk
cmVzc1RvU2xvd1BhdGgpKTsKKyAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmVDYXNlcywgYnlWYWxJ
bmZvLT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+YmFkVHlwZUp1bXBUb0Rv
bmUpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNhbGxTaXRlIDogbV9jYWxscykgeworICAgICAg
ICBpZiAoY2FsbFNpdGUudG8pCisgICAgICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGNhbGxTaXRl
LmZyb20sIEZ1bmN0aW9uUHRyKGNhbGxTaXRlLnRvKSk7CisgICAgfQorICAgIGdlbi5maW5hbGl6
ZShwYXRjaEJ1ZmZlcik7CisKKyAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5lID0gRklOQUxJWkVf
Q09ERV9GT1JfU1RVQigKKyAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAorICAgICAg
ICAoIkJhc2VsaW5lIGdldF9ieV92YWwgd2l0aCBjYWNoZWQgcHJvcGVydHkgbmFtZSAnJXMnIHN0
dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCBwcm9wZXJ0eU5hbWUuaW1wbCgpLT51dGY4KCku
ZGF0YSgpLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJldHVybkFkZHJlc3MudmFs
dWUoKSkpOworICAgIGJ5VmFsSW5mby0+Y2FjaGVkSWQgPSBwcm9wZXJ0eU5hbWU7CisgICAgYnlW
YWxJbmZvLT5zdHViSW5mbyA9IGdlbi5zdHViSW5mbygpOworCisgICAgUmVwYXRjaEJ1ZmZlciBy
ZXBhdGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGluayhieVZh
bEluZm8tPm5vdEluZGV4SnVtcCwgQ29kZUxvY2F0aW9uTGFiZWwoYnlWYWxJbmZvLT5zdHViUm91
dGluZS0+Y29kZSgpLmNvZGUoKSkpOworICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9G
dW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZhbEdlbmVy
aWMpKTsKK30KKwogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJbmZvKiBi
eVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSklUQXJyYXlNb2RlIGFy
cmF5TW9kZSkKIHsKICAgICBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uID0gbV9jb2Rl
QmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXg7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNz
MzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMy
XzY0LmNwcAppbmRleCA2MDljYTEzODgyMjdkYjViZGE1MzkyNzUzMDNkYWRkMmQ4YjFjZWJjLi45
NGViNWM2NDMxNGFjMTkzNmE5ZDUzOTg4MjMyMTk3NGQ2ZjI4ZmU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAgLTE0
OSwxMSArMTQ5LDEzIEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
NF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVCbG9j
ay0+YWRkQnlWYWxJbmZvKCk7CiAgICAgCiAgICAgZW1pdExvYWQyKGJhc2UsIHJlZ1QxLCByZWdU
MCwgcHJvcGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCi0gICAgYWRkU2xvd0Nhc2UoYnJhbmNo
MzIoTm90RXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKSk7CiAg
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKKyAgICBQYXRjaGFi
bGVKdW1wIG5vdEluZGV4ID0gcGF0Y2hhYmxlQnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QzLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKTsKKyAgICBhZGRTbG93Q2FzZShub3RJbmRleCk7
CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdUMSwgcHJvZmls
ZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVNYXNrKSwgcmVnVDEpOwog
CkBAIC0xOTIsNyArMTk0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsK
ICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogICAgIAotICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQs
IGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVu
ZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIG5vdElu
ZGV4LCBiYWRUeXBlLCBtb2RlLCBwcm9maWxlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3Qg
SklUOjplbWl0Q29udGlndW91c0xvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRU
eXBlLCBJbmRleGluZ1R5cGUgZXhwZWN0ZWRTaGFwZSkKQEAgLTIzNiwxNiArMjM4LDUxIEBAIEpJ
VDo6SnVtcExpc3QgSklUOjplbWl0QXJyYXlTdG9yYWdlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNo
YWJsZUp1bXAmIGJhZFR5cGUpCiAgICAgCiAgICAgcmV0dXJuIHNsb3dDYXNlczsKIH0KLSAgICAK
KworSklUR2V0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEp1bXBMaXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCit7CisgICAgaW50
IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisKKyAgICAvLyBiYXNlOiB0
YWcocmVnVDEpLCBwYXlsb2FkKHJlZ1QwKQorICAgIC8vIHByb3BlcnR5OiB0YWcocmVnVDMpLCBw
YXlsb2FkKHJlZ1QyKQorICAgIC8vIHNjcmF0Y2g6IHJlZ1Q0CisKKyAgICBzbG93Q2FzZXMuYXBw
ZW5kKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxU
YWcpKSk7CisgICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7CisgICAgICAgIHNsb3dD
YXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBKU0Nl
bGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zeW1ib2xTdHJ1Y3R1cmUuZ2V0KCkpKTsK
KyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5h
bWUoKSksIHJlZ1Q0KTsKKyAgICB9IGVsc2UgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJy
YW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1cmVJ
RE9mZnNldCgpKSwgbV92bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQ
dHIoQWRkcmVzcyhyZWdUMiwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksIHJlZ1Q0KTsKKyAg
ICB9CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1Q0LCBUcnVz
dGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJh
dG9yIGdlbigKKyAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNl
dCksIFJlZ2lzdGVyU2V0OjpzcGVjaWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdz
OjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIERvbnRTcGls
bCk7CisgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOworCisgICAgZG9uZUNhc2VzLmFw
cGVuZChqdW1wKCkpOworCisgICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAg
Z2VuLnNsb3dQYXRoSnVtcCgpLmxpbmsodGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3Bl
cmF0aW9uKFdpdGhQcm9maWxlLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0
dWJJbmZvKCksIHJlZ1QxLCByZWdUMCwgcHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJl
cG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJlZ2luLCBjYWxsKTsKKyAgICBkb25lQ2FzZXMuYXBw
ZW5kKGp1bXAoKSk7CisKKyAgICByZXR1cm4gZ2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kOwotICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlv
bls0XS51LmFycmF5UHJvZmlsZTsKLSAgICAKLSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHBy
b3BlcnR5IGludDMyIGNoZWNrCisgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZhbEluZm87CisKICAgICBs
aW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCisg
ICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogCiAgICAgSnVt
cCBub25DZWxsID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJh
eSBjaGVjawpAQCAtMjY1LDcgKzMwMiw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlf
dmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAg
CiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0TG9hZChwcm9wZXJ0
eSwgcmVnVDMsIHJlZ1QyKTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIsIHByb2Zp
bGUpOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPcHRp
bWl6ZSwgZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMiwgYnlWYWxJbmZvKTsKIAogICAg
IG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRo
VGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5z
dHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0yNzksNiArMzE2LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAg
ICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIEFy
cmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmls
ZTsKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8o
KTsKICAgICAKICAgICBlbWl0TG9hZDIoYmFzZSwgcmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVn
VDMsIHJlZ1QyKTsKICAgICAKQEAgLTMxNCw3ICszNTIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9w
dXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFi
ZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBl
bmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwg
ZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRp
b25JbmZvKGJ5VmFsSW5mbywgbV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRU
eXBlLCBtb2RlLCBwcm9maWxlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0
R2VuZXJpY0NvbnRpZ3VvdXNQdXRCeVZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
LCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdTaGFwZSkKQEAg
LTQxOSw2ICs0NTcsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGludCBwcm9wZXJ0
eSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHZhbHVlID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZvKiBi
eVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4
XS5ieVZhbEluZm87CiAgICAgCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBp
bnQzMiBjaGVjawogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBi
YXNlIGNlbGwgY2hlY2sKQEAgLTQ1OCw3ICs0OTcsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
cHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nh
cwogICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMCwgcmVnVDEpOwogICAgIGFkZENhbGxBcmd1bWVu
dChyZWdUMSk7CiAgICAgYWRkQ2FsbEFyZ3VtZW50KHJlZ1QwKTsKLSAgICBhZGRDYWxsQXJndW1l
bnQoVHJ1c3RlZEltbVB0cihwcm9maWxlKSk7CisgICAgYWRkQ2FsbEFyZ3VtZW50KFRydXN0ZWRJ
bW1QdHIoYnlWYWxJbmZvKSk7CiAgICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRp
b25DaGVjayhpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0
QnlWYWwpOwogI2Vsc2UKICAgICAvLyBUaGUgcmVnaXN0ZXIgc2VsZWN0aW9uIGJlbG93IGlzIGNo
b3NlbiB0byByZWR1Y2UgcmVnaXN0ZXIgc3dhcHBpbmcgb24gQVJNLgpAQCAtNDY2LDcgKzUwNSw3
IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDIsIHJl
Z1QxKTsKICAgICBlbWl0TG9hZChwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QwKTsKICAgICBlbWl0TG9h
ZCh2YWx1ZSwgcmVnVDUsIHJlZ1Q0KTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKGlz
RGlyZWN0ID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwgOiBvcGVyYXRpb25QdXRCeVZhbCwgcmVn
VDIsIHJlZ1QxLCByZWdUMywgcmVnVDAsIHJlZ1Q1LCByZWdUNCwgcHJvZmlsZSk7CisgICAgQ2Fs
bCBjYWxsID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFs
IDogb3BlcmF0aW9uUHV0QnlWYWwsIHJlZ1QyLCByZWdUMSwgcmVnVDMsIHJlZ1QwLCByZWdUNSwg
cmVnVDQsIGJ5VmFsSW5mbyk7CiAjZW5kaWYKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9b
bV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCmluZGV4IGU1NzkwZDc4NzIyNmJlYTc2MDI0
YzlkMWQ2NmE2NzYwZjY0ZGU1YTIuLjgzZjVkZTI0ODUyYmMzNzhlZTBhNzcwMzlmNDYzMTgyNWZk
ZGRiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC03OSw2ICs3
OSw4IEBAIGNsYXNzIFN5bWJvbCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIEpTT2JqZWN0
KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIGRvdWJs
ZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKIAorICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0
T2ZQcml2YXRlTmFtZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTeW1ib2wsIG1fcHJpdmF0
ZU5hbWUpOyB9CisKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctY29uc3RydWN0b3IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY29uc3RydWN0b3IuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWM1ODUxNjAyZTkzNGIzMzY2OGFlZDJjZmY0ZGRjYjc4NzZlZTE4OAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qcwpAQCAtMCwwICsxLDIzIEBACit2YXIgc3ltYm9sID0g
IkBAc3BlY2llcyI7CitmdW5jdGlvbiBIZWxsbygpIHsKK30KKworT2JqZWN0LmRlZmluZVByb3Bl
cnR5KEhlbGxvLCBzeW1ib2wsIHsKKyAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0
dXJuIHRoaXM7CisgICAgfQorfSk7CisKK0hlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0
aW9uICgpIHsKKyAgICByZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3Jbc3ltYm9sXSgpOworfTsK
KworZnVuY3Rpb24gb2soKSB7CisgICAgdmFyIG9iamVjdCA9IG5ldyBIZWxsbygpOworICAgIGlm
ICghKG9iamVjdC5nZW5lcmF0ZSgpIGluc3RhbmNlb2YgSGVsbG8pKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoImJhZCBpbnN0YW5jZSIpOworfQorbm9JbmxpbmUob2spOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0LmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWV4aXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFhMjYyZDY0YTY2MTQ5NjQ2NjlhYjc0Y2IyZjAxZmE0ZWQ4
MDJmNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0LmpzCkBAIC0wLDAgKzEsMzQgQEAKK2Z1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBl
Y3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwor
fQorCitmdW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVj
dFtuYW1lXTsKK30KK25vSW5saW5lKGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3RyMSgpCit7
CisgICAgcmV0dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIxKTsKKworZnVuY3Rpb24g
Z2V0U3RyMigpCit7CisgICAgcmV0dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIyKTsK
KwordmFyIG9iamVjdCA9IHsKKyAgICBoZWxsbzogNDIKK307CisKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMTAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/
IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwg
eyB0b1N0cmluZygpIHsgcmV0dXJuICdoZWxsbyc7IH0gfSksIDQyKTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIg
PT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7CitzaG91bGRCZShnZXRCeVZhbChv
YmplY3QsIHsgdG9TdHJpbmcoKSB7IHJldHVybiAnaGVsbG8nOyB9IH0pLCA0Mik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctZ2VuZXJhdGVkLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODEzYTdlMTQw
ZDM4NjY1M2ZiYzM1NGM1MGVhZDU4ZTEyMTlkM2E0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVy
YXRlZC5qcwpAQCAtMCwwICsxLDMzIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2Jq
ZWN0LCBuYW1lKQoreworICAgIHJldHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRC
eVZhbCk7CisKK3ZhciB2YWx1ZSA9ICdsbyc7CisKK2Z1bmN0aW9uIGdldFN0cjEoKQoreworICAg
IHJldHVybiAiaGVsIiArIHZhbHVlOworfQorbm9JbmxpbmUoZ2V0U3RyMSk7CisKK2Z1bmN0aW9u
IGdldFN0cjIoKQoreworICAgIHJldHVybiAiaGVsbG8iOworfQorbm9JbmxpbmUoZ2V0U3RyMik7
CisKK3ZhciBvYmplY3QgPSB7CisgICAgaGVsbG86IDQyLAorICAgIHdvcmxkOiA1MAorfTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFsKG9i
amVjdCwgaSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7CitzaG91bGRC
ZShnZXRCeVZhbChvYmplY3QsICd3b3JsZCcpLCA1MCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2V0dGVyLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWdldHRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NThlYzBhODZkYjk1NGQ4NDdmNmI4Zjc2MmQyOTZi
ZWRjZWIxYmY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdldHRlci5qcwpAQCAtMCwwICsxLDE2IEBA
CisKK3ZhciBvYmplY3QgPSB7CisgICAgZ2V0IGhlbGxvKCkgeworICAgICAgICByZXR1cm4gNDI7
CisgICAgfQorfTsKKworZnVuY3Rpb24gb2soKSB7CisgICAgdmFyIHZhbHVlID0gJ2hlbGxvJzsK
KyAgICBpZiAob2JqZWN0W3ZhbHVlXSArIDIwICE9PSA2MikKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCk7Cit9Citub0lubGluZShvayk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsr
aSkKKyAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYjMzZDli
ZWNiMTRhZDIwNWI4NzU1YmRmZTFmOTViYjM5N2JiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanMK
QEAgLTAsMCArMSwzMSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewor
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jh
ZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFt
ZSkKK3sKKyAgICByZXR1cm4gb2JqZWN0W25hbWVdOworfQorbm9JbmxpbmUoZ2V0QnlWYWwpOwor
CitmdW5jdGlvbiBnZXRTdHIxKCkKK3sKKyAgICByZXR1cm4gImhlbGxvIjsKK30KK25vSW5saW5l
KGdldFN0cjEpOworCitmdW5jdGlvbiBnZXRTdHIyKCkKK3sKKyAgICByZXR1cm4gImhlbGxvIjsK
K30KK25vSW5saW5lKGdldFN0cjIpOworCit2YXIgb2JqZWN0ID0geworICAgIGhlbGxvOiA0MiwK
KyAgICB3b3JsZDogNTAKK307CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAg
ICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0
U3RyMigpKSwgNDIpOworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCAnd29ybGQnKSwgNTApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI4OTVjMjY0NTFkMjU3YTk3YTJkYjNlYzU4OTI5YjlkNTUzNDMyNTEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtY29uc3RydWN0b3IuanMKQEAgLTAsMCArMSwyMyBAQAordmFyIHN5bWJvbCA9IFN5bWJv
bCgpOworZnVuY3Rpb24gSGVsbG8oKSB7Cit9CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShIZWxs
bywgc3ltYm9sLCB7CisgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiB0aGlz
OworICAgIH0KK30pOworCitIZWxsby5wcm90b3R5cGUuZ2VuZXJhdGUgPSBmdW5jdGlvbiAoKSB7
CisgICAgcmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yW3N5bWJvbF0oKTsKK307CisKK2Z1bmN0
aW9uIG9rKCkgeworICAgIHZhciBvYmplY3QgPSBuZXcgSGVsbG8oKTsKKyAgICBpZiAoIShvYmpl
Y3QuZ2VuZXJhdGUoKSBpbnN0YW5jZW9mIEhlbGxvKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJiYWQgaW5zdGFuY2UiKTsKK30KK25vSW5saW5lKG9rKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKQorICAgIG9rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZXhpdC5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMwY2RjYjY3NmQ5NGU0NmI2YzEwMWE4YTc3ZDAwYjY2NDRhOGMxMGIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtZXhpdC5qcwpAQCAtMCwwICsxLDM4IEBACit2YXIgc3ltYm9sMSA9
IFN5bWJvbCgpOwordmFyIHN5bWJvbDIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHsg
W3N5bWJvbDFdOiA0MiB9KVswXTsKKworZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIGdldEJ5VmFsKG9iamVj
dCwgbmFtZSkKK3sKKyAgICByZXR1cm4gb2JqZWN0W25hbWVdOworfQorbm9JbmxpbmUoZ2V0QnlW
YWwpOworCitmdW5jdGlvbiBnZXRTeW0xKCkKK3sKKyAgICByZXR1cm4gc3ltYm9sMTsKK30KK25v
SW5saW5lKGdldFN5bTEpOworCitmdW5jdGlvbiBnZXRTeW0yKCkKK3sKKyAgICByZXR1cm4gc3lt
Ym9sMjsKK30KK25vSW5saW5lKGdldFN5bTIpOworCit2YXIgb2JqZWN0ID0geworICAgIFtzeW1i
b2wxXTogNDIsCisgICAgaGVsbG86IDUwCit9OworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsg
KytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0x
KCkgOiBnZXRTeW0yKCkpLCA0Mik7CitzaG91bGRCZShnZXRCeVZhbChvYmplY3QsICdoZWxsbycp
LCA1MCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShn
ZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIp
Oworc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCAnaGVsbG8nKSwgNTApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWdldHRlci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1nZXR0ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzAzNWU0YjAzOGE0NjVkNDNlYmMy
OGU1Y2Y0ODE5YjU5ZTY2Njg3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1nZXR0ZXIuanMKQEAgLTAs
MCArMSwyMyBAQAorCit2YXIgb2JqZWN0ID0geworICAgIGdldCBoZWxsbygpIHsKKyAgICAgICAg
cmV0dXJuIDQyOworICAgIH0KK307CisKK3ZhciBzeW1ib2wgPSBTeW1ib2woKTsKKworT2JqZWN0
LmRlZmluZVByb3BlcnR5KG9iamVjdCwgc3ltYm9sLCB7CisgICAgZ2V0OiBmdW5jdGlvbiAoKSB7
CisgICAgICAgIHJldHVybiA0MjsKKyAgICB9Cit9KTsKKworZnVuY3Rpb24gb2soKSB7CisgICAg
aWYgKG9iamVjdFtzeW1ib2xdICsgMjAgIT09IDYyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
KTsKK30KK25vSW5saW5lKG9rKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQor
ICAgIG9rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM4MzRlYjI2YmUz
MjZlMWM5MTg0OTFmMGUxOWI3ZmEzOGJiMDkwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC5qcwpAQCAt
MCwwICsxLDMzIEBACit2YXIgc3ltYm9sMSA9IFN5bWJvbCgpOwordmFyIHN5bWJvbDIgPSBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHsgW3N5bWJvbDFdOiA0MiB9KVswXTsKKworZnVuY3Rp
b24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9
CisKK2Z1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKK3sKKyAgICByZXR1cm4gb2JqZWN0
W25hbWVdOworfQorbm9JbmxpbmUoZ2V0QnlWYWwpOworCitmdW5jdGlvbiBnZXRTeW0xKCkKK3sK
KyAgICByZXR1cm4gc3ltYm9sMTsKK30KK25vSW5saW5lKGdldFN5bTEpOworCitmdW5jdGlvbiBn
ZXRTeW0yKCkKK3sKKyAgICByZXR1cm4gc3ltYm9sMjsKK30KK25vSW5saW5lKGdldFN5bTIpOwor
Cit2YXIgb2JqZWN0ID0geworICAgIFtzeW1ib2wxXTogNDIsCisgICAgaGVsbG86IDUwCit9Owor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwo
b2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN5bTEoKSA6IGdldFN5bTIoKSksIDQyKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA1OGQwNDY1MjVlOGEyMGU2ZTJmMjVhZDZlNGY5NzQ4ZjQxMTFjMTNmLi4wYjFjNzFkMzlmOTE4
NTNjYTY1MjdmMTZiNDY2ZDFkZDdjMTM0MzEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODMgQEAKKzIwMTUt
MDgtMTAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAg
SW50cm9kdWNlIGdldF9ieV9pZCBsaWtlIElDIGludG8gZ2V0X2J5X3ZhbCB3aGVuIHRoZSBnaXZl
biBuYW1lIGlzIFN0cmluZyBvciBTeW1ib2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzQ4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzeW50aGV0aWMgYmVuY2htYXJrcyB0aGF0IHJlcGxhY2Vz
IG5vcm1hbCBwcm9wZXJ0eSBsb2FkIHdpdGggc3ltYm9sL3N0cmluZyBrZXllZCBsb2FkLgorCisg
ICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24u
aHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuaHRtbDogQWRkZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1z
ZWxmLW9yLXByb3RvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1w
cm90by1vci1zZWxmLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJv
bS10cnktYmxvY2suanM6IEFkZGVkLgorICAgICAgICAoQSk6CisgICAgICAgIChCKToKKyAgICAg
ICAgKEMpOgorICAgICAgICAoRCk6CisgICAgICAgIChFKToKKyAgICAgICAgKEYpOgorICAgICAg
ICAoRyk6CisgICAgICAgIChmb28pOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXByb3RvLW9yLXNlbGYuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAg
KGJhcik6CisgICAgICAgIChGb28pOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZS5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoRm9vKToKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2su
anM6IEFkZGVkLgorICAgICAgICAoQSk6CisgICAgICAgIChCKToKKyAgICAgICAgKEMpOgorICAg
ICAgICAoRCk6CisgICAgICAgIChFKToKKyAgICAgICAgKEYpOgorICAgICAgICAoRyk6CisgICAg
ICAgIChmb28pOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3Rv
LW9yLXNlbGYuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAg
ICAgIChGb28pOgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5qczogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6Cisg
ICAgICAgIChiYXIpOgorICAgICAgICAoRm9vKToKKwogMjAxNS0wOC0xMCAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNh
Y2hlL2Rpc2stY2FjaGUtdmFsaWRhdGlvbi5odG1sIGhhcyB0b28gbWFueSBzdWJ0ZXN0cwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjY2Y0M2FmYTA3
ZDNjOGUwZjE3ODkyZWVkYTc5MjdlMjFiODE4YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRp
b24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWIzN2M1MDAwMGMwYTFkMWUyZjI2Mjg1N2Y3OWI0ZWM0MTQ3ZTBjOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ4MmM0NTBkOTU1YWU5OTY0ZWUyNWJm
ZjJiNWZjMGNiNjZmNDUzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTllZjE0MTU3
NTg0Y2E2MTYwNjQ2ODc1OThjZmJkNGRiNzk3ZmVmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnkt
YmxvY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxNmE2NjcyOTcwMzZhNDVjNWYzMmI3MDFj
MGJjN2VmYjJmYmRhMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWlu
LWZyb20tdHJ5LWJsb2NrCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5v
IGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU2Yzk2M2EwMTJiMDJjZjM2MTQ0NWY2N2M2ZWNiZDhjZDE4YjBiMmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWVjMGZjNzBlZTdhMjQ1NTVmYjBmZDhh
YmI2YTNlNDZhN2ZkNTA0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzNmY1OGQ0MTU3YjUx
YmI5ODUzODJkYzgxYTZkOTQ4ZmI5ZGIwMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9y
LXNlbGYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlZjkyYzkw
NzljYzJkYmRkYWJlNGNiNjUzYjMyM2ZmZmU1Mzk3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctcHJvdG8tb3Itc2VsZgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzZhYjYxMWJkNDVkZTMwNDI2ZjZiYjU0YmU2OTUzOTBiNzMwYTA4NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90
by1vci1zZWxmLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1z
ZWxmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjFhYTU3ZWNh
YjZhMWExYTc4NGRiNWU4ODQyZmUyYmFkYjg1YzI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQzNzUxYjY0ZTgyMmFiMmRlYzQ3YWQ5YTlmNDY2OGUzNzllMWYw
NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDQyMTcxMzRmOTgyODkwNDM5NTY4MmY4ODcwNmQyYzY3YWQ4OGI0NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1z
ZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1sIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMDRhNmI5OWM1YjVlMzA2ZDgzYjZmMjUzNDIzYTBmZjgxMzU4ZTA3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLXNlbGYtb3ItcHJvdG8uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxMDBjNWQ4YjhmOGNl
Mjg1NjFjN2I1MTBhNzgzZDY1MTI1M2JkZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24g
dGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDM5MGVkOTUyY2VlZTJhMjBlZmVjNGRiMTA5MzUzYjc3M2IyOGZiYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ4MmM0NTBkOTU1YWU5OTY0ZWUyNWJmZjJi
NWZjMGNiNjZmNDUzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTllZjE0MTU3NTg0
Y2E2MTYwNjQ2ODc1OThjZmJkNGRiNzk3ZmVmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxv
Y2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NTRiYjBlOGU1NjhjOGQwMjA2ZTY0OWU1Mjk3
NGIzZjllNDJhNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZy
b20tdHJ5LWJsb2NrCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4
Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc5NzVmOTkyODBlNzIzMzVjMmI1NGQzZDkzZjA4NjExODMxOTc0NDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDMxNDk0YTliNDU2MmY5ZTE2OTA0Nzg5N2Fi
NjA2MzVkZjExNDg1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5YmZhY2E3YTVlNGI3Mjg4
ZWNlZDI2ZTg1MzYwZDU2ZTA2N2M3YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNl
bGYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNWQyNjJjZWE1
MjA1Y2Y1ZjNjYjYzN2E3ODhkYTMyYjBlM2E2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtcHJvdG8tb3Itc2VsZgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBu
byBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTU4MTVjZTMzZThhYzc3NTEwNmRhYjJjMmE3YjQyNjE0ZjkzOGNmNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1v
ci1zZWxmLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxm
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDYwNWMwNzYxYzIw
OGJlZmQ2MjllYmQyMmE0ZmRmOWZlODQ4YzNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY1Y2U0NjI0NWU4ODZiZTI3ZjUxMDY2YTUxNzNjNDk1MWYyYTIwZDcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5o
dG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDc2NjkxMDhiYWMxY2U2ZDFlYTg1MDgwMzQ0NTM4MWNkYzVkYWY2ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxm
LW9yLXByb3RvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5odG1sIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mZjVmM2Q3MDQ4MWFjY2FhZjA1YTAwMDA0YTVmZTUyOTZhMzJlYmRhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LXNlbGYtb3ItcHJvdG8uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTI1ODlmMWViYjhjMTJkZTFjYTAzZjgxMjJmZDQyMjU0MzEwMTc0NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMK
QEAgLTAsMCArMSwxNCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gJ2EnLCBsID0gJ2wn
OworICAgIHZhciBvID0ge1thXToxfTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKKyAg
ICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkg
eworICAgICAgICByZXN1bHQgXj0gb1thXTsKKyAgICAgICAgdmFyIHRtcCA9IG87CisgICAgICAg
IG8gPSBwOworICAgICAgICBwID0gdG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDApCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI1OTQw
MWQ3ZjU3Mjg0NzE0ZmU3ZDNkNWUwNDUyMTFiZDQ3YzE1MgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpAQCAtMCwwICsxLDE0IEBA
CisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSAnYScsIGIgPSAnYicsIGMgPSAnYycsIGQgPSAn
ZCcsIGUgPSAnZScsIGYgPSAnZicsIGcgPSAnZycsIGggPSAnaCcsIGkgPSAnaScsIGogPSAnaics
IGsgPSAnaycsIGwgPSAnbCc7CisgICAgdmFyIG8gPSB7W2FdOjEsIFtiXToyLCBbY106MywgW2Rd
OjQsIFtlXTo1LCBbZl06NiwgW2ddOjcsIFtoXTo4LCBbaV06OSwgW2pdOjEwLCBba106MTF9Owor
ICAgIHZhciBwID0ge1thXToyLCBbYl06MywgW2NdOjQsIFtkXTo1LCBbZV06NiwgW2ZdOjcsIFtn
XTo4LCBbaF06OSwgW2ldOjEwLCBbal06MTEsIFtrXToxMiwgW2xdOjEzfTsKKyAgICB2YXIgcmVz
dWx0ID0gMDsKKyAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRl
eCkgeworICAgICAgICByZXN1bHQgKz0gb1thXSBeIG9bYl0gXiBvW2NdIF4gb1tkXSBeIG9bZV0g
XiBvW2ZdIF4gb1tnXSBeIG9baF0gXiBvW2ldIF4gb1tqXSBeIG9ba107CisgICAgICAgIHZhciB0
bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHRtcDsKKyAgICB9CisgICAgaWYg
KHJlc3VsdCAhPSA2NTAwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcyBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctY2hhaW4tZnJvbS10cnktYmxvY2suanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY5NzBmZWUyNGIwZWY2NTUy
OTJjYWVkYTQxYzZiZWIwMGUwZDQyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10
cnktYmxvY2suanMKQEAgLTAsMCArMSw0OSBAQAordmFyIGYgPSAnZic7CisKK2Z1bmN0aW9uIEEo
KSB7IH0KKworQS5wcm90b3R5cGUgPSB7W2ZdOjQyfTsKKworZnVuY3Rpb24gQigpIHsgfQorCitC
LnByb3RvdHlwZSA9IG5ldyBBKCk7CisKK2Z1bmN0aW9uIEMoKSB7IH0KKworQy5wcm90b3R5cGUg
PSBuZXcgQigpOworCitmdW5jdGlvbiBEKCkgeyB9CisKK0QucHJvdG90eXBlID0gbmV3IEMoKTsK
KworZnVuY3Rpb24gRSgpIHsgfQorCitFLnByb3RvdHlwZSA9IG5ldyBEKCk7CisKK2Z1bmN0aW9u
IEYoKSB7IH0KKworRi5wcm90b3R5cGUgPSBuZXcgRSgpOworCitmdW5jdGlvbiBHKCkgeyB9CisK
K0cucHJvdG90eXBlID0gbmV3IEYoKTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICB0cnkgewor
ICAgICAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
OyArK2kpCisgICAgICAgICAgICByZXN1bHQgKz0gb1tmXTsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVybiA1MjsKKyAgICB9Cit9CisKK3Zh
ciByZXN1bHQgPSAwOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICByZXN1
bHQgKz0gZm9vKG5ldyBHKCkpOworCitpZiAocmVzdWx0ICE9IDQyMDAwMDAwKQorICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYjg4YWE1YmJhMTJlZjAzOTlmODFmOTA0Y2ZkYmU0OGQzOGQ5YzJiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKQEAgLTAs
MCArMSw5IEBACisoZnVuY3Rpb24oKSB7CisgICAgdmFyIGEgPSAnYScsIGIgPSAnYicsIGMgPSAn
YycsIGQgPSAnZCcsIGUgPSAnZScsIGYgPSAnZicsIGcgPSAnZycsIGggPSAnaCcsIGkgPSAnaScs
IGogPSAnaicsIGsgPSAnayc7CisgICAgdmFyIG8gPSB7W2FdOjEsIFtiXToyLCBbY106MywgW2Rd
OjQsIFtlXTo1LCBbZl06NiwgW2ddOjcsIFtoXTo4LCBbaV06OSwgW2pdOjEwLCBba106MTF9Owor
ICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAxMDAw
MDAwOyArK2luZGV4KQorICAgICAgICByZXN1bHQgKz0gb1thXSBeIG9bYl0gfCBvW2NdIF4gb1tk
XSAmIG9bZV0gXiBvW2ZdIHwgb1tnXSBeIG9baF0gJiBvW2ldIF4gb1tqXSB8IG9ba107CisgICAg
aWYgKHJlc3VsdCAhPSAxNTAwMDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
OiAiICsgcmVzdWx0OworfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
cHJvdG8tb3Itc2VsZi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjc0OTNiOThmNjEwZDFjNGFkOWI4M2VlY2Y2
MWE2N2Y5ZWNhYWI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzCkBAIC0w
LDAgKzEsMjQgQEAKK3ZhciBmID0gJ2YnOworCitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVy
biBvW2ZdOworfQorCitmdW5jdGlvbiBiYXIoYSkgeworICAgIHZhciByZXN1bHQgPSAwOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDAwMDsgKytpKSB7CisgICAgICAgIGZvciAodmFyIGog
PSAwOyBqIDwgYS5sZW5ndGg7ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBmb28oYVtqXSk7
CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIEZvbygpIHsKK30KKwor
Rm9vLnByb3RvdHlwZVtmXSA9IDQyOworCit2YXIgcmVzdWx0ID0gYmFyKFtuZXcgRm9vKCksIHtb
Zl06MjR9XSk7CisKK2lmIChyZXN1bHQgIT0gMTMyMDAwMDAwKQorICAgIHRocm93ICJFcnJvciBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MWRjZTNjMjU3ZDhkOWQ4
MDRlNTQwYTgwOGY2ODRiNDk3ZjMyOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKQEAgLTAsMCArMSwyMiBAQAor
KGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gJ2EnOworICAgIHZhciBsID0gJ2wnOworICAgIHZh
ciBiID0gJ2InOworICAgIHZhciBjID0gJ2MnOworCisgICAgdmFyIG8gPSB7W2FdOjF9OworICAg
IHZhciBwID0ge1thXToyLCBbbF06MTN9OworICAgIHZhciBxID0ge1thXTozLCBbYl06M307Cisg
ICAgdmFyIHIgPSB7W2FdOjQsIFtjXTo1fTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgeworICAgICAgICByZXN1bHQgXj0gb1thXTsK
KyAgICAgICAgdmFyIHRtcCA9IG87CisgICAgICAgIG8gPSBwOworICAgICAgICBwID0gcTsKKyAg
ICAgICAgcSA9IHI7CisgICAgICAgIHIgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0g
MCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45YmVjMTA3Y2E3ZmEzODBmMWJjOTZlZjdlOWFlM2FmY2Q1MTE3MmM4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpzCkBAIC0wLDAgKzEsMjQgQEAKK3ZhciBmID0g
J2YnOworCitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvW2ZdOworfQorCitmdW5jdGlv
biBiYXIoYSkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MjAwMDAwMDsgKytpKSB7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYS5sZW5ndGg7ICsr
aikKKyAgICAgICAgICAgIHJlc3VsdCArPSBmb28oYVtqXSk7CisgICAgfQorICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIEZvbygpIHsKK30KKworRm9vLnByb3RvdHlwZVtmXSA9IDQy
OworCit2YXIgcmVzdWx0ID0gYmFyKFt7W2ZdOjI0fSwgbmV3IEZvbygpXSk7CisKK2lmIChyZXN1
bHQgIT0gMTMyMDAwMDAwKQorICAgIHRocm93ICJFcnJvciBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTg1ZDMyYWY1MDMyY2QwNDU4NTc4NDk1YzM3Nzk5MjU5ODVmMzA3ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUuanMKQEAgLTAsMCArMSwxNCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0g
U3ltYm9sKCksIGwgPSBTeW1ib2woKTsKKyAgICB2YXIgbyA9IHtbYV06MX07CisgICAgdmFyIHAg
PSB7W2FdOjIsIFtsXToxM307CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07CisgICAgICAg
IHZhciB0bXAgPSBvOworICAgICAgICBvID0gcDsKKyAgICAgICAgcCA9IHRtcDsKKyAgICB9Cisg
ICAgaWYgKHJlc3VsdCAhPSAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZiYmU5NzFiNjE2MzU5NGNlMjA0M2UyNzk1NTAwN2U4MzBiMDViOGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24uanMKQEAgLTAsMCArMSwxNCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gU3ltYm9s
KCksIGIgPSBTeW1ib2woKSwgYyA9IFN5bWJvbCgpLCBkID0gU3ltYm9sKCksIGUgPSBTeW1ib2wo
KSwgZiA9IFN5bWJvbCgpLCBnID0gU3ltYm9sKCksIGggPSBTeW1ib2woKSwgaSA9IFN5bWJvbCgp
LCBqID0gU3ltYm9sKCksIGsgPSBTeW1ib2woKSwgbCA9IFN5bWJvbCgpOworICAgIHZhciBvID0g
e1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwg
W2ldOjksIFtqXToxMCwgW2tdOjExfTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2JdOjMsIFtjXTo0
LCBbZF06NSwgW2VdOjYsIFtmXTo3LCBbZ106OCwgW2hdOjksIFtpXToxMCwgW2pdOjExLCBba106
MTIsIFtsXTogMTN9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGluZGV4ID0g
MDsgaW5kZXggPCAxMDAwMDAwOyArK2luZGV4KSB7CisgICAgICAgIHJlc3VsdCArPSBvW2FdIF4g
b1tiXSBeIG9bY10gXiBvW2RdIF4gb1tlXSBeIG9bZl0gXiBvW2ddIF4gb1toXSBeIG9baV0gXiBv
W2pdIF4gb1trXTsKKyAgICAgICAgdmFyIHRtcCA9IG87CisgICAgICAgIG8gPSBwOworICAgICAg
ICBwID0gdG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDY1MDAwMDApCisgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZjhhYzc4YTg2MDQzMGRiNjdhY2M0ZWUzNzcwZDMyNzMzODAyZTFlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcwpAQCAtMCwwICsxLDQ5IEBACit2
YXIgZiA9IFN5bWJvbCgiQ29jb2EiKTsKKworZnVuY3Rpb24gQSgpIHsgfQorCitBLnByb3RvdHlw
ZSA9IHtbZl06NDJ9OworCitmdW5jdGlvbiBCKCkgeyB9CisKK0IucHJvdG90eXBlID0gbmV3IEEo
KTsKKworZnVuY3Rpb24gQygpIHsgfQorCitDLnByb3RvdHlwZSA9IG5ldyBCKCk7CisKK2Z1bmN0
aW9uIEQoKSB7IH0KKworRC5wcm90b3R5cGUgPSBuZXcgQygpOworCitmdW5jdGlvbiBFKCkgeyB9
CisKK0UucHJvdG90eXBlID0gbmV3IEQoKTsKKworZnVuY3Rpb24gRigpIHsgfQorCitGLnByb3Rv
dHlwZSA9IG5ldyBFKCk7CisKK2Z1bmN0aW9uIEcoKSB7IH0KKworRy5wcm90b3R5cGUgPSBuZXcg
RigpOworCitmdW5jdGlvbiBmb28obykgeworICAgIHRyeSB7CisgICAgICAgIHZhciByZXN1bHQg
PSAwOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvW2ZdOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgcmV0dXJuIDUyOworICAgIH0KK30KKwordmFyIHJlc3VsdCA9IDA7CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKQorICAgIHJlc3VsdCArPSBmb28obmV3IEcoKSk7
CisKK2lmIChyZXN1bHQgIT0gNDIwMDAwMDApCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
OiAiICsgcmVzdWx0OworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkNTlm
ZDhlMGJiOTkxNGVlZDZiZjRlZWQxNTUwMGM0OGYyYzQ0MmEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpAQCAtMCwwICsxLDkgQEAKKyhmdW5jdGlv
bigpIHsKKyAgICB2YXIgYSA9IFN5bWJvbCgpLCBiID0gU3ltYm9sKCksIGMgPSBTeW1ib2woKSwg
ZCA9IFN5bWJvbCgpLCBlID0gU3ltYm9sKCksIGYgPSBTeW1ib2woKSwgZyA9IFN5bWJvbCgpLCBo
ID0gU3ltYm9sKCksIGkgPSBTeW1ib2woKSwgaiA9IFN5bWJvbCgpLCBrID0gU3ltYm9sKCk7Cisg
ICAgdmFyIG8gPSB7W2FdOjEsIFtiXToyLCBbY106MywgW2RdOjQsIFtlXTo1LCBbZl06NiwgW2dd
OjcsIFtoXTo4LCBbaV06OSwgW2pdOjEwLCBba106MTF9OworICAgIHZhciByZXN1bHQgPSAwOwor
ICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAxMDAwMDAwOyArK2luZGV4KQorICAgICAg
ICByZXN1bHQgKz0gb1thXSBeIG9bYl0gfCBvW2NdIF4gb1tkXSAmIG9bZV0gXiBvW2ZdIHwgb1tn
XSBeIG9baF0gJiBvW2ldIF4gb1tqXSB8IG9ba107CisgICAgaWYgKHJlc3VsdCAhPSAxNTAwMDAw
MCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMmY4MmFiMjY4YTczMjkzNzA4NTc2YmM3ODA2ZWNhNjdiNmFlYjhkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmpzCkBAIC0wLDAgKzEsMjQgQEAKK3ZhciBmID0g
U3ltYm9sKCJDb2NvYSIpOworCitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvW2ZdOwor
fQorCitmdW5jdGlvbiBiYXIoYSkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMjAwMDAwMDsgKytpKSB7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwg
YS5sZW5ndGg7ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBmb28oYVtqXSk7CisgICAgfQor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIEZvbygpIHsKK30KKworRm9vLnByb3Rv
dHlwZVtmXSA9IDQyOworCit2YXIgcmVzdWx0ID0gYmFyKFtuZXcgRm9vKCksIHtbZl06MjR9XSk7
CisKK2lmIChyZXN1bHQgIT0gMTMyMDAwMDAwKQorICAgIHRocm93ICJFcnJvciBiYWQgcmVzdWx0
OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1ODM2MmFkZWE3MGFiODIwNGRlNWQ1NWI5
ZTRjNTY4YzExMGQwNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKQEAgLTAsMCArMSwyMiBAQAorKGZ1bmN0aW9u
KCkgeworICAgIHZhciBhID0gU3ltYm9sKCJDb2NvYSIpOworICAgIHZhciBsID0gU3ltYm9sKCk7
CisgICAgdmFyIGIgPSBTeW1ib2woKTsKKyAgICB2YXIgYyA9IFN5bWJvbCgpOworCisgICAgdmFy
IG8gPSB7W2FdOjF9OworICAgIHZhciBwID0ge1thXToyLCBbbF06MTN9OworICAgIHZhciBxID0g
e1thXTozLCBbYl06M307CisgICAgdmFyIHIgPSB7W2FdOjQsIFtjXTo1fTsKKyAgICB2YXIgcmVz
dWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgeworICAgICAg
ICByZXN1bHQgXj0gb1thXTsKKyAgICAgICAgdmFyIHRtcCA9IG87CisgICAgICAgIG8gPSBwOwor
ICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHI7CisgICAgICAgIHIgPSB0bXA7CisgICAgfQor
ICAgIGlmIChyZXN1bHQgIT0gMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qcyBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2Vs
Zi1vci1wcm90by5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDA4YzM2NDEyMGJmMmFhNDhhZDc0YWEzYjVhNmZj
N2I5NjdiZmJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzCkBAIC0wLDAg
KzEsMjQgQEAKK3ZhciBmID0gU3ltYm9sKCdDb2NvYScpOworCitmdW5jdGlvbiBmb28obykgewor
ICAgIHJldHVybiBvW2ZdOworfQorCitmdW5jdGlvbiBiYXIoYSkgeworICAgIHZhciByZXN1bHQg
PSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDAwMDsgKytpKSB7CisgICAgICAgIGZv
ciAodmFyIGogPSAwOyBqIDwgYS5sZW5ndGg7ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBm
b28oYVtqXSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIEZvbygp
IHsKK30KKworRm9vLnByb3RvdHlwZVtmXSA9IDQyOworCit2YXIgcmVzdWx0ID0gYmFyKFt7W2Zd
OjI0fSwgbmV3IEZvbygpXSk7CisKK2lmIChyZXN1bHQgIT0gMTMyMDAwMDAwKQorICAgIHRocm93
ICJFcnJvciBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258644</attachid>
            <date>2015-08-10 13:19:15 -0700</date>
            <delta_ts>2015-08-11 11:21:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147480-20150810131901.patch</filename>
            <type>text/plain</type>
            <size>151460</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTM3YjJhMGE2ODkyNTNlZjIyY2U3NDU0MTk4ODQxNWUzOGI3MmU4Li4yOGUwOWRkODg0YjQzYzA3
NDU5Yjc5ZDJlMDY3NzdjMzRjMjZmYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjIgQEAKKzIwMTUtMDgtMTAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGdldF9ieV9pZCBsaWtlIElDIGludG8gZ2V0X2J5
X3ZhbCB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIFN0cmluZyBvciBTeW1ib2wKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzQ4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBnZXRf
YnlfaWQgSUMgdG8gZ2V0X2J5X3ZhbCBvcGVyYXRpb24gYnkgY2FjaGluZyB0aGUgc3RyaW5nIC8g
c3ltYm9sIGlkLgorICAgICAgICBUaGUgSUMgc2l0ZSBvbmx5IGNhY2hlcyBvbmUgaWQuIEFmdGVy
IGNoZWNraW5nIHRoYXQgdGhlIGdpdmVuIGlkIGlzIHRoZSBzYW1lIHRvIHRoZQorICAgICAgICBj
YWNoZWQgb25lLCB3ZSBwZXJmb3JtIHRoZSBnZXRfYnlfaWQgSUMgb250byBpdC4KKyAgICAgICAg
QW5kIGJ5IGNvbGxlY3RpbmcgSUMgU3RydWN0dXJlU3R1YkluZm8gaW5mb3JtYXRpb24sIHdlIHBh
c3MgaXQgdG8gdGhlIERGRyBhbmQgREZHCisgICAgICAgIGNvbXBpbGVzIGdldF9ieV92YWwgb3Ag
Y29kZSBpbnRvIENoZWNrSWRlbnQgKHdpdGggZWRnZSB0eXBlIGNoZWNrKSBhbmQgR2V0QnlJZCBy
ZWxhdGVkCisgICAgICAgIG9wZXJhdGlvbnMgd2hlbiB0aGUgZ2l2ZW4gZ2V0X2J5X3ZhbCBsZXZl
cmFnZXMgdGhlIHByb3BlcnR5IGxvYWQgd2l0aCB0aGUgY2FjaGVkIGlkLgorCisgICAgICAgIFRv
IGVuc3VyZSB0aGUgaW5jb21pbmcgdmFsdWUgaXMgdGhlIGV4cGVjdGVkIGlkLCBpbiBERkcgbGF5
ZXIsIHdlIHVzZSBTeW1ib2xVc2UgYW5kCisgICAgICAgIFN0cmluZ0lkZW50VXNlIHRvIGVuZm9y
Y2UgdGhlIHR5cGUuIFRvIHVzZSBpdCwgdGhpcyBwYXRjaCBpbXBsZW1lbnRzIFN5bWJvbFVzZS4K
KyAgICAgICAgVGhpcyBjYW4gYmUgbGV2ZXJhZ2VkIHRvIG9wdGltaXplIHN5bWJvbCBvcGVyYXRp
b25zIGluIERGRy4KKworICAgICAgICBBbmQgc2luY2UgYnlWYWxJbmZvIGlzIGZyZXF1ZW50bHkg
dXNlZCwgd2UgYWxpZ24gdGhlIGJ5VmFsSW5mbyBkZXNpZ24gdG8gdGhlIHN0dWJJbmZvIGxpa2Ug
b25lLgorICAgICAgICBBbGxvY2F0ZWQgYnkgdGhlIEJhZyBhbmQgb3BlcmF0aW9ucyB0YWtlIHRo
ZSByYXcgYnlWYWxJbmZvIHBvaW50ZXIgZGlyZWN0bHkgaW5zdGVhZCBvZiBwZXJmb3JtaW5nCisg
ICAgICAgIGJpbmFyeSBzZWFyY2ggb250byBtX2J5VmFsSW5mb3MuIEFuZCBieSBzdG9yaW5nIEFy
cmF5UHJvZmlsZSogdW5kZXIgdGhlIEJ5VmFsSW5mbywgd2UgcmVwbGFjZWQgdGhlCisgICAgICAg
IGFyZ3VtZW50IEFycmF5UHJvZmlsZSogaW4gdGhlIG9wZXJhdGlvbnMgd2l0aCBCeVZhbEluZm8q
LgorCisgICAgICAgICogYnl0ZWNvZGUvQnlWYWxJbmZvLmg6CisgICAgICAgIChKU0M6OkJ5VmFs
SW5mbzo6QnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAg
ICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldEJ5VmFsSW5mb01hcCk6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6YWRkQnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm8pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OnNldE51bWJlck9mQnlWYWxJbmZvcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6bnVtYmVyT2ZCeVZhbEluZm9zKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpieVZhbEluZm8pOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVj
b2RlL0V4aXRLaW5kLmNwcDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6CisgICAg
ICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcik6CisgICAg
ICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgIChK
U0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRi
YWNrKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZH
RG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9E
RkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5v
ZGUpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6Om9ic2VydmVVc2VLaW5kT25Ob2Rl
KToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhh
c1VpZE9wZXJhbmQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnVpZE9wZXJhbmQpOgorICAg
ICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAg
ICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrSWRlbnQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVT
eW1ib2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZH
VXNlS2luZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRm
Zy9ERkdVc2VLaW5kLmg6CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAg
ICAgIChKU0M6OkRGRzo6aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5vZGUp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja0lk
ZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpsb3dTeW1ib2wp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6aXNOb3RTeW1ib2wpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN5bWJvbCk6Cisg
ICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGUp
OgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKEpTQzo6QnlWYWxDb21waWxhdGlvbklu
Zm86OkJ5VmFsQ29tcGlsYXRpb25JbmZvKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlR2V0
QnlWYWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAg
ICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9o
YXNfaW5kZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgor
ICAgICAgICAoSlNDOjpnZXRCeVZhbCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoK
KyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0
aENhY2hlZElkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlW
YWxXaXRoQ2FjaGVkSWQpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlf
dmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKToKKyAgICAg
ICAgKiBydW50aW1lL1N5bWJvbC5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKEhlbGxvKToKKyAg
ICAgICAgKGdldCBIZWxsby5wcm90b3R5cGUuZ2VuZXJhdGUpOgorICAgICAgICAob2spOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0
U3RyMSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3RyMSk6CisgICAgICAgIChnZXRT
dHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0
ZXIuanM6IEFkZGVkLgorICAgICAgICAob2JqZWN0LmdldCBoZWxsbyk6CisgICAgICAgIChvayk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0
U3RyMSk6CisgICAgICAgIChnZXRTdHIyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisgICAgICAgIChIZWxsbyk6
CisgICAgICAgIChnZXQgSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlKToKKyAgICAgICAgKG9rKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGdldEJ5VmFsKToKKyAgICAgICAg
KGdldFN5bTEpOgorICAgICAgICAoZ2V0U3ltMik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKG9iamVjdC5n
ZXQgaGVsbG8pOgorICAgICAgICAoLmdldCBvayk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAoZ2V0QnlWYWwpOgorICAgICAgICAoZ2V0U3ltMSk6CisgICAgICAgIChnZXRTeW0yKToK
KwogMjAxNS0wOC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlZ3Jlc3Npb24ocjE4ODEwNSk6IFNlZW1zIHRvIGhhdmUgY2F1c2VkIGNyYXNoZXMgZHVyaW5n
IFBMVCBvbiBzb21lIGlQYWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnlWYWxJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJ
bmZvLmgKaW5kZXggZDk4ODUxNjEzMjU4YTcxYjlmMDRiYTQ5MDczZjQ0MDMzZTU3MTA4My4uYjQ2
YTQwZDA3NjZkNmI0MGU4YWQ2NTFjZjZlYjVlZTZiNmIyN2VlYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaApAQCAtMjYsMTYgKzI2LDE4IEBACiAjaWZuZGVm
IEJ5VmFsSW5mb19oCiAjZGVmaW5lIEJ5VmFsSW5mb19oCiAKLSNpZiBFTkFCTEUoSklUKQotCiAj
aW5jbHVkZSAiQ2xhc3NJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0aW9uLmgiCisjaW5jbHVk
ZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkluZGV4aW5nVHlwZS5oIgogI2luY2x1ZGUgIkpJ
VFN0dWJSb3V0aW5lLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCisjaW5jbHVkZSAiU3RydWN0
dXJlU3R1YkluZm8uaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBFTkFCTEUoSklUKQorCiBl
bnVtIEpJVEFycmF5TW9kZSB7CiAgICAgSklUSW50MzIsCiAgICAgSklURG91YmxlLApAQCAtMjAx
LDI0ICsyMDMsMzUgQEAgaW5saW5lIEpJVEFycmF5TW9kZSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1
cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAKIHN0cnVjdCBCeVZhbEluZm8gewogICAgIEJ5VmFs
SW5mbygpIHsgfQotICAgIAotICAgIEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBD
b2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQx
Nl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQor
CisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkp1bXAg
bm90SW5kZXhKdW1wLCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUg
YXJyYXlNb2RlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSwgaW50MTZfdCBiYWRUeXBlSnVt
cFRvRG9uZSwgaW50MTZfdCBiYWRUeXBlSnVtcFRvTmV4dEhvdFBhdGgsIGludDE2X3QgcmV0dXJu
QWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4
KQorICAgICAgICAsIG5vdEluZGV4SnVtcChub3RJbmRleEp1bXApCiAgICAgICAgICwgYmFkVHlw
ZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICwgYXJyYXlNb2RlKGFycmF5TW9kZSkKKyAgICAg
ICAgLCBhcnJheVByb2ZpbGUoYXJyYXlQcm9maWxlKQogICAgICAgICAsIGJhZFR5cGVKdW1wVG9E
b25lKGJhZFR5cGVKdW1wVG9Eb25lKQorICAgICAgICAsIGJhZFR5cGVKdW1wVG9OZXh0SG90UGF0
aChiYWRUeXBlSnVtcFRvTmV4dEhvdFBhdGgpCiAgICAgICAgICwgcmV0dXJuQWRkcmVzc1RvU2xv
d1BhdGgocmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpCiAgICAgICAgICwgc2xvd1BhdGhDb3VudCgw
KQorICAgICAgICAsIHN0dWJJbmZvKG51bGxwdHIpCisgICAgICAgICwgdG9va1Nsb3dQYXRoKGZh
bHNlKQogICAgIHsKICAgICB9Ci0gICAgCisKICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4Owor
ICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wOwogICAgIENvZGVMb2NhdGlvbkp1bXAg
YmFkVHlwZUp1bXA7CiAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsgLy8gVGhlIGFycmF5IG1v
ZGUgdGhhdCB3YXMgYmFrZWQgaW50byB0aGUgaW5saW5lIEpJVCBjb2RlLgorICAgIEFycmF5UHJv
ZmlsZSogYXJyYXlQcm9maWxlOwogICAgIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmU7CisgICAg
aW50MTZfdCBiYWRUeXBlSnVtcFRvTmV4dEhvdFBhdGg7CiAgICAgaW50MTZfdCByZXR1cm5BZGRy
ZXNzVG9TbG93UGF0aDsKICAgICB1bnNpZ25lZCBzbG93UGF0aENvdW50OwogICAgIFJlZlB0cjxK
SVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmU7CisgICAgSWRlbnRpZmllciBjYWNoZWRJZDsKKyAg
ICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm87CisgICAgYm9vbCB0b29rU2xvd1BhdGg7CiB9
OwogCiBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0ZWNvZGVJbmRleChCeVZhbEluZm8q
IGluZm8pCkBAIC0yMjYsOSArMjM5LDE1IEBAIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbEluZm9C
eXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5mbykKICAgICByZXR1cm4gaW5mby0+Ynl0ZWNvZGVJ
bmRleDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgSlNDCit0eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdp
biwgQnlWYWxJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFwOwor
CisjZWxzZSAvLyBFTkFCTEUoSklUKQorCit0eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4gQnlW
YWxJbmZvTWFwOwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorfSAvLyBuYW1lc3BhY2UgSlND
CisKICNlbmRpZiAvLyBCeVZhbEluZm9faAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGEzNjFkNmRiZjI2NzJjYjAwNGY4ODNjN2U3MDAwMDhh
NGM4Nzg5ZTIuLmM5MzMxZjczN2FiNzMwMzE5OWU3ZTRhOWEyNGNjYTBkMWRiYzE5NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0yNjcyLDYg
KzI2NzIsMjIgQEAgdm9pZCBDb2RlQmxvY2s6OmdldENhbGxMaW5rSW5mb01hcChDYWxsTGlua0lu
Zm9NYXAmIHJlc3VsdCkKICAgICBnZXRDYWxsTGlua0luZm9NYXAobG9ja2VyLCByZXN1bHQpOwog
fQogCit2b2lkIENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRM
b2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSklUKQorICAgIGZv
ciAoYXV0byogYnlWYWxJbmZvIDogbV9ieVZhbEluZm9zKQorICAgICAgICByZXN1bHQuYWRkKENv
ZGVPcmlnaW4oYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4KSwgYnlWYWxJbmZvKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2RlQmxvY2s6Omdl
dEJ5VmFsSW5mb01hcChCeVZhbEluZm9NYXAmIHJlc3VsdCkKK3sKKyAgICBDb25jdXJyZW50SklU
TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIGdldEJ5VmFsSW5mb01hcChsb2NrZXIsIHJlc3Vs
dCk7Cit9CisKICNpZiBFTkFCTEUoSklUKQogU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6
YWRkU3R1YkluZm8oKQogewpAQCAtMjY4OCw2ICsyNzA0LDEyIEBAIFN0cnVjdHVyZVN0dWJJbmZv
KiBDb2RlQmxvY2s6OmZpbmRTdHViSW5mbyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKK0J5VmFsSW5mbyogQ29kZUJsb2NrOjphZGRCeVZhbEluZm8oKQor
eworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgcmV0dXJuIG1f
YnlWYWxJbmZvcy5hZGQoKTsKK30KKwogQ2FsbExpbmtJbmZvKiBDb2RlQmxvY2s6OmFkZENhbGxM
aW5rSW5mbygpCiB7CiAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA2YzNhMTE1Zjc3
NWVlYzNhYmQyMjAyZmVmYTUyNmRmODBhM2ZjOTM4Li45NjA3OTFkNzBmYjVhMTdkMmEwMDI0Yjk2
ZjRhNTdjNDA4MTNmNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5oCkBAIC0yMDAsNiArMjAwLDkgQEAgY2xhc3MgQ29kZUJsb2NrIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPENvZGVCbG9jaz4sIHB1YmxpYyBVbmNvbmRpdGlvbmFsRmkKICAgICAK
ICAgICB2b2lkIGdldENhbGxMaW5rSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwg
Q2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOwogICAgIHZvaWQgZ2V0Q2FsbExpbmtJbmZvTWFwKENh
bGxMaW5rSW5mb01hcCYgcmVzdWx0KTsKKworICAgIHZvaWQgZ2V0QnlWYWxJbmZvTWFwKGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAmIHJlc3VsdCk7CisgICAgdm9pZCBn
ZXRCeVZhbEluZm9NYXAoQnlWYWxJbmZvTWFwJiByZXN1bHQpOwogICAgIAogI2lmIEVOQUJMRShK
SVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJbmZvKCk7CkBAIC0yMTEsMTEgKzIx
NCw4IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb2Rl
QmxvY2s+LCBwdWJsaWMgVW5jb25kaXRpb25hbEZpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGZp
bmRTdHViSW5mbyhDb2RlT3JpZ2luKTsKIAogICAgIHZvaWQgcmVzZXRTdHViKFN0cnVjdHVyZVN0
dWJJbmZvJik7Ci0gICAgCi0gICAgQnlWYWxJbmZvJiBnZXRCeVZhbEluZm8odW5zaWduZWQgYnl0
ZWNvZGVJbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAqKGJpbmFyeVNlYXJjaDxCeVZhbElu
Zm8sIHVuc2lnbmVkPihtX2J5VmFsSW5mb3MsIG1fYnlWYWxJbmZvcy5zaXplKCksIGJ5dGVjb2Rl
SW5kZXgsIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgpKTsKLSAgICB9CisKKyAgICBCeVZhbElu
Zm8qIGFkZEJ5VmFsSW5mbygpOwogCiAgICAgQ2FsbExpbmtJbmZvKiBhZGRDYWxsTGlua0luZm8o
KTsKICAgICBCYWc8Q2FsbExpbmtJbmZvPjo6aXRlcmF0b3IgY2FsbExpbmtJbmZvc0JlZ2luKCkg
eyByZXR1cm4gbV9jYWxsTGlua0luZm9zLmJlZ2luKCk7IH0KQEAgLTM2NywxMiArMzY3LDYgQEAg
Y2xhc3MgQ29kZUJsb2NrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENvZGVCbG9jaz4s
IHB1YmxpYyBVbmNvbmRpdGlvbmFsRmkKIAogICAgIFN0cmluZyBuYW1lRm9yUmVnaXN0ZXIoVmly
dHVhbFJlZ2lzdGVyKTsKIAotI2lmIEVOQUJMRShKSVQpCi0gICAgdm9pZCBzZXROdW1iZXJPZkJ5
VmFsSW5mb3Moc2l6ZV90IHNpemUpIHsgbV9ieVZhbEluZm9zLnJlc2l6ZVRvRml0KHNpemUpOyB9
Ci0gICAgc2l6ZV90IG51bWJlck9mQnlWYWxJbmZvcygpIGNvbnN0IHsgcmV0dXJuIG1fYnlWYWxJ
bmZvcy5zaXplKCk7IH0KLSAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyhzaXplX3QgaW5kZXgpIHsg
cmV0dXJuIG1fYnlWYWxJbmZvc1tpbmRleF07IH0KLSNlbmRpZgotCiAgICAgdW5zaWduZWQgbnVt
YmVyT2ZBcmd1bWVudFZhbHVlUHJvZmlsZXMoKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fbnVt
UGFyYW1ldGVycyA+PSAwKTsKQEAgLTEwMTYsNyArMTAxMCw3IEBAIGNsYXNzIENvZGVCbG9jayA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDb2RlQmxvY2s+LCBwdWJsaWMgVW5jb25kaXRp
b25hbEZpCiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29kZTsKICNpZiBFTkFCTEUoSklUKQog
ICAgIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7Ci0gICAgVmVjdG9yPEJ5VmFs
SW5mbz4gbV9ieVZhbEluZm9zOworICAgIEJhZzxCeVZhbEluZm8+IG1fYnlWYWxJbmZvczsKICAg
ICBCYWc8Q2FsbExpbmtJbmZvPiBtX2NhbGxMaW5rSW5mb3M7CiAgICAgU2VudGluZWxMaW5rZWRM
aXN0PENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvPj4gbV9p
bmNvbWluZ0NhbGxzOwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxQb2x5bW9ycGhpY0NhbGxOb2Rl
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxQb2x5bW9ycGhpY0NhbGxOb2RlPj4gbV9pbmNvbWluZ1Bv
bHltb3JwaGljQ2FsbHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvRXhpdEtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5k
LmNwcAppbmRleCA0Zjc5ZjJjMWM1ZTRlN2ZkYmUwNDNhMDQ5NTI1MTAwYWQ1MGZmNDdiLi4yNTI0
MzAwZjczMzc2OWVkOWJlMDAxZDc2NjBmMzY4NTliNmQ4OTA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKQEAgLTQwLDYgKzQwLDggQEAgY29uc3QgY2hh
ciogZXhpdEtpbmRUb1N0cmluZyhFeGl0S2luZCBraW5kKQogICAgICAgICByZXR1cm4gIkJhZFR5
cGUiOwogICAgIGNhc2UgQmFkQ2VsbDoKICAgICAgICAgcmV0dXJuICJCYWRDZWxsIjsKKyAgICBj
YXNlIEJhZElkZW50OgorICAgICAgICByZXR1cm4gIkJhZElkZW50IjsKICAgICBjYXNlIEJhZEV4
ZWN1dGFibGU6CiAgICAgICAgIHJldHVybiAiQmFkRXhlY3V0YWJsZSI7CiAgICAgY2FzZSBCYWRD
YWNoZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2lu
ZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKaW5kZXggNTlj
YmJmNWEyYjM4Nzc5N2UzZWUyYmE4MWYzNmUxYzYxYzAzYjkyMy4uNmY4YzUxMjAwNzAwNTA1YmY5
MWRlZjc0OTAwM2UzMDA1ZTNmNzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V4aXRLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0V4aXRLaW5kLmgKQEAgLTMyLDYgKzMyLDcgQEAgZW51bSBFeGl0S2luZCA6IHVpbnQ4X3Qgewog
ICAgIEV4aXRLaW5kVW5zZXQsCiAgICAgQmFkVHlwZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYSB0
eXBlIHByZWRpY3Rpb24gd2FzIHdyb25nLgogICAgIEJhZENlbGwsIC8vIFdlIGV4aXRlZCBiZWNh
dXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBjZWxsIHdlIHdv
dWxkIHNlZS4gVXN1YWxseSB1c2VkIGZvciBmdW5jdGlvbiBjaGVja3MuCisgICAgQmFkSWRlbnQs
IC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJv
dXQgd2hhdCBpZGVudGlmaWVyIHdlIHdvdWxkIHNlZS4gVXN1YWxseSB1c2VkIGZvciBjYWNoZWQg
SWQgY2hlY2sgaW4gZ2V0X2J5X3ZhbC4KICAgICBCYWRFeGVjdXRhYmxlLCAvLyBXZSBleGl0ZWQg
YmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVjdCBhc3N1bXB0aW9uIGFib3V0IHdoYXQgZXhlY3V0
YWJsZSB3ZSB3b3VsZCBzZWUuCiAgICAgQmFkQ2FjaGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGFu
IGlubGluZSBjYWNoZSB3YXMgd3JvbmcuCiAgICAgQmFkQ29uc3RhbnRDYWNoZSwgLy8gV2UgZXhp
dGVkIGJlY2F1c2UgYSBjYWNoZSBvbiBhIHdlYWsgY29uc3RhbnQgKHVzdWFsbHkgYSBwcm90b3R5
cGUpIHdhcyB3cm9uZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRC
eUlkU3RhdHVzLmNwcAppbmRleCAxZDk3YzlmZmRiYTZkOTRlMzVjYjY3Y2VkM2RiZWVhNTBiYzcx
OWVlLi44OWU1MDM1ZjMwYTNmMGI3OWJiMjA4MzJhMTJkOWQ2ODQ4ODhjZjA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC05OCw3
ICs5OCw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxv
Y2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBtCiAgICAgR2V0QnlJZFN0YXR1cyByZXN1
bHQ7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICByZXN1bHQgPSBjb21wdXRlRm9yU3R1Yklu
Zm8oCisgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJh
Y2soCiAgICAgICAgIGxvY2tlciwgcHJvZmlsZWRCbG9jaywgbWFwLmdldChDb2RlT3JpZ2luKGJ5
dGVjb2RlSW5kZXgpKSwgdWlkLAogICAgICAgICBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUV4aXRT
aXRlRGF0YShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgpKTsKICAgICAKQEAg
LTExNiw3ICsxMTYsMjAgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9y
KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KIH0KIAogI2lmIEVOQUJM
RShKSVQpCi1HZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbygK
K0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENv
bmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgVW5pcXVlZFN0
cmluZ0ltcGwqIHVpZCkKK3sKKyAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdCA9IEdldEJ5SWRTdGF0
dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAorICAgICAgICBs
b2NrZXIsIHByb2ZpbGVkQmxvY2ssIHN0dWJJbmZvLCB1aWQsCisgICAgICAgIENhbGxMaW5rU3Rh
dHVzOjpjb21wdXRlRXhpdFNpdGVEYXRhKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgY29kZU9yaWdp
bi5ieXRlY29kZUluZGV4KSk7CisKKyAgICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQYXRoKCkgJiYg
R2V0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBjb2RlT3Jp
Z2luLmJ5dGVjb2RlSW5kZXgpKQorICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhyZXN1bHQu
bWFrZXNDYWxscygpID8gR2V0QnlJZFN0YXR1czo6TWFrZXNDYWxscyA6IEdldEJ5SWRTdGF0dXM6
OlRha2VzU2xvd1BhdGgsIHRydWUpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisjZW5kaWYgLy8g
RU5BQkxFKEpJVCkKKworI2lmIEVOQUJMRShKSVQpCitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0
dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgIGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBT
dHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsCiAgICAg
Q2FsbExpbmtTdGF0dXM6OkV4aXRTaXRlRGF0YSBjYWxsRXhpdFNpdGVEYXRhKQogewpAQCAtMjQy
LDcgKzI1NSw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAg
ICAgICAgR2V0QnlJZFN0YXR1cyByZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAgICAgIENvbmN1
cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGRmZ0Jsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgcmVz
dWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKAorICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZv
clN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgICAgICAgICAgbG9ja2Vy
LCBkZmdCbG9jaywgZGZnTWFwLmdldChjb2RlT3JpZ2luKSwgdWlkLCBleGl0U2l0ZURhdGEpOwog
ICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0dldEJ5SWRTdGF0dXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmgKaW5kZXggMzIzNzJjZGRmNWUyNWIwZjM4OGU2Y2ZlZGM0NjYyMGIyZDM4
ZDJkMC4uZDdmMGFlNDk2Y2JhMmYzMGZkY2QxMjg4NmIxNWZiM2I0ODI4Zjk1NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCkBAIC03MSw3ICs3
MSwxMSBAQCBjbGFzcyBHZXRCeUlkU3RhdHVzIHsKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBj
b21wdXRlRm9yKGNvbnN0IFN0cnVjdHVyZVNldCYsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwog
ICAgIAogICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiBiYXNl
bGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVNYXAs
IFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQp
OwotICAgIAorCisjaWYgRU5BQkxFKEpJVCkKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21w
dXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogYmFz
ZWxpbmVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luLCBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkKTsKKyNlbmRpZgorCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3N0YXRlOyB9CiAgICAgCiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUg
IT0gTm9JbmZvcm1hdGlvbjsgfQpAQCAtOTUsNyArOTksNyBAQCBjbGFzcyBHZXRCeUlkU3RhdHVz
IHsKICAgICBzdGF0aWMgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2Vy
JiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CiAjZW5kaWYKICNpZiBFTkFC
TEUoSklUKQotICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbygKKyAg
ICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVG
ZWVkYmFjaygKICAgICAgICAgY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayog
cHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qLAogICAgICAgICBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkLCBDYWxsTGlua1N0YXR1czo6RXhpdFNpdGVEYXRhKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCmluZGV4IDM3MzRjNzZkMWVlODdhODRhMGU2NmQ1NTY3NGQxMGIyYWQyYWEwNTQu
LjIyOTA4N2RjYzQzNjQzOTc5NTQ4MGUzZDVjMTI5NjAzYTE2YzFiNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmgKQEAgLTIxNjMsNiArMjE2MywzMiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAg
ICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrSWRlbnQ6IHsKKyAgICAgICAgQWJz
dHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgVW5p
cXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAgQVNTRVJU
KHVpZC0+aXNTeW1ib2woKSA/ICEodmFsdWUubV90eXBlICYgflNwZWNTeW1ib2wpIDogISh2YWx1
ZS5tX3R5cGUgJiB+U3BlY1N0cmluZ0lkZW50KSk7IC8vIEVkZ2UgZmlsdGVyaW5nIHNob3VsZCBo
YXZlIGFscmVhZHkgZW5zdXJlZCB0aGlzLgorCisgICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdGFu
dCA9IHZhbHVlLnZhbHVlKCk7CisgICAgICAgIGlmIChjaGlsZENvbnN0YW50KSB7CisgICAgICAg
ICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGNoaWxk
Q29uc3RhbnQuaXNTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgaWYgKGFzU3ltYm9sKGNoaWxk
Q29uc3RhbnQpLT5wcml2YXRlTmFtZSgpLnVpZCgpID09IHVpZCkgeworICAgICAgICAgICAgICAg
ICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpOworICAgICAgICAgICAg
ICAgIGlmIChhc1N0cmluZyhjaGlsZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBsKCkgPT0gdWlk
KSB7CisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbHRlcih2YWx1ZSwgdWlkLT5pc1N5bWJvbCgp
ID8gU3BlY1N5bWJvbCA6IFNwZWNTdHJpbmdJZGVudCk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KwogICAgIGNhc2UgQ2hlY2tJbkJvdW5kczogewogICAgICAgICBKU1ZhbHVlIGxlZnQgPSBmb3JO
b2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0gZm9y
Tm9kZShub2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNTY0MjJiMThhMjQ2NTA4NmY4MDY5NDI4
MGRhMzY3NjAwMmU2YzVlNC4uMjY4YTc1NzZiYzM2NjcyNmEwNmM4OGIxZmMwYmUzNDNlZmMwZTdj
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKQEAgLTk2OSw2ICs5NjksNyBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgICAgIAog
ICAgICAgICBDYWxsTGlua0luZm9NYXAgbV9jYWxsTGlua0luZm9zOwogICAgICAgICBTdHViSW5m
b01hcCBtX3N0dWJJbmZvczsKKyAgICAgICAgQnlWYWxJbmZvTWFwIG1fYnlWYWxJbmZvczsKICAg
ICAgICAgCiAgICAgICAgIC8vIERpZCB3ZSBzZWUgYW55IHJldHVybnM/IFdlIG5lZWQgdG8gaGFu
ZGxlIHRoZSAodW5jb21tb24gYnV0IG5lY2Vzc2FyeSkKICAgICAgICAgLy8gY2FzZSB3aGVyZSBh
IHByb2NlZHVyZSB0aGF0IGRvZXMgbm90IHJldHVybiB3YXMgaW5saW5lZC4KQEAgLTMzOTcsMTIg
KzMzOTgsMzUgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1p
dCkKIAogICAgICAgICBjYXNlIG9wX2dldF9ieV92YWw6IHsKICAgICAgICAgICAgIFNwZWN1bGF0
ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uV2l0aG91dE9TUkV4aXQoKTsKLSAgICAg
ICAgICAgIAorCiAgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBBcnJheU1vZGUg
YXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJv
ZmlsZSwgQXJyYXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBnZXQoVmly
dHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKLSAgICAgICAg
ICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5TW9k
ZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOwotICAgICAg
ICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
KSwgZ2V0QnlWYWwpOworICAgICAgICAgICAgYm9vbCBjb21waWxlZEFzR2V0QnlJZCA9IGZhbHNl
OworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKKyAgICAgICAg
ICAgICAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1faW5saW5lU3RhY2tUb3AtPm1fYnlWYWxJ
bmZvcy5nZXQoQ29kZU9yaWdpbihjdXJyZW50Q29kZU9yaWdpbigpLmJ5dGVjb2RlSW5kZXgpKTsK
KyAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2hlbiB0aGUgYnl0ZWNvZGUgaXMgbm90IGNvbXBp
bGVkIGluIHRoZSBiYXNlbGluZSBKSVQsIGJ5VmFsSW5mbyBiZWNvbWVzIG51bGwuCisgICAgICAg
ICAgICAgICAgLy8gQXQgdGhhdCB0aW1lLCB0aGVyZSBpcyBubyBpbmZvcm1hdGlvbi4KKyAgICAg
ICAgICAgICAgICBpZiAoYnlWYWxJbmZvICYmIGJ5VmFsSW5mby0+c3R1YkluZm8gJiYgIWJ5VmFs
SW5mby0+dG9va1Nsb3dQYXRoICYmICFtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhh
c0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRJZGVudCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29tcGlsZWRBc0dldEJ5SWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpZGVudGlmaWVyTnVtYmVyID0gbV9ncmFwaC5pZGVudGlmaWVycygpLmVuc3VyZShieVZhbElu
Zm8tPmNhY2hlZElkLmltcGwoKSk7CisgICAgICAgICAgICAgICAgICAgIFVuaXF1ZWRTdHJpbmdJ
bXBsKiB1aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl07CisKKyAg
ICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja0lkZW50LCBPcEluZm8odWlkKSwgcHJv
cGVydHkpOworCisgICAgICAgICAgICAgICAgICAgIEdldEJ5SWRTdGF0dXMgZ2V0QnlJZFN0YXR1
cyA9IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbygKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxvY2tlciwgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLAorICAgICAg
ICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5zdHViSW5mbywgY3VycmVudENvZGVPcmlnaW4o
KSwgdWlkKTsKKworICAgICAgICAgICAgICAgICAgICBoYW5kbGVHZXRCeUlkKGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQsIHByZWRpY3Rpb24sIGJhc2UsIGlkZW50aWZpZXJOdW1iZXIs
IGdldEJ5SWRTdGF0dXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgaWYgKCFjb21waWxlZEFzR2V0QnlJZCkgeworICAgICAgICAgICAgICAgIEFycmF5
TW9kZSBhcnJheU1vZGUgPSBnZXRBcnJheU1vZGUoY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJy
YXlQcm9maWxlLCBBcnJheTo6UmVhZCk7CisgICAgICAgICAgICAgICAgTm9kZSogZ2V0QnlWYWwg
PSBhZGRUb0dyYXBoKEdldEJ5VmFsLCBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgpKSwgT3BJbmZv
KHByZWRpY3Rpb24pLCBiYXNlLCBwcm9wZXJ0eSk7CisgICAgICAgICAgICAgICAgc2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgZ2V0QnlWYWwpOwor
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfYnlfdmFsKTsK
ICAgICAgICAgfQpAQCAtNDMwNSw2ICs0MzI5LDcgQEAgQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0
YWNrRW50cnk6OklubGluZVN0YWNrRW50cnkoCiAgICAgICAgIGlmIChtX3Byb2ZpbGVkQmxvY2st
Pmhhc0Jhc2VsaW5lSklUUHJvZmlsaW5nKCkpIHsKICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9j
ay0+Z2V0U3R1YkluZm9NYXAobG9ja2VyLCBtX3N0dWJJbmZvcyk7CiAgICAgICAgICAgICBtX3By
b2ZpbGVkQmxvY2stPmdldENhbGxMaW5rSW5mb01hcChsb2NrZXIsIG1fY2FsbExpbmtJbmZvcyk7
CisgICAgICAgICAgICBtX3Byb2ZpbGVkQmxvY2stPmdldEJ5VmFsSW5mb01hcChsb2NrZXIsIG1f
YnlWYWxJbmZvcyk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDI5Njc0OWRjMzFiMjNjODk5ODQ5NGI1NmVmMTQz
MDg2NGIxMjdlYzYuLjQ2ZjVmZTQ4ZDI1YzI3ZGQzMTk2YzU4MTI5ZGJlNTg1N2ZiZDdlMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0yNjgsNiArMjY4
LDEwIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJl
YWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihQdXJlVmFsdWUoQ2hl
Y2tOb3RFbXB0eSwgQWRqYWNlbmN5TGlzdChBZGphY2VuY3lMaXN0OjpGaXhlZCwgbm9kZS0+Y2hp
bGQxKCkpKSk7CiAgICAgICAgIHJldHVybjsKIAorICAgIGNhc2UgQ2hlY2tJZGVudDoKKyAgICAg
ICAgZGVmKFB1cmVWYWx1ZShDaGVja0lkZW50LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6
OkZpeGVkLCBub2RlLT5jaGlsZDEoKSksIG5vZGUtPnVpZE9wZXJhbmQoKSkpOworICAgICAgICBy
ZXR1cm47CisKICAgICBjYXNlIENvbnN0YW50U3RvcmFnZVBvaW50ZXI6CiAgICAgICAgIGRlZihQ
dXJlVmFsdWUobm9kZSwgbm9kZS0+c3RvcmFnZVBvaW50ZXIoKSkpOwogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGlu
Z1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5n
UGhhc2UuY3BwCmluZGV4IGJhNGMwMzU0OTQ2NDkyZjU5ZmRmYmQ1YTZmNjFhNWE2N2QyNTAzMjAu
LjNkODVjYWFiZDYxNTczZmRkNTQ5ZDVmZTc1YmM2NGYzZTU2NGYxZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBA
IC0yMDgsNiArMjA4LDMzIEBAIGNsYXNzIENvbnN0YW50Rm9sZGluZ1BoYXNlIDogcHVibGljIFBo
YXNlIHsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAorICAgICAgICAg
ICAgY2FzZSBDaGVja0lkZW50OiB7CisgICAgICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwq
IHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlIGNoaWxk
Q29uc3RhbnQgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgY29uc3QgVW5pcXVlZFN0cmluZ0ltcGwqIGNvbnN0YW50VWlkID0gbnVsbHB0
cjsKKyAgICAgICAgICAgICAgICBpZiAoY2hpbGRDb25zdGFudCkgeworICAgICAgICAgICAgICAg
ICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
Y2hpbGRDb25zdGFudC5pc1N5bWJvbCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0YW50VWlkID0gYXNTeW1ib2woY2hpbGRDb25zdGFudCktPnByaXZhdGVOYW1lKCkudWlkKCk7
CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoY2hpbGRDb25zdGFudC5pc1N0cmluZygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gU2luY2Ugd2UgYWxyZWFkeSBmaWx0ZXJlZCB0aGUgdmFsdWUgd2l0aCBTdHJpbmdJZGVu
dFVzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgaGVsZCBpbXBsIGlzIGFs
d2F5cyBhdG9taWMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnN0IGF1dG8q
IGltcGwgPSBhc1N0cmluZyhjaGlsZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBsKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGltcGwtPmlzQXRvbWljKCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdGFudFVpZCA9IHN0YXRpY19jYXN0
PGNvbnN0IFVuaXF1ZWRTdHJpbmdJbXBsKj4oaW1wbCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGNvbnN0YW50VWlkID09
IHVpZCkgeworICAgICAgICAgICAgICAgICAgICBub2RlLT5yZW1vdmUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgZWxpbWluYXRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBjYXNlIENoZWNrSW5C
b3VuZHM6IHsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIGxlZnQgPSBtX3N0YXRlLmZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSByaWdodCA9
IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCAwOGZmYjJhOTEyOTM4NzIxMzExY2FkMjc3NDY3
NjFhMjA2NTNhYTVmLi5lNDcwYjhkZGFiOTk0MzhmZDg5MDM1MmU0NWUwOTEwMjlmMWE2MjdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC0xMDcsNiArMTA3LDcg
QEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgVmFySW5q
ZWN0aW9uV2F0Y2hwb2ludDoKICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICBjYXNlIENoZWNrTm90
RW1wdHk6CisgICAgY2FzZSBDaGVja0lkZW50OgogICAgIGNhc2UgUmVnRXhwRXhlYzoKICAgICBj
YXNlIFJlZ0V4cFRlc3Q6CiAgICAgY2FzZSBDb21wYXJlTGVzczoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGM0NDIzMTAxNjMyNjU3ZDNlODNmOTcx
ZTY2YTgzZjYyNTA1NzE1MjQuLmQ2YTk3OTBiMTNjZTAwNjJkOTc4MTE0MGVkY2UyMjE1MmU0MDBi
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAt
MTAxMiw2ICsxMDEyLDE1IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAg
ICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQorCisgICAgICAgIGNhc2UgQ2hlY2tJZGVudDogeworICAgICAgICAg
ICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKKyAgICAgICAg
ICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpCisgICAgICAgICAgICAgICAgZml4RWRnZTxTeW1ib2xV
c2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBm
aXhFZGdlPFN0cmluZ0lkZW50VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXlpZnk6CiAgICAg
ICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZTogewpAQCAtMTc2MCw2ICsxNzY5LDcgQEAgY2xh
c3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgRnVuY3Rpb25Vc2U6
CiAgICAgICAgIGNhc2UgU3RyaW5nVXNlOgogICAgICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgor
ICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAg
ICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICBpZiAoYWx3
YXlzVW5ib3hTaW1wbGVQcmltaXRpdmVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgK
aW5kZXggMjhjYWIwNTFlNTMwOWUzNjg4Njk0Y2JiYzQ2NTM5NjY5MmRlODA5YS4uODNmY2Y1YzEw
MWUwYzdjNzdhOWVkMjA5NWQ0NTVkYTY5YzRlNmFmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmgKQEAgLTEzMjgsNiArMTMyOCwxNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPihtX29wSW5mbyk7CiAgICAgfQogCisgICAgYm9v
bCBoYXNVaWRPcGVyYW5kKCkKKyAgICB7CisgICAgICAgIHJldHVybiBvcCgpID09IENoZWNrSWRl
bnQ7CisgICAgfQorCisgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZE9wZXJhbmQoKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKGhhc1VpZE9wZXJhbmQoKSk7CisgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PFVuaXF1ZWRTdHJpbmdJbXBsKj4obV9vcEluZm8pOworICAgIH0KKwogICAgIGJv
b2wgaGFzVHJhbnNpdGlvbigpCiAgICAgewogICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCA2MmU3Y2E5OGE1MjExMmQ4MmQw
ZWI2ZjBkMTcyOGJlYWY0YjllMTMxLi5lOWJmNzI3MDRiMTdhYTY4Njc5ZTliYmVhMGY0ZjJhZGNl
Zjk2M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yMDks
NiArMjA5LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKENo
ZWNrTm90RW1wdHksIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja0JhZENlbGws
IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja0luQm91bmRzLCBOb2RlTXVzdEdl
bmVyYXRlKSBcCisgICAgbWFjcm8oQ2hlY2tJZGVudCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAg
IFwKICAgICAvKiBPcHRpbWl6YXRpb25zIGZvciBhcnJheSBtdXRhdGlvbi4gKi9cCiAgICAgbWFj
cm8oQXJyYXlQdXNoLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwCmluZGV4IDc2YWY2YTJmM2U0NTJiMGYxMTdhYmMzYTZiYjVkZGQyZmFhYjE5
OGEuLjM2ZjJkZjdjNzVjNTBjYWZkMDZlYzljMjc4NTFlZWE5ZjEwZmZhOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwCkBAIC02NDksNiArNjQ5LDcgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgog
ICAgICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICAgICAgY2FzZSBDaGVja05vdEVtcHR5OgorICAg
ICAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgICAg
ICBjYXNlIFB1dFN0cnVjdHVyZToKICAgICAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCAw
YzBhMjc3NjA1MGVmMWM2MzhjMjBkODhjZmVmZTMyM2M3M2E1OTE0Li5iMmQwN2Q1NWU1MzYyNjg0
NWI1ZDNmNWM5ZmVlYTRlN2JkODRkZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNTksNiArNTksNyBAQCBjbGFzcyBTYWZlVG9FeGVjdXRl
RWRnZSB7CiAgICAgICAgIGNhc2UgT2JqZWN0T3JPdGhlclVzZToKICAgICAgICAgY2FzZSBTdHJp
bmdJZGVudFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CisgICAgICAgIGNhc2UgU3ltYm9s
VXNlOgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdP
clN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBOb3RTdHJpbmdWYXJVc2U6CkBAIC0xODgs
NiArMTg5LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwg
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2Ug
Q2hlY2tCYWRDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRl
bnQ6CiAgICAgY2FzZSBSZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNl
IENvbXBhcmVMZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAppbmRleCBmM2Y4YWY3YTUyZDUwZjlhMmU3MWM0ZjkwMTk5ODQ3YmYwNTAwZDVl
Li4wNTM3MzYzNGJkZTExZDY2NDYxOTEzYTIwYzVhNWJlYTk2OGZhNGQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDU3Niw2ICs0
NTc2LDMxIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aChOb2Rl
KiBub2RlKQogICAgIH0gfQogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tJ
ZGVudChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhp
cywgbm9kZS0+Y2hpbGQxKCkpOworICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51
aWRPcGVyYW5kKCk7CisgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgeworICAgICAgICBzcGVjdWxh
dGVTeW1ib2wobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOworICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKAorICAgICAgICAgICAgQmFkSWRlbnQsIEpTVmFsdWVTb3VyY2UoKSwgbnVsbHB0
ciwKKyAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6Tm90RXF1YWwsCisgICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3Bl
cmFuZC5ncHIoKSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLAorICAgICAgICAgICAg
ICAgIFRydXN0ZWRJbW1QdHIodWlkKSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNwZWN1bGF0
ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7CisgICAgICAgIHNwZWN1bGF0
ZVN0cmluZ0lkZW50KG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKKyAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjaygKKyAgICAgICAgICAgIEJhZElkZW50LCBKU1ZhbHVlU291cmNlKCksIG51
bGxwdHIsCisgICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgSklU
Q29tcGlsZXI6Ok5vdEVxdWFsLAorICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNz
KG9wZXJhbmQuZ3ByKCksIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLAorICAgICAgICAgICAg
ICAgIFRydXN0ZWRJbW1QdHIodWlkKSkpOworICAgIH0KKyAgICBub1Jlc3VsdChub2RlKTsKK30K
Kwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uKE5vZGUqIG5vZGUpCiB7
CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgc2NvcGUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwpA
QCAtNTczMSw2ICs1NzU2LDIwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN0
cmluZ1ZhcihFZGdlIGVkZ2UpCiAgICAgbm90Q2VsbC5saW5rKCZtX2ppdCk7CiB9CiAKK3ZvaWQg
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQor
eworICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGNlbGwpLCBl
ZGdlLCBTcGVjU3ltYm9sLCBtX2ppdC5icmFuY2hJZk5vdFN5bWJvbChjZWxsKSk7Cit9CisKK3Zv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UpCit7CisgICAgaWYg
KCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjU3ltYm9sKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxh
dGVTeW1ib2woZWRnZSwgb3BlcmFuZC5ncHIoKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZU5vdENlbGwoRWRnZSBlZGdlKQogewogICAgIGlmICghbmVlZHNUeXBlQ2hlY2so
ZWRnZSwgflNwZWNDZWxsKSkKQEAgLTU4NDIsNiArNTg4MSw5IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAg
ICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3lt
Ym9sVXNlOgorICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSk7CisgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3Qo
ZWRnZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCmluZGV4IGE1YzQ0NTQ3ZGE2NGJjMmI2M2YwNzNhMTcxMWU2YTExODA2
ZjU5NWIuLjU0NWZmMmE2ZWJkMTBlZWY4MmIxZmU3YzIyY2NlOWY3MTdlZGQxNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTIxOTEsNiAr
MjE5MSw4IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIGNvbXBpbGVTa2lwU2Nv
cGUoTm9kZSopOwogCiAgICAgdm9pZCBjb21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSopOworCisg
ICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudChOb2RlKik7CiAgICAgCiAgICAgdm9pZCBjb21waWxl
VmFsdWVSZXAoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZURvdWJsZVJlcChOb2RlKik7CkBAIC0y
NDA2LDYgKzI0MDgsOCBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBzcGVjdWxh
dGVTdHJpbmdPYmplY3QoRWRnZSwgR1BSUmVnKTsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09i
amVjdChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09yU3RyaW5nT2JqZWN0KEVkZ2Up
OworICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lk
IHNwZWN1bGF0ZVN5bWJvbChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU5vdENlbGwoRWRnZSk7
CiAgICAgdm9pZCBzcGVjdWxhdGVPdGhlcihFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU1pc2Mo
RWRnZSwgSlNWYWx1ZVJlZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggNTA0MjkwNWI2MmI1MjZjOWVkYWQzZmZi
YjU2N2M0NmY2N2Y4MGVhZS4uMTJhYjhkMDg1ZDA3MDUxMGY3NmZkNGVlNzI1NGY4OGUzMzIyYjdj
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCkBAIC0zODIwLDYgKzM4MjAsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENo
ZWNrSWRlbnQ6CisgICAgICAgIGNvbXBpbGVDaGVja0lkZW50KG5vZGUpOworICAgICAgICBicmVh
azsKKwogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFy
eSByZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDc3MGJkYTU4Y2FiNTAyM2Ex
ZmEwYzM4ZjRjN2EwMzA4ZDQwODBhMzAuLjEzYzdjODdkODA2ZjdhN2E4NjczMGYwNzlhZDg4MzQ1
NDI2YzdmYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcApAQCAtMzg1MCw2ICszODUwLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBD
aGVja0lkZW50OgorICAgICAgICBjb21waWxlQ2hlY2tJZGVudChub2RlKTsKKyAgICAgICAgYnJl
YWs7CisKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6IHsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgZnVuY3Rpb24odGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMsIFJldXNlLCBmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmNwcAppbmRleCBlZmExMDRmM2QwNzAwMGI3ZDdiYzQ3M2JjZGYyMDZkMTA1
M2ZjOWIxLi45MzZlZjU1NGFmMjRlMGI2NGZkZjQyOGYxNjNhZThkNzg4ZTk4ZDk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKQEAgLTk3LDYgKzk3LDkgQEAgdm9p
ZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtpbmQgdXNlS2luZCkKICAgICBj
YXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICBvdXQucHJpbnQoIktub3duU3RyaW5nIik7CiAg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIFN5bWJvbFVzZToKKyAgICAgICAgb3V0LnByaW50KCJT
eW1ib2wiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAg
ICAgICBvdXQucHJpbnQoIlN0cmluZ09iamVjdCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCmluZGV4IGViZjk5ZGFlNjAwYzg4MjVkMjJjYmFj
NjM4MjJkMTViNTU2MDAzNWEuLjI4OWI3ODNlNDFiYjM2MTI5MWM4M2M4ZmFkN2IwOGE1NzhlMGE2
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCkBAIC01Nyw2ICs1Nyw3
IEBAIGVudW0gVXNlS2luZCB7CiAgICAgU3RyaW5nSWRlbnRVc2UsCiAgICAgU3RyaW5nVXNlLAog
ICAgIEtub3duU3RyaW5nVXNlLAorICAgIFN5bWJvbFVzZSwKICAgICBTdHJpbmdPYmplY3RVc2Us
CiAgICAgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2UsCiAgICAgTm90U3RyaW5nVmFyVXNlLApAQCAt
MTE3LDYgKzExOCw4IEBAIGlubGluZSBTcGVjdWxhdGVkVHlwZSB0eXBlRmlsdGVyRm9yKFVzZUtp
bmQgdXNlS2luZCkKICAgICBjYXNlIFN0cmluZ1VzZToKICAgICBjYXNlIEtub3duU3RyaW5nVXNl
OgogICAgICAgICByZXR1cm4gU3BlY1N0cmluZzsKKyAgICBjYXNlIFN5bWJvbFVzZToKKyAgICAg
ICAgcmV0dXJuIFNwZWNTeW1ib2w7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAg
IHJldHVybiBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RV
c2U6CkBAIC0xOTYsNiArMTk5LDcgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkK
ICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2Ug
S25vd25TdHJpbmdVc2U6CisgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgY2FzZSBTdHJpbmdPYmpl
Y3RVc2U6CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5oCmluZGV4IDkxMjc1NGRmYzQwMTUyYjBlZDI0ODM2YWM3NWI4Zjk2OTg0
Mzk5YmIuLjU4MWY0Y2JkOWE3NjhiOWFiMmE4MzkyMWNmMjRkMzUyNGJjODU3MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9y
eS5oCkBAIC04Nyw3ICs4Nyw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAg
ICBtYWNybyhTdHJ1Y3R1cmVfY2xhc3NJbmZvLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgp
KSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX2dsb2JhbE9iamVjdCwgU3RydWN0dXJlOjpnbG9iYWxP
YmplY3RPZmZzZXQoKSkgXAogICAgIG1hY3JvKFN0cnVjdHVyZV9wcm90b3R5cGUsIFN0cnVjdHVy
ZTo6cHJvdG90eXBlT2Zmc2V0KCkpIFwKLSAgICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQs
IFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSkKKyAgICBtYWNybyhTdHJ1Y3R1cmVfc3Ry
dWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSkgXAorICAgIG1hY3JvKFN5
bWJvbF9wcml2YXRlTmFtZSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpCiAKICNkZWZp
bmUgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8oRGly
ZWN0QXJndW1lbnRzX3N0b3JhZ2UsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpLCBz
aXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHAKaW5kZXggNjI3MjhjNzQ2ZWY5MWQ3NGI3ODI5YmIzZjlhNDRjNmQ3
ZjYxZDdiMy4uYjQ5M2YzMDI3ZTgyY2ZjY2U5YzNjY2Y0ODJjMTU1ODYxZDY4Yjk0MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTE4LDYg
KzExOCw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQog
ICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgIGNhc2UgQ2hl
Y2tOb3RFbXB0eToKKyAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBTdHJpbmdDaGFyQ29k
ZUF0OgogICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9j
YXRlUHJvcGVydHlTdG9yYWdlOgpAQCAtNDE1LDYgKzQxNiw3IEBAIENhcGFiaWxpdHlMZXZlbCBj
YW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIEtub3duU3RyaW5n
VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAg
ICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBT
eW1ib2xVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBGaW5hbE9iamVjdFVzZToKICAgICAgICAg
ICAgICAgICBjYXNlIE5vdENlbGxVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBPdGhlclVzZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKaW5k
ZXggNWZiNGUyNDEyYTI1OTM0ZjJkYmVmYjk5NzFiMDQ1ZWE4MTkyMWM4YS4uYTFiMTliZmU4ODY3
ODlmMTMyZWVkY2Y2N2MzZDc4OWMyMDYzNWQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTUzMiw2ICs1MzIsOSBAQCBjbGFzcyBM
b3dlckRGR1RvTExWTSB7CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgICAgICAgICAg
Y29tcGlsZUNoZWNrQmFkQ2VsbCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q2hlY2tJZGVudDoKKyAgICAgICAgICAgIGNvbXBpbGVDaGVja0lkZW50KCk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgICAgICAgICAgY29tcGls
ZUdldEV4ZWN1dGFibGUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjAyOSw2ICsyMDMyLDIw
IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgc3BlY3VsYXRlKFREWkZhaWx1cmUs
IG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQuaXNaZXJvNjQobG93SlNWYWx1ZShtX25vZGUtPmNo
aWxkMSgpKSkpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGlsZUNoZWNrSWRlbnQoKQorICAgIHsK
KyAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG1fbm9kZS0+dWlkT3BlcmFuZCgpOwor
ICAgICAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICBMVmFsdWUgc3ltYm9s
ID0gbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIHN0cmlu
Z0ltcGwgPSBtX291dC5sb2FkUHRyKHN5bWJvbCwgbV9oZWFwcy5TeW1ib2xfcHJpdmF0ZU5hbWUp
OworICAgICAgICAgICAgc3BlY3VsYXRlKEJhZElkZW50LCBub1ZhbHVlKCksIG51bGxwdHIsIG1f
b3V0Lm5vdEVxdWFsKHN0cmluZ0ltcGwsIG1fb3V0LmNvbnN0SW50UHRyKHVpZCkpKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJpbmcgPSBsb3dTdHJpbmdJZGVudCht
X25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0gbV9vdXQu
bG9hZFB0cihzdHJpbmcsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOworICAgICAgICAgICAgc3Bl
Y3VsYXRlKEJhZElkZW50LCBub1ZhbHVlKCksIG51bGxwdHIsIG1fb3V0Lm5vdEVxdWFsKHN0cmlu
Z0ltcGwsIG1fb3V0LmNvbnN0SW50UHRyKHVpZCkpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAg
IHZvaWQgY29tcGlsZUdldEV4ZWN1dGFibGUoKQogICAgIHsKICAgICAgICAgTFZhbHVlIGNlbGwg
PSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwpAQCAtNzAyMCw3ICs3MDM3LDE2IEBAIGNsYXNz
IExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQoZWRnZSwgc3Ry
aW5nLCBzdHJpbmdJbXBsKTsKICAgICAgICAgcmV0dXJuIHN0cmluZ0ltcGw7CiAgICAgfQotICAg
IAorCisgICAgTFZhbHVlIGxvd1N5bWJvbChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1v
ZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKKyAgICB7CisgICAgICAgIEFT
U0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRn
ZS51c2VLaW5kKCkgPT0gU3ltYm9sVXNlKTsKKworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93
Q2VsbChlZGdlLCBtb2RlKTsKKyAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIHJlc3VsdCk7
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAgICAgTFZhbHVlIGxvd05vbk51bGxP
YmplY3QoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNP
cGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1v
ZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IE9iamVj
dFVzZSk7CkBAIC03NDE3LDYgKzc0NDMsOSBAQCBjbGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAg
ICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVu
dChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFN5bWJvbFVzZToKKyAg
ICAgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09i
amVjdChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNzUxMyw3ICs3NTQyLDE2IEBAIGNs
YXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgICAgIG1fb3V0LmxvYWQzMihjZWxsLCBtX2hl
YXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCiAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKHZt
KCkuc3RyaW5nU3RydWN0dXJlLT5pZCgpKSk7CiAgICAgfQotICAgIAorCisgICAgTFZhbHVlIGlz
Tm90U3ltYm9sKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3Ap
CisgICAgeworICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAm
IFNwZWNDZWxsLCB+U3BlY1N5bWJvbCkpCisgICAgICAgICAgICByZXR1cm4gcHJvdmVuOworICAg
ICAgICByZXR1cm4gbV9vdXQubm90RXF1YWwoCisgICAgICAgICAgICBtX291dC5sb2FkMzIoY2Vs
bCwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlSUQpLAorICAgICAgICAgICAgbV9vdXQuY29uc3RJ
bnQzMih2bSgpLnN5bWJvbFN0cnVjdHVyZS0+aWQoKSkpOworICAgIH0KKwogICAgIExWYWx1ZSBp
c0FycmF5VHlwZShMVmFsdWUgY2VsbCwgQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICB7CiAgICAg
ICAgIHN3aXRjaCAoYXJyYXlNb2RlLnR5cGUoKSkgewpAQCAtNzczNiw3ICs3Nzc0LDE3IEBAIGNs
YXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgICAgIE5vdFN0cmluZ09iamVjdCwgbm9WYWx1
ZSgpLCAwLAogICAgICAgICAgICAgbV9vdXQubm90RXF1YWwoc3RydWN0dXJlSUQsIHdlYWtTdHJ1
Y3R1cmVJRChzdHJpbmdPYmplY3RTdHJ1Y3R1cmUpKSk7CiAgICAgfQotICAgIAorCisgICAgdm9p
ZCBzcGVjdWxhdGVTeW1ib2woRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAg
IEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1N5bWJvbCB8IH5T
cGVjQ2VsbCwgaXNOb3RTeW1ib2woY2VsbCkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRl
U3ltYm9sKEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBs
b3dDZWxsKGVkZ2UpKTsKKyAgICB9CisKICAgICB2b2lkIHNwZWN1bGF0ZU5vbk51bGxPYmplY3Qo
RWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CiAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpz
VmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY09iamVjdCwgaXNOb3RPYmplY3QoY2VsbCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDU4MjNkMDEwOWY4ODViOGIxZmIxZjY3MDE2
YjMzYzAzMDIzYjZlYzMuLjAzOGY1ZDdkYmMwNmFmODEwZjcxYTdkNDI0MGQ3ZmYyZWJhNDBlYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTY1NywxOCArNjU3LDI1IEBAIENvbXBp
bGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZm
b3J0KQogICAgIGZvciAodW5zaWduZWQgaSA9IG1fcHV0QnlJZHMuc2l6ZSgpOyBpLS07KQogICAg
ICAgICBtX3B1dEJ5SWRzW2ldLmZpbmFsaXplKHBhdGNoQnVmZmVyKTsKIAotICAgIG1fY29kZUJs
b2NrLT5zZXROdW1iZXJPZkJ5VmFsSW5mb3MobV9ieVZhbENvbXBpbGF0aW9uSW5mby5zaXplKCkp
OwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNp
emUoKTsgKytpKSB7Ci0gICAgICAgIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAgPSBDb2Rl
TG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5m
b1tpXS5iYWRUeXBlSnVtcCkpOwotICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lVGFyZ2V0
ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmRvbmVU
YXJnZXQpOwotICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFRhcmdldCA9IHBhdGNo
QnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5zbG93UGF0aFRhcmdl
dCk7Ci0gICAgICAgIENvZGVMb2NhdGlvbkNhbGwgcmV0dXJuQWRkcmVzcyA9IHBhdGNoQnVmZmVy
LmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5yZXR1cm5BZGRyZXNzKTsKLSAg
ICAgICAgCi0gICAgICAgIG1fY29kZUJsb2NrLT5ieVZhbEluZm8oaSkgPSBCeVZhbEluZm8oCi0g
ICAgICAgICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJ5dGVjb2RlSW5kZXgsCisgICAg
Zm9yIChjb25zdCBhdXRvJiBieVZhbENvbXBpbGF0aW9uSW5mbyA6IG1fYnlWYWxDb21waWxhdGlv
bkluZm8pIHsKKyAgICAgICAgUGF0Y2hhYmxlSnVtcCBwYXRjaGFibGVOb3RJbmRleEp1bXAgPSBi
eVZhbENvbXBpbGF0aW9uSW5mby5ub3RJbmRleEp1bXA7CisgICAgICAgIENvZGVMb2NhdGlvbkp1
bXAgbm90SW5kZXhKdW1wID0gQ29kZUxvY2F0aW9uSnVtcCgpOworICAgICAgICBpZiAoSnVtcChw
YXRjaGFibGVOb3RJbmRleEp1bXApLmlzU2V0KCkpCisgICAgICAgICAgICBub3RJbmRleEp1bXAg
PSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YocGF0Y2hhYmxlTm90SW5k
ZXhKdW1wKSk7CisgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAgPSBDb2RlTG9j
YXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YoYnlWYWxDb21waWxhdGlvbkluZm8uYmFk
VHlwZUp1bXApKTsKKyAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgZG9uZVRhcmdldCA9IHBhdGNo
QnVmZmVyLmxvY2F0aW9uT2YoYnlWYWxDb21waWxhdGlvbkluZm8uZG9uZVRhcmdldCk7CisgICAg
ICAgIENvZGVMb2NhdGlvbkxhYmVsIG5leHRIb3RQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9j
YXRpb25PZihieVZhbENvbXBpbGF0aW9uSW5mby5uZXh0SG90UGF0aFRhcmdldCk7CisgICAgICAg
IENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihieVZhbENvbXBpbGF0aW9uSW5mby5zbG93UGF0aFRhcmdldCk7CisgICAgICAgIENvZGVMb2Nh
dGlvbkNhbGwgcmV0dXJuQWRkcmVzcyA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YoYnlWYWxDb21w
aWxhdGlvbkluZm8ucmV0dXJuQWRkcmVzcyk7CisKKyAgICAgICAgKmJ5VmFsQ29tcGlsYXRpb25J
bmZvLmJ5VmFsSW5mbyA9IEJ5VmFsSW5mbygKKyAgICAgICAgICAgIGJ5VmFsQ29tcGlsYXRpb25J
bmZvLmJ5dGVjb2RlSW5kZXgsCisgICAgICAgICAgICBub3RJbmRleEp1bXAsCiAgICAgICAgICAg
ICBiYWRUeXBlSnVtcCwKLSAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYXJy
YXlNb2RlLAorICAgICAgICAgICAgYnlWYWxDb21waWxhdGlvbkluZm8uYXJyYXlNb2RlLAorICAg
ICAgICAgICAgYnlWYWxDb21waWxhdGlvbkluZm8uYXJyYXlQcm9maWxlLAogICAgICAgICAgICAg
ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGJhZFR5cGVKdW1wLCBkb25lVGFyZ2V0KSwKKyAgICAg
ICAgICAgIGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihiYWRUeXBlSnVtcCwgbmV4dEhvdFBhdGhU
YXJnZXQpLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKHJldHVybkFkZHJl
c3MsIHNsb3dQYXRoVGFyZ2V0KSk7CiAgICAgfQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX2NhbGxDb21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCmluZGV4IDEwMjM4MjBjNTYxMWMyMDExNjM0Y2FjYzBmZjgwNGY4ZDMyYzFhMWYuLjg0MTFh
N2VmNjVhOWM2YmRjYzE2YjM2NGViMjhlNDEwMTZiNTg1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuaApAQCAtMTQ5LDE4ICsxNDksMjYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgc3RydWN0IEJ5
VmFsQ29tcGlsYXRpb25JbmZvIHsKICAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8oKSB7IH0K
ICAgICAgICAgCi0gICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKHVuc2lnbmVkIGJ5dGVjb2Rl
SW5kZXgsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJh
eU1vZGUgYXJyYXlNb2RlLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldCkKLSAgICAg
ICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQorICAgICAgICBCeVZhbENvbXBp
bGF0aW9uSW5mbyhCeVZhbEluZm8qIGJ5VmFsSW5mbywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwg
TWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbm90SW5kZXhKdW1wLCBNYWNyb0Fzc2VtYmxl
cjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgQXJy
YXlQcm9maWxlKiBhcnJheVByb2ZpbGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0
LCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbmV4dEhvdFBhdGhUYXJnZXQpCisgICAgICAgICAgICA6
IGJ5VmFsSW5mbyhieVZhbEluZm8pCisgICAgICAgICAgICAsIGJ5dGVjb2RlSW5kZXgoYnl0ZWNv
ZGVJbmRleCkKKyAgICAgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4SnVtcCkKICAgICAg
ICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAgICAgICAsIGFycmF5TW9k
ZShhcnJheU1vZGUpCisgICAgICAgICAgICAsIGFycmF5UHJvZmlsZShhcnJheVByb2ZpbGUpCiAg
ICAgICAgICAgICAsIGRvbmVUYXJnZXQoZG9uZVRhcmdldCkKKyAgICAgICAgICAgICwgbmV4dEhv
dFBhdGhUYXJnZXQobmV4dEhvdFBhdGhUYXJnZXQpCiAgICAgICAgIHsKICAgICAgICAgfQotICAg
ICAgICAKKworICAgICAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbzsKICAgICAgICAgdW5zaWduZWQg
Ynl0ZWNvZGVJbmRleDsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbm90
SW5kZXhKdW1wOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBl
SnVtcDsKICAgICAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsKKyAgICAgICAgQXJyYXlQcm9m
aWxlKiBhcnJheVByb2ZpbGU7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFy
Z2V0OworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbmV4dEhvdFBhdGhUYXJnZXQ7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBzbG93UGF0aFRhcmdldDsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgcmV0dXJuQWRkcmVzczsKICAgICB9OwpAQCAtMjA0LDYgKzIxMiwx
MyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGppdC5wcml2YXRlQ29tcGlsZUdldEJ5
VmFsKGJ5VmFsSW5mbywgcmV0dXJuQWRkcmVzcywgYXJyYXlNb2RlKTsKICAgICAgICAgfQogCisg
ICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChWTSogdm0sIENv
ZGVCbG9jayogY29kZUJsb2NrLCBCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCisgICAgICAg
IHsKKyAgICAgICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9jayk7CisgICAgICAgICAgICBqaXQu
bV9ieXRlY29kZU9mZnNldCA9IGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKKyAgICAgICAgICAg
IGppdC5wcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKGJ5VmFsSW5mbywgcmV0dXJu
QWRkcmVzcywgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQorCiAgICAgICAgIHN0YXRpYyB2b2lk
IGNvbXBpbGVQdXRCeVZhbChWTSogdm0sIENvZGVCbG9jayogY29kZUJsb2NrLCBCeVZhbEluZm8q
IGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKSVRBcnJheU1vZGUg
YXJyYXlNb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2sp
OwpAQCAtMjQ2LDYgKzI2MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBDb21waWxhdGlv
blJlc3VsdCBwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCk7CiAgICAgICAgIAog
ICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlR2V0QnlWYWwoQnlWYWxJbmZvKiwgUmV0dXJuQWRk
cmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKKyAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5
VmFsV2l0aENhY2hlZElkKEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIGNvbnN0IElkZW50
aWZpZXImKTsKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyos
IFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CiAKICAgICAgICAgdm9pZCBwcml2YXRl
Q29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eShCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBK
SVRBcnJheU1vZGUpOwpAQCAtMzcxLDcgKzM4Nyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBKdW1wTGlzdCBlbWl0QXJyYXlTdG9yYWdlUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFi
bGVKdW1wJiBiYWRUeXBlKTsKICAgICAgICAgSnVtcExpc3QgZW1pdEludFR5cGVkQXJyYXlQdXRC
eVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJyYXlUeXBl
KTsKICAgICAgICAgSnVtcExpc3QgZW1pdEZsb2F0VHlwZWRBcnJheVB1dEJ5VmFsKEluc3RydWN0
aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgVHlwZWRBcnJheVR5cGUpOwotICAgICAgICAK
KworICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJ
bnN0cnVjdGlvbiosIGNvbnN0IElkZW50aWZpZXImLCBKdW1wJiBmYXN0RG9uZUNhc2UsIEp1bXAm
IHNsb3dEb25lQ2FzZSwgSnVtcExpc3QmIHNsb3dDYXNlcyk7CisKICAgICAgICAgZW51bSBGaW5h
bE9iamVjdE1vZGUgeyBNYXlCZUZpbmFsLCBLbm93bk5vdEZpbmFsIH07CiAKICAgICAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRp
b24sIFQgbGVmdEhhbmRTaWRlLCBTdHJ1Y3R1cmUqKTsKQEAgLTcwMiw2ICs3MjAsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJSZWcsIGNvbnN0IElkZW50aWZpZXIqKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SkosIGludCwgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBB
cnJheVByb2ZpbGUqKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oQ19KSVRPcGVyYXRp
b25fRUpzYywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSnNjQywgaW50LCBHUFJSZWcsIEpTQ2VsbCopOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3BlcmF0aW9uX0VKc2Na
LCBHUFJSZWcsIGludDMyX3QpOwpAQCAtNzQ2LDYgKzc2NSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
I2VuZGlmCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRUpKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpK
SkFwLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBBcnJheVByb2ZpbGUqKTsK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FSkpKQnksIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIEJ5VmFsSW5mbyop
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VKWkosIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWiwgUmVnaXN0
ZXJJRCwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRVBjLCBJbnN0cnVjdGlvbiopOwpAQCAtNzYyLDYgKzc4Miw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKSWRjLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBjb25zdCBJZGVu
dGlmaWVyKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RUpKQXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUq
KTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJh
dGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5m
byopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3Bl
cmF0aW9uX0VKUywgR1BSUmVnLCBHUFJSZWcsIHNpemVfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNf
SklUT3BlcmF0aW9uX0VKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCk7CkBAIC03NjksNiArNzkwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUosIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCwgUmVn
aXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCwgQXJyYXlQcm9maWxlKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5LCBSZWdpc3RlcklELCBSZWdpc3Rl
cklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBCeVZh
bEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSlosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWkos
IFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQp
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VaSiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IGQwOGQ3M2VhZDc0MGFkZjhkYTk2NmYzYWQyODg0
ODYzM2Q2NGI2OGQuLjVkNjg2OTAwODFjOTk2ZDdlMzNiZjNiZDI1ZGNjNThiMDMwZjdkNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC00MTEsNiArNDExLDEyIEBA
IEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZf
SklUT3BlcmF0aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0
aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5IG9wZXJhdGlvbiwg
UmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBSZWdpc3RlcklEIHJlZ09wMywg
QnlWYWxJbmZvKiBieVZhbEluZm8pCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KHJlZ09wMSwgcmVnT3AyLCByZWdPcDMsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7CisgICAg
cmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKK30KKwogQUxX
QVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRVpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZykKIHsKICAgICBzZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKGRzdCksIGFyZyk7CkBAIC00NTks
NiArNDY1LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwIG9wZXJhCiAgICAgcmV0dXJuIGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0K
IAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpKQnkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgR1BS
UmVnIGFyZzIsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGJ5VmFsSW5mbykpOworICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRp
b24sIGRzdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpj
YWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24s
IEdQUlJlZyBhcmcxKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxKTsK
QEAgLTYwMCw2ICs2MTIsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAgb3BlcmEKICAgICByZXR1cm4g
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBk
c3QpOwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBh
cmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBh
eWxvYWQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgU0g0XzMy
QklUX0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbVB0cihieVZhbElu
Zm8pKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVS
ZXN1bHQob3BlcmF0aW9uLCBkc3QpOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJh
dGlvbl9FSkogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQ
YXlsb2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQogewogICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwg
YXJnMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CkBAIC02
NjYsNiArNjg0LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpj
YWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJuIGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAorQUxXQVlTX0lOTElORSBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpK
SkJ5IG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDFUYWcsIFJlZ2lzdGVySUQgcmVnT3AxUGF5
bG9hZCwgUmVnaXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lzdGVySUQgcmVnT3AyUGF5bG9hZCwgUmVn
aXN0ZXJJRCByZWdPcDNUYWcsIFJlZ2lzdGVySUQgcmVnT3AzUGF5bG9hZCwgQnlWYWxJbmZvKiBi
eVZhbEluZm8pCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRf
RFVNTVlfQVJHIHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyBy
ZWdPcDJQYXlsb2FkLCByZWdPcDJUYWcsIHJlZ09wM1BheWxvYWQsIHJlZ09wM1RhZywgVHJ1c3Rl
ZEltbVB0cihieVZhbEluZm8pKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25D
aGVjayhvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FWkogb3BlcmF0aW9uLCBpbnQgZHN0
LCBSZWdpc3RlcklEIHJlZ09wMVRhZywgUmVnaXN0ZXJJRCByZWdPcDFQYXlsb2FkKQogewogICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIoZHN0KSwgcmVnT3AxUGF5
bG9hZCwgcmVnT3AxVGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CmluZGV4IGQzY2YwZGZkZjdlMTUwZDlkMzEwNjJiMjlkOGE2ZjU4M2Y2YTAwNjUuLmUwYzRmOGQy
YmM2ODczZDZjNzhlMjNmZTBiZmI0ODY3NzZjOTcyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTA2Nyw2ICsxMDY3LDcgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50
IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVBy
b2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Cisg
ICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAg
ICAgCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCBy
ZWdUMSk7CiAKQEAgLTEwOTcsOCArMTA5OCwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfaW5k
ZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIExhYmVs
IGRvbmUgPSBsYWJlbCgpOwogICAgIAogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsK
KworICAgIExhYmVsIG5leHRIb3RQYXRoID0gbGFiZWwoKTsKICAgICAKLSAgICBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0
LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBl
bmQoQnlWYWxDb21waWxhdGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBQYXRj
aGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUsIG5leHRIb3RQYXRoKSk7
CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9y
JiBpdGVyKQpAQCAtMTEwNiw3ICsxMTA5LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19p
bmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3QKICAg
ICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgYmFz
ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBBcnJheVByb2ZpbGUqIHByb2Zp
bGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZv
KiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbklu
ZGV4XS5ieVZhbEluZm87CiAgICAgCiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwg
YmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjawogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFz
ZSBhcnJheSBjaGVjawpAQCAtMTExNyw3ICsxMTIwLDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZl
Y3QKICAgICAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2UsIHJlZ1QwKTsKICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3BlcnR5LCByZWdUMSk7Ci0gICAgQ2FsbCBjYWxsID0g
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0LCBkc3QsIHJl
Z1QwLCByZWdUMSwgcHJvZmlsZSk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0LCBkc3QsIHJlZ1QwLCByZWdUMSwgYnlWYWxJ
bmZvKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5k
ZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5m
b1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggNDNlMDJlZTg1
MWY3ZTdmY2Q3NmY4ZDUzMmFjYzEyODIwZWMzNDg1NC4uOTFjMDBlM2ZkNDVlMDk3ZTNiYjFjMzc5
ZDdjOTAzZjBmZDYyMDk5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcApAQCAtMTA2Nyw2ICsxMDY3LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaGFz
X2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBp
bnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3Bl
cnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUq
IHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlW
YWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAgCiAg
ICAgZW1pdExvYWRQYXlsb2FkKGJhc2UsIHJlZ1QwKTsKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZO
b3RKU0NlbGwoYmFzZSk7CkBAIC0xMDk4LDggKzEwOTksMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
aGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICBMYWJlbCBkb25lID0gbGFiZWwoKTsKICAgICAKICAgICBlbWl0U3RvcmVCb29sKGRzdCwgcmVn
VDApOworCisgICAgTGFiZWwgbmV4dEhvdFBhdGggPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlW
YWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVP
ZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
LmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQs
IFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSwgbmV4dEhvdFBh
dGgpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImIGl0ZXIpCkBAIC0xMTA3LDcgKzExMTAsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
aGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dAogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGlu
dCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVy
dHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIEFycmF5UHJvZmlsZSog
cHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKKyAgICBCeVZh
bEluZm8qIGJ5VmFsSW5mbyA9IG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0
aW9uSW5kZXhdLmJ5VmFsSW5mbzsKICAgICAKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChp
dGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAv
LyBiYXNlIGFycmF5IGNoZWNrCkBAIC0xMTE4LDcgKzExMjEsNyBAQCB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
biwgVmVjdAogICAgIAogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1p
dExvYWQocHJvcGVydHksIHJlZ1QzLCByZWdUMik7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0LCBkc3QsIHJlZ1QxLCByZWdU
MCwgcmVnVDMsIHJlZ1QyLCBwcm9maWxlKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQsIGRzdCwgcmVnVDEsIHJlZ1QwLCBy
ZWdUMywgcmVnVDIsIGJ5VmFsSW5mbyk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21f
YnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1f
YnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJl
c3MgPSBjYWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAK
aW5kZXggYjU5MTM0ZWFmNzVmZTgwOTJlYTJhMmNiNWVjY2U0ZTVmNGY3MTdjOS4uN2FlNDNmMGEw
YTlhNWVhNzEyYzliYjA0YzkyZDI2MDkyM2JkNzM1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC00NzgsNyArNDc4LDcgQEAgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblJlYWxsb2NhdGVTdG9yYWdlQW5kRmluaXNoUHV0KEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmoKICAgICBiYXNlLT5wdXREaXJlY3Qodm0sIG9mZnNldCwgSlNWYWx1ZTo6ZGVj
b2RlKHZhbHVlKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUgdmFsdWUs
IEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQorc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNW
YWx1ZSB2YWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gY2FsbEZy
YW1lLT52bSgpOwogICAgIGlmIChMSUtFTFkoc3Vic2NyaXB0LmlzVUludDMyKCkpKSB7CkBAIC00
ODgsNyArNDg4LDcgQEAgc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwKICAgICAgICAgICAgIGlmIChv
YmplY3QtPmNhblNldEluZGV4UXVpY2tseShpKSkKICAgICAgICAgICAgICAgICBvYmplY3QtPnNl
dEluZGV4UXVpY2tseShjYWxsRnJhbWUtPnZtKCksIGksIHZhbHVlKTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAg
ICAgICAgICAgICAgICBieVZhbEluZm8tPmFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsK
ICAgICAgICAgICAgICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+cHV0QnlJbmRleChvYmpl
Y3QsIGNhbGxGcmFtZSwgaSwgdmFsdWUsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0
TW9kZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlCkBAIC01MDIsNyArNTAyLDcg
QEAgc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFz
ZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGRpcmVj
dFB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNW
YWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUgdmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxl
KQorc3RhdGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2Jq
ZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQnlWYWxJ
bmZvKiBieVZhbEluZm8pCiB7CiAgICAgYm9vbCBpc1N0cmljdE1vZGUgPSBjYWxsRnJhbWUtPmNv
ZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKTsKICAgICBpZiAoTElLRUxZKHN1YnNjcmlwdC5pc1VJ
bnQzMigpKSkgewpAQCAtNTE0LDcgKzUxNCw3IEBAIHN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFs
KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhcnJheVByb2ZpbGUtPnNl
dE91dE9mQm91bmRzKCk7CisgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRP
ZkJvdW5kcygpOwogICAgICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3RJbmRleChjYWxsRnJhbWUs
IGluZGV4LCB2YWx1ZSwgMCwgaXNTdHJpY3RNb2RlID8gUHV0RGlyZWN0SW5kZXhTaG91bGRUaHJv
dyA6IFB1dERpcmVjdEluZGV4U2hvdWxkTm90VGhyb3cpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtNTQwLDcgKzU0MCw3IEBAIHN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzCiAgICAgICAgIGJh
c2VPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIHByb3BlcnR5LCB2YWx1ZSwgc2xv
dCk7CiAgICAgfQogfQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVBy
b2ZpbGUqIGFycmF5UHJvZmlsZSkKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZh
bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
QnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC01NTQsMjEgKzU1NCwx
OSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0g
YXNPYmplY3QoYmFzZVZhbHVlKTsKICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwog
Ci0gICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVj
b2RlT2Zmc2V0KCk7Ci0gICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7Ci0gICAgICAgIEJ5
VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRl
Y29kZU9mZnNldCAtIDEpOwotICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7
CisgICAgICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAg
ICAgIEFTU0VSVCghYnlWYWxJbmZvLT5zdHViUm91dGluZSk7CiAKICAgICAgICAgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7CiAgICAgICAgIGlmIChoYXNPcHRp
bWl6YWJsZUluZGV4aW5nKHN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8g
b3B0aW1pemUuCiAgICAgICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlN
b2RlRm9yU3RydWN0dXJlKHN0cnVjdHVyZSk7Ci0gICAgICAgICAgICBpZiAoaml0QXJyYXlNb2Rl
UGVybWl0c1B1dChhcnJheU1vZGUpICYmIGFycmF5TW9kZSAhPSBieVZhbEluZm8uYXJyYXlNb2Rl
KSB7CisgICAgICAgICAgICBpZiAoaml0QXJyYXlNb2RlUGVybWl0c1B1dChhcnJheU1vZGUpICYm
IGFycmF5TW9kZSAhPSBieVZhbEluZm8tPmFycmF5TW9kZSkgewogICAgICAgICAgICAgICAgIENv
ZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAg
ICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29k
ZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9m
aWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVy
ZSk7CiAKLSAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNv
ZGVCbG9jaygpLCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVT
UyksIGFycmF5TW9kZSk7CisgICAgICAgICAgICAgICAgSklUOjpjb21waWxlUHV0QnlWYWwoJnZt
LCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRV
Uk5fQUREUkVTUyksIGFycmF5TW9kZSk7CiAgICAgICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0
cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC01NzksNyArNTc3LDcgQEAgdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UKICAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRleGVk
IGdldCwgdGhlbiBkb24ndCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwogICAg
ICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywg
dGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBvcnR1
bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9y
cGhpYy4KLSAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby5zbG93UGF0aENvdW50ID49IDEwCisg
ICAgICAgICAgICBpZiAoKytieVZhbEluZm8tPnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAg
ICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAg
ICAgICAgICAgICAgLy8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICAg
ICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5B
ZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvblB1dEJ5
VmFsR2VuZXJpYykpOwpAQCAtNTg3LDEwICs1ODUsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UKICAgICAgICAgfQogICAgIH0KIAotICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vi
c2NyaXB0LCB2YWx1ZSwgYXJyYXlQcm9maWxlKTsKKyAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFs
dWUsIHN1YnNjcmlwdCwgdmFsdWUsIGJ5VmFsSW5mbyk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkK
K3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNh
bGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8q
IGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGNhbGxGcmFtZSk7CkBAIC02MDMsMjIgKzYwMSwy
MCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwoRXhlY1N0YXRl
KiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlCiAgICAgaWYgKHN1YnNjcmlwdC5pc0ludDMyKCkp
IHsKICAgICAgICAgLy8gU2VlIGlmIGl0J3Mgd29ydGggb3B0aW1pemluZyBhdCBhbGwuCiAgICAg
ICAgIGJvb2wgZGlkT3B0aW1pemUgPSBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHVuc2lnbmVk
IGJ5dGVjb2RlT2Zmc2V0ID0gY2FsbEZyYW1lLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsK
LSAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgQnlWYWxJbmZvJiBieVZh
bEluZm8gPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5nZXRCeVZhbEluZm8oYnl0ZWNvZGVPZmZz
ZXQgLSAxKTsKLSAgICAgICAgQVNTRVJUKCFieVZhbEluZm8uc3R1YlJvdXRpbmUpOworCisgICAg
ICAgIEFTU0VSVChjYWxsRnJhbWUtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKKyAgICAg
ICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5lKTsKIAogICAgICAgICBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSA9IG9iamVjdC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKGhhc09wdGlt
aXphYmxlSW5kZXhpbmcoc3RydWN0dXJlKSkgewogICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBv
cHRpbWl6ZS4KICAgICAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGUgPSBqaXRBcnJheU1v
ZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJlKTsKLSAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQ
ZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFsSW5mby5hcnJheU1vZGUp
IHsKKyAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYg
YXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlNb2RlKSB7CiAgICAgICAgICAgICAgICAgQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgICAgICAgICAg
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAg
ICAgICAgICAgICBhcnJheVByb2ZpbGUtPmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihsb2NrZXIs
IGNvZGVCbG9jaywgc3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICBieVZhbEluZm8tPmFycmF5
UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1
Y3R1cmUpOwogCi0gICAgICAgICAgICAgICAgSklUOjpjb21waWxlRGlyZWN0UHV0QnlWYWwoJnZt
LCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9V
Ul9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAgICAgICAgICAgSklUOjpjb21w
aWxlRGlyZWN0UHV0QnlWYWwoJnZtLCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCBieVZhbEluZm8s
IFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAg
ICAgICAgICAgICBkaWRPcHRpbWl6ZSA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
QEAgLTYyOSwxNyArNjI1LDE3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQ
dXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUKICAgICAgICAgICAg
IC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhlbiBkb24ndCBldmVuIHdhaXQgdW50
aWwgMTAgdGltZXMuIEZvciBjYXNlcwogICAgICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1p
bmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRo
IG9mCiAgICAgICAgICAgICAvLyBvcHBvcnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRo
ZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9ycGhpYy4KLSAgICAgICAgICAgIGlmICgrK2J5VmFs
SW5mby5zbG93UGF0aENvdW50ID49IDEwCisgICAgICAgICAgICBpZiAoKytieVZhbEluZm8tPnNs
b3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2
bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hl
bkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgZXZlciB0cnkg
dG8gb3B0aW1pemUuCiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNz
KGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERS
RVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgZGlyZWN0UHV0QnlWYWwoY2FsbEZyYW1l
LCBvYmplY3QsIHN1YnNjcmlwdCwgdmFsdWUsIGFycmF5UHJvZmlsZSk7CisgICAgZGlyZWN0UHV0
QnlWYWwoY2FsbEZyYW1lLCBvYmplY3QsIHN1YnNjcmlwdCwgdmFsdWUsIGJ5VmFsSW5mbyk7CiB9
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEFycmF5UHJvZmls
ZSogYXJyYXlQcm9maWxlKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2Vu
ZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC02NDgsMTEgKzY0
NCwxMSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jbwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKIAotICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VW
YWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgYXJyYXlQcm9maWxlKTsKKyAgICBwdXRCeVZhbChleGVj
LCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUsIGJ5VmFsSW5mbyk7CiB9CiAKIAotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQXJyYXlQcm9maWxlKiBh
cnJheVByb2ZpbGUpCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxH
ZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwog
ICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTY2MSw3ICs2
NTcsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmlj
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdQogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKICAgICBSRUxFQVNFX0FTU0VSVChiYXNlVmFs
dWUuaXNPYmplY3QoKSk7Ci0gICAgZGlyZWN0UHV0QnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZVZh
bHVlKSwgc3Vic2NyaXB0LCB2YWx1ZSwgYXJyYXlQcm9maWxlKTsKKyAgICBkaXJlY3RQdXRCeVZh
bChleGVjLCBhc09iamVjdChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlLCBieVZhbEluZm8p
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4
ZWNTdGF0ZSogZXhlYywgRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQpAQCAtMTQxNCwzNCArMTQxMCw0
MSBAQCBzdGF0aWMgYm9vbCBjYW5BY2Nlc3NBcmd1bWVudEluZGV4UXVpY2tseShKU09iamVjdCYg
b2JqZWN0LCB1aW50MzJfdCBpbmRleCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBK
U1ZhbHVlIGdldEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFs
dWUgc3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSwgUmV0dXJuQWRkcmVzc1B0
ciByZXR1cm5BZGRyZXNzKQorc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJ
bmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCiB7CiAgICAgaWYgKExJS0VMWShi
YXNlVmFsdWUuaXNDZWxsKCkgJiYgc3Vic2NyaXB0LmlzU3RyaW5nKCkpKSB7CiAgICAgICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgICAgIFN0cnVjdHVyZSYgc3RydWN0dXJlID0gKmJhc2VW
YWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKEpTQ2VsbDo6Y2FuVXNl
RmFzdEdldE93blByb3BlcnR5KHN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgIGlmIChSZWZQdHI8
QXRvbWljU3RyaW5nSW1wbD4gZXhpc3RpbmdBdG9taWNTdHJpbmcgPSBhc1N0cmluZyhzdWJzY3Jp
cHQpLT50b0V4aXN0aW5nQXRvbWljU3RyaW5nKGV4ZWMpKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KEpTVmFsdWUgcmVzdWx0ID0gYmFzZVZhbHVlLmFzQ2VsbCgpLT5mYXN0R2V0T3duUHJvcGVydHko
dm0sIHN0cnVjdHVyZSwgZXhpc3RpbmdBdG9taWNTdHJpbmcuZ2V0KCkpKQorICAgICAgICAgICAg
ICAgIGlmIChKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5hc0NlbGwoKS0+ZmFzdEdldE93blBy
b3BlcnR5KHZtLCBzdHJ1Y3R1cmUsIGV4aXN0aW5nQXRvbWljU3RyaW5nLmdldCgpKSkgeworICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkp
OworICAgICAgICAgICAgICAgICAgICBpZiAoYnlWYWxJbmZvLT5zdHViSW5mbyAmJiBieVZhbElu
Zm8tPmNhY2hlZElkLmltcGwoKSAhPSBleGlzdGluZ0F0b21pY1N0cmluZykKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoc3Vic2NyaXB0LmlzVUludDMyKCkpIHsKKyAg
ICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKKyAgICAgICAg
YnlWYWxJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOworCiAgICAgICAgIHVpbnQzMl90IGkgPSBz
dWJzY3JpcHQuYXNVSW50MzIoKTsKICAgICAgICAgaWYgKGlzSlNTdHJpbmcoYmFzZVZhbHVlKSkg
ewogICAgICAgICAgICAgaWYgKGFzU3RyaW5nKGJhc2VWYWx1ZSktPmNhbkdldEluZGV4KGkpKSB7
CiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVC
bG9jaygpLCByZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZhbFN0cmlu
ZykpOwogICAgICAgICAgICAgICAgIHJldHVybiBhc1N0cmluZyhiYXNlVmFsdWUpLT5nZXRJbmRl
eChleGVjLCBpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+c2V0
T3V0T2ZCb3VuZHMoKTsKKyAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRP
dXRPZkJvdW5kcygpOwogICAgICAgICB9IGVsc2UgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpKSB7
CiAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKICAg
ICAgICAgICAgIGlmIChvYmplY3QtPmNhbkdldEluZGV4UXVpY2tseShpKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gb2JqZWN0LT5nZXRJbmRleFF1aWNrbHkoaSk7CiAKICAgICAgICAgICAgIGlm
ICghY2FuQWNjZXNzQXJndW1lbnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaSkpCi0gICAgICAgICAg
ICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAgICAgICAgICAgICAgIGJ5
VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgICAgICB9CiAKICAg
ICAgICAgcmV0dXJuIGJhc2VWYWx1ZS5nZXQoZXhlYywgaSk7CkBAIC0xNDUzLDc0ICsxNDU2LDkx
IEBAIHN0YXRpYyBKU1ZhbHVlIGdldEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNl
VmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LCBBCiAgICAgYXV0byBwcm9wZXJ0eSA9IHN1YnNjcmlw
dC50b1Byb3BlcnR5S2V5KGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25B
c0J5dGVjb2RlT2Zmc2V0KCkpOworICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmIGJ5VmFs
SW5mby0+Y2FjaGVkSWQgIT0gcHJvcGVydHkpCisgICAgICAgIGJ5VmFsSW5mby0+dG9va1Nsb3dQ
YXRoID0gdHJ1ZTsKKwogICAgIHJldHVybiBiYXNlVmFsdWUuZ2V0KGV4ZWMsIHByb3BlcnR5KTsK
IH0KIAogZXh0ZXJuICJDIiB7CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUq
IGFycmF5UHJvZmlsZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0
QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQog
ewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcigmdm0sIGV4ZWMpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRCYXNlKTsKICAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkU3Vic2NyaXB0KTsKIAotICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywg
YmFzZVZhbHVlLCBzdWJzY3JpcHQsIGFycmF5UHJvZmlsZSwgUmV0dXJuQWRkcmVzc1B0cihPVVJf
UkVUVVJOX0FERFJFU1MpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMsIGJh
c2VWYWx1ZSwgc3Vic2NyaXB0LCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVS
Tl9BRERSRVNTKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgSlNW
YWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFs
dWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwotICAgIAor
CiAgICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpICYmIHN1YnNjcmlwdC5pc0ludDMyKCkpIHsK
ICAgICAgICAgLy8gU2VlIGlmIGl0J3Mgd29ydGggb3B0aW1pemluZyB0aGlzIGF0IGFsbC4KICAg
ICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CiAgICAgICAgIGJv
b2wgZGlkT3B0aW1pemUgPSBmYWxzZTsKIAotICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNl
dCA9IGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOwotICAgICAgICBBU1NFUlQoYnl0
ZWNvZGVPZmZzZXQpOwotICAgICAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGV4ZWMtPmNvZGVC
bG9jaygpLT5nZXRCeVZhbEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsKLSAgICAgICAgQVNTRVJU
KCFieVZhbEluZm8uc3R1YlJvdXRpbmUpOwotICAgICAgICAKKyAgICAgICAgQVNTRVJUKGV4ZWMt
PmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKKyAgICAgICAgQVNTRVJUKCFieVZhbEluZm8t
PnN0dWJSb3V0aW5lKTsKKwogICAgICAgICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhvYmpl
Y3QtPnN0cnVjdHVyZSh2bSkpKSB7CiAgICAgICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXpl
LgogICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2
bSk7CiAgICAgICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9y
U3RydWN0dXJlKHN0cnVjdHVyZSk7Ci0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFs
SW5mby5hcnJheU1vZGUpIHsKKyAgICAgICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZv
LT5hcnJheU1vZGUpIHsKICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZWFjaGVkIHRoaXMgY2Fz
ZSwgd2UgZ290IGFuIGludGVyZXN0aW5nIGFycmF5IG1vZGUgd2UgZGlkIG5vdCBleHBlY3Qgd2hl
biB3ZSBjb21waWxlZC4KICAgICAgICAgICAgICAgICAvLyBMZXQncyB1cGRhdGUgdGhlIHByb2Zp
bGUgdG8gZG8gYmV0dGVyIG5leHQgdGltZS4KICAgICAgICAgICAgICAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwogICAgICAgICAgICAgICAgIENvbmN1cnJlbnRK
SVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgICAgICBhcnJh
eVByb2ZpbGUtPmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihsb2NrZXIsIGNvZGVCbG9jaywgc3Ry
dWN0dXJlKTsKKyAgICAgICAgICAgICAgICBieVZhbEluZm8tPmFycmF5UHJvZmlsZS0+Y29tcHV0
ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOwogCi0gICAg
ICAgICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWwoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwg
JmJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBhcnJheU1v
ZGUpOworICAgICAgICAgICAgICAgIEpJVDo6Y29tcGlsZUdldEJ5VmFsKCZ2bSwgZXhlYy0+Y29k
ZUJsb2NrKCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1Mp
LCBhcnJheU1vZGUpOwogICAgICAgICAgICAgICAgIGRpZE9wdGltaXplID0gdHJ1ZTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBpZiAoIWRpZE9wdGltaXpl
KSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSB0YWtlIHNsb3cgcGF0aCBtb3JlIHRoYW4gMTAgdGlt
ZXMgd2l0aG91dCBwYXRjaGluZyB0aGVuIG1ha2Ugc3VyZSB3ZQogICAgICAgICAgICAgLy8gbmV2
ZXIgbWFrZSB0aGF0IG1pc3Rha2UgYWdhaW4uIE9yLCBpZiB3ZSBmYWlsZWQgdG8gcGF0Y2ggYW5k
IHdlIGhhdmUgc29tZSBvYmplY3QKICAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRl
eGVkIGdldCwgdGhlbiBkb24ndCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwog
ICAgICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0
cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBv
cnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5
bW9ycGhpYy4KLSAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby5zbG93UGF0aENvdW50ID49IDEw
CisgICAgICAgICAgICBpZiAoKytieVZhbEluZm8tPnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAg
ICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0
c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAg
ICAgICAgICAgICAgICAgLy8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAg
ICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1
cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdl
dEJ5VmFsR2VuZXJpYykpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIAot
ICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQs
IGFycmF5UHJvZmlsZSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKKwor
ICAgIGlmIChiYXNlVmFsdWUuaXNPYmplY3QoKSAmJiAoc3Vic2NyaXB0LmlzU3ltYm9sKCkgfHwg
c3Vic2NyaXB0LmlzU3RyaW5nKCkpKSB7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXIgcHJvcGVy
dHlOYW1lID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZXhlYyk7CisKKyAgICAgICAgaWYgKCFz
dWJzY3JpcHQuaXNTdHJpbmcoKSB8fCAhcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAg
ICAgICAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOworICAgICAg
ICAgICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5lKTsKKyAgICAgICAgICAgIEpJVDo6
Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksIGJ5VmFs
SW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBwcm9wZXJ0eU5hbWUp
OworICAgICAgICB9CisKKyAgICAgICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKKyAg
ICAgICAgYm9vbCBoYXNSZXN1bHQgPSBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGFzUmVz
dWx0ID8gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpIDoganNVbmRlZmluZWQoKSk7
CisgICAgfQorCisgICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUs
IHN1YnNjcmlwdCwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVT
UykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KLSAgICAKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVs
dChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKKworRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZh
dWx0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0s
IGV4ZWMpOwpAQCAtMTUzMywxNiArMTU1MywxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLAog
ICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogICAgIGJvb2wgZGlk
T3B0aW1pemUgPSBmYWxzZTsKIAotICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+
bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7Ci0gICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsK
LSAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRCeVZhbElu
Zm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsKLSAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGlu
ZSk7CisgICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKKyAgICBB
U1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOwogICAgIAogICAgIGlmIChoYXNPcHRpbWl6
YWJsZUluZGV4aW5nKG9iamVjdC0+c3RydWN0dXJlKHZtKSkpIHsKICAgICAgICAgLy8gQXR0ZW1w
dCB0byBvcHRpbWl6ZS4KICAgICAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZSA9IGppdEFycmF5
TW9kZUZvclN0cnVjdHVyZShvYmplY3QtPnN0cnVjdHVyZSh2bSkpOwotICAgICAgICBpZiAoYXJy
YXlNb2RlICE9IGJ5VmFsSW5mby5hcnJheU1vZGUpIHsKLSAgICAgICAgICAgIEpJVDo6Y29tcGls
ZUhhc0luZGV4ZWRQcm9wZXJ0eSgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCAmYnlWYWxJbmZvLCBS
ZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAg
IGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLT5hcnJheU1vZGUpIHsKKyAgICAgICAgICAgIEpJ
VDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0eSgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBieVZh
bEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsK
ICAgICAgICAgICAgIGRpZE9wdGltaXplID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTE1
NTMsMTAgKzE1NzEsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25I
YXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywKICAgICAgICAgLy8gdGhh
dCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0
aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgIC8vIHdoZXJlIHdlIHNlZSBub24taW5kZXgtaW50ZXJj
ZXB0aW5nIG9iamVjdHMsIHRoaXMgZ2l2ZXMgMTAgaXRlcmF0aW9ucyB3b3J0aCBvZgogICAgICAg
ICAvLyBvcHBvcnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1h
eSBiZSBwb2x5bW9ycGhpYy4KLSAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQg
Pj0gMTAKKyAgICAgICAgaWYgKCsrYnlWYWxJbmZvLT5zbG93UGF0aENvdW50ID49IDEwCiAgICAg
ICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAg
ICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KLSAgICAgICAgICAgIGN0aVBh
dGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhleGVjLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVzc1B0
cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihvcGVyYXRpb25IYXNJbmRleGVkUHJv
cGVydHlHZW5lcmljKSk7IAorICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNz
KGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyks
IEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMpKTsKICAgICAg
ICAgfQogICAgIH0KIApAQCAtMTU2NSwxMSArMTU4MywxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBl
eGVjLAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SlNU
cnVlKSk7CiAKICAgICBpZiAoIWNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlja2x5KCpvYmplY3Qs
IGluZGV4KSkKLSAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAgICAg
ICBieVZhbEluZm8tPmFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihvYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIGluZGV4
KSkpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJ
bmRleGVkUHJvcGVydHlHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSog
YXJyYXlQcm9maWxlKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJ
bmRleGVkUHJvcGVydHlHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlW
YWxJbmZvKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTU4NSwxMSArMTYwMywxMSBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMo
RXhlY1N0YXRlKiBleGVjLAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
SlNWYWx1ZTo6SlNUcnVlKSk7CiAKICAgICBpZiAoIWNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlj
a2x5KCpvYmplY3QsIGluZGV4KSkKLSAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5k
cygpOworICAgICAgICBieVZhbEluZm8tPmFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihvYmplY3QtPmhhc1Byb3BlcnR5
KGV4ZWMsIHN1YnNjcmlwdC5hc1VJbnQzMigpKSkpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVj
KTsKQEAgLTE2MDQsMTAgKzE2MjIsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVgogICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIHJlc3VsdCA9IGJhc2VWYWx1ZS5nZXQoZXhlYywgaSk7CiAg
ICAgICAgICAgICBpZiAoIWlzSlNTdHJpbmcoYmFzZVZhbHVlKSkgewotICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0
KCk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKLSAgICAgICAgICAg
ICAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRCeVZhbElu
Zm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsKLSAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJl
dHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVS
Tl9BRERSRVNTKSwgRnVuY3Rpb25QdHIoYnlWYWxJbmZvLnN0dWJSb3V0aW5lID8gb3BlcmF0aW9u
R2V0QnlWYWxHZW5lcmljIDogb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSkpOworICAgICAgICAg
ICAgICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgICAg
ICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBS
ZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKGJ5VmFsSW5m
by0+c3R1YlJvdXRpbmUgPyBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRC
eVZhbE9wdGltaXplKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2Ugewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCAyZWYyYTU2OTlm
N2YzYWQwZTc3MGY0Nzg4ZTk0M2YwN2Y4MTBiYWQ3Li4zZDgzZjU5MGRjZjkxODAzYTM0NDhiYTA4
M2IyZjkyYmNiZTg0ZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuaApAQCAtNTgsNiArNTgsNyBAQCBleHRlcm4gIkMiIHsKICAgICBBOiBKU0FycmF5KgogICAg
IEFhcDogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSoKICAgICBBcDogQXJyYXlQcm9maWxlKgorICAg
IEJ5OiBCeVZhbEluZm8qCiAgICAgQzogSlNDZWxsKgogICAgIENiOiBDb2RlQmxvY2sqCiAgICAg
Q2xpOiBDYWxsTGlua0luZm8qCkBAIC0xMTMsNiArMTE0LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpJKShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlMKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0
aW9uX0VKSWRjKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciop
OwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25f
RUpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKQXApKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7
Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9F
SkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbElu
Zm8qKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0
aW9uX0VKc3NaKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIGludDMyX3QpOwogdHlwZWRlZiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpQKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgdm9pZCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRVApKEV4ZWNTdGF0ZSosIHZvaWQqKTsKQEAgLTE5NSw2
ICsxOTcsNyBAQCB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VK
SWRKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSQogdHlwZWRlZiB2b2lkIEpJVF9PUEVS
QVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSklkSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBJZGVudGlmaWVyKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYg
dm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZv
aWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpBcCkoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxl
Kik7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpCeSko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQnlWYWxJbmZvKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0
aW9uX0VKUFApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCB2b2lkKiwgdm9pZCopOwogdHlw
ZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSlpKKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lk
IEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSlopKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBpbnQzMl90KTsKQEAgLTI1OSwxMCArMjYyLDEwIEBAIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVy
ZVN0dWJJCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdEJ1
aWxkTGlzdChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBs
KikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJl
Y3ROb25TdHJpY3RCdWlsZExpc3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBVbmlx
dWVkU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25SZWFsbG9jYXRlU3RvcmFnZUFuZEZpbmlzaFB1dChFeGVjU3RhdGUqLCBKU09iamVjdCosIFN0
cnVjdHVyZSosIFByb3BlcnR5T2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdU
Rl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9m
aWxlKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFs
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdURl9JTlRF
Uk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqLCBFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7
CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSosIENhbGxM
aW5rSW5mbyopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlu
a1BvbHltb3JwaGljQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8qKSBXVEZfSU5URVJOQUw7
CkBAIC0zMDksMTEgKzMxMiwxMSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2Nv
cGUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZf
SU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZVdpbGxDYWxsKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNoZWNrSGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWwpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJv
ZmlsZSopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdChF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
U3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5
VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5U
RVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3Ry
aW5nKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYyhFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EZWxldGVCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IGNvbnN0IElkZW50aWZpZXIqKSBXVEZfSU5URVJOQUw7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0UE5hbWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwog
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykgV1RGX0lOVEVSTkFMOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRl
eCA0ZWYwNmQ5MjEzYTJiMWRiZmZiYTRjN2MzMzRkMmY2ZjFjNDc5MTdlLi4xNzJlMDEzZDUyYWM0
YjQxMmI1ODM3OTBlMDA4Y2MzZjExMjVmYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtOTgsOSArOTgsMTQgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJv
cGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmls
ZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKLSAgICAK
KyAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsK
KwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVn
VDEpOwotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUludGVnZXIocmVnVDEpOwor
CisgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKKworICAgIFBh
dGNoYWJsZUp1bXAgbm90SW5kZXggPSBlbWl0UGF0Y2hhYmxlSnVtcElmTm90SW1tZWRpYXRlSW50
ZWdlcihyZWdUMSk7CisgICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogCiAgICAgLy8gVGhpcyBp
cyB0ZWNobmljYWxseSBpbmNvcnJlY3QgLSB3ZSdyZSB6ZXJvLWV4dGVuZGluZyBhbiBpbnQzMi4g
IE9uIHRoZSBob3QgcGF0aCB0aGlzIGRvZXNuJ3QgbWF0dGVyLgogICAgIC8vIFdlIGNoZWNrIHRo
ZSB2YWx1ZSBhcyBpZiBpdCB3YXMgYSB1aW50MzIgYWdhaW5zdCB0aGUgbV92ZWN0b3JMZW5ndGgg
LSB3aGljaCB3aWxsIGFsd2F5cyBmYWlsIGlmCkBAIC0xMTAsNyArMTE1LDYgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IC8vIGV4dGVuZGluZyBzaW5jZSBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2YWx1
ZSBpbiB0aGUgc2xvdyBjYXNlLgogICAgIHplcm9FeHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdUMSk7
CiAKLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOwogICAgIGVt
aXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwogICAg
IGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QyKTsKIApAQCAtMTQ5
LDggKzE1MywxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwotICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlv
bkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5
cGUsIG1vZGUsIGRvbmUpKTsKKworICAgIExhYmVsIG5leHRIb3RQYXRoID0gbGFiZWwoKTsKKwor
ICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5
VmFsSW5mbywgbV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIHByb2Zp
bGUsIGRvbmUsIG5leHRIb3RQYXRoKSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0RG91
YmxlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCkBAIC0xOTUsMTUg
KzIwMSw1MCBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEFycmF5U3RvcmFnZUxvYWQoSW5zdHJ1
Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9
CiAKK0pJVEdldEJ5SWRHZW5lcmF0b3IgSklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKdW1wJiBmYXN0RG9uZUNhc2UsIEp1bXAmIHNsb3dEb25lQ2FzZSwgSnVtcExpc3QmIHNs
b3dDYXNlcykKK3sKKyAgICAvLyBiYXNlOiByZWdUMAorICAgIC8vIHByb3BlcnR5OiByZWdUMQor
ICAgIC8vIHNjcmF0Y2g6IHJlZ1QzCisKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZDsKKworICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2Vs
bChyZWdUMSkpOworICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICBz
bG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwg
SlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgp
KSk7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgU3ltYm9sOjpvZmZzZXRPZlByaXZh
dGVOYW1lKCkpLCByZWdUMyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVu
ZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0
dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOworICAgICAgICBs
b2FkUHRyKEFkZHJlc3MocmVnVDEsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMyk7
CisgICAgfQorICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCByZWdUMywg
VHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSkpOworCisgICAgSklUR2V0QnlJZEdl
bmVyYXRvciBnZW4oCisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVP
ZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAorICAgICAgICBKU1ZhbHVl
UmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgRG9udFNwaWxsKTsKKyAgICBnZW4uZ2Vu
ZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisKKyAgICBmYXN0RG9uZUNhc2UgPSBqdW1wKCk7CisKKyAg
ICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwoKTsKKyAgICBnZW4uc2xvd1BhdGhKdW1wKCku
bGluayh0aGlzKTsKKworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oV2l0aFByb2ZpbGUs
IG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgZHN0LCBnZW4uc3R1YkluZm8oKSwgcmVnVDAsIHBy
b3BlcnR5TmFtZS5pbXBsKCkpOworICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhC
ZWdpbiwgY2FsbCk7CisgICAgc2xvd0RvbmVDYXNlID0ganVtcCgpOworCisgICAgcmV0dXJuIGdl
bjsKK30KKwogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikK
IHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBp
bnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3Bl
cnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBBcnJheVByb2ZpbGUq
IHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlW
YWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVj
dGlvbkluZGV4XS5ieVZhbEluZm87CiAgICAgCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBw
cm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJh
c2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3Bl
cnR5IGludDMyIGNoZWNrCiAgICAgSnVtcCBub25DZWxsID0ganVtcCgpOwogICAgIGxpbmtTbG93
Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawogICAgIEp1bXAgbm90U3RyaW5nID0gYnJh
bmNoU3RydWN0dXJlKE5vdEVxdWFsLCAKQEAgLTIyNCw3ICsyNjUsNyBAQCB2b2lkIEpJVDo6ZW1p
dFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0
b3I8U2xvd0NhcwogICAgIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYmFzZSwgcmVnVDAp
OwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVydHksIHJlZ1QxKTsKLSAgICBDYWxs
IGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVn
VDAsIHJlZ1QxLCBwcm9maWxlKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDAsIHJlZ1QxLCBieVZhbEluZm8pOwogCiAg
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1Bh
dGhUYXJnZXQgPSBzbG93UGF0aDsKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJ
bnN0cnVjdGlvbkluZGV4XS5yZXR1cm5BZGRyZXNzID0gY2FsbDsKQEAgLTI2Myw2ICszMDQsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwog
ICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAg
QXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9m
aWxlOworICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5m
bygpOwogCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5
LCByZWdUMSk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdU
MSk7CkBAIC0yOTksOCArMzQxLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJl
bCgpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGls
YXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKLQorICAg
IG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFs
SW5mbywgbV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBw
cm9maWxlLCBkb25lLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0R2VuZXJp
Y0NvbnRpZ3VvdXNQdXRCeVZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBQYXRj
aGFibGVKdW1wJiBiYWRUeXBlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdTaGFwZSkKQEAgLTM5OSw2
ICs0NDAsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGludCBwcm9wZXJ0eSA9IGN1
cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHZhbHVlID0gY3VycmVudElu
c3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZvKiBieVZhbElu
Zm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZh
bEluZm87CiAKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNr
CiAgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBj
aGVjawpAQCAtNDI0LDcgKzQ2Niw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgZW1p
dEdldFZpcnR1YWxSZWdpc3Rlcihwcm9wZXJ0eSwgcmVnVDEpOwogICAgIGVtaXRHZXRWaXJ0dWFs
UmVnaXN0ZXIodmFsdWUsIHJlZ1QyKTsKICAgICBib29sIGlzRGlyZWN0ID0gbV9pbnRlcnByZXRl
ci0+Z2V0T3Bjb2RlSUQoY3VycmVudEluc3RydWN0aW9uLT51Lm9wY29kZSkgPT0gb3BfcHV0X2J5
X3ZhbF9kaXJlY3Q7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9w
ZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwsIHJlZ1QwLCByZWdUMSwg
cmVnVDIsIHByb2ZpbGUpOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oaXNEaXJlY3Qg
PyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMCwgcmVn
VDEsIHJlZ1QyLCBieVZhbEluZm8pOwogCiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5
VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1BhdGhUYXJnZXQgPSBzbG93UGF0aDsKICAgICBtX2J5
VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5yZXR1cm5BZGRyZXNz
ID0gY2FsbDsKQEAgLTk5OSw2ICsxMDQxLDM5IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdl
dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkCiAg
ICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1
bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYykpOwogfQogCit2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpCit7CisgICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2Nr
LT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OworCisg
ICAgSnVtcCBmYXN0RG9uZUNhc2U7CisgICAgSnVtcCBzbG93RG9uZUNhc2U7CisgICAgSnVtcExp
c3Qgc2xvd0Nhc2VzOworCisgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4gPSBlbWl0R2V0QnlW
YWxXaXRoQ2FjaGVkSWQoY3VycmVudEluc3RydWN0aW9uLCBwcm9wZXJ0eU5hbWUsIGZhc3REb25l
Q2FzZSwgc2xvd0RvbmVDYXNlLCBzbG93Q2FzZXMpOworCisgICAgQ29uY3VycmVudEpJVExvY2tl
ciBsb2NrZXIobV9jb2RlQmxvY2stPm1fbG9jayk7CisgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZl
cigqbV92bSwgKnRoaXMsIG1fY29kZUJsb2NrKTsKKyAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3dD
YXNlcywgQ29kZUxvY2F0aW9uTGFiZWwoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVGcm9t
RXhlY3V0YWJsZUFkZHJlc3MocmV0dXJuQWRkcmVzcy52YWx1ZSgpKSkubGFiZWxBdE9mZnNldChi
eVZhbEluZm8tPnJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKSk7CisgICAgcGF0Y2hCdWZmZXIubGlu
ayhmYXN0RG9uZUNhc2UsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxBdE9mZnNldChieVZh
bEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7CisgICAgcGF0Y2hCdWZmZXIubGluayhzbG93RG9u
ZUNhc2UsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxBdE9mZnNldChieVZhbEluZm8tPmJh
ZFR5cGVKdW1wVG9OZXh0SG90UGF0aCkpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBjYWxsU2l0
ZSA6IG1fY2FsbHMpIHsKKyAgICAgICAgaWYgKGNhbGxTaXRlLnRvKQorICAgICAgICAgICAgcGF0
Y2hCdWZmZXIubGluayhjYWxsU2l0ZS5mcm9tLCBGdW5jdGlvblB0cihjYWxsU2l0ZS50bykpOwor
ICAgIH0KKyAgICBnZW4uZmluYWxpemUocGF0Y2hCdWZmZXIpOworCisgICAgYnlWYWxJbmZvLT5z
dHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgIG1fY29kZUJsb2Nr
LCBwYXRjaEJ1ZmZlciwKKyAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlfdmFsIHdpdGggY2FjaGVk
IHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgcHJvcGVy
dHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEoKSwgdG9DU3RyaW5nKCptX2NvZGVCbG9jaykuZGF0
YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKKyAgICBieVZhbEluZm8tPmNhY2hlZElkID0g
cHJvcGVydHlOYW1lOworICAgIGJ5VmFsSW5mby0+c3R1YkluZm8gPSBnZW4uc3R1YkluZm8oKTsK
KworICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CisgICAgcmVw
YXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5ub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkxh
YmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkpKTsKKyAgICByZXBhdGNo
QnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIo
b3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7Cit9CisKIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFk
ZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlW
YWxJbmZvLT5ieXRlY29kZUluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggNjA5Y2ExMzg4MjI3ZGI1YmRhNTM5
Mjc1MzAzZGFkZDJkOGIxY2ViYy4uZmI5NTdhMjI2ZTg2MjUxYjZkMzZlNzcwYzlhY2UzNTJiMjA0
OTliZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzMzJfNjQuY3BwCkBAIC0xNDksMTEgKzE0OSwxMyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9n
ZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2Ug
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxl
ID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOworICAgIEJ5VmFsSW5mbyog
YnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAgIAogICAgIGVtaXRM
b2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMywgcmVnVDIpOwogICAgIAot
ICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpT
VmFsdWU6OkludDMyVGFnKSkpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNl
LCByZWdUMSk7CisgICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNoYWJsZUJyYW5jaDMy
KE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSk7CisgICAg
YWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2Vs
bChyZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGlu
Z1NoYXBlTWFzayksIHJlZ1QxKTsKIApAQCAtMTkxLDggKzE5MywxMCBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1Qw
KTsKKworICAgIExhYmVsIG5leHRIb3RQYXRoID0gbGFiZWwoKTsKICAgICAKLSAgICBtX2J5VmFs
Q29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zm
c2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5h
cHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBu
b3RJbmRleCwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSwgbmV4dEhvdFBhdGgpKTsKIH0K
IAogSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRDb250aWd1b3VzTG9hZChJbnN0cnVjdGlvbiosIFBh
dGNoYWJsZUp1bXAmIGJhZFR5cGUsIEluZGV4aW5nVHlwZSBleHBlY3RlZFNoYXBlKQpAQCAtMjM2
LDE2ICsyNDAsNTEgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2FkKElu
c3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICAKICAgICByZXR1cm4gc2xv
d0Nhc2VzOwogfQotICAgIAorCitKSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFs
V2l0aENhY2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSnVtcCYgZmFzdERvbmVDYXNlLCBKdW1wJiBzbG93RG9uZUNh
c2UsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCit7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51Lm9wZXJhbmQ7CisKKyAgICAvLyBiYXNlOiB0YWcocmVnVDEpLCBwYXlsb2FkKHJl
Z1QwKQorICAgIC8vIHByb3BlcnR5OiB0YWcocmVnVDMpLCBwYXlsb2FkKHJlZ1QyKQorICAgIC8v
IHNjcmF0Y2g6IHJlZ1Q0CisKKyAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaDMyKE5vdEVxdWFs
LCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CisgICAgaWYgKHByb3Bl
cnR5TmFtZS5pc1N5bWJvbCgpKSB7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3Ry
dWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0
KCkpLCBtX3ZtLT5zeW1ib2xTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAgbG9hZFB0cihBZGRy
ZXNzKHJlZ1QyLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSksIHJlZ1Q0KTsKKyAgICB9
IGVsc2UgeworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVh
bCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3Ry
aW5nU3RydWN0dXJlLmdldCgpKSk7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMiwgSlNT
dHJpbmc6Om9mZnNldE9mVmFsdWUoKSksIHJlZ1Q0KTsKKyAgICB9CisgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1Q0LCBUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFt
ZS5pbXBsKCkpKSk7CisKKyAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKKyAgICAgICAgbV9j
b2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0OjpzcGVj
aWFsUmVnaXN0ZXJzKCksCisgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCks
IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIERvbnRTcGlsbCk7CisgICAgZ2VuLmdlbmVyYXRl
RmFzdFBhdGgoKnRoaXMpOworCisgICAgZmFzdERvbmVDYXNlID0ganVtcCgpOworCisgICAgTGFi
ZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAgZ2VuLnNsb3dQYXRoSnVtcCgpLmxpbmso
dGhpcyk7CisKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlLCBvcGVy
YXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QxLCByZWdUMCwg
cHJvcGVydHlOYW1lLmltcGwoKSk7CisgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0
aEJlZ2luLCBjYWxsKTsKKyAgICBzbG93RG9uZUNhc2UgPSBqdW1wKCk7CisKKyAgICByZXR1cm4g
Z2VuOworfQorCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAg
IGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJv
cGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIEFycmF5UHJvZmls
ZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKLSAgICAK
LSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCisgICAgQnlW
YWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVj
dGlvbkluZGV4XS5ieVZhbEluZm87CisKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVy
LCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBw
cm9wZXJ0eSBpbnQzMiBjaGVjawogCiAgICAgSnVtcCBub25DZWxsID0ganVtcCgpOwogICAgIGxp
bmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBhcnJheSBjaGVjawpAQCAtMjY1LDcgKzMwNCw3IEBA
IHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDEs
IHJlZ1QwKTsKICAgICBlbWl0TG9hZChwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QyKTsKLSAgICBDYWxs
IGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVn
VDEsIHJlZ1QwLCByZWdUMywgcmVnVDIsIHByb2ZpbGUpOworICAgIENhbGwgY2FsbCA9IGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSwgZHN0LCByZWdUMSwgcmVnVDAsIHJl
Z1QzLCByZWdUMiwgYnlWYWxJbmZvKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9i
eVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9i
eVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVz
cyA9IGNhbGw7CkBAIC0yNzksNiArMzE4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3Zh
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJl
bnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKKyAgICBCeVZhbEluZm8qIGJ5VmFsSW5m
byA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKICAgICAKICAgICBlbWl0TG9hZDIoYmFz
ZSwgcmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QyKTsKICAgICAKQEAgLTMxNCw3
ICszNTQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgTGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0g
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9i
eXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFsSW5mbywgbV9ieXRlY29k
ZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBwcm9maWxlLCBkb25lLCBk
b25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0R2VuZXJpY0NvbnRpZ3VvdXNQdXRC
eVZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBQYXRjaGFibGVKdW1wJiBiYWRU
eXBlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdTaGFwZSkKQEAgLTQxOSw2ICs0NTksNyBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
NF0udS5hcnJheVByb2ZpbGU7CisgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZhbEluZm87CiAgICAgCiAg
ICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtT
bG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKQEAgLTQ1
OCw3ICs0OTksNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRMb2FkKHZhbHVl
LCByZWdUMCwgcmVnVDEpOwogICAgIGFkZENhbGxBcmd1bWVudChyZWdUMSk7CiAgICAgYWRkQ2Fs
bEFyZ3VtZW50KHJlZ1QwKTsKLSAgICBhZGRDYWxsQXJndW1lbnQoVHJ1c3RlZEltbVB0cihwcm9m
aWxlKSk7CisgICAgYWRkQ2FsbEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7CiAg
ICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhpc0RpcmVjdCA/IG9w
ZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwpOwogI2Vsc2UKICAgICAv
LyBUaGUgcmVnaXN0ZXIgc2VsZWN0aW9uIGJlbG93IGlzIGNob3NlbiB0byByZWR1Y2UgcmVnaXN0
ZXIgc3dhcHBpbmcgb24gQVJNLgpAQCAtNDY2LDcgKzUwNyw3IEBAIHZvaWQgSklUOjplbWl0U2xv
d19vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxT
bG93Q2FzCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDIsIHJlZ1QxKTsKICAgICBlbWl0TG9hZChw
cm9wZXJ0eSwgcmVnVDMsIHJlZ1QwKTsKICAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDUsIHJlZ1Q0
KTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKGlzRGlyZWN0ID8gb3BlcmF0aW9uRGly
ZWN0UHV0QnlWYWwgOiBvcGVyYXRpb25QdXRCeVZhbCwgcmVnVDIsIHJlZ1QxLCByZWdUMywgcmVn
VDAsIHJlZ1Q1LCByZWdUNCwgcHJvZmlsZSk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlv
bihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWws
IHJlZ1QyLCByZWdUMSwgcmVnVDMsIHJlZ1QwLCByZWdUNSwgcmVnVDQsIGJ5VmFsSW5mbyk7CiAj
ZW5kaWYKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5k
ZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N5bWJvbC5oCmluZGV4IGU1NzkwZDc4NzIyNmJlYTc2MDI0YzlkMWQ2NmE2NzYwZjY0ZGU1YTIu
LjgzZjVkZTI0ODUyYmMzNzhlZTBhNzcwMzlmNDYzMTgyNWZkZGRiYmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC03OSw2ICs3OSw4IEBAIGNsYXNzIFN5bWJvbCBm
aW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUq
LCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUq
KSBjb25zdDsKIAorICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZQcml2YXRlTmFtZSgpIHsgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihTeW1ib2wsIG1fcHJpdmF0ZU5hbWUpOyB9CisKIHByb3RlY3Rl
ZDoKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY29u
c3RydWN0b3IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY29uc3RydWN0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM1ODUxNjAyZTkzNGIz
MzY2OGFlZDJjZmY0ZGRjYjc4NzZlZTE4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rv
ci5qcwpAQCAtMCwwICsxLDIzIEBACit2YXIgc3ltYm9sID0gIkBAc3BlY2llcyI7CitmdW5jdGlv
biBIZWxsbygpIHsKK30KKworT2JqZWN0LmRlZmluZVByb3BlcnR5KEhlbGxvLCBzeW1ib2wsIHsK
KyAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorfSk7
CisKK0hlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uICgpIHsKKyAgICByZXR1cm4g
bmV3IHRoaXMuY29uc3RydWN0b3Jbc3ltYm9sXSgpOworfTsKKworZnVuY3Rpb24gb2soKSB7Cisg
ICAgdmFyIG9iamVjdCA9IG5ldyBIZWxsbygpOworICAgIGlmICghKG9iamVjdC5nZW5lcmF0ZSgp
IGluc3RhbmNlb2YgSGVsbG8pKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBpbnN0YW5j
ZSIpOworfQorbm9JbmxpbmUob2spOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kp
CisgICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWFhMjYyZDY0YTY2MTQ5NjQ2NjlhYjc0Y2IyZjAxZmE0ZWQ4MDJmNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1leGl0LmpzCkBAIC0wLDAgKzEsMzQgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBnZXRCeVZh
bChvYmplY3QsIG5hbWUpCit7CisgICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKK30KK25vSW5saW5l
KGdldEJ5VmFsKTsKKworZnVuY3Rpb24gZ2V0U3RyMSgpCit7CisgICAgcmV0dXJuICJoZWxsbyI7
Cit9Citub0lubGluZShnZXRTdHIxKTsKKworZnVuY3Rpb24gZ2V0U3RyMigpCit7CisgICAgcmV0
dXJuICJoZWxsbyI7Cit9Citub0lubGluZShnZXRTdHIyKTsKKwordmFyIG9iamVjdCA9IHsKKyAg
ICBoZWxsbzogNDIKK307CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgc2hv
dWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIo
KSksIDQyKTsKK3Nob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgeyB0b1N0cmluZygpIHsgcmV0dXJu
ICdoZWxsbyc7IH0gfSksIDQyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQor
ICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBn
ZXRTdHIyKCkpLCA0Mik7CitzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIHsgdG9TdHJpbmcoKSB7
IHJldHVybiAnaGVsbG8nOyB9IH0pLCA0Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2VuZXJhdGVkLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWdlbmVyYXRlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODEzYTdlMTQwZDM4NjY1M2ZiYzM1NGM1MGVhZDU4
ZTEyMTlkM2E0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcwpAQCAtMCwwICsxLDMz
IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVh
bCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsg
YWN0dWFsKTsKK30KKworZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQoreworICAgIHJl
dHVybiBvYmplY3RbbmFtZV07Cit9Citub0lubGluZShnZXRCeVZhbCk7CisKK3ZhciB2YWx1ZSA9
ICdsbyc7CisKK2Z1bmN0aW9uIGdldFN0cjEoKQoreworICAgIHJldHVybiAiaGVsIiArIHZhbHVl
OworfQorbm9JbmxpbmUoZ2V0U3RyMSk7CisKK2Z1bmN0aW9uIGdldFN0cjIoKQoreworICAgIHJl
dHVybiAiaGVsbG8iOworfQorbm9JbmxpbmUoZ2V0U3RyMik7CisKK3ZhciBvYmplY3QgPSB7Cisg
ICAgaGVsbG86IDQyLAorICAgIHdvcmxkOiA1MAorfTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgKytpKQorICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBn
ZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7CitzaG91bGRCZShnZXRCeVZhbChvYmplY3QsICd3
b3JsZCcpLCA1MCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2V0dGVyLmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdldHRlci5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NThlYzBhODZkYjk1NGQ4NDdmNmI4Zjc2MmQyOTZiZWRjZWIxYmY1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWdldHRlci5qcwpAQCAtMCwwICsxLDE2IEBACisKK3ZhciBvYmplY3QgPSB7Cisg
ICAgZ2V0IGhlbGxvKCkgeworICAgICAgICByZXR1cm4gNDI7CisgICAgfQorfTsKKworZnVuY3Rp
b24gb2soKSB7CisgICAgdmFyIHZhbHVlID0gJ2hlbGxvJzsKKyAgICBpZiAob2JqZWN0W3ZhbHVl
XSArIDIwICE9PSA2MikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Cit9Citub0lubGluZShv
ayk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBvaygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYjMzZDliZWNiMTRhZDIwNWI4NzU1YmRmZTFm
OTViYjM5N2JiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanMKQEAgLTAsMCArMSwzMSBAQAorZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Cit9CisKK2Z1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKK3sKKyAgICByZXR1cm4gb2Jq
ZWN0W25hbWVdOworfQorbm9JbmxpbmUoZ2V0QnlWYWwpOworCitmdW5jdGlvbiBnZXRTdHIxKCkK
K3sKKyAgICByZXR1cm4gImhlbGxvIjsKK30KK25vSW5saW5lKGdldFN0cjEpOworCitmdW5jdGlv
biBnZXRTdHIyKCkKK3sKKyAgICByZXR1cm4gImhlbGxvIjsKK30KK25vSW5saW5lKGdldFN0cjIp
OworCit2YXIgb2JqZWN0ID0geworICAgIGhlbGxvOiA0MiwKKyAgICB3b3JsZDogNTAKK307CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChv
YmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigpKSwgNDIpOworc2hvdWxk
QmUoZ2V0QnlWYWwob2JqZWN0LCAnd29ybGQnKSwgNTApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNvbnN0cnVj
dG9yLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4OTVjMjY0NTFkMjU3YTk3YTJk
YjNlYzU4OTI5YjlkNTUzNDMyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0b3IuanMK
QEAgLTAsMCArMSwyMyBAQAordmFyIHN5bWJvbCA9IFN5bWJvbCgpOworZnVuY3Rpb24gSGVsbG8o
KSB7Cit9CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShIZWxsbywgc3ltYm9sLCB7CisgICAgZ2V0
OiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KK30pOworCitIZWxs
by5wcm90b3R5cGUuZ2VuZXJhdGUgPSBmdW5jdGlvbiAoKSB7CisgICAgcmV0dXJuIG5ldyB0aGlz
LmNvbnN0cnVjdG9yW3N5bWJvbF0oKTsKK307CisKK2Z1bmN0aW9uIG9rKCkgeworICAgIHZhciBv
YmplY3QgPSBuZXcgSGVsbG8oKTsKKyAgICBpZiAoIShvYmplY3QuZ2VuZXJhdGUoKSBpbnN0YW5j
ZW9mIEhlbGxvKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgaW5zdGFuY2UiKTsKK30K
K25vSW5saW5lKG9rKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIG9r
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtZXhpdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwY2RjYjY3
NmQ5NGU0NmI2YzEwMWE4YTc3ZDAwYjY2NDRhOGMxMGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZXhp
dC5qcwpAQCAtMCwwICsxLDM4IEBACit2YXIgc3ltYm9sMSA9IFN5bWJvbCgpOwordmFyIHN5bWJv
bDIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHsgW3N5bWJvbDFdOiA0MiB9KVswXTsK
KworZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwg
IT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFj
dHVhbCk7Cit9CisKK2Z1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKK3sKKyAgICByZXR1
cm4gb2JqZWN0W25hbWVdOworfQorbm9JbmxpbmUoZ2V0QnlWYWwpOworCitmdW5jdGlvbiBnZXRT
eW0xKCkKK3sKKyAgICByZXR1cm4gc3ltYm9sMTsKK30KK25vSW5saW5lKGdldFN5bTEpOworCitm
dW5jdGlvbiBnZXRTeW0yKCkKK3sKKyAgICByZXR1cm4gc3ltYm9sMjsKK30KK25vSW5saW5lKGdl
dFN5bTIpOworCit2YXIgb2JqZWN0ID0geworICAgIFtzeW1ib2wxXTogNDIsCisgICAgaGVsbG86
IDUwCit9OworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgIHNob3VsZEJlKGdl
dEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0xKCkgOiBnZXRTeW0yKCkpLCA0Mik7
CitzaG91bGRCZShnZXRCeVZhbChvYmplY3QsICdoZWxsbycpLCA1MCk7CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAy
ID09PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOworc2hvdWxkQmUoZ2V0QnlWYWwo
b2JqZWN0LCAnaGVsbG8nKSwgNTApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWdldHRlci5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1nZXR0ZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzAzNWU0YjAzOGE0NjVkNDNlYmMyOGU1Y2Y0ODE5YjU5ZTY2Njg3ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1nZXR0ZXIuanMKQEAgLTAsMCArMSwyMyBAQAorCit2YXIgb2Jq
ZWN0ID0geworICAgIGdldCBoZWxsbygpIHsKKyAgICAgICAgcmV0dXJuIDQyOworICAgIH0KK307
CisKK3ZhciBzeW1ib2wgPSBTeW1ib2woKTsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVj
dCwgc3ltYm9sLCB7CisgICAgZ2V0OiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiA0MjsK
KyAgICB9Cit9KTsKKworZnVuY3Rpb24gb2soKSB7CisgICAgaWYgKG9iamVjdFtzeW1ib2xdICsg
MjAgIT09IDYyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTsKK30KK25vSW5saW5lKG9rKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIG9rKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM4MzRlYjI2YmUzMjZlMWM5MTg0OTFmMGUxOWI3ZmEz
OGJiMDkwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC5qcwpAQCAtMCwwICsxLDMzIEBACit2YXIgc3lt
Ym9sMSA9IFN5bWJvbCgpOwordmFyIHN5bWJvbDIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1i
b2xzKHsgW3N5bWJvbDFdOiA0MiB9KVswXTsKKworZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIGdldEJ5VmFs
KG9iamVjdCwgbmFtZSkKK3sKKyAgICByZXR1cm4gb2JqZWN0W25hbWVdOworfQorbm9JbmxpbmUo
Z2V0QnlWYWwpOworCitmdW5jdGlvbiBnZXRTeW0xKCkKK3sKKyAgICByZXR1cm4gc3ltYm9sMTsK
K30KK25vSW5saW5lKGdldFN5bTEpOworCitmdW5jdGlvbiBnZXRTeW0yKCkKK3sKKyAgICByZXR1
cm4gc3ltYm9sMjsKK30KK25vSW5saW5lKGdldFN5bTIpOworCit2YXIgb2JqZWN0ID0geworICAg
IFtzeW1ib2wxXTogNDIsCisgICAgaGVsbG86IDUwCit9OworCitmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwOyArK2kpCisgICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/
IGdldFN5bTEoKSA6IGdldFN5bTIoKSksIDQyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1OGQwNDY1MjVlOGEyMGU2ZTJm
MjVhZDZlNGY5NzQ4ZjQxMTFjMTNmLi4wYjFjNzFkMzlmOTE4NTNjYTY1MjdmMTZiNDY2ZDFkZDdj
MTM0MzEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODMgQEAKKzIwMTUtMDgtMTAgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGdldF9ieV9pZCBs
aWtlIElDIGludG8gZ2V0X2J5X3ZhbCB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIFN0cmluZyBvciBT
eW1ib2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NzQ4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBzeW50aGV0aWMgYmVuY2htYXJrcyB0aGF0IHJlcGxhY2VzIG5vcm1hbCBwcm9wZXJ0eSBsb2Fk
IHdpdGggc3ltYm9sL3N0cmluZyBrZXllZCBsb2FkLgorCisgICAgICAgICoganMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2Nr
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXByb3RvLW9yLXNlbGYuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9j
ay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtc2VsZi1vci1wcm90by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24uanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanM6IEFkZGVk
LgorICAgICAgICAoQSk6CisgICAgICAgIChCKToKKyAgICAgICAgKEMpOgorICAgICAgICAoRCk6
CisgICAgICAgIChFKToKKyAgICAgICAgKEYpOgorICAgICAgICAoRyk6CisgICAgICAgIChmb28p
OgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChGb28p
OgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qczogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1zZWxmLW9yLXByb3RvLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChi
YXIpOgorICAgICAgICAoRm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24uanM6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suanM6IEFkZGVkLgorICAgICAgICAo
QSk6CisgICAgICAgIChCKToKKyAgICAgICAgKEMpOgorICAgICAgICAoRCk6CisgICAgICAgIChF
KToKKyAgICAgICAgKEYpOgorICAgICAgICAoRyk6CisgICAgICAgIChmb28pOgorICAgICAgICAq
IGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgIChGb28pOgorICAgICAgICAq
IGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qczogQWRkZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9y
LXByb3RvLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAg
ICAoRm9vKToKKwogMjAxNS0wOC0xMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFsaWRh
dGlvbi5odG1sIGhhcyB0b28gbWFueSBzdWJ0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjY2Y0M2FmYTA3ZDNjOGUwZjE3ODkyZWVkYTc5Mjdl
MjFiODE4YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzN2M1MDAw
MGMwYTFkMWUyZjI2Mjg1N2Y3OWI0ZWM0MTQ3ZTBjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDQ4MmM0NTBkOTU1YWU5OTY0ZWUyNWJmZjJiNWZjMGNiNjZmNDUzNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCkBA
IC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTllZjE0MTU3NTg0Y2E2MTYwNjQ2ODc1OThjZmJk
NGRiNzk3ZmVmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
Lmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFp
bi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjIxNmE2NjcyOTcwMzZhNDVjNWYzMmI3MDFjMGJjN2VmYjJmYmRhMTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pT
UmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4t
ZnJvbS10cnktYmxvY2suaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2Yzk2M2Ew
MTJiMDJjZjM2MTQ0NWY2N2M2ZWNiZDhjZDE4YjBiMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnkt
YmxvY2suaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5
LWJsb2NrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWVjMGZjNzBlZTdhMjQ1NTVmYjBmZDhhYmI2YTNlNDZhN2ZkNTA0NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNl
cHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzNmY1OGQ0MTU3YjUxYmI5ODUzODJkYzgxYTZkOTQ4ZmI5
ZGIwMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKQEAgLTAsMCAr
MSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNl
bGYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlZjkyYzkwNzljYzJkYmRkYWJlNGNiNjUzYjMy
M2ZmZmU1Mzk3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3du
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXBy
b3RvLW9yLXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1wcm90by1vci1zZWxmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZhYjYxMWJkNDVkZTMwNDI2
ZjZiYjU0YmU2OTUzOTBiNzMwYTA4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmh0bWwKQEAgLTAs
MCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjFhYTU3ZWNhYjZhMWExYTc4NGRiNWU4ODQyZmUy
YmFkYjg1YzI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9u
IHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQz
NzUxYjY0ZTgyMmFiMmRlYzQ3YWQ5YTlmNDY2OGUzNzllMWYwNzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMTIg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQyMTcxMzRmOTgyODkw
NDM5NTY4MmY4ODcwNmQyYzY3YWQ4OGI0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1z
ZWxmLW9yLXByb3RvCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4
Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDRh
NmI5OWM1YjVlMzA2ZDgzYjZmMjUzNDIzYTBmZjgxMzU4ZTA3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJv
dG8uaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxMDBjNWQ4YjhmOGNlMjg1NjFjN2I1MTBhNzgzZDY1MTI1
M2JkZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM5MGVkOTUyY2Vl
ZTJhMjBlZmVjNGRiMTA5MzUzYjc3M2IyOGZiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
SlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDQ4MmM0NTBkOTU1YWU5OTY0ZWUyNWJmZjJiNWZjMGNiNjZmNDUzNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTllZjE0MTU3NTg0Y2E2MTYwNjQ2ODc1OThjZmJkNGRi
Nzk3ZmVmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0
bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1m
cm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM3NTRiYjBlOGU1NjhjOGQwMjA2ZTY0OWU1Mjk3NGIzZjllNDJhNDEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Y2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJv
bS10cnktYmxvY2suaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5NzVmOTkyODBl
NzIzMzVjMmI1NGQzZDkzZjA4NjExODMxOTc0NDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxv
Y2suaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJs
b2NrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1w
b3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDMxNDk0YTliNDU2MmY5ZTE2OTA0Nzg5N2FiNjA2MzVkZjExNDg1YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK0pTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRp
b24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ5YmZhY2E3YTVlNGI3Mjg4ZWNlZDI2ZTg1MzYwZDU2ZTA2N2M3
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKQEAgLTAsMCArMSwx
MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNWQyNjJjZWE1MjA1Y2Y1ZjNjYjYzN2E3ODhkYTMy
YjBlM2E2YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3Rv
LW9yLXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1wcm90by1vci1zZWxmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU4MTVjZTMzZThhYzc3NTEwNmRh
YjJjMmE3YjQyNjE0ZjkzOGNmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmh0bWwKQEAgLTAsMCAr
MSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDYwNWMwNzYxYzIwOGJlZmQ2MjllYmQyMmE0ZmRmOWZl
ODQ4YzNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1Y2U0
NjI0NWU4ODZiZTI3ZjUxMDY2YTUxNzNjNDk1MWYyYTIwZDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
c2VsZi1vci1wcm90by1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc2NjkxMDhiYWMxY2U2ZDFl
YTg1MDgwMzQ0NTM4MWNkYzVkYWY2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxm
LW9yLXByb3RvCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2Vw
dGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtc2VsZi1vci1wcm90by5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjVmM2Q3
MDQ4MWFjY2FhZjA1YTAwMDA0YTVmZTUyOTZhMzJlYmRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8u
aHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI1ODlmMWViYjhjMTJkZTFj
YTAzZjgxMjJmZDQyMjU0MzEwMTc0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKQEAgLTAsMCArMSwxNCBAQAorKGZ1
bmN0aW9uKCkgeworICAgIHZhciBhID0gJ2EnLCBsID0gJ2wnOworICAgIHZhciBvID0ge1thXTox
fTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgeworICAgICAgICByZXN1bHQgXj0g
b1thXTsKKyAgICAgICAgdmFyIHRtcCA9IG87CisgICAgICAgIG8gPSBwOworICAgICAgICBwID0g
dG1wOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI1OTQwMWQ3ZjU3Mjg0NzE0ZmU3ZDNkNWUw
NDUyMTFiZDQ3YzE1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5qcwpAQCAtMCwwICsxLDE0IEBACisoZnVuY3Rpb24oKSB7CisgICAg
dmFyIGEgPSAnYScsIGIgPSAnYicsIGMgPSAnYycsIGQgPSAnZCcsIGUgPSAnZScsIGYgPSAnZics
IGcgPSAnZycsIGggPSAnaCcsIGkgPSAnaScsIGogPSAnaicsIGsgPSAnaycsIGwgPSAnbCc7Cisg
ICAgdmFyIG8gPSB7W2FdOjEsIFtiXToyLCBbY106MywgW2RdOjQsIFtlXTo1LCBbZl06NiwgW2dd
OjcsIFtoXTo4LCBbaV06OSwgW2pdOjEwLCBba106MTF9OworICAgIHZhciBwID0ge1thXToyLCBb
Yl06MywgW2NdOjQsIFtkXTo1LCBbZV06NiwgW2ZdOjcsIFtnXTo4LCBbaF06OSwgW2ldOjEwLCBb
al06MTEsIFtrXToxMiwgW2xdOjEzfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZh
ciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkgeworICAgICAgICByZXN1bHQg
Kz0gb1thXSBeIG9bYl0gXiBvW2NdIF4gb1tkXSBeIG9bZV0gXiBvW2ZdIF4gb1tnXSBeIG9baF0g
XiBvW2ldIF4gb1tqXSBeIG9ba107CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAgICBvID0g
cDsKKyAgICAgICAgcCA9IHRtcDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSA2NTAwMDAwKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxv
Y2suanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGY5NzBmZWUyNGIwZWY2NTUyOTJjYWVkYTQxYzZiZWIwMGUwZDQy
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanMKQEAgLTAsMCAr
MSw0OSBAQAordmFyIGYgPSAnZic7CisKK2Z1bmN0aW9uIEEoKSB7IH0KKworQS5wcm90b3R5cGUg
PSB7W2ZdOjQyfTsKKworZnVuY3Rpb24gQigpIHsgfQorCitCLnByb3RvdHlwZSA9IG5ldyBBKCk7
CisKK2Z1bmN0aW9uIEMoKSB7IH0KKworQy5wcm90b3R5cGUgPSBuZXcgQigpOworCitmdW5jdGlv
biBEKCkgeyB9CisKK0QucHJvdG90eXBlID0gbmV3IEMoKTsKKworZnVuY3Rpb24gRSgpIHsgfQor
CitFLnByb3RvdHlwZSA9IG5ldyBEKCk7CisKK2Z1bmN0aW9uIEYoKSB7IH0KKworRi5wcm90b3R5
cGUgPSBuZXcgRSgpOworCitmdW5jdGlvbiBHKCkgeyB9CisKK0cucHJvdG90eXBlID0gbmV3IEYo
KTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICB0cnkgeworICAgICAgICB2YXIgcmVzdWx0ID0g
MDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCisgICAgICAgICAgICBy
ZXN1bHQgKz0gb1tmXTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIHJldHVybiA1MjsKKyAgICB9Cit9CisKK3ZhciByZXN1bHQgPSAwOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICByZXN1bHQgKz0gZm9vKG5ldyBHKCkpOwor
CitpZiAocmVzdWx0ICE9IDQyMDAwMDAwKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24u
anMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjg4YWE1
YmJhMTJlZjAzOTlmODFmOTA0Y2ZkYmU0OGQzOGQ5YzJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKQEAgLTAsMCArMSw5IEBACisoZnVuY3Rpb24o
KSB7CisgICAgdmFyIGEgPSAnYScsIGIgPSAnYicsIGMgPSAnYycsIGQgPSAnZCcsIGUgPSAnZScs
IGYgPSAnZicsIGcgPSAnZycsIGggPSAnaCcsIGkgPSAnaScsIGogPSAnaicsIGsgPSAnayc7Cisg
ICAgdmFyIG8gPSB7W2FdOjEsIFtiXToyLCBbY106MywgW2RdOjQsIFtlXTo1LCBbZl06NiwgW2dd
OjcsIFtoXTo4LCBbaV06OSwgW2pdOjEwLCBba106MTF9OworICAgIHZhciByZXN1bHQgPSAwOwor
ICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAxMDAwMDAwOyArK2luZGV4KQorICAgICAg
ICByZXN1bHQgKz0gb1thXSBeIG9bYl0gfCBvW2NdIF4gb1tkXSAmIG9bZV0gXiBvW2ZdIHwgb1tn
XSBeIG9baF0gJiBvW2ldIF4gb1tqXSB8IG9ba107CisgICAgaWYgKHJlc3VsdCAhPSAxNTAwMDAw
MCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZjc0OTNiOThmNjEwZDFjNGFkOWI4M2VlY2Y2MWE2N2Y5ZWNhYWI4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzCkBAIC0wLDAgKzEsMjQgQEAKK3ZhciBmID0g
J2YnOworCitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvW2ZdOworfQorCitmdW5jdGlv
biBiYXIoYSkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MjAwMDAwMDsgKytpKSB7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYS5sZW5ndGg7ICsr
aikKKyAgICAgICAgICAgIHJlc3VsdCArPSBmb28oYVtqXSk7CisgICAgfQorICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIEZvbygpIHsKK30KKworRm9vLnByb3RvdHlwZVtmXSA9IDQy
OworCit2YXIgcmVzdWx0ID0gYmFyKFtuZXcgRm9vKCksIHtbZl06MjR9XSk7CisKK2lmIChyZXN1
bHQgIT0gMTMyMDAwMDAwKQorICAgIHRocm93ICJFcnJvciBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk5MWRjZTNjMjU3ZDhkOWQ4MDRlNTQwYTgwOGY2ODRiNDk3ZjMy
OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUuanMKQEAgLTAsMCArMSwyMiBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZh
ciBhID0gJ2EnOworICAgIHZhciBsID0gJ2wnOworICAgIHZhciBiID0gJ2InOworICAgIHZhciBj
ID0gJ2MnOworCisgICAgdmFyIG8gPSB7W2FdOjF9OworICAgIHZhciBwID0ge1thXToyLCBbbF06
MTN9OworICAgIHZhciBxID0ge1thXTozLCBbYl06M307CisgICAgdmFyIHIgPSB7W2FdOjQsIFtj
XTo1fTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
MDA7ICsraSkgeworICAgICAgICByZXN1bHQgXj0gb1thXTsKKyAgICAgICAgdmFyIHRtcCA9IG87
CisgICAgICAgIG8gPSBwOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHI7CisgICAgICAg
IHIgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gMCkKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1v
ci1wcm90by5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmVjMTA3Y2E3ZmEz
ODBmMWJjOTZlZjdlOWFlM2FmY2Q1MTE3MmM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9y
LXByb3RvLmpzCkBAIC0wLDAgKzEsMjQgQEAKK3ZhciBmID0gJ2YnOworCitmdW5jdGlvbiBmb28o
bykgeworICAgIHJldHVybiBvW2ZdOworfQorCitmdW5jdGlvbiBiYXIoYSkgeworICAgIHZhciBy
ZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDAwMDsgKytpKSB7CisgICAg
ICAgIGZvciAodmFyIGogPSAwOyBqIDwgYS5sZW5ndGg7ICsraikKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBmb28oYVtqXSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9u
IEZvbygpIHsKK30KKworRm9vLnByb3RvdHlwZVtmXSA9IDQyOworCit2YXIgcmVzdWx0ID0gYmFy
KFt7W2ZdOjI0fSwgbmV3IEZvbygpXSk7CisKK2lmIChyZXN1bHQgIT0gMTMyMDAwMDAwKQorICAg
IHRocm93ICJFcnJvciBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg1ZDMy
YWY1MDMyY2QwNDU4NTc4NDk1YzM3Nzk5MjU5ODVmMzA3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKQEAgLTAsMCAr
MSwxNCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gU3ltYm9sKCksIGwgPSBTeW1ib2wo
KTsKKyAgICB2YXIgbyA9IHtbYV06MX07CisgICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307Cisg
ICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kp
IHsKKyAgICAgICAgcmVzdWx0IF49IG9bYV07CisgICAgICAgIHZhciB0bXAgPSBvOworICAgICAg
ICBvID0gcDsKKyAgICAgICAgcCA9IHRtcDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAwKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiYmU5
NzFiNjE2MzU5NGNlMjA0M2UyNzk1NTAwN2U4MzBiMDViOGUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKQEAgLTAsMCArMSwxNCBA
QAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gU3ltYm9sKCksIGIgPSBTeW1ib2woKSwgYyA9
IFN5bWJvbCgpLCBkID0gU3ltYm9sKCksIGUgPSBTeW1ib2woKSwgZiA9IFN5bWJvbCgpLCBnID0g
U3ltYm9sKCksIGggPSBTeW1ib2woKSwgaSA9IFN5bWJvbCgpLCBqID0gU3ltYm9sKCksIGsgPSBT
eW1ib2woKSwgbCA9IFN5bWJvbCgpOworICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMs
IFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjEx
fTsKKyAgICB2YXIgcCA9IHtbYV06MiwgW2JdOjMsIFtjXTo0LCBbZF06NSwgW2VdOjYsIFtmXTo3
LCBbZ106OCwgW2hdOjksIFtpXToxMCwgW2pdOjExLCBba106MTIsIFtsXTogMTN9OworICAgIHZh
ciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAxMDAwMDAwOyAr
K2luZGV4KSB7CisgICAgICAgIHJlc3VsdCArPSBvW2FdIF4gb1tiXSBeIG9bY10gXiBvW2RdIF4g
b1tlXSBeIG9bZl0gXiBvW2ddIF4gb1toXSBeIG9baV0gXiBvW2pdIF4gb1trXTsKKyAgICAgICAg
dmFyIHRtcCA9IG87CisgICAgICAgIG8gPSBwOworICAgICAgICBwID0gdG1wOworICAgIH0KKyAg
ICBpZiAocmVzdWx0ICE9IDY1MDAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3Vs
dDogIiArIHJlc3VsdDsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2Nr
LmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjhhYzc4YTg2MDQz
MGRiNjdhY2M0ZWUzNzcwZDMyNzMzODAyZTFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1m
cm9tLXRyeS1ibG9jay5qcwpAQCAtMCwwICsxLDQ5IEBACit2YXIgZiA9IFN5bWJvbCgiQ29jb2Ei
KTsKKworZnVuY3Rpb24gQSgpIHsgfQorCitBLnByb3RvdHlwZSA9IHtbZl06NDJ9OworCitmdW5j
dGlvbiBCKCkgeyB9CisKK0IucHJvdG90eXBlID0gbmV3IEEoKTsKKworZnVuY3Rpb24gQygpIHsg
fQorCitDLnByb3RvdHlwZSA9IG5ldyBCKCk7CisKK2Z1bmN0aW9uIEQoKSB7IH0KKworRC5wcm90
b3R5cGUgPSBuZXcgQygpOworCitmdW5jdGlvbiBFKCkgeyB9CisKK0UucHJvdG90eXBlID0gbmV3
IEQoKTsKKworZnVuY3Rpb24gRigpIHsgfQorCitGLnByb3RvdHlwZSA9IG5ldyBFKCk7CisKK2Z1
bmN0aW9uIEcoKSB7IH0KKworRy5wcm90b3R5cGUgPSBuZXcgRigpOworCitmdW5jdGlvbiBmb28o
bykgeworICAgIHRyeSB7CisgICAgICAgIHZhciByZXN1bHQgPSAwOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdCArPSBvW2ZdOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIDUy
OworICAgIH0KK30KKwordmFyIHJlc3VsdCA9IDA7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDsgKytpKQorICAgIHJlc3VsdCArPSBmb28obmV3IEcoKSk7CisKK2lmIChyZXN1bHQgIT0gNDIw
MDAwMDApCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkNTlmZDhlMGJiOTkxNGVlZDZiZjRlZWQx
NTUwMGM0OGYyYzQ0MmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi5qcwpAQCAtMCwwICsxLDkgQEAKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgYSA9IFN5
bWJvbCgpLCBiID0gU3ltYm9sKCksIGMgPSBTeW1ib2woKSwgZCA9IFN5bWJvbCgpLCBlID0gU3lt
Ym9sKCksIGYgPSBTeW1ib2woKSwgZyA9IFN5bWJvbCgpLCBoID0gU3ltYm9sKCksIGkgPSBTeW1i
b2woKSwgaiA9IFN5bWJvbCgpLCBrID0gU3ltYm9sKCk7CisgICAgdmFyIG8gPSB7W2FdOjEsIFti
XToyLCBbY106MywgW2RdOjQsIFtlXTo1LCBbZl06NiwgW2ddOjcsIFtoXTo4LCBbaV06OSwgW2pd
OjEwLCBba106MTF9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGluZGV4ID0g
MDsgaW5kZXggPCAxMDAwMDAwOyArK2luZGV4KQorICAgICAgICByZXN1bHQgKz0gb1thXSBeIG9b
Yl0gfCBvW2NdIF4gb1tkXSAmIG9bZV0gXiBvW2ZdIHwgb1tnXSBeIG9baF0gJiBvW2ldIF4gb1tq
XSB8IG9ba107CisgICAgaWYgKHJlc3VsdCAhPSAxNTAwMDAwMCkKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8t
b3Itc2VsZi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmY4MmFiMjY4YTcz
MjkzNzA4NTc2YmM3ODA2ZWNhNjdiNmFlYjhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1v
ci1zZWxmLmpzCkBAIC0wLDAgKzEsMjQgQEAKK3ZhciBmID0gU3ltYm9sKCJDb2NvYSIpOworCitm
dW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvW2ZdOworfQorCitmdW5jdGlvbiBiYXIoYSkg
eworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDAwMDsg
KytpKSB7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYS5sZW5ndGg7ICsraikKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBmb28oYVtqXSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK2Z1bmN0aW9uIEZvbygpIHsKK30KKworRm9vLnByb3RvdHlwZVtmXSA9IDQyOworCit2YXIg
cmVzdWx0ID0gYmFyKFtuZXcgRm9vKCksIHtbZl06MjR9XSk7CisKK2lmIChyZXN1bHQgIT0gMTMy
MDAwMDAwKQorICAgIHRocm93ICJFcnJvciBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpz
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE1ODM2MmFkZWE3MGFiODIwNGRlNWQ1NWI5ZTRjNTY4YzExMGQwNzcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUuanMKQEAgLTAsMCArMSwyMiBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciBhID0gU3lt
Ym9sKCJDb2NvYSIpOworICAgIHZhciBsID0gU3ltYm9sKCk7CisgICAgdmFyIGIgPSBTeW1ib2wo
KTsKKyAgICB2YXIgYyA9IFN5bWJvbCgpOworCisgICAgdmFyIG8gPSB7W2FdOjF9OworICAgIHZh
ciBwID0ge1thXToyLCBbbF06MTN9OworICAgIHZhciBxID0ge1thXTozLCBbYl06M307CisgICAg
dmFyIHIgPSB7W2FdOjQsIFtjXTo1fTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgeworICAgICAgICByZXN1bHQgXj0gb1thXTsKKyAg
ICAgICAgdmFyIHRtcCA9IG87CisgICAgICAgIG8gPSBwOworICAgICAgICBwID0gcTsKKyAgICAg
ICAgcSA9IHI7CisgICAgICAgIHIgPSB0bXA7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gMCkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zMDA4YzM2NDEyMGJmMmFhNDhhZDc0YWEzYjVhNmZjN2I5NjdiZmJjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzCkBAIC0wLDAgKzEsMjQgQEAKK3ZhciBmID0gU3lt
Ym9sKCdDb2NvYScpOworCitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvW2ZdOworfQor
CitmdW5jdGlvbiBiYXIoYSkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMjAwMDAwMDsgKytpKSB7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYS5s
ZW5ndGg7ICsraikKKyAgICAgICAgICAgIHJlc3VsdCArPSBmb28oYVtqXSk7CisgICAgfQorICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIEZvbygpIHsKK30KKworRm9vLnByb3RvdHlw
ZVtmXSA9IDQyOworCit2YXIgcmVzdWx0ID0gYmFyKFt7W2ZdOjI0fSwgbmV3IEZvbygpXSk7CisK
K2lmIChyZXN1bHQgIT0gMTMyMDAwMDAwKQorICAgIHRocm93ICJFcnJvciBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0Owo=
</data>
<flag name="review"
          id="283825"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>