<?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>144458</bug_id>
          
          <creation_ts>2015-04-30 10:42:49 -0700</creation_ts>
          <short_desc>JIT call inline caches should cache calls to objects with getCallData/getConstructData traps</short_desc>
          <delta_ts>2017-11-15 13:11:12 -0800</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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>178064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1090478</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-04-30 10:42:49 -0700</bug_when>
    <thetext>This would be a speed-up for InternalFunction calls, since currently we take the slow path every time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362158</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-19 09:05:38 -0700</bug_when>
    <thetext>It turns out that we should cache InternalFunction too to optimize builtin constructors!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362182</commentid>
    <comment_count>2</comment_count>
      <attachid>324243</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-19 09:55:42 -0700</bug_when>
    <thetext>Created attachment 324243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362184</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-19 10:05:52 -0700</bug_when>
    <thetext>I&apos;ve added JSC part. WebCore and other part is not changed right now.
But I think it is good for early review for the direction.

My change is simple: InternalFunction has NativeFunction for call and construct. Our call linking mechanism now recognizes InternalFunction too. And cache it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362195</commentid>
    <comment_count>4</comment_count>
      <attachid>324248</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-19 10:31:42 -0700</bug_when>
    <thetext>Created attachment 324248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362211</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-19 11:19:58 -0700</bug_when>
    <thetext>Performance in Octane / Kraken is neutral since they do not use these internal functions *so* frequently.

                                                 baseline                  patched            
Octane:
   encrypt                                   0.22105+-0.00624          0.21790+-0.00242         might be 1.0145x faster
   decrypt                                   3.31623+-0.17153          3.23261+-0.05183         might be 1.0259x faster
   deltablue                        x2       0.18744+-0.00351          0.18728+-0.00358       
   earley                                    0.39254+-0.00363    ?     0.39794+-0.00688       ? might be 1.0138x slower
   boyer                                     7.15169+-0.05381          7.10940+-0.08521       
   navier-stokes                    x2       5.19215+-0.05461    ?     5.21819+-0.06407       ?
   raytrace                         x2       1.10587+-0.01281    ?     1.10979+-0.01747       ?
   richards                         x2       0.11294+-0.00050    ?     0.11534+-0.00307       ? might be 1.0212x slower
   splay                            x2       0.42048+-0.00285    ?     0.42049+-0.00402       ?
   regexp                           x2      25.52627+-0.38065    ?    25.71624+-0.50927       ?
   pdfjs                            x2      55.52976+-1.68890         55.03439+-1.19541       
   mandreel                         x2      59.38075+-0.38568    ?    60.54147+-2.59337       ? might be 1.0195x slower
   gbemu                            x2      55.71041+-2.58057    ?    56.87792+-3.20713       ? might be 1.0210x slower
   closure                                   0.76924+-0.01966          0.76212+-0.01816       
   jquery                                    9.65424+-0.29193    ?     9.70115+-0.34738       ?
   box2d                            x2      13.92739+-0.41589         13.63308+-0.43132         might be 1.0216x faster
   zlib                             x2     411.39828+-4.62837        409.83302+-5.16500       
   typescript                       x2     896.05240+-26.12225       884.70540+-28.31109        might be 1.0128x faster

   &lt;geometric&gt;                               6.99406+-0.03541    ?     6.99673+-0.05489       ? might be 1.0004x slower

                                                 baseline                  patched                                      
Kraken:
   ai-astar                                  155.656+-5.401      ?     159.362+-5.413         ? might be 1.0238x slower
   audio-beat-detection                       97.312+-4.552             95.973+-5.641           might be 1.0140x faster
   audio-dft                                 102.382+-2.521      ?     104.500+-2.568         ? might be 1.0207x slower
   audio-fft                                  81.170+-3.159      ?      81.608+-4.068         ?
   audio-oscillator                           69.664+-2.229             68.811+-2.180           might be 1.0124x faster
   imaging-darkroom                          118.960+-3.542      ?     120.291+-3.025         ? might be 1.0112x slower
   imaging-desaturate                         72.570+-2.137      ?      73.991+-1.949         ? might be 1.0196x slower
   imaging-gaussian-blur                     112.376+-3.677            109.583+-3.527           might be 1.0255x faster
   json-parse-financial                       63.624+-3.165      ?      63.981+-1.585         ?
   json-stringify-tinderbox                   40.194+-1.369             39.880+-1.300         
   stanford-crypto-aes                        64.451+-2.590             63.676+-1.883           might be 1.0122x faster
   stanford-crypto-ccm                        55.514+-2.347      ?      57.434+-2.512         ? might be 1.0346x slower
   stanford-crypto-pbkdf2                     96.267+-3.208             95.327+-3.317         
   stanford-crypto-sha256-iterative           32.090+-1.078      ?      33.964+-1.491         ? might be 1.0584x slower

   &lt;arithmetic&gt;                               83.016+-0.923      ?      83.456+-0.941         ? might be 1.0053x slower</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362628</commentid>
    <comment_count>6</comment_count>
      <attachid>324379</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-20 02:12:19 -0700</bug_when>
    <thetext>Created attachment 324379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362636</commentid>
    <comment_count>7</comment_count>
      <attachid>324379</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-20 03:00:17 -0700</bug_when>
    <thetext>Comment on attachment 324379
Patch

Attachment 324379 did not pass jsc-ews (mac):
Output: http://webkit-queues.webkit.org/results/4930856

New failing tests:
stress/tail-call-host-call-throw.js.ftl-no-cjit-small-pool
stress/tail-call-host-call-throw.js.default</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362674</commentid>
    <comment_count>8</comment_count>
      <attachid>324389</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-20 06:11:19 -0700</bug_when>
    <thetext>Created attachment 324389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362676</commentid>
    <comment_count>9</comment_count>
      <attachid>324390</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-20 06:29:16 -0700</bug_when>
    <thetext>Created attachment 324390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363143</commentid>
    <comment_count>10</comment_count>
      <attachid>324527</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-22 08:04:20 -0700</bug_when>
    <thetext>Created attachment 324527
Patch

Just rebaselining</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363297</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-23 09:27:42 -0700</bug_when>
    <thetext>Personally, *in the future*, I’m considering making JSDOMConstructor InternalFunction later to accelerate custom elements, like,

class Derived extends HTMLElement {
}

case. And using InternalFunction structure cache for the resulted object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368067</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-03 12:27:56 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368538</commentid>
    <comment_count>13</comment_count>
      <attachid>324527</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-05 21:12:47 -0800</bug_when>
    <thetext>Comment on attachment 324527
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        Previously only JSFunction is handled by CallLinkInfo&apos;s caching mechanism. This means that any

&quot;that any&quot; =&gt; &quot;that&quot;

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        2. CallLinkInfo tells nothing in the higher tier JITs.

&quot;tells nothing&quot; =&gt; &quot;tells us nothing&quot;?

&gt; Source/JavaScriptCore/ChangeLog:19
&gt; +        for InternalFunction. Previously we do not record any information to CallLinkInfo. Except for the

&quot;we do not&quot; =&gt; &quot;we did not&quot;

&gt; Source/JavaScriptCore/ChangeLog:22
&gt; +        nodes for these InternalFunctions since CallLinkInfo tells nothing. This patch teaches CallLinkInfo
&gt; +        handling InternalFunction too.

This last sentence is unneeded.

&gt; Source/JavaScriptCore/ChangeLog:24
&gt; +        Attached microbenchmarks show performance improvement.

nice

&gt; Source/JavaScriptCore/bytecode/CallLinkInfo.cpp:268
&gt; +            handleSpecificCallee(static_cast&lt;JSFunction*&gt;(lastSeenCallee()));

Nit: Even though we&apos;re checking the type(), I think jsCast is the more canonical cast and it also gives us even extra debug assertions.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:944
&gt; +            ASSERT(!!codePtr);

nit: Might as well make it RELEASE_ASSERT since this check isn&apos;t performance sensitive.

&gt; Source/JavaScriptCore/jit/Repatch.cpp:956
&gt; +            // FIXME: We could add a fast path for InternalFunction with closure call.

Please make a bug and link to it here or remove FIXME

&gt; Source/JavaScriptCore/runtime/InternalFunction.cpp:95
&gt; +    if (function-&gt;m_functionForConstruct == callHostFunctionAsConstructor)

Why use this as a flag instead of nullptr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368540</commentid>
    <comment_count>14</comment_count>
      <attachid>324527</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-05 21:14:40 -0800</bug_when>
    <thetext>Comment on attachment 324527
Patch

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

&gt; Source/JavaScriptCore/runtime/InternalFunction.cpp:-48
&gt; -    ASSERT(methodTable(vm)-&gt;getCallData != InternalFunction::info()-&gt;methodTable.getCallData);

Do we want to assert the opposite now? That this isn&apos;t overridden? Maybe we also want to assert type() == InternalFunctionType?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368547</commentid>
    <comment_count>15</comment_count>
      <attachid>324527</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-05 22:28:22 -0800</bug_when>
    <thetext>Comment on attachment 324527
Patch

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

Thank you!!

&gt;&gt; Source/JavaScriptCore/ChangeLog:8
&gt;&gt; +        Previously only JSFunction is handled by CallLinkInfo&apos;s caching mechanism. This means that any
&gt; 
&gt; &quot;that any&quot; =&gt; &quot;that&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/ChangeLog:12
&gt;&gt; +        2. CallLinkInfo tells nothing in the higher tier JITs.
&gt; 
&gt; &quot;tells nothing&quot; =&gt; &quot;tells us nothing&quot;?

Fixed.

&gt;&gt; Source/JavaScriptCore/ChangeLog:19
&gt;&gt; +        for InternalFunction. Previously we do not record any information to CallLinkInfo. Except for the
&gt; 
&gt; &quot;we do not&quot; =&gt; &quot;we did not&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/ChangeLog:22
&gt;&gt; +        handling InternalFunction too.
&gt; 
&gt; This last sentence is unneeded.

Dropped.

&gt;&gt; Source/JavaScriptCore/bytecode/CallLinkInfo.cpp:268
&gt;&gt; +            handleSpecificCallee(static_cast&lt;JSFunction*&gt;(lastSeenCallee()));
&gt; 
&gt; Nit: Even though we&apos;re checking the type(), I think jsCast is the more canonical cast and it also gives us even extra debug assertions.

Changed it to `jsCast`.

&gt;&gt; Source/JavaScriptCore/jit/JITOperations.cpp:944
&gt;&gt; +            ASSERT(!!codePtr);
&gt; 
&gt; nit: Might as well make it RELEASE_ASSERT since this check isn&apos;t performance sensitive.

OK, fixed.

&gt;&gt; Source/JavaScriptCore/jit/Repatch.cpp:956
&gt;&gt; +            // FIXME: We could add a fast path for InternalFunction with closure call.
&gt; 
&gt; Please make a bug and link to it here or remove FIXME

Filed and noted the URL.

&gt;&gt; Source/JavaScriptCore/runtime/InternalFunction.cpp:-48
&gt;&gt; -    ASSERT(methodTable(vm)-&gt;getCallData != InternalFunction::info()-&gt;methodTable.getCallData);
&gt; 
&gt; Do we want to assert the opposite now? That this isn&apos;t overridden? Maybe we also want to assert type() == InternalFunctionType?

Sounds nice. Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/InternalFunction.cpp:95
&gt;&gt; +    if (function-&gt;m_functionForConstruct == callHostFunctionAsConstructor)
&gt; 
&gt; Why use this as a flag instead of nullptr?

This is because we do not want to check nullptr when calling InternalFunction from JIT&apos;s stub.
Calling non-constructible InternalFunction as constructor should be super rare. Such a check should not be done when calling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368548</commentid>
    <comment_count>16</comment_count>
      <attachid>326102</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-05 22:31:41 -0800</bug_when>
    <thetext>Created attachment 326102
Patch

Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368549</commentid>
    <comment_count>17</comment_count>
      <attachid>326102</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-05 22:33:32 -0800</bug_when>
    <thetext>Comment on attachment 326102
Patch

Rejecting attachment 326102 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 326102, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in JSTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/5119174</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368557</commentid>
    <comment_count>18</comment_count>
      <attachid>326102</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-11-05 23:24:25 -0800</bug_when>
    <thetext>Comment on attachment 326102
Patch

Attachment 326102 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/5119345

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368558</commentid>
    <comment_count>19</comment_count>
      <attachid>326104</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-11-05 23:24:26 -0800</bug_when>
    <thetext>Created attachment 326104
Archive of layout-test-results from ews113 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews113  Port: mac-elcapitan  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368607</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-06 06:40:27 -0800</bug_when>
    <thetext>Committed r224487: &lt;https://trac.webkit.org/changeset/224487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372389</commentid>
    <comment_count>21</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 13:11:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568940&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324243</attachid>
            <date>2017-10-19 09:55:42 -0700</date>
            <delta_ts>2017-10-19 10:31:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144458-20171020015541.patch</filename>
            <type>text/plain</type>
            <size>154640</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzNjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YjBmZjQyZTk5M2RiOTlhZDA3ZDg5OGMzYzM4ZWEyZDllYWZlY2VhLi5mYjdhZTUzZTkyYjAxMGYx
NTMzYzI2ZDk0MzVhOTExNDVlNTJhNDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMDMgQEAKKzIwMTctMTAtMTkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2Fs
bHMgdG8gb2JqZWN0cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTQ2Fs
bGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6SlND
YWxsYmFja0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0Z1bmN0aW9uOjpnZXRD
YWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgor
ICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLmg6CisgICAgICAgIChKU0M6Ok9iakNDYWxs
YmFja0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIEFQSS9PYmpDQ2FsbGJh
Y2tGdW5jdGlvbi5tbToKKyAgICAgICAgKEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb246Ok9iakND
YWxsYmFja0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb246Omdl
dENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb246
OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2Rl
RHVtcGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVEdW1wZXI8QmxvY2s+OjpwcmludENh
bGxPcCk6CisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjpzZXRDYWxsZWUpOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86
OmNhbGxlZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6c2V0TGFzdFNlZW5DYWxsZWUp
OgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86Omxhc3RTZWVuQ2FsbGVlKToKKyAgICAgICAg
KEpTQzo6Q2FsbExpbmtJbmZvOjp2aXNpdFdlYWspOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxM
aW5rSW5mby5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tQ2FsbExpbmtJbmZvKToKKyAgICAg
ICAgKiBieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oOgorICAgICAgICAqIGppdC9KSVRPcGVy
YXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6Omxp
bmtGb3IpOgorICAgICAgICAoSlNDOjpsaW5rUG9seW1vcnBoaWNDYWxsKToKKyAgICAgICAgKiBq
aXQvUmVwYXRjaC5oOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAg
ICAoSlNDOjpuYXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVDYWxsR2Vu
ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bmF0aXZlVGFpbENhbGxHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjpuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjpuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjppbnRlcm5h
bEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmludGVybmFsRnVuY3Rpb25U
YWlsQ2FsbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmludGVybmFsRnVuY3Rpb25UYWlsQ2Fs
bFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjppbnRlcm5hbEZ1bmN0
aW9uQ29uc3RydWN0R2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6
CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTElu
dDo6c2V0VXBDYWxsKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpBcnJheUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1
Y3Rvcjo6QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6QXN5bmNGdW5j
dGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkFzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpB
c3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6
OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChK
U0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5j
dGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OmNhbGxCb29sZWFuQ29uc3RydWN0b3IpOgorICAgICAgICAoSlND
OjpCb29sZWFuQ29uc3RydWN0b3I6OkJvb2xlYW5Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6
OkJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpCb29s
ZWFuQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkRh
dGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9y
Lmg6CisgICAgICAgIChKU0M6OlN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbjo6U3RyaWN0TW9k
ZVR5cGVFcnJvckZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1
bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVy
cm9yRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpT
dHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckNv
bnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6RXJyb3JDb25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkVycm9yQ29u
c3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9y
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlND
OjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpjYWxsRnVuY3Rpb25Qcm90
b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5
cGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlvblByb3RvdHlwZTo6Z2V0Q2FsbERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpT
Qzo6RnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGlt
ZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6R2VuZXJh
dG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OkdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0dlbmVyYXRv
ckZ1bmN0aW9uQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFs
RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1
bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24p
OgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpnZXRDYWxsRGF0YSk6CisgICAgICAg
IChKU0M6OkludGVybmFsRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEpOgorICAgICAgICAqIHJ1
bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9u
OjpuYXRpdmVGdW5jdGlvbkZvcik6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246Om9m
ZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3IpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9y
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3I6
OkludGxDb2xsYXRvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yQ29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRs
Q29sbGF0b3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1l
Rm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkludGxE
YXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Q29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9y
bWF0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVyRm9ybWF0Q29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXRD
b25zdHJ1Y3Rvcjo6SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6
SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcjo6SlNBcnJheUJ1ZmZlckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdDb25zdHJ1Y3RvcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rv
cjxWaWV3Q2xhc3M+OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmdldENvbnN0cnVjdERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
PFZpZXdDbGFzcz46OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
UHJvbWlzZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9y
OjpKU1Byb21pc2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZUNvbnN0cnVj
dG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNQcm9taXNl
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
UHJvbWlzZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU1R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChK
U0M6OkpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKEpTQzo6SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU1R5cGVkQXJyYXlWaWV3
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3Ip
OgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok1hcENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpNYXBD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6TWFwQ29uc3RydWN0
b3I6Ok1hcENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVy
cm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9y
OjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok5hdGl2
ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL051bGxHZXR0
ZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51bGxHZXR0ZXJGdW5jdGlvbjo6TnVsbEdl
dHRlckZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6TnVsbEdldHRlckZ1bmN0aW9uOjpnZXRDYWxs
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51bGxHZXR0ZXJGdW5jdGlvbjo6Z2V0Q29u
c3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rp
b24uaDoKKyAgICAgICAgKEpTQzo6TnVsbEdldHRlckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpOdWxsR2V0dGVyRnVuY3Rpb246Ok51bGxHZXR0ZXJGdW5jdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246Ok51bGxTZXR0ZXJGdW5jdGlvbik6CisgICAg
ICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmg6CisgICAgICAgIChKU0M6
Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6TnVs
bFNldHRlckZ1bmN0aW9uOjpOdWxsU2V0dGVyRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJDb25z
dHJ1Y3Rvcjo6TnVtYmVyQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1i
ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1
Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpnZXRDb25z
dHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6Omdl
dENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpP
YmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFdpdGhPYmpl
Y3RDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6T2JqZWN0Q29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL09iamVjdENv
bnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OlByb3h5Q29uc3RydWN0b3I6OlByb3h5Q29uc3RydWN0b3IpOgorICAgICAgICAoSlND
OjpQcm94eUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpQcm94eUNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlSZXZva2UuY3Bw
OgorICAgICAgICAoSlNDOjpQcm94eVJldm9rZTo6UHJveHlSZXZva2UpOgorICAgICAgICAoSlND
OjpQcm94eVJldm9rZTo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
UHJveHlSZXZva2UuaDoKKyAgICAgICAgKEpTQzo6UHJveHlSZXZva2U6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChK
U0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpSZWdFeHBDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6
OlJlZ0V4cENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVnRXhwQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpTZXRDb25zdHJ1Y3Rvcjo6U2V0Q29uc3RydWN0b3IpOgor
ICAgICAgICAoSlNDOjpTZXRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlNldENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpTZXRDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6U2V0Q29uc3RydWN0b3I6
OlNldENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OlN0cmluZ0NvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlN5bWJvbENv
bnN0cnVjdG9yOjpTeW1ib2xDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OlN5bWJvbENvbnN0
cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U3ltYm9s
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N5
bWJvbENvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OlN5bWJvbENvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6V2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0b3IpOgor
ICAgICAgICAoSlNDOjpXZWFrTWFwQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpXZWFrTWFwQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAo
SlNDOjpXZWFrTWFwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6
OldlYWtNYXBDb25zdHJ1Y3Rvcjo6V2Vha01hcENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OldlYWtT
ZXRDb25zdHJ1Y3Rvcjo6V2Vha1NldENvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6V2Vha1Nl
dENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
V2Vha1NldENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9XZWFrU2V0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6V2Vha1NldENvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpXZWFrU2V0Q29uc3RydWN0b3I6
OldlYWtTZXRDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1i
bHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpT
Qzo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlDb21waWxl
RXJyb3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmg6
CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6V2Vi
QXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlJ
bnN0YW5jZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0
ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpX
ZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1i
bHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTog
RGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0
b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TWVtb3J5KToKKyAgICAgICAg
KEpTQzo6V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlNZW1v
cnlDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0
b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eU1lbW9yeUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogd2Fz
bS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1i
bHlNb2R1bGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6V2Vi
QXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmdldENvbnN0cnVj
dERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJs
eU1vZHVsZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9X
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogd2FzbS9qcy9X
ZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eVRhYmxlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYkFz
c2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKEpTQzo6V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpn
ZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxl
Q29uc3RydWN0b3IuaDoKKwogMjAxNy0xMC0xOCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVnRXhwT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSgpIGRvZXMgbm90
IG5lZWQgdG8gY29tcGFyZSB2YWx1ZXMgaWYgbm8gZGVzY3JpcHRvciB2YWx1ZSBpcyBzcGVjaWZp
ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5j
cHAKaW5kZXggNjg0ZWNlNjMwZmExY2E4MGE3YzM4ZWNjYWNkNDBlNzg3MmVjZjgxMC4uNzhjYTU1
YmIyM2VkNmNmZGI5ZDkxZGU0NTg3NmVjZTc2NzYzNDc2OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcApAQCAtNDQsNyArNDQsNyBAQCBT
VEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNDYWxsYmFja0Z1bmN0aW9u
KTsKIGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxi
YWNrRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAogSlNDYWxsYmFj
a0Z1bmN0aW9uOjpKU0NhbGxiYWNrRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQotICAgIDogSW50ZXJu
YWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3Ry
dWN0dXJlLCBBUElDYWxsYmFja0Z1bmN0aW9uOjpjYWxsPEpTQ2FsbGJhY2tGdW5jdGlvbj4sIG51
bGxwdHIpCiAgICAgLCBtX2NhbGxiYWNrKGNhbGxiYWNrKQogewogfQpAQCAtNjMsMTAgKzYzLDQg
QEAgSlNDYWxsYmFja0Z1bmN0aW9uKiBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gZnVuY3Rpb247CiB9CiAKLUNh
bGxUeXBlIEpTQ2FsbGJhY2tGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
IGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEFQSUNhbGxiYWNr
RnVuY3Rpb246OmNhbGw8SlNDYWxsYmFja0Z1bmN0aW9uPjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6
Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKaW5kZXggYTRmZGQwNjhmZWY0OGI0OGFkNmRhNDk0
NDRiNWI1ZDQwYzBjZGE2NS4uNGM1NGI4MGY1OWNlYjkwYjMyMTdkNzc4YmU5Y2RjMTgwZmM0NGYw
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rp
b24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5o
CkBAIC00NCwxNSArNDQsMTMgQEAgY2xhc3MgSlNDYWxsYmFja0Z1bmN0aW9uIDogcHVibGljIElu
dGVybmFsRnVuY3Rpb24gewogICAgIC8vIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRoaXMgb3ZlcnJp
ZGUgaXNuJ3QgbmVjZXNzYXJ5CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAg
ICAgeyAKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8s
IFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
IAogICAgIH0KIAogcHJpdmF0ZToKICAgICBKU0NhbGxiYWNrRnVuY3Rpb24oVk0mLCBTdHJ1Y3R1
cmUqLCBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2spOwogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0KICAgICBKU09iamVjdENhbGxBc0Z1bmN0
aW9uQ2FsbGJhY2sgZnVuY3Rpb25DYWxsYmFjaygpIHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAog
ICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBtX2NhbGxiYWNrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IDRkNWI3
MzY4ZDNjN2MxMDNiNGQ0ZTYzZmE4ZTYyNDViY2YwMmM2YjEuLmZmMzFhNDdkNWNkYTdkZGExNmJi
MGUwMTgzNjczNjlmOGVkMmJkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L09iakNDYWxsYmFja0Z1bmN0aW9uLmgKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgT2JqQ0NhbGxi
YWNrRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewogICAgICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0
KTsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOwogICAgIH0KIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQppbmRleCBmYjkzYTg2MGFl
YmYyZjQ5MGIwN2MyNWZmNzUwMzUzMmE0Yjc3YWQzLi42M2Y5MjBlZGIyMjRmMWFkZDFkMDliN2Ex
MTIzN2FkNjVhMTg3OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09i
akNDYWxsYmFja0Z1bmN0aW9uLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2Jq
Q0NhbGxiYWNrRnVuY3Rpb24ubW0KQEAgLTUwNiw3ICs1MDYsNyBAQCBzdGF0aWMgSlNPYmplY3RS
ZWYgb2JqQ0NhbGxiYWNrRnVuY3Rpb25DYWxsQXNDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY2Fs
bGVyQ29udAogY29uc3QgSlNDOjpDbGFzc0luZm8gT2JqQ0NhbGxiYWNrRnVuY3Rpb246OnNfaW5m
byA9IHsgIkNhbGxiYWNrRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKE9iakNDYWxsYmFja0Z1bmN0aW9uKSB9OwogCiBPYmpDQ2Fs
bGJhY2tGdW5jdGlvbjo6T2JqQ0NhbGxiYWNrRnVuY3Rpb24oSlNDOjpWTSYgdm0sIEpTQzo6U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBmdW5jdGlv
bkNhbGxiYWNrLCBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yQ2FsbGJhY2sgY29uc3RydWN0Q2Fs
bGJhY2ssIHN0ZDo6dW5pcXVlX3B0cjxPYmpDQ2FsbGJhY2tGdW5jdGlvbkltcGw+IGltcGwpCi0g
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEFQSUNh
bGxiYWNrRnVuY3Rpb246OmNhbGw8T2JqQ0NhbGxiYWNrRnVuY3Rpb24+LCBpbXBsLT5pc0NvbnN0
cnVjdGlibGUoKSA/IEFQSUNhbGxiYWNrRnVuY3Rpb246OmNvbnN0cnVjdDxPYmpDQ2FsbGJhY2tG
dW5jdGlvbj4gOiBudWxscHRyKQogICAgICwgbV9mdW5jdGlvbkNhbGxiYWNrKGZ1bmN0aW9uQ2Fs
bGJhY2spCiAgICAgLCBtX2NvbnN0cnVjdENhbGxiYWNrKGNvbnN0cnVjdENhbGxiYWNrKQogICAg
ICwgbV9pbXBsKFdURk1vdmUoaW1wbCkpCkBAIC01MjgsMjIgKzUyOCw2IEBAIHZvaWQgT2JqQ0Nh
bGxiYWNrRnVuY3Rpb246OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogICAgIGZ1bmN0aW9uLn5PYmpD
Q2FsbGJhY2tGdW5jdGlvbigpOwogfQogCi0KLUNhbGxUeXBlIE9iakNDYWxsYmFja0Z1bmN0aW9u
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2FsbDxPYmpDQ2FsbGJh
Y2tGdW5jdGlvbj47Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCi1Db25zdHJ1Y3RU
eXBlIE9iakNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCogY2VsbCwg
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBPYmpDQ2FsbGJhY2tGdW5jdGlv
biogY2FsbGJhY2sgPSBqc0Nhc3Q8T2JqQ0NhbGxiYWNrRnVuY3Rpb24qPihjZWxsKTsKLSAgICBp
ZiAoIWNhbGxiYWNrLT5pbXBsKCktPmlzQ29uc3RydWN0aWJsZSgpKQotICAgICAgICByZXR1cm4g
QmFzZTo6Z2V0Q29uc3RydWN0RGF0YShjZWxsLCBjb25zdHJ1Y3REYXRhKTsKLSAgICBjb25zdHJ1
Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEFQSUNhbGxiYWNrRnVuY3Rpb246OmNvbnN0cnVjdDxP
YmpDQ2FsbGJhY2tGdW5jdGlvbj47Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19
Ci0KIFN0cmluZyBPYmpDQ2FsbGJhY2tGdW5jdGlvbkltcGw6Om5hbWUoKQogewogICAgIGlmICht
X3R5cGUgPT0gQ2FsbGJhY2tJbml0TWV0aG9kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKaW5kZXggOWJjMTE3ZjE5OTE0YzUzOWUyZGNh
ZTMzNzJlMzFhNDlhZDZjMmVhMS4uYTlmMTZkNzNmM2RjZjA3NDkzOWQxOGM2Y2Q4NzhlMmUxYjFm
Zjg4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
RHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVE
dW1wZXIuY3BwCkBAIC01NzgsMTYgKzU3OCwxOSBAQCB2b2lkIEJ5dGVjb2RlRHVtcGVyPEJsb2Nr
Pjo6cHJpbnRDYWxsT3AoUHJpbnRTdHJlYW0mIG91dCwgaW50IGxvY2F0aW9uLCBjb25zdCB0eQog
ICAgIGlmIChjYWNoZUR1bXBNb2RlID09IER1bXBDYWNoZXMpIHsKICAgICAgICAgTExJbnRDYWxs
TGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IGdldENhbGxMaW5rSW5mbyhpdFsxXSk7CiAgICAgICAg
IGlmIChjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlKSB7Ci0gICAgICAgICAgICBvdXQucHJp
bnRmKAotICAgICAgICAgICAgICAgICIgbGxpbnQoJXAsIGV4ZWMgJXApIiwKLSAgICAgICAgICAg
ICAgICBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLmdldCgpLAotICAgICAgICAgICAgICAg
IGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUtPmV4ZWN1dGFibGUoKSk7CisgICAgICAgICAg
ICBKU09iamVjdCogb2JqZWN0ID0gY2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZS5nZXQoKTsK
KyAgICAgICAgICAgIGlmIChhdXRvKiBmdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlv
bio+KCp2bSgpLCBvYmplY3QpKQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBsbGludCgl
cCwgZXhlYyAlcCkiLCBmdW5jdGlvbiwgZnVuY3Rpb24tPmV4ZWN1dGFibGUoKSk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiIGxsaW50KCVwKSIsIG9iamVj
dCk7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoSklUKQogICAgICAgICBpZiAoQ2FsbExpbmtJbmZv
KiBpbmZvID0gbWFwLmdldChDb2RlT3JpZ2luKGxvY2F0aW9uKSkpIHsKLSAgICAgICAgICAgIEpT
RnVuY3Rpb24qIHRhcmdldCA9IGluZm8tPmxhc3RTZWVuQ2FsbGVlKCk7Ci0gICAgICAgICAgICBp
ZiAodGFyZ2V0KQotICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBqaXQoJXAsIGV4ZWMgJXAp
IiwgdGFyZ2V0LCB0YXJnZXQtPmV4ZWN1dGFibGUoKSk7CisgICAgICAgICAgICBKU09iamVjdCog
b2JqZWN0ID0gaW5mby0+bGFzdFNlZW5DYWxsZWUoKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBm
dW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KCp2bSgpLCBvYmplY3QpKQorICAg
ICAgICAgICAgICAgIG91dC5wcmludGYoIiBqaXQoJXAsIGV4ZWMgJXApIiwgZnVuY3Rpb24sIGZ1
bmN0aW9uLT5leGVjdXRhYmxlKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IG91dC5wcmludGYoIiBqaXQoJXApIiwgb2JqZWN0KTsKICAgICAgICAgfQogCiAgICAgICAgIGR1
bXBDYWxsTGlua1N0YXR1cyhvdXQsIGxvY2F0aW9uLCBtYXApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAppbmRleCAzYWNjNWZiZTNmZWVjNTAx
YzdlZGM1NGRlYzg5NjY4NmMzYzdhOWE1Li5lZDZkMzY5NzQ3NTE0ZGZiMmU5YmQyNTE2MDUyODUy
ZmNiZjdmY2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2Fs
bExpbmtJbmZvLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExp
bmtJbmZvLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIENvZGVMb2NhdGlvbkxhYmVsIENhbGxMaW5r
SW5mbzo6c2xvd1BhdGhTdGFydCgpCiAgICAgcmV0dXJuIG1faG90UGF0aEJlZ2luT3JTbG93UGF0
aFN0YXJ0OwogfQogCi12b2lkIENhbGxMaW5rSW5mbzo6c2V0Q2FsbGVlKFZNJiB2bSwgSlNDZWxs
KiBvd25lciwgSlNGdW5jdGlvbiogY2FsbGVlKQordm9pZCBDYWxsTGlua0luZm86OnNldENhbGxl
ZShWTSYgdm0sIEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0KiBjYWxsZWUpCiB7CiAgICAgUkVMRUFT
RV9BU1NFUlQoIWlzRGlyZWN0KCkpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBhdGNoUG9pbnRl
cihob3RQYXRoQmVnaW4oKSwgY2FsbGVlKTsKQEAgLTEzNywxMCArMTM3LDEwIEBAIHZvaWQgQ2Fs
bExpbmtJbmZvOjpjbGVhckNhbGxlZSgpCiAgICAgbV9pc0xpbmtlZCA9IGZhbHNlOwogfQogCi1K
U0Z1bmN0aW9uKiBDYWxsTGlua0luZm86OmNhbGxlZSgpCitKU09iamVjdCogQ2FsbExpbmtJbmZv
OjpjYWxsZWUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKCFpc0RpcmVjdCgpKTsKLSAgICByZXR1
cm4ganNDYXN0PEpTRnVuY3Rpb24qPihtX2NhbGxlZU9yQ29kZUJsb2NrLmdldCgpKTsKKyAgICBy
ZXR1cm4ganNDYXN0PEpTT2JqZWN0Kj4obV9jYWxsZWVPckNvZGVCbG9jay5nZXQoKSk7CiB9CiAK
IHZvaWQgQ2FsbExpbmtJbmZvOjpzZXRDb2RlQmxvY2soVk0mIHZtLCBKU0NlbGwqIG93bmVyLCBG
dW5jdGlvbkNvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtMTYzLDcgKzE2Myw3IEBAIEZ1bmN0aW9u
Q29kZUJsb2NrKiBDYWxsTGlua0luZm86OmNvZGVCbG9jaygpCiAgICAgcmV0dXJuIGpzQ2FzdDxG
dW5jdGlvbkNvZGVCbG9jayo+KG1fY2FsbGVlT3JDb2RlQmxvY2suZ2V0KCkpOwogfQogCi12b2lk
IENhbGxMaW5rSW5mbzo6c2V0TGFzdFNlZW5DYWxsZWUoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93
bmVyLCBKU0Z1bmN0aW9uKiBjYWxsZWUpCit2b2lkIENhbGxMaW5rSW5mbzo6c2V0TGFzdFNlZW5D
YWxsZWUoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBKU09iamVjdCogY2FsbGVlKQogewog
ICAgIFJFTEVBU0VfQVNTRVJUKCFpc0RpcmVjdCgpKTsKICAgICBtX2xhc3RTZWVuQ2FsbGVlT3JF
eGVjdXRhYmxlLnNldCh2bSwgb3duZXIsIGNhbGxlZSk7CkBAIC0xNzUsMTAgKzE3NSwxMCBAQCB2
b2lkIENhbGxMaW5rSW5mbzo6Y2xlYXJMYXN0U2VlbkNhbGxlZSgpCiAgICAgbV9sYXN0U2VlbkNh
bGxlZU9yRXhlY3V0YWJsZS5jbGVhcigpOwogfQogCi1KU0Z1bmN0aW9uKiBDYWxsTGlua0luZm86
Omxhc3RTZWVuQ2FsbGVlKCkKK0pTT2JqZWN0KiBDYWxsTGlua0luZm86Omxhc3RTZWVuQ2FsbGVl
KCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNEaXJlY3QoKSk7Ci0gICAgcmV0dXJuIGpzQ2Fz
dDxKU0Z1bmN0aW9uKj4obV9sYXN0U2VlbkNhbGxlZU9yRXhlY3V0YWJsZS5nZXQoKSk7CisgICAg
cmV0dXJuIGpzQ2FzdDxKU09iamVjdCo+KG1fbGFzdFNlZW5DYWxsZWVPckV4ZWN1dGFibGUuZ2V0
KCkpOwogfQogCiBib29sIENhbGxMaW5rSW5mbzo6aGF2ZUxhc3RTZWVuQ2FsbGVlKCkKQEAgLTIz
NSwxNCArMjM1LDIwIEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp2aXNpdFdlYWsoVk0mIHZtKQogICAg
ICAgICAgICAgICAgICAgICAgICAgcG9pbnRlckR1bXAoY29kZUJsb2NrKCkpLCAiKS5cbiIpOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
aWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkgewotICAgICAgICAgICAgICAgICAgICBkYXRhTG9n
KAotICAgICAgICAgICAgICAgICAgICAgICAgIkNsZWFyaW5nIGNhbGwgdG8gIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIFJhd1BvaW50ZXIoY2FsbGVlKCkpLCAiICgiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgY2FsbGVlKCktPmV4ZWN1dGFibGUoKS0+aGFzaEZvcihzcGVjaWFsaXphdGlv
bktpbmQoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAiKS5cbiIpOworICAgICAgICAgICAg
ICAgIGlmIChjYWxsZWUoKS0+dHlwZSgpID09IEpTRnVuY3Rpb25UeXBlKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRhdGFMb2coCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNsZWFyaW5nIGNh
bGwgdG8gIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYXdQb2ludGVyKGNhbGxlZSgp
KSwgIiAoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxKU0Z1bmN0
aW9uKj4oY2FsbGVlKCkpLT5leGVjdXRhYmxlKCktPmhhc2hGb3Ioc3BlY2lhbGl6YXRpb25LaW5k
KCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpLlxuIik7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlU3BlY2lmaWNDYWxsZWUoc3RhdGlj
X2Nhc3Q8SlNGdW5jdGlvbio+KGNhbGxlZSgpKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGFMb2coIkNsZWFyaW5nIGNhbGwgdG8gIiwgUmF3UG9pbnRlcihj
YWxsZWUoKSksICIuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jbGVhcmVkQnlHQyA9IHRy
dWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGhhbmRsZVNwZWNpZmljQ2Fs
bGVlKGNhbGxlZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHVubGluayh2bSk7CiAg
ICAgICAgIH0gZWxzZSBpZiAoaXNEaXJlY3QoKSAmJiAhSGVhcDo6aXNNYXJrZWQobV9sYXN0U2Vl
bkNhbGxlZU9yRXhlY3V0YWJsZS5nZXQoKSkpIHsKQEAgLTI1OCw3ICsyNjQsMTAgQEAgdm9pZCBD
YWxsTGlua0luZm86OnZpc2l0V2VhayhWTSYgdm0pCiAgICAgICAgIH0KICAgICB9CiAgICAgaWYg
KCFpc0RpcmVjdCgpICYmIGhhdmVMYXN0U2VlbkNhbGxlZSgpICYmICFIZWFwOjppc01hcmtlZChs
YXN0U2VlbkNhbGxlZSgpKSkgewotICAgICAgICBoYW5kbGVTcGVjaWZpY0NhbGxlZShsYXN0U2Vl
bkNhbGxlZSgpKTsKKyAgICAgICAgaWYgKGxhc3RTZWVuQ2FsbGVlKCktPnR5cGUoKSA9PSBKU0Z1
bmN0aW9uVHlwZSkKKyAgICAgICAgICAgIGhhbmRsZVNwZWNpZmljQ2FsbGVlKHN0YXRpY19jYXN0
PEpTRnVuY3Rpb24qPihsYXN0U2VlbkNhbGxlZSgpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG1fY2xlYXJlZEJ5R0MgPSB0cnVlOwogICAgICAgICBjbGVhckxhc3RTZWVuQ2FsbGVlKCk7
CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nh
bGxMaW5rSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5m
by5oCmluZGV4IDkxZDNkZDhmNzViMTIyODNlMGFhZGQ3ODhlMGY5Njc1OTBmNmRlODEuLjViYzJj
NDRmNDU4NDgyNTBiNzhhODg1NDBhMzgwYjhkMDA2MDA4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKQEAgLTE5MSwxNyArMTkxLDE3IEBAIGNs
YXNzIENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxDYWxsTGlua0lu
Zm8+IHsKICAgICAgICAgcmV0dXJuIG1faG90UGF0aE90aGVyOwogICAgIH0KIAotICAgIHZvaWQg
c2V0Q2FsbGVlKFZNJiwgSlNDZWxsKiwgSlNGdW5jdGlvbiogY2FsbGVlKTsKKyAgICB2b2lkIHNl
dENhbGxlZShWTSYsIEpTQ2VsbCosIEpTT2JqZWN0KiBjYWxsZWUpOwogICAgIHZvaWQgY2xlYXJD
YWxsZWUoKTsKLSAgICBKU0Z1bmN0aW9uKiBjYWxsZWUoKTsKKyAgICBKU09iamVjdCogY2FsbGVl
KCk7CiAKICAgICB2b2lkIHNldENvZGVCbG9jayhWTSYsIEpTQ2VsbCosIEZ1bmN0aW9uQ29kZUJs
b2NrKik7CiAgICAgdm9pZCBjbGVhckNvZGVCbG9jaygpOwogICAgIEZ1bmN0aW9uQ29kZUJsb2Nr
KiBjb2RlQmxvY2soKTsKIAotICAgIHZvaWQgc2V0TGFzdFNlZW5DYWxsZWUoVk0mIHZtLCBjb25z
dCBKU0NlbGwqIG93bmVyLCBKU0Z1bmN0aW9uKiBjYWxsZWUpOworICAgIHZvaWQgc2V0TGFzdFNl
ZW5DYWxsZWUoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBKU09iamVjdCogY2FsbGVlKTsKICAg
ICB2b2lkIGNsZWFyTGFzdFNlZW5DYWxsZWUoKTsKLSAgICBKU0Z1bmN0aW9uKiBsYXN0U2VlbkNh
bGxlZSgpOworICAgIEpTT2JqZWN0KiBsYXN0U2VlbkNhbGxlZSgpOwogICAgIGJvb2wgaGF2ZUxh
c3RTZWVuQ2FsbGVlKCk7CiAgICAgCiAgICAgdm9pZCBzZXRFeGVjdXRhYmxlRHVyaW5nQ29tcGls
YXRpb24oRXhlY3V0YWJsZUJhc2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwCmluZGV4IDUzYjg0ZDljMDM3ZTE3ZjZhZTkzZGM4NTUx
OTI3ODhiNjNlNjdhZWEuLmYyODRlMzAxNjRhMDBhNTQ3MTEwNmNiNThkOTg4MDAxYmQyNjVlZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVz
LmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIENhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpj
b21wdXRlRnJvbUNhbGxMaW5rSW5mbygKICAgICAKICAgICBDYWxsTGlua1N0YXR1cyByZXN1bHQ7
CiAgICAgCi0gICAgaWYgKEpTRnVuY3Rpb24qIHRhcmdldCA9IGNhbGxMaW5rSW5mby5sYXN0U2Vl
bkNhbGxlZSgpKSB7CisgICAgaWYgKEpTT2JqZWN0KiB0YXJnZXQgPSBjYWxsTGlua0luZm8ubGFz
dFNlZW5DYWxsZWUoKSkgewogICAgICAgICBDYWxsVmFyaWFudCB2YXJpYW50KHRhcmdldCk7CiAg
ICAgICAgIGlmIChjYWxsTGlua0luZm8uaGFzU2VlbkNsb3N1cmUoKSkKICAgICAgICAgICAgIHZh
cmlhbnQgPSB2YXJpYW50LmRlc3BlY2lmaWVkQ2xvc3VyZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50Q2FsbExpbmtJbmZvLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRDYWxsTGlua0luZm8uaAppbmRleCBjMmNmNGQxZGMx
NWJmN2ZhOWUwODkxODYxNmFhNTNhMDI0OTE3MWNkLi44ZDBiODYwZWVmMjVhNTUxMWFiZGZmZDYx
ODA4NmZmYTE4MTQ4ZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTExJbnRDYWxsTGlua0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTExJbnRDYWxsTGlua0luZm8uaApAQCAtNTQsOCArNTQsOCBAQCBzdHJ1Y3QgTExJbnRDYWxs
TGlua0luZm8gOiBwdWJsaWMgQmFzaWNSYXdTZW50aW5lbE5vZGU8TExJbnRDYWxsTGlua0luZm8+
IHsKICAgICAgICAgICAgIHJlbW92ZSgpOwogICAgIH0KICAgICAKLSAgICBXcml0ZUJhcnJpZXI8
SlNGdW5jdGlvbj4gY2FsbGVlOwotICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBsYXN0U2Vl
bkNhbGxlZTsKKyAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IGNhbGxlZTsKKyAgICBXcml0ZUJh
cnJpZXI8SlNPYmplY3Q+IGxhc3RTZWVuQ2FsbGVlOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBtYWNoaW5lQ29kZVRhcmdldDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuY3BwCmluZGV4IDQ4Y2I2ZWRlZDMwMzAxMmFiZjA3OTQ1YjlmZDUzYmE0MTc0
MGM1ODIuLjAwZDYzYzFlMzU0M2NhYjJhYjI1NzU1OGZkY2UyZGM4MDBhNDkyMjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtOTM5LDkgKzkzOSwy
MiBAQCBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbChF
eGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENhbGxMaQogICAgIEpTVmFsdWUgY2FsbGVlQXNWYWx1ZSA9
IGV4ZWNDYWxsZWUtPmd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCk7CiAgICAgSlNDZWxsKiBjYWxs
ZWVBc0Z1bmN0aW9uQ2VsbCA9IGdldEpTRnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSk7CiAgICAgaWYg
KCFjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkgewotICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNh
Y2hlIHRoZXNlIGtpbmRzIG9mIGNhbGxzLiBUaGV5IGNhbiBiZSBjb21tb24gYW5kIGN1cnJlbnRs
eSB0aGV5IGFyZQotICAgICAgICAvLyBleHBlbnNpdmUuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0NTgKKyAgICAgICAgaWYgKGNhbGxlZUFz
VmFsdWUuaXNDZWxsKCkgJiYgY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEludGVy
bmFsRnVuY3Rpb25UeXBlKSB7CisgICAgICAgICAgICAvLyBGSVhNRSEKKyAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyOworICAgICAgICAgICAgaWYgKGtpbmQgPT0gQ29k
ZUZvckNhbGwpCisgICAgICAgICAgICAgICAgY29kZVB0ciA9IHZtLT5qaXRTdHVicy0+Y3RpU3R1
Yih2bSwgaW50ZXJuYWxGdW5jdGlvbkNhbGxHZW5lcmF0b3IpLmNvZGUoKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBjb2RlUHRyID0gdm0tPmppdFN0dWJzLT5jdGlTdHViKHZt
LCBpbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0R2VuZXJhdG9yKS5jb2RlKCk7CisgICAgICAgICAg
ICBBU1NFUlQoISFjb2RlUHRyKTsKKworICAgICAgICAgICAgaWYgKCFjYWxsTGlua0luZm8tPnNl
ZW5PbmNlKCkpCisgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5zZXRTZWVuKCk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGlua0ZvcihleGVjQ2FsbGVlLCAqY2FsbExp
bmtJbmZvLCBudWxscHRyLCBhc09iamVjdChjYWxsZWVBc1ZhbHVlKSwgY29kZVB0cik7CisKKyAg
ICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygp
LCByZWludGVycHJldF9jYXN0PHZvaWQqPihjYWxsTGlua0luZm8tPmNhbGxNb2RlKCkgPT0gQ2Fs
bE1vZGU6OlRhaWwgPyBSZXVzZVRoZUZyYW1lIDogS2VlcFRoZUZyYW1lKSk7CisgICAgICAgIH0K
ICAgICAgICAgdGhyb3dTY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBoYW5kbGVIb3N0
Q2FsbChleGVjQ2FsbGVlLCBjYWxsZWVBc1ZhbHVlLCBjYWxsTGlua0luZm8pOwogICAgIH0KQEAg
LTk1MSw3ICs5NjQsNyBAQCBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25MaW5rQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENhbGxMaQogICAgIEV4ZWN1dGFibGVC
YXNlKiBleGVjdXRhYmxlID0gY2FsbGVlLT5leGVjdXRhYmxlKCk7CiAKICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgY29kZVB0cjsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDA7CisgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2sgPSBudWxscHRyOwogICAgIGlmIChleGVjdXRhYmxlLT5pc0hv
c3RGdW5jdGlvbigpKSB7CiAgICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5lbnRyeXBvaW50
Rm9yKGtpbmQsIE11c3RDaGVja0FyaXR5KTsKICAgICB9IGVsc2UgewpAQCAtMTA1Myw2ICsxMDY2
LDE2IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUgdmlydHVhbEZvcldpdGhGdW5jdGlvbigK
ICAgICBKU1ZhbHVlIGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5ndWFyYW50ZWVkSlNWYWx1
ZUNhbGxlZSgpOwogICAgIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5jdGlvbihjYWxs
ZWVBc1ZhbHVlKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSkgewor
ICAgICAgICBpZiAoY2FsbGVlQXNWYWx1ZS5pc0NlbGwoKSAmJiBjYWxsZWVBc1ZhbHVlLmFzQ2Vs
bCgpLT50eXBlKCkgPT0gSW50ZXJuYWxGdW5jdGlvblR5cGUpIHsKKyAgICAgICAgICAgIC8vIEZJ
WE1FIQorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHI7CisgICAgICAg
ICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAgICAgICAgICBjb2RlUHRyID0g
dm0tPmppdFN0dWJzLT5jdGlTdHViKHZtLCBpbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvciku
Y29kZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvZGVQdHIgPSB2bS0+
aml0U3R1YnMtPmN0aVN0dWIodm0sIGludGVybmFsRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3Ip
LmNvZGUoKTsKKyAgICAgICAgICAgIEFTU0VSVCghIWNvZGVQdHIpOworICAgICAgICAgICAgcmV0
dXJuIGVuY29kZVJlc3VsdChjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+Y2FsbE1vZGUoKSA9PSBDYWxsTW9kZTo6VGFpbCA/
IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJhbWUpKTsKKyAgICAgICAgfQogICAgICAgICB0aHJv
d1Njb3BlLnJlbGVhc2UoKTsKICAgICAgICAgcmV0dXJuIGhhbmRsZUhvc3RDYWxsKGV4ZWNDYWxs
ZWUsIGNhbGxlZUFzVmFsdWUsIGNhbGxMaW5rSW5mbyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKaW5kZXggZDc5YWM2ZDg4MDczMTdlYjFiNzkyNzVjYjczMDA5OGY0
ZTljYmUyMi4uNTI4MGIzZDNmMTVjYjg2MjdmOTVhOGY5ZWVjZWQxNDZkYTViNDMzMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCkBAIC02OTIsNyArNjkyLDcgQEAgc3RhdGlj
IEpTQ2VsbCogd2ViQXNzZW1ibHlPd25lcihKU0NlbGwqIGNhbGxlZSkKIAogdm9pZCBsaW5rRm9y
KAogICAgIEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVC
bG9jayogY2FsbGVlQ29kZUJsb2NrLAotICAgIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGNvZGVQdHIpCisgICAgSlNPYmplY3QqIGNhbGxlZSwgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGNvZGVQdHIpCiB7CiAgICAgQVNTRVJUKCFjYWxsTGlua0luZm8uc3R1YigpKTsK
IApAQCAtODM5LDcgKzgzOSw3IEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKICAgICBDYWxs
VmFyaWFudExpc3QgbGlzdDsKICAgICBpZiAoUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUqIHN0
dWIgPSBjYWxsTGlua0luZm8uc3R1YigpKQogICAgICAgICBsaXN0ID0gc3R1Yi0+dmFyaWFudHMo
KTsKLSAgICBlbHNlIGlmIChKU0Z1bmN0aW9uKiBvbGRDYWxsZWUgPSBjYWxsTGlua0luZm8uY2Fs
bGVlKCkpCisgICAgZWxzZSBpZiAoSlNPYmplY3QqIG9sZENhbGxlZSA9IGNhbGxMaW5rSW5mby5j
YWxsZWUoKSkKICAgICAgICAgbGlzdCA9IENhbGxWYXJpYW50TGlzdHsgQ2FsbFZhcmlhbnQob2xk
Q2FsbGVlKSB9OwogICAgIAogICAgIGxpc3QgPSB2YXJpYW50TGlzdFdpdGhWYXJpYW50KGxpc3Qs
IG5ld1ZhcmlhbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBh
dGNoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAppbmRleCBlMjk3NWI5
MWMxZDljZTg4ZjYyYzAzNzEzODllOWY2YTIwYjMxYTI5Li4xOWIxZjVmZWYwYzkxOGI0ODVkODNk
NDI4MzcxN2E5ZDFjYzk0MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlcGF0Y2guaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaApAQCAt
NDQsNyArNDQsNyBAQCB2b2lkIGJ1aWxkR2V0QnlJRFByb3RvTGlzdChFeGVjU3RhdGUqLCBKU1Zh
bHVlLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydAogdm9pZCByZXBhdGNoUHV0QnlJ
RChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29u
c3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKIHZvaWQg
YnVpbGRQdXRCeUlkTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQ
dXRLaW5kKTsKIHZvaWQgcmVwYXRjaEluKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIGNvbnN0IElkZW50
aWZpZXImLCBib29sIHdhc0ZvdW5kLCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHVi
SW5mbyYpOwotdm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9j
ayosIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKTsKK3ZvaWQgbGlu
a0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBKU09iamVjdCogY2Fs
bGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIpOwogdm9pZCBsaW5rRGlyZWN0Rm9yKEV4ZWNTdGF0
ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIE1hY3JvQXNzZW1ibGVyQ29kZVB0cik7CiB2
b2lkIGxpbmtTbG93Rm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYpOwogdm9pZCB1bmxpbmtG
b3IoVk0mLCBDYWxsTGlua0luZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmNwcAppbmRleCBmYjg3ZTAwZjE5OTNhZjdlN2MyMDMwNDAyMzQ3NzU1YTVh
ZjFmNjllLi4yYzk2MjI0NmI1OGY1OGQ2ZjJkYjYzMThmZjNkNzcyNTYyNDc0N2IyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCkBAIC0yMzYsOCAr
MjM2LDkgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENh
bGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQogfQogCiBlbnVtIFRodW5rRW50cnlUeXBlIHsgRW50
ZXJWaWFDYWxsLCBFbnRlclZpYUp1bXBXaXRoU2F2ZWRUYWdzLCBFbnRlclZpYUp1bXBXaXRob3V0
U2F2ZWRUYWdzIH07CitlbnVtIGNsYXNzIFRodW5rRnVuY3Rpb25UeXBlIHsgSlNGdW5jdGlvbiwg
SW50ZXJuYWxGdW5jdGlvbiB9OwogCi1zdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2
ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgVGh1bmtF
bnRyeVR5cGUgZW50cnlUeXBlID0gRW50ZXJWaWFDYWxsKQorc3RhdGljIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBUaHVua0Z1bmN0aW9uVHlwZSB0aHVu
a0Z1bmN0aW9uVHlwZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBUaHVua0VudHJ5VHlw
ZSBlbnRyeVR5cGUgPSBFbnRlclZpYUNhbGwpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IGJlIGFibGUgdG8gbG9nIFNoYWRvd0NoaWNrZW4gcHJvbG9ndWUgcGFja2V0cy4KICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1Njg5CkBAIC0yNzksOCAr
MjgwLDExIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9y
KFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAKICAgICAvLyBjYWxsIHRoZSBmdW5j
dGlvbgogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihDYWxsRnJhbWVTbG90
OjpjYWxsZWUsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmxvYWRQdHIoSlNJbnRl
cmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0Z1bmN0aW9uOjpvZmZz
ZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmNhbGwo
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBleGVjdXRhYmxl
T2Zmc2V0VG9GdW5jdGlvbikpOworICAgIGlmICh0aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVua0Z1
bmN0aW9uVHlwZTo6SlNGdW5jdGlvbikgeworICAgICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFj
ZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTRnVuY3Rpb246Om9mZnNldE9m
RXhlY3V0YWJsZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICAgICAgaml0LmNhbGwo
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBleGVjdXRhYmxl
T2Zmc2V0VG9GdW5jdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBqaXQuY2FsbChKU0ludGVy
ZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEludGVybmFsRnVuY3Rpb246
Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3Ioa2luZCkpKTsKIAogICAgIGppdC5hZGRQdHIoSlNJ
bnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKIApAQCAtMjkxLDggKzI5NSwxMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQg
awogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVn
aXN0ZXJzOjplZGkpOwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENh
bGxGcmFtZVNsb3Q6OmNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplc2kpOwotICAgIGppdC5sb2FkUHRy
KEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNpLCBKU0Z1bmN0aW9uOjpv
ZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOwotICAgIGppdC5jYWxsKEpT
SW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRU
b0Z1bmN0aW9uKSk7CisgICAgaWYgKHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25U
eXBlOjpKU0Z1bmN0aW9uKSB7CisgICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNpLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUo
KSksIFg4NlJlZ2lzdGVyczo6cjkpOworICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOwor
ICAgIH0gZWxzZQorICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZS
ZWdpc3RlcnM6OmVzaSwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZv
cihraW5kKSkpOwogCiAjZWxzZQogICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAgICBmKGVj
eCwgZWR4LCByOCwgcjksIC4uLik7CkBAIC0zMDQsOCArMzExLDExIEBAIHN0YXRpYyBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0
aW9uS2luZCBrCiAgICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQg
KiBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIp
OwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6
OmNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplZHgpOwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNl
SklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWR4LCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1
dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOwotICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklU
OjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7
CisgICAgaWYgKHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0
aW9uKSB7CisgICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJl
Z2lzdGVyczo6ZWR4LCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lz
dGVyczo6cjkpOworICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZS
ZWdpc3RlcnM6OnI5LCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIH0gZWxzZQor
ICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVk
eCwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwog
CiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2Yo
aW50NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2VuZGlm
CkBAIC0zMTksOCArMzI5LDExIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZl
Rm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0Lm1v
dmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6eDAp
OwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6
OmNhbGxlZSwgQVJNNjRSZWdpc3RlcnM6OngxKTsKLSAgICBqaXQubG9hZFB0cihKU0ludGVyZmFj
ZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVyczo6eDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhl
Y3V0YWJsZSgpKSwgQVJNNjRSZWdpc3RlcnM6OngyKTsKLSAgICBqaXQuY2FsbChKU0ludGVyZmFj
ZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVyczo6eDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0
aW9uKSk7CisgICAgaWYgKHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpK
U0Z1bmN0aW9uKSB7CisgICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNz
KEFSTTY0UmVnaXN0ZXJzOjp4MSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBB
Uk02NFJlZ2lzdGVyczo6eDIpOworICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRk
cmVzcyhBUk02NFJlZ2lzdGVyczo6eDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0
UmVnaXN0ZXJzOjp4MSwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZv
cihraW5kKSkpOwogI2VsaWYgQ1BVKEFSTSkgfHwgQ1BVKE1JUFMpCiAjaWYgQ1BVKE1JUFMpCiAg
ICAgLy8gQWxsb2NhdGUgc3RhY2sgc3BhY2UgZm9yICh1bnVzZWQpIDE2IGJ5dGVzICg4LWJ5dGUg
YWxpZ25lZCkgZm9yIDQgYXJndW1lbnRzLgpAQCAtMzMyLDggKzM0NSwxMSBAQCBzdGF0aWMgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFs
aXphdGlvbktpbmQgawogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3RlciwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCk7CiAKICAgICBqaXQuZW1pdEdldEZy
b21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlLCBKU0ludGVyZmFjZUpJ
VDo6YXJndW1lbnRHUFIxKTsKLSAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVz
cyhKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1
dGFibGUoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7Ci0gICAgaml0LmNhbGwoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyLCBleGVjdXRhYmxlT2Zmc2V0VG9G
dW5jdGlvbikpOworICAgIGlmICh0aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0aW9uVHlw
ZTo6SlNGdW5jdGlvbikgeworICAgICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRk
cmVzcyhKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4
ZWN1dGFibGUoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CisgICAgICAgIGppdC5jYWxsKEpT
SW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMiwgZXhlY3V0YWJsZU9m
ZnNldFRvRnVuY3Rpb24pKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMSwgSW50ZXJuYWxGdW5j
dGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogCiAjaWYgQ1BVKE1JUFMp
CiAgICAgLy8gUmVzdG9yZSBzdGFjayBzcGFjZQpAQCAtMzg4LDI3ICs0MDQsNDcgQEAgc3RhdGlj
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQuanVtcFRvRXhjZXB0aW9uSGFuZGxlcigqdm0pOwog
CiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcihqaXQsIEdMT0JBTF9USFVOS19JRCk7Ci0gICAg
cmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgibmF0aXZlICVzJXMgdHJhbXBvbGlu
ZSIsIGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1bXBXaXRoU2F2ZWRUYWdzID8gIlRhaWwgV2l0aCBT
YXZlZCBUYWdzICIgOiBlbnRyeVR5cGUgPT0gRW50ZXJWaWFKdW1wV2l0aG91dFNhdmVkVGFncyA/
ICJUYWlsIFdpdGhvdXQgU2F2ZWQgVGFncyAiIDogIiIsIHRvQ1N0cmluZyhraW5kKS5kYXRhKCkp
KTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgKCIlcyAlcyVzIHRyYW1w
b2xpbmUiLCB0aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlv
biA/ICJuYXRpdmUiIDogImludGVybmFsIiwgZW50cnlUeXBlID09IEVudGVyVmlhSnVtcFdpdGhT
YXZlZFRhZ3MgPyAiVGFpbCBXaXRoIFNhdmVkIFRhZ3MgIiA6IGVudHJ5VHlwZSA9PSBFbnRlclZp
YUp1bXBXaXRob3V0U2F2ZWRUYWdzID8gIlRhaWwgV2l0aG91dCBTYXZlZCBUYWdzICIgOiAiIiwg
dG9DU3RyaW5nKGtpbmQpLmRhdGEoKSkpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0
aXZlQ2FsbEdlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRv
cih2bSwgQ29kZUZvckNhbGwpOworICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRo
dW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uLCBDb2RlRm9yQ2FsbCk7CiB9CiAKIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2FsbEdlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0
dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwsIEVudGVyVmlhSnVtcFdpdGhT
YXZlZFRhZ3MpOworICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rp
b25UeXBlOjpKU0Z1bmN0aW9uLCBDb2RlRm9yQ2FsbCwgRW50ZXJWaWFKdW1wV2l0aFNhdmVkVGFn
cyk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZl
ZFRhZ3NHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Io
dm0sIENvZGVGb3JDYWxsLCBFbnRlclZpYUp1bXBXaXRob3V0U2F2ZWRUYWdzKTsKKyAgICByZXR1
cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiwg
Q29kZUZvckNhbGwsIEVudGVyVmlhSnVtcFdpdGhvdXRTYXZlZFRhZ3MpOwogfQogCiBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbmF0aXZlQ29uc3RydWN0R2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICBy
ZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1
cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiwg
Q29kZUZvckNvbnN0cnVjdCk7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBpbnRlcm5hbEZ1
bmN0aW9uQ2FsbEdlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVy
YXRvcih2bSwgVGh1bmtGdW5jdGlvblR5cGU6OkludGVybmFsRnVuY3Rpb24sIENvZGVGb3JDYWxs
KTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVuY3Rpb25UYWlsQ2FsbEdl
bmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgVGh1
bmtGdW5jdGlvblR5cGU6OkludGVybmFsRnVuY3Rpb24sIENvZGVGb3JDYWxsLCBFbnRlclZpYUp1
bXBXaXRoU2F2ZWRUYWdzKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVu
Y3Rpb25UYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJl
dHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpJbnRlcm5hbEZ1
bmN0aW9uLCBDb2RlRm9yQ2FsbCwgRW50ZXJWaWFKdW1wV2l0aG91dFNhdmVkVGFncyk7Cit9CisK
K01hY3JvQXNzZW1ibGVyQ29kZVJlZiBpbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0R2VuZXJhdG9y
KFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBUaHVua0Z1bmN0
aW9uVHlwZTo6SW50ZXJuYWxGdW5jdGlvbiwgQ29kZUZvckNvbnN0cnVjdCk7CiB9CiAKIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwR2VuZXJhdG9yKFZNKiB2bSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCmluZGV4IGMwNDNkNDE4N2IwZjViNDZi
MGYyY2Y3ZTg2NjgyNDg2NjU0Y2ZjZmMuLjkzZDU1YjU1YzlmM2U4MjAzMmYyY2FlOTBiYjUyYTlh
ZWFkMGNjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5l
cmF0b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMu
aApAQCAtNDYsNiArNDYsMTAgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNhbGxHZW5l
cmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0
b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2FsbEdlbmVyYXRvcihW
TSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFn
c0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVuY3Rpb25D
YWxsR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgaW50ZXJuYWxGdW5jdGlv
bkNvbnN0cnVjdEdlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFs
RnVuY3Rpb25UYWlsQ2FsbEdlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGlu
dGVybmFsRnVuY3Rpb25UYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IoVk0qKTsKIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgdW5yZWFjaGFibGVHZW5lcmF0b3IoVk0qKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggNTRjZWEzMmY1NzZkN2Fj
ZWM2YWEyMWZmMTJlYTNmYWUxNDFjM2U0Ny4uODVmMjMxNDc3MTk4OTQxMGFlYjBkY2UwNzA2YzM3
OTYzOTUwMDZiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAj
aW5jbHVkZSAiU2hhZG93Q2hpY2tlbi5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5s
aW5lcy5oIgorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlZNSW5saW5l
cy5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJp
bmdQcmludFN0cmVhbS5oPgpAQCAtMTM1MCw2ICsxMzUxLDMwIEBAIGlubGluZSBTbG93UGF0aFJl
dHVyblR5cGUgc2V0VXBDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgSW5zdHJ1Y3Rpb24qIHBj
LCBDb2RlCiAgICAgCiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCA9IGdldEpTRnVu
Y3Rpb24oY2FsbGVlQXNWYWx1ZSk7CiAgICAgaWYgKCFjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkgewor
ICAgICAgICBpZiAoY2FsbGVlQXNWYWx1ZS5pc0NlbGwoKSAmJiBjYWxsZWVBc1ZhbHVlLmFzQ2Vs
bCgpLT50eXBlKCkgPT0gSW50ZXJuYWxGdW5jdGlvblR5cGUpIHsKKyAgICAgICAgICAgIC8vIEZJ
WE1FIQorICAgICAgICAgICAgYXV0byogaW50ZXJuYWxGdW5jdGlvbiA9IGpzQ2FzdDxJbnRlcm5h
bEZ1bmN0aW9uKj4oY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKSk7CisgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgY29kZVB0cjsKKyAgICAgICAgICAgIGlmIChraW5kID09IENvZGVGb3JD
YWxsKQorICAgICAgICAgICAgICAgIGNvZGVQdHIgPSB2bS5qaXRTdHVicy0+Y3RpU3R1Yigmdm0s
IGludGVybmFsRnVuY3Rpb25DYWxsR2VuZXJhdG9yKS5jb2RlKCk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgY29kZVB0ciA9IHZtLmppdFN0dWJzLT5jdGlTdHViKCZ2bSwgaW50
ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdEdlbmVyYXRvcikuY29kZSgpOworICAgICAgICAgICAgQVNT
RVJUKCEhY29kZVB0cik7CisKKyAgICAgICAgICAgIGlmICghTExJTlRfQUxXQVlTX0FDQ0VTU19T
TE9XICYmIGNhbGxMaW5rSW5mbykgeworICAgICAgICAgICAgICAgIENvZGVCbG9jayogY2FsbGVy
Q29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CisKKyAgICAgICAgICAgICAgICBDb25jdXJy
ZW50SlNMb2NrZXIgbG9ja2VyKGNhbGxlckNvZGVCbG9jay0+bV9sb2NrKTsKKworICAgICAgICAg
ICAgICAgIGlmIChjYWxsTGlua0luZm8tPmlzT25MaXN0KCkpCisgICAgICAgICAgICAgICAgICAg
IGNhbGxMaW5rSW5mby0+cmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5j
YWxsZWUuc2V0KHZtLCBjYWxsZXJDb2RlQmxvY2ssIGludGVybmFsRnVuY3Rpb24pOworICAgICAg
ICAgICAgICAgIGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuc2V0KHZtLCBjYWxsZXJDb2Rl
QmxvY2ssIGludGVybmFsRnVuY3Rpb24pOworICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+
bWFjaGluZUNvZGVUYXJnZXQgPSBjb2RlUHRyOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBMTElOVF9DQUxMX1JFVFVSTihleGVjLCBleGVjQ2FsbGVlLCBjb2RlUHRyLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpOworICAgICAgICB9CiAgICAgICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwogICAg
ICAgICByZXR1cm4gaGFuZGxlSG9zdENhbGwoZXhlY0NhbGxlZSwgcGMsIGNhbGxlZUFzVmFsdWUs
IGtpbmQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggODIzMzY4Mzg0MzIxNmIzMGJmOTc0MjZkYTk0ODgwMjM2
MGI5YzUwYy4uNGQ4OWFjYWIzYmQ1Yzk4OTU5ZGNhMjA5OThhZWQwNzhmODA0MzQ3OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAK
QEAgLTUwLDggKzUwLDExIEBAIGNvbnN0IENsYXNzSW5mbyBBcnJheUNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luCiBAZW5kCiAqLwogCitz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dFdpdGhBcnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworCiBBcnJheUNvbnN0cnVjdG9yOjpB
cnJheUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRl
cm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBz
dHJ1Y3R1cmUsIGNhbGxBcnJheUNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1
Y3RvcikKIHsKIH0KIApAQCAtMTAwLDI1ICsxMDMsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWly
ayhleGVjLCBhcmdzLCBleGVjLT5uZXdUYXJnZXQoKSkpOwogfQogCi1Db25zdHJ1Y3RUeXBlIEFy
cmF5Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYg
Y29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNv
bnN0cnVjdFdpdGhBcnJheUNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpI
b3N0OwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKGV4
ZWMsIGFyZ3MsIEpTVmFsdWUoKSkpOwogfQogCi1DYWxsVHlwZSBBcnJheUNvbnN0cnVjdG9yOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgLy8gZXF1aXZh
bGVudCB0byAnbmV3IEFycmF5KC4uLi4pJwotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNhbGxBcnJheUNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQog
c3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBpc0FycmF5U2xvd0lubGluZShFeGVjU3RhdGUqIGV4
ZWMsIFByb3h5T2JqZWN0KiBwcm94eSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4
IDE1ODQ4ODVkMGNkZTYwODcyN2RjNThkZDZkNzIwZmFjNDNhZDhjMTMuLjYxNjUyYWE3ZjNkYzMz
YzVmODlmYTY2MTUzYWI5YzNjMzk1Zjk1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgQXJy
YXlDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0
aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJvdGVjdGVkOgpA
QCAtNTQsOSArNTQsNiBAQCBjbGFzcyBBcnJheUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIEFycmF5Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1
cmUqKTsKLQotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxs
KiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYpOwogfTsKIAogSlNWYWx1ZSBjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVp
cmsoRXhlY1N0YXRlKiwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSosIEpTR2xvYmFsT2JqZWN0Kiwg
SlNWYWx1ZSBsZW5ndGgsIEpTVmFsdWUgcHJvdG90eXBlID0gSlNWYWx1ZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IDUyNzI4Zjk0OWQ5MmMzYmUyYjZhOWE5NGI3NDljOWJhMjZhZGQzYmEu
LmQwZTliZDc0ZmExN2UzODUwMjQzMzc0MzA0OTFhMzA1YTkyMzY0ZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcApAQCAtMzYsMTggKzM2LDYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVT
VFJVQ1RJQkxFKEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBB
c3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkFzeW5jRnVuY3Rpb24iLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3RvcikgfTsKIAotQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpBc3luY0Z1
bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IElu
dGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBBc3luY0Z1bmN0aW9u
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQXN5bmNGdW5jdGlvblByb3RvdHlw
ZSogcHJvdG90eXBlKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiQXN5bmNGdW5j
dGlvbiIpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5wcm90b3R5cGUsIHByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykK
IHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7CkBAIC02MCwxNiArNDgsMTYgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0QXN5bmNGdW5jdGlvbkNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0
aW9uKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2Jq
ZWN0KCksIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6QXN5bmMpKTsKIH0KIAotQ2Fs
bFR5cGUgQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYgY2FsbERhdGEpCitBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6OkFzeW5jRnVuY3Rpb25D
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxG
dW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLCBjb25z
dHJ1Y3RBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY2FsbEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5
cGU6Okhvc3Q7CiB9CiAKLUNvbnN0cnVjdFR5cGUgQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCit2
b2lkIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBBc3lu
Y0Z1bmN0aW9uUHJvdG90eXBlKiBwcm90b3R5cGUpCiB7Ci0gICAgY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0
dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sICJB
c3luY0Z1bmN0aW9uIik7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlv
bkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0
aW9uQ29uc3RydWN0b3IuaAppbmRleCAwMzVhMmMxZTRmOTE1Y2FjMGI0YjE3NzNlNmQwNTg5ZTI3
NDc0N2Q0Li4wM2VmZGJhMmUwMTk3NmRkNzAzMDA5NzY4OTRiNjNhNzY3N2I5ODcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29u
c3RydWN0b3IuaApAQCAtNDYsMTQgKzQ2LDEyIEBAIGNsYXNzIEFzeW5jRnVuY3Rpb25Db25zdHJ1
Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBBc3luY0Z1
bmN0aW9uQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKFZNJiwgQXN5bmNGdW5jdGlvblByb3RvdHlwZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RU
eXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRp
YyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
c3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBh
YWE2YTFmNGY3Y2NlNTJkOWMxYWI2NzhlOWQ5MjU3N2QxYjBiMzZiLi5jNTM0MTkwOGU5NWRjZDMy
MjJmMGY4ZWU2OGM0MWE3MDM0MzU1ZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHAKQEAgLTM2LDIwICszNiw2IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RF
U1RSVUNUSUJMRShBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBD
bGFzc0luZm8gQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJB
c3luY0dlbmVyYXRvckZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpIH07
CiAKLUFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5j
dGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRl
cm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCi17Ci19Ci0KLXZvaWQgQXN5bmNHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEFzeW5jR2VuZXJhdG9y
RnVuY3Rpb25Qcm90b3R5cGUqIHByb3RvdHlwZSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSwgIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKLQotICAgIC8vIE51bWJlciBvZiBhcmd1bWVu
dHMgZm9yIGNvbnN0cnVjdG9yCi0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7Ci19Ci0KIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKQEAgLTYy
LDE2ICs0OCwxOCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoRQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMt
PmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25N
b2RlOjpBc3luY0dlbmVyYXRvcikpOwogfQogCi1DYWxsVHlwZSBBc3luY0dlbmVyYXRvckZ1bmN0
aW9uQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
K0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5h
bEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3Ry
dWN0b3IsIGNvbnN0cnVjdEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcikKIHsKLSAg
ICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKIH0KIAotQ29uc3RydWN0VHlw
ZSBBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlND
ZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKK3ZvaWQgQXN5bmNHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEFzeW5jR2VuZXJhdG9y
RnVuY3Rpb25Qcm90b3R5cGUqIHByb3RvdHlwZSkKIHsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcjsK
LSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSwgIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKworICAgIC8vIE51bWJlciBvZiBhcmd1bWVu
dHMgZm9yIGNvbnN0cnVjdG9yCisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNH
ZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaAppbmRleCBiOGYxNTBiNTll
ZTdjMzk0YjFiODE0Y2U2ZWFkYjNlNGQ3ODYwYzYxLi5iYzQ0YWM2YjZhMzAyMDM3ZGMyNmEzZTcw
NGRjNjU4MjZjMjQ4N2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaApAQCAt
NDYsMTQgKzQ2LDEyIEBAIGNsYXNzIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvciA6
IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBBc3luY0dlbmVyYXRv
ckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgQXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSopOwotICAgIHN0YXRp
YyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYp
OwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAppbmRleCA2N2EwMTVhYjNlMWE3OGEyYWQy
Njg1NzgzYTYzOGZlZmNiYWM3MTkxLi5mMGFiMDQyNTNlOTMzNTAxYWFhY2JhOGIxNjNkYzM1M2Y4
Y2U2NmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFu
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Db25zdHJ1Y3Rvci5jcHAKQEAgLTMxLDE2ICszMSwxMCBAQCBTVEFUSUNfQVNTRVJUX0lTX1RS
SVZJQUxMWV9ERVNUUlVDVElCTEUoQm9vbGVhbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJ
bmZvIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEJvb2xlYW5Db25zdHJ1
Y3RvcikgfTsKIAotQm9vbGVhbkNvbnN0cnVjdG9yOjpCb29sZWFuQ29uc3RydWN0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVj
dHVyZSkKLXsKLX0KLQotdm9pZCBCb29sZWFuQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgQm9vbGVhblByb3RvdHlwZSogYm9vbGVhblByb3RvdHlwZSkKKy8vIEVDTUEgMTUuNi4x
CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQm9vbGVhbkNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgYm9v
bGVhblByb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgYm9vbGVhblBy
b3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVy
KDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGV4ZWMtPmFyZ3Vt
ZW50KDApLnRvQm9vbGVhbihleGVjKSkpOwogfQogCiAvLyBFQ01BIDE1LjYuMgpAQCAtNTYsMjIg
KzUwLDE2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdp
dGhCb29sZWFuQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShvYmopOwogfQogCi1Db25zdHJ1Y3RUeXBlIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQorQm9vbGVh
bkNvbnN0cnVjdG9yOjpCb29sZWFuQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEJvb2xlYW5D
b25zdHJ1Y3RvciwgY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3RvcikKIHsKLSAgICBjb25z
dHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhCb29sZWFuQ29uc3RydWN0
b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7CiB9CiAKLS8vIEVDTUEgMTUuNi4x
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQm9vbGVhbkNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbihleGVjLT5hcmd1bWVudCgwKS50b0Jvb2xlYW4oZXhlYykpKTsKLX0KLQotQ2FsbFR5cGUg
Qm9vbGVhbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERh
dGEpCit2b2lkIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBCb29s
ZWFuUHJvdG90eXBlKiBib29sZWFuUHJvdG90eXBlKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNhbGxCb29sZWFuQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpI
b3N0OworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBib29sZWFuUHJvdG90eXBlLT5jbGFz
c0luZm8oKS0+Y2xhc3NOYW1lKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwg
dm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBib29sZWFuUHJvdG90eXBlLCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGltbWVkaWF0ZUJvb2xlYW5W
YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5D
b25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmgKaW5kZXggYmI4YzVkZjJiNTRkYzA2OGI5MzQxZTFiNzc1ZDUxOTMzMGViOWM5My4u
MzZlY2M5ZjRkYmIxODBlNTc5MDg3YjI4MTZkY2YxN2U4NmQyZWIzMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgKQEAgLTQyLDcg
KzQyLDcgQEAgY2xhc3MgQm9vbGVhbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsgCi0g
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
IAogICAgIH0KIAogcHJvdGVjdGVkOgpAQCAtNTAsOCArNTAsNiBAQCBjbGFzcyBCb29sZWFuQ29u
c3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgQm9v
bGVhbkNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5
cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBKU09iamVj
dCogY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKEV4ZWNTdGF0ZSosIEpTR2xv
YmFsT2JqZWN0KiwgSlNWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRleCBiMmYyOWNmZDllNzc5M2ZhNjNlNjA5ZTMxYWIw
ZTQ4OTU3Y2E2N2ZkLi42Nzk5NjVjYWM1YWEyOTE0MzUyNGRkMzk3NjhjYjhkNzJhOGIzMmEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5j
cHAKQEAgLTY4LDggKzY4LDExIEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mCiAKIFNUQVRJQ19B
U1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShEYXRlQ29uc3RydWN0b3IpOwogCitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShFeGVjU3RhdGUqKTsKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKik7CisKIERhdGVDb25zdHJ1Y3Rvcjo6RGF0ZUNvbnN0cnVjdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBz
dHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxEYXRl
LCBjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKQogewogfQogCkBAIC0xNTMsMTIgKzE1Niw2
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhEYXRl
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
b25zdHJ1Y3REYXRlKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+
Z2xvYmFsT2JqZWN0KCksIGV4ZWMtPm5ld1RhcmdldCgpLCBhcmdzKSk7CiB9CiAKLUNvbnN0cnVj
dFR5cGUgRGF0ZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RU
eXBlOjpIb3N0OwotfQotCiAvLyBFQ01BIDE1LjkuMgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbERhdGUoRXhlY1N0YXRlKiBleGVjKQogewpAQCAtMTY4LDEyICsxNjUs
NiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmco
JnZtLCBmb3JtYXREYXRlVGltZSh0cywgRGF0ZVRpbWVGb3JtYXREYXRlQW5kVGltZSwgZmFsc2Up
KSk7CiB9CiAKLUNhbGxUeXBlIERhdGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxEYXRlOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUGFyc2UoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5oCmluZGV4IGZjZWE1NWY4ZGY2YjAwMWEwOTE5YzAyYzJiMGEyODJhNmY1YTBjYzMu
LjMwN2M2ZDU1NGIxYjQyYTNmMDBiY2RmZGE3NjJhYjQ5MWE1MDIyZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0Myw3
IEBAIGNsYXNzIERhdGVDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAog
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJ
bnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAog
cHJvdGVjdGVkOgpAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBEYXRlQ29uc3RydWN0b3IgOiBwdWJs
aWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgRGF0ZUNvbnN0cnVjdG9yKFZN
JiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBKU09iamVjdCogY29uc3RydWN0RGF0ZShF
eGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgbmV3VGFyZ2V0LCBjb25zdCBBcmdM
aXN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAppbmRleCA5MDY3MWQ1N2Ez
NGNjZDZiMGM4NmU5Y2U3ODExODRlODRhNDFmM2I2Li40ZmFlZDM3N2EwYmQyYjJiNzM0ZmVhNWMz
NTBkNDg5MjMyM2I5ZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKQEAg
LTEwNiw3ICsxMDYsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTURPTUF0dHJpYnV0
ZUdldHRlclR5cGVFcnJvcihFeGVjU3RhdGUqIHN0YXRlLCBUaHJvdwogY2xhc3MgU3RyaWN0TW9k
ZVR5cGVFcnJvckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHJpdmF0ZToK
ICAgICBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb24o
dm0sIHN0cnVjdHVyZSkKKyAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUs
IGNhbGxUaHJvd1R5cGVFcnJvciwgY29uc3RydWN0VGhyb3dUeXBlRXJyb3IpCiAgICAgICAgICwg
bV9tZXNzYWdlKG1lc3NhZ2UpCiAgICAgewogICAgIH0KQEAgLTEzMSwxMiArMTMxLDYgQEAgY2xh
c3MgU3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmIGNvbnN0cnVjdERhdGEpCi0gICAgewotICAgICAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFRocm93VHlwZUVycm9yOwotICAgICAgICByZXR1cm4gQ29u
c3RydWN0VHlwZTo6SG9zdDsKLSAgICB9Ci0KICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsVGhyb3dUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHsKICAg
ICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTE0NSwxNyArMTM5LDExIEBAIGNsYXNzIFN0
cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLSAg
ICB7Ci0gICAgICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxUaHJvd1R5cGVFcnJv
cjsKLSAgICAgICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotICAgIH0KLQogICAgIERFQ0xBUkVf
SU5GTzsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAot
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OyAKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGRhYTdhOTAxZTk0YzAxZjg4MmZlYTA5MjU5
MzYxNGJhYmZhMjI0MzYuLmIwNDRjOGQyNzA3YjIzMGUxNjg1ODgyODk0NmE4OGE5NzFiOTk4Zjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwCkBAIC0zNCw3ICszNCw3IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RS
VUNUSUJMRShFcnJvckNvbnN0cnVjdG9yKTsKIGNvbnN0IENsYXNzSW5mbyBFcnJvckNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRXJyb3JDb25zdHJ1Y3RvcikgfTsKIAogRXJyb3JDb25z
dHJ1Y3Rvcjo6RXJyb3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQot
ICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5j
dGlvbih2bSwgc3RydWN0dXJlLCBJbnRlcnByZXRlcjo6Y2FsbEVycm9yQ29uc3RydWN0b3IsIElu
dGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcikKIHsKIH0KIApAQCAtNjMs
MTIgKzYzLDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y29u
c3RydWN0V2l0aEVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXQKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2Fn
ZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgRXJy
b3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBj
b25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gSW50
ZXJwcmV0ZXI6OmNvbnN0cnVjdFdpdGhFcnJvckNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25z
dHJ1Y3RUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVy
cHJldGVyOjpjYWxsRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNW
YWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC03NiwxMiArNzAsNiBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpjYWxsRXJyb3JDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVO
b3RoaW5nLCBmYWxzZSkpOwogfQogCi1DYWxsVHlwZSBFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gSW50ZXJwcmV0ZXI6OmNhbGxFcnJvckNvbnN0cnVjdG9yOwotICAgIHJldHVy
biBDYWxsVHlwZTo6SG9zdDsKLX0KLQogYm9vbCBFcnJvckNvbnN0cnVjdG9yOjpwdXQoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25z
dHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rv
ci5oCmluZGV4IDYzMDk2YmQ1YzQzNzg3Nzc5M2Y4NjU2YzU2OTc3MzhmNmRkOTIyNGQuLmEwZGQx
YjA1ZTQ5MmU4ZTBmOTZiNTE0YWU5NTQ5MDRlZGE3M2E0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQyLDcgKzQyLDcgQEAg
Y2xhc3MgRXJyb3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJ
bnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAK
ICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBzdGFja1RyYWNlTGltaXQoKSBjb25zdCB7IHJl
dHVybiBtX3N0YWNrVHJhY2VMaW1pdDsgfQpAQCAtNTUsOCArNTUsNiBAQCBjbGFzcyBFcnJvckNv
bnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIEVy
cm9yQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlw
ZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMg
Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAgIHN0ZDo6b3B0
aW9uYWw8dW5zaWduZWQ+IG1fc3RhY2tUcmFjZUxpbWl0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggZmE2
N2NkNWQ1MjNjMGRjOTkzMzg1MzBlNDkyMDdlMTVlMTk2ZDA0Ny4uZDgwMzYxNjY4ZDZiZWIyZjc5
M2EzOThlYzU3MjRiMTA5MGIyMDk4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTM4LDQxICszOCwyOSBAQCBT
VEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoRnVuY3Rpb25Db25zdHJ1Y3Rv
cik7CiAKIGNvbnN0IENsYXNzSW5mbyBGdW5jdGlvbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJG
dW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoRnVuY3Rpb25Db25zdHJ1Y3RvcikgfTsKIAotRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6RnVu
Y3Rpb25Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50
ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQotewotfQotCi12b2lkIEZ1bmN0aW9uQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgRnVuY3Rpb25Qcm90b3R5cGUqIGZ1bmN0aW9u
UHJvdG90eXBlKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBmdW5jdGlvblByb3Rv
dHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZnVuY3Rpb25Qcm90b3R5cGUs
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVs
ZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKLSAgICBwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
LX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEZ1
bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhl
eGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMs
IGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFy
Z3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6RnVuY3Rpb24sIGV4ZWMtPm5ld1RhcmdldCgp
KSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0
b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KKy8vIEVDTUEgMTUuMy4x
IFRoZSBGdW5jdGlvbiBDb25zdHJ1Y3RvciBDYWxsZWQgYXMgYSBGdW5jdGlvbgogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEZ1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVj
LT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3MpKTsKIH0KIAotLy8gRUNNQSAxNS4z
LjEgVGhlIEZ1bmN0aW9uIENvbnN0cnVjdG9yIENhbGxlZCBhcyBhIEZ1bmN0aW9uCi1DYWxsVHlw
ZSBGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2Fs
bERhdGEpCitGdW5jdGlvbkNvbnN0cnVjdG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1
cmUsIGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoRnVuY3Rpb25Db25zdHJ1
Y3RvcikKK3sKK30KKwordm9pZCBGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jdGlvblByb3RvdHlwZSkKIHsKLSAgICBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1
cm4gQ2FsbFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGZ1bmN0aW9u
UHJvdG90eXBlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lKTsKKyAgICBwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBmdW5jdGlvblByb3Rv
dHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEp
LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pOwogfQogCiAvLyBFQ01BIDE1LjMuMiBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaApp
bmRleCAxM2MzN2ZkNTJmMjNmNzJjMjg5NzdjNTIyMDJlYmZjMzAyNzcyMDM0Li43Y2UzZjQ4ODZk
YzIzNmE5NGJkMzQ1MmRkMWMwY2UzMTRlZGQ4YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCkBAIC00NSwxNCArNDUsMTIg
QEAgY2xhc3MgRnVuY3Rpb25Db25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsK
IAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAg
ICB9CiAKIHByaXZhdGU6CiAgICAgRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSop
OwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBGdW5jdGlvblByb3RvdHlwZSopOwotICAg
IHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0
RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYpOwogfTsKIAogZW51bSBjbGFzcyBGdW5jdGlvbkNvbnN0cnVjdGlvbk1vZGUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCmlu
ZGV4IDE4ZjhiNWVhZDU2NDQ5NjhiZTIxNTc2YzY3NTYzMmQyMWU2MDU4MmYuLjQwODBlMzkwZmNk
MDBlMDE4MzY3YWUxNDNhZDQ3MDg2YzY0YWFlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKQEAgLTQzLDggKzQzLDE0IEBA
IGNvbnN0IENsYXNzSW5mbyBGdW5jdGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiRnVuY3Rpb24i
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKik7CiAKKy8vIEVDTUEg
MTUuMy40CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Q
cm90b3R5cGUoRXhlY1N0YXRlKikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworfQorCiBGdW5jdGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0
cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEZ1bmN0
aW9uUHJvdG90eXBlLCBudWxscHRyKQogewogfQogCkBAIC03NywxOCArODMsNiBAQCB2b2lkIEZ1
bmN0aW9uUHJvdG90eXBlOjppbml0UmVzdHJpY3RlZFByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdAogICAgIHB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHZtLnByb3BlcnR5
TmFtZXMtPmFyZ3VtZW50cywgZXJyb3JHZXR0ZXJTZXR0ZXIsIFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvblByb3RvdHlwZShFeGVjU3RhdGUq
KQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci19Ci0KLS8v
IEVDTUEgMTUuMy40Ci1DYWxsVHlwZSBGdW5jdGlvblByb3RvdHlwZTo6Z2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNhbGxGdW5jdGlvblByb3RvdHlwZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19
Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmlu
ZyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4IGJh
ZjdjY2I0YmQxOWU3NTE5YTlkYjIzNTQyNTMzMGUyMmZiOGE0NWYuLjkzODg4NzA4ZjQ3MTQ4YTZi
Yzc1MTEzMTFjN2ZmNjExN2Q4ZWQwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBGdW5j
dGlvblByb3RvdHlwZSA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG8pCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAgIERFQ0xBUkVfSU5GTzsKQEAgLTUx
LDcgKzUxLDYgQEAgY2xhc3MgRnVuY3Rpb25Qcm90b3R5cGUgOiBwdWJsaWMgSW50ZXJuYWxGdW5j
dGlvbiB7CiAKIHByaXZhdGU6CiAgICAgRnVuY3Rpb25Qcm90b3R5cGUoVk0mLCBTdHJ1Y3R1cmUq
KTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRl
eCBlNTRlNjNmOTJiM2RkODJmN2RiYzJhNGQ0ZTUyMTgwNDhlYzc3YzdkLi4zNzQzYzZhMTlkZmFm
ZGU3MjZhYzU0OWNkMWI4ZDRiZmFkMTY4NmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNw
cApAQCAtMzYsMTggKzM2LDYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJ
QkxFKEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gR2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiR2VuZXJhdG9yRnVuY3Rpb24i
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpIH07CiAKLUdlbmVyYXRvckZ1bmN0aW9uQ29uc3Ry
dWN0b3I6OkdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKLXsKLX0KLQot
dm9pZCBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKiBnZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSkK
LXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgIkdlbmVyYXRvckZ1bmN0aW9uIik7Ci0g
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3Rv
dHlwZSwgZ2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KLQogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKQEAgLTYwLDE2ICs0OCwxNiBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29u
c3RydWN0RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkp
LT5nbG9iYWxPYmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpHZW5lcmF0
b3IsIGV4ZWMtPm5ld1RhcmdldCgpKSk7CiB9CiAKLUNhbGxUeXBlIEdlbmVyYXRvckZ1bmN0aW9u
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OkdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Io
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0s
IHN0cnVjdHVyZSwgY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IsIGNvbnN0cnVjdEdl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0
aW9uID0gY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxU
eXBlOjpIb3N0OwogfQogCi1Db25zdHJ1Y3RUeXBlIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKK3ZvaWQgR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSogZ2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5
cGUpCiB7Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RHZW5l
cmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0
OworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiR2VuZXJhdG9yRnVuY3Rpb24iKTsKKyAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90
eXBlLCBnZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0
aW9uQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRv
ckZ1bmN0aW9uQ29uc3RydWN0b3IuaAppbmRleCBmMjhjNzFjNzhmZWMyZTVkY2YwZjVlZTRmM2U1
YjZjMjJhZDBjNzU4Li5mNDZkOGM1OWQ1NTZlMjMxMTQ0YjNiNmJiYjA5ZTZiOGVjZjAxZjUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJh
dG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCkBAIC01MiwxNCArNTIsMTIgQEAgY2xhc3MgR2VuZXJh
dG9yRnVuY3Rpb25Db25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRl
cm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJp
dmF0ZToKICAgICBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBl
Kik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKaW5kZXggM2QzZmQxYWJj
MzQzM2M1YjQ5MTllMDFlNDNjNWRlNjQwN2Q5N2I3OS4uMmEzYWI4MzE1MzA2OGYyNjg5MThlZjMx
OTE4ZDNkNWFkZDE3MDE0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKQEAgLTM0LDggKzM0LDEwIEBAIFNUQVRJQ19BU1NFUlRf
SVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRlcm5hbEZ1bmN0aW9uKTsKIAogY29uc3QgQ2xh
c3NJbmZvIEludGVybmFsRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnRlcm5hbEZ1bmN0
aW9uKSB9OwogCi1JbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCitJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ2Fs
bCwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpCiAgICAgOiBKU0Rlc3RydWN0
aWJsZU9iamVjdCh2bSwgc3RydWN0dXJlKQorICAgICwgbV9mdW5jdGlvbkZvckNhbGwoZnVuY3Rp
b25Gb3JDYWxsKQorICAgICwgbV9mdW5jdGlvbkZvckNvbnN0cnVjdChmdW5jdGlvbkZvckNvbnN0
cnVjdCkKIHsKICAgICAvLyBleGVjLT52bSgpIHdhbnRzIGNhbGxlZXMgdG8gbm90IGJlIGxhcmdl
IGFsbG9jYXRpb25zLgogICAgIFJFTEVBU0VfQVNTRVJUKCFpc0xhcmdlQWxsb2NhdGlvbigpKTsK
QEAgLTQ1LDcgKzQ3LDYgQEAgdm9pZCBJbnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIGNvbnN0IFN0cmluZyYgbmFtZSwgTmFtZVZpc2liaWxpdHkKIHsKICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAg
ICBBU1NFUlQobWV0aG9kVGFibGUodm0pLT5nZXRDYWxsRGF0YSAhPSBJbnRlcm5hbEZ1bmN0aW9u
OjppbmZvKCktPm1ldGhvZFRhYmxlLmdldENhbGxEYXRhKTsKICAgICBKU1N0cmluZyogbmFtZVN0
cmluZyA9IGpzU3RyaW5nKCZ2bSwgbmFtZSk7CiAgICAgbV9vcmlnaW5hbE5hbWUuc2V0KHZtLCB0
aGlzLCBuYW1lU3RyaW5nKTsKICAgICBpZiAobmFtZVZpc2liaWxpdHkgPT0gTmFtZVZpc2liaWxp
dHk6OlZpc2libGUpCkBAIC03OCwxMCArNzksMjIgQEAgY29uc3QgU3RyaW5nIEludGVybmFsRnVu
Y3Rpb246OmRpc3BsYXlOYW1lKFZNJiB2bSkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLUNh
bGxUeXBlIEludGVybmFsRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJikK
K0NhbGxUeXBlIEludGVybmFsRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCogY2VsbCwgQ2Fs
bERhdGEmIGNhbGxEYXRhKQogewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgcmV0dXJuIENhbGxUeXBlOjpOb25lOworICAgIGF1dG8qIGZ1bmN0aW9uID0ganNDYXN0PElu
dGVybmFsRnVuY3Rpb24qPihjZWxsKTsKKyAgICBpZiAoIWZ1bmN0aW9uLT5tX2Z1bmN0aW9uRm9y
Q2FsbCkKKyAgICAgICAgcmV0dXJuIENhbGxUeXBlOjpOb25lOworICAgIGNhbGxEYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGZ1bmN0aW9uLT5tX2Z1bmN0aW9uRm9yQ2FsbDsKKyAgICByZXR1cm4gQ2Fs
bFR5cGU6Okhvc3Q7Cit9CisKK0NvbnN0cnVjdFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqIGNlbGwsIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCit7
CisgICAgYXV0byogZnVuY3Rpb24gPSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGNlbGwpOwor
ICAgIGlmICghZnVuY3Rpb24tPm1fZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpCisgICAgICAgIHJldHVy
biBDb25zdHJ1Y3RUeXBlOjpOb25lOworICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gZnVuY3Rpb24tPm1fZnVuY3Rpb25Gb3JDb25zdHJ1Y3Q7CisgICAgcmV0dXJuIENvbnN0cnVj
dFR5cGU6Okhvc3Q7CiB9CiAKIGNvbnN0IFN0cmluZyBJbnRlcm5hbEZ1bmN0aW9uOjpjYWxjdWxh
dGVkRGlzcGxheU5hbWUoVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDNhOGYyMmViODhlMGViZGI4N2QzNDdlMzk3NDZh
MmJhY2QyZjUzOTguLmNiZWJmYzYxODY2MzA5NTQ4ZTY3ZWQ5MThmNGFmYmVhMWJlYTE5ODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgK
QEAgLTIzLDYgKzIzLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDb2RlU3BlY2lh
bGl6YXRpb25LaW5kLmgiCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CkBAIC00OSwxNSArNTAsMzUgQEAgY2xhc3MgSW50ZXJuYWxGdW5jdGlvbiA6
IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdWJjbGFzc1N0cnVjdHVyZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG5ld1RhcmdldCwgU3Ry
dWN0dXJlKik7CiAKKyAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbkZvcihDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgeworICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9y
Q2FsbCkKKyAgICAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uRm9yQ2FsbDsKKyAgICAgICAgQVNT
RVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7CisgICAgICAgIHJldHVybiBtX2Z1bmN0aW9u
Rm9yQ29uc3RydWN0OworICAgIH0KKworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOYXRp
dmVGdW5jdGlvbkZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgeworICAgICAg
ICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoSW50ZXJuYWxGdW5jdGlvbiwgbV9mdW5jdGlvbkZvckNhbGwpOworICAgICAgICBBU1NF
UlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihJbnRlcm5hbEZ1bmN0aW9uLCBtX2Z1bmN0aW9uRm9yQ29uc3RydWN0KTsKKyAgICB9CisK
IHByb3RlY3RlZDoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBJbnRlcm5hbEZ1bmN0aW9uKFZNJiwg
U3RydWN0dXJlKik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgSW50ZXJuYWxGdW5jdGlvbihWTSYs
IFN0cnVjdHVyZSosIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ2FsbCwgTmF0aXZlRnVuY3Rp
b24gZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpOwogCiAgICAgZW51bSBjbGFzcyBOYW1lVmlzaWJpbGl0
eSB7IFZpc2libGUsIEFub255bW91cyB9OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZmlu
aXNoQ3JlYXRpb24oVk0mLCBjb25zdCBTdHJpbmcmIG5hbWUsIE5hbWVWaXNpYmlsaXR5ID0gTmFt
ZVZpc2liaWxpdHk6OlZpc2libGUpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmVTbG93KEV4ZWNTdGF0ZSosIEpTVmFsdWUg
bmV3VGFyZ2V0LCBTdHJ1Y3R1cmUqKTsKIAorICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENv
bnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwogICAgIHN0YXRpYyBDYWxsVHlw
ZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOworCisgICAgTmF0aXZlRnVuY3Rpb24g
bV9mdW5jdGlvbkZvckNhbGw7CisgICAgTmF0aXZlRnVuY3Rpb24gbV9mdW5jdGlvbkZvckNvbnN0
cnVjdDsKICAgICBXcml0ZUJhcnJpZXI8SlNTdHJpbmc+IG1fb3JpZ2luYWxOYW1lOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9y
Q29uc3RydWN0b3IuY3BwCmluZGV4IGQxYTE4NGYzYzE2MjI2NjhlNTFjNmM1NDU5YTk1NmI1Y2Nk
MWE1MjcuLjAzYjg3YjA2NTk3NDYwNmY5MzFiMWFhNDMwZTM2MjM5YmEwY2IyNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25z
dHJ1Y3Rvci5jcHAKQEAgLTQ5LDYgKzQ5LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc08KIAog
bmFtZXNwYWNlIEpTQyB7CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxJbnRsQ29sbGF0b3IoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3IoRXhlY1N0YXRlKik7CisKIGNvbnN0IENsYXNz
SW5mbyBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50
ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAmY29sbGF0b3JDb25zdHJ1Y3RvclRhYmxlLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEludGxDb2xsYXRvckNvbnN0cnVjdG9yKSB9OwogCiAvKiBT
b3VyY2UgZm9yIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmx1dC5oCkBAIC02NiwxMSArNjksMTEg
QEAgSW50bENvbGxhdG9yQ29uc3RydWN0b3IqIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpjcmVh
dGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnUKIAogU3RydWN0dXJlKiBJbnRsQ29sbGF0b3JDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpJbnRs
Q29sbGF0b3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDog
SW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlLCBjYWxsSW50bENvbGxhdG9yLCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3IpCiB7
CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbEludGxDb2xsYXRvcihFeGVjU3RhdGUqIHN0YXRlKQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY29sbGF0b3IpOwogfQogCi1Db25zdHJ1Y3RUeXBlIEludGxDb2xsYXRvckNv
bnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0
cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1
Y3RJbnRsQ29sbGF0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNh
bGxUeXBlIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbElu
dGxDb2xsYXRvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9j
YWxlc09mKEV4ZWNTdGF0ZSogc3RhdGUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25z
dHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29u
c3RydWN0b3IuaAppbmRleCBjZjM0NjhmYjEzMDUwZDE3MjZmZGMxZjNiZjdjMmIzZmRlOTFhMmMw
Li4wZGI4NmM3MmQ0ZmExOWVhZmY5MWI4YjFmMDEyZmFjNmU2ZGYyYjNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9y
LmgKQEAgLTUxLDggKzUxLDYgQEAgY2xhc3MgSW50bENvbGxhdG9yQ29uc3RydWN0b3IgOiBwdWJs
aWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgSW50bENvbGxhdG9yQ29uc3Ry
dWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25z
dHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgdm9pZCB2aXNpdENo
aWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAgCiAgICAgV3JpdGVCYXJyaWVyPFN0
cnVjdHVyZT4gbV9jb2xsYXRvclN0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNw
cAppbmRleCA1MDEwZTE3NTY0MjY3MjYzZThhZGFmYjM4NWE4ZDhiYjM0OTg0NDhiLi41YWY4MmFi
YTMxMjdlNWRiNWVkYmE5ODk2YjczNjExMmU1NmFlZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3Ry
dWN0b3IuY3BwCkBAIC02NiwxMSArNjYsMTQgQEAgSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0
b3IqIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHIKIAog
U3RydWN0dXJlKiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUp
CiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9
CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsRGF0ZVRpbWVG
b3JtYXQoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRlKik7CisKIEludGxEYXRlVGltZUZv
cm1hdENvbnN0cnVjdG9yOjpJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJl
KQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsSW50bERhdGVUaW1l
Rm9ybWF0LCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQpCiB7CiB9CiAKQEAgLTEyMywxOCAr
MTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxEYXRl
VGltZUZvcm1hdChFeGVjU3RhdGUqIHN0YXRlKQogICAgIH0pKTsKIH0KIAotQ29uc3RydWN0VHlw
ZSBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwq
LCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0OwotICAgIHJldHVybiBD
b25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBJbnRsRGF0ZVRpbWVGb3JtYXRDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAg
IGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQ7Ci0gICAg
cmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihFeGVj
U3RhdGUqIHN0YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENv
bnN0cnVjdG9yLmgKaW5kZXggZjFiYTI2N2NiOTNmODc1ODE1ZTQ5YmYxNzliYTljYzU1M2YwNjlk
My4uOGU2MTA2NTA4M2EwMjEwY2ZhZjNkMjUzMDhiYTM5YTk0ZGFlYmJjYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXRDb25zdHJ1Y3Rvci5oCkBAIC01MSw4ICs1MSw2IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1h
dENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAg
IEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwog
ICAgIAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZGF0ZVRpbWVGb3JtYXRTdHJ1Y3R1
cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVy
Rm9ybWF0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCAyZjZlYWRmYjhhYjU3MTZjZGQzNzJk
NTkwYWMxZjliNTZiOWMzNzEzLi4yOTcyMTBjNmRlOGMxODVmZmViYzVmNjhhZTkzODhkY2JkMGQ1
OTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVy
Rm9ybWF0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTY2LDExICs2NiwxNCBAQCBJbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IqIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlKFZNJiB2bSwgU3RydWN0dQogCiBTdHJ1Y3R1cmUqIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxJbnRsTnVtYmVyRm9ybWF0KEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bE51bWJlckZvcm1hdChFeGVjU3RhdGUqKTsK
KwogSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24o
dm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2Fs
bEludGxOdW1iZXJGb3JtYXQsIGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQpCiB7CiB9CiAKQEAg
LTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEludGxOdW1iZXJGb3JtYXQoRXhlY1N0YXRlKiBzdGF0ZSkKICAgICB9KSk7CiB9CiAKLUNvbnN0
cnVjdFR5cGUgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RJbnRsTnVtYmVyRm9ybWF0OwotICAgIHJldHVy
biBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBJbnRsTnVtYmVyRm9ybWF0Q29u
c3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAg
ICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSW50bE51bWJlckZvcm1hdDsKLSAgICBy
ZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihFeGVjU3Rh
dGUqIHN0YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0
b3IuaAppbmRleCBkNzYyMTYxZGRhMjM5YmNiNWM5MTg5MmEwMjVjODU4ZDA0NDhkZmVhLi5lNDNk
ZWEzZWUyMGM4OTcwODUwMWY2NWJhMDEzZTQyMDhkYjExOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0
b3IuaApAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3Ig
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgSW50bE51bWJlckZv
cm1hdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5
cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGljIHZv
aWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgIAogICAgIFdyaXRl
QmFycmllcjxTdHJ1Y3R1cmU+IG1fbnVtYmVyRm9ybWF0U3RydWN0dXJlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggZGJiMzczYzhmNTg1YTNjMWMwNjZjYzQzZWUyODgxMjdhNjBmMTAyYy4uYmYy
ZTkxN2VmYTEwOWNmZmY0ZmI5ZDNmOGE1ZTY2NTRmOGNhODhiNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3Iu
Y3BwCkBAIC00NCw4ICs0NCwxMSBAQCBjb25zdCBDbGFzc0luZm8gSlNBcnJheUJ1ZmZlckNvbnN0
cnVjdG9yOjpzX2luZm8gPSB7CiAgICAgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0FycmF5QnVmZmVy
Q29uc3RydWN0b3IpCiB9OwogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsQXJyYXlCdWZmZXIoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihFeGVjU3RhdGUqKTsKKwogSlNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yOjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBzaGFyaW5nTW9kZSkKLSAgICA6IEJh
c2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEFycmF5QnVm
ZmVyLCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcikKICAgICAsIG1fc2hhcmluZ01vZGUoc2hhcmluZ01v
ZGUpCiB7CiB9CkBAIC03Nyw3ICs4MCw3IEBAIFN0cnVjdHVyZSogSlNBcnJheUJ1ZmZlckNvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoCiAgICAgVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoCi0gICAgICAgIHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICB2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdEFycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTEyMSwxOSArMTI0LDYg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5QnVmZmVyKEV4
ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0
b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZXhlYywgc2NvcGUsICJBcnJheUJ1
ZmZlciIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEoCi0gICAgSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEFycmF5
QnVmZmVyOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBK
U0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBj
YWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXJyYXlCdWZm
ZXI7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKIC8vIEVDTUEgMjQuMS4zLjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKaW5kZXggOWM3NTMyNDg4Njc5ZTIy
MzMyZjVkNDNhYjJlZDE5MjdmYTg3MTZiYy4uNzk0ZmY4Njg2MzM2YzIwODNhMjZjNTE4MTdhMjVl
MDRmZGM5OThkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKQEAgLTUwLDEwICs1MCw2IEBAIGNsYXNzIEpT
QXJyYXlCdWZmZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICAK
ICAgICBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlIHNoYXJpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9zaGFyaW5nTW9kZTsgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUg
Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENh
bGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0KIHByaXZhdGU6CiAgICAg
QXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBtX3NoYXJpbmdNb2RlOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3Ry
dWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3IuaAppbmRleCAzZjE4ZTBlZmM2MjgyNTllMzc3NjNiMjlmN2NmZTVk
ODJjNWJiOGViLi43YjZkZmQ0NGMxYjYzODgwNmQ1ZWFkOGMyMGFlYjU3NmUxNmNiZDIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCkBAIC01NywxMCArNTcsNiBAQCBjbGFz
cyBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogI2VuZGlmCiAgICAgCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci0KLXByb3RlY3Rl
ZDoKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rv
cklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggY2IyNDY5NzlmNjFiOGYwMGFkZTdm
ZmVhY2I0NmU1ZDRhNzUwNGVjNi4uNDU1ZDI0Y2M5M2Y1MTBmY2ExODM2MWZmMDc1ZWI0NDhlYTIw
NWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5o
CkBAIC0zOCw4ICszOCwxNCBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFZpZXdDbGFzcz4KK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxHZW5l
cmljVHlwZWRBcnJheVZpZXcoRXhlY1N0YXRlKik7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZpZXdD
bGFzcz4KK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJpY1R5cGVk
QXJyYXlWaWV3KEV4ZWNTdGF0ZSopOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBK
U0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAg
ICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEdl
bmVyaWNUeXBlZEFycmF5VmlldzxWaWV3Q2xhc3M+LCBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJh
eVZpZXc8Vmlld0NsYXNzPikKIHsKIH0KIApAQCAtNzMsNyArNzksNyBAQCBTdHJ1Y3R1cmUqIEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8Vmlld0NsYXNzPjo6Y3JlYXRlU3RydWN0
dXJlKAogICAgIFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiB7CiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKAotICAgICAgICB2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKKyAgICAgICAgdm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CkBAIC0xOTUsOSArMjAxLDYgQEAgaW5saW5l
IEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKEV4
ZWNTdGF0ZSogZXhlYywgU3QKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXco
RXhlY1N0YXRlKik7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAtMjQ1LDEzICsyNDgsNiBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5
VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4K
LUNvbnN0cnVjdFR5cGUgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xh
c3M+OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERh
dGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RHZW5l
cmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6
SG9zdDsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTI1OSwxMSArMjU1LDQgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyaWNUeXBlZEFycmF5
VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0Nv
bnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBW
aWV3Q2xhc3M6OmluZm8oKS0+Y2xhc3NOYW1lKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFZp
ZXdDbGFzcz4KLUNhbGxUeXBlIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8Vmll
d0NsYXNzPjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAg
IGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmll
d0NsYXNzPjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNl
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNl
Q29uc3RydWN0b3IuY3BwCmluZGV4IGQyMTYxMTE3NjFhNDA2NWFjYTkzMWM0ZThmY2VkNWRmZDRk
MDczNDkuLmY0MTQ1ZDg4YTIzZThjOGRhZmRlOTc4YjJkZDg4MTc2NWMxYzg2MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTcwLDExICs3MCwxNSBAQCBKU1Byb21pc2VDb25zdHJ1Y3RvciogSlNQcm9taXNl
Q29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLAogCiBTdHJ1
Y3R1cmUqIEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJu
YWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAorCitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUHJvbWlzZShFeGVjU3RhdGUqKTsKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb21pc2UoRXhlY1N0
YXRlKik7CisKIEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpKU1Byb21pc2VDb25zdHJ1Y3RvcihWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsUHJvbWlzZSwgY29uc3RydWN0UHJvbWlzZSkKIHsK
IH0KIApAQCAtMTExLDYgKzExNSwxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RQcm9taXNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHByb21pc2UpOwogfQogCisvLyBGSVhNRTogVGhpcyBpcyB3b3JrYXJvdW5kLiBT
aW5jZSBKU0MgZG9lcyBub3QgZXhwb3NlIEBpc0NvbnN0cnVjdG9yIHRvIEpTIGJ1aWx0aW5zLAor
Ly8gd2UgdXNlIHR5cGVvZiBmdW5jdGlvbiA9PT0gImZ1bmN0aW9uIiBub3cuIEFuZCBzaW5jZSB0
eXBlb2YgY29uc3RydWN0b3JXaXRob3V0Q2FsbGFiaWxpdHkKKy8vIHJldHVybnMgIm9iamVjdCIs
IHdlIG5lZWQgdG8gZGVmaW5lIFtbQ2FsbF1dIGZvciBub3cuCisvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDkzCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsUHJvbWlzZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0g
ZXhlYy0+dm0oKTsKQEAgLTExOCwyMCArMTI2LDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFByb21pc2UoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVF
cnJvcihleGVjLCBzY29wZSwgIlByb21pc2UiKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgSlNQcm9t
aXNlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYg
Y29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNv
bnN0cnVjdFByb21pc2U7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNh
bGxUeXBlIEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYgY2FsbERhdGEpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgd29ya2Fyb3VuZC4gU2luY2Ug
SlNDIGRvZXMgbm90IGV4cG9zZSBAaXNDb25zdHJ1Y3RvciB0byBKUyBidWlsdGlucywKLSAgICAv
LyB3ZSB1c2UgdHlwZW9mIGZ1bmN0aW9uID09PSAiZnVuY3Rpb24iIG5vdy4gQW5kIHNpbmNlIHR5
cGVvZiBjb25zdHJ1Y3RvcldpdGhvdXRDYWxsYWJpbGl0eQotICAgIC8vIHJldHVybnMgIm9iamVj
dCIsIHdlIG5lZWQgdG8gZGVmaW5lIFtbQ2FsbF1dIGZvciBub3cuCi0gICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA5MwotICAgIGNhbGxEYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNhbGxQcm9taXNlOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuaAppbmRleCAwYmVjYTA0ZTIwYTMyNzA2OTg1MTcy
YjMzZDc2MGUyZjM1ODE3YjZlLi5hODQ5YWQ3NDFhYTg5NzQyZWVkYjBhMGMwNzY2ZDEzZWVjYzM1
OTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZUNvbnN0cnVjdG9yLmgKQEAgLTQ4LDkgKzQ4LDYgQEAgY2xhc3MgSlNQcm9taXNlQ29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihW
TSYsIEpTUHJvbWlzZVByb3RvdHlwZSosIEdldHRlclNldHRlciopOwogCiBwcml2YXRlOgotICAg
IHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0
RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYpOwotCiAgICAgdm9pZCBhZGRPd25JbnRlcm5hbFNsb3RzKFZNJiwgSlNHbG9iYWxPYmplY3Qq
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggYzAxNzAy
MzRlMjg2YWI3NzA4OWU4YWYxODIxZTc0MDY0MzMxYWYyZS4uODUzNTZkMzk3N2FlZDVjNzNiODlh
ZmYwNWM5N2MyNDJmOTViYjRlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
LmgKQEAgLTU5LDYgKzU5LDcgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBGaW5hbE9i
amVjdFR5cGUsCiAgICAgSlNDYWxsZWVUeXBlLAogICAgIEpTRnVuY3Rpb25UeXBlLAorICAgIElu
dGVybmFsRnVuY3Rpb25UeXBlLAogICAgIE51bWJlck9iamVjdFR5cGUsCiAgICAgRXJyb3JJbnN0
YW5jZVR5cGUsCiAgICAgUHVyZUZvcndhcmRpbmdQcm94eVR5cGUsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVj
dG9yLmNwcAppbmRleCA3YjQ2ZTY0NGYxODdkMTRmYmU3Njk0YzMwODYzYjYyMjlmN2I0ZWQ1Li4y
YzgwNWY1ZTRkNmYyMmIyNzhmODg0NzE4NmM5MGEwOWVkMWQ0NjM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHAKQEAgLTM3LDggKzM3LDEwIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RUeXBlZEFycmF5VmlldyhF
eGVjU3RhdGUqKTsKKwogSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpKU1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY29uc3RydWN0VHlwZWRB
cnJheVZpZXcsIGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KQogewogfQogCkBAIC01OCw3ICs2MCw3
IEBAIHZvaWQgSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiBTdHJ1Y3R1cmUqIEpTVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKAogICAgIFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25U
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIApAQCAtNzAsMTYgKzcyLDQgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VHlwZWRBcnJheVZp
ZXcoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNj
b3BlLCBBU0NJSUxpdGVyYWwoIiVUeXBlZEFycmF5JSBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJl
Y3RseSIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6
OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkK
LXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFR5cGVkQXJy
YXlWaWV3OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBK
U1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
JiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RU
eXBlZEFycmF5VmlldzsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaAppbmRleCBkNzgxN2UyNWYxZTEyOWY1MjM1
NjgyOWI4OTA1MDdjZWM3MDA4NWUyLi40MTQ1Y2NjZTU4Y2VjZWU3MWM4OTExNGY3NjVjNzIyZjM5
NTIxZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaApAQCAtNTEsOSArNTEsNiBAQCBjbGFzcyBK
U1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAg
ICAgREVDTEFSRV9JTkZPOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci1wcm90ZWN0ZWQ6Ci0g
ICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYjBkNDliNWQ1YmI1MDgz
NDk5YWI0MzdlODcyMTY4ZDRkYzJmZDY5ZC4uNzlmODQ3OWRkMmZlNzMzNDY4M2U1MDZlNmNlOGMy
ZDdlYTk4ZjJhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFw
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENv
bnN0cnVjdG9yLmNwcApAQCAtNDcsNiArNDcsMTQgQEAgdm9pZCBNYXBDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBNYXBQcm90b3R5cGUqIG1hcFByb3RvdHlwZSwgR2V0dGVyU2UK
ICAgICBwdXREaXJlY3ROb25JbmRleEFjY2Vzc29yKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVj
aWVzU3ltYm9sLCBzcGVjaWVzU3ltYm9sLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
OwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTWFwKEV4ZWNT
dGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TWFw
KEV4ZWNTdGF0ZSopOworCitNYXBDb25zdHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbE1hcCwg
Y29uc3RydWN0TWFwKQoreworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsTWFwKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpA
QCAtMTEyLDE4ICsxMjAsNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RNYXAoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
bWFwKTsKIH0KIAotQ29uc3RydWN0VHlwZSBNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVj
dERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0TWFwOwotICAgIHJldHVybiBDb25zdHJ1
Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IGNhbGxNYXA7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZChFeGVjU3Rh
dGUqIGV4ZWMpCiB7CiAgICAgQVNTRVJUKGlzSlNNYXAoZXhlYy0+YXJndW1lbnQoMCkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oCmluZGV4IGM0
OGEzNWFkMDUyOGExZjgzNzhlZjA0ZjgzMzJlMWU1MDUxOTg1MzkuLjY0NTcxYzc1MWQ2NTA5NjA2
ZTRhODI3MGNkN2Y1MTk2OWI5ZDM1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWFwQ29uc3RydWN0b3IuaApAQCAtNDcsMTcgKzQ3LDEzIEBAIGNsYXNzIE1hcENvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1hcENv
bnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2
bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9CisgICAgTWFwQ29uc3RydWN0b3IoVk0mLCBTdHJ1
Y3R1cmUqKTsKKwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBNYXBQcm90b3R5cGUqLCBH
ZXR0ZXJTZXR0ZXIqIHNwZWNpZXNTeW1ib2wpOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxs
VHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEhlYWQoRXhlY1N0YXRlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
Q29uc3RydWN0b3IuY3BwCmluZGV4IDU3ZmMxYzRhZjUwOGQwMGI2YmRjZTNlMWUyZWQ1NjBiZmU2
MWVkNzkuLjVmZDNhNjc3NjdmMDEzMGJlY2IzYTY2Yzg2OWFlN2RjMjJhNzhiNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IuY3BwCkBAIC0zNSw3ICszNSw3IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RF
U1RSVUNUSUJMRShOYXRpdmVFcnJvckNvbnN0cnVjdG9yKTsKIGNvbnN0IENsYXNzSW5mbyBOYXRp
dmVFcnJvckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0
aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoTmF0aXZl
RXJyb3JDb25zdHJ1Y3RvcikgfTsKIAogTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0aXZlRXJy
b3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJu
YWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3Ry
dWN0dXJlLCBJbnRlcnByZXRlcjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IsIEludGVycHJl
dGVyOjpjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcikKIHsKIH0KIApAQCAtNzMs
MTIgKzczLDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y29u
c3RydWN0V2l0aE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXgKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2Fn
ZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gSW50ZXJwcmV0ZXI6OmNvbnN0cnVjdFdpdGhOYXRpdmVFcnJvckNvbnN0cnVjdG9yOwotICAg
IHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotICAgIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwpA
QCAtODYsMTAgKzgwLDQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRlcnByZXRl
cjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3RydWN0dXJlLCBt
ZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0KIAotQ2FsbFR5cGUgTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxE
YXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEludGVycHJldGVyOjpjYWxs
TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDE2ZTc3MmQ3ZDZlMTNkZmUxZWM0
ZWFmZjYyZjA0OTJmMDRkNzZlODUuLmQyYjgwOTcyMzJlYjRjNTEwODRkZGIxYmUyOGFjYzQ2YzBh
YTI4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVy
cm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgTmF0aXZlRXJyb3JD
b25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9u
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAgIFN0cnVjdHVyZSog
ZXJyb3JTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2Vycm9yU3RydWN0dXJlLmdldCgpOyB9CkBAIC01
NCw4ICs1NCw2IEBAIGNsYXNzIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihWTSYs
IFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEo
SlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0
YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZXJy
b3JTdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dWxsR2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bEdldHRlckZ1bmN0aW9uLmNwcAppbmRleCBiYTQ2YjMwMmM4MmE0MmI3YmY2ZGRkODhmMDQ2ZGU0
ODVkODYwMWUyLi5hNTZjYWIzZmFlNzllZTk0NWU2OTc2NjI0YTE2NGI1YjE4ZDhmNGM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlv
bi5jcHAKQEAgLTQwLDE1ICs0MCw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxSZXR1cm5VbmRlZmluZWQoRXhlY1N0YXRlKikKIH0KIH0KIAotQ2FsbFR5cGUgTnVs
bEdldHRlckZ1bmN0aW9uOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEp
CitOdWxsR2V0dGVyRnVuY3Rpb246Ok51bGxHZXR0ZXJGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBOdWxsR2V0dGVyRnVuY3Rp
b25JbnRlcm5hbDo6Y2FsbFJldHVyblVuZGVmaW5lZCwgbnVsbHB0cikKIHsKLSAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBOdWxsR2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6Y2FsbFJldHVy
blVuZGVmaW5lZDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KLUNvbnN0cnVjdFR5
cGUgTnVsbEdldHRlckZ1bmN0aW9uOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmKQotewotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpOb25lOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oCmlu
ZGV4IDYzMzk3NzM3MmIzMTkxNDc3Yjk0YTc5M2Y4MWUyMWViZGM4MDhmYTUuLjFmMzA3ZDdjMDgx
NWIzMGZjMjBmOTlhM2M2ZWNhNWNhM2U0MTMxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oCkBAIC00NCwxNiArNDQsMTEgQEAg
Y2xhc3MgTnVsbEdldHRlckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKElu
dGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIE51bGxHZXR0ZXJGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQotICAgIHN0
YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0
YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYp
OworICAgIE51bGxHZXR0ZXJGdW5jdGlvbihWTSYsIFN0cnVjdHVyZSopOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dWxsU2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bFNldHRlckZ1bmN0aW9uLmNwcAppbmRleCA2YWYwZDFhODVkZjIwZmYwODFhOTg3Y2ZkZGRhNjdk
NTFhYjZlMGU2Li5jZGQxMTJlYmJmMWViNWE1OTE4Yzk2NTczMTdjZDdkYmRhNzQ2YzQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlv
bi5jcHAKQEAgLTgyLDE1ICs4Miw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxSZXR1cm5VbmRlZmluZWQoRXhlY1N0YXRlKiBleGVjKQogfQogfQogCi1DYWxsVHlw
ZSBOdWxsU2V0dGVyRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
RGF0YSkKK051bGxTZXR0ZXJGdW5jdGlvbjo6TnVsbFNldHRlckZ1bmN0aW9uKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIE51bGxTZXR0ZXJG
dW5jdGlvbkludGVybmFsOjpjYWxsUmV0dXJuVW5kZWZpbmVkLCBudWxscHRyKQogewotICAgIGNh
bGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IE51bGxTZXR0ZXJGdW5jdGlvbkludGVybmFsOjpjYWxs
UmV0dXJuVW5kZWZpbmVkOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQotQ29uc3Ry
dWN0VHlwZSBOdWxsU2V0dGVyRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29u
c3RydWN0RGF0YSYpCi17Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5j
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9u
LmgKaW5kZXggN2M0ZDk2NDBmOWY1OTA5YTA4YzU4ZmUwZWU5YTUyNzZhMWJmZjljZS4uMDUxNTAz
ZGUzZjg4NmFhZmNjYjhlOGE5OGEwYzMyMjNjNjU3OWFmNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmgKQEAgLTQ0LDE2ICs0NCwx
MSBAQCBjbGFzcyBOdWxsU2V0dGVyRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgTnVsbFNldHRlckZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9Ci0g
ICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CisgICAgTnVsbFNldHRlckZ1bmN0aW9uKFZNJiwgU3RydWN0dXJlKik7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcAppbmRleCBiMzExNDI3MGE0M2EyYzg2Njk3ZDUzNWRjNjJk
ODkyMzYzZDIyNDhkLi5lM2NjMWViODg2ZTJjYmRlM2YxY2UzNjc0MWRhOTVkZDMyNWU3M2I2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwCkBAIC01Myw4ICs1MywxMSBAQCBjb25zdCBDbGFzc0luZm8gTnVtYmVyQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogQGVuZAog
Ki8KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE51bWJlckNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CisKIE51bWJlckNvbnN0cnVj
dG9yOjpOdW1iZXJDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlv
bih2bSwgc3RydWN0dXJlLCBjYWxsTnVtYmVyQ29uc3RydWN0b3IsIGNvbnN0cnVjdE51bWJlckNv
bnN0cnVjdG9yKQogewogfQogCkBAIC04MCw3ICs4Myw3IEBAIHZvaWQgTnVtYmVyQ29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTnVtYmVyUHJvdG90eXBlKiBudW1iZXJQcm90b3R5
cGUpCiB9CiAKIC8vIEVDTUEgMTUuNy4xCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQorc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TnVtYmVyQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTQsMjQgKzk3LDEyIEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhOdW1iZXJDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmplY3Qp
OwogfQogCi1Db25zdHJ1Y3RUeXBlIE51bWJlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0b3I7Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIC8vIEVDTUEgMTUuNy4yCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTnVtYmVyQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoIWV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA/IDAgOiBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051
bWJlcihleGVjKSkpOwogfQogCi1DYWxsVHlwZSBOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNhbGxOdW1iZXJDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7Ci19Ci0KIC8vIEVDTUEtMjYyIDIwLjEuMi4zCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBudW1iZXJDb25zdHJ1Y3RvckZ1bmNJc0ludGVnZXIoRXhlY1N0YXRlKiBleGVj
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmgKaW5kZXggNTFlNGZhMzA0OWIzZDRhMzFlY2Q0YjQ4NzQ3MmI3MTgwNDUwYmVjOC4uMTBm
NThhMjVlY2RmNjM4MGVkZTU2OWI0YmRlMWQ5Mjc0OWZkNWZmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0Myw3
IEBAIGNsYXNzIE51bWJlckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewog
CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAgICAgeyAKLSAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKEludGVybmFs
RnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAogcHJvdGVj
dGVkOgpAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBOdW1iZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBOdW1iZXJDb25zdHJ1Y3RvcihWTSYs
IFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEo
SlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0
YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggZjY3MGJkMzI0MDA3NjRmMzlhNjFmMzQ0ZDQ4Y2E2YmQzNjg4Y2ViMC4uMWU0MDc1MThkYTQw
MzY5ZTNiZTlkOWY5MmQ2YmM5MzRkMmIxOWMyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtOTAsOCArOTAsMTIgQEAg
Y29uc3QgQ2xhc3NJbmZvIE9iamVjdENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIs
ICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKIEBlbmQKICovCiAKKworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0T2JqZWN0Q29uc3RydWN0
b3IoRXhlY1N0YXRlKik7CisKIE9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3RvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwg
c3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsT2Jq
ZWN0Q29uc3RydWN0b3IsIGNvbnN0cnVjdE9iamVjdENvbnN0cnVjdG9yKQogewogfQogCkBAIC0x
MzgsMjggKzE0MiwxNiBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU09iamVjdCogY29uc3RydWN0
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBuZXdUYXJnZQogICAgIHJldHVybiBhcmcu
dG9PYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYykKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE9iamVj
dENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNvbnN0cnVjdE9iamVjdChleGVjLCBleGVjLT5uZXdUYXJnZXQoKSkpOwogfQogCi1Db25z
dHJ1Y3RUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENv
bnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RPYmplY3QoZXhlYywgSlNWYWx1ZSgpKSk7CiB9CiAK
LUNhbGxUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE9iamVj
dENvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKEV4ZWNT
dGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggMTBmOTJkMmM5
MmMwMTRkMWYwMjllZGZlN2E1Mzk3ZWMzMzE3YTE3Ni4uM2JkMDMwYWZkZWRhZGJjNzczNmU2N2Ex
NjA4OGU2NmI1OTI4NjRmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIE9iamVjdENvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01OCw4
ICs1OCw2IEBAIGNsYXNzIE9iamVjdENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogCiBwcml2YXRlOgogICAgIE9iamVjdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7
Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25z
dHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJik7CiB9OwogCiBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEVtcHR5T2JqZWN0KEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCmluZGV4IDFmM2M0MjZmYzgw
Y2FhZmQ4YjM2YWIzZDAyYWYxOTM5Zjc5NjgzOGQuLjU4ZTEyNDI2YTQyYjUxNjExZTgzMjE1OGU1
MzAxNjhhYmEzN2RmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3h5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3h5Q29uc3RydWN0b3IuY3BwCkBAIC00OCw4ICs0OCwxMSBAQCBQcm94eUNvbnN0cnVjdG9y
KiBQcm94eUNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICByZXR1cm4gY29uc3RydWN0b3I7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxQcm94eShFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb3h5T2JqZWN0KEV4ZWNTdGF0ZSopOworCiBQcm94eUNv
bnN0cnVjdG9yOjpQcm94eUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
Ci0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxQcm94eSwgY29uc3RydWN0UHJveHlPYmplY3QpCiB7CiB9CiAKQEAgLTEwMywyMiArMTA2LDEw
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb3h5T2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFByb3h5T2Jq
ZWN0OjpjcmVhdGUoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCB0YXJnZXQsIGhh
bmRsZXIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBQcm94eUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RQcm94eU9iamVjdDsKLSAgICBy
ZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFByb3h5KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRShleGVjLT52bSgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3Io
ZXhlYywgc2NvcGUsICJQcm94eSIpKTsKIH0KIAotQ2FsbFR5cGUgUHJveHlDb25zdHJ1Y3Rvcjo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRh
Lm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxQcm94eTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5oCmluZGV4IDQ4ZjUzYzgyYjNmZDY5ZTNmNDE5Y2I3ZWVk
NzdhNTE5N2MyOTg2NjIuLmJhYzYwZDI0MzJhMmE2NjYxMjIzMmE4OWVhODAwNzk0MDNjNWRjYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9y
LmgKQEAgLTQwLDE1ICs0MCwxMyBAQCBjbGFzcyBQcm94eUNvbnN0cnVjdG9yIDogcHVibGljIElu
dGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUp
IAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7IAogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBjb25z
dCBjaGFyKiBuYW1lLCBKU0dsb2JhbE9iamVjdCopOwogCiBwcml2YXRlOgogICAgIFByb3h5Q29u
c3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRD
b25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBnZXRHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3h5UmV2b2tlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5
UmV2b2tlLmNwcAppbmRleCBhNWZjYTc4ZDNlODNjNWFmNThlOWU1MzA5OGQzNWQ4ZjhlYjkxN2Fm
Li5mODc1ZjY1ZDQ1MTM5NDk3MDY0ZDkzNmE5NzRhNzlkZjYwOGVlYTRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuY3BwCkBAIC00Miw4ICs0MiwxMCBA
QCBQcm94eVJldm9rZSogUHJveHlSZXZva2U6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBQcm94eU9iamVjdCogcHJveAogICAgIHJldHVybiByZXZva2U7CiB9CiAKK3N0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHBlcmZvcm1Qcm94eVJldm9rZShFeGVjU3Rh
dGUqKTsKKwogUHJveHlSZXZva2U6OlByb3h5UmV2b2tlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUsIHBlcmZvcm1Qcm94eVJldm9rZSwgbnVsbHB0cikKIHsKIH0KIApAQCAtNjksMTIgKzcxLDYg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcGVyZm9ybVByb3h5UmV2b2tl
KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1DYWxsVHlwZSBQcm94eVJldm9rZTo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IHBlcmZv
cm1Qcm94eVJldm9rZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIHZvaWQgUHJv
eHlSZXZva2U6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKIHsKICAgICBQcm94eVJldm9rZSogdGhpc09iamVjdCA9IGpzQ2FzdDxQcm94eVJldm9rZSo+
KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlS
ZXZva2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmgKaW5k
ZXggZTAyOGE3ZGE2YmYyZDM1Y2IwZmQzZGYzYjIyMzQ5ZTRiM2NkZWU3OS4uMTI2ODc2ZWY2ZjNi
ZTE2NWNjZDZjYjViNDFmODNhNGFmNjNhM2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm94eVJldm9rZS5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFByb3h5UmV2b2tl
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oVk0mLCBjb25zdCBjaGFyKiBuYW1lLCBQcm94eU9iamVjdCopOwpAQCAtNTIsNyArNTIsNiBA
QCBjbGFzcyBQcm94eVJldm9rZSA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0
ZToKICAgICBQcm94eVJldm9rZShWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDYWxsVHlw
ZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgV3JpdGVCYXJyaWVyPFVu
a25vd24+IG1fcHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IDFjNjdkYzVlMDNhYTMyYWE2YWQ2ZWYxMDg2
ZTBiN2MyZjI2ZGE3MjYuLjBmNTJhYTI0YWIzZTRmZmFlZmE1MTUzYzdiZjlmMzJhNjBjODcwZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAKQEAgLTc2LDggKzc2LDEyIEBAIGNvbnN0IENsYXNzSW5mbyBSZWdFeHBDb25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiBAZW5k
CiAqLwogCisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSZWdFeHBD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogUmVnRXhw
Q29uc3RydWN0b3I6OlJlZ0V4cENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFJlZ0V4cFByb3RvdHlwZSogcmVnRXhwUHJvdG90eXBlKQotICAgIDogSW50ZXJuYWxGdW5j
dGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJl
LCBjYWxsUmVnRXhwQ29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvcikK
ICAgICAsIG1fY2FjaGVkUmVzdWx0KHZtLCB0aGlzLCByZWdFeHBQcm90b3R5cGUtPmVtcHR5UmVn
RXhwKCkpCiAgICAgLCBtX211bHRpbGluZShmYWxzZSkKIHsKQEAgLTMxMCwyMiArMzE0LDEwIEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhSZWdFeHBD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25z
dHJ1Y3RSZWdFeHAoZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5n
bG9iYWxPYmplY3QoKSwgYXJncywgZXhlYy0+anNDYWxsZWUoKSwgZXhlYy0+bmV3VGFyZ2V0KCkp
KTsKIH0KIAotQ29uc3RydWN0VHlwZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVj
dERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9yOwot
ICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQog
ewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNv
bnN0cnVjdFJlZ0V4cChleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSkt
Pmdsb2JhbE9iamVjdCgpLCBhcmdzLCBleGVjLT5qc0NhbGxlZSgpKSk7CiB9CiAKLUNhbGxUeXBl
IFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERh
dGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFJlZ0V4cENvbnN0cnVj
dG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
aAppbmRleCA2ZDc0NjI3OTMzMTYzZTM1ZjUwYTNhYjg4ODYzNzY2MjQ0MTQ1MWRkLi5kYTc2MGVj
MDRmMGE3ODI3YWE2NTdjY2RiNjc5MjhjMWQ2ZWUwYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDcgQEAg
Y2xhc3MgUmVnRXhwQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50
ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAg
ICBERUNMQVJFX0lORk87CkBAIC03NCw4ICs3NCw2IEBAIGNsYXNzIFJlZ0V4cENvbnN0cnVjdG9y
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHJpdmF0ZToKICAgICBSZWdFeHBDb25zdHJ1
Y3RvcihWTSYsIFN0cnVjdHVyZSosIFJlZ0V4cFByb3RvdHlwZSopOwogICAgIHN0YXRpYyB2b2lk
IGRlc3Ryb3koSlNDZWxsKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICBSZWdFeHBDYWNoZWRSZXN1bHQgbV9j
YWNoZWRSZXN1bHQ7CiAgICAgYm9vbCBtX211bHRpbGluZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcAppbmRleCA3ODQzNzVhMjM5NDAxNzQz
MGZjYmJkODY5ZmI1ZjZkZDg3Zjc1NDA3Li5hNWM2YzE3MzhlOTI5MjEzMzZiNzRmYzkwNmE3OTAx
YjhkMzlkYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29u
c3RydWN0b3IuY3BwCkBAIC00Nyw2ICs0NywxNCBAQCB2b2lkIFNldENvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIFNldFByb3RvdHlwZSogc2V0UHJvdG90eXBlLCBHZXR0ZXJTZQog
ICAgIHB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIHZtLnByb3BlcnR5TmFtZXMtPnNwZWNp
ZXNTeW1ib2wsIHNwZWNpZXNTeW1ib2wsIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IFBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7
CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTZXQoRXhlY1N0
YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTZXQo
RXhlY1N0YXRlKik7CisKK1NldENvbnN0cnVjdG9yOjpTZXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsU2V0LCBj
b25zdHJ1Y3RTZXQpCit7Cit9CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxTZXQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBA
IC05OCwxOCArMTA2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0U2V0KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNl
dCk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgU2V0Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEo
SlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3RE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFNldDsKLSAgICByZXR1cm4gQ29uc3RydWN0
VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgU2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjYWxsU2V0OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEhlYWQoRXhlY1N0YXRl
KiBleGVjKQogewogICAgIEFTU0VSVChpc0pTU2V0KGV4ZWMtPmFyZ3VtZW50KDApKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuaAppbmRleCA0NWYw
MTMwNjUwMmY2OTcyMjBkNTQ1YjQ3MTBiMGM2NTAxZjY3ODQyLi5kZDRhNGQxOGI2Yzg5YjdlYzhl
OTE2ZTM5NmNhNzlhOGM1Yjg4NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NldENvbnN0cnVjdG9yLmgKQEAgLTQ3LDE3ICs0NywxMiBAQCBjbGFzcyBTZXRDb25zdHJ1
Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTZXRDb25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0s
IHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQorICAgIFNldENvbnN0cnVjdG9yKFZNJiwgU3RydWN0
dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFNldFByb3RvdHlwZSosIEdldHRl
clNldHRlciogc3BlY2llc1N5bWJvbCk7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBl
IGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHNldFByaXZhdGVGdW5jU2V0QnVja2V0SGVhZChFeGVjU3RhdGUqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNw
cAppbmRleCAzNzk5NmE4MjEzYmFlMjVlOTVlMTgxMjk5ZWZkMTk0MTA5ZDg1ZTU5Li4xMDY5ZWZl
NmQwYTJjYmE1MWI5ODE4ZjJjYjI3ZGNiODVjZjhmMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC01Miw4ICs1Miwx
MiBAQCBjb25zdCBDbGFzc0luZm8gU3RyaW5nQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0
aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxM
WV9ERVNUUlVDVElCTEUoU3RyaW5nQ29uc3RydWN0b3IpOwogCisKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogU3RyaW5nQ29uc3RydWN0b3I6OlN0cmluZ0NvbnN0cnVj
dG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9u
KHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxTdHJpbmdDb25zdHJ1Y3RvciwgY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKQogewog
fQogCkBAIC0xMzQsMTIgKzEzOCw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShTdHJpbmdPYmplY3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCBz
dHIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9y
OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCiBKU0NlbGwqIHN0cmluZ0Nv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBhcmd1bWVudCkKIHsKICAgICBpZiAo
YXJndW1lbnQuaXNTeW1ib2woKSkKQEAgLTE1NCwxMCArMTUyLDQgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHN0cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKSk7CiB9CiAKLUNhbGxUeXBlIFN0cmluZ0NvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2Fs
bERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFN0cmluZ0NvbnN0cnVjdG9yOwotICAgIHJldHVy
biBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAppbmRleCAxYmQxZTIx
MjY0OTZiYzVkOGU5NWQ2NTk4YjlmZTUyNmE2M2RkYmIxLi45OWFhZmU4MDg4MWI1YzcxMmY0NmVl
MjY5OGQwZTZjZTAyZmE2ZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKQEAgLTQzLDE0ICs0MywxMiBAQCBjbGFzcyBTdHJpbmdD
b25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9u
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBT
dHJpbmdDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oVk0mLCBTdHJpbmdQcm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRD
b25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIEpTQ2VsbCogSlNDX0hP
U1RfQ0FMTCBzdHJpbmdGcm9tQ2hhckNvZGUoRXhlY1N0YXRlKiwgaW50MzJfdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggYTc2MWY0MTU5ODFlZmMyYzFmYjdlNDhmZDI1ODBmMmFkZmVjNzdkMC4uYjUxNTI1OTIxMWM0
MjA1NDc1ZDAwZjM0YmJjMzBmNTU3ZDkyMWFjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmNwcApAQCAtNTYsOCArNTYsMTAgQEAg
Y29uc3QgQ2xhc3NJbmZvIFN5bWJvbENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIs
ICZCYXNlOjpzX2luZm8sICZzeW1ib2wKIEBlbmQKICovCiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxTeW1ib2woRXhlY1N0YXRlKik7CisKIFN5bWJvbENvbnN0cnVj
dG9yOjpTeW1ib2xDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlv
bih2bSwgc3RydWN0dXJlLCBjYWxsU3ltYm9sLCBudWxscHRyKQogewogfQogCkBAIC04MywxNyAr
ODUsNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3ltYm9sKEV4
ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFN5bWJvbDo6Y3JlYXRl
KGV4ZWMsIGRlc2NyaXB0aW9uLnRvU3RyaW5nKGV4ZWMpKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUg
U3ltYm9sQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0
YSYpCi17Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7Ci19Ci0KLUNhbGxUeXBlIFN5
bWJvbENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEp
Ci17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFN5bWJvbDsKLSAgICByZXR1
cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3lt
Ym9sQ29uc3RydWN0b3JGb3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xD
b25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3Ry
dWN0b3IuaAppbmRleCA1OGMzNTE4ZTQ3ZDkzMTIwNDZjYmU2MGVhMzhmZjBlNzAwNGMxNDY4Li41
YmQwNTk0NzgyN2MzMjYxMzQzYmI4YzlkYmUyOWI1NWNhN2Y5ZDY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgY2xhc3MgU3ltYm9sQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9
CiAKIHByb3RlY3RlZDoKQEAgLTU3LDggKzU3LDYgQEAgY2xhc3MgU3ltYm9sQ29uc3RydWN0b3Ig
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgU3ltYm9sQ29uc3Ry
dWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25z
dHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggYmIwZTA2ODUxYzYwMTA4MjBlODZlODExZWNhNTZjM2NjMjkzMjczZC4u
NjIzYjYyNjE4MWZhMTVlOTJiNjgxM2E5M2RmMzBkOTRiZjM3MjU3MyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCkBAIC00
NSw2ICs0NSwxNCBAQCB2b2lkIFdlYWtNYXBDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBXZWFrTWFwUHJvdG90eXBlKiBwcm90b3R5cGUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9
CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWFrTWFwKEV4ZWNT
dGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vh
a01hcChFeGVjU3RhdGUqKTsKKworV2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSwgY2FsbFdlYWtNYXAsIGNvbnN0cnVjdFdlYWtNYXApCit7Cit9CisKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWFrTWFwKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAtOTcsMTYgKzEwNSw0IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtNYXAoRXhlY1N0YXRlKiBleGVjKQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUod2Vha01hcCk7CiB9CiAKLUNvbnN0cnVjdFR5cGUg
V2Vha01hcENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24g
PSBjb25zdHJ1Y3RXZWFrTWFwOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQot
Ci1DYWxsVHlwZSBXZWFrTWFwQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsV2Vh
a01hcDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmgKaW5kZXggNTlmMmNh
YWRlMGNhMzU3YzJhYTAwMjczNjM0NmFhNzMwNWZlOTYwNi4uYzkzZTQxMjUxZWM2MGE5MDhiM2Rj
YmMyYWYxNjI1ZjExMWZkYzFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmgKQEAgLTQ3LDE3ICs0NywxMiBAQCBjbGFzcyBXZWFr
TWFwQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5j
dGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgV2Vha01hcENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAg
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9CisgICAgV2Vha01hcENvbnN0
cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFdl
YWtNYXBQcm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggMDg2YmJjYWQ4YmJiMzU2MTJhYjQ4YjUzYjYxODE0NTJjMjQxYTAxZC4uNjZiYzc1
MjdjYTJjYjhkODZlMTM5MmVlZTVjMWFkOWNhOGUyNzJiMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3BwCkBAIC00NSw2ICs0
NSwxNCBAQCB2b2lkIFdlYWtTZXRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBX
ZWFrU2V0UHJvdG90eXBlKiBwcm90b3R5cGUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWFrU2V0KEV4ZWNTdGF0ZSop
Oworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha1NldChF
eGVjU3RhdGUqKTsKKworV2Vha1NldENvbnN0cnVjdG9yOjpXZWFrU2V0Q29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2Fs
bFdlYWtTZXQsIGNvbnN0cnVjdFdlYWtTZXQpCit7Cit9CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWFrU2V0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwpAQCAtODMsMTYgKzkxLDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha1NldChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh3ZWFrU2V0KTsKIH0KIAotQ29uc3RydWN0VHlwZSBXZWFrU2V0
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29u
c3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0
cnVjdFdlYWtTZXQ7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxU
eXBlIFdlYWtTZXRDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNh
bGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxXZWFrU2V0Owot
ICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuaAppbmRleCA2OTNjMTBiZjhkYjRl
ZjBlY2QwYzQ3YjQ0MDBiYmQ3Njc3ZmJiYzBlLi41ZTZmYjgyOGYxNzNiM2E0YzAzNWMyYjA0ZmYz
YWQ1NzMzODE3ZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
ZWFrU2V0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
ZWFrU2V0Q29uc3RydWN0b3IuaApAQCAtNDcsMTcgKzQ3LDEyIEBAIGNsYXNzIFdlYWtTZXRDb25z
dHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBXZWFr
U2V0Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBC
YXNlKHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KKyAgICBXZWFrU2V0Q29uc3RydWN0b3Io
Vk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgV2Vha1NldFBy
b3RvdHlwZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlND
ZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShK
U0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDk4MmRmN2Y0MDhjMTdlZjI5N2ViNTNk
YmU4ODk3NjliNzJiYjFjOGIuLmFjNGQ4ZmNjMGE0YWI0MDkyNzlkYmZlNmE4MDc0Nzg5M2U2Yzcx
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC03MCw3ICs3
MCw3IEBAIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5Q29t
cGlsZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWCiAKIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlD
b21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVu
Y3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNzZW1i
bHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvclByb3RvdHlwZSogcHJvdG90eXBlKQpAQCAtODEsMjIgKzgxLDEwIEBA
IHZvaWQgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBXZWJBc3NlbWJseUNvbXBpCiB9CiAKIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29u
c3RydWN0b3I6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIGNvbnN0cnVjdEpT
V2ViQXNzZW1ibHlDb21waWxlRXJyb3IpCiB7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2ViQXNzZW1i
bHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25z
dHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY29uc3RydWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjsKLSAgICByZXR1cm4g
Q29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlDb21waWxlRXJy
b3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQot
ewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxKU1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJv
ckNvbnN0cnVjdG9yLmgKaW5kZXggMzRhMGU3OGMwNDY0NjcwOWQ2ZjJlNWNhNzY4NzIxMWY3YTk3
MjQ3Ny4uNWI3NWJjODEwNDI2NTY0NmY1MTg2NTZlZjU1NzMzY2FjMTM2YWM2MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaApAQCAtNDksOCArNDksNiBAQCBjbGFzcyBXZWJB
c3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogCiBwcml2YXRlOgogICAgIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IoVk0m
LCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTlkOGYwZDY2YmNkMDMyNTE3MjYwYjY4NTg3
NzQ3ZWRlYTVjNmYwMS4uMDBhYWVkYWE4NzVjMGMyMjZiOThjYjk0NGIwODZlYTFiMTc4ZmI1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0
YW5jZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCkBAIC05OSw3ICs5OSw3IEBAIFdlYkFz
c2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9y
OjpjcmVhdGUoVk0mIHZtLCBTCiAKIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAogdm9pZCBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlw
ZSogcHJvdG90eXBlKQpAQCAtMTEwLDIyICsxMTAsMTAgQEAgdm9pZCBXZWJBc3NlbWJseUluc3Rh
bmNlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlJbnN0YW5j
ZVAKIH0KIAogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUluc3Rh
bmNlQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1i
bHlJbnN0YW5jZSwgY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlKQogewogfQogCi1Db25z
dHJ1Y3RUeXBlIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVj
dERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlOwot
ICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJs
eUluc3RhbmNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
RGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJs
eUluc3RhbmNlOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25z
dHJ1Y3Rvci5oCmluZGV4IDZkOWVkM2MwMGI3M2FkNjg3ZGE2OWFhYjNkOGU3MzkwMzhkOTI2MDMu
LmEyMWQ5MWFjM2IyMzNiNzk5Mzg3ZTFhYjYwNGMzOGYyOWE3MTY0ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFu
Y2VDb25zdHJ1Y3Rvci5oCkBAIC01Myw4ICs1Myw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5SW5zdGFu
Y2VDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAg
ICBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBz
dGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9y
LmNwcAppbmRleCBiMTdkNThhYmU2NjU4MmZhYWQ3YWRjYTc2NjE1NzIyYmQyNGEzZWU2Li5hZjA5
MTdhYWI0ZGM2OWYxNjFiNDIyYWVhOTgyNmU5ZDExYTI5Mjk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJv
ckNvbnN0cnVjdG9yLmNwcApAQCAtNzAsNyArNzAsNyBAQCBXZWJBc3NlbWJseUxpbmtFcnJvckNv
bnN0cnVjdG9yKiBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZt
LAogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOwogfQogCiB2b2lkIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSkK
QEAgLTgxLDIyICs4MSwxMCBAQCB2b2lkIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlMaW5rRXJybwogfQogCiBXZWJBc3Nl
bWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9y
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUp
CisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCBj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yKQogewogfQogCi1Db25zdHJ1Y3RUeXBlIFdl
YkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwg
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I7Ci0gICAgcmV0dXJu
IENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsK
LSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseUxpbmtFcnJv
cjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwog
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rv
ci5oCmluZGV4IGM3MDBjNjMzMDE0ZmJmYWFmYTBhYmI5MzJjZDcwZTliOWZlOTMwOTUuLmUyOTEy
OTdiZGFlY2FkNzFlMjRlMTI3NzIwZmVjNDViMjg3NDgxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNv
bnN0cnVjdG9yLmgKQEAgLTQ5LDggKzQ5LDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlMaW5rRXJyb3JD
b25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBX
ZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggNjQ5ODliNWM0YzI2YTFjY2M1YjdiYzc3ZDEyMjkxMWM3MWI0MDJmYy4uYTU4Y2MzODE0NDI3
M2UwZWYxMDllY2JmZDdkODAxY2IyNzQ0YzcyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5j
cHAKQEAgLTkxLDggKzkxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0SlNXZWJBc3NlbWJseU1lbW9yeShFeGVjU3RhdGUqIGV4ZWMKIAogICAgICAgICAg
ICAgaWYgKGluaXRpYWxQYWdlQ291bnQgPiBtYXhpbXVtUGFnZUNvdW50KSB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihleGVjLCB0aHJvd1Nj
b3BlLAotICAgICAgICAgICAgICAgICAgICBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsIEFTQ0lJTGl0
ZXJhbCgiJ21heGltdW0nIHBhZ2UgY291bnQgbXVzdCBiZSB0aGFuIGdyZWF0ZXIgdGhhbiBvciBl
cXVhbCB0byB0aGUgJ2luaXRpYWwnIHBhZ2UgY291bnQiKSkpKTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIidt
YXhpbXVtJyBwYWdlIGNvdW50IG11c3QgYmUgdGhhbiBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8g
dGhlICdpbml0aWFsJyBwYWdlIGNvdW50IikpKSk7IH0KICAgICAgICAgfQogICAgIH0KIApAQCAt
MTIyLDcgKzEyMSw3IEBAIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IqIFdlYkFzc2VtYmx5
TWVtb3J5Q29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjCiAKIFN0cnVjdHVyZSogV2Vi
QXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFs
RnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNz
ZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJs
eU1lbW9yeVByb3RvdHlwZSogcHJvdG90eXBlKQpAQCAtMTMzLDIyICsxMzIsMTAgQEAgdm9pZCBX
ZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFz
c2VtYmx5TWVtb3J5UHJvdG8KIH0KIAogV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6V2Vi
QXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQot
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxs
SlNXZWJBc3NlbWJseU1lbW9yeSwgY29uc3RydWN0SlNXZWJBc3NlbWJseU1lbW9yeSkKIHsKIH0K
IAotQ29uc3RydWN0VHlwZSBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TWVtb3J5
OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3Nl
bWJseU1lbW9yeUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2Fs
bERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNzZW1i
bHlNZW1vcnk7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0
b3IuaAppbmRleCAyMDYxZTI0OGYzMzk1YjY3ZDJjMmU0YjE4Y2U0MmI5NjgyMjFlYzVjLi5lYTY0
NjBiMWJjNzFiYTI4OTQ1ZTcyZTk1OTRjNmNmYzkzYmRlMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1
Y3Rvci5oCkBAIC00OSw4ICs0OSw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1i
bHlNZW1vcnlDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1
Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0
YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCmluZGV4IDk2MTAyNGQy
NTJjOTI0NTU2M2NjMTE4NjA5N2MzM2ZmMTc4NzQ5MzAuLjAxNmY5NDY4NjM1ZGMxNGU3OGJjYjIx
YzI0ZWYzODcxNjUyODc1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCkBAIC0xOTYs
NyArMTk2LDcgQEAgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlNb2R1
bGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWMKIAogU3RydWN0dXJlKiBXZWJBc3Nl
bWJseU1vZHVsZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5j
dGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAogdm9pZCBXZWJBc3NlbWJs
eU1vZHVsZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5TW9k
dWxlUHJvdG90eXBlKiBwcm90b3R5cGUpCkBAIC0yMDcsMjIgKzIwNywxMCBAQCB2b2lkIFdlYkFz
c2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1i
bHlNb2R1bGVQcm90bwogfQogCiBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpXZWJBc3Nl
bWJseU1vZHVsZUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAg
OiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dl
YkFzc2VtYmx5TW9kdWxlLCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TW9kdWxlKQogewogfQogCi1D
b25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERh
dGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1
Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNb2R1bGU7Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdlYkFzc2VtYmx5
TW9kdWxlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0
YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseU1v
ZHVsZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpT
QwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5o
CmluZGV4IDYwMjVjOTgwMzllOWNkZWNkNjBhZjYzNDIyNWU5YjI5ZDUwMzE2MjMuLmQ1MDE1MzUz
OTQwNWRlNjk1OWJjMDgzNDEyYzdiMTYzMTg3MjdjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9y
LmgKQEAgLTUxLDggKzUxLDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvciA6
IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseU1v
ZHVsZUNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5
cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
NjQ1Zjk2NzVkNzFiYmQxNWEwNjI4ZTc4OTM1YWJlZmQyODYyOWY3Yi4uZGFiYzdlMDljOTNmMjQ0
NTc1Mjc2OTAzNTFhYzIwNTkwODU0NGQzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKQEAgLTgxLDIyICs4MSwxMCBAQCB2b2lkIFdlYkFzc2VtYmx5UnVudGltZUVy
cm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlSdW50aQog
fQogCiBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBC
YXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yLCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKQog
ewogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6
OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkK
LXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0K
LUNhbGxUeXBlIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVu
Y3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjsKLSAgICByZXR1cm4gQ2FsbFR5
cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDc3ZmI2
ZTQ1YWVjYzg2MDM1N2U0ODFhZDhjMmY1NWI4ZmJkZDhlOTIuLjk0YWU2YjlhNWYxY2VjNTc3Njk4
ZmMwMzNhYjQwZjgyZTMzMzAyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9y
LmgKQEAgLTQ5LDggKzQ5LDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1
Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGlj
IENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7
Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCmluZGV4IDEx
ODY1ZjVjNGZiN2UzZDk0NmZlYjc4MmVhOGU1MDE1NDA1YThmZDEuLjU5N2ZkMTVjNDZkNjQyY2Vm
N2FmNzg5NWEwODUyNzBkYjUxNWNlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcApAQCAt
MTEwLDcgKzExMCw3IEBAIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlU
YWJsZUNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1CiAKIFN0cnVjdHVyZSogV2Vi
QXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxG
dW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAogdm9pZCBXZWJBc3Nl
bWJseVRhYmxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlU
YWJsZVByb3RvdHlwZSogcHJvdG90eXBlKQpAQCAtMTIxLDIyICsxMjEsMTAgQEAgdm9pZCBXZWJB
c3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1i
bHlUYWJsZVByb3RvdHkKIH0KIAogV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpXZWJBc3Nl
bWJseVRhYmxlQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6
IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEpTV2Vi
QXNzZW1ibHlUYWJsZSwgY29uc3RydWN0SlNXZWJBc3NlbWJseVRhYmxlKQogewogfQogCi1Db25z
dHJ1Y3RUeXBlIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShK
U0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SlNXZWJBc3NlbWJseVRhYmxlOwotICAgIHJl
dHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJseVRhYmxl
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsK
LSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseVRhYmxlOwot
ICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCmluZGV4IDVh
ZGViYjM3NjE3MWMzNGVjMzdiYzlkMjBlMTdiM2I2ZDQ1ZTkxNTEuLjM2NDY4ZDBiM2VkZDNhMGI4
ZTBjYTZlZGJhMjBiYzBjMTI2OWJhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCkBAIC00OSw4
ICs0OSw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0
b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324248</attachid>
            <date>2017-10-19 10:31:42 -0700</date>
            <delta_ts>2017-10-20 02:12:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144458-20171020023141.patch</filename>
            <type>text/plain</type>
            <size>157631</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzNjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YjBmZjQyZTk5M2RiOTlhZDA3ZDg5OGMzYzM4ZWEyZDllYWZlY2VhLi42MGExZWNhMTU4Mjg3Y2Fh
N2I1YWUxYmFiNDFiYTBmODkzZTQ0YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMDQgQEAKKzIwMTctMTAtMTkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2Fs
bHMgdG8gb2JqZWN0cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQVBJL0pTQ2Fs
bGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6SlND
YWxsYmFja0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0Z1bmN0aW9uOjpnZXRD
YWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgor
ICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAg
ICAgICogQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLmg6CisgICAgICAgIChKU0M6Ok9iakNDYWxs
YmFja0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIEFQSS9PYmpDQ2FsbGJh
Y2tGdW5jdGlvbi5tbToKKyAgICAgICAgKEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb246Ok9iakND
YWxsYmFja0Z1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb246Omdl
dENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb246
OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2Rl
RHVtcGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVEdW1wZXI8QmxvY2s+OjpwcmludENh
bGxPcCk6CisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjpzZXRDYWxsZWUpOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86
OmNhbGxlZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6c2V0TGFzdFNlZW5DYWxsZWUp
OgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86Omxhc3RTZWVuQ2FsbGVlKToKKyAgICAgICAg
KEpTQzo6Q2FsbExpbmtJbmZvOjp2aXNpdFdlYWspOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxM
aW5rSW5mby5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tQ2FsbExpbmtJbmZvKToKKyAgICAg
ICAgKiBieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oOgorICAgICAgICAqIGppdC9KSVRPcGVy
YXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6Omxp
bmtGb3IpOgorICAgICAgICAoSlNDOjpsaW5rUG9seW1vcnBoaWNDYWxsKToKKyAgICAgICAgKiBq
aXQvUmVwYXRjaC5oOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAg
ICAoSlNDOjp2aXJ0dWFsVGh1bmtGb3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVGb3JHZW5lcmF0
b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVDYWxsR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6
bmF0aXZlVGFpbENhbGxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVUYWlsQ2FsbFdp
dGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVDb25zdHJ1Y3RH
ZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjppbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OmludGVybmFsRnVuY3Rpb25UYWlsQ2FsbEdlbmVyYXRvcik6CisgICAg
ICAgIChKU0M6OmludGVybmFsRnVuY3Rpb25UYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0
b3IpOgorICAgICAgICAoSlNDOjppbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0R2VuZXJhdG9yKToK
KyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgICogbGxpbnQvTExJbnRT
bG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6c2V0VXBDYWxsKToKKyAgICAgICAg
KiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNvbnN0
cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rv
cjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkFycmF5Q29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNGdW5jdGlvbkNvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2Fs
bERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6
OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXN5bmNGdW5j
dGlvbkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0
Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3luY0dlbmVyYXRvckZ1bmN0aW9u
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFz
eW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAg
ICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNhbGxC
b29sZWFuQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OkJv
b2xlYW5Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkJvb2xlYW5Db25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6Omdl
dENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rv
ci5oOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpE
YXRlQ29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkRhdGVDb25z
dHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRhdGVD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRGF0
ZUNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmg6CisgICAgICAgIChKU0M6OlN0cmlj
dE1vZGVUeXBlRXJyb3JGdW5jdGlvbjo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uKToKKyAg
ICAgICAgKEpTQzo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmdldENvbnN0cnVj
dERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rp
b246OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKEpTQzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAg
KEpTQzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0
cnVjdG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVj
dG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpjYWxsRnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpG
dW5jdGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5j
dGlvblByb3RvdHlwZTo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
RnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Qcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkdlbmVyYXRvckZ1
bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6R2VuZXJh
dG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6
SW50ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpJbnRlcm5h
bEZ1bmN0aW9uOjpnZXRDYWxsRGF0YSk6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246
OmdldENvbnN0cnVjdERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5o
OgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpuYXRpdmVGdW5jdGlvbkZvcik6Cisg
ICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3Ip
OgorICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAg
ICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3I6OkludGxDb2xsYXRvckNvbnN0cnVjdG9y
KToKKyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Z2V0
Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9y
OjpJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkludGxEYXRl
VGltZUZvcm1hdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmg6
CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6SW50bE51bWJlckZv
cm1hdENvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENvbnN0cnVj
dG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bE51bWJl
ckZvcm1hdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJD
b25zdHJ1Y3Rvcjo6SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNB
cnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpK
U0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xh
c3M+OjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
PFZpZXdDbGFzcz46OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpK
U0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmdldENhbGxEYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgIChKU0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpKU1Byb21pc2VDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChKU0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmg6Cisg
ICAgICAgICogcnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvcjo6SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlND
OjpKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENhbGxEYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpNYXBDb25zdHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpNYXBDb25z
dHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcENv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9NYXBD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6TWFwQ29uc3RydWN0b3I6Ok1hcENvbnN0cnVjdG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9y
KToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0
YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmdldENh
bGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0
b3IuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHA6CisgICAgICAg
IChKU0M6Ok51bGxHZXR0ZXJGdW5jdGlvbjo6TnVsbEdldHRlckZ1bmN0aW9uKToKKyAgICAgICAg
KEpTQzo6TnVsbEdldHRlckZ1bmN0aW9uOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Ok51bGxHZXR0ZXJGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6TnVs
bEdldHRlckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpOdWxsR2V0
dGVyRnVuY3Rpb246Ok51bGxHZXR0ZXJGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVu
Y3Rpb246Ok51bGxTZXR0ZXJGdW5jdGlvbik6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5j
dGlvbjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVu
Y3Rpb246OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVs
bFNldHRlckZ1bmN0aW9uLmg6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uOjpOdWxsU2V0
dGVyRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6TnVtYmVyQ29uc3RydWN0
b3IpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChKU0M6OmNvbnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6Ok51bWJl
ckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0
Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RPYmplY3RDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFdpdGhPYmplY3RDb25zdHJ1Y3Rvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6T2JqZWN0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg6CisgICAgICAgIChK
U0M6Ok9iamVjdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvUHJveHlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlByb3h5Q29uc3RydWN0b3I6
OlByb3h5Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpQcm94eUNvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6
Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAoSlNDOjpQcm94eUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJveHlSZXZva2UuY3BwOgorICAgICAgICAoSlNDOjpQcm94eVJl
dm9rZTo6UHJveHlSZXZva2UpOgorICAgICAgICAoSlNDOjpQcm94eVJldm9rZTo6Z2V0Q2FsbERh
dGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlSZXZva2UuaDoKKyAgICAgICAg
KEpTQzo6UHJveHlSZXZva2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpS
ZWdFeHBDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVnRXhwQ29uc3RydWN0b3I6
OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmg6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpT
ZXRDb25zdHJ1Y3Rvcjo6U2V0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpTZXRDb25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNldENvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TZXRDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpTZXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKEpTQzo6U2V0Q29uc3RydWN0b3I6OlNldENvbnN0cnVjdG9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6U3RyaW5nQ29uc3RydWN0b3I6OlN0cmluZ0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6
U3RyaW5nQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6U3RyaW5nQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9TeW1ib2xDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlN5bWJvbENvbnN0cnVjdG9yOjpTeW1ib2xDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChKU0M6OlN5bWJvbENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U3ltYm9sQ29uc3RydWN0b3I6OmdldENhbGxEYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmg6CisgICAg
ICAgIChKU0M6OlN5bWJvbENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAq
IHJ1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha01hcENv
bnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWFrTWFwQ29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXZWFr
TWFwQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L1dlYWtNYXBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpXZWFrTWFwQ29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6V2Vh
a01hcENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYWtTZXRDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OldlYWtTZXRDb25zdHJ1Y3Rvcjo6V2Vha1NldENv
bnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6V2Vha1NldENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2Vha1NldENvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKEpTQzo6V2Vha1NldENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpXZWFrU2V0Q29uc3RydWN0b3I6OldlYWtTZXRDb25zdHJ1Y3Rvcik6IERl
bGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlDb21waWxlRXJy
b3JDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChKU0M6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVj
dERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJB
c3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJB
c3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eUluc3RhbmNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6Oldl
YkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlJbnN0YW5j
ZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9X
ZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFz
c2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eUxpbmtFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpX
ZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TGlu
a0Vycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNt
L2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pz
L1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RKU1dlYkFzc2VtYmx5TWVtb3J5KToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNZW1vcnlD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlN
ZW1vcnlDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChKU0M6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNv
bnN0cnVjdG9yLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
cjo6V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OldlYkFzc2Vt
Ymx5TW9kdWxlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0
ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmg6Cisg
ICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6V2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5
UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0
YSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNv
bnN0cnVjdG9yLmg6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlU
YWJsZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisg
ICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaDoKKwogMjAxNy0x
MC0xOCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVnRXhwT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSgpIGRvZXMgbm90IG5lZWQgdG8gY29tcGFyZSB2YWx1ZXMg
aWYgbm8gZGVzY3JpcHRvciB2YWx1ZSBpcyBzcGVjaWZpZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZjNDU5
YTliZjRmODJkNWE0YzE5NjYyNjAwNDI0OWJkODk4NTQ0My4uZTQ0MTZjYzI1MjNiNGRhNjZiOGE5
MzZhYWI5Y2EzODZkM2FlNDNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEw
LTE5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIEpJ
VCBjYWxsIGlubGluZSBjYWNoZXMgc2hvdWxkIGNhY2hlIGNhbGxzIHRvIG9iamVjdHMgd2l0aCBn
ZXRDYWxsRGF0YS9nZXRDb25zdHJ1Y3REYXRhIHRyYXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0NTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5jcHA6Cisg
ICAgICAgIChKU0M6OlJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2QpOgorICAgICAgICAoSlND
OjpSdW50aW1lTWV0aG9kOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogYnJpZGdl
L3J1bnRpbWVfbWV0aG9kLmg6CisKIDIwMTctMTAtMTkgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIE92ZXJsYXBwaW5nIHRleHQgb24gYWxsIENTUyBmb250cyBz
cGVjcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVu
Y3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwCmluZGV4IDY4NGVjZTYzMGZhMWNhODBhN2MzOGVjY2FjZDQwZTc4NzJlY2Y4MTAuLjc4Y2E1
NWJiMjNlZDZjZmRiOWQ5MWRlNDU4NzZlY2U3Njc2MzQ3NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
U1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTQ2FsbGJhY2tGdW5jdGlv
bik7CiBjb25zdCBDbGFzc0luZm8gSlNDYWxsYmFja0Z1bmN0aW9uOjpzX2luZm8gPSB7ICJDYWxs
YmFja0Z1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrRnVuY3Rpb24pIH07CiAKIEpTQ2FsbGJh
Y2tGdW5jdGlvbjo6SlNDYWxsYmFja0Z1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBjYWxsYmFjaykKLSAgICA6IEludGVy
bmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0
cnVjdHVyZSwgQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2FsbDxKU0NhbGxiYWNrRnVuY3Rpb24+LCBu
dWxscHRyKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsKIH0KQEAgLTYzLDEwICs2Myw0
IEBAIEpTQ2FsbGJhY2tGdW5jdGlvbiogSlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVhdGUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIGZ1bmN0aW9uOwogfQogCi1D
YWxsVHlwZSBKU0NhbGxiYWNrRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
JiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBBUElDYWxsYmFj
a0Z1bmN0aW9uOjpjYWxsPEpTQ2FsbGJhY2tGdW5jdGlvbj47Ci0gICAgcmV0dXJuIENhbGxUeXBl
OjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IGE0ZmRkMDY4ZmVmNDhiNDhhZDZkYTQ5
NDQ0YjViNWQ0MGMwY2RhNjUuLjRjNTRiODBmNTljZWI5MGIzMjE3ZDc3OGJlOWNkYzE4MGZjNDRm
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0
aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
aApAQCAtNDQsMTUgKzQ0LDEzIEBAIGNsYXNzIEpTQ2FsbGJhY2tGdW5jdGlvbiA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKICAgICAvLyByZWZhY3RvciB0aGUgY29kZSBzbyB0aGlzIG92ZXJy
aWRlIGlzbid0IG5lY2Vzc2FyeQogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pIAog
ICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
LCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OyAKICAgICB9CiAKIHByaXZhdGU6CiAgICAgSlNDYWxsYmFja0Z1bmN0aW9uKFZNJiwgU3RydWN0
dXJlKiwgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrKTsKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIHN0YXRpYyBDYWxsVHlwZSBn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwotCiAgICAgSlNPYmplY3RDYWxsQXNGdW5j
dGlvbkNhbGxiYWNrIGZ1bmN0aW9uQ2FsbGJhY2soKSB7IHJldHVybiBtX2NhbGxiYWNrOyB9CiAK
ICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2sgbV9jYWxsYmFjazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaAppbmRleCA0ZDVi
NzM2OGQzYzdjMTAzYjRkNGU2M2ZhOGU2MjQ1YmNmMDJjNmIxLi5mZjMxYTQ3ZDVjZGE3ZGRhMTZi
YjBlMDE4MzY3MzY5ZjhlZDJiZDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIE9iakNDYWxs
YmFja0Z1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGdsb2JhbE9iamVj
dCk7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKICAgICB9CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KaW5kZXggZmI5M2E4NjBh
ZWJmMmY0OTBiMDdjMjVmZjc1MDM1MzJhNGI3N2FkMy4uNjNmOTIwZWRiMjI0ZjFhZGQxZDA5Yjdh
MTEyMzdhZDY1YTE4NzkyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9P
YmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09i
akNDYWxsYmFja0Z1bmN0aW9uLm1tCkBAIC01MDYsNyArNTA2LDcgQEAgc3RhdGljIEpTT2JqZWN0
UmVmIG9iakNDYWxsYmFja0Z1bmN0aW9uQ2FsbEFzQ29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGNh
bGxlckNvbnQKIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIE9iakNDYWxsYmFja0Z1bmN0aW9uOjpzX2lu
Zm8gPSB7ICJDYWxsYmFja0Z1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShPYmpDQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAogT2JqQ0Nh
bGxiYWNrRnVuY3Rpb246Ok9iakNDYWxsYmFja0Z1bmN0aW9uKEpTQzo6Vk0mIHZtLCBKU0M6OlN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2sgZnVuY3Rp
b25DYWxsYmFjaywgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxiYWNrIGNvbnN0cnVjdENh
bGxiYWNrLCBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsPiBpbXBsKQot
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBBUElD
YWxsYmFja0Z1bmN0aW9uOjpjYWxsPE9iakNDYWxsYmFja0Z1bmN0aW9uPiwgaW1wbC0+aXNDb25z
dHJ1Y3RpYmxlKCkgPyBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1Y3Q8T2JqQ0NhbGxiYWNr
RnVuY3Rpb24+IDogbnVsbHB0cikKICAgICAsIG1fZnVuY3Rpb25DYWxsYmFjayhmdW5jdGlvbkNh
bGxiYWNrKQogICAgICwgbV9jb25zdHJ1Y3RDYWxsYmFjayhjb25zdHJ1Y3RDYWxsYmFjaykKICAg
ICAsIG1faW1wbChXVEZNb3ZlKGltcGwpKQpAQCAtNTI4LDIyICs1MjgsNiBAQCB2b2lkIE9iakND
YWxsYmFja0Z1bmN0aW9uOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKICAgICBmdW5jdGlvbi5+T2Jq
Q0NhbGxiYWNrRnVuY3Rpb24oKTsKIH0KIAotCi1DYWxsVHlwZSBPYmpDQ2FsbGJhY2tGdW5jdGlv
bjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGw8T2JqQ0NhbGxi
YWNrRnVuY3Rpb24+OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQotQ29uc3RydWN0
VHlwZSBPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqIGNlbGws
IENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgT2JqQ0NhbGxiYWNrRnVuY3Rp
b24qIGNhbGxiYWNrID0ganNDYXN0PE9iakNDYWxsYmFja0Z1bmN0aW9uKj4oY2VsbCk7Ci0gICAg
aWYgKCFjYWxsYmFjay0+aW1wbCgpLT5pc0NvbnN0cnVjdGlibGUoKSkKLSAgICAgICAgcmV0dXJu
IEJhc2U6OmdldENvbnN0cnVjdERhdGEoY2VsbCwgY29uc3RydWN0RGF0YSk7Ci0gICAgY29uc3Ry
dWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1Y3Q8
T2JqQ0NhbGxiYWNrRnVuY3Rpb24+OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0Owot
fQotCiBTdHJpbmcgT2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsOjpuYW1lKCkKIHsKICAgICBpZiAo
bV90eXBlID09IENhbGxiYWNrSW5pdE1ldGhvZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCmluZGV4IDliYzExN2YxOTkxNGM1MzllMmRj
YWUzMzcyZTMxYTQ5YWQ2YzJlYTEuLmE5ZjE2ZDczZjNkY2YwNzQ5MzlkMThjNmNkODc4ZTJlMWIx
ZmY4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZUR1bXBlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
RHVtcGVyLmNwcApAQCAtNTc4LDE2ICs1NzgsMTkgQEAgdm9pZCBCeXRlY29kZUR1bXBlcjxCbG9j
az46OnByaW50Q2FsbE9wKFByaW50U3RyZWFtJiBvdXQsIGludCBsb2NhdGlvbiwgY29uc3QgdHkK
ICAgICBpZiAoY2FjaGVEdW1wTW9kZSA9PSBEdW1wQ2FjaGVzKSB7CiAgICAgICAgIExMSW50Q2Fs
bExpbmtJbmZvKiBjYWxsTGlua0luZm8gPSBnZXRDYWxsTGlua0luZm8oaXRbMV0pOwogICAgICAg
ICBpZiAoY2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZSkgewotICAgICAgICAgICAgb3V0LnBy
aW50ZigKLSAgICAgICAgICAgICAgICAiIGxsaW50KCVwLCBleGVjICVwKSIsCi0gICAgICAgICAg
ICAgICAgY2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZS5nZXQoKSwKLSAgICAgICAgICAgICAg
ICBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLT5leGVjdXRhYmxlKCkpOworICAgICAgICAg
ICAgSlNPYmplY3QqIG9iamVjdCA9IGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuZ2V0KCk7
CisgICAgICAgICAgICBpZiAoYXV0byogZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rp
b24qPigqdm0oKSwgb2JqZWN0KSkKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIgbGxpbnQo
JXAsIGV4ZWMgJXApIiwgZnVuY3Rpb24sIGZ1bmN0aW9uLT5leGVjdXRhYmxlKCkpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBsbGludCglcCkiLCBvYmpl
Y3QpOwogICAgICAgICB9CiAjaWYgRU5BQkxFKEpJVCkKICAgICAgICAgaWYgKENhbGxMaW5rSW5m
byogaW5mbyA9IG1hcC5nZXQoQ29kZU9yaWdpbihsb2NhdGlvbikpKSB7Ci0gICAgICAgICAgICBK
U0Z1bmN0aW9uKiB0YXJnZXQgPSBpbmZvLT5sYXN0U2VlbkNhbGxlZSgpOwotICAgICAgICAgICAg
aWYgKHRhcmdldCkKLSAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIgaml0KCVwLCBleGVjICVw
KSIsIHRhcmdldCwgdGFyZ2V0LT5leGVjdXRhYmxlKCkpOworICAgICAgICAgICAgSlNPYmplY3Qq
IG9iamVjdCA9IGluZm8tPmxhc3RTZWVuQ2FsbGVlKCk7CisgICAgICAgICAgICBpZiAoYXV0byog
ZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPigqdm0oKSwgb2JqZWN0KSkKKyAg
ICAgICAgICAgICAgICBvdXQucHJpbnRmKCIgaml0KCVwLCBleGVjICVwKSIsIGZ1bmN0aW9uLCBm
dW5jdGlvbi0+ZXhlY3V0YWJsZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBvdXQucHJpbnRmKCIgaml0KCVwKSIsIG9iamVjdCk7CiAgICAgICAgIH0KIAogICAgICAgICBk
dW1wQ2FsbExpbmtTdGF0dXMob3V0LCBsb2NhdGlvbiwgbWFwKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggM2FjYzVmYmUzZmVlYzUw
MWM3ZWRjNTRkZWM4OTY2ODZjM2M3YTlhNS4uZWQ2ZDM2OTc0NzUxNGRmYjJlOWJkMjUxNjA1Mjg1
MmZjYmY3ZmNhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nh
bGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBDb2RlTG9jYXRpb25MYWJlbCBDYWxsTGlu
a0luZm86OnNsb3dQYXRoU3RhcnQoKQogICAgIHJldHVybiBtX2hvdFBhdGhCZWdpbk9yU2xvd1Bh
dGhTdGFydDsKIH0KIAotdm9pZCBDYWxsTGlua0luZm86OnNldENhbGxlZShWTSYgdm0sIEpTQ2Vs
bCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxlZSkKK3ZvaWQgQ2FsbExpbmtJbmZvOjpzZXRDYWxs
ZWUoVk0mIHZtLCBKU0NlbGwqIG93bmVyLCBKU09iamVjdCogY2FsbGVlKQogewogICAgIFJFTEVB
U0VfQVNTRVJUKCFpc0RpcmVjdCgpKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRjaFBvaW50
ZXIoaG90UGF0aEJlZ2luKCksIGNhbGxlZSk7CkBAIC0xMzcsMTAgKzEzNywxMCBAQCB2b2lkIENh
bGxMaW5rSW5mbzo6Y2xlYXJDYWxsZWUoKQogICAgIG1faXNMaW5rZWQgPSBmYWxzZTsKIH0KIAot
SlNGdW5jdGlvbiogQ2FsbExpbmtJbmZvOjpjYWxsZWUoKQorSlNPYmplY3QqIENhbGxMaW5rSW5m
bzo6Y2FsbGVlKCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNEaXJlY3QoKSk7Ci0gICAgcmV0
dXJuIGpzQ2FzdDxKU0Z1bmN0aW9uKj4obV9jYWxsZWVPckNvZGVCbG9jay5nZXQoKSk7CisgICAg
cmV0dXJuIGpzQ2FzdDxKU09iamVjdCo+KG1fY2FsbGVlT3JDb2RlQmxvY2suZ2V0KCkpOwogfQog
CiB2b2lkIENhbGxMaW5rSW5mbzo6c2V0Q29kZUJsb2NrKFZNJiB2bSwgSlNDZWxsKiBvd25lciwg
RnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9jaykKQEAgLTE2Myw3ICsxNjMsNyBAQCBGdW5jdGlv
bkNvZGVCbG9jayogQ2FsbExpbmtJbmZvOjpjb2RlQmxvY2soKQogICAgIHJldHVybiBqc0Nhc3Q8
RnVuY3Rpb25Db2RlQmxvY2sqPihtX2NhbGxlZU9yQ29kZUJsb2NrLmdldCgpKTsKIH0KIAotdm9p
ZCBDYWxsTGlua0luZm86OnNldExhc3RTZWVuQ2FsbGVlKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBv
d25lciwgSlNGdW5jdGlvbiogY2FsbGVlKQordm9pZCBDYWxsTGlua0luZm86OnNldExhc3RTZWVu
Q2FsbGVlKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNPYmplY3QqIGNhbGxlZSkKIHsK
ICAgICBSRUxFQVNFX0FTU0VSVCghaXNEaXJlY3QoKSk7CiAgICAgbV9sYXN0U2VlbkNhbGxlZU9y
RXhlY3V0YWJsZS5zZXQodm0sIG93bmVyLCBjYWxsZWUpOwpAQCAtMTc1LDEwICsxNzUsMTAgQEAg
dm9pZCBDYWxsTGlua0luZm86OmNsZWFyTGFzdFNlZW5DYWxsZWUoKQogICAgIG1fbGFzdFNlZW5D
YWxsZWVPckV4ZWN1dGFibGUuY2xlYXIoKTsKIH0KIAotSlNGdW5jdGlvbiogQ2FsbExpbmtJbmZv
OjpsYXN0U2VlbkNhbGxlZSgpCitKU09iamVjdCogQ2FsbExpbmtJbmZvOjpsYXN0U2VlbkNhbGxl
ZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzRGlyZWN0KCkpOwotICAgIHJldHVybiBqc0Nh
c3Q8SlNGdW5jdGlvbio+KG1fbGFzdFNlZW5DYWxsZWVPckV4ZWN1dGFibGUuZ2V0KCkpOworICAg
IHJldHVybiBqc0Nhc3Q8SlNPYmplY3QqPihtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlLmdl
dCgpKTsKIH0KIAogYm9vbCBDYWxsTGlua0luZm86OmhhdmVMYXN0U2VlbkNhbGxlZSgpCkBAIC0y
MzUsMTQgKzIzNSwyMCBAQCB2b2lkIENhbGxMaW5rSW5mbzo6dmlzaXRXZWFrKFZNJiB2bSkKICAg
ICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJEdW1wKGNvZGVCbG9jaygpKSwgIikuXG4iKTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
IGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgZGF0YUxv
ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICJDbGVhcmluZyBjYWxsIHRvICIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBSYXdQb2ludGVyKGNhbGxlZSgpKSwgIiAoIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNhbGxlZSgpLT5leGVjdXRhYmxlKCktPmhhc2hGb3Ioc3BlY2lhbGl6YXRp
b25LaW5kKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgIikuXG4iKTsKKyAgICAgICAgICAg
ICAgICBpZiAoY2FsbGVlKCktPnR5cGUoKSA9PSBKU0Z1bmN0aW9uVHlwZSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBkYXRhTG9nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDbGVhcmluZyBj
YWxsIHRvICIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmF3UG9pbnRlcihjYWxsZWUo
KSksICIgKCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SlNGdW5j
dGlvbio+KGNhbGxlZSgpKS0+ZXhlY3V0YWJsZSgpLT5oYXNoRm9yKHNwZWNpYWxpemF0aW9uS2lu
ZCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKS5cbiIpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNwZWNpZmljQ2FsbGVlKHN0YXRp
Y19jYXN0PEpTRnVuY3Rpb24qPihjYWxsZWUoKSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDbGVhcmluZyBjYWxsIHRvICIsIFJhd1BvaW50ZXIo
Y2FsbGVlKCkpLCAiLlxuIik7CisgICAgICAgICAgICAgICAgICAgIG1fY2xlYXJlZEJ5R0MgPSB0
cnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBoYW5kbGVTcGVjaWZpY0Nh
bGxlZShjYWxsZWUoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB1bmxpbmsodm0pOwog
ICAgICAgICB9IGVsc2UgaWYgKGlzRGlyZWN0KCkgJiYgIUhlYXA6OmlzTWFya2VkKG1fbGFzdFNl
ZW5DYWxsZWVPckV4ZWN1dGFibGUuZ2V0KCkpKSB7CkBAIC0yNTgsNyArMjY0LDEwIEBAIHZvaWQg
Q2FsbExpbmtJbmZvOjp2aXNpdFdlYWsoVk0mIHZtKQogICAgICAgICB9CiAgICAgfQogICAgIGlm
ICghaXNEaXJlY3QoKSAmJiBoYXZlTGFzdFNlZW5DYWxsZWUoKSAmJiAhSGVhcDo6aXNNYXJrZWQo
bGFzdFNlZW5DYWxsZWUoKSkpIHsKLSAgICAgICAgaGFuZGxlU3BlY2lmaWNDYWxsZWUobGFzdFNl
ZW5DYWxsZWUoKSk7CisgICAgICAgIGlmIChsYXN0U2VlbkNhbGxlZSgpLT50eXBlKCkgPT0gSlNG
dW5jdGlvblR5cGUpCisgICAgICAgICAgICBoYW5kbGVTcGVjaWZpY0NhbGxlZShzdGF0aWNfY2Fz
dDxKU0Z1bmN0aW9uKj4obGFzdFNlZW5DYWxsZWUoKSkpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX2NsZWFyZWRCeUdDID0gdHJ1ZTsKICAgICAgICAgY2xlYXJMYXN0U2VlbkNhbGxlZSgp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
YWxsTGlua0luZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0lu
Zm8uaAppbmRleCA5MWQzZGQ4Zjc1YjEyMjgzZTBhYWRkNzg4ZTBmOTY3NTkwZjZkZTgxLi41YmMy
YzQ0ZjQ1ODQ4MjUwYjc4YTg4NTQwYTM4MGI4ZDAwNjAwOGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCkBAIC0xOTEsMTcgKzE5MSwxNyBAQCBj
bGFzcyBDYWxsTGlua0luZm8gOiBwdWJsaWMgQmFzaWNSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJ
bmZvPiB7CiAgICAgICAgIHJldHVybiBtX2hvdFBhdGhPdGhlcjsKICAgICB9CiAKLSAgICB2b2lk
IHNldENhbGxlZShWTSYsIEpTQ2VsbCosIEpTRnVuY3Rpb24qIGNhbGxlZSk7CisgICAgdm9pZCBz
ZXRDYWxsZWUoVk0mLCBKU0NlbGwqLCBKU09iamVjdCogY2FsbGVlKTsKICAgICB2b2lkIGNsZWFy
Q2FsbGVlKCk7Ci0gICAgSlNGdW5jdGlvbiogY2FsbGVlKCk7CisgICAgSlNPYmplY3QqIGNhbGxl
ZSgpOwogCiAgICAgdm9pZCBzZXRDb2RlQmxvY2soVk0mLCBKU0NlbGwqLCBGdW5jdGlvbkNvZGVC
bG9jayopOwogICAgIHZvaWQgY2xlYXJDb2RlQmxvY2soKTsKICAgICBGdW5jdGlvbkNvZGVCbG9j
ayogY29kZUJsb2NrKCk7CiAKLSAgICB2b2lkIHNldExhc3RTZWVuQ2FsbGVlKFZNJiB2bSwgY29u
c3QgSlNDZWxsKiBvd25lciwgSlNGdW5jdGlvbiogY2FsbGVlKTsKKyAgICB2b2lkIHNldExhc3RT
ZWVuQ2FsbGVlKFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNPYmplY3QqIGNhbGxlZSk7CiAg
ICAgdm9pZCBjbGVhckxhc3RTZWVuQ2FsbGVlKCk7Ci0gICAgSlNGdW5jdGlvbiogbGFzdFNlZW5D
YWxsZWUoKTsKKyAgICBKU09iamVjdCogbGFzdFNlZW5DYWxsZWUoKTsKICAgICBib29sIGhhdmVM
YXN0U2VlbkNhbGxlZSgpOwogICAgIAogICAgIHZvaWQgc2V0RXhlY3V0YWJsZUR1cmluZ0NvbXBp
bGF0aW9uKEV4ZWN1dGFibGVCYXNlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcAppbmRleCA1M2I4NGQ5YzAzN2UxN2Y2YWU5M2RjODU1
MTkyNzg4YjYzZTY3YWVhLi5mMjg0ZTMwMTY0YTAwYTU0NzExMDZjYjU4ZDk4ODAwMWJkMjY1ZWUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0
dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1
cy5jcHAKQEAgLTIxNSw3ICsyMTUsNyBAQCBDYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6
Y29tcHV0ZUZyb21DYWxsTGlua0luZm8oCiAgICAgCiAgICAgQ2FsbExpbmtTdGF0dXMgcmVzdWx0
OwogICAgIAotICAgIGlmIChKU0Z1bmN0aW9uKiB0YXJnZXQgPSBjYWxsTGlua0luZm8ubGFzdFNl
ZW5DYWxsZWUoKSkgeworICAgIGlmIChKU09iamVjdCogdGFyZ2V0ID0gY2FsbExpbmtJbmZvLmxh
c3RTZWVuQ2FsbGVlKCkpIHsKICAgICAgICAgQ2FsbFZhcmlhbnQgdmFyaWFudCh0YXJnZXQpOwog
ICAgICAgICBpZiAoY2FsbExpbmtJbmZvLmhhc1NlZW5DbG9zdXJlKCkpCiAgICAgICAgICAgICB2
YXJpYW50ID0gdmFyaWFudC5kZXNwZWNpZmllZENsb3N1cmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50Q2FsbExpbmtJbmZvLmgKaW5kZXggYzJjZjRkMWRj
MTViZjdmYTllMDg5MTg2MTZhYTUzYTAyNDkxNzFjZC4uOGQwYjg2MGVlZjI1YTU1MTFhYmRmZmQ2
MTgwODZmZmExODE0OGVhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0xMSW50Q2FsbExpbmtJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0xMSW50Q2FsbExpbmtJbmZvLmgKQEAgLTU0LDggKzU0LDggQEAgc3RydWN0IExMSW50Q2Fs
bExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VudGluZWxOb2RlPExMSW50Q2FsbExpbmtJbmZv
PiB7CiAgICAgICAgICAgICByZW1vdmUoKTsKICAgICB9CiAgICAgCi0gICAgV3JpdGVCYXJyaWVy
PEpTRnVuY3Rpb24+IGNhbGxlZTsKLSAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbGFzdFNl
ZW5DYWxsZWU7CisgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBjYWxsZWU7CisgICAgV3JpdGVC
YXJyaWVyPEpTT2JqZWN0PiBsYXN0U2VlbkNhbGxlZTsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgbWFjaGluZUNvZGVUYXJnZXQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAppbmRleCA0OGNiNmVkZWQzMDMwMTJhYmYwNzk0NWI5ZmQ1M2JhNDE3
NDBjNTgyLi4wMGQ2M2MxZTM1NDNjYWIyYWIyNTc1NThmZGNlMmRjODAwYTQ5MjI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTkzOSw5ICs5Mzks
MjIgQEAgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwo
RXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDYWxsTGkKICAgICBKU1ZhbHVlIGNhbGxlZUFzVmFsdWUg
PSBleGVjQ2FsbGVlLT5ndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgpOwogICAgIEpTQ2VsbCogY2Fs
bGVlQXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9uKGNhbGxlZUFzVmFsdWUpOwogICAgIGlm
ICghY2FsbGVlQXNGdW5jdGlvbkNlbGwpIHsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBj
YWNoZSB0aGVzZSBraW5kcyBvZiBjYWxscy4gVGhleSBjYW4gYmUgY29tbW9uIGFuZCBjdXJyZW50
bHkgdGhleSBhcmUKLSAgICAgICAgLy8gZXhwZW5zaXZlLgotICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0NDU4CisgICAgICAgIGlmIChjYWxsZWVB
c1ZhbHVlLmlzQ2VsbCgpICYmIGNhbGxlZUFzVmFsdWUuYXNDZWxsKCktPnR5cGUoKSA9PSBJbnRl
cm5hbEZ1bmN0aW9uVHlwZSkgeworICAgICAgICAgICAgLy8gRklYTUUhCisgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cjsKKyAgICAgICAgICAgIGlmIChraW5kID09IENv
ZGVGb3JDYWxsKQorICAgICAgICAgICAgICAgIGNvZGVQdHIgPSB2bS0+aml0U3R1YnMtPmN0aVN0
dWIodm0sIGludGVybmFsRnVuY3Rpb25DYWxsR2VuZXJhdG9yKS5jb2RlKCk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgY29kZVB0ciA9IHZtLT5qaXRTdHVicy0+Y3RpU3R1Yih2
bSwgaW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdEdlbmVyYXRvcikuY29kZSgpOworICAgICAgICAg
ICAgQVNTRVJUKCEhY29kZVB0cik7CisKKyAgICAgICAgICAgIGlmICghY2FsbExpbmtJbmZvLT5z
ZWVuT25jZSgpKQorICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+c2V0U2VlbigpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxpbmtGb3IoZXhlY0NhbGxlZSwgKmNhbGxM
aW5rSW5mbywgbnVsbHB0ciwgYXNPYmplY3QoY2FsbGVlQXNWYWx1ZSksIGNvZGVQdHIpOworCisg
ICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3Mo
KSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY2FsbExpbmtJbmZvLT5jYWxsTW9kZSgpID09IENh
bGxNb2RlOjpUYWlsID8gUmV1c2VUaGVGcmFtZSA6IEtlZXBUaGVGcmFtZSkpOworICAgICAgICB9
CiAgICAgICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gaGFuZGxlSG9z
dENhbGwoZXhlY0NhbGxlZSwgY2FsbGVlQXNWYWx1ZSwgY2FsbExpbmtJbmZvKTsKICAgICB9CkBA
IC05NTEsNyArOTY0LDcgQEAgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTGlua0NhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDYWxsTGkKICAgICBFeGVjdXRhYmxl
QmFzZSogZXhlY3V0YWJsZSA9IGNhbGxlZS0+ZXhlY3V0YWJsZSgpOwogCiAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGNvZGVQdHI7Ci0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwOworICAg
IENvZGVCbG9jayogY29kZUJsb2NrID0gbnVsbHB0cjsKICAgICBpZiAoZXhlY3V0YWJsZS0+aXNI
b3N0RnVuY3Rpb24oKSkgewogICAgICAgICBjb2RlUHRyID0gZXhlY3V0YWJsZS0+ZW50cnlwb2lu
dEZvcihraW5kLCBNdXN0Q2hlY2tBcml0eSk7CiAgICAgfSBlbHNlIHsKQEAgLTEwNTMsNiArMTA2
NiwxNiBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24o
CiAgICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFs
dWVDYWxsZWUoKTsKICAgICBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCA9IGdldEpTRnVuY3Rpb24oY2Fs
bGVlQXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkpIHsK
KyAgICAgICAgaWYgKGNhbGxlZUFzVmFsdWUuaXNDZWxsKCkgJiYgY2FsbGVlQXNWYWx1ZS5hc0Nl
bGwoKS0+dHlwZSgpID09IEludGVybmFsRnVuY3Rpb25UeXBlKSB7CisgICAgICAgICAgICAvLyBG
SVhNRSEKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyOworICAgICAg
ICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCisgICAgICAgICAgICAgICAgY29kZVB0ciA9
IHZtLT5qaXRTdHVicy0+Y3RpU3R1Yih2bSwgaW50ZXJuYWxGdW5jdGlvbkNhbGxHZW5lcmF0b3Ip
LmNvZGUoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjb2RlUHRyID0gdm0t
PmppdFN0dWJzLT5jdGlTdHViKHZtLCBpbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0R2VuZXJhdG9y
KS5jb2RlKCk7CisgICAgICAgICAgICBBU1NFUlQoISFjb2RlUHRyKTsKKyAgICAgICAgICAgIHJl
dHVybiBlbmNvZGVSZXN1bHQoY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpLCByZWludGVycHJl
dF9jYXN0PHZvaWQqPihjYWxsTGlua0luZm8tPmNhbGxNb2RlKCkgPT0gQ2FsbE1vZGU6OlRhaWwg
PyBSZXVzZVRoZUZyYW1lIDogS2VlcFRoZUZyYW1lKSk7CisgICAgICAgIH0KICAgICAgICAgdGhy
b3dTY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBoYW5kbGVIb3N0Q2FsbChleGVjQ2Fs
bGVlLCBjYWxsZWVBc1ZhbHVlLCBjYWxsTGlua0luZm8pOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlcGF0Y2guY3BwCmluZGV4IGQ3OWFjNmQ4ODA3MzE3ZWIxYjc5Mjc1Y2I3MzAwOThm
NGU5Y2JlMjIuLjUyODBiM2QzZjE1Y2I4NjI3Zjk1YThmOWVlY2VkMTQ2ZGE1YjQzMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcApAQCAtNjkyLDcgKzY5Miw3IEBAIHN0YXRp
YyBKU0NlbGwqIHdlYkFzc2VtYmx5T3duZXIoSlNDZWxsKiBjYWxsZWUpCiAKIHZvaWQgbGlua0Zv
cigKICAgICBFeGVjU3RhdGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2Rl
QmxvY2sqIGNhbGxlZUNvZGVCbG9jaywKLSAgICBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjb2RlUHRyKQorICAgIEpTT2JqZWN0KiBjYWxsZWUsIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjb2RlUHRyKQogewogICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLnN0dWIoKSk7
CiAKQEAgLTgzOSw3ICs4MzksNyBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAgICAgQ2Fs
bFZhcmlhbnRMaXN0IGxpc3Q7CiAgICAgaWYgKFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKiBz
dHViID0gY2FsbExpbmtJbmZvLnN0dWIoKSkKICAgICAgICAgbGlzdCA9IHN0dWItPnZhcmlhbnRz
KCk7Ci0gICAgZWxzZSBpZiAoSlNGdW5jdGlvbiogb2xkQ2FsbGVlID0gY2FsbExpbmtJbmZvLmNh
bGxlZSgpKQorICAgIGVsc2UgaWYgKEpTT2JqZWN0KiBvbGRDYWxsZWUgPSBjYWxsTGlua0luZm8u
Y2FsbGVlKCkpCiAgICAgICAgIGxpc3QgPSBDYWxsVmFyaWFudExpc3R7IENhbGxWYXJpYW50KG9s
ZENhbGxlZSkgfTsKICAgICAKICAgICBsaXN0ID0gdmFyaWFudExpc3RXaXRoVmFyaWFudChsaXN0
LCBuZXdWYXJpYW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVw
YXRjaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKaW5kZXggZTI5NzVi
OTFjMWQ5Y2U4OGY2MmMwMzcxMzg5ZTlmNmEyMGIzMWEyOS4uMTliMWY1ZmVmMGM5MThiNDg1ZDgz
ZDQyODM3MTdhOWQxY2M5NDA0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZXBhdGNoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKQEAg
LTQ0LDcgKzQ0LDcgQEAgdm9pZCBidWlsZEdldEJ5SURQcm90b0xpc3QoRXhlY1N0YXRlKiwgSlNW
YWx1ZSwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnQKIHZvaWQgcmVwYXRjaFB1dEJ5
SUQoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYsIGNv
bnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lk
IGJ1aWxkUHV0QnlJZExpc3QoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgU3RydWN0dXJlKiwgY29uc3Qg
SWRlbnRpZmllciYsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwg
UHV0S2luZCk7CiB2b2lkIHJlcGF0Y2hJbihFeGVjU3RhdGUqLCBKU0NlbGwqLCBjb25zdCBJZGVu
dGlmaWVyJiwgYm9vbCB3YXNGb3VuZCwgY29uc3QgUHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1
YkluZm8mKTsKLXZvaWQgbGlua0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxv
Y2sqLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0cik7Cit2b2lkIGxp
bmtGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgSlNPYmplY3QqIGNh
bGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKTsKIHZvaWQgbGlua0RpcmVjdEZvcihFeGVjU3Rh
dGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIpOwog
dm9pZCBsaW5rU2xvd0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mKTsKIHZvaWQgdW5saW5r
Rm9yKFZNJiwgQ2FsbExpbmtJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Ro
dW5rR2VuZXJhdG9ycy5jcHAKaW5kZXggZmI4N2UwMGYxOTkzYWY3ZTdjMjAzMDQwMjM0Nzc1NWE1
YWYxZjY5ZS4uNjIxZTZkYWNlZjY4MjVjMzFiZmM1ODJhMmQ1MmYwODY2NTViZTUzYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMTk4LDYg
KzE5OCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsVGh1bmtGb3IoVk0qIHZtLCBD
YWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAjZW5kaWYKICAgICBzbG93Q2FzZS5hcHBl
bmQoaml0LmJyYW5jaElmTm90VHlwZShHUFJJbmZvOjpyZWdUMCwgSlNGdW5jdGlvblR5cGUpKTsK
KyAgICAvLyBGSVhNRTogSGFuZGxlIEludGVybmFsRnVuY3Rpb24uCiAgICAgCiAgICAgLy8gTm93
IHdlIGtub3cgd2UgaGF2ZSBhIEpTRnVuY3Rpb24uCiAgICAgCkBAIC0yMzYsOCArMjM3LDkgQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENhbGxMaW5rSW5m
byYgY2FsbExpbmtJbmZvKQogfQogCiBlbnVtIFRodW5rRW50cnlUeXBlIHsgRW50ZXJWaWFDYWxs
LCBFbnRlclZpYUp1bXBXaXRoU2F2ZWRUYWdzLCBFbnRlclZpYUp1bXBXaXRob3V0U2F2ZWRUYWdz
IH07CitlbnVtIGNsYXNzIFRodW5rRnVuY3Rpb25UeXBlIHsgSlNGdW5jdGlvbiwgSW50ZXJuYWxG
dW5jdGlvbiB9OwogCi1zdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVy
YXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgVGh1bmtFbnRyeVR5cGUg
ZW50cnlUeXBlID0gRW50ZXJWaWFDYWxsKQorc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBu
YXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBUaHVua0Z1bmN0aW9uVHlwZSB0aHVua0Z1bmN0aW9u
VHlwZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBUaHVua0VudHJ5VHlwZSBlbnRyeVR5
cGUgPSBFbnRlclZpYUNhbGwpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGFibGUg
dG8gbG9nIFNoYWRvd0NoaWNrZW4gcHJvbG9ndWUgcGFja2V0cy4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1Njg5CkBAIC0yNzksOCArMjgxLDExIEBA
IHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwg
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAKICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgogICAg
IGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihDYWxsRnJhbWVTbG90OjpjYWxsZWUs
IEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6
OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1
dGFibGUoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmNhbGwoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBleGVjdXRhYmxlT2Zmc2V0VG9G
dW5jdGlvbikpOworICAgIGlmICh0aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0aW9uVHlw
ZTo6SlNGdW5jdGlvbikgeworICAgICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRk
cmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJs
ZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBleGVjdXRhYmxlT2Zmc2V0VG9G
dW5jdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEludGVybmFsRnVuY3Rpb246Om9mZnNldE9m
TmF0aXZlRnVuY3Rpb25Gb3Ioa2luZCkpKTsKIAogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKIApAQCAtMjkxLDggKzI5NiwxMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5h
dGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQgawogICAgIGpp
dC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjpl
ZGkpOwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplc2kpOwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJm
YWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNpLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4
ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOwotICAgIGppdC5jYWxsKEpTSW50ZXJmYWNl
SklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9u
KSk7CisgICAgaWYgKHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1
bmN0aW9uKSB7CisgICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4
NlJlZ2lzdGVyczo6ZXNpLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJl
Z2lzdGVyczo6cjkpOworICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhY
ODZSZWdpc3RlcnM6OnI5LCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIH0gZWxz
ZQorICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6
OmVzaSwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkp
OwogCiAjZWxzZQogICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAgICBmKGVjeCwgZWR4LCBy
OCwgcjksIC4uLik7CkBAIC0zMDQsOCArMzEyLDExIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBr
CiAgICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2Yo
aW50NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCiAgICAg
aml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwg
WDg2UmVnaXN0ZXJzOjplZHgpOwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRy
ZXNzKFg4NlJlZ2lzdGVyczo6ZWR4LCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSks
IFg4NlJlZ2lzdGVyczo6cjkpOwotICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNz
KFg4NlJlZ2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgaWYg
KHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uKSB7Cisg
ICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6
ZWR4LCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkp
OworICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6
OnI5LCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBq
aXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVkeCwgSW50ZXJu
YWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogCiAgICAgaml0
LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2YoaW50NjRfdCkp
LCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2VuZGlmCkBAIC0zMTks
OCArMzMwLDExIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJh
dG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0Lm1vdmUoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6eDApOwogCiAgICAg
aml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwg
QVJNNjRSZWdpc3RlcnM6OngxKTsKLSAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRk
cmVzcyhBUk02NFJlZ2lzdGVyczo6eDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgp
KSwgQVJNNjRSZWdpc3RlcnM6OngyKTsKLSAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRk
cmVzcyhBUk02NFJlZ2lzdGVyczo6eDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7Cisg
ICAgaWYgKHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9u
KSB7CisgICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0UmVn
aXN0ZXJzOjp4MSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBBUk02NFJlZ2lz
dGVyczo6eDIpOworICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhBUk02
NFJlZ2lzdGVyczo6eDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgfSBlbHNl
CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJz
Ojp4MSwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkp
OwogI2VsaWYgQ1BVKEFSTSkgfHwgQ1BVKE1JUFMpCiAjaWYgQ1BVKE1JUFMpCiAgICAgLy8gQWxs
b2NhdGUgc3RhY2sgc3BhY2UgZm9yICh1bnVzZWQpIDE2IGJ5dGVzICg4LWJ5dGUgYWxpZ25lZCkg
Zm9yIDQgYXJndW1lbnRzLgpAQCAtMzMyLDggKzM0NiwxMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktp
bmQgawogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJ
bnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMCk7CiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlLCBKU0ludGVyZmFjZUpJVDo6YXJndW1l
bnRHUFIxKTsKLSAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVy
ZmFjZUpJVDo6YXJndW1lbnRHUFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSks
IEpTSW50ZXJmYWNlSklUOjpyZWdUMik7Ci0gICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFk
ZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikp
OworICAgIGlmICh0aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5j
dGlvbikgeworICAgICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0lu
dGVyZmFjZUpJVDo6YXJndW1lbnRHUFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUo
KSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNl
SklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMiwgZXhlY3V0YWJsZU9mZnNldFRvRnVu
Y3Rpb24pKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFk
ZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMSwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zm
c2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogCiAjaWYgQ1BVKE1JUFMpCiAgICAgLy8g
UmVzdG9yZSBzdGFjayBzcGFjZQpAQCAtMzg4LDI3ICs0MDUsNDcgQEAgc3RhdGljIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGsKICAgICBqaXQuanVtcFRvRXhjZXB0aW9uSGFuZGxlcigqdm0pOwogCiAgICAgTGlu
a0J1ZmZlciBwYXRjaEJ1ZmZlcihqaXQsIEdMT0JBTF9USFVOS19JRCk7Ci0gICAgcmV0dXJuIEZJ
TkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgibmF0aXZlICVzJXMgdHJhbXBvbGluZSIsIGVudHJ5
VHlwZSA9PSBFbnRlclZpYUp1bXBXaXRoU2F2ZWRUYWdzID8gIlRhaWwgV2l0aCBTYXZlZCBUYWdz
ICIgOiBlbnRyeVR5cGUgPT0gRW50ZXJWaWFKdW1wV2l0aG91dFNhdmVkVGFncyA/ICJUYWlsIFdp
dGhvdXQgU2F2ZWQgVGFncyAiIDogIiIsIHRvQ1N0cmluZyhraW5kKS5kYXRhKCkpKTsKKyAgICBy
ZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgKCIlcyAlcyVzIHRyYW1wb2xpbmUiLCB0
aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiA/ICJuYXRp
dmUiIDogImludGVybmFsIiwgZW50cnlUeXBlID09IEVudGVyVmlhSnVtcFdpdGhTYXZlZFRhZ3Mg
PyAiVGFpbCBXaXRoIFNhdmVkIFRhZ3MgIiA6IGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1bXBXaXRo
b3V0U2F2ZWRUYWdzID8gIlRhaWwgV2l0aG91dCBTYXZlZCBUYWdzICIgOiAiIiwgdG9DU3RyaW5n
KGtpbmQpLmRhdGEoKSkpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ2FsbEdl
bmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgQ29k
ZUZvckNhbGwpOworICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rp
b25UeXBlOjpKU0Z1bmN0aW9uLCBDb2RlRm9yQ2FsbCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBuYXRpdmVUYWlsQ2FsbEdlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIG5hdGl2
ZUZvckdlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwsIEVudGVyVmlhSnVtcFdpdGhTYXZlZFRhZ3Mp
OworICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpK
U0Z1bmN0aW9uLCBDb2RlRm9yQ2FsbCwgRW50ZXJWaWFKdW1wV2l0aFNhdmVkVGFncyk7CiB9CiAK
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5l
cmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVG
b3JDYWxsLCBFbnRlclZpYUp1bXBXaXRob3V0U2F2ZWRUYWdzKTsKKyAgICByZXR1cm4gbmF0aXZl
Rm9yR2VuZXJhdG9yKHZtLCBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiwgQ29kZUZvckNh
bGwsIEVudGVyVmlhSnVtcFdpdGhvdXRTYXZlZFRhZ3MpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgbmF0aXZlQ29uc3RydWN0R2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbmF0
aXZlRm9yR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gbmF0aXZl
Rm9yR2VuZXJhdG9yKHZtLCBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiwgQ29kZUZvckNv
bnN0cnVjdCk7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBpbnRlcm5hbEZ1bmN0aW9uQ2Fs
bEdlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwg
VGh1bmtGdW5jdGlvblR5cGU6OkludGVybmFsRnVuY3Rpb24sIENvZGVGb3JDYWxsKTsKK30KKwor
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVuY3Rpb25UYWlsQ2FsbEdlbmVyYXRvcihW
TSogdm0pCit7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgVGh1bmtGdW5jdGlv
blR5cGU6OkludGVybmFsRnVuY3Rpb24sIENvZGVGb3JDYWxsLCBFbnRlclZpYUp1bXBXaXRoU2F2
ZWRUYWdzKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVuY3Rpb25UYWls
Q2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBuYXRp
dmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpJbnRlcm5hbEZ1bmN0aW9uLCBD
b2RlRm9yQ2FsbCwgRW50ZXJWaWFKdW1wV2l0aG91dFNhdmVkVGFncyk7Cit9CisKK01hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBpbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0R2VuZXJhdG9yKFZNKiB2bSkK
K3sKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBUaHVua0Z1bmN0aW9uVHlwZTo6
SW50ZXJuYWxGdW5jdGlvbiwgQ29kZUZvckNvbnN0cnVjdCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBhcml0eUZpeHVwR2VuZXJhdG9yKFZNKiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCmluZGV4IGMwNDNkNDE4N2IwZjViNDZiMGYyY2Y3ZTg2
NjgyNDg2NjU0Y2ZjZmMuLjkzZDU1YjU1YzlmM2U4MjAzMmYyY2FlOTBiYjUyYTlhZWFkMGNjYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaApAQCAtNDYs
NiArNDYsMTAgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNhbGxHZW5lcmF0b3IoVk0q
KTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IoVk0qKTsK
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2FsbEdlbmVyYXRvcihWTSopOwogTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFnc0dlbmVyYXRv
cihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVuY3Rpb25DYWxsR2VuZXJh
dG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgaW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVj
dEdlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVuY3Rpb25U
YWlsQ2FsbEdlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVu
Y3Rpb25UYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBhcml0eUZpeHVwR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgdW5yZWFjaGFibGVHZW5lcmF0b3IoVk0qKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggNTRjZWEzMmY1NzZkN2FjZWM2YWEyMWZm
MTJlYTNmYWUxNDFjM2U0Ny4uODVmMjMxNDc3MTk4OTQxMGFlYjBkY2UwNzA2YzM3OTYzOTUwMDZi
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
CkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAi
U2hhZG93Q2hpY2tlbi5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgor
I2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1ZGUgIlZNSW5saW5lcy5oIgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0
cmVhbS5oPgpAQCAtMTM1MCw2ICsxMzUxLDMwIEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUg
c2V0VXBDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgSW5zdHJ1Y3Rpb24qIHBjLCBDb2RlCiAg
ICAgCiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCA9IGdldEpTRnVuY3Rpb24oY2Fs
bGVlQXNWYWx1ZSk7CiAgICAgaWYgKCFjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkgeworICAgICAgICBp
ZiAoY2FsbGVlQXNWYWx1ZS5pc0NlbGwoKSAmJiBjYWxsZWVBc1ZhbHVlLmFzQ2VsbCgpLT50eXBl
KCkgPT0gSW50ZXJuYWxGdW5jdGlvblR5cGUpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FIQorICAg
ICAgICAgICAgYXV0byogaW50ZXJuYWxGdW5jdGlvbiA9IGpzQ2FzdDxJbnRlcm5hbEZ1bmN0aW9u
Kj4oY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKSk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY29kZVB0cjsKKyAgICAgICAgICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKQorICAg
ICAgICAgICAgICAgIGNvZGVQdHIgPSB2bS5qaXRTdHVicy0+Y3RpU3R1Yigmdm0sIGludGVybmFs
RnVuY3Rpb25DYWxsR2VuZXJhdG9yKS5jb2RlKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgY29kZVB0ciA9IHZtLmppdFN0dWJzLT5jdGlTdHViKCZ2bSwgaW50ZXJuYWxGdW5j
dGlvbkNvbnN0cnVjdEdlbmVyYXRvcikuY29kZSgpOworICAgICAgICAgICAgQVNTRVJUKCEhY29k
ZVB0cik7CisKKyAgICAgICAgICAgIGlmICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9XICYmIGNh
bGxMaW5rSW5mbykgeworICAgICAgICAgICAgICAgIENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2Nr
ID0gZXhlYy0+Y29kZUJsb2NrKCk7CisKKyAgICAgICAgICAgICAgICBDb25jdXJyZW50SlNMb2Nr
ZXIgbG9ja2VyKGNhbGxlckNvZGVCbG9jay0+bV9sb2NrKTsKKworICAgICAgICAgICAgICAgIGlm
IChjYWxsTGlua0luZm8tPmlzT25MaXN0KCkpCisgICAgICAgICAgICAgICAgICAgIGNhbGxMaW5r
SW5mby0+cmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5jYWxsZWUuc2V0
KHZtLCBjYWxsZXJDb2RlQmxvY2ssIGludGVybmFsRnVuY3Rpb24pOworICAgICAgICAgICAgICAg
IGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuc2V0KHZtLCBjYWxsZXJDb2RlQmxvY2ssIGlu
dGVybmFsRnVuY3Rpb24pOworICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+bWFjaGluZUNv
ZGVUYXJnZXQgPSBjb2RlUHRyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBMTElOVF9D
QUxMX1JFVFVSTihleGVjLCBleGVjQ2FsbGVlLCBjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkp
OworICAgICAgICB9CiAgICAgICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1
cm4gaGFuZGxlSG9zdENhbGwoZXhlY0NhbGxlZSwgcGMsIGNhbGxlZUFzVmFsdWUsIGtpbmQpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggODIzMzY4Mzg0MzIxNmIzMGJmOTc0MjZkYTk0ODgwMjM2MGI5YzUwYy4u
NGQ4OWFjYWIzYmQ1Yzk4OTU5ZGNhMjA5OThhZWQwNzhmODA0MzQ3OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTUwLDgg
KzUwLDExIEBAIGNvbnN0IENsYXNzSW5mbyBBcnJheUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJG
dW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luCiBAZW5kCiAqLwogCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
KTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhBcnJh
eUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworCiBBcnJheUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0
cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0
aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUs
IGNhbGxBcnJheUNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3RvcikKIHsK
IH0KIApAQCAtMTAwLDI1ICsxMDMsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGUKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhleGVjLCBh
cmdzLCBleGVjLT5uZXdUYXJnZXQoKSkpOwogfQogCi1Db25zdHJ1Y3RUeXBlIEFycmF5Q29uc3Ry
dWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0
RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdp
dGhBcnJheUNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQot
CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKGV4ZWMsIGFyZ3Ms
IEpTVmFsdWUoKSkpOwogfQogCi1DYWxsVHlwZSBBcnJheUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0
YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgLy8gZXF1aXZhbGVudCB0byAn
bmV3IEFycmF5KC4uLi4pJwotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxBcnJh
eUNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogc3RhdGljIEFM
V0FZU19JTkxJTkUgYm9vbCBpc0FycmF5U2xvd0lubGluZShFeGVjU3RhdGUqIGV4ZWMsIFByb3h5
T2JqZWN0KiBwcm94eSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IDE1ODQ4ODVk
MGNkZTYwODcyN2RjNThkZDZkNzIwZmFjNDNhZDhjMTMuLjYxNjUyYWE3ZjNkYzMzYzVmODlmYTY2
MTUzYWI5YzNjMzk1Zjk1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUNvbnN0cnVjdG9yLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgQXJyYXlDb25zdHJ1
Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJvdGVjdGVkOgpAQCAtNTQsOSAr
NTQsNiBAQCBjbGFzcyBBcnJheUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogCiBwcml2YXRlOgogICAgIEFycmF5Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLQot
ICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3Ry
dWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYpOwogfTsKIAogSlNWYWx1ZSBjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoRXhlY1N0
YXRlKiwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBs
ZW5ndGgsIEpTVmFsdWUgcHJvdG90eXBlID0gSlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuY3Bw
CmluZGV4IDUyNzI4Zjk0OWQ5MmMzYmUyYjZhOWE5NGI3NDljOWJhMjZhZGQzYmEuLmQwZTliZDc0
ZmExN2UzODUwMjQzMzc0MzA0OTFhMzA1YTkyMzY0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApA
QCAtMzYsMTggKzM2LDYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxF
KEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBBc3luY0Z1bmN0
aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkFzeW5jRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFzeW5jRnVuY3Rpb25Db25z
dHJ1Y3RvcikgfTsKIAotQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpBc3luY0Z1bmN0aW9uQ29u
c3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVu
Y3Rpb24odm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBBc3luY0Z1bmN0aW9uQ29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQXN5bmNGdW5jdGlvblByb3RvdHlwZSogcHJvdG90
eXBlKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiQXN5bmNGdW5jdGlvbiIpOwot
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90
b3R5cGUsIHByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgs
IGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pOwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBB
cmdMaXN0IGFyZ3MoZXhlYyk7CkBAIC02MCwxNiArNDgsMTYgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMs
IGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFy
Z3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6QXN5bmMpKTsKIH0KIAotQ2FsbFR5cGUgQXN5
bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2Fs
bERhdGEpCitBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rv
cihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlLCBjYWxsQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RBc3lu
Y0Z1bmN0aW9uQ29uc3RydWN0b3IpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y2FsbEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
CiB9CiAKLUNvbnN0cnVjdFR5cGUgQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCit2b2lkIEFzeW5j
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBBc3luY0Z1bmN0aW9u
UHJvdG90eXBlKiBwcm90b3R5cGUpCiB7Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjb25zdHJ1Y3RBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0
cnVjdFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sICJBc3luY0Z1bmN0
aW9uIik7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
Pmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuaAppbmRleCAwMzVhMmMxZTRmOTE1Y2FjMGI0YjE3NzNlNmQwNTg5ZTI3NDc0N2Q0Li4w
M2VmZGJhMmUwMTk3NmRkNzAzMDA5NzY4OTRiNjNhNzY3N2I5ODcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3Iu
aApAQCAtNDYsMTQgKzQ2LDEyIEBAIGNsYXNzIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvciA6IHB1
YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBBc3luY0Z1bmN0aW9uQ29u
c3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwg
QXN5bmNGdW5jdGlvblByb3RvdHlwZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENv
bnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlw
ZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBhYWE2YTFmNGY3
Y2NlNTJkOWMxYWI2NzhlOWQ5MjU3N2QxYjBiMzZiLi5jNTM0MTkwOGU5NWRjZDMyMjJmMGY4ZWU2
OGM0MWE3MDM0MzU1ZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAK
QEAgLTM2LDIwICszNiw2IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJM
RShBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8g
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJBc3luY0dlbmVy
YXRvckZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpIH07CiAKLUFzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0
aW9uKHZtLCBzdHJ1Y3R1cmUpCi17Ci19Ci0KLXZvaWQgQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Q
cm90b3R5cGUqIHByb3RvdHlwZSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgIkFz
eW5jR2VuZXJhdG9yRnVuY3Rpb24iKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5KTsKLQotICAgIC8vIE51bWJlciBvZiBhcmd1bWVudHMgZm9yIGNv
bnN0cnVjdG9yCi0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7Ci19Ci0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKQEAgLTYyLDE2ICs0OCwx
OCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBc3luY0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoRQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y29uc3RydWN0RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVl
KCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpBc3lu
Y0dlbmVyYXRvcikpOwogfQogCi1DYWxsVHlwZSBBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK0FzeW5jR2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVj
dG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9u
KHZtLCBzdHJ1Y3R1cmUsIGNhbGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IsIGNv
bnN0cnVjdEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcikKIHsKLSAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9y
OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKIH0KIAotQ29uc3RydWN0VHlwZSBBc3luY0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29u
c3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKK3ZvaWQgQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Q
cm90b3R5cGUqIHByb3RvdHlwZSkKIHsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNvbnN0cnVjdEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1
cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgIkFz
eW5jR2VuZXJhdG9yRnVuY3Rpb24iKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5KTsKKworICAgIC8vIE51bWJlciBvZiBhcmd1bWVudHMgZm9yIGNv
bnN0cnVjdG9yCisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaAppbmRleCBiOGYxNTBiNTllZTdjMzk0YjFi
ODE0Y2U2ZWFkYjNlNGQ3ODYwYzYxLi5iYzQ0YWM2YjZhMzAyMDM3ZGMyNmEzZTcwNGRjNjU4MjZj
MjQ4N2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaApAQCAtNDYsMTQgKzQ2
LDEyIEBAIGNsYXNzIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvciA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBBc3luY0dlbmVyYXRvckZ1bmN0aW9u
Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
JiwgQXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSopOwotICAgIHN0YXRpYyBDb25zdHJ1
Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0
YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhbkNvbnN0cnVjdG9yLmNwcAppbmRleCA2N2EwMTVhYjNlMWE3OGEyYWQyNjg1NzgzYTYz
OGZlZmNiYWM3MTkxLi5mMGFiMDQyNTNlOTMzNTAxYWFhY2JhOGIxNjNkYzM1M2Y4Y2U2NmQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1
Y3Rvci5jcHAKQEAgLTMxLDE2ICszMSwxMCBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9E
RVNUUlVDVElCTEUoQm9vbGVhbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEJvb2xl
YW5Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEJvb2xlYW5Db25zdHJ1Y3RvcikgfTsK
IAotQm9vbGVhbkNvbnN0cnVjdG9yOjpCb29sZWFuQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKLXsK
LX0KLQotdm9pZCBCb29sZWFuQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQm9v
bGVhblByb3RvdHlwZSogYm9vbGVhblByb3RvdHlwZSkKKy8vIEVDTUEgMTUuNi4xCitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgYm9vbGVhblByb3Rv
dHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgYm9vbGVhblByb3RvdHlwZSwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGV4ZWMtPmFyZ3VtZW50KDApLnRv
Qm9vbGVhbihleGVjKSkpOwogfQogCiAvLyBFQ01BIDE1LjYuMgpAQCAtNTYsMjIgKzUwLDE2IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhCb29sZWFu
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmop
OwogfQogCi1Db25zdHJ1Y3RUeXBlIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQorQm9vbGVhbkNvbnN0cnVj
dG9yOjpCb29sZWFuQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAg
ICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEJvb2xlYW5Db25zdHJ1Y3Rv
ciwgY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3RvcikKIHsKLSAgICBjb25zdHJ1Y3REYXRh
Lm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhCb29sZWFuQ29uc3RydWN0b3I7Ci0gICAg
cmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7CiB9CiAKLS8vIEVDTUEgMTUuNi4xCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYykKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihleGVj
LT5hcmd1bWVudCgwKS50b0Jvb2xlYW4oZXhlYykpKTsKLX0KLQotQ2FsbFR5cGUgQm9vbGVhbkNv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCit2b2lk
IEJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBCb29sZWFuUHJvdG90
eXBlKiBib29sZWFuUHJvdG90eXBlKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNhbGxCb29sZWFuQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OworICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBib29sZWFuUHJvdG90eXBlLT5jbGFzc0luZm8oKS0+
Y2xhc3NOYW1lKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+cHJvdG90eXBlLCBib29sZWFuUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIEpTT2JqZWN0KiBjb25z
dHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGltbWVkaWF0ZUJvb2xlYW5WYWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgK
aW5kZXggYmI4YzVkZjJiNTRkYzA2OGI5MzQxZTFiNzc1ZDUxOTMzMGViOWM5My4uMzZlY2M5ZjRk
YmIxODBlNTc5MDg3YjI4MTZkY2YxN2U4NmQyZWIzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgKQEAgLTQyLDcgKzQyLDcgQEAg
Y2xhc3MgQm9vbGVhbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsgCi0gICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0K
IAogcHJvdGVjdGVkOgpAQCAtNTAsOCArNTAsNiBAQCBjbGFzcyBCb29sZWFuQ29uc3RydWN0b3Ig
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgQm9vbGVhbkNvbnN0
cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBl
IGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBKU09iamVjdCogY29uc3Ry
dWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KiwgSlNWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNv
bnN0cnVjdG9yLmNwcAppbmRleCBiMmYyOWNmZDllNzc5M2ZhNjNlNjA5ZTMxYWIwZTQ4OTU3Y2E2
N2ZkLi42Nzk5NjVjYWM1YWEyOTE0MzUyNGRkMzk3NjhjYjhkNzJhOGIzMmEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTY4
LDggKzY4LDExIEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mCiAKIFNUQVRJQ19BU1NFUlRfSVNf
VFJJVklBTExZX0RFU1RSVUNUSUJMRShEYXRlQ29uc3RydWN0b3IpOwogCitzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKik7CisKIERhdGVDb25zdHJ1Y3Rvcjo6RGF0ZUNvbnN0cnVjdG9yKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUp
CisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxEYXRlLCBjb25zdHJ1
Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKQogewogfQogCkBAIC0xNTMsMTIgKzE1Niw2IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RE
YXRlKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2Jq
ZWN0KCksIGV4ZWMtPm5ld1RhcmdldCgpLCBhcmdzKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgRGF0
ZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNv
bnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25z
dHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0
OwotfQotCiAvLyBFQ01BIDE1LjkuMgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbERhdGUoRXhlY1N0YXRlKiBleGVjKQogewpAQCAtMTY4LDEyICsxNjUsNiBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBmb3Jt
YXREYXRlVGltZSh0cywgRGF0ZVRpbWVGb3JtYXREYXRlQW5kVGltZSwgZmFsc2UpKSk7CiB9CiAK
LUNhbGxUeXBlIERhdGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
IGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxEYXRlOwot
ICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBkYXRlUGFyc2UoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3Ry
dWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5o
CmluZGV4IGZjZWE1NWY4ZGY2YjAwMWEwOTE5YzAyYzJiMGEyODJhNmY1YTBjYzMuLjMwN2M2ZDU1
NGIxYjQyYTNmMDBiY2RmZGE3NjJhYjQ5MWE1MDIyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNz
IERhdGVDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1
bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJvdGVjdGVk
OgpAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBEYXRlQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgRGF0ZUNvbnN0cnVjdG9yKFZNJiwgU3RydWN0
dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwq
LCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJik7CiB9OwogCiBKU09iamVjdCogY29uc3RydWN0RGF0ZShFeGVjU3RhdGUq
LCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgbmV3VGFyZ2V0LCBjb25zdCBBcmdMaXN0Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAppbmRleCA5MDY3MWQ1N2EzNGNjZDZiMGM4
NmU5Y2U3ODExODRlODRhNDFmM2I2Li40ZmFlZDM3N2EwYmQyYjJiNzM0ZmVhNWMzNTBkNDg5MjMy
M2I5ZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKQEAgLTEwNiw3ICsx
MDYsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTURPTUF0dHJpYnV0ZUdldHRlclR5
cGVFcnJvcihFeGVjU3RhdGUqIHN0YXRlLCBUaHJvdwogY2xhc3MgU3RyaWN0TW9kZVR5cGVFcnJv
ckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHJpdmF0ZToKICAgICBTdHJp
Y3RNb2RlVHlwZUVycm9yRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVj
dHVyZSkKKyAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxUaHJv
d1R5cGVFcnJvciwgY29uc3RydWN0VGhyb3dUeXBlRXJyb3IpCiAgICAgICAgICwgbV9tZXNzYWdl
KG1lc3NhZ2UpCiAgICAgewogICAgIH0KQEAgLTEzMSwxMiArMTMxLDYgQEAgY2xhc3MgU3RyaWN0
TW9kZVR5cGVFcnJvckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKICAgICB9CiAKLSAgICBzdGF0aWMg
Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNv
bnN0cnVjdERhdGEpCi0gICAgewotICAgICAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNvbnN0cnVjdFRocm93VHlwZUVycm9yOwotICAgICAgICByZXR1cm4gQ29uc3RydWN0VHlw
ZTo6SG9zdDsKLSAgICB9Ci0KICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsVGhyb3dUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHsKICAgICAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKQEAgLTE0NSwxNyArMTM5LDExIEBAIGNsYXNzIFN0cmljdE1vZGVU
eXBlRXJyb3JGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIENhbGxU
eXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLSAgICB7Ci0gICAg
ICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxUaHJvd1R5cGVFcnJvcjsKLSAgICAg
ICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotICAgIH0KLQogICAgIERFQ0xBUkVfSU5GTzsKIAog
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
Q29uc3RydWN0b3IuY3BwCmluZGV4IGRhYTdhOTAxZTk0YzAxZjg4MmZlYTA5MjU5MzYxNGJhYmZh
MjI0MzYuLmIwNDRjOGQyNzA3YjIzMGUxNjg1ODgyODk0NmE4OGE5NzFiOTk4ZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCkBA
IC0zNCw3ICszNCw3IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShF
cnJvckNvbnN0cnVjdG9yKTsKIGNvbnN0IENsYXNzSW5mbyBFcnJvckNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoRXJyb3JDb25zdHJ1Y3RvcikgfTsKIAogRXJyb3JDb25zdHJ1Y3Rvcjo6
RXJyb3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50
ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwg
c3RydWN0dXJlLCBJbnRlcnByZXRlcjo6Y2FsbEVycm9yQ29uc3RydWN0b3IsIEludGVycHJldGVy
Ojpjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcikKIHsKIH0KIApAQCAtNjMsMTIgKzYzLDYg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y29uc3RydWN0V2l0
aEVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgRXJyb3JDb25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3RE
YXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gSW50ZXJwcmV0ZXI6
OmNvbnN0cnVjdFdpdGhFcnJvckNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBl
OjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpj
YWxsRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNz
YWdlID0gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC03NiwxMiArNzAsNiBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpjYWxsRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVh
dGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBm
YWxzZSkpOwogfQogCi1DYWxsVHlwZSBFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gSW50ZXJwcmV0ZXI6OmNhbGxFcnJvckNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlw
ZTo6SG9zdDsKLX0KLQogYm9vbCBFcnJvckNvbnN0cnVjdG9yOjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4
IDYzMDk2YmQ1YzQzNzg3Nzc5M2Y4NjU2YzU2OTc3MzhmNmRkOTIyNGQuLmEwZGQxYjA1ZTQ5MmU4
ZTBmOTZiNTE0YWU5NTQ5MDRlZGE3M2E0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgRXJy
b3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1
bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKICAgICBzdGQ6
Om9wdGlvbmFsPHVuc2lnbmVkPiBzdGFja1RyYWNlTGltaXQoKSBjb25zdCB7IHJldHVybiBtX3N0
YWNrVHJhY2VMaW1pdDsgfQpAQCAtNTUsOCArNTUsNiBAQCBjbGFzcyBFcnJvckNvbnN0cnVjdG9y
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIEVycm9yQ29uc3Ry
dWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25z
dHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8dW5z
aWduZWQ+IG1fc3RhY2tUcmFjZUxpbWl0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggZmE2N2NkNWQ1MjNj
MGRjOTkzMzg1MzBlNDkyMDdlMTVlMTk2ZDA0Ny4uZDgwMzYxNjY4ZDZiZWIyZjc5M2EzOThlYzU3
MjRiMTA5MGIyMDk4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTM4LDQxICszOCwyOSBAQCBTVEFUSUNfQVNT
RVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNv
bnN0IENsYXNzSW5mbyBGdW5jdGlvbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRnVu
Y3Rpb25Db25zdHJ1Y3RvcikgfTsKIAotRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6RnVuY3Rpb25Db25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5j
dGlvbih2bSwgc3RydWN0dXJlKQotewotfQotCi12b2lkIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgRnVuY3Rpb25Qcm90b3R5cGUqIGZ1bmN0aW9uUHJvdG90eXBl
KQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBmdW5jdGlvblByb3RvdHlwZS0+Y2xh
c3NJbmZvKCktPmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZnVuY3Rpb25Qcm90b3R5cGUsIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KLQogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEZ1bmN0aW9uQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMsIGFzSW50ZXJu
YWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3MsIEZ1bmN0
aW9uQ29uc3RydWN0aW9uTW9kZTo6RnVuY3Rpb24sIGV4ZWMtPm5ld1RhcmdldCgpKSk7CiB9CiAK
LUNvbnN0cnVjdFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAg
cmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KKy8vIEVDTUEgMTUuMy4xIFRoZSBGdW5j
dGlvbiBDb25zdHJ1Y3RvciBDYWxsZWQgYXMgYSBGdW5jdGlvbgogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbEZ1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxl
ZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3MpKTsKIH0KIAotLy8gRUNNQSAxNS4zLjEgVGhlIEZ1
bmN0aW9uIENvbnN0cnVjdG9yIENhbGxlZCBhcyBhIEZ1bmN0aW9uCi1DYWxsVHlwZSBGdW5jdGlv
bkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCitG
dW5jdGlvbkNvbnN0cnVjdG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxG
dW5jdGlvbkNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoRnVuY3Rpb25Db25zdHJ1Y3RvcikKK3sK
K30KKwordm9pZCBGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEZ1
bmN0aW9uUHJvdG90eXBlKiBmdW5jdGlvblByb3RvdHlwZSkKIHsKLSAgICBjYWxsRGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjYWxsRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5
cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGZ1bmN0aW9uUHJvdG90eXBl
LT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBmdW5jdGlvblByb3RvdHlwZSwgUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUg
fCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQog
CiAvLyBFQ01BIDE1LjMuMiBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaAppbmRleCAxM2Mz
N2ZkNTJmMjNmNzJjMjg5NzdjNTIyMDJlYmZjMzAyNzcyMDM0Li43Y2UzZjQ4ODZkYzIzNmE5NGJk
MzQ1MmRkMWMwY2UzMTRlZGQ4YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCkBAIC00NSwxNCArNDUsMTIgQEAgY2xhc3Mg
RnVuY3Rpb25Db25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRl
cm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKIHBy
aXZhdGU6CiAgICAgRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oVk0mLCBGdW5jdGlvblByb3RvdHlwZSopOwotICAgIHN0YXRpYyBD
b25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwot
ICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsK
IAogZW51bSBjbGFzcyBGdW5jdGlvbkNvbnN0cnVjdGlvbk1vZGUgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCmluZGV4IDE4Zjhi
NWVhZDU2NDQ5NjhiZTIxNTc2YzY3NTYzMmQyMWU2MDU4MmYuLjQwODBlMzkwZmNkMDBlMDE4MzY3
YWUxNDNhZDQ3MDg2YzY0YWFlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKQEAgLTQzLDggKzQzLDE0IEBAIGNvbnN0IENs
YXNzSW5mbyBGdW5jdGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKik7CiAKKy8vIEVDTUEgMTUuMy40Citz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Qcm90b3R5cGUo
RXhlY1N0YXRlKikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworfQorCiBGdW5jdGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkK
KyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEZ1bmN0aW9uUHJvdG90
eXBlLCBudWxscHRyKQogewogfQogCkBAIC03NywxOCArODMsNiBAQCB2b2lkIEZ1bmN0aW9uUHJv
dG90eXBlOjppbml0UmVzdHJpY3RlZFByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdAogICAgIHB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmFy
Z3VtZW50cywgZXJyb3JHZXR0ZXJTZXR0ZXIsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8
IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvblByb3RvdHlwZShFeGVjU3RhdGUqKQotewotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci19Ci0KLS8vIEVDTUEgMTUu
My40Ci1DYWxsVHlwZSBGdW5jdGlvblByb3RvdHlwZTo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxG
dW5jdGlvblByb3RvdHlwZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhFeGVjU3Rh
dGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4IGJhZjdjY2I0YmQx
OWU3NTE5YTlkYjIzNTQyNTMzMGUyMmZiOGE0NWYuLjkzODg4NzA4ZjQ3MTQ4YTZiYzc1MTEzMTFj
N2ZmNjExN2Q4ZWQwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBGdW5jdGlvblByb3Rv
dHlwZSA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG8pCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAgIERFQ0xBUkVfSU5GTzsKQEAgLTUxLDcgKzUxLDYg
QEAgY2xhc3MgRnVuY3Rpb25Qcm90b3R5cGUgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAK
IHByaXZhdGU6CiAgICAgRnVuY3Rpb25Qcm90b3R5cGUoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBz
dGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBlNTRlNjNm
OTJiM2RkODJmN2RiYzJhNGQ0ZTUyMTgwNDhlYzc3YzdkLi4zNzQzYzZhMTlkZmFmZGU3MjZhYzU0
OWNkMWI4ZDRiZmFkMTY4NmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzYs
MTggKzM2LDYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEdlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gR2VuZXJhdG9yRnVu
Y3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiR2VuZXJhdG9yRnVuY3Rpb24iLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdlbmVyYXRvckZ1
bmN0aW9uQ29uc3RydWN0b3IpIH07CiAKLUdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6Okdl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
LSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBHZW5l
cmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEdlbmVyYXRv
ckZ1bmN0aW9uUHJvdG90eXBlKiBnZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSkKLXsKLSAgICBC
YXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgIkdlbmVyYXRvckZ1bmN0aW9uIik7Ci0gICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZ2Vu
ZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKQEAgLTYwLDE2ICs0OCwxNiBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yKEV4ZWNTdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVu
Y3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxP
YmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpHZW5lcmF0b3IsIGV4ZWMt
Pm5ld1RhcmdldCgpKSk7CiB9CiAKLUNhbGxUeXBlIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK0dlbmVyYXRvckZ1
bmN0aW9uQ29uc3RydWN0b3I6OkdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVy
ZSwgY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IsIGNvbnN0cnVjdEdlbmVyYXRvckZ1
bmN0aW9uQ29uc3RydWN0b3IpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2Fs
bEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0
OwogfQogCi1Db25zdHJ1Y3RUeXBlIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENv
bnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKK3ZvaWQg
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBHZW5l
cmF0b3JGdW5jdGlvblByb3RvdHlwZSogZ2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpCiB7Ci0g
ICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RHZW5lcmF0b3JGdW5j
dGlvbkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OworICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiR2VuZXJhdG9yRnVuY3Rpb24iKTsKKyAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBnZW5l
cmF0b3JGdW5jdGlvblByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkp
OworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3Ry
dWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9u
Q29uc3RydWN0b3IuaAppbmRleCBmMjhjNzFjNzhmZWMyZTVkY2YwZjVlZTRmM2U1YjZjMjJhZDBj
NzU4Li5mNDZkOGM1OWQ1NTZlMjMxMTQ0YjNiNmJiYjA5ZTZiOGVjZjAxZjUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVj
dG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3Rvci5oCkBAIC01MiwxNCArNTIsMTIgQEAgY2xhc3MgR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0
aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAg
ICBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihWTSYsIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKik7Ci0gICAg
c3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKaW5kZXggM2QzZmQxYWJjMzQzM2M1YjQ5
MTllMDFlNDNjNWRlNjQwN2Q5N2I3OS4uMmEzYWI4MzE1MzA2OGYyNjg5MThlZjMxOTE4ZDNkNWFk
ZDE3MDE0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJu
YWxGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJu
YWxGdW5jdGlvbi5jcHAKQEAgLTM0LDggKzM0LDEwIEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklB
TExZX0RFU1RSVUNUSUJMRShJbnRlcm5hbEZ1bmN0aW9uKTsKIAogY29uc3QgQ2xhc3NJbmZvIElu
dGVybmFsRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnRlcm5hbEZ1bmN0aW9uKSB9Owog
Ci1JbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCitJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ2FsbCwgTmF0aXZl
RnVuY3Rpb24gZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpCiAgICAgOiBKU0Rlc3RydWN0aWJsZU9iamVj
dCh2bSwgc3RydWN0dXJlKQorICAgICwgbV9mdW5jdGlvbkZvckNhbGwoZnVuY3Rpb25Gb3JDYWxs
KQorICAgICwgbV9mdW5jdGlvbkZvckNvbnN0cnVjdChmdW5jdGlvbkZvckNvbnN0cnVjdCkKIHsK
ICAgICAvLyBleGVjLT52bSgpIHdhbnRzIGNhbGxlZXMgdG8gbm90IGJlIGxhcmdlIGFsbG9jYXRp
b25zLgogICAgIFJFTEVBU0VfQVNTRVJUKCFpc0xhcmdlQWxsb2NhdGlvbigpKTsKQEAgLTQ1LDcg
KzQ3LDYgQEAgdm9pZCBJbnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIGNv
bnN0IFN0cmluZyYgbmFtZSwgTmFtZVZpc2liaWxpdHkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAgICBBU1NFUlQo
bWV0aG9kVGFibGUodm0pLT5nZXRDYWxsRGF0YSAhPSBJbnRlcm5hbEZ1bmN0aW9uOjppbmZvKCkt
Pm1ldGhvZFRhYmxlLmdldENhbGxEYXRhKTsKICAgICBKU1N0cmluZyogbmFtZVN0cmluZyA9IGpz
U3RyaW5nKCZ2bSwgbmFtZSk7CiAgICAgbV9vcmlnaW5hbE5hbWUuc2V0KHZtLCB0aGlzLCBuYW1l
U3RyaW5nKTsKICAgICBpZiAobmFtZVZpc2liaWxpdHkgPT0gTmFtZVZpc2liaWxpdHk6OlZpc2li
bGUpCkBAIC03OCwxMCArNzksMjIgQEAgY29uc3QgU3RyaW5nIEludGVybmFsRnVuY3Rpb246OmRp
c3BsYXlOYW1lKFZNJiB2bSkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLUNhbGxUeXBlIElu
dGVybmFsRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJikKK0NhbGxUeXBl
IEludGVybmFsRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCogY2VsbCwgQ2FsbERhdGEmIGNh
bGxEYXRhKQogewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IENhbGxUeXBlOjpOb25lOworICAgIGF1dG8qIGZ1bmN0aW9uID0ganNDYXN0PEludGVybmFsRnVu
Y3Rpb24qPihjZWxsKTsKKyAgICBpZiAoIWZ1bmN0aW9uLT5tX2Z1bmN0aW9uRm9yQ2FsbCkKKyAg
ICAgICAgcmV0dXJuIENhbGxUeXBlOjpOb25lOworICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGZ1bmN0aW9uLT5tX2Z1bmN0aW9uRm9yQ2FsbDsKKyAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7Cit9CisKK0NvbnN0cnVjdFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqIGNlbGwsIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCit7CisgICAgYXV0
byogZnVuY3Rpb24gPSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGNlbGwpOworICAgIGlmICgh
ZnVuY3Rpb24tPm1fZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpCisgICAgICAgIHJldHVybiBDb25zdHJ1
Y3RUeXBlOjpOb25lOworICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gZnVuY3Rp
b24tPm1fZnVuY3Rpb25Gb3JDb25zdHJ1Y3Q7CisgICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhv
c3Q7CiB9CiAKIGNvbnN0IFN0cmluZyBJbnRlcm5hbEZ1bmN0aW9uOjpjYWxjdWxhdGVkRGlzcGxh
eU5hbWUoVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJu
YWxGdW5jdGlvbi5oCmluZGV4IDNhOGYyMmViODhlMGViZGI4N2QzNDdlMzk3NDZhMmJhY2QyZjUz
OTguLmNiZWJmYzYxODY2MzA5NTQ4ZTY3ZWQ5MThmNGFmYmVhMWJlYTE5ODIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKQEAgLTIzLDYg
KzIzLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDb2RlU3BlY2lhbGl6YXRpb25L
aW5kLmgiCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CkBAIC00OSwxNSArNTAsMzUgQEAgY2xhc3MgSW50ZXJuYWxGdW5jdGlvbiA6IHB1YmxpYyBK
U0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdWJj
bGFzc1N0cnVjdHVyZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG5ld1RhcmdldCwgU3RydWN0dXJlKik7
CiAKKyAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbkZvcihDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQpCisgICAgeworICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKKyAg
ICAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uRm9yQ2FsbDsKKyAgICAgICAgQVNTRVJUKGtpbmQg
PT0gQ29kZUZvckNvbnN0cnVjdCk7CisgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uRm9yQ29uc3Ry
dWN0OworICAgIH0KKworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOYXRpdmVGdW5jdGlv
bkZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgeworICAgICAgICBpZiAoa2lu
ZCA9PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSW50
ZXJuYWxGdW5jdGlvbiwgbV9mdW5jdGlvbkZvckNhbGwpOworICAgICAgICBBU1NFUlQoa2luZCA9
PSBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihJbnRl
cm5hbEZ1bmN0aW9uLCBtX2Z1bmN0aW9uRm9yQ29uc3RydWN0KTsKKyAgICB9CisKIHByb3RlY3Rl
ZDoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBJbnRlcm5hbEZ1bmN0aW9uKFZNJiwgU3RydWN0dXJl
Kik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgSW50ZXJuYWxGdW5jdGlvbihWTSYsIFN0cnVjdHVy
ZSosIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ2FsbCwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rp
b25Gb3JDb25zdHJ1Y3QpOwogCiAgICAgZW51bSBjbGFzcyBOYW1lVmlzaWJpbGl0eSB7IFZpc2li
bGUsIEFub255bW91cyB9OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZmluaXNoQ3JlYXRp
b24oVk0mLCBjb25zdCBTdHJpbmcmIG5hbWUsIE5hbWVWaXNpYmlsaXR5ID0gTmFtZVZpc2liaWxp
dHk6OlZpc2libGUpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmVTbG93KEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmV3VGFyZ2V0
LCBTdHJ1Y3R1cmUqKTsKIAorICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERh
dGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwogICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOworCisgICAgTmF0aXZlRnVuY3Rpb24gbV9mdW5jdGlv
bkZvckNhbGw7CisgICAgTmF0aXZlRnVuY3Rpb24gbV9mdW5jdGlvbkZvckNvbnN0cnVjdDsKICAg
ICBXcml0ZUJhcnJpZXI8SlNTdHJpbmc+IG1fb3JpZ2luYWxOYW1lOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0
b3IuY3BwCmluZGV4IGQxYTE4NGYzYzE2MjI2NjhlNTFjNmM1NDU5YTk1NmI1Y2NkMWE1MjcuLjAz
Yjg3YjA2NTk3NDYwNmY5MzFiMWFhNDMwZTM2MjM5YmEwY2IyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5j
cHAKQEAgLTQ5LDYgKzQ5LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc08KIAogbmFtZXNwYWNl
IEpTQyB7CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsQ29s
bGF0b3IoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RJbnRsQ29sbGF0b3IoRXhlY1N0YXRlKik7CisKIGNvbnN0IENsYXNzSW5mbyBJbnRs
Q29sbGF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5j
dGlvbjo6c19pbmZvLCAmY29sbGF0b3JDb25zdHJ1Y3RvclRhYmxlLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEludGxDb2xsYXRvckNvbnN0cnVjdG9yKSB9OwogCiAvKiBTb3VyY2UgZm9y
IEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmx1dC5oCkBAIC02NiwxMSArNjksMTEgQEAgSW50bENv
bGxhdG9yQ29uc3RydWN0b3IqIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnUKIAogU3RydWN0dXJlKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CiB9CiAKIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpJbnRsQ29sbGF0b3JD
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxG
dW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0
dXJlLCBjYWxsSW50bENvbGxhdG9yLCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3IpCiB7CiB9CiAKQEAg
LTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEludGxDb2xsYXRvcihFeGVjU3RhdGUqIHN0YXRlKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY29sbGF0b3IpOwogfQogCi1Db25zdHJ1Y3RUeXBlIEludGxDb2xsYXRvckNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEp
Ci17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RJbnRsQ29s
bGF0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIElu
dGxDb2xsYXRvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2Fs
bERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEludGxDb2xsYXRv
cjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKEV4
ZWNTdGF0ZSogc3RhdGUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3Iu
aAppbmRleCBjZjM0NjhmYjEzMDUwZDE3MjZmZGMxZjNiZjdjMmIzZmRlOTFhMmMwLi4wZGI4NmM3
MmQ0ZmExOWVhZmY5MWI4YjFmMDEyZmFjNmU2ZGYyYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmgKQEAgLTUx
LDggKzUxLDYgQEAgY2xhc3MgSW50bENvbGxhdG9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgSW50bENvbGxhdG9yQ29uc3RydWN0b3IoVk0m
LCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpT
Q2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAgCiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4g
bV9jb2xsYXRvclN0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCA1
MDEwZTE3NTY0MjY3MjYzZThhZGFmYjM4NWE4ZDhiYjM0OTg0NDhiLi41YWY4MmFiYTMxMjdlNWRi
NWVkYmE5ODk2YjczNjExMmU1NmFlZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3Bw
CkBAIC02NiwxMSArNjYsMTQgQEAgSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IqIEludGxE
YXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHIKIAogU3RydWN0dXJl
KiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKElu
dGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKK3N0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQoRXhl
Y1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJ
bnRsRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRlKik7CisKIEludGxEYXRlVGltZUZvcm1hdENvbnN0
cnVjdG9yOjpJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDog
SW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsSW50bERhdGVUaW1lRm9ybWF0LCBj
b25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQpCiB7CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxEYXRlVGltZUZvcm1h
dChFeGVjU3RhdGUqIHN0YXRlKQogICAgIH0pKTsKIH0KIAotQ29uc3RydWN0VHlwZSBJbnRsRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0
aW9uID0gY29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0OwotICAgIHJldHVybiBDb25zdHJ1Y3RU
eXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRh
Lm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQ7Ci0gICAgcmV0dXJuIENh
bGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRl
VGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihFeGVjU3RhdGUqIHN0
YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9y
LmgKaW5kZXggZjFiYTI2N2NiOTNmODc1ODE1ZTQ5YmYxNzliYTljYzU1M2YwNjlkMy4uOGU2MTA2
NTA4M2EwMjEwY2ZhZjNkMjUzMDhiYTM5YTk0ZGFlYmJjYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1
Y3Rvci5oCkBAIC01MSw4ICs1MSw2IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVj
dG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIEludGxEYXRl
VGltZUZvcm1hdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3Rh
dGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgIAogICAg
IFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZGF0ZVRpbWVGb3JtYXRTdHJ1Y3R1cmU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZv
cm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCAyZjZlYWRmYjhhYjU3MTZjZGQzNzJkNTkwYWMxZjli
NTZiOWMzNzEzLi4yOTcyMTBjNmRlOGMxODVmZmViYzVmNjhhZTkzODhkY2JkMGQ1OTU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1i
ZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTY2LDExICs2NiwxNCBAQCBJbnRsTnVtYmVyRm9y
bWF0Q29uc3RydWN0b3IqIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2
bSwgU3RydWN0dQogCiBTdHJ1Y3R1cmUqIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJ
bnRsTnVtYmVyRm9ybWF0KEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0SW50bE51bWJlckZvcm1hdChFeGVjU3RhdGUqKTsKKwogSW50bE51
bWJlckZvcm1hdENvbnN0cnVjdG9yOjpJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVj
dHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEludGxOdW1i
ZXJGb3JtYXQsIGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQpCiB7CiB9CiAKQEAgLTEyMywxOCAr
MTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxOdW1i
ZXJGb3JtYXQoRXhlY1N0YXRlKiBzdGF0ZSkKICAgICB9KSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUg
SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjb25zdHJ1Y3RJbnRsTnVtYmVyRm9ybWF0OwotICAgIHJldHVybiBDb25zdHJ1
Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6
OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSW50bE51bWJlckZvcm1hdDsKLSAgICByZXR1cm4gQ2Fs
bFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJl
ckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihFeGVjU3RhdGUqIHN0YXRl
KQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaAppbmRl
eCBkNzYyMTYxZGRhMjM5YmNiNWM5MTg5MmEwMjVjODU4ZDA0NDhkZmVhLi5lNDNkZWEzZWUyMGM4
OTcwODUwMWY2NWJhMDEzZTQyMDhkYjExOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaApAQCAt
NTEsOCArNTEsNiBAQCBjbGFzcyBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgSW50bE51bWJlckZvcm1hdENvbnN0
cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBl
IGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRD
aGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgIAogICAgIFdyaXRlQmFycmllcjxT
dHJ1Y3R1cmU+IG1fbnVtYmVyRm9ybWF0U3RydWN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggZGJiMzczYzhmNTg1YTNjMWMwNjZjYzQzZWUyODgxMjdhNjBmMTAyYy4uYmYyZTkxN2VmYTEw
OWNmZmY0ZmI5ZDNmOGE1ZTY2NTRmOGNhODhiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCkBAIC00
NCw4ICs0NCwxMSBAQCBjb25zdCBDbGFzc0luZm8gSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7CiAgICAgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0FycmF5QnVmZmVyQ29uc3RydWN0
b3IpCiB9OwogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlC
dWZmZXIoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RBcnJheUJ1ZmZlcihFeGVjU3RhdGUqKTsKKwogSlNBcnJheUJ1ZmZlckNvbnN0cnVj
dG9yOjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBzaGFyaW5nTW9kZSkKLSAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEFycmF5QnVmZmVyLCBjb25z
dHJ1Y3RBcnJheUJ1ZmZlcikKICAgICAsIG1fc2hhcmluZ01vZGUoc2hhcmluZ01vZGUpCiB7CiB9
CkBAIC03Nyw3ICs4MCw3IEBAIFN0cnVjdHVyZSogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUoCiAgICAgVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoCi0g
ICAgICAgIHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dEFycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTEyMSwxOSArMTI0LDYgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5QnVmZmVyKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RC
ZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZXhlYywgc2NvcGUsICJBcnJheUJ1ZmZlciIpKTsK
IH0KIAotQ29uc3RydWN0VHlwZSBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVj
dERhdGEoCi0gICAgSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAg
ICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEFycmF5QnVmZmVyOwot
ICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBKU0FycmF5QnVm
ZmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
LXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXJyYXlCdWZmZXI7Ci0gICAg
cmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIC8vIEVD
TUEgMjQuMS4zLjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKaW5kZXggOWM3NTMyNDg4Njc5ZTIyMzMyZjVkNDNh
YjJlZDE5MjdmYTg3MTZiYy4uNzk0ZmY4Njg2MzM2YzIwODNhMjZjNTE4MTdhMjVlMDRmZGM5OThk
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yLmgKQEAgLTUwLDEwICs1MCw2IEBAIGNsYXNzIEpTQXJyYXlCdWZm
ZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICAKICAgICBBcnJh
eUJ1ZmZlclNoYXJpbmdNb2RlIHNoYXJpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9zaGFyaW5n
TW9kZTsgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3Ry
dWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0KIHByaXZhdGU6CiAgICAgQXJyYXlCdWZm
ZXJTaGFyaW5nTW9kZSBtX3NoYXJpbmdNb2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29u
c3RydWN0b3IuaAppbmRleCAzZjE4ZTBlZmM2MjgyNTllMzc3NjNiMjlmN2NmZTVkODJjNWJiOGVi
Li43YjZkZmQ0NGMxYjYzODgwNmQ1ZWFkOGMyMGFlYjU3NmUxNmNiZDIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCkBAIC01NywxMCArNTcsNiBAQCBjbGFzcyBKU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewog
I2VuZGlmCiAgICAgCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwg
SlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci0KLXByb3RlY3RlZDoKLSAgICBz
dGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggY2IyNDY5NzlmNjFiOGYwMGFkZTdmZmVhY2I0NmU1
ZDRhNzUwNGVjNi4uNDU1ZDI0Y2M5M2Y1MTBmY2ExODM2MWZmMDc1ZWI0NDhlYTIwNWMzNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC0zOCw4
ICszOCwxNCBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFz
cz4KK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxHZW5lcmljVHlwZWRB
cnJheVZpZXcoRXhlY1N0YXRlKik7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KK0Vu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3
KEV4ZWNTdGF0ZSopOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEdlbmVyaWNUeXBl
ZEFycmF5VmlldzxWaWV3Q2xhc3M+LCBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmll
d0NsYXNzPikKIHsKIH0KIApAQCAtNzMsNyArNzksNyBAQCBTdHJ1Y3R1cmUqIEpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8Vmlld0NsYXNzPjo6Y3JlYXRlU3RydWN0dXJlKAogICAg
IFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUp
CiB7CiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKAotICAgICAgICB2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKKyAgICAgICAgdm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRl
cm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CkBAIC0xOTUsOSArMjAxLDYgQEAgaW5saW5lIEpTT2JqZWN0
KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKEV4ZWNTdGF0ZSog
ZXhlYywgU3QKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXcoRXhlY1N0YXRl
Kik7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSogZXhlYykK
IHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAtMjQ1LDEzICsyNDgsNiBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVj
U3RhdGUqIGV4ZWMpCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUNvbnN0cnVj
dFR5cGUgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpnZXRD
b25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0g
ICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RHZW5lcmljVHlwZWRB
cnJheVZpZXc8Vmlld0NsYXNzPjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0K
LQotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTI1OSwxMSArMjU1LDQgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9y
Q2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBWaWV3Q2xhc3M6
OmluZm8oKS0+Y2xhc3NOYW1lKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4K
LUNhbGxUeXBlIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8Vmlld0NsYXNzPjo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRh
Lm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPjsK
LSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0
b3IuY3BwCmluZGV4IGQyMTYxMTE3NjFhNDA2NWFjYTkzMWM0ZThmY2VkNWRmZDRkMDczNDkuLmY0
MTQ1ZDg4YTIzZThjOGRhZmRlOTc4YjJkZDg4MTc2NWMxYzg2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5jcHAKQEAg
LTcwLDExICs3MCwxNSBAQCBKU1Byb21pc2VDb25zdHJ1Y3RvciogSlNQcm9taXNlQ29uc3RydWN0
b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLAogCiBTdHJ1Y3R1cmUqIEpT
UHJvbWlzZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlv
blR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAorCitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUHJvbWlzZShFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb21pc2UoRXhlY1N0YXRlKik7CisK
IEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpKU1Byb21pc2VDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2
bSwgc3RydWN0dXJlLCBjYWxsUHJvbWlzZSwgY29uc3RydWN0UHJvbWlzZSkKIHsKIH0KIApAQCAt
MTExLDYgKzExNSwxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RQcm9taXNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHByb21pc2UpOwogfQogCisvLyBGSVhNRTogVGhpcyBpcyB3b3JrYXJvdW5kLiBTaW5jZSBKU0Mg
ZG9lcyBub3QgZXhwb3NlIEBpc0NvbnN0cnVjdG9yIHRvIEpTIGJ1aWx0aW5zLAorLy8gd2UgdXNl
IHR5cGVvZiBmdW5jdGlvbiA9PT0gImZ1bmN0aW9uIiBub3cuIEFuZCBzaW5jZSB0eXBlb2YgY29u
c3RydWN0b3JXaXRob3V0Q2FsbGFiaWxpdHkKKy8vIHJldHVybnMgIm9iamVjdCIsIHdlIG5lZWQg
dG8gZGVmaW5lIFtbQ2FsbF1dIGZvciBub3cuCisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ0MDkzCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsUHJvbWlzZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKQEAgLTExOCwyMCArMTI2LDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbFByb21pc2UoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVFcnJvcihleGVj
LCBzY29wZSwgIlByb21pc2UiKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgSlNQcm9taXNlQ29uc3Ry
dWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0
RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFBy
b21pc2U7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIEpT
UHJvbWlzZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERh
dGEpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgd29ya2Fyb3VuZC4gU2luY2UgSlNDIGRvZXMg
bm90IGV4cG9zZSBAaXNDb25zdHJ1Y3RvciB0byBKUyBidWlsdGlucywKLSAgICAvLyB3ZSB1c2Ug
dHlwZW9mIGZ1bmN0aW9uID09PSAiZnVuY3Rpb24iIG5vdy4gQW5kIHNpbmNlIHR5cGVvZiBjb25z
dHJ1Y3RvcldpdGhvdXRDYWxsYWJpbGl0eQotICAgIC8vIHJldHVybnMgIm9iamVjdCIsIHdlIG5l
ZWQgdG8gZGVmaW5lIFtbQ2FsbF1dIGZvciBub3cuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA5MwotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNhbGxQcm9taXNlOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb21pc2VDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9taXNlQ29uc3RydWN0b3IuaAppbmRleCAwYmVjYTA0ZTIwYTMyNzA2OTg1MTcyYjMzZDc2MGUy
ZjM1ODE3YjZlLi5hODQ5YWQ3NDFhYTg5NzQyZWVkYjBhMGMwNzY2ZDEzZWVjYzM1OTUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVj
dG9yLmgKQEAgLTQ4LDkgKzQ4LDYgQEAgY2xhc3MgSlNQcm9taXNlQ29uc3RydWN0b3IgOiBwdWJs
aWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTUHJv
bWlzZVByb3RvdHlwZSosIEdldHRlclNldHRlciopOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBD
b25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwot
ICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwotCiAg
ICAgdm9pZCBhZGRPd25JbnRlcm5hbFNsb3RzKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggYzAxNzAyMzRlMjg2YWI3
NzA4OWU4YWYxODIxZTc0MDY0MzMxYWYyZS4uODUzNTZkMzk3N2FlZDVjNzNiODlhZmYwNWM5N2My
NDJmOTViYjRlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKQEAgLTU5
LDYgKzU5LDcgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBGaW5hbE9iamVjdFR5cGUs
CiAgICAgSlNDYWxsZWVUeXBlLAogICAgIEpTRnVuY3Rpb25UeXBlLAorICAgIEludGVybmFsRnVu
Y3Rpb25UeXBlLAogICAgIE51bWJlck9iamVjdFR5cGUsCiAgICAgRXJyb3JJbnN0YW5jZVR5cGUs
CiAgICAgUHVyZUZvcndhcmRpbmdQcm94eVR5cGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcApp
bmRleCA3YjQ2ZTY0NGYxODdkMTRmYmU3Njk0YzMwODYzYjYyMjlmN2I0ZWQ1Li4yYzgwNWY1ZTRk
NmYyMmIyNzhmODg0NzE4NmM5MGEwOWVkMWQ0NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5j
cHAKQEAgLTM3LDggKzM3LDEwIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUq
KTsKKwogSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY29uc3RydWN0VHlwZWRBcnJheVZpZXcs
IGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KQogewogfQogCkBAIC01OCw3ICs2MCw3IEBAIHZvaWQg
SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPCiBTdHJ1Y3R1cmUqIEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKAogICAgIFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIApAQCAtNzAsMTYgKzcyLDQgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VHlwZWRBcnJheVZpZXcoRXhlY1N0
YXRlKiBleGVjKQogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJ
SUxpdGVyYWwoIiVUeXBlZEFycmF5JSBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSIpKTsK
IH0KIAotQ29uc3RydWN0VHlwZSBKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBj
b25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3Owot
ICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBKU1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0
YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RUeXBlZEFycmF5
VmlldzsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3IuaAppbmRleCBkNzgxN2UyNWYxZTEyOWY1MjM1NjgyOWI4OTA1
MDdjZWM3MDA4NWUyLi40MTQ1Y2NjZTU4Y2VjZWU3MWM4OTExNGY3NjVjNzIyZjM5NTIxZWVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3IuaApAQCAtNTEsOSArNTEsNiBAQCBjbGFzcyBKU1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgREVDTEFS
RV9JTkZPOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNH
bG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci1wcm90ZWN0ZWQ6Ci0gICAgc3RhdGlj
IENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7
Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9
OwogICAgIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYjBkNDliNWQ1YmI1MDgzNDk5YWI0Mzdl
ODcyMTY4ZDRkYzJmZDY5ZC4uNzlmODQ3OWRkMmZlNzMzNDY4M2U1MDZlNmNlOGMyZDdlYTk4ZjJh
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9y
LmNwcApAQCAtNDcsNiArNDcsMTQgQEAgdm9pZCBNYXBDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBNYXBQcm90b3R5cGUqIG1hcFByb3RvdHlwZSwgR2V0dGVyU2UKICAgICBwdXRE
aXJlY3ROb25JbmRleEFjY2Vzc29yKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVjaWVzU3ltYm9s
LCBzcGVjaWVzU3ltYm9sLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCitz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTWFwKEV4ZWNTdGF0ZSopOwor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TWFwKEV4ZWNTdGF0
ZSopOworCitNYXBDb25zdHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbE1hcCwgY29uc3RydWN0
TWFwKQoreworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTWFw
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAtMTEyLDE4
ICsxMjAsNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RN
YXAoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobWFwKTsKIH0K
IAotQ29uc3RydWN0VHlwZSBNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwq
LCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0TWFwOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpI
b3N0OwotfQotCi1DYWxsVHlwZSBNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxNYXA7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZChFeGVjU3RhdGUqIGV4ZWMp
CiB7CiAgICAgQVNTRVJUKGlzSlNNYXAoZXhlYy0+YXJndW1lbnQoMCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oCmluZGV4IGM0OGEzNWFkMDUy
OGExZjgzNzhlZjA0ZjgzMzJlMWU1MDUxOTg1MzkuLjY0NTcxYzc1MWQ2NTA5NjA2ZTRhODI3MGNk
N2Y1MTk2OWI5ZDM1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hcENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFw
Q29uc3RydWN0b3IuaApAQCAtNDcsMTcgKzQ3LDEzIEBAIGNsYXNzIE1hcENvbnN0cnVjdG9yIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1hcENvbnN0cnVjdG9y
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3RydWN0
dXJlKQotICAgIHsKLSAgICB9CisgICAgTWFwQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsK
KwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBNYXBQcm90b3R5cGUqLCBHZXR0ZXJTZXR0
ZXIqIHNwZWNpZXNTeW1ib2wpOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVj
dERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEhlYWQoRXhlY1N0YXRlKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0
b3IuY3BwCmluZGV4IDU3ZmMxYzRhZjUwOGQwMGI2YmRjZTNlMWUyZWQ1NjBiZmU2MWVkNzkuLjVm
ZDNhNjc3NjdmMDEzMGJlY2IzYTY2Yzg2OWFlN2RjMjJhNzhiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3Bw
CkBAIC0zNSw3ICszNSw3IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJM
RShOYXRpdmVFcnJvckNvbnN0cnVjdG9yKTsKIGNvbnN0IENsYXNzSW5mbyBOYXRpdmVFcnJvckNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoTmF0aXZlRXJyb3JDb25z
dHJ1Y3RvcikgfTsKIAogTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0aXZlRXJyb3JDb25zdHJ1
Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlv
bih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBJ
bnRlcnByZXRlcjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IsIEludGVycHJldGVyOjpjb25z
dHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcikKIHsKIH0KIApAQCAtNzMsMTIgKzczLDYg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y29uc3RydWN0V2l0
aE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25z
dHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gSW50ZXJw
cmV0ZXI6OmNvbnN0cnVjdFdpdGhOYXRpdmVFcnJvckNvbnN0cnVjdG9yOwotICAgIHJldHVybiBD
b25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotICAgIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRlcnByZXRlcjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwpAQCAtODYsMTAg
KzgwLDQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y2FsbE5h
dGl2ZUVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBu
dWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0KIAotQ2FsbFR5cGUgTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewot
ICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEludGVycHJldGVyOjpjYWxsTmF0aXZlRXJy
b3JDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDE2ZTc3MmQ3ZDZlMTNkZmUxZWM0ZWFmZjYyZjA0
OTJmMDRkNzZlODUuLmQyYjgwOTcyMzJlYjRjNTEwODRkZGIxYmUyOGFjYzQ2YzBhYTI4ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1
Y3R1cmUoKSB7IHJldHVybiBtX2Vycm9yU3RydWN0dXJlLmdldCgpOyB9CkBAIC01NCw4ICs1NCw2
IEBAIGNsYXNzIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
biB7CiAKIHByaXZhdGU6CiAgICAgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVy
ZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwg
Q29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYpOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xv
dFZpc2l0b3ImKTsKIAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZXJyb3JTdHJ1Y3R1
cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVy
RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1
bmN0aW9uLmNwcAppbmRleCBiYTQ2YjMwMmM4MmE0MmI3YmY2ZGRkODhmMDQ2ZGU0ODVkODYwMWUy
Li5hNTZjYWIzZmFlNzllZTk0NWU2OTc2NjI0YTE2NGI1YjE4ZDhmNGM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHAKQEAg
LTQwLDE1ICs0MCw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxS
ZXR1cm5VbmRlZmluZWQoRXhlY1N0YXRlKikKIH0KIH0KIAotQ2FsbFR5cGUgTnVsbEdldHRlckZ1
bmN0aW9uOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCitOdWxsR2V0
dGVyRnVuY3Rpb246Ok51bGxHZXR0ZXJGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBOdWxsR2V0dGVyRnVuY3Rpb25JbnRlcm5h
bDo6Y2FsbFJldHVyblVuZGVmaW5lZCwgbnVsbHB0cikKIHsKLSAgICBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBOdWxsR2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6Y2FsbFJldHVyblVuZGVmaW5l
ZDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KLUNvbnN0cnVjdFR5cGUgTnVsbEdl
dHRlckZ1bmN0aW9uOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKQot
ewotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpOb25lOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oCmluZGV4IDYzMzk3
NzM3MmIzMTkxNDc3Yjk0YTc5M2Y4MWUyMWViZGM4MDhmYTUuLjFmMzA3ZDdjMDgxNWIzMGZjMjBm
OTlhM2M2ZWNhNWNhM2U0MTMxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oCkBAIC00NCwxNiArNDQsMTEgQEAgY2xhc3MgTnVs
bEdldHRlckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVu
Y3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIE51bGxHZXR0ZXJGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
ICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQotICAgIHN0YXRpYyBDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAg
IHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOworICAgIE51
bGxHZXR0ZXJGdW5jdGlvbihWTSYsIFN0cnVjdHVyZSopOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVy
RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1
bmN0aW9uLmNwcAppbmRleCA2YWYwZDFhODVkZjIwZmYwODFhOTg3Y2ZkZGRhNjdkNTFhYjZlMGU2
Li5jZGQxMTJlYmJmMWViNWE1OTE4Yzk2NTczMTdjZDdkYmRhNzQ2YzQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKQEAg
LTgyLDE1ICs4Miw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxS
ZXR1cm5VbmRlZmluZWQoRXhlY1N0YXRlKiBleGVjKQogfQogfQogCi1DYWxsVHlwZSBOdWxsU2V0
dGVyRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK051
bGxTZXR0ZXJGdW5jdGlvbjo6TnVsbFNldHRlckZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIE51bGxTZXR0ZXJGdW5jdGlvbklu
dGVybmFsOjpjYWxsUmV0dXJuVW5kZWZpbmVkLCBudWxscHRyKQogewotICAgIGNhbGxEYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IE51bGxTZXR0ZXJGdW5jdGlvbkludGVybmFsOjpjYWxsUmV0dXJuVW5k
ZWZpbmVkOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQotQ29uc3RydWN0VHlwZSBO
dWxsU2V0dGVyRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0
YSYpCi17Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmgKaW5kZXgg
N2M0ZDk2NDBmOWY1OTA5YTA4YzU4ZmUwZWU5YTUyNzZhMWJmZjljZS4uMDUxNTAzZGUzZjg4NmFh
ZmNjYjhlOGE5OGEwYzMyMjNjNjU3OWFmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmgKQEAgLTQ0LDE2ICs0NCwxMSBAQCBjbGFz
cyBOdWxsU2V0dGVyRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJu
YWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgTnVsbFNldHRlckZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
Ci0gICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9Ci0gICAgc3RhdGlj
IENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7
Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Cisg
ICAgTnVsbFNldHRlckZ1bmN0aW9uKFZNJiwgU3RydWN0dXJlKik7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJl
ckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNv
bnN0cnVjdG9yLmNwcAppbmRleCBiMzExNDI3MGE0M2EyYzg2Njk3ZDUzNWRjNjJkODkyMzYzZDIy
NDhkLi5lM2NjMWViODg2ZTJjYmRlM2YxY2UzNjc0MWRhOTVkZDMyNWU3M2I2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCkBA
IC01Myw4ICs1MywxMSBAQCBjb25zdCBDbGFzc0luZm8gTnVtYmVyQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogQGVuZAogKi8KIAorc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE51bWJlckNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
TnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CisKIE51bWJlckNvbnN0cnVjdG9yOjpOdW1i
ZXJDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJu
YWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3Ry
dWN0dXJlLCBjYWxsTnVtYmVyQ29uc3RydWN0b3IsIGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9y
KQogewogfQogCkBAIC04MCw3ICs4Myw3IEBAIHZvaWQgTnVtYmVyQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgTnVtYmVyUHJvdG90eXBlKiBudW1iZXJQcm90b3R5cGUpCiB9CiAK
IC8vIEVDTUEgMTUuNy4xCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQorc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTQsMjQgKzk3LDEyIEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmplY3QpOwogfQogCi1D
b25zdHJ1Y3RUeXBlIE51bWJlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCos
IENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJu
IENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIC8vIEVDTUEgMTUuNy4yCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoIWV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA/IDAgOiBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051bWJlcihleGVj
KSkpOwogfQogCi1DYWxsVHlwZSBOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxs
KiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNhbGxOdW1iZXJDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0K
IC8vIEVDTUEtMjYyIDIwLjEuMi4zCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBudW1iZXJDb25zdHJ1Y3RvckZ1bmNJc0ludGVnZXIoRXhlY1N0YXRlKiBleGVjKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKaW5k
ZXggNTFlNGZhMzA0OWIzZDRhMzFlY2Q0YjQ4NzQ3MmI3MTgwNDUwYmVjOC4uMTBmNThhMjVlY2Rm
NjM4MGVkZTU2OWI0YmRlMWQ5Mjc0OWZkNWZmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNz
IE51bWJlckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAgICAgeyAKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25U
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAogcHJvdGVjdGVkOgpAQCAt
NTEsOCArNTEsNiBAQCBjbGFzcyBOdW1iZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1
bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBOdW1iZXJDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVy
ZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwg
Q29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZjY3MGJk
MzI0MDA3NjRmMzlhNjFmMzQ0ZDQ4Y2E2YmQzNjg4Y2ViMC4uMWU0MDc1MThkYTQwMzY5ZTNiZTlk
OWY5MmQ2YmM5MzRkMmIxOWMyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtOTAsOCArOTAsMTIgQEAgY29uc3QgQ2xh
c3NJbmZvIE9iamVjdENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5h
bEZ1bmN0aW9uOjpzX2kKIEBlbmQKICovCiAKKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0T2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0
YXRlKik7CisKIE9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJl
KQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsT2JqZWN0Q29uc3Ry
dWN0b3IsIGNvbnN0cnVjdE9iamVjdENvbnN0cnVjdG9yKQogewogfQogCkBAIC0xMzgsMjggKzE0
MiwxNiBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU09iamVjdCogY29uc3RydWN0T2JqZWN0KEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBuZXdUYXJnZQogICAgIHJldHVybiBhcmcudG9PYmplY3Qo
ZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0V2l0aE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE9iamVjdENvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0
cnVjdE9iamVjdChleGVjLCBleGVjLT5uZXdUYXJnZXQoKSkpOwogfQogCi1Db25zdHJ1Y3RUeXBl
IE9iamVjdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24g
PSBjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5
cGU6Okhvc3Q7Ci19Ci0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxP
YmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShjb25zdHJ1Y3RPYmplY3QoZXhlYywgSlNWYWx1ZSgpKSk7CiB9CiAKLUNhbGxUeXBl
IE9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERh
dGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE9iamVjdENvbnN0cnVj
dG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggMTBmOTJkMmM5MmMwMTRkMWYw
MjllZGZlN2E1Mzk3ZWMzMzE3YTE3Ni4uM2JkMDMwYWZkZWRhZGJjNzczNmU2N2ExNjA4OGU2NmI1
OTI4NjRmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIE9iamVjdENvbnN0cnVjdG9yIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01OCw4ICs1OCw2IEBA
IGNsYXNzIE9iamVjdENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBw
cml2YXRlOgogICAgIE9iamVjdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
CiB9OwogCiBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEVtcHR5T2JqZWN0KEV4ZWNTdGF0ZSog
ZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCmluZGV4IDFmM2M0MjZmYzgwY2FhZmQ4YjM2
YWIzZDAyYWYxOTM5Zjc5NjgzOGQuLjU4ZTEyNDI2YTQyYjUxNjExZTgzMjE1OGU1MzAxNjhhYmEz
N2RmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29u
c3RydWN0b3IuY3BwCkBAIC00OCw4ICs0OCwxMSBAQCBQcm94eUNvbnN0cnVjdG9yKiBQcm94eUNv
bnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICByZXR1
cm4gY29uc3RydWN0b3I7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxQcm94eShFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdFByb3h5T2JqZWN0KEV4ZWNTdGF0ZSopOworCiBQcm94eUNvbnN0cnVjdG9y
OjpQcm94eUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBC
YXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxQcm94eSwg
Y29uc3RydWN0UHJveHlPYmplY3QpCiB7CiB9CiAKQEAgLTEwMywyMiArMTA2LDEwIEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb3h5T2JqZWN0KEV4ZWNT
dGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFByb3h5T2JqZWN0OjpjcmVh
dGUoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCB0YXJnZXQsIGhhbmRsZXIpKTsK
IH0KIAotQ29uc3RydWN0VHlwZSBQcm94eUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RQcm94eU9iamVjdDsKLSAgICByZXR1cm4gQ29u
c3RydWN0VHlwZTo6SG9zdDsKLX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbFByb3h5KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRShleGVjLT52bSgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRo
cm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZXhlYywgc2Nv
cGUsICJQcm94eSIpKTsKIH0KIAotQ2FsbFR5cGUgUHJveHlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNhbGxQcm94eTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJveHlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlDb25zdHJ1Y3Rvci5oCmluZGV4IDQ4ZjUzYzgyYjNmZDY5ZTNmNDE5Y2I3ZWVkNzdhNTE5N2My
OTg2NjIuLmJhYzYwZDI0MzJhMmE2NjYxMjIzMmE4OWVhODAwNzk0MDNjNWRjYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmgKQEAgLTQw
LDE1ICs0MCwxMyBAQCBjbGFzcyBQcm94eUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsg
Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7IAogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBjb25zdCBjaGFyKiBu
YW1lLCBKU0dsb2JhbE9iamVjdCopOwogCiBwcml2YXRlOgogICAgIFByb3h5Q29uc3RydWN0b3Io
Vk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBn
ZXRHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5
UmV2b2tlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmNw
cAppbmRleCBhNWZjYTc4ZDNlODNjNWFmNThlOWU1MzA5OGQzNWQ4ZjhlYjkxN2FmLi5mODc1ZjY1
ZDQ1MTM5NDk3MDY0ZDkzNmE5NzRhNzlkZjYwOGVlYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuY3BwCkBAIC00Miw4ICs0MiwxMCBAQCBQcm94eVJl
dm9rZSogUHJveHlSZXZva2U6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQ
cm94eU9iamVjdCogcHJveAogICAgIHJldHVybiByZXZva2U7CiB9CiAKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHBlcmZvcm1Qcm94eVJldm9rZShFeGVjU3RhdGUqKTsKKwog
UHJveHlSZXZva2U6OlByb3h5UmV2b2tlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0g
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIHBlcmZv
cm1Qcm94eVJldm9rZSwgbnVsbHB0cikKIHsKIH0KIApAQCAtNjksMTIgKzcxLDYgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcGVyZm9ybVByb3h5UmV2b2tlKEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1DYWxsVHlwZSBQcm94eVJldm9rZTo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNh
bGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IHBlcmZvcm1Qcm94eVJl
dm9rZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIHZvaWQgUHJveHlSZXZva2U6
OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAg
ICBQcm94eVJldm9rZSogdGhpc09iamVjdCA9IGpzQ2FzdDxQcm94eVJldm9rZSo+KGNlbGwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmgKaW5kZXggZTAyOGE3
ZGE2YmYyZDM1Y2IwZmQzZGYzYjIyMzQ5ZTRiM2NkZWU3OS4uMTI2ODc2ZWY2ZjNiZTE2NWNjZDZj
YjViNDFmODNhNGFmNjNhM2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJveHlSZXZva2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm94eVJldm9rZS5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFByb3h5UmV2b2tlIDogcHVibGlj
IEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7IAogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBj
b25zdCBjaGFyKiBuYW1lLCBQcm94eU9iamVjdCopOwpAQCAtNTIsNyArNTIsNiBAQCBjbGFzcyBQ
cm94eVJldm9rZSA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBQ
cm94eVJldm9rZShWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1f
cHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwCmluZGV4IDFjNjdkYzVlMDNhYTMyYWE2YWQ2ZWYxMDg2ZTBiN2MyZjI2
ZGE3MjYuLjBmNTJhYTI0YWIzZTRmZmFlZmE1MTUzYzdiZjlmMzJhNjBjODcwZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAK
QEAgLTc2LDggKzc2LDEyIEBAIGNvbnN0IENsYXNzSW5mbyBSZWdFeHBDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiBAZW5kCiAqLwogCisK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSZWdFeHBDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogUmVnRXhwQ29uc3RydWN0
b3I6OlJlZ0V4cENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4
cFByb3RvdHlwZSogcmVnRXhwUHJvdG90eXBlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwg
c3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsUmVn
RXhwQ29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvcikKICAgICAsIG1f
Y2FjaGVkUmVzdWx0KHZtLCB0aGlzLCByZWdFeHBQcm90b3R5cGUtPmVtcHR5UmVnRXhwKCkpCiAg
ICAgLCBtX211bHRpbGluZShmYWxzZSkKIHsKQEAgLTMxMCwyMiArMzE0LDEwIEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RSZWdF
eHAoZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmpl
Y3QoKSwgYXJncywgZXhlYy0+anNDYWxsZWUoKSwgZXhlYy0+bmV3VGFyZ2V0KCkpKTsKIH0KIAot
Q29uc3RydWN0VHlwZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwq
LCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9yOwotICAgIHJldHVy
biBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsUmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFy
Z0xpc3QgYXJncyhleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJl
Z0V4cChleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9i
amVjdCgpLCBhcmdzLCBleGVjLT5qc0NhbGxlZSgpKSk7CiB9CiAKLUNhbGxUeXBlIFJlZ0V4cENv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0g
ICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFJlZ0V4cENvbnN0cnVjdG9yOwotICAg
IHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCA2
ZDc0NjI3OTMzMTYzZTM1ZjUwYTNhYjg4ODYzNzY2MjQ0MTQ1MWRkLi5kYTc2MGVjMDRmMGE3ODI3
YWE2NTdjY2RiNjc5MjhjMWQ2ZWUwYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgUmVn
RXhwQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5j
dGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBERUNMQVJF
X0lORk87CkBAIC03NCw4ICs3NCw2IEBAIGNsYXNzIFJlZ0V4cENvbnN0cnVjdG9yIDogcHVibGlj
IEludGVybmFsRnVuY3Rpb24gewogcHJpdmF0ZToKICAgICBSZWdFeHBDb25zdHJ1Y3RvcihWTSYs
IFN0cnVjdHVyZSosIFJlZ0V4cFByb3RvdHlwZSopOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3ko
SlNDZWxsKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7CiAKICAgICBSZWdFeHBDYWNoZWRSZXN1bHQgbV9jYWNoZWRSZXN1
bHQ7CiAgICAgYm9vbCBtX211bHRpbGluZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NldENvbnN0cnVjdG9yLmNwcAppbmRleCA3ODQzNzVhMjM5NDAxNzQzMGZjYmJkODY5
ZmI1ZjZkZDg3Zjc1NDA3Li5hNWM2YzE3MzhlOTI5MjEzMzZiNzRmYzkwNmE3OTAxYjhkMzlkYTky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3Iu
Y3BwCkBAIC00Nyw2ICs0NywxNCBAQCB2b2lkIFNldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIFNldFByb3RvdHlwZSogc2V0UHJvdG90eXBlLCBHZXR0ZXJTZQogICAgIHB1dERp
cmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIHZtLnByb3BlcnR5TmFtZXMtPnNwZWNpZXNTeW1ib2ws
IHNwZWNpZXNTeW1ib2wsIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IFByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTZXQoRXhlY1N0YXRlKik7Citz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTZXQoRXhlY1N0YXRl
Kik7CisKK1NldENvbnN0cnVjdG9yOjpTZXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsU2V0LCBjb25zdHJ1Y3RT
ZXQpCit7Cit9CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTZXQo
RXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC05OCwxOCAr
MTA2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2V0
KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldCk7CiB9CiAK
LUNvbnN0cnVjdFR5cGUgU2V0Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwg
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFNldDsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9z
dDsKLX0KLQotQ2FsbFR5cGUgU2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxs
U2V0OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEhlYWQoRXhlY1N0YXRlKiBleGVjKQog
ewogICAgIEFTU0VSVChpc0pTU2V0KGV4ZWMtPmFyZ3VtZW50KDApKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuaAppbmRleCA0NWYwMTMwNjUwMmY2
OTcyMjBkNTQ1YjQ3MTBiMGM2NTAxZjY3ODQyLi5kZDRhNGQxOGI2Yzg5YjdlYzhlOTE2ZTM5NmNh
NzlhOGM1Yjg4NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
ZXRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENv
bnN0cnVjdG9yLmgKQEAgLTQ3LDE3ICs0NywxMiBAQCBjbGFzcyBTZXRDb25zdHJ1Y3RvciA6IHB1
YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTZXRDb25zdHJ1Y3RvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKLSAgICB7Ci0gICAgfQorICAgIFNldENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFNldFByb3RvdHlwZSosIEdldHRlclNldHRlciog
c3BlY2llc1N5bWJvbCk7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHNldFByaXZhdGVGdW5jU2V0QnVja2V0SGVhZChFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCAz
Nzk5NmE4MjEzYmFlMjVlOTVlMTgxMjk5ZWZkMTk0MTA5ZDg1ZTU5Li4xMDY5ZWZlNmQwYTJjYmE1
MWI5ODE4ZjJjYjI3ZGNiODVjZjhmMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC01Miw4ICs1MiwxMiBAQCBjb25z
dCBDbGFzc0luZm8gU3RyaW5nQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJklu
dGVybmFsRnVuY3Rpb246OnNfaQogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVD
VElCTEUoU3RyaW5nQ29uc3RydWN0b3IpOwogCisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqKTsKKwogU3RyaW5nQ29uc3RydWN0b3I6OlN0cmluZ0NvbnN0cnVjdG9yKFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1
Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxTdHJpbmdD
b25zdHJ1Y3RvciwgY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKQogewogfQogCkBAIC0x
MzQsMTIgKzEzOCw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShTdHJpbmdPYmplY3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCBzdHIpKTsKIH0K
IAotQ29uc3RydWN0VHlwZSBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yOwotICAgIHJl
dHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCiBKU0NlbGwqIHN0cmluZ0NvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBhcmd1bWVudCkKIHsKICAgICBpZiAoYXJndW1lbnQu
aXNTeW1ib2woKSkKQEAgLTE1NCwxMCArMTUyLDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHN0cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIGV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KDApKSk7CiB9CiAKLUNhbGxUeXBlIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY2FsbFN0cmluZ0NvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlw
ZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAppbmRleCAxYmQxZTIxMjY0OTZiYzVk
OGU5NWQ2NTk4YjlmZTUyNmE2M2RkYmIxLi45OWFhZmU4MDg4MWI1YzcxMmY0NmVlMjY5OGQwZTZj
ZTAyZmE2ZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z0NvbnN0cnVjdG9yLmgKQEAgLTQzLDE0ICs0MywxMiBAQCBjbGFzcyBTdHJpbmdDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBTdHJpbmdDb25z
dHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBT
dHJpbmdQcm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIEpTQ2VsbCogSlNDX0hPU1RfQ0FMTCBz
dHJpbmdGcm9tQ2hhckNvZGUoRXhlY1N0YXRlKiwgaW50MzJfdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTc2MWY0
MTU5ODFlZmMyYzFmYjdlNDhmZDI1ODBmMmFkZmVjNzdkMC4uYjUxNTI1OTIxMWM0MjA1NDc1ZDAw
ZjM0YmJjMzBmNTU3ZDkyMWFjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmNwcApAQCAtNTYsOCArNTYsMTAgQEAgY29uc3QgQ2xh
c3NJbmZvIFN5bWJvbENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpz
X2luZm8sICZzeW1ib2wKIEBlbmQKICovCiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxTeW1ib2woRXhlY1N0YXRlKik7CisKIFN5bWJvbENvbnN0cnVjdG9yOjpTeW1i
b2xDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJu
YWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3Ry
dWN0dXJlLCBjYWxsU3ltYm9sLCBudWxscHRyKQogewogfQogCkBAIC04MywxNyArODUsNiBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3ltYm9sKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFN5bWJvbDo6Y3JlYXRlKGV4ZWMsIGRl
c2NyaXB0aW9uLnRvU3RyaW5nKGV4ZWMpKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgU3ltYm9sQ29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpCi17Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7Ci19Ci0KLUNhbGxUeXBlIFN5bWJvbENvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAg
Y2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFN5bWJvbDsKLSAgICByZXR1cm4gQ2FsbFR5
cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sQ29uc3Ry
dWN0b3JGb3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuaApp
bmRleCA1OGMzNTE4ZTQ3ZDkzMTIwNDZjYmU2MGVhMzhmZjBlNzAwNGMxNDY4Li41YmQwNTk0Nzgy
N2MzMjYxMzQzYmI4YzlkYmUyOWI1NWNhN2Y5ZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xh
c3MgU3ltYm9sQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJu
YWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByb3Rl
Y3RlZDoKQEAgLTU3LDggKzU3LDYgQEAgY2xhc3MgU3ltYm9sQ29uc3RydWN0b3IgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgU3ltYm9sQ29uc3RydWN0b3IoVk0m
LCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggYmIwZTA2ODUxYzYwMTA4MjBlODZlODExZWNhNTZjM2NjMjkzMjczZC4uNjIzYjYyNjE4
MWZhMTVlOTJiNjgxM2E5M2RmMzBkOTRiZjM3MjU3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCkBAIC00NSw2ICs0NSwx
NCBAQCB2b2lkIFdlYWtNYXBDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWFr
TWFwUHJvdG90eXBlKiBwcm90b3R5cGUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKK3N0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWFrTWFwKEV4ZWNTdGF0ZSopOwor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha01hcChFeGVj
U3RhdGUqKTsKKworV2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbFdl
YWtNYXAsIGNvbnN0cnVjdFdlYWtNYXApCit7Cit9CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxXZWFrTWFwKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwpAQCAtOTcsMTYgKzEwNSw0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtNYXAoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUod2Vha01hcCk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2Vha01hcENv
bnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0
cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1
Y3RXZWFrTWFwOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlw
ZSBXZWFrTWFwQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
RGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsV2Vha01hcDsKLSAg
ICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmgKaW5kZXggNTlmMmNhYWRlMGNhMzU3
YzJhYTAwMjczNjM0NmFhNzMwNWZlOTYwNi4uYzkzZTQxMjUxZWM2MGE5MDhiM2RjYmMyYWYxNjI1
ZjExMWZkYzFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vh
a01hcENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vh
a01hcENvbnN0cnVjdG9yLmgKQEAgLTQ3LDE3ICs0NywxMiBAQCBjbGFzcyBXZWFrTWFwQ29uc3Ry
dWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgV2Vha01h
cENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFz
ZSh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9CisgICAgV2Vha01hcENvbnN0cnVjdG9yKFZN
JiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFdlYWtNYXBQcm90
b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2Vs
bCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
MDg2YmJjYWQ4YmJiMzU2MTJhYjQ4YjUzYjYxODE0NTJjMjQxYTAxZC4uNjZiYzc1MjdjYTJjYjhk
ODZlMTM5MmVlZTVjMWFkOWNhOGUyNzJiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3BwCkBAIC00NSw2ICs0NSwxNCBAQCB2
b2lkIFdlYWtTZXRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWFrU2V0UHJv
dG90eXBlKiBwcm90b3R5cGUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWFrU2V0KEV4ZWNTdGF0ZSopOworc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha1NldChFeGVjU3RhdGUq
KTsKKworV2Vha1NldENvbnN0cnVjdG9yOjpXZWFrU2V0Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbFdlYWtTZXQs
IGNvbnN0cnVjdFdlYWtTZXQpCit7Cit9CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxXZWFrU2V0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwpAQCAtODMsMTYgKzkxLDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0V2Vha1NldChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh3ZWFrU2V0KTsKIH0KIAotQ29uc3RydWN0VHlwZSBXZWFrU2V0Q29uc3RydWN0
b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdlYWtT
ZXQ7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdlYWtT
ZXRDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQot
ewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxXZWFrU2V0OwotICAgIHJldHVy
biBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuaAppbmRleCA2OTNjMTBiZjhkYjRlZjBlY2QwYzQ3
YjQ0MDBiYmQ3Njc3ZmJiYzBlLi41ZTZmYjgyOGYxNzNiM2E0YzAzNWMyYjA0ZmYzYWQ1NzMzODE3
ZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29u
c3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29u
c3RydWN0b3IuaApAQCAtNDcsMTcgKzQ3LDEyIEBAIGNsYXNzIFdlYWtTZXRDb25zdHJ1Y3RvciA6
IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBXZWFrU2V0Q29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBCYXNlKHZtLCBz
dHJ1Y3R1cmUpCi0gICAgewotICAgIH0KKyAgICBXZWFrU2V0Q29uc3RydWN0b3IoVk0mLCBTdHJ1
Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgV2Vha1NldFByb3RvdHlwZSop
OwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29u
c3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDk4MmRmN2Y0MDhjMTdlZjI5N2ViNTNkYmU4ODk3Njli
NzJiYjFjOGIuLmFjNGQ4ZmNjMGE0YWI0MDkyNzlkYmZlNmE4MDc0Nzg5M2U2YzcxNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFdl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3I6OmNyZWF0ZShWCiAKIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlDb21waWxlRXJy
b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseUNvbXBp
bGVFcnJvclByb3RvdHlwZSogcHJvdG90eXBlKQpAQCAtODEsMjIgKzgxLDEwIEBAIHZvaWQgV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBX
ZWJBc3NlbWJseUNvbXBpCiB9CiAKIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6
OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIGNvbnN0cnVjdEpTV2ViQXNzZW1i
bHlDb21waWxlRXJyb3IpCiB7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
JiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y29uc3RydWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0
VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNh
bGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOwot
ICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmgKaW5kZXggMzRhMGU3OGMwNDY0NjcwOWQ2ZjJlNWNhNzY4NzIxMWY3YTk3MjQ3Ny4uNWI3
NWJjODEwNDI2NTY0NmY1MTg2NTZlZjU1NzMzY2FjMTM2YWM2MSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yQ29uc3RydWN0b3IuaApAQCAtNDksOCArNDksNiBAQCBjbGFzcyBXZWJBc3NlbWJseUNv
bXBpbGVFcnJvckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2
YXRlOgogICAgIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1
cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCos
IENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxs
KiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggYTlkOGYwZDY2YmNkMDMyNTE3MjYwYjY4NTg3NzQ3ZWRlYTVj
NmYwMS4uMDBhYWVkYWE4NzVjMGMyMjZiOThjYjk0NGIwODZlYTFiMTc4ZmI1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCkBAIC05OSw3ICs5OSw3IEBAIFdlYkFzc2VtYmx5SW5z
dGFuY2VDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpjcmVhdGUo
Vk0mIHZtLCBTCiAKIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKIH0KIAogdm9pZCBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZSogcHJvdG90
eXBlKQpAQCAtMTEwLDIyICsxMTAsMTAgQEAgdm9pZCBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlJbnN0YW5jZVAKIH0KIAog
V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlJbnN0YW5j
ZSwgY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlKQogewogfQogCi1Db25zdHJ1Y3RUeXBl
IFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwq
LCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlOwotICAgIHJldHVy
biBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJseUluc3RhbmNl
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsK
LSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseUluc3RhbmNl
OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5o
CmluZGV4IDZkOWVkM2MwMGI3M2FkNjg3ZGE2OWFhYjNkOGU3MzkwMzhkOTI2MDMuLmEyMWQ5MWFj
M2IyMzNiNzk5Mzg3ZTFhYjYwNGMzOGYyOWE3MTY0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3Rvci5oCkBAIC01Myw4ICs1Myw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3Nl
bWJseUluc3RhbmNlQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29u
c3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRl
eCBiMTdkNThhYmU2NjU4MmZhYWQ3YWRjYTc2NjE1NzIyYmQyNGEzZWU2Li5hZjA5MTdhYWI0ZGM2
OWYxNjFiNDIyYWVhOTgyNmU5ZDExYTI5Mjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVj
dG9yLmNwcApAQCAtNzAsNyArNzAsNyBAQCBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9y
KiBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLAogCiBTdHJ1
Y3R1cmUqIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQog
ewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQog
CiB2b2lkIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgV2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSkKQEAgLTgxLDIy
ICs4MSwxMCBAQCB2b2lkIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlMaW5rRXJybwogfQogCiBXZWJBc3NlbWJseUxpbmtF
cnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBC
YXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCBjb25zdHJ1Y3RK
U1dlYkFzc2VtYmx5TGlua0Vycm9yKQogewogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5
TGlua0Vycm9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0
RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I7Ci0gICAgcmV0dXJuIENvbnN0cnVj
dFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseUxpbmtFcnJvcjsKLSAgICBy
ZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4
IGM3MDBjNjMzMDE0ZmJmYWFmYTBhYmI5MzJjZDcwZTliOWZlOTMwOTUuLmUyOTEyOTdiZGFlY2Fk
NzFlMjRlMTI3NzIwZmVjNDViMjg3NDgxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9y
LmgKQEAgLTQ5LDggKzQ5LDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJs
eUxpbmtFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjQ5ODli
NWM0YzI2YTFjY2M1YjdiYzc3ZDEyMjkxMWM3MWI0MDJmYy4uYTU4Y2MzODE0NDI3M2UwZWYxMDll
Y2JmZDdkODAxY2IyNzQ0YzcyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKQEAgLTkx
LDggKzkxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
SlNXZWJBc3NlbWJseU1lbW9yeShFeGVjU3RhdGUqIGV4ZWMKIAogICAgICAgICAgICAgaWYgKGlu
aXRpYWxQYWdlQ291bnQgPiBtYXhpbXVtUGFnZUNvdW50KSB7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihleGVjLCB0aHJvd1Njb3BlLAotICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiJ21h
eGltdW0nIHBhZ2UgY291bnQgbXVzdCBiZSB0aGFuIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0
aGUgJ2luaXRpYWwnIHBhZ2UgY291bnQiKSkpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIidtYXhpbXVtJyBw
YWdlIGNvdW50IG11c3QgYmUgdGhhbiBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlICdpbml0
aWFsJyBwYWdlIGNvdW50IikpKSk7IH0KICAgICAgICAgfQogICAgIH0KIApAQCAtMTIyLDcgKzEy
MSw3IEBAIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IqIFdlYkFzc2VtYmx5TWVtb3J5Q29u
c3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjCiAKIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlN
ZW1vcnlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25U
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNzZW1ibHlNZW1v
cnlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseU1lbW9yeVBy
b3RvdHlwZSogcHJvdG90eXBlKQpAQCAtMTMzLDIyICsxMzIsMTAgQEAgdm9pZCBXZWJBc3NlbWJs
eU1lbW9yeUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5TWVt
b3J5UHJvdG8KIH0KIAogV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlN
ZW1vcnlDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFz
ZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSlNXZWJBc3Nl
bWJseU1lbW9yeSwgY29uc3RydWN0SlNXZWJBc3NlbWJseU1lbW9yeSkKIHsKIH0KIAotQ29uc3Ry
dWN0VHlwZSBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TWVtb3J5OwotICAgIHJl
dHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJseU1lbW9y
eUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17
Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNzZW1ibHlNZW1vcnk7
Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaAppbmRl
eCAyMDYxZTI0OGYzMzk1YjY3ZDJjMmU0YjE4Y2U0MmI5NjgyMjFlYzVjLi5lYTY0NjBiMWJjNzFi
YTI4OTQ1ZTcyZTk1OTRjNmNmYzkzYmRlMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oCkBA
IC00OSw4ICs0OSw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IgOiBwdWJs
aWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlNZW1vcnlD
b25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxs
VHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCmluZGV4IDk2MTAyNGQyNTJjOTI0NTU2
M2NjMTE4NjA5N2MzM2ZmMTc4NzQ5MzAuLjAxNmY5NDY4NjM1ZGMxNGU3OGJjYjIxYzI0ZWYzODcx
NjUyODc1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCkBAIC0xOTYsNyArMTk2LDcg
QEAgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1
Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWMKIAogU3RydWN0dXJlKiBXZWJBc3NlbWJseU1vZHVs
ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAogdm9pZCBXZWJBc3NlbWJseU1vZHVsZUNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90
eXBlKiBwcm90b3R5cGUpCkBAIC0yMDcsMjIgKzIwNywxMCBAQCB2b2lkIFdlYkFzc2VtYmx5TW9k
dWxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlNb2R1bGVQ
cm90bwogfQogCiBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseU1vZHVs
ZUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2VtYmx5
TW9kdWxlLCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TW9kdWxlKQogewogfQogCi1Db25zdHJ1Y3RU
eXBlIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxs
KiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNb2R1bGU7Ci0gICAgcmV0dXJu
IENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdlYkFzc2VtYmx5TW9kdWxlQ29u
c3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAg
ICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseU1vZHVsZTsKLSAg
ICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oCmluZGV4IDYw
MjVjOTgwMzllOWNkZWNkNjBhZjYzNDIyNWU5YjI5ZDUwMzE2MjMuLmQ1MDE1MzUzOTQwNWRlNjk1
OWJjMDgzNDEyYzdiMTYzMTg3MjdjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgKQEAgLTUx
LDggKzUxLDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvciA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseU1vZHVsZUNvbnN0
cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBl
IGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjQ1Zjk2NzVk
NzFiYmQxNWEwNjI4ZTc4OTM1YWJlZmQyODYyOWY3Yi4uZGFiYzdlMDljOTNmMjQ0NTc1Mjc2OTAz
NTFhYzIwNTkwODU0NGQzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKQEAgLTgxLDIyICs4MSwxMCBAQCB2b2lkIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlSdW50aQogfQogCiBXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNv
bnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBz
dHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yLCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKQogewogfQogCi1D
b25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBj
b25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBl
IFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBj
YWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDc3ZmI2ZTQ1YWVjYzg2
MDM1N2U0ODFhZDhjMmY1NWI4ZmJkZDhlOTIuLjk0YWU2YjlhNWYxY2VjNTc3Njk4ZmMwMzNhYjQw
ZjgyZTMzMzAyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQ5
LDggKzQ5LDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3RvciA6IHB1
YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVj
dFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3Rh
dGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCmluZGV4IDExODY1ZjVjNGZi
N2UzZDk0NmZlYjc4MmVhOGU1MDE1NDA1YThmZDEuLjU5N2ZkMTVjNDZkNjQyY2VmN2FmNzg5NWEw
ODUyNzBkYjUxNWNlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcApAQCAtMTEwLDcgKzEx
MCw3IEBAIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlUYWJsZUNvbnN0
cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1CiAKIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlU
YWJsZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAogdm9pZCBXZWJBc3NlbWJseVRhYmxl
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlUYWJsZVByb3Rv
dHlwZSogcHJvdG90eXBlKQpAQCAtMTIxLDIyICsxMjEsMTAgQEAgdm9pZCBXZWJBc3NlbWJseVRh
YmxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlUYWJsZVBy
b3RvdHkKIH0KIAogV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseVRhYmxl
Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0s
IHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlU
YWJsZSwgY29uc3RydWN0SlNXZWJBc3NlbWJseVRhYmxlKQogewogfQogCi1Db25zdHJ1Y3RUeXBl
IFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY29uc3RydWN0SlNXZWJBc3NlbWJseVRhYmxlOwotICAgIHJldHVybiBDb25z
dHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseVRhYmxlOwotICAgIHJldHVy
biBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCmluZGV4IDVhZGViYjM3NjE3
MWMzNGVjMzdiYzlkMjBlMTdiM2I2ZDQ1ZTkxNTEuLjM2NDY4ZDBiM2VkZDNhMGI4ZTBjYTZlZGJh
MjBiYzBjMTI2OWJhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oCkBAIC00OSw4ICs0OSw2IEBA
IGNsYXNzIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0
aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IoVk0mLCBT
dHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKaW5kZXggOTEwYTcwMmJhOWNlYmIyYWVhYmZl
ODNlMzQxYzdiYjkxOWZhMzEwMS4uMjU1ZDg0MTVjYjMyYmQ3Y2Y4ZWFmNjkyYjFjNWQ2NzExMWEx
NTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCkBAIC00MSw5
ICs0MSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgQmluZGluZ3M7CiAKIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IENsYXNzSW5mbyBSdW50aW1lTWV0aG9kOjpzX2luZm8gPSB7ICJSdW50aW1lTWV0aG9kIiwg
JkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShSdW50aW1lTWV0aG9kKSB9OwogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsUnVudGltZU1ldGhvZChFeGVjU3RhdGUqKTsKKwogUnVudGltZU1ldGhvZDo6
UnVudGltZU1ldGhvZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgTWV0aG9kKiBtZXRob2QpCiAgICAgLy8gQ2FsbGVycyB3aWxsIG5lZWQgdG8gcGFz
cyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgbmF0aXZl
IG9iamVjdCAibWV0aG9kIi4KLSAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LT52
bSgpLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdC0+dm0o
KSwgc3RydWN0dXJlLCBjYWxsUnVudGltZU1ldGhvZCwgbnVsbHB0cikKICAgICAsIG1fbWV0aG9k
KG1ldGhvZCkKIHsKIH0KQEAgLTExMCwxMCArMTEyLDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotQ2FsbFR5cGUgUnVudGltZU1ldGhv
ZDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxSdW50aW1lTWV0aG9kOwotICAgIHJldHVybiBDYWxs
VHlwZTo6SG9zdDsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApp
bmRleCA3YzI3NWFjYzBlM2UxMjJkNGQ2YzdmYmI0ZTUxNmRjMzU4ZjNkZDZmLi5lMjc2NWY2MTQ2
Mjc3YmY2OWFkYWNkYjdhMGE0ZWQ2ODE2NGY4Njk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuaApAQCAtNjIsNyArNjIsNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50
aW1lTWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHJvdGVjdGVkOgogICAgIFJ1
bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBCaW5kaW5nczo6TWV0aG9k
Kik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIGNvbnN0IFN0cmluZyYpOwotICAgIHN0
YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324379</attachid>
            <date>2017-10-20 02:12:19 -0700</date>
            <delta_ts>2017-10-20 06:11:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144458-20171020181218.patch</filename>
            <type>text/plain</type>
            <size>178236</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzNzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
Nzg2NTJkYTUyYTYwM2M1MWNiYjU0ODA3MDQwYjA4YTRjNmQ1ZjMyLi5mNjcxNThjMTI4MWQ0Nzg5
ZTM1NWI3NWJjNTM0YzFhYWMyZTQ3Zjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNDEgQEAKIDIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CiAKKyAgICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2Fs
bHMgdG8gb2JqZWN0cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkg
b25seSBKU0Z1bmN0aW9uIGlzIGhhbmRsZWQgYnkgQ2FsbExpbmtJbmZvJ3MgY2FjaGluZyBtZWNo
YW5pc20uIFRoaXMgbWVhbnMgdGhhdCBhbnkKKyAgICAgICAgSW50ZXJuYWxGdW5jdGlvbiBjYWxs
cyBhcmUgbm90IGNhY2hlZCBhbmQgdGhleSBhbHdheXMgZ28gdG8gdGhlIHNsb3cgcGF0aC4gVGhp
cyBpcyBub3QgZ29vZCBiZWNhdXNlCisKKyAgICAgICAgMS4gV2UgbmVlZCB0byBxdWVyeSBnZXRD
YWxsRGF0YS9nZXRDb25zdHJ1Y3REYXRhIGV2ZXJ5IHRpbWUgaW4gdGhlIHNsb3cgcGF0aC4KKyAg
ICAgICAgMi4gQ2FsbExpbmtJbmZvIHRlbGxzIG5vdGhpbmcgaW4gdGhlIGhpZ2hlciB0aWVyIEpJ
VHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzdGFydHMgaGFuZGxpbmcgSW50ZXJuYWxGdW5jdGlv
biBpbiBDYWxsTGlua0luZm8ncyBjYWNoaW5nIG1lY2hhbmlzbS4gV2UgY2hhbmdlIEludGVybmFs
RnVuY3Rpb24KKyAgICAgICAgdG8gaG9sZCBwb2ludGVycyB0byB0aGUgZnVuY3Rpb25zIGZvciBj
YWxsIGFuZCBjb25zdHJ1Y3QuIFdlIGhhdmUgbmV3IHN0dWJzIHRoYXQgY2FuIGNhbGwvY29uc3Ry
dWN0CisgICAgICAgIEludGVybmFsRnVuY3Rpb24uIEFuZCB3ZSByZXR1cm4gdGhpcyBjb2RlIHBv
aW50ZXIgYXMgYSByZXN1bHQgb2Ygc2V0dXAgY2FsbCB0byB1c2UgQ2FsbExpbmtJbmZvIG1lY2hh
bmlzbS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGNyaXRpY2FsIHRvIG9wdGltaXppbmcgZGVy
aXZlZCBBcnJheSBjb25zdHJ1Y3Rpb25bMV0gc2luY2UgaXQgc3RhcnRzIHVzaW5nIENhbGxMaW5r
SW5mbworICAgICAgICBmb3IgSW50ZXJuYWxGdW5jdGlvbi4gUHJldmlvdXNseSB3ZSBkbyBub3Qg
cmVjb3JkIGFueSBpbmZvcm1hdGlvbiB0byBDYWxsTGlua0luZm8uIEV4Y2VwdCBmb3IgdGhlCisg
ICAgICAgIGNhc2UgdGhhdCBERkdCeXRlQ29kZVBhcnNlciBmaWd1cmVzIG91dCBJbnRlcm5hbEZ1
bmN0aW9uIGNvbnN0YW50LCB3ZSBjYW5ub3QgYXR0ZW1wdCB0byBlbWl0IERGRworICAgICAgICBu
b2RlcyBmb3IgdGhlc2UgSW50ZXJuYWxGdW5jdGlvbnMgc2luY2UgQ2FsbExpbmtJbmZvIHRlbGxz
IG5vdGhpbmcuIFRoaXMgcGF0Y2ggdGVhY2hlcyBDYWxsTGlua0luZm8KKyAgICAgICAgaGFuZGxp
bmcgSW50ZXJuYWxGdW5jdGlvbiB0b28uCisKKyAgICAgICAgQXR0YWNoZWQgbWljcm9iZW5jaG1h
cmtzIHNob3cgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQuCisKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAg
ICAgICAgICBwYXRjaGVkCisKKyAgICAgICAgZGZnLWludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVj
dCAgICAgICAgICAgICAgICAgMS42NDM5Ky0wLjA4MjYgICAgIF4gICAgICAxLjI4MjkrLTAuMDcy
NyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMjgxM3ggZmFzdGVyCisgICAgICAgIGRmZy1pbnRlcm5h
bC1mdW5jdGlvbi1ub3QtaGFuZGxlZC1jb25zdHJ1Y3QgICAgIDIuMTg2MistMC4xMzYxICAgICAg
ICAgICAgMi4wNjk2Ky0wLjEyMDEgICAgICAgICAgbWlnaHQgYmUgMS4wNTY0eCBmYXN0ZXIKKyAg
ICAgICAgZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwgICAgICAgICAyMC43
NTkyKy0wLjkwODUgICAgICAgICAgIDE5LjczNjkrLTAuNzkyMSAgICAgICAgICBtaWdodCBiZSAx
LjA1MTh4IGZhc3RlcgorICAgICAgICBkZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbCAgICAgICAg
ICAgICAgICAgICAgICAxLjY4NTYrLTAuMDk2NyAgICAgXiAgICAgIDEuMjc3MSstMC4wNzQ0ICAg
ICAgICBeIGRlZmluaXRlbHkgMS4zMTk4eCBmYXN0ZXIKKworICAgICAgICBbMV06IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgwNjQKKworICAgICAgICAqIEFQSS9K
U0NhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246
OkpTQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6
Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
aDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIEFQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpPYmpD
Q2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvT2JqQ0Nh
bGxiYWNrRnVuY3Rpb24ubW06CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9uOjpP
YmpDQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9u
OjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0
aW9uOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9CeXRl
Y29kZUR1bXBlci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJp
bnRDYWxsT3ApOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5m
bzo6c2V0Q2FsbGVlKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjYWxsZWUpOgorICAg
ICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNldExhc3RTZWVuQ2FsbGVlKToKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjpsYXN0U2VlbkNhbGxlZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5r
SW5mbzo6dmlzaXRXZWFrKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAg
ICAgICAgKiBieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OkNhbGxM
aW5rU3RhdHVzOjpjb21wdXRlRnJvbUNhbGxMaW5rSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUv
TExJbnRDYWxsTGlua0luZm8uaDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6Cisg
ICAgICAgICogaml0L0pJVFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3Rp
SW50ZXJuYWxGdW5jdGlvbkNhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aUludGVy
bmFsRnVuY3Rpb25Db25zdHJ1Y3QpOgorICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAg
ICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OmxpbmtGb3IpOgorICAgICAgICAo
SlNDOjpsaW5rUG9seW1vcnBoaWNDYWxsKToKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5oOgorICAg
ICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjp2aXJ0dWFsVGh1
bmtGb3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpuYXRpdmVDYWxsR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bmF0aXZlVGFpbENhbGxHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjppbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6Omlu
dGVybmFsRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9UaHVua0dl
bmVyYXRvcnMuaDoKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAg
IChKU0M6OkxMSW50OjpzZXRVcENhbGwpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206
CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBy
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNvbnN0cnVj
dG9yOjpBcnJheUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0
b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNGdW5jdGlvbkNvbnN0cnVj
dG9yKToKKyAgICAgICAgKEpTQzo6QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlv
bkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KEpTQzo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2Fs
bERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNhbGxCb29s
ZWFuQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OkJvb2xl
YW5Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENvbnN0cnVj
dERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENh
bGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5o
OgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRl
Q29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRhdGVDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNv
bnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmg6CisgICAgICAgIChKU0M6OlN0cmljdE1v
ZGVUeXBlRXJyb3JGdW5jdGlvbjo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmdldENvbnN0cnVjdERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246
OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9y
KToKKyAgICAgICAgKEpTQzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpT
Qzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVj
dG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rp
b25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpjYWxsRnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5j
dGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlv
blByb3RvdHlwZTo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkdlbmVyYXRvckZ1bmN0
aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlND
OjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SW50
ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1
bmN0aW9uOjpnZXRDYWxsRGF0YSk6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246Omdl
dENvbnN0cnVjdERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgor
ICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpuYXRpdmVGdW5jdGlvbkZvcik6CisgICAgICAgIChK
U0M6OkludGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3IpOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpJ
bnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
SW50bENvbGxhdG9yQ29uc3RydWN0b3I6OkludGxDb2xsYXRvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpJbnRsRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmg6CisgICAgICAg
ICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6SW50bE51bWJlckZvcm1hdENvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rv
cjo6SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVm
ZmVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFz
cz46OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChK
U0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpKU1Byb21pc2VDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChKU0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICog
cnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6
SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpNYXBDb25z
dHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcENvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9NYXBDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6TWFwQ29uc3RydWN0b3I6Ok1hcENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51
bGxHZXR0ZXJGdW5jdGlvbjo6TnVsbEdldHRlckZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6TnVs
bEdldHRlckZ1bmN0aW9uOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51
bGxHZXR0ZXJGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6TnVsbEdldHRlckZ1
bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpOdWxsR2V0dGVyRnVuY3Rp
b246Ok51bGxHZXR0ZXJGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxs
U2V0dGVyRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246Ok51
bGxTZXR0ZXJGdW5jdGlvbik6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Z2V0
Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246Omdl
dENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1
bmN0aW9uLmg6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uOjpOdWxsU2V0dGVyRnVuY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6TnVtYmVyQ29uc3RydWN0b3IpOgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNv
bnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51
bWJlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6TnVtYmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0
b3IpOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpQcm94eUNvbnN0cnVj
dG9yOjpQcm94eUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb3h5Q29uc3RydWN0
b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1Byb3h5Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5UmV2b2tlLmNwcDoKKyAgICAgICAgKEpTQzo6UHJv
eHlSZXZva2U6OlByb3h5UmV2b2tlKToKKyAgICAgICAgKEpTQzo6UHJveHlSZXZva2U6OmdldENh
bGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1Byb3h5UmV2b2tlLmg6CisgICAg
ICAgIChKU0M6OlByb3h5UmV2b2tlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rv
cjo6UmVnRXhwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6U2V0Q29uc3RydWN0b3I6OlNldENvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6U2V0Q29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTZXRD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2V0
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6U2V0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OlNldENvbnN0cnVjdG9yOjpTZXRDb25zdHJ1Y3Rvcik6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChK
U0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OlN0cmluZ0Nv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6U3ltYm9sQ29u
c3RydWN0b3IpOgorICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlN5bWJvbENvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAg
ICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKEpT
Qzo6Vk06OmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKToKKyAgICAgICAgKiBy
dW50aW1lL1ZNLmg6CisgICAgICAgICogcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpXZWFrTWFwQ29uc3RydWN0b3I6OldlYWtNYXBDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmg6CisgICAgICAgIChK
U0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
V2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha1Nl
dENvbnN0cnVjdG9yOjpXZWFrU2V0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWFrU2V0
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpX
ZWFrU2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpXZWFrU2V0Q29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYWtTZXRDb25zdHJ1Y3Rvcjo6
V2Vha1NldENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlND
OjpXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUNvbXBpbGVF
cnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JD
b25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpXZWJB
c3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUlu
c3RhbmNlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6Oldl
YkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eUxpbmtFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6V2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OldlYkFz
c2VtYmx5TWVtb3J5Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1lbW9y
eUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5TW9kdWxlQ29u
c3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1
bGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2Vt
Ymx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5VGFibGVDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmg6CisKKzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gU2NyaXB0RmV0Y2hlciBzaG91
bGQgYmUgbm90aWZpZWQgZGlyZWN0bHkgZnJvbSBtb2R1bGUgcGlwZWxpbmUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODM0MAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggOTBkODdhZmQ1YzYyNGJlMjk2ZjA4MWQwMjYzNjNiOWU2MjQ2MzA4ZC4uMzUwODJkMTEzNjYy
MWFmOGM5YzkzOGE3NmNhYTA4YjA2ZGRmYTk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBA
CiAyMDE3LTEwLTIwICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCisg
ICAgICAgIEpJVCBjYWxsIGlubGluZSBjYWNoZXMgc2hvdWxkIGNhY2hlIGNhbGxzIHRvIG9iamVj
dHMgd2l0aCBnZXRDYWxsRGF0YS9nZXRDb25zdHJ1Y3REYXRhIHRyYXBzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0NTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhv
ZC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2QpOgorICAg
ICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAg
ICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisKKzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gU2NyaXB0RmV0Y2hlciBz
aG91bGQgYmUgbm90aWZpZWQgZGlyZWN0bHkgZnJvbSBtb2R1bGUgcGlwZWxpbmUKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODM0MAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDNhNmY5ODM0NDhhOGZlYTM4YjYxNDEzZTRhZTdkYzUyZmZmNjExNzQuLmNmNDAzOWRhYTc1
ODhkM2M5NDUwMjQ2NzE3NTBjZDc1ZjRhNTI2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAg
ICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2FsbHMgdG8gb2JqZWN0
cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBNZXRob2QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0aG9kOjpKU05Q
TWV0aG9kKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE1ldGhvZDo6Z2V0Q2FsbERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmg6
CisgICAgICAgIChXZWJLaXQ6OkpTTlBNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTct
MTAtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBJbnRyb2R1Y2UgY29tcGxldGlvbkhhbmRsZXItYmFzZWQgU1BJIGZvciBfV0tEb3dubG9h
ZERlbGVnYXRlLmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKaW5kZXggNjg0
ZWNlNjMwZmExY2E4MGE3YzM4ZWNjYWNkNDBlNzg3MmVjZjgxMC4uNzhjYTU1YmIyM2VkNmNmZGI5
ZDkxZGU0NTg3NmVjZTc2NzYzNDc2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcApAQCAtNDQsNyArNDQsNyBAQCBTVEFUSUNfQVNTRVJU
X0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNDYWxsYmFja0Z1bmN0aW9uKTsKIGNvbnN0IENs
YXNzSW5mbyBKU0NhbGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxiYWNrRnVuY3Rpb24i
LCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAogSlNDYWxsYmFja0Z1bmN0aW9uOjpK
U0NhbGxiYWNrRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3RD
YWxsQXNGdW5jdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBBUElD
YWxsYmFja0Z1bmN0aW9uOjpjYWxsPEpTQ2FsbGJhY2tGdW5jdGlvbj4sIG51bGxwdHIpCiAgICAg
LCBtX2NhbGxiYWNrKGNhbGxiYWNrKQogewogfQpAQCAtNjMsMTAgKzYzLDQgQEAgSlNDYWxsYmFj
a0Z1bmN0aW9uKiBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gZnVuY3Rpb247CiB9CiAKLUNhbGxUeXBlIEpTQ2Fs
bGJhY2tGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQot
ewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEFQSUNhbGxiYWNrRnVuY3Rpb246OmNh
bGw8SlNDYWxsYmFja0Z1bmN0aW9uPjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja0Z1bmN0aW9uLmgKaW5kZXggYTRmZGQwNjhmZWY0OGI0OGFkNmRhNDk0NDRiNWI1ZDQwYzBj
ZGE2NS4uNGM1NGI4MGY1OWNlYjkwYjMyMTdkNzc4YmU5Y2RjMTgwZmM0NGYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC00NCwxNSAr
NDQsMTMgQEAgY2xhc3MgSlNDYWxsYmFja0Z1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogICAgIC8vIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRoaXMgb3ZlcnJpZGUgaXNuJ3QgbmVj
ZXNzYXJ5CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAgICAgeyAKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKElu
dGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAog
cHJpdmF0ZToKICAgICBKU0NhbGxiYWNrRnVuY3Rpb24oVk0mLCBTdHJ1Y3R1cmUqLCBKU09iamVj
dENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2spOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBj
b25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7Ci0KICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2sg
ZnVuY3Rpb25DYWxsYmFjaygpIHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAogICAgIEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBtX2NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IDRkNWI3MzY4ZDNjN2MxMDNi
NGQ0ZTYzZmE4ZTYyNDViY2YwMmM2YjEuLmRlYTZjYzQ0Y2M1NWI5NTk3MTQyOTg1MjI1MDkyNjM1
ZDg5ZWRiNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxi
YWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFj
a0Z1bmN0aW9uLmgKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgT2JqQ0NhbGxiYWNrRnVuY3Rpb24g
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewogICAgICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0K
IAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CkBAIC02NSw5ICs2NSw2IEBAIGNsYXNzIE9iakND
YWxsYmFja0Z1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIE9iakNDYWxs
YmFja0Z1bmN0aW9uKFZNJiwgU3RydWN0dXJlKiwgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxi
YWNrLCBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yQ2FsbGJhY2ssIHN0ZDo6dW5pcXVlX3B0cjxP
YmpDQ2FsbGJhY2tGdW5jdGlvbkltcGw+KTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLQogICAgIEpT
T2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBmdW5jdGlvbkNhbGxiYWNrKCkgeyByZXR1cm4g
bV9mdW5jdGlvbkNhbGxiYWNrOyB9CiAgICAgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxi
YWNrIGNvbnN0cnVjdENhbGxiYWNrKCkgeyByZXR1cm4gbV9jb25zdHJ1Y3RDYWxsYmFjazsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0
aW9uLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5t
bQppbmRleCBmYjkzYTg2MGFlYmYyZjQ5MGIwN2MyNWZmNzUwMzUzMmE0Yjc3YWQzLi42M2Y5MjBl
ZGIyMjRmMWFkZDFkMDliN2ExMTIzN2FkNjVhMTg3OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KQEAgLTUwNiw3ICs1MDYsNyBA
QCBzdGF0aWMgSlNPYmplY3RSZWYgb2JqQ0NhbGxiYWNrRnVuY3Rpb25DYWxsQXNDb25zdHJ1Y3Rv
cihKU0NvbnRleHRSZWYgY2FsbGVyQ29udAogY29uc3QgSlNDOjpDbGFzc0luZm8gT2JqQ0NhbGxi
YWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxiYWNrRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE9iakNDYWxsYmFja0Z1bmN0
aW9uKSB9OwogCiBPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6T2JqQ0NhbGxiYWNrRnVuY3Rpb24oSlND
OjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0Q2FsbEFzRnVuY3Rp
b25DYWxsYmFjayBmdW5jdGlvbkNhbGxiYWNrLCBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yQ2Fs
bGJhY2sgY29uc3RydWN0Q2FsbGJhY2ssIHN0ZDo6dW5pcXVlX3B0cjxPYmpDQ2FsbGJhY2tGdW5j
dGlvbkltcGw+IGltcGwpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUsIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGw8T2JqQ0NhbGxiYWNrRnVuY3Rp
b24+LCBpbXBsLT5pc0NvbnN0cnVjdGlibGUoKSA/IEFQSUNhbGxiYWNrRnVuY3Rpb246OmNvbnN0
cnVjdDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj4gOiBudWxscHRyKQogICAgICwgbV9mdW5jdGlvbkNh
bGxiYWNrKGZ1bmN0aW9uQ2FsbGJhY2spCiAgICAgLCBtX2NvbnN0cnVjdENhbGxiYWNrKGNvbnN0
cnVjdENhbGxiYWNrKQogICAgICwgbV9pbXBsKFdURk1vdmUoaW1wbCkpCkBAIC01MjgsMjIgKzUy
OCw2IEBAIHZvaWQgT2JqQ0NhbGxiYWNrRnVuY3Rpb246OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQog
ICAgIGZ1bmN0aW9uLn5PYmpDQ2FsbGJhY2tGdW5jdGlvbigpOwogfQogCi0KLUNhbGxUeXBlIE9i
akNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERh
dGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gQVBJQ2FsbGJhY2tGdW5jdGlv
bjo6Y2FsbDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj47Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0
OwotfQotCi1Db25zdHJ1Y3RUeXBlIE9iakNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCogY2VsbCwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBP
YmpDQ2FsbGJhY2tGdW5jdGlvbiogY2FsbGJhY2sgPSBqc0Nhc3Q8T2JqQ0NhbGxiYWNrRnVuY3Rp
b24qPihjZWxsKTsKLSAgICBpZiAoIWNhbGxiYWNrLT5pbXBsKCktPmlzQ29uc3RydWN0aWJsZSgp
KQotICAgICAgICByZXR1cm4gQmFzZTo6Z2V0Q29uc3RydWN0RGF0YShjZWxsLCBjb25zdHJ1Y3RE
YXRhKTsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEFQSUNhbGxiYWNrRnVu
Y3Rpb246OmNvbnN0cnVjdDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj47Ci0gICAgcmV0dXJuIENvbnN0
cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIFN0cmluZyBPYmpDQ2FsbGJhY2tGdW5jdGlvbkltcGw6Om5h
bWUoKQogewogICAgIGlmIChtX3R5cGUgPT0gQ2FsbGJhY2tJbml0TWV0aG9kKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKaW5kZXggOWJj
MTE3ZjE5OTE0YzUzOWUyZGNhZTMzNzJlMzFhNDlhZDZjMmVhMS4uYTlmMTZkNzNmM2RjZjA3NDkz
OWQxOGM2Y2Q4NzhlMmUxYjFmZjg4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCkBAIC01NzgsMTYgKzU3OCwxOSBAQCB2b2lkIEJ5
dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJpbnRDYWxsT3AoUHJpbnRTdHJlYW0mIG91dCwgaW50IGxv
Y2F0aW9uLCBjb25zdCB0eQogICAgIGlmIChjYWNoZUR1bXBNb2RlID09IER1bXBDYWNoZXMpIHsK
ICAgICAgICAgTExJbnRDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IGdldENhbGxMaW5rSW5m
byhpdFsxXSk7CiAgICAgICAgIGlmIChjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlKSB7Ci0g
ICAgICAgICAgICBvdXQucHJpbnRmKAotICAgICAgICAgICAgICAgICIgbGxpbnQoJXAsIGV4ZWMg
JXApIiwKLSAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLmdldCgp
LAotICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUtPmV4ZWN1dGFi
bGUoKSk7CisgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gY2FsbExpbmtJbmZvLT5sYXN0
U2VlbkNhbGxlZS5nZXQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBmdW5jdGlvbiA9IGpzRHlu
YW1pY0Nhc3Q8SlNGdW5jdGlvbio+KCp2bSgpLCBvYmplY3QpKQorICAgICAgICAgICAgICAgIG91
dC5wcmludGYoIiBsbGludCglcCwgZXhlYyAlcCkiLCBmdW5jdGlvbiwgZnVuY3Rpb24tPmV4ZWN1
dGFibGUoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3V0LnByaW50Zigi
IGxsaW50KCVwKSIsIG9iamVjdCk7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoSklUKQogICAgICAg
ICBpZiAoQ2FsbExpbmtJbmZvKiBpbmZvID0gbWFwLmdldChDb2RlT3JpZ2luKGxvY2F0aW9uKSkp
IHsKLSAgICAgICAgICAgIEpTRnVuY3Rpb24qIHRhcmdldCA9IGluZm8tPmxhc3RTZWVuQ2FsbGVl
KCk7Ci0gICAgICAgICAgICBpZiAodGFyZ2V0KQotICAgICAgICAgICAgICAgIG91dC5wcmludGYo
IiBqaXQoJXAsIGV4ZWMgJXApIiwgdGFyZ2V0LCB0YXJnZXQtPmV4ZWN1dGFibGUoKSk7CisgICAg
ICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5mby0+bGFzdFNlZW5DYWxsZWUoKTsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBmdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KCp2
bSgpLCBvYmplY3QpKQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBqaXQoJXAsIGV4ZWMg
JXApIiwgZnVuY3Rpb24sIGZ1bmN0aW9uLT5leGVjdXRhYmxlKCkpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBqaXQoJXApIiwgb2JqZWN0KTsKICAgICAg
ICAgfQogCiAgICAgICAgIGR1bXBDYWxsTGlua1N0YXR1cyhvdXQsIGxvY2F0aW9uLCBtYXApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5q
c29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCmlu
ZGV4IGUxMTMxNGYyMjk2MmY4NWRmN2YxY2ZlNjYzNWU0YmY5OTZhNWVkMDUuLjc0YzkxYWE0Zjg0
NDk0NWQ2ODk3YjcwN2MwYTI1ZjRmZGI5M2Y2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAgLTIxOCw2ICsyMTgsOCBAQAogICAg
ICAgICAgICAgeyAibmFtZSIgOiAibGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZSIg
fSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogImxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUi
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJsbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1w
b2xpbmUiIH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJsbGludF9pbnRlcm5hbF9mdW5jdGlv
bl9jYWxsX3RyYW1wb2xpbmUiIH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJsbGludF9pbnRl
cm5hbF9mdW5jdGlvbl9jb25zdHJ1Y3RfdHJhbXBvbGluZSIgfSwKICAgICAgICAgICAgIHsgIm5h
bWUiIDogImhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uIiB9CiAgICAgICAgIF0KICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCmluZGV4IDNh
Y2M1ZmJlM2ZlZWM1MDFjN2VkYzU0ZGVjODk2Njg2YzNjN2E5YTUuLmVkNmQzNjk3NDc1MTRkZmIy
ZTliZDI1MTYwNTI4NTJmY2JmN2ZjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua0luZm8uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgQ29kZUxvY2F0aW9u
TGFiZWwgQ2FsbExpbmtJbmZvOjpzbG93UGF0aFN0YXJ0KCkKICAgICByZXR1cm4gbV9ob3RQYXRo
QmVnaW5PclNsb3dQYXRoU3RhcnQ7CiB9CiAKLXZvaWQgQ2FsbExpbmtJbmZvOjpzZXRDYWxsZWUo
Vk0mIHZtLCBKU0NlbGwqIG93bmVyLCBKU0Z1bmN0aW9uKiBjYWxsZWUpCit2b2lkIENhbGxMaW5r
SW5mbzo6c2V0Q2FsbGVlKFZNJiB2bSwgSlNDZWxsKiBvd25lciwgSlNPYmplY3QqIGNhbGxlZSkK
IHsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNEaXJlY3QoKSk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6
OnJlcGF0Y2hQb2ludGVyKGhvdFBhdGhCZWdpbigpLCBjYWxsZWUpOwpAQCAtMTM3LDEwICsxMzcs
MTAgQEAgdm9pZCBDYWxsTGlua0luZm86OmNsZWFyQ2FsbGVlKCkKICAgICBtX2lzTGlua2VkID0g
ZmFsc2U7CiB9CiAKLUpTRnVuY3Rpb24qIENhbGxMaW5rSW5mbzo6Y2FsbGVlKCkKK0pTT2JqZWN0
KiBDYWxsTGlua0luZm86OmNhbGxlZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzRGlyZWN0
KCkpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNGdW5jdGlvbio+KG1fY2FsbGVlT3JDb2RlQmxvY2su
Z2V0KCkpOworICAgIHJldHVybiBqc0Nhc3Q8SlNPYmplY3QqPihtX2NhbGxlZU9yQ29kZUJsb2Nr
LmdldCgpKTsKIH0KIAogdm9pZCBDYWxsTGlua0luZm86OnNldENvZGVCbG9jayhWTSYgdm0sIEpT
Q2VsbCogb3duZXIsIEZ1bmN0aW9uQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC0xNjMsNyArMTYz
LDcgQEAgRnVuY3Rpb25Db2RlQmxvY2sqIENhbGxMaW5rSW5mbzo6Y29kZUJsb2NrKCkKICAgICBy
ZXR1cm4ganNDYXN0PEZ1bmN0aW9uQ29kZUJsb2NrKj4obV9jYWxsZWVPckNvZGVCbG9jay5nZXQo
KSk7CiB9CiAKLXZvaWQgQ2FsbExpbmtJbmZvOjpzZXRMYXN0U2VlbkNhbGxlZShWTSYgdm0sIGNv
bnN0IEpTQ2VsbCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxlZSkKK3ZvaWQgQ2FsbExpbmtJbmZv
OjpzZXRMYXN0U2VlbkNhbGxlZShWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0
KiBjYWxsZWUpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzRGlyZWN0KCkpOwogICAgIG1fbGFz
dFNlZW5DYWxsZWVPckV4ZWN1dGFibGUuc2V0KHZtLCBvd25lciwgY2FsbGVlKTsKQEAgLTE3NSwx
MCArMTc1LDEwIEBAIHZvaWQgQ2FsbExpbmtJbmZvOjpjbGVhckxhc3RTZWVuQ2FsbGVlKCkKICAg
ICBtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlLmNsZWFyKCk7CiB9CiAKLUpTRnVuY3Rpb24q
IENhbGxMaW5rSW5mbzo6bGFzdFNlZW5DYWxsZWUoKQorSlNPYmplY3QqIENhbGxMaW5rSW5mbzo6
bGFzdFNlZW5DYWxsZWUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKCFpc0RpcmVjdCgpKTsKLSAg
ICByZXR1cm4ganNDYXN0PEpTRnVuY3Rpb24qPihtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxl
LmdldCgpKTsKKyAgICByZXR1cm4ganNDYXN0PEpTT2JqZWN0Kj4obV9sYXN0U2VlbkNhbGxlZU9y
RXhlY3V0YWJsZS5nZXQoKSk7CiB9CiAKIGJvb2wgQ2FsbExpbmtJbmZvOjpoYXZlTGFzdFNlZW5D
YWxsZWUoKQpAQCAtMjM1LDE0ICsyMzUsMjAgQEAgdm9pZCBDYWxsTGlua0luZm86OnZpc2l0V2Vh
ayhWTSYgdm0pCiAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRHVtcChjb2RlQmxvY2so
KSksICIpLlxuIik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGRhdGFMb2coCi0gICAgICAgICAgICAgICAgICAgICAgICAiQ2xlYXJpbmcgY2FsbCB0
byAiLAotICAgICAgICAgICAgICAgICAgICAgICAgUmF3UG9pbnRlcihjYWxsZWUoKSksICIgKCIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYWxsZWUoKS0+ZXhlY3V0YWJsZSgpLT5oYXNoRm9y
KHNwZWNpYWxpemF0aW9uS2luZCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICIpLlxuIik7
CisgICAgICAgICAgICAgICAgaWYgKGNhbGxlZSgpLT50eXBlKCkgPT0gSlNGdW5jdGlvblR5cGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiQ2xlYXJpbmcgY2FsbCB0byAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhd1Bv
aW50ZXIoY2FsbGVlKCkpLCAiICgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PEpTRnVuY3Rpb24qPihjYWxsZWUoKSktPmV4ZWN1dGFibGUoKS0+aGFzaEZvcihzcGVj
aWFsaXphdGlvbktpbmQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBoYW5kbGVTcGVjaWZp
Y0NhbGxlZShzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2FsbGVlKCkpKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9T
UigpKQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2xlYXJpbmcgY2FsbCB0byAi
LCBSYXdQb2ludGVyKGNhbGxlZSgpKSwgIi5cbiIpOworICAgICAgICAgICAgICAgICAgICBtX2Ns
ZWFyZWRCeUdDID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaGFu
ZGxlU3BlY2lmaWNDYWxsZWUoY2FsbGVlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
dW5saW5rKHZtKTsKICAgICAgICAgfSBlbHNlIGlmIChpc0RpcmVjdCgpICYmICFIZWFwOjppc01h
cmtlZChtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlLmdldCgpKSkgewpAQCAtMjU4LDcgKzI2
NCwxMCBAQCB2b2lkIENhbGxMaW5rSW5mbzo6dmlzaXRXZWFrKFZNJiB2bSkKICAgICAgICAgfQog
ICAgIH0KICAgICBpZiAoIWlzRGlyZWN0KCkgJiYgaGF2ZUxhc3RTZWVuQ2FsbGVlKCkgJiYgIUhl
YXA6OmlzTWFya2VkKGxhc3RTZWVuQ2FsbGVlKCkpKSB7Ci0gICAgICAgIGhhbmRsZVNwZWNpZmlj
Q2FsbGVlKGxhc3RTZWVuQ2FsbGVlKCkpOworICAgICAgICBpZiAobGFzdFNlZW5DYWxsZWUoKS0+
dHlwZSgpID09IEpTRnVuY3Rpb25UeXBlKQorICAgICAgICAgICAgaGFuZGxlU3BlY2lmaWNDYWxs
ZWUoc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KGxhc3RTZWVuQ2FsbGVlKCkpKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgbV9jbGVhcmVkQnlHQyA9IHRydWU7CiAgICAgICAgIGNsZWFyTGFz
dFNlZW5DYWxsZWUoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXggOTFkM2RkOGY3NWIxMjI4M2UwYWFkZDc4OGUwZjk2NzU5
MGY2ZGU4MS4uNWJjMmM0NGY0NTg0ODI1MGI3OGE4ODU0MGEzODBiOGQwMDYwMDhlZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaApAQCAtMTkxLDE3
ICsxOTEsMTcgQEAgY2xhc3MgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VudGluZWxO
b2RlPENhbGxMaW5rSW5mbz4gewogICAgICAgICByZXR1cm4gbV9ob3RQYXRoT3RoZXI7CiAgICAg
fQogCi0gICAgdm9pZCBzZXRDYWxsZWUoVk0mLCBKU0NlbGwqLCBKU0Z1bmN0aW9uKiBjYWxsZWUp
OworICAgIHZvaWQgc2V0Q2FsbGVlKFZNJiwgSlNDZWxsKiwgSlNPYmplY3QqIGNhbGxlZSk7CiAg
ICAgdm9pZCBjbGVhckNhbGxlZSgpOwotICAgIEpTRnVuY3Rpb24qIGNhbGxlZSgpOworICAgIEpT
T2JqZWN0KiBjYWxsZWUoKTsKIAogICAgIHZvaWQgc2V0Q29kZUJsb2NrKFZNJiwgSlNDZWxsKiwg
RnVuY3Rpb25Db2RlQmxvY2sqKTsKICAgICB2b2lkIGNsZWFyQ29kZUJsb2NrKCk7CiAgICAgRnVu
Y3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9jaygpOwogCi0gICAgdm9pZCBzZXRMYXN0U2VlbkNhbGxl
ZShWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxlZSk7CisgICAg
dm9pZCBzZXRMYXN0U2VlbkNhbGxlZShWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0
KiBjYWxsZWUpOwogICAgIHZvaWQgY2xlYXJMYXN0U2VlbkNhbGxlZSgpOwotICAgIEpTRnVuY3Rp
b24qIGxhc3RTZWVuQ2FsbGVlKCk7CisgICAgSlNPYmplY3QqIGxhc3RTZWVuQ2FsbGVlKCk7CiAg
ICAgYm9vbCBoYXZlTGFzdFNlZW5DYWxsZWUoKTsKICAgICAKICAgICB2b2lkIHNldEV4ZWN1dGFi
bGVEdXJpbmdDb21waWxhdGlvbihFeGVjdXRhYmxlQmFzZSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAKaW5kZXggNTNiODRkOWMwMzdl
MTdmNmFlOTNkYzg1NTE5Mjc4OGI2M2U2N2FlYS4uZjI4NGUzMDE2NGEwMGE1NDcxMTA2Y2I1OGQ5
ODgwMDFiZDI2NWVlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q2FsbExpbmtTdGF0dXMuY3BwCkBAIC0yMTUsNyArMjE1LDcgQEAgQ2FsbExpbmtTdGF0dXMgQ2Fs
bExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tQ2FsbExpbmtJbmZvKAogICAgIAogICAgIENhbGxMaW5r
U3RhdHVzIHJlc3VsdDsKICAgICAKLSAgICBpZiAoSlNGdW5jdGlvbiogdGFyZ2V0ID0gY2FsbExp
bmtJbmZvLmxhc3RTZWVuQ2FsbGVlKCkpIHsKKyAgICBpZiAoSlNPYmplY3QqIHRhcmdldCA9IGNh
bGxMaW5rSW5mby5sYXN0U2VlbkNhbGxlZSgpKSB7CiAgICAgICAgIENhbGxWYXJpYW50IHZhcmlh
bnQodGFyZ2V0KTsKICAgICAgICAgaWYgKGNhbGxMaW5rSW5mby5oYXNTZWVuQ2xvc3VyZSgpKQog
ICAgICAgICAgICAgdmFyaWFudCA9IHZhcmlhbnQuZGVzcGVjaWZpZWRDbG9zdXJlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRDYWxsTGlua0luZm8u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCmlu
ZGV4IGMyY2Y0ZDFkYzE1YmY3ZmE5ZTA4OTE4NjE2YWE1M2EwMjQ5MTcxY2QuLjhkMGI4NjBlZWYy
NWE1NTExYWJkZmZkNjE4MDg2ZmZhMTgxNDhlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCkBAIC01NCw4ICs1NCw4IEBAIHN0
cnVjdCBMTEludENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxMTElu
dENhbGxMaW5rSW5mbz4gewogICAgICAgICAgICAgcmVtb3ZlKCk7CiAgICAgfQogICAgIAotICAg
IFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBjYWxsZWU7Ci0gICAgV3JpdGVCYXJyaWVyPEpTRnVu
Y3Rpb24+IGxhc3RTZWVuQ2FsbGVlOworICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gY2FsbGVl
OworICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gbGFzdFNlZW5DYWxsZWU7CiAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIG1hY2hpbmVDb2RlVGFyZ2V0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggMDY1NTAwNGRkMzZlN2MwNjZlNWJm
YTA1ZGJjMzIwMjAxNWEyYzVkYy4uOTYyMWZkMTUxZjgzOTFlZWM4YTI5ZGQwOGI0ZDc2ZTQ3YTAy
ZTQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBA
IC05MzksOSArOTM5LDE3IEBAIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ2FsbExpCiAgICAgSlNWYWx1ZSBj
YWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKTsKICAg
ICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5jdGlvbihjYWxsZWVBc1Zh
bHVlKTsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7Ci0gICAgICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgY2FjaGUgdGhlc2Uga2luZHMgb2YgY2FsbHMuIFRoZXkgY2FuIGJlIGNvbW1v
biBhbmQgY3VycmVudGx5IHRoZXkgYXJlCi0gICAgICAgIC8vIGV4cGVuc2l2ZS4KLSAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorICAgICAg
ICBpZiAoY2FsbGVlQXNWYWx1ZS5pc0NlbGwoKSAmJiBjYWxsZWVBc1ZhbHVlLmFzQ2VsbCgpLT50
eXBlKCkgPT0gSW50ZXJuYWxGdW5jdGlvblR5cGUpIHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjb2RlUHRyID0gdm0tPmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5l
Rm9yKGtpbmQpOworICAgICAgICAgICAgQVNTRVJUKCEhY29kZVB0cik7CisKKyAgICAgICAgICAg
IGlmICghY2FsbExpbmtJbmZvLT5zZWVuT25jZSgpKQorICAgICAgICAgICAgICAgIGNhbGxMaW5r
SW5mby0+c2V0U2VlbigpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxpbmtG
b3IoZXhlY0NhbGxlZSwgKmNhbGxMaW5rSW5mbywgbnVsbHB0ciwgYXNPYmplY3QoY2FsbGVlQXNW
YWx1ZSksIGNvZGVQdHIpOworCisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KGNvZGVQ
dHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY2FsbExpbmtJ
bmZvLT5jYWxsTW9kZSgpID09IENhbGxNb2RlOjpUYWlsID8gUmV1c2VUaGVGcmFtZSA6IEtlZXBU
aGVGcmFtZSkpOworICAgICAgICB9CiAgICAgICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwogICAg
ICAgICByZXR1cm4gaGFuZGxlSG9zdENhbGwoZXhlY0NhbGxlZSwgY2FsbGVlQXNWYWx1ZSwgY2Fs
bExpbmtJbmZvKTsKICAgICB9CkBAIC05NTEsNyArOTU5LDcgQEAgU2xvd1BhdGhSZXR1cm5UeXBl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBD
YWxsTGkKICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9IGNhbGxlZS0+ZXhlY3V0YWJs
ZSgpOwogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHI7Ci0gICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSAwOworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gbnVsbHB0cjsKICAg
ICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkgewogICAgICAgICBjb2RlUHRyID0g
ZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcihraW5kLCBNdXN0Q2hlY2tBcml0eSk7CiAgICAgfSBl
bHNlIHsKQEAgLTEwNTMsNiArMTA2MSwxMSBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHZp
cnR1YWxGb3JXaXRoRnVuY3Rpb24oCiAgICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0Nh
bGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKTsKICAgICBjYWxsZWVBc0Z1bmN0aW9uQ2Vs
bCA9IGdldEpTRnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYWxs
ZWVBc0Z1bmN0aW9uQ2VsbCkpIHsKKyAgICAgICAgaWYgKGNhbGxlZUFzVmFsdWUuaXNDZWxsKCkg
JiYgY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEludGVybmFsRnVuY3Rpb25UeXBl
KSB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9IHZtLT5nZXRD
VElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihraW5kKTsKKyAgICAgICAgICAgIEFTU0VS
VCghIWNvZGVQdHIpOworICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChjb2RlUHRyLmV4
ZWN1dGFibGVBZGRyZXNzKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+
Y2FsbE1vZGUoKSA9PSBDYWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJh
bWUpKTsKKyAgICAgICAgfQogICAgICAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKICAgICAgICAg
cmV0dXJuIGhhbmRsZUhvc3RDYWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzVmFsdWUsIGNhbGxMaW5r
SW5mbyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRU
aHVua3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCmluZGV4
IDY4YzU2NDM2MmI5YWYwYWM0ZjE2MmRiYTkyODA2N2M0NzcyYzA1NTMuLmFmNGM4NDE5NTIyY2Y5
NjYzYjk2OWYxYTU1ZjNmYWJmZmIwYmU5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUVGh1bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFRodW5rcy5jcHAKQEAgLTcxLDYgKzcxLDIwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBKSVRU
aHVua3M6OmN0aU5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFncyhWTSogdm0pCiAgICAgcmV0
dXJuIGN0aVN0dWIodm0sIG5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFnc0dlbmVyYXRvciku
Y29kZSgpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlJbnRlcm5h
bEZ1bmN0aW9uQ2FsbChWTSogdm0pCit7CisgICAgaWYgKCF2bS0+Y2FuVXNlSklUKCkpCisgICAg
ICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGlu
dF9pbnRlcm5hbF9mdW5jdGlvbl9jYWxsX3RyYW1wb2xpbmUpOworICAgIHJldHVybiBjdGlTdHVi
KHZtLCBpbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcikuY29kZSgpOworfQorCitNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlJbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0KFZN
KiB2bSkKK3sKKyAgICBpZiAoIXZtLT5jYW5Vc2VKSVQoKSkKKyAgICAgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2ludGVybmFsX2Z1bmN0
aW9uX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKKyAgICByZXR1cm4gY3RpU3R1Yih2bSwgaW50ZXJu
YWxGdW5jdGlvbkNvbnN0cnVjdEdlbmVyYXRvcikuY29kZSgpOworfQorCiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgSklUVGh1bmtzOjpjdGlTdHViKFZNKiB2bSwgVGh1bmtHZW5lcmF0b3IgZ2VuZXJh
dG9yKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRUaHVua3MuaAppbmRleCA0ZTczMzdhMGRmMGZiNjA0Njk3ZmVhNmRmN2FmMzIxMGQ2
MDhlZjU5Li4zMTQyNzI4YjJlNmIyY2Q4NDJjNjIxNzRhYWJiOTIzOWY3ZTUzOTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKQEAgLTU1LDYgKzU1LDggQEAgY2xhc3MgSklU
VGh1bmtzIGZpbmFsIDogcHJpdmF0ZSBXZWFrSGFuZGxlT3duZXIgewogICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoVk0qKTsKICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY3RpTmF0aXZlVGFpbENhbGwoVk0qKTsgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aU5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFncyhWTSopOyAgICAKKyAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpSW50ZXJuYWxGdW5jdGlvbkNhbGwoVk0qKTsKKyAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpSW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdChWTSopOwogCiAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoVk0qLCBUaHVua0dlbmVyYXRvcik7CiAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGV4aXN0aW5nQ1RJU3R1YihUaHVua0dlbmVyYXRvcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAppbmRleCBkNzlhYzZkODgwNzMxN2Vi
MWI3OTI3NWNiNzMwMDk4ZjRlOWNiZTIyLi41MjgwYjNkM2YxNWNiODYyN2Y5NWE4ZjllZWNlZDE0
NmRhNWI0MzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2gu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKQEAgLTY5Miw3
ICs2OTIsNyBAQCBzdGF0aWMgSlNDZWxsKiB3ZWJBc3NlbWJseU93bmVyKEpTQ2VsbCogY2FsbGVl
KQogCiB2b2lkIGxpbmtGb3IoCiAgICAgRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNh
bGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssCi0gICAgSlNGdW5jdGlvbiog
Y2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKKyAgICBKU09iamVjdCogY2Fs
bGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKIHsKICAgICBBU1NFUlQoIWNhbGxM
aW5rSW5mby5zdHViKCkpOwogCkBAIC04MzksNyArODM5LDcgQEAgdm9pZCBsaW5rUG9seW1vcnBo
aWNDYWxsKAogICAgIENhbGxWYXJpYW50TGlzdCBsaXN0OwogICAgIGlmIChQb2x5bW9ycGhpY0Nh
bGxTdHViUm91dGluZSogc3R1YiA9IGNhbGxMaW5rSW5mby5zdHViKCkpCiAgICAgICAgIGxpc3Qg
PSBzdHViLT52YXJpYW50cygpOwotICAgIGVsc2UgaWYgKEpTRnVuY3Rpb24qIG9sZENhbGxlZSA9
IGNhbGxMaW5rSW5mby5jYWxsZWUoKSkKKyAgICBlbHNlIGlmIChKU09iamVjdCogb2xkQ2FsbGVl
ID0gY2FsbExpbmtJbmZvLmNhbGxlZSgpKQogICAgICAgICBsaXN0ID0gQ2FsbFZhcmlhbnRMaXN0
eyBDYWxsVmFyaWFudChvbGRDYWxsZWUpIH07CiAgICAgCiAgICAgbGlzdCA9IHZhcmlhbnRMaXN0
V2l0aFZhcmlhbnQobGlzdCwgbmV3VmFyaWFudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRj
aC5oCmluZGV4IGUyOTc1YjkxYzFkOWNlODhmNjJjMDM3MTM4OWU5ZjZhMjBiMzFhMjkuLjE5YjFm
NWZlZjBjOTE4YjQ4NWQ4M2Q0MjgzNzE3YTlkMWNjOTQwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5oCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgYnVpbGRHZXRCeUlEUHJvdG9MaXN0
KEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0CiB2
b2lkIHJlcGF0Y2hQdXRCeUlEKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIFN0cnVjdHVyZSosIGNvbnN0
IElkZW50aWZpZXImLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYs
IFB1dEtpbmQpOwogdm9pZCBidWlsZFB1dEJ5SWRMaXN0KEV4ZWNTdGF0ZSosIEpTVmFsdWUsIFN0
cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmLCBTdHJ1
Y3R1cmVTdHViSW5mbyYsIFB1dEtpbmQpOwogdm9pZCByZXBhdGNoSW4oRXhlY1N0YXRlKiwgSlND
ZWxsKiwgY29uc3QgSWRlbnRpZmllciYsIGJvb2wgd2FzRm91bmQsIGNvbnN0IFByb3BlcnR5U2xv
dCYsIFN0cnVjdHVyZVN0dWJJbmZvJik7Ci12b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiwgQ2FsbExp
bmtJbmZvJiwgQ29kZUJsb2NrKiwgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIpOwordm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9j
ayosIEpTT2JqZWN0KiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0cik7CiB2b2lkIGxpbmtE
aXJlY3RGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyKTsKIHZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZv
Jik7CiB2b2lkIHVubGlua0ZvcihWTSYsIENhbGxMaW5rSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCmluZGV4IGYxZGRlNzY2MjBlMTM5N2Fl
YTMyNzkzYTNiOWExOWZhMTA5OWVlZjMuLmY5ZWE1YTM4NjI2NzNmZjhmNGZiNmZkYjQwMzZjYTFl
MDhhMjVlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5jcHAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbFRo
dW5rRm9yKFZNKiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBHUFJJbmZvOjpyZWdUMSwKICAgICAgICAgICAgIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAjZW5kaWYKLSAgICBz
bG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaElmTm90VHlwZShHUFJJbmZvOjpyZWdUMCwgSlNGdW5j
dGlvblR5cGUpKTsKKyAgICBhdXRvIG5vdEpTRnVuY3Rpb24gPSBqaXQuYnJhbmNoSWZOb3RUeXBl
KEdQUkluZm86OnJlZ1QwLCBKU0Z1bmN0aW9uVHlwZSk7CiAgICAgCiAgICAgLy8gTm93IHdlIGtu
b3cgd2UgaGF2ZSBhIEpTRnVuY3Rpb24uCiAgICAgCkBAIC0yMTUsNiArMjE1LDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENhbGxMaW5rSW5mbyYgY2Fs
bExpbmtJbmZvKQogICAgIC8vIGNhbGwuCiAgICAgCiAgICAgLy8gTWFrZSBhIHRhaWwgY2FsbC4g
VGhpcyB3aWxsIHJldHVybiBiYWNrIHRvIEpJVCBjb2RlLgorICAgIEpTSW50ZXJmYWNlSklUOjpM
YWJlbCBjYWxsQ29kZShqaXQubGFiZWwoKSk7CiAgICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGpp
dCwgR1BSSW5mbzo6cmVnVDQpOwogICAgIGlmIChjYWxsTGlua0luZm8uaXNUYWlsQ2FsbCgpKSB7
CiAgICAgICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6cmVn
VDApOwpAQCAtMjIyLDYgKzIyMywxMSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbFRo
dW5rRm9yKFZNKiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiAgICAgfQogICAgIGpp
dC5qdW1wKEdQUkluZm86OnJlZ1Q0KTsKIAorICAgIG5vdEpTRnVuY3Rpb24ubGluaygmaml0KTsK
KyAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaElmTm90VHlwZShHUFJJbmZvOjpyZWdUMCwg
SW50ZXJuYWxGdW5jdGlvblR5cGUpKTsKKyAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIodm0tPmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKGNhbGxMaW5r
SW5mby5zcGVjaWFsaXphdGlvbktpbmQoKSkuZXhlY3V0YWJsZUFkZHJlc3MoKSksIEdQUkluZm86
OnJlZ1Q0KTsKKyAgICBqaXQuanVtcCgpLmxpbmtUbyhjYWxsQ29kZSwgJmppdCk7CisKICAgICBz
bG93Q2FzZS5saW5rKCZqaXQpOwogICAgIAogICAgIC8vIEhlcmUgd2UgZG9uJ3Qga25vdyBhbnl0
aGluZywgc28gcmV2ZXJ0IHRvIHRoZSBmdWxsIHNsb3cgcGF0aC4KQEAgLTIzNiw4ICsyNDIsOSBA
QCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbFRodW5rRm9yKFZNKiB2bSwgQ2FsbExpbmtJ
bmZvJiBjYWxsTGlua0luZm8pCiB9CiAKIGVudW0gVGh1bmtFbnRyeVR5cGUgeyBFbnRlclZpYUNh
bGwsIEVudGVyVmlhSnVtcFdpdGhTYXZlZFRhZ3MsIEVudGVyVmlhSnVtcFdpdGhvdXRTYXZlZFRh
Z3MgfTsKK2VudW0gY2xhc3MgVGh1bmtGdW5jdGlvblR5cGUgeyBKU0Z1bmN0aW9uLCBJbnRlcm5h
bEZ1bmN0aW9uIH07CiAKLXN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2Vu
ZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBUaHVua0VudHJ5VHlw
ZSBlbnRyeVR5cGUgPSBFbnRlclZpYUNhbGwpCitzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIFRodW5rRnVuY3Rpb25UeXBlIHRodW5rRnVuY3Rp
b25UeXBlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFRodW5rRW50cnlUeXBlIGVudHJ5
VHlwZSA9IEVudGVyVmlhQ2FsbCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYWJs
ZSB0byBsb2cgU2hhZG93Q2hpY2tlbiBwcm9sb2d1ZSBwYWNrZXRzLgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU2ODkKQEAgLTI3OSw4ICsyODYsMTEg
QEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZt
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKIAogICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAg
ICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJ
VDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhl
Y3V0YWJsZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuY2FsbChKU0ludGVy
ZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIGV4ZWN1dGFibGVPZmZzZXRU
b0Z1bmN0aW9uKSk7CisgICAgaWYgKHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25U
eXBlOjpKU0Z1bmN0aW9uKSB7CisgICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRh
YmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAgICAgICBqaXQuY2FsbChKU0ludGVy
ZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIGV4ZWN1dGFibGVPZmZzZXRU
b0Z1bmN0aW9uKSk7CisgICAgfSBlbHNlCisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklU
OjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0
T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFj
ZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwogCkBAIC0yOTEsOCArMzAxLDExIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAg
aml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6
OmVkaSk7CiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZyYW1l
U2xvdDo6Y2FsbGVlLCBYODZSZWdpc3RlcnM6OmVzaSk7Ci0gICAgaml0LmxvYWRQdHIoSlNJbnRl
cmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplc2ksIEpTRnVuY3Rpb246Om9mZnNldE9m
RXhlY3V0YWJsZSgpKSwgWDg2UmVnaXN0ZXJzOjpyOSk7Ci0gICAgaml0LmNhbGwoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpyOSwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rp
b24pKTsKKyAgICBpZiAodGh1bmtGdW5jdGlvblR5cGUgPT0gVGh1bmtGdW5jdGlvblR5cGU6OkpT
RnVuY3Rpb24pIHsKKyAgICAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3Mo
WDg2UmVnaXN0ZXJzOjplc2ksIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgWDg2
UmVnaXN0ZXJzOjpyOSk7CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNz
KFg4NlJlZ2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgfSBl
bHNlCisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVy
czo6ZXNpLCBJbnRlcm5hbEZ1bmN0aW9uOjpvZmZzZXRPZk5hdGl2ZUZ1bmN0aW9uRm9yKGtpbmQp
KSk7CiAKICNlbHNlCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoZWN4LCBlZHgs
IHI4LCByOSwgLi4uKTsKQEAgLTMwNCw4ICszMTcsMTEgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGsKICAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoNCAqIHNpemVv
ZihpbnQ2NF90KSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKICAg
ICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVl
LCBYODZSZWdpc3RlcnM6OmVkeCk7Ci0gICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFk
ZHJlc3MoWDg2UmVnaXN0ZXJzOjplZHgsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgp
KSwgWDg2UmVnaXN0ZXJzOjpyOSk7Ci0gICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJl
c3MoWDg2UmVnaXN0ZXJzOjpyOSwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKKyAgICBp
ZiAodGh1bmtGdW5jdGlvblR5cGUgPT0gVGh1bmtGdW5jdGlvblR5cGU6OkpTRnVuY3Rpb24pIHsK
KyAgICAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJz
OjplZHgsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgWDg2UmVnaXN0ZXJzOjpy
OSk7CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVy
czo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgfSBlbHNlCisgICAgICAg
IGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWR4LCBJbnRl
cm5hbEZ1bmN0aW9uOjpvZmZzZXRPZk5hdGl2ZUZ1bmN0aW9uRm9yKGtpbmQpKSk7CiAKICAgICBq
aXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoNCAqIHNpemVvZihpbnQ2NF90
KSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZW5kaWYKQEAgLTMx
OSw4ICszMzUsMTEgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5l
cmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQubW92ZShKU0lu
dGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp4MCk7CiAKICAg
ICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZyYW1lU2xvdDo6Y2FsbGVl
LCBBUk02NFJlZ2lzdGVyczo6eDEpOwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxl
KCkpLCBBUk02NFJlZ2lzdGVyczo6eDIpOwotICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsK
KyAgICBpZiAodGh1bmtGdW5jdGlvblR5cGUgPT0gVGh1bmtGdW5jdGlvblR5cGU6OkpTRnVuY3Rp
b24pIHsKKyAgICAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoQVJNNjRS
ZWdpc3RlcnM6OngxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEFSTTY0UmVn
aXN0ZXJzOjp4Mik7CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFS
TTY0UmVnaXN0ZXJzOjp4MiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoQVJNNjRSZWdpc3Rl
cnM6OngxLCBJbnRlcm5hbEZ1bmN0aW9uOjpvZmZzZXRPZk5hdGl2ZUZ1bmN0aW9uRm9yKGtpbmQp
KSk7CiAjZWxpZiBDUFUoQVJNKSB8fCBDUFUoTUlQUykKICNpZiBDUFUoTUlQUykKICAgICAvLyBB
bGxvY2F0ZSBzdGFjayBzcGFjZSBmb3IgKHVudXNlZCkgMTYgYnl0ZXMgKDgtYnl0ZSBhbGlnbmVk
KSBmb3IgNCBhcmd1bWVudHMuCkBAIC0zMzIsOCArMzUxLDExIEBAIHN0YXRpYyBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCBrCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBK
U0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKIAogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxG
cmFtZUhlYWRlclB0cihDYWxsRnJhbWVTbG90OjpjYWxsZWUsIEpTSW50ZXJmYWNlSklUOjphcmd1
bWVudEdQUjEpOwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50
ZXJmYWNlSklUOjphcmd1bWVudEdQUjEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgp
KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9u
KSk7CisgICAgaWYgKHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1
bmN0aW9uKSB7CisgICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpT
SW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJs
ZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyLCBleGVjdXRhYmxlT2Zmc2V0VG9G
dW5jdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIxLCBJbnRlcm5hbEZ1bmN0aW9uOjpv
ZmZzZXRPZk5hdGl2ZUZ1bmN0aW9uRm9yKGtpbmQpKSk7CiAKICNpZiBDUFUoTUlQUykKICAgICAv
LyBSZXN0b3JlIHN0YWNrIHNwYWNlCkBAIC0zODgsMjcgKzQxMCwzNyBAQCBzdGF0aWMgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXph
dGlvbktpbmQgawogICAgIGppdC5qdW1wVG9FeGNlcHRpb25IYW5kbGVyKCp2bSk7CiAKICAgICBM
aW5rQnVmZmVyIHBhdGNoQnVmZmVyKGppdCwgR0xPQkFMX1RIVU5LX0lEKTsKLSAgICByZXR1cm4g
RklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgKCJuYXRpdmUgJXMlcyB0cmFtcG9saW5lIiwgZW50
cnlUeXBlID09IEVudGVyVmlhSnVtcFdpdGhTYXZlZFRhZ3MgPyAiVGFpbCBXaXRoIFNhdmVkIFRh
Z3MgIiA6IGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1bXBXaXRob3V0U2F2ZWRUYWdzID8gIlRhaWwg
V2l0aG91dCBTYXZlZCBUYWdzICIgOiAiIiwgdG9DU3RyaW5nKGtpbmQpLmRhdGEoKSkpOworICAg
IHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIiVzICVzJXMgdHJhbXBvbGluZSIs
IHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uID8gIm5h
dGl2ZSIgOiAiaW50ZXJuYWwiLCBlbnRyeVR5cGUgPT0gRW50ZXJWaWFKdW1wV2l0aFNhdmVkVGFn
cyA/ICJUYWlsIFdpdGggU2F2ZWQgVGFncyAiIDogZW50cnlUeXBlID09IEVudGVyVmlhSnVtcFdp
dGhvdXRTYXZlZFRhZ3MgPyAiVGFpbCBXaXRob3V0IFNhdmVkIFRhZ3MgIiA6ICIiLCB0b0NTdHJp
bmcoa2luZCkuZGF0YSgpKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxs
R2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBD
b2RlRm9yQ2FsbCk7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgVGh1bmtGdW5j
dGlvblR5cGU6OkpTRnVuY3Rpb24sIENvZGVGb3JDYWxsKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIG5hdGl2ZVRhaWxDYWxsR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbmF0
aXZlRm9yR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwgRW50ZXJWaWFKdW1wV2l0aFNhdmVkVGFn
cyk7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgVGh1bmtGdW5jdGlvblR5cGU6
OkpTRnVuY3Rpb24sIENvZGVGb3JDYWxsLCBFbnRlclZpYUp1bXBXaXRoU2F2ZWRUYWdzKTsKIH0K
IAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFnc0dl
bmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgQ29k
ZUZvckNhbGwsIEVudGVyVmlhSnVtcFdpdGhvdXRTYXZlZFRhZ3MpOworICAgIHJldHVybiBuYXRp
dmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uLCBDb2RlRm9y
Q2FsbCwgRW50ZXJWaWFKdW1wV2l0aG91dFNhdmVkVGFncyk7CiB9CiAKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiBu
YXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJldHVybiBuYXRp
dmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uLCBDb2RlRm9y
Q29uc3RydWN0KTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVuY3Rpb25D
YWxsR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZt
LCBUaHVua0Z1bmN0aW9uVHlwZTo6SW50ZXJuYWxGdW5jdGlvbiwgQ29kZUZvckNhbGwpOworfQor
CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgaW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdEdlbmVyYXRv
cihWTSogdm0pCit7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgVGh1bmtGdW5j
dGlvblR5cGU6OkludGVybmFsRnVuY3Rpb24sIENvZGVGb3JDb25zdHJ1Y3QpOwogfQogCiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cEdlbmVyYXRvcihWTSogdm0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAppbmRleCBjMDQzZDQxODdiMGY1YjQ2
YjBmMmNmN2U4NjY4MjQ4NjY1NGNmY2ZjLi42MThmZWUwOThhODBhMWEzNTU1YjRlZDlkMzYwM2Uz
N2FiY2JmMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2Vu
ZXJhdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Jz
LmgKQEAgLTQ2LDYgKzQ2LDggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNhbGxHZW5l
cmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0
b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2FsbEdlbmVyYXRvcihW
TSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFn
c0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVuY3Rpb25D
YWxsR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgaW50ZXJuYWxGdW5jdGlv
bkNvbnN0cnVjdEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4
dXBHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB1bnJlYWNoYWJsZUdlbmVy
YXRvcihWTSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1Bh
dGhzLmNwcAppbmRleCA4YTBlMWFjNjg4ZTRmNzg1ZTZlOGM2NjliNjgwZjJkODk2MDE1ODIzLi40
ZjE2ZTRhMmQwY2FlOWFkZmIyMzM2NmY2Y2I2MTE1YWE1N2M4MmEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTY2LDYgKzY2LDcgQEAK
ICNpbmNsdWRlICJSZWdFeHBPYmplY3QuaCIKICNpbmNsdWRlICJTaGFkb3dDaGlja2VuLmgiCiAj
aW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgiCisjaW5jbHVkZSAiVGh1bmtHZW5l
cmF0b3JzLmgiCiAjaW5jbHVkZSAiVk1JbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CkBAIC0xMzUwLDYg
KzEzNTEsMjUgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBzZXRVcENhbGwoRXhlY1N0YXRl
KiBleGVjQ2FsbGVlLCBJbnN0cnVjdGlvbiogcGMsIENvZGUKICAgICAKICAgICBKU0NlbGwqIGNh
bGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5jdGlvbihjYWxsZWVBc1ZhbHVlKTsKICAgICBp
ZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7CisgICAgICAgIGlmIChjYWxsZWVBc1ZhbHVlLmlz
Q2VsbCgpICYmIGNhbGxlZUFzVmFsdWUuYXNDZWxsKCktPnR5cGUoKSA9PSBJbnRlcm5hbEZ1bmN0
aW9uVHlwZSkgeworICAgICAgICAgICAgYXV0byogaW50ZXJuYWxGdW5jdGlvbiA9IGpzQ2FzdDxJ
bnRlcm5hbEZ1bmN0aW9uKj4oY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKSk7CisgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9IHZtLmdldENUSUludGVybmFsRnVuY3Rpb25U
cmFtcG9saW5lRm9yKGtpbmQpOworICAgICAgICAgICAgQVNTRVJUKCEhY29kZVB0cik7CisKKyAg
ICAgICAgICAgIGlmICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9XICYmIGNhbGxMaW5rSW5mbykg
eworICAgICAgICAgICAgICAgIENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrID0gZXhlYy0+Y29k
ZUJsb2NrKCk7CisKKyAgICAgICAgICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKGNh
bGxlckNvZGVCbG9jay0+bV9sb2NrKTsKKworICAgICAgICAgICAgICAgIGlmIChjYWxsTGlua0lu
Zm8tPmlzT25MaXN0KCkpCisgICAgICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+cmVtb3Zl
KCk7CisgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5jYWxsZWUuc2V0KHZtLCBjYWxsZXJD
b2RlQmxvY2ssIGludGVybmFsRnVuY3Rpb24pOworICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5m
by0+bGFzdFNlZW5DYWxsZWUuc2V0KHZtLCBjYWxsZXJDb2RlQmxvY2ssIGludGVybmFsRnVuY3Rp
b24pOworICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+bWFjaGluZUNvZGVUYXJnZXQgPSBj
b2RlUHRyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBMTElOVF9DQUxMX1JFVFVSTihl
eGVjLCBleGVjQ2FsbGVlLCBjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgICAgICB9
CiAgICAgICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gaGFuZGxlSG9z
dENhbGwoZXhlY0NhbGxlZSwgcGMsIGNhbGxlZUFzVmFsdWUsIGtpbmQpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFz
bSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpp
bmRleCA1ZGFkMTE2YTkzZjZmOWFjYTk1YzBkOWIzMzRlNmZlNjgyYWZlYjM2Li42YzA1NGZhNGY5
MjkyNTlhZDRlYWE3ODlhNzRjN2FhYzUwYjc3N2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xODM0LDYgKzE4MzQs
MTUgQEAgX2xsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmU6CiBfbGxpbnRfbmF0aXZlX2NvbnN0
cnVjdF90cmFtcG9saW5lOgogICAgIG5hdGl2ZUNhbGxUcmFtcG9saW5lKE5hdGl2ZUV4ZWN1dGFi
bGU6Om1fY29uc3RydWN0b3IpCiAKKworX2xsaW50X2ludGVybmFsX2Z1bmN0aW9uX2NhbGxfdHJh
bXBvbGluZToKKyAgICBpbnRlcm5hbEZ1bmN0aW9uQ2FsbFRyYW1wb2xpbmUoSW50ZXJuYWxGdW5j
dGlvbjo6bV9mdW5jdGlvbkZvckNhbGwpCisKKworX2xsaW50X2ludGVybmFsX2Z1bmN0aW9uX2Nv
bnN0cnVjdF90cmFtcG9saW5lOgorICAgIGludGVybmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShJ
bnRlcm5hbEZ1bmN0aW9uOjptX2Z1bmN0aW9uRm9yQ29uc3RydWN0KQorCisKIF9sbGludF9vcF9n
ZXRfZW51bWVyYWJsZV9sZW5ndGg6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGNhbGxPcGNv
ZGVTbG93UGF0aChfc2xvd19wYXRoX2dldF9lbnVtZXJhYmxlX2xlbmd0aCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20KaW5kZXggMGU3MTJiNjc5ZDZhYjEyMDNiYjZjNmNjNTYyYWIwMmE2NzkxNmVjOS4uZTVkYWFh
MjI3NDdiMWU5NDM2NGEzNDVmNzg0YmYwYmU3ODliZWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAg
LTIxMTEsNiArMjExMSw1OCBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxl
T2Zmc2V0VG9GdW5jdGlvbikKIGVuZAogCiAKK21hY3JvIGludGVybmFsRnVuY3Rpb25DYWxsVHJh
bXBvbGluZShvZmZzZXRPZkZ1bmN0aW9uKQorICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQorICAgIHN0
b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQorICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRb
Y2ZyXSwgdDEKKyAgICAvLyBDYWxsZWUgaXMgc3RpbGwgaW4gdDEgZm9yIGNvZGUgYmVsb3cKKyAg
ICBpZiBYODYgb3IgWDg2X1dJTgorICAgICAgICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sgcG9p
bnRlcgorICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFy
a2VkQmxvY2s6Om1fdm1bdDFdLCB0MworICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZy
YW1lW3QzXQorICAgICAgICBtb3ZlIGNmciwgYTAgICMgYTAgPSBlY3gKKyAgICAgICAgc3RvcmVw
IGEwLCBbc3BdCisgICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEK
KyAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCisgICAg
ICAgIGNhbGwgb2Zmc2V0T2ZGdW5jdGlvblt0MV0KKyAgICAgICAgbG9hZHAgQ2FsbGVlICsgUGF5
bG9hZE9mZnNldFtjZnJdLCB0MworICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAg
ICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fdm1bdDNdLCB0MworICAgICAgICBhZGRwIDgsIHNw
CisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIENfTE9PUCBv
ciBNSVBTCisgICAgICAgIHN1YnAgOCwgc3AgIyBhbGlnbiBzdGFjayBwb2ludGVyCisgICAgICAg
ICMgdDEgYWxyZWFkeSBjb250YWlucyB0aGUgQ2FsbGVlLgorICAgICAgICBhbmRwIE1hcmtlZEJs
b2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fdm1bdDFdLCB0MQorICAg
ICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QxXQorICAgICAgICBtb3ZlIGNmciwg
YTAKKyAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQorICAgICAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKKyAgICAgICAgaWYg
Q19MT09QCisgICAgICAgICAgICBjbG9vcENhbGxOYXRpdmUgb2Zmc2V0T2ZGdW5jdGlvblt0MV0K
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbCBvZmZzZXRPZkZ1bmN0aW9uW3QxXQorICAg
ICAgICBlbmQKKyAgICAgICAgbG9hZHAgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0Mwor
ICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAgICAgICAgbG9hZHAgTWFya2VkQmxv
Y2s6Om1fdm1bdDNdLCB0MworICAgICAgICBhZGRwIDgsIHNwCisgICAgZWxzZQorICAgICAgICBl
cnJvcgorICAgIGVuZAorCisgICAgYnRpbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmhhbmRsZUV4
Y2VwdGlvbgorCisgICAgZnVuY3Rpb25FcGlsb2d1ZSgpCisgICAgcmV0CisKKy5oYW5kbGVFeGNl
cHRpb246CisgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KKyAgICBqbXAgX2xs
aW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKK2VuZAorCisKIG1hY3JvIGdldENv
bnN0YW50U2NvcGUoZHN0KQogICAgIGxvYWRwRnJvbUluc3RydWN0aW9uKDYsIHQwKQogICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbihkc3QsIHQxKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA5NzcxNDA5M2U4MzZk
NzliYzY4YmVjOTIyZDgxN2EwZWY4YWU3YTE0Li5lNWYwNzg1MjljYjc0NzQxYjQzMGQ2ZmY2MGZj
NmE3NDYwNDhiNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMjA3OCw2ICsyMDc4LDQ1IEBAIG1hY3JvIG5h
dGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQogICAgIGptcCBf
bGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogZW5kCiAKK21hY3JvIGludGVy
bmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShvZmZzZXRPZkZ1bmN0aW9uKQorICAgIGZ1bmN0aW9u
UHJvbG9ndWUoKQorICAgIHN0b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQorICAgIGxvYWRwIENhbGxl
ZVtjZnJdLCB0MAorICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MCwgdDEKKyAgICBsb2FkcCBN
YXJrZWRCbG9jazo6bV92bVt0MV0sIHQxCisgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFt
ZVt0MV0KKyAgICBpZiBBUk02NCBvciBDX0xPT1AKKyAgICAgICAgc3RvcmVwIGxyLCBSZXR1cm5Q
Q1tjZnJdCisgICAgZW5kCisgICAgbW92ZSBjZnIsIGEwCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0s
IHQxCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCisgICAg
aWYgQ19MT09QCisgICAgICAgIGNsb29wQ2FsbE5hdGl2ZSBvZmZzZXRPZkZ1bmN0aW9uW3QxXQor
ICAgIGVsc2UKKyAgICAgICAgaWYgWDg2XzY0X1dJTgorICAgICAgICAgICAgc3VicCAzMiwgc3AK
KyAgICAgICAgZW5kCisgICAgICAgIGNhbGwgb2Zmc2V0T2ZGdW5jdGlvblt0MV0KKyAgICAgICAg
aWYgWDg2XzY0X1dJTgorICAgICAgICAgICAgYWRkcCAzMiwgc3AKKyAgICAgICAgZW5kCisgICAg
ZW5kCisKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDMKKyAgICBhbmRwIE1hcmtlZEJsb2NrTWFz
aywgdDMKKyAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV92bVt0M10sIHQzCisKKyAgICBidHFueiBW
TTo6bV9leGNlcHRpb25bdDNdLCAuaGFuZGxlRXhjZXB0aW9uCisKKyAgICBmdW5jdGlvbkVwaWxv
Z3VlKCkKKyAgICByZXQKKworLmhhbmRsZUV4Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6
dG9wQ2FsbEZyYW1lW3QzXQorICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJh
bXBvbGluZQorZW5kCisKIG1hY3JvIGdldENvbnN0YW50U2NvcGUoZHN0KQogICAgIGxvYWRwRnJv
bUluc3RydWN0aW9uKDYsIHQwKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbihkc3QsIHQxKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNw
cAppbmRleCA4MjMzNjgzODQzMjE2YjMwYmY5NzQyNmRhOTQ4ODAyMzYwYjljNTBjLi40ZDg5YWNh
YjNiZDVjOTg5NTlkY2EyMDk5OGFlZDA3OGY4MDQzNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcApAQCAtNTAsOCArNTAsMTEg
QEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9u
IiwgJkludGVybmFsRnVuY3Rpb246OnNfaW4KIEBlbmQKICovCiAKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEFycmF5Q29uc3Ry
dWN0b3IoRXhlY1N0YXRlKik7CisKIEFycmF5Q29uc3RydWN0b3I6OkFycmF5Q29uc3RydWN0b3Io
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0s
IHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEFy
cmF5Q29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhBcnJheUNvbnN0cnVjdG9yKQogewogfQogCkBA
IC0xMDAsMjUgKzEwMywxMiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKGV4ZWMsIGFyZ3MsIGV4
ZWMtPm5ld1RhcmdldCgpKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgQXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQot
ewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEFycmF5
Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJheUNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZXhlYywgYXJncywgSlNWYWx1
ZSgpKSk7CiB9CiAKLUNhbGxUeXBlIEFycmF5Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICAvLyBlcXVpdmFsZW50IHRvICduZXcgQXJy
YXkoLi4uLiknCi0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEFycmF5Q29uc3Ry
dWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBzdGF0aWMgQUxXQVlTX0lO
TElORSBib29sIGlzQXJyYXlTbG93SW5saW5lKEV4ZWNTdGF0ZSogZXhlYywgUHJveHlPYmplY3Qq
IHByb3h5KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKaW5kZXggMTU4NDg4NWQwY2RlNjA4
NzI3ZGM1OGRkNmQ3MjBmYWM0M2FkOGMxMy4uNjE2NTJhYTdmM2RjMzNjNWY4OWZhNjYxNTNhYjlj
M2MzOTVmOTVhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
Q29uc3RydWN0b3IuaApAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBBcnJheUNvbnN0cnVjdG9yIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01NCw5ICs1NCw2IEBA
IGNsYXNzIEFycmF5Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHBy
aXZhdGU6CiAgICAgQXJyYXlDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotCi0gICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
CiB9OwogCiBKU1ZhbHVlIGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhFeGVjU3RhdGUqLCBB
cnJheUFsbG9jYXRpb25Qcm9maWxlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGxlbmd0aCwg
SlNWYWx1ZSBwcm90b3R5cGUgPSBKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXgg
NTI3MjhmOTQ5ZDkyYzNiZTJiNmE5YTk0Yjc0OWM5YmEyNmFkZDNiYS4uZDBlOWJkNzRmYTE3ZTM4
NTAyNDMzNzQzMDQ5MWEzMDVhOTIzNjRmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNiwx
OCArMzYsNiBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoQXN5bmNG
dW5jdGlvbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEFzeW5jRnVuY3Rpb25Db25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiQXN5bmNGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9y
KSB9OwogCi1Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rv
cihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlKQotewotfQotCi12b2lkIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBBc3luY0Z1bmN0aW9uUHJvdG90eXBlKiBwcm90b3R5cGUpCi17
Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sICJBc3luY0Z1bmN0aW9uIik7Ci0gICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwg
cHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7Ci0gICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1i
ZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSk7Ci19Ci0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxB
c3luY0Z1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3Qg
YXJncyhleGVjKTsKQEAgLTYwLDE2ICs0OCwxNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zdHJ1Y3RBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZXhlYywgYXNJbnRl
cm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncywgRnVu
Y3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpBc3luYykpOwogfQogCi1DYWxsVHlwZSBBc3luY0Z1bmN0
aW9uQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
K0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1
Y3R1cmUsIGNhbGxBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IsIGNvbnN0cnVjdEFzeW5jRnVuY3Rp
b25Db25zdHJ1Y3RvcikKIHsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXN5
bmNGdW5jdGlvbkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKIH0KIAot
Q29uc3RydWN0VHlwZSBBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEo
SlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKK3ZvaWQgQXN5bmNGdW5jdGlv
bkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEFzeW5jRnVuY3Rpb25Qcm90b3R5
cGUqIHByb3RvdHlwZSkKIHsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNv
bnN0cnVjdEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlw
ZTo6SG9zdDsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgIkFzeW5jRnVuY3Rpb24iKTsK
KyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJv
dG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5
QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5o
CmluZGV4IDAzNWEyYzFlNGY5MTVjYWMwYjRiMTc3M2U2ZDA1ODllMjc0NzQ3ZDQuLjAzZWZkYmEy
ZTAxOTc2ZGQ3MDMwMDk3Njg5NGI2M2E3Njc3Yjk4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCkBAIC00
NiwxNCArNDYsMTIgQEAgY2xhc3MgQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yIDogcHVibGljIElu
dGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUp
CiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rv
cihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBBc3luY0Z1
bmN0aW9uUHJvdG90eXBlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IGFhYTZhMWY0ZjdjY2U1MmQ5
YzFhYjY3OGU5ZDkyNTc3ZDFiMGIzNmIuLmM1MzQxOTA4ZTk1ZGNkMzIyMmYwZjhlZTY4YzQxYTcw
MzQzNTVlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzYs
MjAgKzM2LDYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEFzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBBc3luY0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkFzeW5jR2VuZXJhdG9yRnVu
Y3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcikgfTsKIAotQXN5bmNHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Io
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0s
IHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlw
ZSogcHJvdG90eXBlKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiQXN5bmNHZW5l
cmF0b3JGdW5jdGlvbiIpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkpOwotCi0gICAgLy8gTnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0
b3IKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwpAQCAtNjIsMTYgKzQ4LDE4IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFzeW5jR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3RvcihFCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1
Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmds
b2JhbE9iamVjdCgpLCBhcmdzLCBGdW5jdGlvbkNvbnN0cnVjdGlvbk1vZGU6OkFzeW5jR2VuZXJh
dG9yKSk7CiB9CiAKLUNhbGxUeXBlIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQorQXN5bmNHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yOjpBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0
cnVjdHVyZSwgY2FsbEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvciwgY29uc3RydWN0
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKQogewotICAgIGNhbGxEYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNhbGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAg
cmV0dXJuIENhbGxUeXBlOjpIb3N0OwogfQogCi1Db25zdHJ1Y3RUeXBlIEFzeW5jR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQordm9pZCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlw
ZSogcHJvdG90eXBlKQogewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29u
c3RydWN0QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25z
dHJ1Y3RUeXBlOjpIb3N0OworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiQXN5bmNHZW5l
cmF0b3JGdW5jdGlvbiIpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkpOworCisgICAgLy8gTnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0
b3IKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9u
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJh
dG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCmluZGV4IGI4ZjE1MGI1OWVlN2MzOTRiMWI4MTRjZTZl
YWRiM2U0ZDc4NjBjNjEuLmJjNDRhYzZiNmEzMDIwMzdkYzI2YTNlNzA0ZGM2NTgyNmMyNDg3YjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCkBAIC00NiwxNCArNDYsMTIgQEAg
Y2xhc3MgQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Cisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBBc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUg
Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENh
bGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFu
Q29uc3RydWN0b3IuY3BwCmluZGV4IDY3YTAxNWFiM2UxYTc4YTJhZDI2ODU3ODNhNjM4ZmVmY2Jh
YzcxOTEuLmYwYWIwNDI1M2U5MzM1MDFhYWFjYmE4YjE2M2RjMzUzZjhjZTY2ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNw
cApAQCAtMzEsMTYgKzMxLDEwIEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNU
SUJMRShCb29sZWFuQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gQm9vbGVhbkNvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQm9vbGVhbkNvbnN0cnVjdG9yKSB9OwogCi1Cb29s
ZWFuQ29uc3RydWN0b3I6OkJvb2xlYW5Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQotewotfQotCi12
b2lkIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBCb29sZWFuUHJv
dG90eXBlKiBib29sZWFuUHJvdG90eXBlKQorLy8gRUNNQSAxNS42LjEKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxCb29sZWFuQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBib29sZWFuUHJvdG90eXBlLT5j
bGFzc0luZm8oKS0+Y2xhc3NOYW1lKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBib29sZWFuUHJvdG90eXBlLCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZXhlYy0+YXJndW1lbnQoMCkudG9Cb29sZWFu
KGV4ZWMpKSk7CiB9CiAKIC8vIEVDTUEgMTUuNi4yCkBAIC01NiwyMiArNTAsMTYgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iaik7CiB9CiAK
LUNvbnN0cnVjdFR5cGUgQm9vbGVhbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2Vs
bCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCitCb29sZWFuQ29uc3RydWN0b3I6OkJv
b2xlYW5Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSW50
ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsQm9vbGVhbkNvbnN0cnVjdG9yLCBjb25z
dHJ1Y3RXaXRoQm9vbGVhbkNvbnN0cnVjdG9yKQogewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4g
Q29uc3RydWN0VHlwZTo6SG9zdDsKIH0KIAotLy8gRUNNQSAxNS42LjEKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxCb29sZWFuQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGV4ZWMtPmFyZ3Vt
ZW50KDApLnRvQm9vbGVhbihleGVjKSkpOwotfQotCi1DYWxsVHlwZSBCb29sZWFuQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK3ZvaWQgQm9vbGVh
bkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEJvb2xlYW5Qcm90b3R5cGUqIGJv
b2xlYW5Qcm90b3R5cGUpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEJv
b2xlYW5Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0sIGJvb2xlYW5Qcm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05h
bWUpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5wcm90b3R5cGUsIGJvb2xlYW5Qcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAogSlNPYmplY3QqIGNvbnN0cnVjdEJv
b2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgaW1tZWRpYXRlQm9vbGVhblZhbHVlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaAppbmRleCBi
YjhjNWRmMmI1NGRjMDY4YjkzNDFlMWI3NzVkNTE5MzMwZWI5YzkzLi4zNmVjYzlmNGRiYjE4MGU1
NzkwODdiMjgxNmRjZjE3ZTg2ZDJlYjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBC
b29sZWFuQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgeyAKLSAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJu
YWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCiAgICAgfQogCiBwcm90
ZWN0ZWQ6CkBAIC01MCw4ICs1MCw2IEBAIGNsYXNzIEJvb2xlYW5Db25zdHJ1Y3RvciA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBCb29sZWFuQ29uc3RydWN0b3Io
Vk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIEpTT2JqZWN0KiBjb25zdHJ1Y3RCb29s
ZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1Zh
bHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0
b3IuY3BwCmluZGV4IGIyZjI5Y2ZkOWU3NzkzZmE2M2U2MDllMzFhYjBlNDg5NTdjYTY3ZmQuLjY3
OTk2NWNhYzVhYTI5MTQzNTI0ZGQzOTc2OGNiOGQ3MmE4YjMyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtNjgsOCArNjgs
MTEgQEAgY29uc3QgQ2xhc3NJbmZvIERhdGVDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rp
b24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmYKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFM
TFlfREVTVFJVQ1RJQkxFKERhdGVDb25zdHJ1Y3Rvcik7CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxEYXRlKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aERhdGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
KTsKKwogRGF0ZUNvbnN0cnVjdG9yOjpEYXRlQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6
IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbERhdGUsIGNvbnN0cnVjdFdpdGhE
YXRlQ29uc3RydWN0b3IpCiB7CiB9CiAKQEAgLTE1MywxMiArMTU2LDYgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aERhdGVDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIGV4ZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdERhdGUoZXhl
YywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwg
ZXhlYy0+bmV3VGFyZ2V0KCksIGFyZ3MpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBEYXRlQ29uc3Ry
dWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0
RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdp
dGhEYXRlQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0K
IC8vIEVDTUEgMTUuOS4yCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
RGF0ZShFeGVjU3RhdGUqIGV4ZWMpCiB7CkBAIC0xNjgsMTIgKzE2NSw2IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxEYXRlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZygmdm0sIGZvcm1hdERhdGVU
aW1lKHRzLCBEYXRlVGltZUZvcm1hdERhdGVBbmRUaW1lLCBmYWxzZSkpKTsKIH0KIAotQ2FsbFR5
cGUgRGF0ZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERh
dGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbERhdGU7Ci0gICAgcmV0
dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQYXJzZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKaW5kZXgg
ZmNlYTU1ZjhkZjZiMDAxYTA5MTljMDJjMmIwYTI4MmE2ZjVhMGNjMy4uMzA3YzZkNTU0YjFiNDJh
M2YwMGJjZGZkYTc2MmFiNDkxYTUwMjJkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgRGF0ZUNv
bnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25U
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01
MSw4ICs1MSw2IEBAIGNsYXNzIERhdGVDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0
aW9uIHsKIAogcHJpdmF0ZToKICAgICBEYXRlQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsK
LSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0
cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmKTsKIH07CiAKIEpTT2JqZWN0KiBjb25zdHJ1Y3REYXRlKEV4ZWNTdGF0ZSosIEpTR2xv
YmFsT2JqZWN0KiwgSlNWYWx1ZSBuZXdUYXJnZXQsIGNvbnN0IEFyZ0xpc3QmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvci5oCmluZGV4IDkwNjcxZDU3YTM0Y2NkNmIwYzg2ZTljZTc4
MTE4NGU4NGE0MWYzYjYuLjRmYWVkMzc3YTBiZDJiMmI3MzRmZWE1YzM1MGQ0ODkyMzIzYjllNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaApAQCAtMTA2LDcgKzEwNiw3IEBA
IGlubGluZSBFbmNvZGVkSlNWYWx1ZSB0aHJvd1ZNRE9NQXR0cmlidXRlR2V0dGVyVHlwZUVycm9y
KEV4ZWNTdGF0ZSogc3RhdGUsIFRocm93CiBjbGFzcyBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rp
b24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwcml2YXRlOgogICAgIFN0cmljdE1vZGVU
eXBlRXJyb3JGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCi0gICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQor
ICAgICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbFRocm93VHlwZUVy
cm9yLCBjb25zdHJ1Y3RUaHJvd1R5cGVFcnJvcikKICAgICAgICAgLCBtX21lc3NhZ2UobWVzc2Fn
ZSkKICAgICB7CiAgICAgfQpAQCAtMTMxLDEyICsxMzEsNiBAQCBjbGFzcyBTdHJpY3RNb2RlVHlw
ZUVycm9yRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBDb25zdHJ1
Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0
RGF0YSkKLSAgICB7Ci0gICAgICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29u
c3RydWN0VGhyb3dUeXBlRXJyb3I7Ci0gICAgICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0
OwotICAgIH0KLQogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxU
aHJvd1R5cGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgewogICAgICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwpAQCAtMTQ1LDE3ICsxMzksMTEgQEAgY2xhc3MgU3RyaWN0TW9kZVR5cGVFcnJv
ckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotICAgIHsKLSAgICAgICAgY2Fs
bERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFRocm93VHlwZUVycm9yOwotICAgICAgICByZXR1
cm4gQ2FsbFR5cGU6Okhvc3Q7Ci0gICAgfQotCiAgICAgREVDTEFSRV9JTkZPOwogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsgCi0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVy
bmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggZGFhN2E5MDFlOTRjMDFmODgyZmVhMDkyNTkzNjE0YmFiZmEyMjQzNi4u
YjA0NGM4ZDI3MDdiMjMwZTE2ODU4ODI4OTQ2YTg4YTk3MWI5OThmNyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM0LDcg
KzM0LDcgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEVycm9yQ29u
c3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZvIEVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShFcnJvckNvbnN0cnVjdG9yKSB9OwogCiBFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNv
bnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1
cmUsIEludGVycHJldGVyOjpjYWxsRXJyb3JDb25zdHJ1Y3RvciwgSW50ZXJwcmV0ZXI6OmNvbnN0
cnVjdFdpdGhFcnJvckNvbnN0cnVjdG9yKQogewogfQogCkBAIC02MywxMiArNjMsNiBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoRXJyb3JD
b25zdHJ1Y3RvcihFeGVjU3RhdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBl
Tm90aGluZywgZmFsc2UpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBFcnJvckNvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17
Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBJbnRlcnByZXRlcjo6Y29uc3Ry
dWN0V2l0aEVycm9yQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7
Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50ZXJwcmV0ZXI6OmNhbGxFcnJv
ckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBl
eGVjLT5hcmd1bWVudCgwKTsKQEAgLTc2LDEyICs3MCw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50ZXJwcmV0ZXI6OmNhbGxFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVj
LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7
CiB9CiAKLUNhbGxUeXBlIEVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBJbnRl
cnByZXRlcjo6Y2FsbEVycm9yQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0
OwotfQotCiBib29sIEVycm9yQ29uc3RydWN0b3I6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKaW5kZXggNjMwOTZi
ZDVjNDM3ODc3NzkzZjg2NTZjNTY5NzczOGY2ZGQ5MjI0ZC4uYTBkZDFiMDVlNDkyZThlMGY5NmI1
MTRhZTk1NDkwNGVkYTczYTRkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yQ29uc3RydWN0b3IuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBFcnJvckNvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25U
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAogICAgIHN0ZDo6b3B0aW9u
YWw8dW5zaWduZWQ+IHN0YWNrVHJhY2VMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2tUcmFj
ZUxpbWl0OyB9CkBAIC01NSw4ICs1NSw2IEBAIGNsYXNzIEVycm9yQ29uc3RydWN0b3IgOiBwdWJs
aWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgRXJyb3JDb25zdHJ1Y3RvcihW
TSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERh
dGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4g
bV9zdGFja1RyYWNlTGltaXQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBmYTY3Y2Q1ZDUyM2MwZGM5OTMz
ODUzMGU0OTIwN2UxNWUxOTZkMDQ3Li5kODAzNjE2NjhkNmJlYjJmNzkzYTM5OGVjNTcyNGIxMDkw
YjIwOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
bkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzgsNDEgKzM4LDI5IEBAIFNUQVRJQ19BU1NFUlRfSVNf
VFJJVklBTExZX0RFU1RSVUNUSUJMRShGdW5jdGlvbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xh
c3NJbmZvIEZ1bmN0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShGdW5jdGlvbkNv
bnN0cnVjdG9yKSB9OwogCi1GdW5jdGlvbkNvbnN0cnVjdG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9y
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZt
LCBzdHJ1Y3R1cmUpCi17Ci19Ci0KLXZvaWQgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBGdW5jdGlvblByb3RvdHlwZSogZnVuY3Rpb25Qcm90b3R5cGUpCi17Ci0g
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGZ1bmN0aW9uUHJvdG90eXBlLT5jbGFzc0luZm8o
KS0+Y2xhc3NOYW1lKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+cHJvdG90eXBlLCBmdW5jdGlvblByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotfQotCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRnVuY3Rpb25Db25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0
aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25z
dHJ1Y3Rpb25Nb2RlOjpGdW5jdGlvbiwgZXhlYy0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotQ29uc3Ry
dWN0VHlwZSBGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4g
Q29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQorLy8gRUNNQSAxNS4zLjEgVGhlIEZ1bmN0aW9uIENv
bnN0cnVjdG9yIENhbGxlZCBhcyBhIEZ1bmN0aW9uCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3Ry
dWN0RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5n
bG9iYWxPYmplY3QoKSwgYXJncykpOwogfQogCi0vLyBFQ01BIDE1LjMuMSBUaGUgRnVuY3Rpb24g
Q29uc3RydWN0b3IgQ2FsbGVkIGFzIGEgRnVuY3Rpb24KLUNhbGxUeXBlIEZ1bmN0aW9uQ29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK0Z1bmN0aW9u
Q29uc3RydWN0b3I6OkZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEZ1bmN0aW9u
Q29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0cnVjdG9yKQoreworfQorCit2
b2lkIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgRnVuY3Rpb25Q
cm90b3R5cGUqIGZ1bmN0aW9uUHJvdG90eXBlKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9z
dDsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgZnVuY3Rpb25Qcm90b3R5cGUtPmNsYXNz
SW5mbygpLT5jbGFzc05hbWUpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGZ1bmN0aW9uUHJvdG90eXBlLCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIC8vIEVD
TUEgMTUuMy4yIFRoZSBGdW5jdGlvbiBDb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCmluZGV4IDEzYzM3ZmQ1MmYy
M2Y3MmMyODk3N2M1MjIwMmViZmMzMDI3NzIwMzQuLjdjZTNmNDg4NmRjMjM2YTk0YmQzNDUyZGQx
YzBjZTMxNGVkZDhiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAgLTQ1LDE0ICs0NSwxMiBAQCBjbGFzcyBGdW5jdGlv
bkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVu
Y3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAogcHJpdmF0ZToK
ICAgICBGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEZ1bmN0aW9uUHJvdG90eXBlKik7Ci0gICAgc3RhdGljIENvbnN0cnVj
dFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3Rh
dGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBlbnVt
IGNsYXNzIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggMThmOGI1ZWFkNTY0
NDk2OGJlMjE1NzZjNjc1NjMyZDIxZTYwNTgyZi4uNDA4MGUzOTBmY2QwMGUwMTgzNjdhZTE0M2Fk
NDcwODZjNjRhYWU2MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uUHJvdG90eXBlLmNwcApAQCAtNDMsOCArNDMsMTQgQEAgY29uc3QgQ2xhc3NJbmZv
IEZ1bmN0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Q
cm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqKTsKIAorLy8gRUNNQSAxNS4zLjQKK3N0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvblByb3RvdHlwZShFeGVjU3Rh
dGUqKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisK
IEZ1bmN0aW9uUHJvdG90eXBlOjpGdW5jdGlvblByb3RvdHlwZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDog
SW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsRnVuY3Rpb25Qcm90b3R5cGUsIG51
bGxwdHIpCiB7CiB9CiAKQEAgLTc3LDE4ICs4Myw2IEBAIHZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6
OmluaXRSZXN0cmljdGVkUHJvcGVydGllcyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
CiAgICAgcHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YXJndW1lbnRz
LCBlcnJvckdldHRlclNldHRlciwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEZ1bmN0aW9uUHJvdG90eXBlKEV4ZWNTdGF0ZSopCi17Ci0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotLy8gRUNNQSAxNS4zLjQKLUNh
bGxUeXBlIEZ1bmN0aW9uUHJvdG90eXBlOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYg
Y2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEZ1bmN0aW9u
UHJvdG90eXBlOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKaW5kZXggYmFmN2NjYjRiZDE5ZTc1MTlh
OWRiMjM1NDI1MzMwZTIyZmI4YTQ1Zi4uOTM4ODg3MDhmNDcxNDhhNmJjNzUxMTMxMWM3ZmY2MTE3
ZDhlZDA1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25Qcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
blByb3RvdHlwZS5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIEZ1bmN0aW9uUHJvdG90eXBlIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90bykKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG8sIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7CiAgICAgfQogCiAgICAgREVDTEFSRV9JTkZPOwpAQCAtNTEsNyArNTEsNiBAQCBjbGFz
cyBGdW5jdGlvblByb3RvdHlwZSA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0
ZToKICAgICBGdW5jdGlvblByb3RvdHlwZShWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBD
YWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5l
cmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IGU1NGU2M2Y5MmIzZGQ4
MmY3ZGJjMmE0ZDRlNTIxODA0OGVjNzdjN2QuLjM3NDNjNmExOWRmYWZkZTcyNmFjNTQ5Y2QxYjhk
NGJmYWQxNjg2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNiwxOCArMzYs
NiBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoR2VuZXJhdG9yRnVu
Y3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJHZW5lcmF0b3JGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3RvcikgfTsKIAotR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDog
SW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQotewotfQotCi12b2lkIEdlbmVyYXRvckZ1
bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgR2VuZXJhdG9yRnVuY3Rp
b25Qcm90b3R5cGUqIGdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKQotewotICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtLCAiR2VuZXJhdG9yRnVuY3Rpb24iKTsKLSAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBnZW5lcmF0b3JG
dW5jdGlvblByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgs
IGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pOwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwpAQCAtNjAsMTYgKzQ4LDE2IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3IoRXhlY1N0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihl
eGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCgp
LCBhcmdzLCBGdW5jdGlvbkNvbnN0cnVjdGlvbk1vZGU6OkdlbmVyYXRvciwgZXhlYy0+bmV3VGFy
Z2V0KCkpKTsKIH0KIAotQ2FsbFR5cGUgR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQorR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxs
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvciwgY29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3RvcikKIHsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsR2VuZXJh
dG9yRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7CiB9CiAK
LUNvbnN0cnVjdFR5cGUgR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQordm9pZCBHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEdlbmVyYXRvckZ1
bmN0aW9uUHJvdG90eXBlKiBnZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSkKIHsKLSAgICBjb25z
dHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEdlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24odm0sICJHZW5lcmF0b3JGdW5jdGlvbiIpOworICAgIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGdlbmVyYXRvckZ1
bmN0aW9uUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAg
cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwg
anNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3Rvci5oCmluZGV4IGYyOGM3MWM3OGZlYzJlNWRjZjBmNWVlNGYzZTViNmMyMmFkMGM3NTguLmY0
NmQ4YzU5ZDU1NmUyMzExNDRiM2I2YmJiMDllNmI4ZWNmMDFmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yLmgKQEAgLTUyLDE0ICs1MiwxMiBAQCBjbGFzcyBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIEdlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJiwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUqKTsKLSAgICBzdGF0aWMg
Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsK
LSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAppbmRleCAzZDNmZDFhYmMzNDMzYzViNDkxOWUwMWU0
M2M1ZGU2NDA3ZDk3Yjc5Li5mMDNlM2NhNTFkMDZmZjIzNDkwMzViMDAxNWM1YjU1ZjIzNDM2NGUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0
aW9uLmNwcApAQCAtMzQsMTggKzM0LDIxIEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RF
U1RSVUNUSUJMRShJbnRlcm5hbEZ1bmN0aW9uKTsKIAogY29uc3QgQ2xhc3NJbmZvIEludGVybmFs
RnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnRlcm5hbEZ1bmN0aW9uKSB9OwogCi1JbnRl
cm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCitJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ2FsbCwgTmF0aXZlRnVuY3Rp
b24gZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpCiAgICAgOiBKU0Rlc3RydWN0aWJsZU9iamVjdCh2bSwg
c3RydWN0dXJlKQorICAgICwgbV9mdW5jdGlvbkZvckNhbGwoZnVuY3Rpb25Gb3JDYWxsKQorICAg
ICwgbV9mdW5jdGlvbkZvckNvbnN0cnVjdChmdW5jdGlvbkZvckNvbnN0cnVjdCA/IGZ1bmN0aW9u
Rm9yQ29uc3RydWN0IDogY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IpCiB7CiAgICAgLy8g
ZXhlYy0+dm0oKSB3YW50cyBjYWxsZWVzIHRvIG5vdCBiZSBsYXJnZSBhbGxvY2F0aW9ucy4KICAg
ICBSRUxFQVNFX0FTU0VSVCghaXNMYXJnZUFsbG9jYXRpb24oKSk7CisgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShtX2Z1bmN0aW9uRm9yQ2FsbCwgIltbQ2FsbF1dIG11c3QgYmUgaW1wbGVtZW50ZWQi
KTsKKyAgICBBU1NFUlQobV9mdW5jdGlvbkZvckNvbnN0cnVjdCk7CiB9CiAKIHZvaWQgSW50ZXJu
YWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBTdHJpbmcmIG5hbWUsIE5h
bWVWaXNpYmlsaXR5IG5hbWVWaXNpYmlsaXR5KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwotICAgIEFTU0VSVChtZXRo
b2RUYWJsZSh2bSktPmdldENhbGxEYXRhICE9IEludGVybmFsRnVuY3Rpb246OmluZm8oKS0+bWV0
aG9kVGFibGUuZ2V0Q2FsbERhdGEpOwogICAgIEpTU3RyaW5nKiBuYW1lU3RyaW5nID0ganNTdHJp
bmcoJnZtLCBuYW1lKTsKICAgICBtX29yaWdpbmFsTmFtZS5zZXQodm0sIHRoaXMsIG5hbWVTdHJp
bmcpOwogICAgIGlmIChuYW1lVmlzaWJpbGl0eSA9PSBOYW1lVmlzaWJpbGl0eTo6VmlzaWJsZSkK
QEAgLTc4LDEwICs4MSwyMSBAQCBjb25zdCBTdHJpbmcgSW50ZXJuYWxGdW5jdGlvbjo6ZGlzcGxh
eU5hbWUoVk0mIHZtKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotQ2FsbFR5cGUgSW50ZXJu
YWxGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKQorQ2FsbFR5cGUgSW50
ZXJuYWxGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2FsbERh
dGEpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gQ2Fs
bFR5cGU6Ok5vbmU7CisgICAgYXV0byogZnVuY3Rpb24gPSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlv
bio+KGNlbGwpOworICAgIEFTU0VSVChmdW5jdGlvbi0+bV9mdW5jdGlvbkZvckNhbGwpOworICAg
IGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGZ1bmN0aW9uLT5tX2Z1bmN0aW9uRm9yQ2FsbDsK
KyAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Cit9CisKK0NvbnN0cnVjdFR5cGUgSW50ZXJuYWxG
dW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqIGNlbGwsIENvbnN0cnVjdERhdGEmIGNv
bnN0cnVjdERhdGEpCit7CisgICAgYXV0byogZnVuY3Rpb24gPSBqc0Nhc3Q8SW50ZXJuYWxGdW5j
dGlvbio+KGNlbGwpOworICAgIGlmIChmdW5jdGlvbi0+bV9mdW5jdGlvbkZvckNvbnN0cnVjdCA9
PSBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvcikKKyAgICAgICAgcmV0dXJuIENvbnN0cnVj
dFR5cGU6Ok5vbmU7CisgICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBmdW5jdGlv
bi0+bV9mdW5jdGlvbkZvckNvbnN0cnVjdDsKKyAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9z
dDsKIH0KIAogY29uc3QgU3RyaW5nIEludGVybmFsRnVuY3Rpb246OmNhbGN1bGF0ZWREaXNwbGF5
TmFtZShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmgKaW5kZXggM2E4ZjIyZWI4OGUwZWJkYjg3ZDM0N2UzOTc0NmEyYmFjZDJmNTM5
OC4uOTE3MGI4NGY5ZWU0NmYwYWYyZWMyZDZhMmNiMTllYTRmODY3NzgwMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaApAQCAtMjMsNiAr
MjMsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktp
bmQuaCIKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTMwLDYgKzMxLDggQEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBGdW5jdGlvblByb3Rv
dHlwZTsKIAogY2xhc3MgSW50ZXJuYWxGdW5jdGlvbiA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9i
amVjdCB7CisgICAgZnJpZW5kIGNsYXNzIEpJVDsKKyAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZz
ZXRzRXh0cmFjdG9yOwogcHVibGljOgogICAgIHR5cGVkZWYgSlNEZXN0cnVjdGlibGVPYmplY3Qg
QmFzZTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2UgfCBUeXBlT2ZTaG91bGRDYWxsR2V0Q2FsbERhdGE7CkBAIC00NCwyMCArNDcs
NDAgQEAgY2xhc3MgSW50ZXJuYWxGdW5jdGlvbiA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVj
dCB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKQogICAgIHsgCi0gICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKKyAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhJbnRl
cm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShFeGVjU3RhdGUqLCBK
U1ZhbHVlIG5ld1RhcmdldCwgU3RydWN0dXJlKik7CiAKKyAgICBOYXRpdmVGdW5jdGlvbiBuYXRp
dmVGdW5jdGlvbkZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgeworICAgICAg
ICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9u
Rm9yQ2FsbDsKKyAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7CisgICAg
ICAgIHJldHVybiBtX2Z1bmN0aW9uRm9yQ29uc3RydWN0OworICAgIH0KKworICAgIHN0YXRpYyBw
dHJkaWZmX3Qgb2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQpCisgICAgeworICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAg
ICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSW50ZXJuYWxGdW5jdGlvbiwgbV9mdW5jdGlvbkZv
ckNhbGwpOworICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICAg
ICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihJbnRlcm5hbEZ1bmN0aW9uLCBtX2Z1bmN0aW9uRm9y
Q29uc3RydWN0KTsKKyAgICB9CisKIHByb3RlY3RlZDoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBJ
bnRlcm5hbEZ1bmN0aW9uKFZNJiwgU3RydWN0dXJlKik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUg
SW50ZXJuYWxGdW5jdGlvbihWTSYsIFN0cnVjdHVyZSosIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9u
Rm9yQ2FsbCwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpOwogCiAgICAgZW51
bSBjbGFzcyBOYW1lVmlzaWJpbGl0eSB7IFZpc2libGUsIEFub255bW91cyB9OwogICAgIEpTX0VY
UE9SVF9QUklWQVRFIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBjb25zdCBTdHJpbmcmIG5hbWUs
IE5hbWVWaXNpYmlsaXR5ID0gTmFtZVZpc2liaWxpdHk6OlZpc2libGUpOwogCiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmVTbG93
KEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmV3VGFyZ2V0LCBTdHJ1Y3R1cmUqKTsKIAorICAgIHN0YXRp
YyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYp
OwogICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwor
CisgICAgTmF0aXZlRnVuY3Rpb24gbV9mdW5jdGlvbkZvckNhbGw7CisgICAgTmF0aXZlRnVuY3Rp
b24gbV9mdW5jdGlvbkZvckNvbnN0cnVjdDsKICAgICBXcml0ZUJhcnJpZXI8SlNTdHJpbmc+IG1f
b3JpZ2luYWxOYW1lOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGQxYTE4NGYzYzE2MjI2
NjhlNTFjNmM1NDU5YTk1NmI1Y2NkMWE1MjcuLjAzYjg3YjA2NTk3NDYwNmY5MzFiMWFhNDMwZTM2
MjM5YmEwY2IyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ5LDYgKzQ5LDkgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5j
U3VwcG9ydGVkTG9jYWxlc08KIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsQ29sbGF0b3IoRXhlY1N0YXRlKik7CitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3IoRXhlY1N0
YXRlKik7CisKIGNvbnN0IENsYXNzSW5mbyBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAmY29sbGF0b3JDb25z
dHJ1Y3RvclRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEludGxDb2xsYXRvckNv
bnN0cnVjdG9yKSB9OwogCiAvKiBTb3VyY2UgZm9yIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmx1
dC5oCkBAIC02NiwxMSArNjksMTEgQEAgSW50bENvbGxhdG9yQ29uc3RydWN0b3IqIEludGxDb2xs
YXRvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnUKIAogU3RydWN0
dXJlKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVy
bmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIEludGxDb2xs
YXRvckNvbnN0cnVjdG9yOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAg
IDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsSW50bENvbGxhdG9yLCBjb25z
dHJ1Y3RJbnRsQ29sbGF0b3IpCiB7CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxDb2xsYXRvcihFeGVjU3RhdGUqIHN0
YXRlKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29sbGF0b3IpOwogfQogCi1Db25zdHJ1
Y3RUeXBlIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCos
IENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RJbnRsQ29sbGF0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVj
dFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY2FsbEludGxDb2xsYXRvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9yQ29uc3Ry
dWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKEV4ZWNTdGF0ZSogc3RhdGUpCiB7CiAgICAgVk0m
IHZtID0gc3RhdGUtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaAppbmRleCBjZjM0NjhmYjEzMDUwZDE3MjZm
ZGMxZjNiZjdjMmIzZmRlOTFhMmMwLi4wZGI4NmM3MmQ0ZmExOWVhZmY5MWI4YjFmMDEyZmFjNmU2
ZGYyYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29s
bGF0b3JDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxDb2xsYXRvckNvbnN0cnVjdG9yLmgKQEAgLTUxLDggKzUxLDYgQEAgY2xhc3MgSW50bENvbGxh
dG9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAg
ICAgSW50bENvbGxhdG9yQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMg
Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsK
LSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAg
ICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAg
CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9jb2xsYXRvclN0cnVjdHVyZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCA1MDEwZTE3NTY0MjY3MjYzZThhZGFmYjM4NWE4
ZDhiYjM0OTg0NDhiLi41YWY4MmFiYTMxMjdlNWRiNWVkYmE5ODk2YjczNjExMmU1NmFlZjdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC02NiwxMSArNjYsMTQgQEAgSW50bERh
dGVUaW1lRm9ybWF0Q29uc3RydWN0b3IqIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpj
cmVhdGUoVk0mIHZtLCBTdHIKIAogU3RydWN0dXJlKiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRl
Kik7CisKIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpJbnRsRGF0ZVRpbWVGb3JtYXRD
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxG
dW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0
dXJlLCBjYWxsSW50bERhdGVUaW1lRm9ybWF0LCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQp
CiB7CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEludGxEYXRlVGltZUZvcm1hdChFeGVjU3RhdGUqIHN0YXRlKQogICAgIH0p
KTsKIH0KIAotQ29uc3RydWN0VHlwZSBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Z2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewot
ICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SW50bERhdGVUaW1l
Rm9ybWF0OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBJ
bnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxJbnRs
RGF0ZVRpbWVGb3JtYXQ7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1
cHBvcnRlZExvY2FsZXNPZihFeGVjU3RhdGUqIHN0YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRl
LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERh
dGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmgKaW5kZXggZjFiYTI2N2NiOTNmODc1ODE1
ZTQ5YmYxNzliYTljYzU1M2YwNjlkMy4uOGU2MTA2NTA4M2EwMjEwY2ZhZjNkMjUzMDhiYTM5YTk0
ZGFlYmJjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERh
dGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5oCkBAIC01MSw4ICs1MSw2IEBAIGNs
YXNzIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogCiBwcml2YXRlOgogICAgIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yKFZNJiwg
U3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShK
U0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0Nl
bGwqLCBTbG90VmlzaXRvciYpOwogICAgIAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1f
ZGF0ZVRpbWVGb3JtYXRTdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCAy
ZjZlYWRmYjhhYjU3MTZjZGQzNzJkNTkwYWMxZjliNTZiOWMzNzEzLi4yOTcyMTBjNmRlOGMxODVm
ZmViYzVmNjhhZTkzODhkY2JkMGQ1OTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKQEAg
LTY2LDExICs2NiwxNCBAQCBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IqIEludGxOdW1iZXJG
b3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dQogCiBTdHJ1Y3R1cmUqIElu
dGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFs
RnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsTnVtYmVyRm9ybWF0KEV4ZWNTdGF0ZSop
Oworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bE51bWJl
ckZvcm1hdChFeGVjU3RhdGUqKTsKKwogSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpJbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAg
ICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rp
b24odm0sIHN0cnVjdHVyZSwgY2FsbEludGxOdW1iZXJGb3JtYXQsIGNvbnN0cnVjdEludGxOdW1i
ZXJGb3JtYXQpCiB7CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxOdW1iZXJGb3JtYXQoRXhlY1N0YXRlKiBzdGF0ZSkK
ICAgICB9KSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEp
Ci17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RJbnRsTnVt
YmVyRm9ybWF0OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlw
ZSBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSW50
bE51bWJlckZvcm1hdDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBv
cnRlZExvY2FsZXNPZihFeGVjU3RhdGUqIHN0YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52
bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJl
ckZvcm1hdENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaAppbmRleCBkNzYyMTYxZGRhMjM5YmNiNWM5MTg5MmEw
MjVjODU4ZDA0NDhkZmVhLi5lNDNkZWEzZWUyMGM4OTcwODUwMWY2NWJhMDEzZTQyMDhkYjExOTdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9y
bWF0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaApAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBJbnRsTnVt
YmVyRm9ybWF0Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZh
dGU6CiAgICAgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0g
ICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRv
ciYpOwogICAgIAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fbnVtYmVyRm9ybWF0U3Ry
dWN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZGJiMzczYzhmNTg1YTNjMWMwNjZjYzQz
ZWUyODgxMjdhNjBmMTAyYy4uYmYyZTkxN2VmYTEwOWNmZmY0ZmI5ZDNmOGE1ZTY2NTRmOGNhODhi
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCkBAIC00NCw4ICs0NCwxMSBAQCBjb25zdCBDbGFzc0lu
Zm8gSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7CiAgICAgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IpCiB9OwogCitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlCdWZmZXIoRXhlY1N0YXRlKik7CitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihFeGVjU3Rh
dGUqKTsKKwogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpKU0FycmF5QnVmZmVyQ29uc3RydWN0
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBz
aGFyaW5nTW9kZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSwgY2FsbEFycmF5QnVmZmVyLCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcikKICAgICAsIG1f
c2hhcmluZ01vZGUoc2hhcmluZ01vZGUpCiB7CiB9CkBAIC03Nyw3ICs4MCw3IEBAIFN0cnVjdHVy
ZSogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoCiAgICAgVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoCi0gICAgICAgIHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwor
ICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVu
Y3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhl
YykKQEAgLTEyMSwxOSArMTI0LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbEFycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3Io
ZXhlYywgc2NvcGUsICJBcnJheUJ1ZmZlciIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBKU0FycmF5
QnVmZmVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoCi0gICAgSlNDZWxsKiwgQ29uc3Ry
dWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IGNvbnN0cnVjdEFycmF5QnVmZmVyOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpI
b3N0OwotfQotCi1DYWxsVHlwZSBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVu
Y3Rpb24gPSBjYWxsQXJyYXlCdWZmZXI7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQot
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIC8vIEVDTUEgMjQuMS4zLjEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgK
aW5kZXggOWM3NTMyNDg4Njc5ZTIyMzMyZjVkNDNhYjJlZDE5MjdmYTg3MTZiYy4uNzk0ZmY4Njg2
MzM2YzIwODNhMjZjNTE4MTdhMjVlMDRmZGM5OThkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKQEAgLTUw
LDEwICs1MCw2IEBAIGNsYXNzIEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKICAgICAKICAgICBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlIHNoYXJpbmdN
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9zaGFyaW5nTW9kZTsgfQogCi1wcm90ZWN0ZWQ6Ci0gICAg
c3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
Jik7Ci0KIHByaXZhdGU6CiAgICAgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBtX3NoYXJpbmdNb2Rl
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaAppbmRleCAzZjE4ZTBlZmM2
MjgyNTllMzc3NjNiMjlmN2NmZTVkODJjNWJiOGViLi43YjZkZmQ0NGMxYjYzODgwNmQ1ZWFkOGMy
MGFlYjU3NmUxNmNiZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCkBA
IC01NywxMCArNTcsNiBAQCBjbGFzcyBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogI2VuZGlmCiAgICAgCiAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHBy
b3RvdHlwZSk7Ci0KLXByb3RlY3RlZDoKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25z
dHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXgg
Y2IyNDY5NzlmNjFiOGYwMGFkZTdmZmVhY2I0NmU1ZDRhNzUwNGVjNi4uNDU1ZDI0Y2M5M2Y1MTBm
Y2ExODM2MWZmMDc1ZWI0NDhlYTIwNWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC0zOCw4ICszOCwxNCBAQAogbmFtZXNwYWNlIEpTQyB7
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxHZW5lcmljVHlwZWRBcnJheVZpZXcoRXhlY1N0YXRlKik7CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSopOworCit0ZW1wbGF0ZTx0
eXBlbmFtZSBWaWV3Q2xhc3M+CiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZp
ZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSwgY2FsbEdlbmVyaWNUeXBlZEFycmF5VmlldzxWaWV3Q2xhc3M+LCBjb25z
dHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPikKIHsKIH0KIApAQCAtNzMsNyAr
NzksNyBAQCBTdHJ1Y3R1cmUqIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8Vmll
d0NsYXNzPjo6Y3JlYXRlU3RydWN0dXJlKAogICAgIFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7CiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKAotICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgdm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CkBAIC0x
OTUsOSArMjAxLDYgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJh
eVZpZXdXaXRoQXJndW1lbnRzKEV4ZWNTdGF0ZSogZXhlYywgU3QKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RH
ZW5lcmljVHlwZWRBcnJheVZpZXcoRXhlY1N0YXRlKik7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZp
ZXdDbGFzcz4KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJpY1R5
cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwpAQCAtMjQ1LDEzICsyNDgsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFZpZXdDbGFzcz4KLUNvbnN0cnVjdFR5cGUgSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0
cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVu
Y3Rpb24gPSBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPjsKLSAgICBy
ZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0Ns
YXNzPgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyaWNUeXBl
ZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
QEAgLTI1OSwxMSArMjU1LDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlLCBWaWV3Q2xhc3M6OmluZm8oKS0+Y2xhc3NOYW1lKSk7CiB9CiAK
LXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUNhbGxUeXBlIEpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3I8Vmlld0NsYXNzPjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxHZW5l
cmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwCmluZGV4IGQyMTYxMTE3NjFhNDA2
NWFjYTkzMWM0ZThmY2VkNWRmZDRkMDczNDkuLjAxMmIxMTlkY2VmNzU5ZWMyOGU1MzdiMTdiNDRm
NzNiYTQzNTBjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvbWlzZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5jcHAKQEAgLTcwLDExICs3MCwxNSBAQCBKU1Byb21pc2VD
b25zdHJ1Y3RvciogSlNQcm9taXNlQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLAogCiBTdHJ1Y3R1cmUqIEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKIH0KIAorCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUHJv
bWlzZShFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdFByb21pc2UoRXhlY1N0YXRlKik7CisKIEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpKU1By
b21pc2VDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFz
ZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsUHJvbWlzZSwg
Y29uc3RydWN0UHJvbWlzZSkKIHsKIH0KIApAQCAtMTE4LDIwICsxMjIsNCBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUHJvbWlzZShFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRB
c0Z1bmN0aW9uVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCAiUHJvbWlzZSIpKTsKIH0KIAotQ29uc3Ry
dWN0VHlwZSBKU1Byb21pc2VDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY29uc3RydWN0UHJvbWlzZTsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6
SG9zdDsKLX0KLQotQ2FsbFR5cGUgSlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyB3b3Jr
YXJvdW5kLiBTaW5jZSBKU0MgZG9lcyBub3QgZXhwb3NlIEBpc0NvbnN0cnVjdG9yIHRvIEpTIGJ1
aWx0aW5zLAotICAgIC8vIHdlIHVzZSB0eXBlb2YgZnVuY3Rpb24gPT09ICJmdW5jdGlvbiIgbm93
LiBBbmQgc2luY2UgdHlwZW9mIGNvbnN0cnVjdG9yV2l0aG91dENhbGxhYmlsaXR5Ci0gICAgLy8g
cmV0dXJucyAib2JqZWN0Iiwgd2UgbmVlZCB0byBkZWZpbmUgW1tDYWxsXV0gZm9yIG5vdy4KLSAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDkzCi0gICAg
Y2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFByb21pc2U7Ci0gICAgcmV0dXJuIENhbGxU
eXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5oCmluZGV4IDBiZWNhMDRl
MjBhMzI3MDY5ODUxNzJiMzNkNzYwZTJmMzU4MTdiNmUuLmE4NDlhZDc0MWFhODk3NDJlZWRiMGEw
YzA3NjZkMTNlZWNjMzU5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuaApAQCAtNDgsOSArNDgsNiBAQCBjbGFzcyBKU1By
b21pc2VDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKFZNJiwgSlNQcm9taXNlUHJvdG90eXBlKiwgR2V0dGVyU2V0dGVyKik7CiAK
IHByaXZhdGU6Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7Ci0KICAgICB2b2lkIGFkZE93bkludGVybmFsU2xvdHMoVk0mLCBK
U0dsb2JhbE9iamVjdCopOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUu
aAppbmRleCBjMDE3MDIzNGUyODZhYjc3MDg5ZThhZjE4MjFlNzQwNjQzMzFhZjJlLi44NTM1NmQz
OTc3YWVkNWM3M2I4OWFmZjA1Yzk3YzI0MmY5NWJiNGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGUuaApAQCAtNTksNiArNTksNyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3Qg
ewogICAgIEZpbmFsT2JqZWN0VHlwZSwKICAgICBKU0NhbGxlZVR5cGUsCiAgICAgSlNGdW5jdGlv
blR5cGUsCisgICAgSW50ZXJuYWxGdW5jdGlvblR5cGUsCiAgICAgTnVtYmVyT2JqZWN0VHlwZSwK
ICAgICBFcnJvckluc3RhbmNlVHlwZSwKICAgICBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3IuY3BwCmluZGV4IDdiNDZlNjQ0ZjE4N2QxNGZiZTc2OTRjMzA4NjNi
NjIyOWY3YjRlZDUuLjJjODA1ZjVlNGQ2ZjIyYjI3OGY4ODQ3MTg2YzkwYTA5ZWQxZDQ2MzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
ZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcApAQCAtMzcsOCArMzcsMTAgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFR5
cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSopOworCiBKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6
OkpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBj
b25zdHJ1Y3RUeXBlZEFycmF5VmlldywgY29uc3RydWN0VHlwZWRBcnJheVZpZXcpCiB7CiB9CiAK
QEAgLTU4LDcgKzYwLDcgQEAgdm9pZCBKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIFN0cnVjdHVyZSogSlNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoCiAgICAgVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50
ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAogCkBAIC03
MCwxNiArNzIsNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiJVR5cGVkQXJyYXklIHNob3VsZCBub3Qg
YmUgY2FsbGVkIGRpcmVjdGx5IikpOwogfQogCi1Db25zdHJ1Y3RUeXBlIEpTVHlwZWRBcnJheVZp
ZXdDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBj
b25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29u
c3RydWN0VHlwZWRBcnJheVZpZXc7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19
Ci0KLUNhbGxUeXBlIEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCmluZGV4IGQ3ODE3
ZTI1ZjFlMTI5ZjUyMzU2ODI5Yjg5MDUwN2NlYzcwMDg1ZTIuLjQxNDVjY2NlNThjZWNlZTcxYzg5
MTE0Zjc2NWM3MjJmMzk1MjFlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCkBAIC01MSw5ICs1
MSw2IEBAIGNsYXNzIEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5h
bEZ1bmN0aW9uIHsKICAgICBERUNMQVJFX0lORk87CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlKTsK
LXByb3RlY3RlZDoKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcAppbmRleCBi
MGQ0OWI1ZDViYjUwODM0OTlhYjQzN2U4NzIxNjhkNGRjMmZkNjlkLi43OWY4NDc5ZGQyZmU3MzM0
NjgzZTUwNmU2Y2U4YzJkN2VhOThmMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwCkBAIC00Nyw2ICs0NywxNCBAQCB2b2lkIE1hcENv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIE1hcFByb3RvdHlwZSogbWFwUHJvdG90
eXBlLCBHZXR0ZXJTZQogICAgIHB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnNwZWNpZXNTeW1ib2wsIHNwZWNpZXNTeW1ib2wsIFByb3BlcnR5QXR0cmlidXRl
OjpBY2Nlc3NvciB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxNYXAoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zdHJ1Y3RNYXAoRXhlY1N0YXRlKik7CisKK01hcENvbnN0cnVjdG9yOjpNYXBDb25zdHJ1
Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0
dXJlLCBjYWxsTWFwLCBjb25zdHJ1Y3RNYXApCit7Cit9CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxNYXAoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CkBAIC0xMTIsMTggKzEyMCw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdE1hcChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShtYXApOwogfQogCi1Db25zdHJ1Y3RUeXBlIE1hcENvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17
Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RNYXA7Ci0gICAg
cmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIE1hcENvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE1hcDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNr
ZXRIZWFkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBU1NFUlQoaXNKU01hcChleGVjLT5hcmd1
bWVudCgwKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFw
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVj
dG9yLmgKaW5kZXggYzQ4YTM1YWQwNTI4YTFmODM3OGVmMDRmODMzMmUxZTUwNTE5ODUzOS4uNjQ1
NzFjNzUxZDY1MDk2MDZlNGE4MjcwY2Q3ZjUxOTY5YjlkMzVjMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oCkBAIC00NywxNyArNDcsMTMgQEAg
Y2xhc3MgTWFwQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJu
YWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgTWFwQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAg
ICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KKyAgICBNYXBDb25zdHJ1
Y3RvcihWTSYsIFN0cnVjdHVyZSopOworCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIE1h
cFByb3RvdHlwZSosIEdldHRlclNldHRlciogc3BlY2llc1N5bWJvbCk7Ci0gICAgc3RhdGljIENv
bnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0g
ICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9Owog
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVh
ZChFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTdmYzFjNGFmNTA4ZDAwYjZiZGNl
M2UxZTJlZDU2MGJmZTYxZWQ3OS4uNWZkM2E2Nzc2N2YwMTMwYmVjYjNhNjZjODY5YWU3ZGMyMmE3
OGI0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgU1RBVElDX0FTU0VSVF9J
U19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKE5hdGl2ZUVycm9yQ29uc3RydWN0b3IpOwogY29uc3Qg
Q2xhc3NJbmZvIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwg
JkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShOYXRpdmVFcnJvckNvbnN0cnVjdG9yKSB9OwogCiBOYXRpdmVFcnJvckNvbnN0cnVj
dG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
Ci0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIEludGVycHJldGVyOjpjYWxsTmF0aXZlRXJyb3JDb25zdHJ1
Y3RvciwgSW50ZXJwcmV0ZXI6OmNvbnN0cnVjdFdpdGhOYXRpdmVFcnJvckNvbnN0cnVjdG9yKQog
ewogfQogCkBAIC03MywxMiArNzMsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihFeAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0KIAotQ29u
c3RydWN0VHlwZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2Vs
bCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5u
YXRpdmUuZnVuY3Rpb24gPSBJbnRlcnByZXRlcjo6Y29uc3RydWN0V2l0aE5hdGl2ZUVycm9yQ29u
c3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0gICAgCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpjYWxsTmF0aXZlRXJyb3JDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+
YXJndW1lbnQoMCk7CkBAIC04NiwxMCArODAsNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGVycHJldGVyOjpjYWxsTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZXhlYywgZXJy
b3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQog
Ci1DYWxsVHlwZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gSW50
ZXJwcmV0ZXI6OmNhbGxOYXRpdmVFcnJvckNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlw
ZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKaW5kZXggMTZlNzcy
ZDdkNmUxM2RmZTFlYzRlYWZmNjJmMDQ5MmYwNGQ3NmU4NS4uZDJiODA5NzIzMmViNGM1MTA4NGRk
YjFiZTI4YWNjNDZjMGFhMjhlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFz
cyBOYXRpdmVFcnJvckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKElu
dGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiAg
ICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSgpIHsgcmV0dXJuIG1fZXJyb3JTdHJ1Y3R1cmUu
Z2V0KCk7IH0KQEAgLTU0LDggKzU0LDYgQEAgY2xhc3MgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvciA6
IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBOYXRpdmVFcnJvckNv
bnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxU
eXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGljIHZvaWQgdmlz
aXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgV3JpdGVCYXJyaWVyPFN0
cnVjdHVyZT4gbV9lcnJvclN0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uY3BwCmluZGV4IGJhNDZiMzAyYzgyYTQyYjdi
ZjZkZGQ4OGYwNDZkZTQ4NWQ4NjAxZTIuLmE1NmNhYjNmYWU3OWVlOTQ1ZTY5NzY2MjRhMTY0YjVi
MThkOGY0YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxH
ZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bEdldHRlckZ1bmN0aW9uLmNwcApAQCAtNDAsMTUgKzQwLDkgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJldHVyblVuZGVmaW5lZChFeGVjU3RhdGUqKQogfQogfQog
Ci1DYWxsVHlwZSBOdWxsR2V0dGVyRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJiBjYWxsRGF0YSkKK051bGxHZXR0ZXJGdW5jdGlvbjo6TnVsbEdldHRlckZ1bmN0aW9uKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIE51
bGxHZXR0ZXJGdW5jdGlvbkludGVybmFsOjpjYWxsUmV0dXJuVW5kZWZpbmVkLCBudWxscHRyKQog
ewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IE51bGxHZXR0ZXJGdW5jdGlvbkludGVy
bmFsOjpjYWxsUmV0dXJuVW5kZWZpbmVkOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0K
LQotQ29uc3RydWN0VHlwZSBOdWxsR2V0dGVyRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEoSlND
ZWxsKiwgQ29uc3RydWN0RGF0YSYpCi17Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxH
ZXR0ZXJGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRl
ckZ1bmN0aW9uLmgKaW5kZXggNjMzOTc3MzcyYjMxOTE0NzdiOTRhNzkzZjgxZTIxZWJkYzgwOGZh
NS4uMWYzMDdkN2MwODE1YjMwZmMyMGY5OWEzYzZlY2E1Y2EzZTQxMzE5NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmgKQEAgLTQ0
LDE2ICs0NCwxMSBAQCBjbGFzcyBOdWxsR2V0dGVyRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxG
dW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTnVsbEdldHRlckZ1bmN0aW9uKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAgIHsK
LSAgICB9Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwq
LCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJik7CisgICAgTnVsbEdldHRlckZ1bmN0aW9uKFZNJiwgU3RydWN0dXJlKik7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCmluZGV4IDZhZjBkMWE4NWRmMjBmZjA4
MWE5ODdjZmRkZGE2N2Q1MWFiNmUwZTYuLmNkZDExMmViYmYxZWI1YTU5MThjOTY1NzMxN2NkN2Ri
ZGE3NDZjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxT
ZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bFNldHRlckZ1bmN0aW9uLmNwcApAQCAtODIsMTUgKzgyLDkgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJldHVyblVuZGVmaW5lZChFeGVjU3RhdGUqIGV4ZWMpCiB9
CiB9CiAKLUNhbGxUeXBlIE51bGxTZXR0ZXJGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQorTnVsbFNldHRlckZ1bmN0aW9uOjpOdWxsU2V0dGVyRnVuY3Rp
b24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSwgTnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OmNhbGxSZXR1cm5VbmRlZmluZWQsIG51bGxw
dHIpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gTnVsbFNldHRlckZ1bmN0aW9u
SW50ZXJuYWw6OmNhbGxSZXR1cm5VbmRlZmluZWQ7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0
OwotfQotCi1Db25zdHJ1Y3RUeXBlIE51bGxTZXR0ZXJGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJikKLXsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6
Tm9uZTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVsbFNldHRlckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxs
U2V0dGVyRnVuY3Rpb24uaAppbmRleCA3YzRkOTY0MGY5ZjU5MDlhMDhjNThmZTBlZTlhNTI3NmEx
YmZmOWNlLi4wNTE1MDNkZTNmODg2YWFmY2NiOGU4YTk4YTBjMzIyM2M2NTc5YWY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uaApA
QCAtNDQsMTYgKzQ0LDExIEBAIGNsYXNzIE51bGxTZXR0ZXJGdW5jdGlvbiA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBOdWxsU2V0dGVyRnVuY3Rpb24oVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCi0g
ICAgewotICAgIH0KLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmKTsKKyAgICBOdWxsU2V0dGVyRnVuY3Rpb24oVk0mLCBTdHJ1Y3R1
cmUqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IGIzMTE0MjcwYTQzYTJj
ODY2OTdkNTM1ZGM2MmQ4OTIzNjNkMjI0OGQuLmUzY2MxZWI4ODZlMmNiZGUzZjFjZTM2NzQxZGE5
NWRkMzI1ZTczYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTUzLDggKzUzLDExIEBAIGNvbnN0IENsYXNzSW5mbyBO
dW1iZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlv
bjo6c19pCiBAZW5kCiAqLwogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsTnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwog
TnVtYmVyQ29uc3RydWN0b3I6Ok51bWJlckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJ
bnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxOdW1iZXJDb25zdHJ1Y3RvciwgY29u
c3RydWN0TnVtYmVyQ29uc3RydWN0b3IpCiB7CiB9CiAKQEAgLTgwLDcgKzgzLDcgQEAgdm9pZCBO
dW1iZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBOdW1iZXJQcm90b3R5cGUq
IG51bWJlclByb3RvdHlwZSkKIH0KIAogLy8gRUNNQSAxNS43LjEKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RO
dW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05NCwy
NCArOTcsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aE51bWJlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKG9iamVjdCk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgTnVtYmVyQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsK
LSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhOdW1iZXJD
b25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQogLy8gRUNN
QSAxNS43LjIKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxOdW1iZXJD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcighZXhlYy0+YXJndW1lbnRDb3VudCgpID8gMCA6IGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDApLnRvTnVtYmVyKGV4ZWMpKSk7CiB9CiAKLUNhbGxUeXBlIE51bWJlckNvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2Fs
bERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE51bWJlckNvbnN0cnVjdG9yOwotICAgIHJldHVy
biBDYWxsVHlwZTo6SG9zdDsKLX0KLQogLy8gRUNNQS0yNjIgMjAuMS4yLjMKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50ZWdlcihF
eGVjU3RhdGUqIGV4ZWMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyQ29uc3RydWN0b3IuaAppbmRleCA1MWU0ZmEzMDQ5YjNkNGEzMWVjZDRiNDg3NDcyYjcx
ODA0NTBiZWM4Li4xMGY1OGEyNWVjZGY2MzgwZWRlNTY5YjRiZGUxZDkyNzQ5ZmQ1ZmY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgK
QEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgTnVtYmVyQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAgICB7
IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlw
ZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCiAg
ICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01MSw4ICs1MSw2IEBAIGNsYXNzIE51bWJlckNvbnN0cnVj
dG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIE51bWJlckNv
bnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxU
eXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0
cnVjdG9yLmNwcAppbmRleCBmNjcwYmQzMjQwMDc2NGYzOWE2MWYzNDRkNDhjYTZiZDM2ODhjZWIw
Li41M2RiOTI2MTNjZTUwYTIyMGM5OTRiOTY0ZTFkMjU2YmRhNzk0OGM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC05
MCw4ICs5MCwxMiBAQCBjb25zdCBDbGFzc0luZm8gT2JqZWN0Q29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogQGVuZAogKi8KIAorCitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2JqZWN0Q29uc3RydWN0b3IoRXhl
Y1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RX
aXRoT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKik7CisKIE9iamVjdENvbnN0cnVjdG9yOjpP
YmplY3RDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50
ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwg
c3RydWN0dXJlLCBjYWxsT2JqZWN0Q29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhPYmplY3RDb25z
dHJ1Y3RvcikKIHsKIH0KIApAQCAtMTQzLDIzICsxNDcsMTEgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdE9iamVjdChleGVjLCBl
eGVjLT5uZXdUYXJnZXQoKSkpOwogfQogCi1Db25zdHJ1Y3RUeXBlIE9iamVjdENvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEp
Ci17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoT2Jq
ZWN0Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxPYmplY3RDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RP
YmplY3QoZXhlYywgSlNWYWx1ZSgpKSk7CiB9CiAKLUNhbGxUeXBlIE9iamVjdENvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE9iamVjdENvbnN0cnVjdG9yOwotICAgIHJldHVybiBD
YWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RD
b25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dENvbnN0cnVjdG9yLmgKaW5kZXggMTBmOTJkMmM5MmMwMTRkMWYwMjllZGZlN2E1Mzk3ZWMzMzE3
YTE3Ni4uM2JkMDMwYWZkZWRhZGJjNzczNmU2N2ExNjA4OGU2NmI1OTI4NjRmOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC01
MCw3ICs1MCw3IEBAIGNsYXNzIE9iamVjdENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01OCw4ICs1OCw2IEBAIGNsYXNzIE9iamVjdENvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIE9iamVj
dENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUg
Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENh
bGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBpbmxpbmUgSlNP
YmplY3QqIGNvbnN0cnVjdEVtcHR5T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94
eUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29u
c3RydWN0b3IuY3BwCmluZGV4IDFmM2M0MjZmYzgwY2FhZmQ4YjM2YWIzZDAyYWYxOTM5Zjc5Njgz
OGQuLjU4ZTEyNDI2YTQyYjUxNjExZTgzMjE1OGU1MzAxNjhhYmEzN2RmMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCkBAIC00
OCw4ICs0OCwxMSBAQCBQcm94eUNvbnN0cnVjdG9yKiBQcm94eUNvbnN0cnVjdG9yOjpjcmVhdGUo
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICByZXR1cm4gY29uc3RydWN0b3I7CiB9
CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxQcm94eShFeGVjU3Rh
dGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb3h5
T2JqZWN0KEV4ZWNTdGF0ZSopOworCiBQcm94eUNvbnN0cnVjdG9yOjpQcm94eUNvbnN0cnVjdG9y
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUp
CisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxQcm94eSwgY29uc3RydWN0UHJveHlPYmpl
Y3QpCiB7CiB9CiAKQEAgLTEwMywyMiArMTA2LDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb3h5T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFByb3h5T2JqZWN0OjpjcmVhdGUoZXhlYywgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLCB0YXJnZXQsIGhhbmRsZXIpKTsKIH0KIAotQ29uc3RydWN0VHlw
ZSBQcm94eUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24g
PSBjb25zdHJ1Y3RQcm94eU9iamVjdDsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsK
LX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFByb3h5KEV4ZWNT
dGF0ZSogZXhlYykKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShleGVj
LT52bSgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5u
b3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZXhlYywgc2NvcGUsICJQcm94eSIpKTsKIH0K
IAotQ2FsbFR5cGUgUHJveHlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxQcm94
eTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5oCmlu
ZGV4IDQ4ZjUzYzgyYjNmZDY5ZTNmNDE5Y2I3ZWVkNzdhNTE5N2MyOTg2NjIuLmJhYzYwZDI0MzJh
MmE2NjYxMjIzMmE4OWVhODAwNzk0MDNjNWRjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmgKQEAgLTQwLDE1ICs0MCwxMyBAQCBjbGFz
cyBQcm94eUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsgCi0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVy
bmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBjb25zdCBjaGFyKiBuYW1lLCBKU0dsb2JhbE9iamVj
dCopOwogCiBwcml2YXRlOgogICAgIFByb3h5Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsK
LSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0
cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmKTsKIAogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBnZXRHZXR0ZXIoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmNwcAppbmRleCBhNWZjYTc4ZDNl
ODNjNWFmNThlOWU1MzA5OGQzNWQ4ZjhlYjkxN2FmLi5mODc1ZjY1ZDQ1MTM5NDk3MDY0ZDkzNmE5
NzRhNzlkZjYwOGVlYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eVJldm9rZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlSZXZva2UuY3BwCkBAIC00Miw4ICs0MiwxMCBAQCBQcm94eVJldm9rZSogUHJveHlSZXZva2U6
OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQcm94eU9iamVjdCogcHJveAog
ICAgIHJldHVybiByZXZva2U7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHBlcmZvcm1Qcm94eVJldm9rZShFeGVjU3RhdGUqKTsKKwogUHJveHlSZXZva2U6OlByb3h5
UmV2b2tlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1
Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIHBlcmZvcm1Qcm94eVJldm9rZSwgbnVs
bHB0cikKIHsKIH0KIApAQCAtNjksMTIgKzcxLDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgcGVyZm9ybVByb3h5UmV2b2tlKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1DYWxsVHlwZSBQcm94eVJl
dm9rZTo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNh
bGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IHBlcmZvcm1Qcm94eVJldm9rZTsKLSAgICByZXR1cm4g
Q2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIHZvaWQgUHJveHlSZXZva2U6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBQcm94eVJldm9rZSogdGhp
c09iamVjdCA9IGpzQ2FzdDxQcm94eVJldm9rZSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmgKaW5kZXggZTAyOGE3ZGE2YmYyZDM1Y2IwZmQzZGYz
YjIyMzQ5ZTRiM2NkZWU3OS4uMTI2ODc2ZWY2ZjNiZTE2NWNjZDZjYjViNDFmODNhNGFmNjNhM2Ux
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2Uu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5oCkBAIC00
Miw3ICs0Miw3IEBAIGNsYXNzIFByb3h5UmV2b2tlIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsgCi0gICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAog
ICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBjb25zdCBjaGFyKiBuYW1lLCBQ
cm94eU9iamVjdCopOwpAQCAtNTIsNyArNTIsNiBAQCBjbGFzcyBQcm94eVJldm9rZSA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBQcm94eVJldm9rZShWTSYsIFN0
cnVjdHVyZSopOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYpOwogCiAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1fcHJveHk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IDFjNjdkYzVlMDNhYTMyYWE2YWQ2ZWYxMDg2ZTBiN2MyZjI2ZGE3MjYuLjBmNTJhYTI0YWIz
ZTRmZmFlZmE1MTUzYzdiZjlmMzJhNjBjODcwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKQEAgLTc2LDggKzc2LDEyIEBA
IGNvbnN0IENsYXNzSW5mbyBSZWdFeHBDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24i
LCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiBAZW5kCiAqLwogCisKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogUmVnRXhwQ29uc3RydWN0b3I6OlJlZ0V4cENvbnN0cnVj
dG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4cFByb3RvdHlwZSogcmVnRXhw
UHJvdG90eXBlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDog
SW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsUmVnRXhwQ29uc3RydWN0b3IsIGNv
bnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvcikKICAgICAsIG1fY2FjaGVkUmVzdWx0KHZtLCB0
aGlzLCByZWdFeHBQcm90b3R5cGUtPmVtcHR5UmVnRXhwKCkpCiAgICAgLCBtX211bHRpbGluZShm
YWxzZSkKIHsKQEAgLTMxMCwyMiArMzE0LDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RSZWdFeHAoZXhlYywgYXNJbnRlcm5h
bEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncywgZXhlYy0+
anNDYWxsZWUoKSwgZXhlYy0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBSZWdF
eHBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBj
b25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29u
c3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpI
b3N0OwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmVnRXhw
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJlZ0V4cChleGVjLCBhc0ludGVy
bmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzLCBleGVj
LT5qc0NhbGxlZSgpKSk7CiB9CiAKLUNhbGxUeXBlIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY2FsbFJlZ0V4cENvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6
SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCA2ZDc0NjI3OTMzMTYzZTM1ZjUw
YTNhYjg4ODYzNzY2MjQ0MTQ1MWRkLi5kYTc2MGVjMDRmMGE3ODI3YWE2NTdjY2RiNjc5MjhjMWQ2
ZWUwYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgUmVnRXhwQ29uc3RydWN0b3IgOiBw
dWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBERUNMQVJFX0lORk87CkBAIC03NCw4ICs3
NCw2IEBAIGNsYXNzIFJlZ0V4cENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogcHJpdmF0ZToKICAgICBSZWdFeHBDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSosIFJlZ0V4
cFByb3RvdHlwZSopOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7Ci0gICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
CiAKICAgICBSZWdFeHBDYWNoZWRSZXN1bHQgbV9jYWNoZWRSZXN1bHQ7CiAgICAgYm9vbCBtX211
bHRpbGluZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVj
dG9yLmNwcAppbmRleCA3ODQzNzVhMjM5NDAxNzQzMGZjYmJkODY5ZmI1ZjZkZDg3Zjc1NDA3Li5h
NWM2YzE3MzhlOTI5MjEzMzZiNzRmYzkwNmE3OTAxYjhkMzlkYTkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCkBAIC00Nyw2ICs0Nywx
NCBAQCB2b2lkIFNldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFNldFByb3Rv
dHlwZSogc2V0UHJvdG90eXBlLCBHZXR0ZXJTZQogICAgIHB1dERpcmVjdE5vbkluZGV4QWNjZXNz
b3Iodm0sIHZtLnByb3BlcnR5TmFtZXMtPnNwZWNpZXNTeW1ib2wsIHNwZWNpZXNTeW1ib2wsIFBy
b3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxTZXQoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTZXQoRXhlY1N0YXRlKik7CisKK1NldENvbnN0cnVj
dG9yOjpTZXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsU2V0LCBjb25zdHJ1Y3RTZXQpCit7Cit9CisKIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTZXQoRXhlY1N0YXRlKiBleGVjKQog
ewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC05OCwxOCArMTA2LDYgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2V0KEV4ZWNTdGF0ZSogZXhlYykK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldCk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgU2V0
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29u
c3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0
cnVjdFNldDsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUg
U2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
LXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsU2V0OwotICAgIHJldHVybiBD
YWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2
YXRlRnVuY1NldEJ1Y2tldEhlYWQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFTU0VSVChpc0pT
U2V0KGV4ZWMtPmFyZ3VtZW50KDApKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2V0Q29uc3RydWN0b3IuaAppbmRleCA0NWYwMTMwNjUwMmY2OTcyMjBkNTQ1YjQ3MTBiMGM2
NTAxZjY3ODQyLi5kZDRhNGQxOGI2Yzg5YjdlYzhlOTE2ZTM5NmNhNzlhOGM1Yjg4NWEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmgKQEAgLTQ3
LDE3ICs0NywxMiBAQCBjbGFzcyBTZXRDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0
aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBTZXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQor
ICAgIFNldENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihWTSYsIFNldFByb3RvdHlwZSosIEdldHRlclNldHRlciogc3BlY2llc1N5bWJvbCk7Ci0g
ICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CiB9OwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVGdW5j
U2V0QnVja2V0SGVhZChFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCAzNzk5NmE4MjEzYmFlMjVlOTVl
MTgxMjk5ZWZkMTk0MTA5ZDg1ZTU5Li4xMDY5ZWZlNmQwYTJjYmE1MWI5ODE4ZjJjYjI3ZGNiODVj
ZjhmMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuY3BwCkBAIC01Miw4ICs1MiwxMiBAQCBjb25zdCBDbGFzc0luZm8gU3RyaW5n
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNf
aQogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoU3RyaW5nQ29uc3Ry
dWN0b3IpOwogCisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTdHJp
bmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogU3Ry
aW5nQ29uc3RydWN0b3I6OlN0cmluZ0NvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRl
cm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxTdHJpbmdDb25zdHJ1Y3RvciwgY29uc3Ry
dWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKQogewogfQogCkBAIC0xMzQsMTIgKzEzOCw2IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShTdHJpbmdP
YmplY3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCBzdHIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBT
dHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
JiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBl
OjpIb3N0OwotfQotCiBKU0NlbGwqIHN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBhcmd1bWVudCkKIHsKICAgICBpZiAoYXJndW1lbnQuaXNTeW1ib2woKSkKQEAgLTE1
NCwxMCArMTUyLDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN0
cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHN0cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKSk7
CiB9CiAKLUNhbGxUeXBlIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2Fs
bFN0cmluZ0NvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nQ29uc3RydWN0b3IuaAppbmRleCAxYmQxZTIxMjY0OTZiYzVkOGU5NWQ2NTk4YjlmZTUyNmE2
M2RkYmIxLi45OWFhZmU4MDg4MWI1YzcxMmY0NmVlMjY5OGQwZTZjZTAyZmE2ZDVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKQEAg
LTQzLDE0ICs0MywxMiBAQCBjbGFzcyBTdHJpbmdDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5h
bEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBTdHJpbmdDb25zdHJ1Y3RvcihWTSYsIFN0cnVj
dHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBTdHJpbmdQcm90b3R5cGUqKTsK
LSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0
cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmKTsKIH07CiAKIEpTQ2VsbCogSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ2hhckNvZGUo
RXhlY1N0YXRlKiwgaW50MzJfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTc2MWY0MTU5ODFlZmMyYzFmYjdlNDhm
ZDI1ODBmMmFkZmVjNzdkMC4uYjUxNTI1OTIxMWM0MjA1NDc1ZDAwZjM0YmJjMzBmNTU3ZDkyMWFj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0
cnVjdG9yLmNwcApAQCAtNTYsOCArNTYsMTAgQEAgY29uc3QgQ2xhc3NJbmZvIFN5bWJvbENvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sICZzeW1ib2wKIEBl
bmQKICovCiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTeW1ib2wo
RXhlY1N0YXRlKik7CisKIFN5bWJvbENvbnN0cnVjdG9yOjpTeW1ib2xDb25zdHJ1Y3RvcihWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3Ry
dWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsU3ltYm9s
LCBudWxscHRyKQogewogfQogCkBAIC04MywxNyArODUsNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3ltYm9sKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKFN5bWJvbDo6Y3JlYXRlKGV4ZWMsIGRlc2NyaXB0aW9uLnRvU3RyaW5n
KGV4ZWMpKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgU3ltYm9sQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpCi17Ci0gICAgcmV0dXJuIENvbnN0cnVj
dFR5cGU6Ok5vbmU7Ci19Ci0KLUNhbGxUeXBlIFN5bWJvbENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0
YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY2FsbFN5bWJvbDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sQ29uc3RydWN0b3JGb3IoRXhlY1N0YXRl
KiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuaAppbmRleCA1OGMzNTE4ZTQ3ZDkz
MTIwNDZjYmU2MGVhMzhmZjBlNzAwNGMxNDY4Li41YmQwNTk0NzgyN2MzMjYxMzQzYmI4YzlkYmUy
OWI1NWNhN2Y5ZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
eW1ib2xDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5
bWJvbENvbnN0cnVjdG9yLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgU3ltYm9sQ29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKQEAgLTU3LDggKzU3
LDYgQEAgY2xhc3MgU3ltYm9sQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiAKIHByaXZhdGU6CiAgICAgU3ltYm9sQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAg
ICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwCmluZGV4IGRjZDRlOTQ1YWE5NWFhZmRmNTFhM2QwZWRlMGJmODEzZjQ1NTYwOGYuLmQy
MjFkNGQxYWQ5ZjdkM2IzMGRiYjk0ZmI0ODNjZWVmNTY1NGY2ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5jcHAKQEAgLTM1Miw2ICszNTIsMTAgQEAgVk06OlZNKFZNVHlwZSB2bVR5
cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQodGlt
ZW91dE1pbGxpcyk7CiAgICAgfQogCisgICAgLy8gTWFrZSBzdXJlIHRoYXQgYW55IHN0dWJzIHRo
YXQgdGhlIEpJVCBpcyBnb2luZyB0byB1c2UgYXJlIGluaXRpYWxpemVkIGluIG5vbi1jb21waWxh
dGlvbiB0aHJlYWRzLgorICAgIGdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKENv
ZGVGb3JDYWxsKTsKKyAgICBnZXRDVElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihDb2Rl
Rm9yQ29uc3RydWN0KTsKKwogICAgIFZNSW5zcGVjdG9yOjppbnN0YW5jZSgpLmFkZCh0aGlzKTsK
IH0KIApAQCAtNTc5LDYgKzU4MywxOSBAQCBOYXRpdmVFeGVjdXRhYmxlKiBWTTo6Z2V0SG9zdEZ1
bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBJbnRyaW5zaWMgaW50cmlucwogICAgICAg
ICBOb0ludHJpbnNpYywgc2lnbmF0dXJlLCBuYW1lKTsKIH0KIAorTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIFZNOjpnZXRDVElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQpCit7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAoa2luZCA9PSBDb2Rl
Rm9yQ2FsbCkKKyAgICAgICAgcmV0dXJuIGppdFN0dWJzLT5jdGlJbnRlcm5hbEZ1bmN0aW9uQ2Fs
bCh0aGlzKTsKKyAgICByZXR1cm4gaml0U3R1YnMtPmN0aUludGVybmFsRnVuY3Rpb25Db25zdHJ1
Y3QodGhpcyk7CisjZWxzZQorICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKQorICAgICAgICBy
ZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfaW50
ZXJuYWxfZnVuY3Rpb25fY2FsbF90cmFtcG9saW5lKTsKKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY29u
c3RydWN0X3RyYW1wb2xpbmUpOworI2VuZGlmCit9CisKIFZNOjpDbGllbnREYXRhOjp+Q2xpZW50
RGF0YSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCAyZjc5OTY4ODAx
MzcxMTkwNzkwYjQ4OTkxYWYzMDM4ODA1ZTI0ZDI5Li5hNTVlY2Y1ZGM1OTQ4MDhjYjQzYTMxMTgw
YTQ5NjRmZTQ1ZmI1ODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTI5LDYg
KzI5LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ2FsbERhdGEuaCIKKyNpbmNsdWRl
ICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgiCiAjaW5jbHVkZSAiQ29uY3VycmVudEpTTG9jay5o
IgogI2luY2x1ZGUgIkNvbnRyb2xGbG93UHJvZmlsZXIuaCIKICNpbmNsdWRlICJEYXRlSW5zdGFu
Y2VDYWNoZS5oIgpAQCAtNDg5LDYgKzQ5MCw4IEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAg
TmF0aXZlRXhlY3V0YWJsZSogZ2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uLCBOYXRpdmVG
dW5jdGlvbiBjb25zdHJ1Y3RvciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBOYXRpdmVFeGVj
dXRhYmxlKiBnZXRIb3N0RnVuY3Rpb24oTmF0aXZlRnVuY3Rpb24sIEludHJpbnNpYywgTmF0aXZl
RnVuY3Rpb24gY29uc3RydWN0b3IsIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlKiwgY29uc3QgU3Ry
aW5nJiBuYW1lKTsKIAorICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBnZXRDVElJbnRlcm5hbEZ1
bmN0aW9uVHJhbXBvbGluZUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKKwogICAgIHN0YXRp
YyBwdHJkaWZmX3QgZXhjZXB0aW9uT2Zmc2V0KCkKICAgICB7CiAgICAgICAgIHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoVk0sIG1fZXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCmluZGV4IGJiMGUwNjg1MWM2MDEw
ODIwZTg2ZTgxMWVjYTU2YzNjYzI5MzI3M2QuLjYyM2I2MjYxODFmYTE1ZTkyYjY4MTNhOTNkZjMw
ZDk0YmYzNzI1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dl
YWtNYXBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha01hcENvbnN0cnVjdG9yLmNwcApAQCAtNDUsNiArNDUsMTQgQEAgdm9pZCBXZWFrTWFwQ29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2Vha01hcFByb3RvdHlwZSogcHJvdG90
eXBlKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsV2Vha01hcChFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtNYXAoRXhlY1N0YXRlKik7CisKK1dlYWtNYXBD
b25zdHJ1Y3Rvcjo6V2Vha01hcENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxXZWFrTWFwLCBjb25zdHJ1Y3RXZWFr
TWFwKQoreworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vh
a01hcChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTk3
LDE2ICsxMDUsNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RXZWFrTWFwKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHdl
YWtNYXApOwogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3Ry
dWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNv
bnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2Vha01hcDsKLSAgICByZXR1
cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2Vha01hcENvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFdlYWtNYXA7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpI
b3N0OwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
ZWFrTWFwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtN
YXBDb25zdHJ1Y3Rvci5oCmluZGV4IDU5ZjJjYWFkZTBjYTM1N2MyYWEwMDI3MzYzNDZhYTczMDVm
ZTk2MDYuLmM5M2U0MTI1MWVjNjBhOTA4YjNkY2JjMmFmMTYyNWYxMTFmZGMxYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5oCkBA
IC00NywxNyArNDcsMTIgQEAgY2xhc3MgV2Vha01hcENvbnN0cnVjdG9yIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFdlYWtNYXBDb25zdHJ1Y3RvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAg
ICB7Ci0gICAgfQorICAgIFdlYWtNYXBDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBXZWFrTWFwUHJvdG90eXBlKik7Ci0gICAgc3RhdGlj
IENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7
Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3BwCmluZGV4IDA4NmJiY2FkOGJiYjM1NjEyYWI0
OGI1M2I2MTgxNDUyYzI0MWEwMWQuLjY2YmM3NTI3Y2EyY2I4ZDg2ZTEzOTJlZWU1YzFhZDljYThl
MjcyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1Nl
dENvbnN0cnVjdG9yLmNwcApAQCAtNDUsNiArNDUsMTQgQEAgdm9pZCBXZWFrU2V0Q29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2Vha1NldFByb3RvdHlwZSogcHJvdG90eXBlKQog
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsV2Vha1NldChFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtTZXQoRXhlY1N0YXRlKik7CisKK1dlYWtTZXRDb25zdHJ1
Y3Rvcjo6V2Vha1NldENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisg
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxXZWFrU2V0LCBjb25zdHJ1Y3RXZWFrU2V0KQor
eworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vha1NldChF
eGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTgzLDE2ICs5
MSw0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtT
ZXQoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUod2Vha1NldCk7
CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2Vha1NldENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXZWFrU2V0OwotICAgIHJldHVybiBDb25z
dHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWFrU2V0Q29uc3RydWN0b3I6OmdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjYWxsV2Vha1NldDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19
Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRD
b25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0
cnVjdG9yLmgKaW5kZXggNjkzYzEwYmY4ZGI0ZWYwZWNkMGM0N2I0NDAwYmJkNzY3N2ZiYmMwZS4u
NWU2ZmI4MjhmMTczYjNhNGMwMzVjMmIwNGZmM2FkNTczMzgxN2ZlNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmgKQEAgLTQ3LDE3
ICs0NywxMiBAQCBjbGFzcyBXZWFrU2V0Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5j
dGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgV2Vha1NldENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAg
ICB9CisgICAgV2Vha1NldENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihWTSYsIFdlYWtTZXRQcm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3Ry
dWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBz
dGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcApp
bmRleCA5ODJkZjdmNDA4YzE3ZWYyOTdlYjUzZGJlODg5NzY5YjcyYmIxYzhiLi5hYzRkOGZjYzBh
NGFiNDA5Mjc5ZGJmZTZhODA3NDc4OTNlNmM3MTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJv
ckNvbnN0cnVjdG9yLmNwcApAQCAtNzAsNyArNzAsNyBAQCBXZWJBc3NlbWJseUNvbXBpbGVFcnJv
ckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUo
VgogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOwogfQogCiB2b2lkIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUqIHBy
b3RvdHlwZSkKQEAgLTgxLDIyICs4MSwxMCBAQCB2b2lkIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlDb21waQogfQog
CiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUNvbXBpbGVF
cnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yLCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKQogewog
fQogCi1Db25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsK
LSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1i
bHlDb21waWxlRXJyb3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNh
bGxUeXBlIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6
Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDM0YTBlNzhj
MDQ2NDY3MDlkNmYyZTVjYTc2ODcyMTFmN2E5NzI0NzcuLjViNzViYzgxMDQyNjU2NDZmNTE4NjU2
ZWY1NTczM2NhYzEzNmFjNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgK
QEAgLTQ5LDggKzQ5LDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENv
bnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0g
ICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCmluZGV4
IDJmZGQ1YTQ2MTc5ZTc4YTU2ZmM5Mzc4N2FmMWI4Y2Y5Mzg5ZjY5ZDAuLjkwOTIxMzA3ZjMzNTJm
ODA4ZTRhMjRhODVkZDUwMTk4NDUwODI0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9y
LmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvciog
V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTCiAKIFN0cnVj
dHVyZSogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsK
LSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAog
dm9pZCBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZSogcHJvdG90eXBlKQpAQCAtMTEyLDIyICsx
MTIsMTAgQEAgdm9pZCBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlJbnN0YW5jZVAKIH0KIAogV2ViQXNzZW1ibHlJbnN0YW5j
ZUNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlJbnN0YW5jZSwgY29uc3RydWN0SlNXZWJB
c3NlbWJseUluc3RhbmNlKQogewogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5SW5zdGFu
Y2VDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBj
b25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29u
c3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpI
b3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseUluc3RhbmNlOwotICAgIHJldHVybiBDYWxs
VHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUo
V0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCmluZGV4IDZkOWVkM2MwMGI3
M2FkNjg3ZGE2OWFhYjNkOGU3MzkwMzhkOTI2MDMuLmEyMWQ5MWFjM2IyMzNiNzk5Mzg3ZTFhYjYw
NGMzOGYyOWE3MTY0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCkBAIC01Myw4ICs1
Myw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3Ry
dWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25z
dHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlM
aW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBiMTdkNThhYmU2NjU4MmZh
YWQ3YWRjYTc2NjE1NzIyYmQyNGEzZWU2Li5hZjA5MTdhYWI0ZGM2OWYxNjFiNDIyYWVhOTgyNmU5
ZDExYTI5Mjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNzAsNyAr
NzAsNyBAQCBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUxpbmtF
cnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLAogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5
TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0
aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiB2b2lkIFdlYkFzc2VtYmx5
TGlua0Vycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlM
aW5rRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSkKQEAgLTgxLDIyICs4MSwxMCBAQCB2b2lkIFdl
YkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2Vi
QXNzZW1ibHlMaW5rRXJybwogfQogCiBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpX
ZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUs
IGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yKQogewogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0
b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0K
LUNhbGxUeXBlIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjYWxsSlNXZWJBc3NlbWJseUxpbmtFcnJvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IGM3MDBjNjMzMDE0ZmJmYWFm
YTBhYmI5MzJjZDcwZTliOWZlOTMwOTUuLmUyOTEyOTdiZGFlY2FkNzFlMjRlMTI3NzIwZmVjNDVi
Mjg3NDgxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQ5LDggKzQ5LDYg
QEAgY2xhc3MgV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5h
bEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVj
dG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3Ry
dWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVt
b3J5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDA0MzVhZjFmZGZlNTYzMGQ5MjJiNjdk
ZGI2YTg0ZDcxZjQ5ZDhkMS4uYzU1Njk4YzExOTdjMDBjZGJjNGNlNDI1YzhlMzFkMmFlNzczYzQ4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlN
ZW1vcnlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBXZWJB
c3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpj
cmVhdGUoVk0mIHZtLCBTdHJ1YwogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiB2b2lkIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUqIHBy
b3RvdHlwZSkKQEAgLTEzOCwyMiArMTM4LDEwIEBAIHZvaWQgV2ViQXNzZW1ibHlNZW1vcnlDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseU1lbW9yeVByb3RvCiB9
CiAKIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlNZW1vcnks
IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNZW1vcnkpCiB7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2Vi
QXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25z
dHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY29uc3RydWN0SlNXZWJBc3NlbWJseU1lbW9yeTsKLSAgICByZXR1cm4gQ29uc3Ry
dWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rv
cjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxKU1dlYkFzc2VtYmx5TWVtb3J5OwotICAgIHJldHVy
biBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmgKaW5kZXggMjA2MWUyNDhm
MzM5NWI2N2QyYzJlNGIxOGNlNDJiOTY4MjIxZWM1Yy4uZWE2NDYwYjFiYzcxYmEyODk0NWU3MmU5
NTk0YzZjZmM5M2JkZTExNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaApAQCAtNDksOCArNDks
NiBAQCBjbGFzcyBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3Io
Vk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eU1vZHVsZUNvbnN0cnVjdG9yLmNwcAppbmRleCA3NWI1YjYyYzM4YTIzZDQ5NzViNWMwOThhNzU1
NjcyMjZlNzcwZjNhLi5mYTMxYzU5MzE5ODMxZWE1NWRmNTFjMjc0ZWQ0NDM0ZDI3YjQ2YWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVs
ZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcApAQCAtMTk4LDcgKzE5OCw3IEBAIFdlYkFzc2Vt
Ymx5TW9kdWxlQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0
ZShWTSYgdm0sIFN0cnVjCiAKIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZSogcHJvdG90
eXBlKQpAQCAtMjA5LDIyICsyMDksMTAgQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG8KIH0KIAog
V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
cihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSlNXZWJBc3NlbWJseU1vZHVsZSwgY29u
c3RydWN0SlNXZWJBc3NlbWJseU1vZHVsZSkKIHsKIH0KIAotQ29uc3RydWN0VHlwZSBXZWJBc3Nl
bWJseU1vZHVsZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TW9kdWxlOwotICAgIHJldHVybiBDb25zdHJ1Y3RU
eXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNzZW1ibHlNb2R1bGU7Ci0gICAgcmV0dXJuIENh
bGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaAppbmRleCAxM2FjYTNmOTBlYWQz
N2NhNTRkYjVhOWRjYjRlYTM0ZWMyNThiZWRlLi5mNzRiNjY2NWViNGEwYjA1MDY3YTkwZjAyMTkz
NmJlM2NlMTFmNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oCkBAIC01NCw4ICs1NCw2IEBA
IGNsYXNzIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5j
dGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvcihWTSYs
IFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEo
SlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0
YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDY0NWY5Njc1ZDcxYmJkMTVhMDYy
OGU3ODkzNWFiZWZkMjg2MjlmN2IuLmRhYmM3ZTA5YzkzZjI0NDU3NTI3NjkwMzUxYWMyMDU5MDg1
NDRkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC04MSwy
MiArODEsMTAgQEAgdm9pZCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5UnVudGkKIH0KIAogV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3RvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQor
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwg
Y29uc3RydWN0SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcikKIHsKIH0KIAotQ29uc3RydWN0VHlw
ZSBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOwot
ICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYg
Y2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9y
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
UnVudGltZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCA3N2ZiNmU0NWFlY2M4NjAzNTdlNDgxYWQ4
YzJmNTViOGZiZGQ4ZTkyLi45NGFlNmI5YTVmMWNlYzU3NzY5OGZjMDMzYWI0MGY4MmUzMzMwMjcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1
bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC00OSw4ICs0OSw2IEBA
IGNsYXNzIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25z
dHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENv
bnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlw
ZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcAppbmRleCAyYzViYzcwMmY3MTBmMzViYTQyMzU3
Y2ZkNDlhMTk1ZmFjYTAyMjViLi41ODQ0YzllYTA4M2E2YzIyOTcxNjNjYzY3OGJlM2E0NTg2N2Qz
ZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBXZWJB
c3NlbWJseVRhYmxlQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlKFZNJiB2bSwgU3RydWN0dQogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUqIHByb3Rv
dHlwZSkKQEAgLTEyOCwyMiArMTI4LDEwIEBAIHZvaWQgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5CiB9CiAK
IFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9y
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUp
CisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2VtYmx5VGFibGUsIGNvbnN0
cnVjdEpTV2ViQXNzZW1ibHlUYWJsZSkKIHsKIH0KIAotQ29uc3RydWN0VHlwZSBXZWJBc3NlbWJs
eVRhYmxlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0
YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZTsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6
SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNzZW1ibHlUYWJsZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6
Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFT
U0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaAppbmRleCA1YWRlYmIzNzYxNzFjMzRlYzM3YmM5
ZDIwZTE3YjNiNmQ0NWU5MTUxLi4zNjQ2OGQwYjNlZGQzYTBiOGUwY2E2ZWRiYTIwYmMwYzEyNjli
YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaApAQCAtNDksOCArNDksNiBAQCBjbGFzcyBXZWJB
c3NlbWJseVRhYmxlQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHBy
aXZhdGU6CiAgICAgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7
Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25z
dHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuY3BwCmluZGV4IDkxMGE3MDJiYTljZWJiMmFlYWJmZTgzZTM0MWM3YmI5
MTlmYTMxMDEuLjI1NWQ4NDE1Y2IzMmJkN2NmOGVhZjY5MmIxYzVkNjcxMTFhMTU4MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtNDEsOSArNDEsMTEgQEAg
dXNpbmcgbmFtZXNwYWNlIEJpbmRpbmdzOwogCiBXRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0lu
Zm8gUnVudGltZU1ldGhvZDo6c19pbmZvID0geyAiUnVudGltZU1ldGhvZCIsICZJbnRlcm5hbEZ1
bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVu
dGltZU1ldGhvZCkgfTsKIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bFJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKik7CisKIFJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRo
b2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE1l
dGhvZCogbWV0aG9kKQogICAgIC8vIENhbGxlcnMgd2lsbCBuZWVkIHRvIHBhc3MgaW4gdGhlIHJp
Z2h0IGdsb2JhbCBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGlzIG5hdGl2ZSBvYmplY3QgIm1l
dGhvZCIuCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSwgc3RydWN0
dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmplY3QtPnZtKCksIHN0cnVjdHVy
ZSwgY2FsbFJ1bnRpbWVNZXRob2QsIG51bGxwdHIpCiAgICAgLCBtX21ldGhvZChtZXRob2QpCiB7
CiB9CkBAIC0xMTAsMTAgKzExMiw0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUNhbGxUeXBlIFJ1bnRpbWVNZXRob2Q6OmdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjYWxsUnVudGltZU1ldGhvZDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKaW5kZXggN2MyNzVh
Y2MwZTNlMTIyZDRkNmM3ZmJiNGU1MTZkYzM1OGYzZGQ2Zi4uNGRmNDM1NTBiNmU0NzRjMjFhYmJj
MmE3OTgxZjdlYTBiMmQ0NmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmgKQEAgLTU2LDEzICs1NiwxMiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lTWV0aG9k
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUnVudGltZU1l
dGhvZChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEJpbmRpbmdzOjpNZXRob2QqKTsKICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIENh
bGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCmluZGV4IDY2ZjUwYzMzMTFiM2MzOTM4
YmIzMGM3NDk2ZjU2NTFjZTljZTJhNmIuLmU1NjA4OGY3MzIxOGE0YmM3ZjA5MDc4NjllNmRkZWYx
ZWE3YzAxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBNZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCkBAIC00NSw4ICs0NSwxMCBAQCBTVEFUSUNfQVNT
RVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNOUE1ldGhvZCk7CiAKIGNvbnN0IENsYXNz
SW5mbyBKU05QTWV0aG9kOjpzX2luZm8gPSB7ICJOUE1ldGhvZCIsICZJbnRlcm5hbEZ1bmN0aW9u
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNOUE1ldGhv
ZCkgfTsKIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1ldGhvZChF
eGVjU3RhdGUqKTsKKwogSlNOUE1ldGhvZDo6SlNOUE1ldGhvZChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTlBJZGVudGlmaWVyIG5wSWRlbnRpZmll
cikKLSAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LT52bSgpLCBzdHJ1Y3R1cmUp
CisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSwgc3RydWN0dXJlLCBj
YWxsTWV0aG9kLCBudWxscHRyKQogICAgICwgbV9ucElkZW50aWZpZXIobnBJZGVudGlmaWVyKQog
ewogfQpAQCAtODQsMTIgKzg2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgc2NvcGUpOwogfQogCi1DYWxsVHlwZSBKU05QTWV0aG9kOjpnZXRDYWxsRGF0YShK
U0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0
aW9uID0gY2FsbE1ldGhvZDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QTWV0aG9kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QTWV0aG9kLmgKaW5kZXggYWNlN2YyZGQyZTJiMjIzZDhlMGQ3ZDEwNDk3OTg3MGE1MDBhOTRk
Zi4uNWMyODRjOTAxOGI4ZTA1NWYwMDA3ODk5MTUzZDIxMGUzNmUxYjAyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2Qu
aApAQCAtNjIsMTEgKzYyLDkgQEAgY2xhc3MgSlNOUE1ldGhvZCA6IHB1YmxpYyBKU0M6OkludGVy
bmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6SW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6OkpTQ2Vs
bCosIEpTQzo6Q2FsbERhdGEmKTsKLSAgICAKICAgICBOUElkZW50aWZpZXIgbV9ucElkZW50aWZp
ZXI7CiB9OwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDc2NGJjZDNmZjRmYzRjZTZkMjlhMmQwYzY3MDE5MTRhYWQxNDUzZGIuLmQ0Zjg4
OTM0NTgxZjk4Y2FkYzhkMGUxNTU4OTlmOTNlMjAyNGE1MmUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTct
MTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAg
SklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2FsbHMgdG8gb2JqZWN0cyB3aXRo
IGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5h
bC1mdW5jdGlvbi1jYWxsLmpzOiBBZGRlZC4KKyAgICAgICAgKHRhcmdldCk6CisgICAgICAgICog
bWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanM6IEFkZGVk
LgorICAgICAgICAodGFyZ2V0KToKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvZGZnLWludGVy
bmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwuanM6IEFkZGVkLgorICAgICAgICAodGFyZ2V0
KToKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1o
YW5kbGVkLWNvbnN0cnVjdC5qczogQWRkZWQuCisgICAgICAgICh0YXJnZXQpOgorICAgICAgICAq
IHN0cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qczogQWRkZWQuCisgICAgICAgIChz
aG91bGRCZSk6CisgICAgICAgICh0YXJnZXQpOgorICAgICAgICAqIHN0cmVzcy9kZmctaW50ZXJu
YWwtZnVuY3Rpb24tY29uc3RydWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAg
ICAgICAgKHRhcmdldCk6CisgICAgICAgICogc3RyZXNzL2ludGVybmFsLWZ1bmN0aW9uLWNhbGwu
anM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAqIHN0cmVzcy9pbnRlcm5h
bC1mdW5jdGlvbi1jb25zdHJ1Y3QuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorCiAy
MDE3LTEwLTE5ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWJBc3NlbWJseTogbm8gVk0gLyBKUyB2ZXJzaW9uIG9mIGV2ZXJ5dGhpbmcgYnV0IEluc3RhbmNl
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rp
b24tY2FsbC5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlv
bi1jYWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwOTczOGI1ZTIwNjE0ZmUxOTdmNWVmY2U3NDdmNDZmODFj
NDU2YzgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50
ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIHRhcmdldChm
dW5jKQoreworICAgIHJldHVybiBmdW5jKCk7Cit9Citub0lubGluZSh0YXJnZXQpOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQorICAgIHRhcmdldChBcnJheSk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0
LmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLWNvbnN0
cnVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ODJhMDAwYjFiYTU2YmU5NWVjNzM1OWM1YjllYzg3Nzc0OGFj
MzI4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVy
bmFsLWZ1bmN0aW9uLWNvbnN0cnVjdC5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIHRhcmdl
dChmdW5jKQoreworICAgIHJldHVybiBuZXcgZnVuYygpOworfQorbm9JbmxpbmUodGFyZ2V0KTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICB0YXJnZXQoQXJyYXkpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5v
dC1oYW5kbGVkLWNhbGwuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwt
ZnVuY3Rpb24tbm90LWhhbmRsZWQtY2FsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGIyOWI0OTMwNDA4ZmY4
MWVmZGRiYTZmZDIxNzI5ZmM4ZTgyZmFhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwuanMKQEAg
LTAsMCArMSw4IEBACitmdW5jdGlvbiB0YXJnZXQoZnVuYykKK3sKKyAgICByZXR1cm4gZnVuYygp
OworfQorbm9JbmxpbmUodGFyZ2V0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkK
KyAgICB0YXJnZXQoRGF0ZSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9k
ZmctaW50ZXJuYWwtZnVuY3Rpb24tbm90LWhhbmRsZWQtY29uc3RydWN0LmpzIGIvSlNUZXN0cy9t
aWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNvbnN0cnVj
dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMjY2YmJlOThhZDQzNGRkNDg1NDJhYmExZjYyNDcwNGQ5NWY2MmUx
Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFs
LWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNvbnN0cnVjdC5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0
aW9uIHRhcmdldChmdW5jKQoreworICAgIHJldHVybiBuZXcgZnVuYygpOworfQorbm9JbmxpbmUo
dGFyZ2V0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICB0YXJnZXQoRGF0
ZSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2Fs
bC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQwNDg1MmFhZWFhYTIyNzg3ODkxZTgxMTQ5NTlhYTdkZGE1MzgwYjIKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcwpA
QCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KK25vSW5saW5lKHNob3VsZEJlKTsKKworZnVuY3Rpb24g
dGFyZ2V0KGZ1bmMpCit7CisgICAgcmV0dXJuIGZ1bmMoKTsKK30KK25vSW5saW5lKHRhcmdldCk7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCisgICAgc2hvdWxkQmUodGFyZ2V0KEFy
cmF5KS5sZW5ndGgsIDApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGZnLWludGVybmFs
LWZ1bmN0aW9uLWNvbnN0cnVjdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RmZy1pbnRlcm5hbC1mdW5j
dGlvbi1jb25zdHJ1Y3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcxOTQyZWZiYmRmY2E0NDAwM2FlMmU2Yzdi
OGUzNzEwM2JjMGE4OAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RmZy1pbnRl
cm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMKQEAgLTAsMCArMSwxNCBAQAorZnVuY3Rpb24gc2hv
dWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9Citub0lu
bGluZShzaG91bGRCZSk7CisKK2Z1bmN0aW9uIHRhcmdldChmdW5jKQoreworICAgIHJldHVybiBu
ZXcgZnVuYygpOworfQorbm9JbmxpbmUodGFyZ2V0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
ZTQ7ICsraSkKKyAgICBzaG91bGRCZSh0YXJnZXQoQXJyYXkpLmxlbmd0aCwgMCk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzIGIvSlNUZXN0cy9z
dHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lY2JmYTdiN2VhYjIz
MjJjYzA2MDA5YThiMzYyMjkxYTE1ZTVkMDVkCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9z
dHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcwpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQor
Cit2YXIgZnVuYyA9IERhdGU7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCisgICAg
c2hvdWxkQmUodHlwZW9mIGZ1bmMoKSwgInN0cmluZyIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50
ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4NTJiOTE3YzkwMzE1ODhh
OTZkNGRjMzdiYzhhMzIzNzk3MmIwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rp
b24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9
CisKK3ZhciBmdW5jID0gRGF0ZTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgewor
ICAgIHZhciBkYXRlID0gbmV3IGZ1bmMoKTsKKyAgICBzaG91bGRCZSh0eXBlb2YgZGF0ZSwgIm9i
amVjdCIpOworICAgIHNob3VsZEJlKGRhdGUgaW5zdGFuY2VvZiBEYXRlLCB0cnVlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324389</attachid>
            <date>2017-10-20 06:11:19 -0700</date>
            <delta_ts>2017-10-20 06:29:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144458-20171020221117.patch</filename>
            <type>text/plain</type>
            <size>181059</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzNzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
Nzg2NTJkYTUyYTYwM2M1MWNiYjU0ODA3MDQwYjA4YTRjNmQ1ZjMyLi5mNjcxNThjMTI4MWQ0Nzg5
ZTM1NWI3NWJjNTM0YzFhYWMyZTQ3Zjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNDEgQEAKIDIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CiAKKyAgICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2Fs
bHMgdG8gb2JqZWN0cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkg
b25seSBKU0Z1bmN0aW9uIGlzIGhhbmRsZWQgYnkgQ2FsbExpbmtJbmZvJ3MgY2FjaGluZyBtZWNo
YW5pc20uIFRoaXMgbWVhbnMgdGhhdCBhbnkKKyAgICAgICAgSW50ZXJuYWxGdW5jdGlvbiBjYWxs
cyBhcmUgbm90IGNhY2hlZCBhbmQgdGhleSBhbHdheXMgZ28gdG8gdGhlIHNsb3cgcGF0aC4gVGhp
cyBpcyBub3QgZ29vZCBiZWNhdXNlCisKKyAgICAgICAgMS4gV2UgbmVlZCB0byBxdWVyeSBnZXRD
YWxsRGF0YS9nZXRDb25zdHJ1Y3REYXRhIGV2ZXJ5IHRpbWUgaW4gdGhlIHNsb3cgcGF0aC4KKyAg
ICAgICAgMi4gQ2FsbExpbmtJbmZvIHRlbGxzIG5vdGhpbmcgaW4gdGhlIGhpZ2hlciB0aWVyIEpJ
VHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzdGFydHMgaGFuZGxpbmcgSW50ZXJuYWxGdW5jdGlv
biBpbiBDYWxsTGlua0luZm8ncyBjYWNoaW5nIG1lY2hhbmlzbS4gV2UgY2hhbmdlIEludGVybmFs
RnVuY3Rpb24KKyAgICAgICAgdG8gaG9sZCBwb2ludGVycyB0byB0aGUgZnVuY3Rpb25zIGZvciBj
YWxsIGFuZCBjb25zdHJ1Y3QuIFdlIGhhdmUgbmV3IHN0dWJzIHRoYXQgY2FuIGNhbGwvY29uc3Ry
dWN0CisgICAgICAgIEludGVybmFsRnVuY3Rpb24uIEFuZCB3ZSByZXR1cm4gdGhpcyBjb2RlIHBv
aW50ZXIgYXMgYSByZXN1bHQgb2Ygc2V0dXAgY2FsbCB0byB1c2UgQ2FsbExpbmtJbmZvIG1lY2hh
bmlzbS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGNyaXRpY2FsIHRvIG9wdGltaXppbmcgZGVy
aXZlZCBBcnJheSBjb25zdHJ1Y3Rpb25bMV0gc2luY2UgaXQgc3RhcnRzIHVzaW5nIENhbGxMaW5r
SW5mbworICAgICAgICBmb3IgSW50ZXJuYWxGdW5jdGlvbi4gUHJldmlvdXNseSB3ZSBkbyBub3Qg
cmVjb3JkIGFueSBpbmZvcm1hdGlvbiB0byBDYWxsTGlua0luZm8uIEV4Y2VwdCBmb3IgdGhlCisg
ICAgICAgIGNhc2UgdGhhdCBERkdCeXRlQ29kZVBhcnNlciBmaWd1cmVzIG91dCBJbnRlcm5hbEZ1
bmN0aW9uIGNvbnN0YW50LCB3ZSBjYW5ub3QgYXR0ZW1wdCB0byBlbWl0IERGRworICAgICAgICBu
b2RlcyBmb3IgdGhlc2UgSW50ZXJuYWxGdW5jdGlvbnMgc2luY2UgQ2FsbExpbmtJbmZvIHRlbGxz
IG5vdGhpbmcuIFRoaXMgcGF0Y2ggdGVhY2hlcyBDYWxsTGlua0luZm8KKyAgICAgICAgaGFuZGxp
bmcgSW50ZXJuYWxGdW5jdGlvbiB0b28uCisKKyAgICAgICAgQXR0YWNoZWQgbWljcm9iZW5jaG1h
cmtzIHNob3cgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQuCisKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAg
ICAgICAgICBwYXRjaGVkCisKKyAgICAgICAgZGZnLWludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVj
dCAgICAgICAgICAgICAgICAgMS42NDM5Ky0wLjA4MjYgICAgIF4gICAgICAxLjI4MjkrLTAuMDcy
NyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMjgxM3ggZmFzdGVyCisgICAgICAgIGRmZy1pbnRlcm5h
bC1mdW5jdGlvbi1ub3QtaGFuZGxlZC1jb25zdHJ1Y3QgICAgIDIuMTg2MistMC4xMzYxICAgICAg
ICAgICAgMi4wNjk2Ky0wLjEyMDEgICAgICAgICAgbWlnaHQgYmUgMS4wNTY0eCBmYXN0ZXIKKyAg
ICAgICAgZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwgICAgICAgICAyMC43
NTkyKy0wLjkwODUgICAgICAgICAgIDE5LjczNjkrLTAuNzkyMSAgICAgICAgICBtaWdodCBiZSAx
LjA1MTh4IGZhc3RlcgorICAgICAgICBkZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbCAgICAgICAg
ICAgICAgICAgICAgICAxLjY4NTYrLTAuMDk2NyAgICAgXiAgICAgIDEuMjc3MSstMC4wNzQ0ICAg
ICAgICBeIGRlZmluaXRlbHkgMS4zMTk4eCBmYXN0ZXIKKworICAgICAgICBbMV06IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgwNjQKKworICAgICAgICAqIEFQSS9K
U0NhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246
OkpTQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6
Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
aDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIEFQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpPYmpD
Q2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvT2JqQ0Nh
bGxiYWNrRnVuY3Rpb24ubW06CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9uOjpP
YmpDQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9u
OjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0
aW9uOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9CeXRl
Y29kZUR1bXBlci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJp
bnRDYWxsT3ApOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5m
bzo6c2V0Q2FsbGVlKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjYWxsZWUpOgorICAg
ICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNldExhc3RTZWVuQ2FsbGVlKToKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjpsYXN0U2VlbkNhbGxlZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5r
SW5mbzo6dmlzaXRXZWFrKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAg
ICAgICAgKiBieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OkNhbGxM
aW5rU3RhdHVzOjpjb21wdXRlRnJvbUNhbGxMaW5rSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUv
TExJbnRDYWxsTGlua0luZm8uaDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6Cisg
ICAgICAgICogaml0L0pJVFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3Rp
SW50ZXJuYWxGdW5jdGlvbkNhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aUludGVy
bmFsRnVuY3Rpb25Db25zdHJ1Y3QpOgorICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAg
ICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OmxpbmtGb3IpOgorICAgICAgICAo
SlNDOjpsaW5rUG9seW1vcnBoaWNDYWxsKToKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5oOgorICAg
ICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjp2aXJ0dWFsVGh1
bmtGb3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpuYXRpdmVDYWxsR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bmF0aXZlVGFpbENhbGxHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjppbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6Omlu
dGVybmFsRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9UaHVua0dl
bmVyYXRvcnMuaDoKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAg
IChKU0M6OkxMSW50OjpzZXRVcENhbGwpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206
CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBy
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNvbnN0cnVj
dG9yOjpBcnJheUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0
b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNGdW5jdGlvbkNvbnN0cnVj
dG9yKToKKyAgICAgICAgKEpTQzo6QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlv
bkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KEpTQzo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2Fs
bERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNhbGxCb29s
ZWFuQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OkJvb2xl
YW5Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENvbnN0cnVj
dERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENh
bGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5o
OgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRl
Q29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRhdGVDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNv
bnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmg6CisgICAgICAgIChKU0M6OlN0cmljdE1v
ZGVUeXBlRXJyb3JGdW5jdGlvbjo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmdldENvbnN0cnVjdERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246
OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9y
KToKKyAgICAgICAgKEpTQzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpT
Qzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVj
dG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rp
b25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpjYWxsRnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5j
dGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlv
blByb3RvdHlwZTo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkdlbmVyYXRvckZ1bmN0
aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlND
OjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SW50
ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1
bmN0aW9uOjpnZXRDYWxsRGF0YSk6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246Omdl
dENvbnN0cnVjdERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgor
ICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpuYXRpdmVGdW5jdGlvbkZvcik6CisgICAgICAgIChK
U0M6OkludGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3IpOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpJ
bnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
SW50bENvbGxhdG9yQ29uc3RydWN0b3I6OkludGxDb2xsYXRvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpJbnRsRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmg6CisgICAgICAg
ICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6SW50bE51bWJlckZvcm1hdENvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rv
cjo6SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVm
ZmVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFz
cz46OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChK
U0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpKU1Byb21pc2VDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChKU0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICog
cnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6
SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpNYXBDb25z
dHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcENvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9NYXBDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6TWFwQ29uc3RydWN0b3I6Ok1hcENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51
bGxHZXR0ZXJGdW5jdGlvbjo6TnVsbEdldHRlckZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6TnVs
bEdldHRlckZ1bmN0aW9uOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51
bGxHZXR0ZXJGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6TnVsbEdldHRlckZ1
bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpOdWxsR2V0dGVyRnVuY3Rp
b246Ok51bGxHZXR0ZXJGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxs
U2V0dGVyRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246Ok51
bGxTZXR0ZXJGdW5jdGlvbik6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Z2V0
Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246Omdl
dENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1
bmN0aW9uLmg6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uOjpOdWxsU2V0dGVyRnVuY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6TnVtYmVyQ29uc3RydWN0b3IpOgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNv
bnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51
bWJlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6TnVtYmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0
b3IpOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpQcm94eUNvbnN0cnVj
dG9yOjpQcm94eUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb3h5Q29uc3RydWN0
b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1Byb3h5Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5UmV2b2tlLmNwcDoKKyAgICAgICAgKEpTQzo6UHJv
eHlSZXZva2U6OlByb3h5UmV2b2tlKToKKyAgICAgICAgKEpTQzo6UHJveHlSZXZva2U6OmdldENh
bGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1Byb3h5UmV2b2tlLmg6CisgICAg
ICAgIChKU0M6OlByb3h5UmV2b2tlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rv
cjo6UmVnRXhwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6U2V0Q29uc3RydWN0b3I6OlNldENvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6U2V0Q29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTZXRD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2V0
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6U2V0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OlNldENvbnN0cnVjdG9yOjpTZXRDb25zdHJ1Y3Rvcik6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChK
U0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OlN0cmluZ0Nv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6U3ltYm9sQ29u
c3RydWN0b3IpOgorICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlN5bWJvbENvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAg
ICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKEpT
Qzo6Vk06OmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKToKKyAgICAgICAgKiBy
dW50aW1lL1ZNLmg6CisgICAgICAgICogcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpXZWFrTWFwQ29uc3RydWN0b3I6OldlYWtNYXBDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmg6CisgICAgICAgIChK
U0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
V2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha1Nl
dENvbnN0cnVjdG9yOjpXZWFrU2V0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWFrU2V0
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpX
ZWFrU2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpXZWFrU2V0Q29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYWtTZXRDb25zdHJ1Y3Rvcjo6
V2Vha1NldENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlND
OjpXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUNvbXBpbGVF
cnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JD
b25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpXZWJB
c3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUlu
c3RhbmNlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6Oldl
YkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eUxpbmtFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6V2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OldlYkFz
c2VtYmx5TWVtb3J5Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1lbW9y
eUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5TW9kdWxlQ29u
c3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1
bGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2Vt
Ymx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5VGFibGVDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmg6CisKKzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gU2NyaXB0RmV0Y2hlciBzaG91
bGQgYmUgbm90aWZpZWQgZGlyZWN0bHkgZnJvbSBtb2R1bGUgcGlwZWxpbmUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODM0MAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggOTBkODdhZmQ1YzYyNGJlMjk2ZjA4MWQwMjYzNjNiOWU2MjQ2MzA4ZC4uMzUwODJkMTEzNjYy
MWFmOGM5YzkzOGE3NmNhYTA4YjA2ZGRmYTk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBA
CiAyMDE3LTEwLTIwICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCisg
ICAgICAgIEpJVCBjYWxsIGlubGluZSBjYWNoZXMgc2hvdWxkIGNhY2hlIGNhbGxzIHRvIG9iamVj
dHMgd2l0aCBnZXRDYWxsRGF0YS9nZXRDb25zdHJ1Y3REYXRhIHRyYXBzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0NTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhv
ZC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2QpOgorICAg
ICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAg
ICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisKKzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gU2NyaXB0RmV0Y2hlciBz
aG91bGQgYmUgbm90aWZpZWQgZGlyZWN0bHkgZnJvbSBtb2R1bGUgcGlwZWxpbmUKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODM0MAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDNhNmY5ODM0NDhhOGZlYTM4YjYxNDEzZTRhZTdkYzUyZmZmNjExNzQuLmNmNDAzOWRhYTc1
ODhkM2M5NDUwMjQ2NzE3NTBjZDc1ZjRhNTI2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAg
ICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2FsbHMgdG8gb2JqZWN0
cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBNZXRob2QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0aG9kOjpKU05Q
TWV0aG9kKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE1ldGhvZDo6Z2V0Q2FsbERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmg6
CisgICAgICAgIChXZWJLaXQ6OkpTTlBNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTct
MTAtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBJbnRyb2R1Y2UgY29tcGxldGlvbkhhbmRsZXItYmFzZWQgU1BJIGZvciBfV0tEb3dubG9h
ZERlbGVnYXRlLmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKaW5kZXggNjg0
ZWNlNjMwZmExY2E4MGE3YzM4ZWNjYWNkNDBlNzg3MmVjZjgxMC4uNzhjYTU1YmIyM2VkNmNmZGI5
ZDkxZGU0NTg3NmVjZTc2NzYzNDc2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcApAQCAtNDQsNyArNDQsNyBAQCBTVEFUSUNfQVNTRVJU
X0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNDYWxsYmFja0Z1bmN0aW9uKTsKIGNvbnN0IENs
YXNzSW5mbyBKU0NhbGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxiYWNrRnVuY3Rpb24i
LCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAogSlNDYWxsYmFja0Z1bmN0aW9uOjpK
U0NhbGxiYWNrRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3RD
YWxsQXNGdW5jdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBBUElD
YWxsYmFja0Z1bmN0aW9uOjpjYWxsPEpTQ2FsbGJhY2tGdW5jdGlvbj4sIG51bGxwdHIpCiAgICAg
LCBtX2NhbGxiYWNrKGNhbGxiYWNrKQogewogfQpAQCAtNjMsMTAgKzYzLDQgQEAgSlNDYWxsYmFj
a0Z1bmN0aW9uKiBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gZnVuY3Rpb247CiB9CiAKLUNhbGxUeXBlIEpTQ2Fs
bGJhY2tGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQot
ewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEFQSUNhbGxiYWNrRnVuY3Rpb246OmNh
bGw8SlNDYWxsYmFja0Z1bmN0aW9uPjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja0Z1bmN0aW9uLmgKaW5kZXggYTRmZGQwNjhmZWY0OGI0OGFkNmRhNDk0NDRiNWI1ZDQwYzBj
ZGE2NS4uNGM1NGI4MGY1OWNlYjkwYjMyMTdkNzc4YmU5Y2RjMTgwZmM0NGYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC00NCwxNSAr
NDQsMTMgQEAgY2xhc3MgSlNDYWxsYmFja0Z1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogICAgIC8vIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRoaXMgb3ZlcnJpZGUgaXNuJ3QgbmVj
ZXNzYXJ5CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAgICAgeyAKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKElu
dGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAog
cHJpdmF0ZToKICAgICBKU0NhbGxiYWNrRnVuY3Rpb24oVk0mLCBTdHJ1Y3R1cmUqLCBKU09iamVj
dENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2spOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBj
b25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7Ci0KICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2sg
ZnVuY3Rpb25DYWxsYmFjaygpIHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAogICAgIEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBtX2NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IDRkNWI3MzY4ZDNjN2MxMDNi
NGQ0ZTYzZmE4ZTYyNDViY2YwMmM2YjEuLmRlYTZjYzQ0Y2M1NWI5NTk3MTQyOTg1MjI1MDkyNjM1
ZDg5ZWRiNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxi
YWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFj
a0Z1bmN0aW9uLmgKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgT2JqQ0NhbGxiYWNrRnVuY3Rpb24g
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewogICAgICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0K
IAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CkBAIC02NSw5ICs2NSw2IEBAIGNsYXNzIE9iakND
YWxsYmFja0Z1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIE9iakNDYWxs
YmFja0Z1bmN0aW9uKFZNJiwgU3RydWN0dXJlKiwgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxi
YWNrLCBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yQ2FsbGJhY2ssIHN0ZDo6dW5pcXVlX3B0cjxP
YmpDQ2FsbGJhY2tGdW5jdGlvbkltcGw+KTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLQogICAgIEpT
T2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBmdW5jdGlvbkNhbGxiYWNrKCkgeyByZXR1cm4g
bV9mdW5jdGlvbkNhbGxiYWNrOyB9CiAgICAgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxi
YWNrIGNvbnN0cnVjdENhbGxiYWNrKCkgeyByZXR1cm4gbV9jb25zdHJ1Y3RDYWxsYmFjazsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0
aW9uLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5t
bQppbmRleCBmYjkzYTg2MGFlYmYyZjQ5MGIwN2MyNWZmNzUwMzUzMmE0Yjc3YWQzLi42M2Y5MjBl
ZGIyMjRmMWFkZDFkMDliN2ExMTIzN2FkNjVhMTg3OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KQEAgLTUwNiw3ICs1MDYsNyBA
QCBzdGF0aWMgSlNPYmplY3RSZWYgb2JqQ0NhbGxiYWNrRnVuY3Rpb25DYWxsQXNDb25zdHJ1Y3Rv
cihKU0NvbnRleHRSZWYgY2FsbGVyQ29udAogY29uc3QgSlNDOjpDbGFzc0luZm8gT2JqQ0NhbGxi
YWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxiYWNrRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE9iakNDYWxsYmFja0Z1bmN0
aW9uKSB9OwogCiBPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6T2JqQ0NhbGxiYWNrRnVuY3Rpb24oSlND
OjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0Q2FsbEFzRnVuY3Rp
b25DYWxsYmFjayBmdW5jdGlvbkNhbGxiYWNrLCBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yQ2Fs
bGJhY2sgY29uc3RydWN0Q2FsbGJhY2ssIHN0ZDo6dW5pcXVlX3B0cjxPYmpDQ2FsbGJhY2tGdW5j
dGlvbkltcGw+IGltcGwpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUsIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGw8T2JqQ0NhbGxiYWNrRnVuY3Rp
b24+LCBpbXBsLT5pc0NvbnN0cnVjdGlibGUoKSA/IEFQSUNhbGxiYWNrRnVuY3Rpb246OmNvbnN0
cnVjdDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj4gOiBudWxscHRyKQogICAgICwgbV9mdW5jdGlvbkNh
bGxiYWNrKGZ1bmN0aW9uQ2FsbGJhY2spCiAgICAgLCBtX2NvbnN0cnVjdENhbGxiYWNrKGNvbnN0
cnVjdENhbGxiYWNrKQogICAgICwgbV9pbXBsKFdURk1vdmUoaW1wbCkpCkBAIC01MjgsMjIgKzUy
OCw2IEBAIHZvaWQgT2JqQ0NhbGxiYWNrRnVuY3Rpb246OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQog
ICAgIGZ1bmN0aW9uLn5PYmpDQ2FsbGJhY2tGdW5jdGlvbigpOwogfQogCi0KLUNhbGxUeXBlIE9i
akNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERh
dGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gQVBJQ2FsbGJhY2tGdW5jdGlv
bjo6Y2FsbDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj47Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0
OwotfQotCi1Db25zdHJ1Y3RUeXBlIE9iakNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCogY2VsbCwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBP
YmpDQ2FsbGJhY2tGdW5jdGlvbiogY2FsbGJhY2sgPSBqc0Nhc3Q8T2JqQ0NhbGxiYWNrRnVuY3Rp
b24qPihjZWxsKTsKLSAgICBpZiAoIWNhbGxiYWNrLT5pbXBsKCktPmlzQ29uc3RydWN0aWJsZSgp
KQotICAgICAgICByZXR1cm4gQmFzZTo6Z2V0Q29uc3RydWN0RGF0YShjZWxsLCBjb25zdHJ1Y3RE
YXRhKTsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEFQSUNhbGxiYWNrRnVu
Y3Rpb246OmNvbnN0cnVjdDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj47Ci0gICAgcmV0dXJuIENvbnN0
cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIFN0cmluZyBPYmpDQ2FsbGJhY2tGdW5jdGlvbkltcGw6Om5h
bWUoKQogewogICAgIGlmIChtX3R5cGUgPT0gQ2FsbGJhY2tJbml0TWV0aG9kKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKaW5kZXggOWJj
MTE3ZjE5OTE0YzUzOWUyZGNhZTMzNzJlMzFhNDlhZDZjMmVhMS4uYTlmMTZkNzNmM2RjZjA3NDkz
OWQxOGM2Y2Q4NzhlMmUxYjFmZjg4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCkBAIC01NzgsMTYgKzU3OCwxOSBAQCB2b2lkIEJ5
dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJpbnRDYWxsT3AoUHJpbnRTdHJlYW0mIG91dCwgaW50IGxv
Y2F0aW9uLCBjb25zdCB0eQogICAgIGlmIChjYWNoZUR1bXBNb2RlID09IER1bXBDYWNoZXMpIHsK
ICAgICAgICAgTExJbnRDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IGdldENhbGxMaW5rSW5m
byhpdFsxXSk7CiAgICAgICAgIGlmIChjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlKSB7Ci0g
ICAgICAgICAgICBvdXQucHJpbnRmKAotICAgICAgICAgICAgICAgICIgbGxpbnQoJXAsIGV4ZWMg
JXApIiwKLSAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLmdldCgp
LAotICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUtPmV4ZWN1dGFi
bGUoKSk7CisgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gY2FsbExpbmtJbmZvLT5sYXN0
U2VlbkNhbGxlZS5nZXQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBmdW5jdGlvbiA9IGpzRHlu
YW1pY0Nhc3Q8SlNGdW5jdGlvbio+KCp2bSgpLCBvYmplY3QpKQorICAgICAgICAgICAgICAgIG91
dC5wcmludGYoIiBsbGludCglcCwgZXhlYyAlcCkiLCBmdW5jdGlvbiwgZnVuY3Rpb24tPmV4ZWN1
dGFibGUoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3V0LnByaW50Zigi
IGxsaW50KCVwKSIsIG9iamVjdCk7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoSklUKQogICAgICAg
ICBpZiAoQ2FsbExpbmtJbmZvKiBpbmZvID0gbWFwLmdldChDb2RlT3JpZ2luKGxvY2F0aW9uKSkp
IHsKLSAgICAgICAgICAgIEpTRnVuY3Rpb24qIHRhcmdldCA9IGluZm8tPmxhc3RTZWVuQ2FsbGVl
KCk7Ci0gICAgICAgICAgICBpZiAodGFyZ2V0KQotICAgICAgICAgICAgICAgIG91dC5wcmludGYo
IiBqaXQoJXAsIGV4ZWMgJXApIiwgdGFyZ2V0LCB0YXJnZXQtPmV4ZWN1dGFibGUoKSk7CisgICAg
ICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5mby0+bGFzdFNlZW5DYWxsZWUoKTsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBmdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KCp2
bSgpLCBvYmplY3QpKQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBqaXQoJXAsIGV4ZWMg
JXApIiwgZnVuY3Rpb24sIGZ1bmN0aW9uLT5leGVjdXRhYmxlKCkpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBqaXQoJXApIiwgb2JqZWN0KTsKICAgICAg
ICAgfQogCiAgICAgICAgIGR1bXBDYWxsTGlua1N0YXR1cyhvdXQsIGxvY2F0aW9uLCBtYXApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5q
c29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCmlu
ZGV4IGUxMTMxNGYyMjk2MmY4NWRmN2YxY2ZlNjYzNWU0YmY5OTZhNWVkMDUuLjc0YzkxYWE0Zjg0
NDk0NWQ2ODk3YjcwN2MwYTI1ZjRmZGI5M2Y2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAgLTIxOCw2ICsyMTgsOCBAQAogICAg
ICAgICAgICAgeyAibmFtZSIgOiAibGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZSIg
fSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogImxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUi
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJsbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1w
b2xpbmUiIH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJsbGludF9pbnRlcm5hbF9mdW5jdGlv
bl9jYWxsX3RyYW1wb2xpbmUiIH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJsbGludF9pbnRl
cm5hbF9mdW5jdGlvbl9jb25zdHJ1Y3RfdHJhbXBvbGluZSIgfSwKICAgICAgICAgICAgIHsgIm5h
bWUiIDogImhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uIiB9CiAgICAgICAgIF0KICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCmluZGV4IDNh
Y2M1ZmJlM2ZlZWM1MDFjN2VkYzU0ZGVjODk2Njg2YzNjN2E5YTUuLmVkNmQzNjk3NDc1MTRkZmIy
ZTliZDI1MTYwNTI4NTJmY2JmN2ZjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua0luZm8uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgQ29kZUxvY2F0aW9u
TGFiZWwgQ2FsbExpbmtJbmZvOjpzbG93UGF0aFN0YXJ0KCkKICAgICByZXR1cm4gbV9ob3RQYXRo
QmVnaW5PclNsb3dQYXRoU3RhcnQ7CiB9CiAKLXZvaWQgQ2FsbExpbmtJbmZvOjpzZXRDYWxsZWUo
Vk0mIHZtLCBKU0NlbGwqIG93bmVyLCBKU0Z1bmN0aW9uKiBjYWxsZWUpCit2b2lkIENhbGxMaW5r
SW5mbzo6c2V0Q2FsbGVlKFZNJiB2bSwgSlNDZWxsKiBvd25lciwgSlNPYmplY3QqIGNhbGxlZSkK
IHsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNEaXJlY3QoKSk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6
OnJlcGF0Y2hQb2ludGVyKGhvdFBhdGhCZWdpbigpLCBjYWxsZWUpOwpAQCAtMTM3LDEwICsxMzcs
MTAgQEAgdm9pZCBDYWxsTGlua0luZm86OmNsZWFyQ2FsbGVlKCkKICAgICBtX2lzTGlua2VkID0g
ZmFsc2U7CiB9CiAKLUpTRnVuY3Rpb24qIENhbGxMaW5rSW5mbzo6Y2FsbGVlKCkKK0pTT2JqZWN0
KiBDYWxsTGlua0luZm86OmNhbGxlZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzRGlyZWN0
KCkpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNGdW5jdGlvbio+KG1fY2FsbGVlT3JDb2RlQmxvY2su
Z2V0KCkpOworICAgIHJldHVybiBqc0Nhc3Q8SlNPYmplY3QqPihtX2NhbGxlZU9yQ29kZUJsb2Nr
LmdldCgpKTsKIH0KIAogdm9pZCBDYWxsTGlua0luZm86OnNldENvZGVCbG9jayhWTSYgdm0sIEpT
Q2VsbCogb3duZXIsIEZ1bmN0aW9uQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC0xNjMsNyArMTYz
LDcgQEAgRnVuY3Rpb25Db2RlQmxvY2sqIENhbGxMaW5rSW5mbzo6Y29kZUJsb2NrKCkKICAgICBy
ZXR1cm4ganNDYXN0PEZ1bmN0aW9uQ29kZUJsb2NrKj4obV9jYWxsZWVPckNvZGVCbG9jay5nZXQo
KSk7CiB9CiAKLXZvaWQgQ2FsbExpbmtJbmZvOjpzZXRMYXN0U2VlbkNhbGxlZShWTSYgdm0sIGNv
bnN0IEpTQ2VsbCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxlZSkKK3ZvaWQgQ2FsbExpbmtJbmZv
OjpzZXRMYXN0U2VlbkNhbGxlZShWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0
KiBjYWxsZWUpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzRGlyZWN0KCkpOwogICAgIG1fbGFz
dFNlZW5DYWxsZWVPckV4ZWN1dGFibGUuc2V0KHZtLCBvd25lciwgY2FsbGVlKTsKQEAgLTE3NSwx
MCArMTc1LDEwIEBAIHZvaWQgQ2FsbExpbmtJbmZvOjpjbGVhckxhc3RTZWVuQ2FsbGVlKCkKICAg
ICBtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlLmNsZWFyKCk7CiB9CiAKLUpTRnVuY3Rpb24q
IENhbGxMaW5rSW5mbzo6bGFzdFNlZW5DYWxsZWUoKQorSlNPYmplY3QqIENhbGxMaW5rSW5mbzo6
bGFzdFNlZW5DYWxsZWUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKCFpc0RpcmVjdCgpKTsKLSAg
ICByZXR1cm4ganNDYXN0PEpTRnVuY3Rpb24qPihtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxl
LmdldCgpKTsKKyAgICByZXR1cm4ganNDYXN0PEpTT2JqZWN0Kj4obV9sYXN0U2VlbkNhbGxlZU9y
RXhlY3V0YWJsZS5nZXQoKSk7CiB9CiAKIGJvb2wgQ2FsbExpbmtJbmZvOjpoYXZlTGFzdFNlZW5D
YWxsZWUoKQpAQCAtMjM1LDE0ICsyMzUsMjAgQEAgdm9pZCBDYWxsTGlua0luZm86OnZpc2l0V2Vh
ayhWTSYgdm0pCiAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRHVtcChjb2RlQmxvY2so
KSksICIpLlxuIik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGRhdGFMb2coCi0gICAgICAgICAgICAgICAgICAgICAgICAiQ2xlYXJpbmcgY2FsbCB0
byAiLAotICAgICAgICAgICAgICAgICAgICAgICAgUmF3UG9pbnRlcihjYWxsZWUoKSksICIgKCIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYWxsZWUoKS0+ZXhlY3V0YWJsZSgpLT5oYXNoRm9y
KHNwZWNpYWxpemF0aW9uS2luZCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICIpLlxuIik7
CisgICAgICAgICAgICAgICAgaWYgKGNhbGxlZSgpLT50eXBlKCkgPT0gSlNGdW5jdGlvblR5cGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiQ2xlYXJpbmcgY2FsbCB0byAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhd1Bv
aW50ZXIoY2FsbGVlKCkpLCAiICgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PEpTRnVuY3Rpb24qPihjYWxsZWUoKSktPmV4ZWN1dGFibGUoKS0+aGFzaEZvcihzcGVj
aWFsaXphdGlvbktpbmQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBoYW5kbGVTcGVjaWZp
Y0NhbGxlZShzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2FsbGVlKCkpKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9T
UigpKQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2xlYXJpbmcgY2FsbCB0byAi
LCBSYXdQb2ludGVyKGNhbGxlZSgpKSwgIi5cbiIpOworICAgICAgICAgICAgICAgICAgICBtX2Ns
ZWFyZWRCeUdDID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaGFu
ZGxlU3BlY2lmaWNDYWxsZWUoY2FsbGVlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
dW5saW5rKHZtKTsKICAgICAgICAgfSBlbHNlIGlmIChpc0RpcmVjdCgpICYmICFIZWFwOjppc01h
cmtlZChtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlLmdldCgpKSkgewpAQCAtMjU4LDcgKzI2
NCwxMCBAQCB2b2lkIENhbGxMaW5rSW5mbzo6dmlzaXRXZWFrKFZNJiB2bSkKICAgICAgICAgfQog
ICAgIH0KICAgICBpZiAoIWlzRGlyZWN0KCkgJiYgaGF2ZUxhc3RTZWVuQ2FsbGVlKCkgJiYgIUhl
YXA6OmlzTWFya2VkKGxhc3RTZWVuQ2FsbGVlKCkpKSB7Ci0gICAgICAgIGhhbmRsZVNwZWNpZmlj
Q2FsbGVlKGxhc3RTZWVuQ2FsbGVlKCkpOworICAgICAgICBpZiAobGFzdFNlZW5DYWxsZWUoKS0+
dHlwZSgpID09IEpTRnVuY3Rpb25UeXBlKQorICAgICAgICAgICAgaGFuZGxlU3BlY2lmaWNDYWxs
ZWUoc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KGxhc3RTZWVuQ2FsbGVlKCkpKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgbV9jbGVhcmVkQnlHQyA9IHRydWU7CiAgICAgICAgIGNsZWFyTGFz
dFNlZW5DYWxsZWUoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXggOTFkM2RkOGY3NWIxMjI4M2UwYWFkZDc4OGUwZjk2NzU5
MGY2ZGU4MS4uNWJjMmM0NGY0NTg0ODI1MGI3OGE4ODU0MGEzODBiOGQwMDYwMDhlZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaApAQCAtMTkxLDE3
ICsxOTEsMTcgQEAgY2xhc3MgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VudGluZWxO
b2RlPENhbGxMaW5rSW5mbz4gewogICAgICAgICByZXR1cm4gbV9ob3RQYXRoT3RoZXI7CiAgICAg
fQogCi0gICAgdm9pZCBzZXRDYWxsZWUoVk0mLCBKU0NlbGwqLCBKU0Z1bmN0aW9uKiBjYWxsZWUp
OworICAgIHZvaWQgc2V0Q2FsbGVlKFZNJiwgSlNDZWxsKiwgSlNPYmplY3QqIGNhbGxlZSk7CiAg
ICAgdm9pZCBjbGVhckNhbGxlZSgpOwotICAgIEpTRnVuY3Rpb24qIGNhbGxlZSgpOworICAgIEpT
T2JqZWN0KiBjYWxsZWUoKTsKIAogICAgIHZvaWQgc2V0Q29kZUJsb2NrKFZNJiwgSlNDZWxsKiwg
RnVuY3Rpb25Db2RlQmxvY2sqKTsKICAgICB2b2lkIGNsZWFyQ29kZUJsb2NrKCk7CiAgICAgRnVu
Y3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9jaygpOwogCi0gICAgdm9pZCBzZXRMYXN0U2VlbkNhbGxl
ZShWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxlZSk7CisgICAg
dm9pZCBzZXRMYXN0U2VlbkNhbGxlZShWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0
KiBjYWxsZWUpOwogICAgIHZvaWQgY2xlYXJMYXN0U2VlbkNhbGxlZSgpOwotICAgIEpTRnVuY3Rp
b24qIGxhc3RTZWVuQ2FsbGVlKCk7CisgICAgSlNPYmplY3QqIGxhc3RTZWVuQ2FsbGVlKCk7CiAg
ICAgYm9vbCBoYXZlTGFzdFNlZW5DYWxsZWUoKTsKICAgICAKICAgICB2b2lkIHNldEV4ZWN1dGFi
bGVEdXJpbmdDb21waWxhdGlvbihFeGVjdXRhYmxlQmFzZSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAKaW5kZXggNTNiODRkOWMwMzdl
MTdmNmFlOTNkYzg1NTE5Mjc4OGI2M2U2N2FlYS4uZjI4NGUzMDE2NGEwMGE1NDcxMTA2Y2I1OGQ5
ODgwMDFiZDI2NWVlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q2FsbExpbmtTdGF0dXMuY3BwCkBAIC0yMTUsNyArMjE1LDcgQEAgQ2FsbExpbmtTdGF0dXMgQ2Fs
bExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tQ2FsbExpbmtJbmZvKAogICAgIAogICAgIENhbGxMaW5r
U3RhdHVzIHJlc3VsdDsKICAgICAKLSAgICBpZiAoSlNGdW5jdGlvbiogdGFyZ2V0ID0gY2FsbExp
bmtJbmZvLmxhc3RTZWVuQ2FsbGVlKCkpIHsKKyAgICBpZiAoSlNPYmplY3QqIHRhcmdldCA9IGNh
bGxMaW5rSW5mby5sYXN0U2VlbkNhbGxlZSgpKSB7CiAgICAgICAgIENhbGxWYXJpYW50IHZhcmlh
bnQodGFyZ2V0KTsKICAgICAgICAgaWYgKGNhbGxMaW5rSW5mby5oYXNTZWVuQ2xvc3VyZSgpKQog
ICAgICAgICAgICAgdmFyaWFudCA9IHZhcmlhbnQuZGVzcGVjaWZpZWRDbG9zdXJlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRDYWxsTGlua0luZm8u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCmlu
ZGV4IGMyY2Y0ZDFkYzE1YmY3ZmE5ZTA4OTE4NjE2YWE1M2EwMjQ5MTcxY2QuLjhkMGI4NjBlZWYy
NWE1NTExYWJkZmZkNjE4MDg2ZmZhMTgxNDhlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCkBAIC01NCw4ICs1NCw4IEBAIHN0
cnVjdCBMTEludENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxMTElu
dENhbGxMaW5rSW5mbz4gewogICAgICAgICAgICAgcmVtb3ZlKCk7CiAgICAgfQogICAgIAotICAg
IFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBjYWxsZWU7Ci0gICAgV3JpdGVCYXJyaWVyPEpTRnVu
Y3Rpb24+IGxhc3RTZWVuQ2FsbGVlOworICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gY2FsbGVl
OworICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gbGFzdFNlZW5DYWxsZWU7CiAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIG1hY2hpbmVDb2RlVGFyZ2V0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggMDY1NTAwNGRkMzZlN2MwNjZlNWJm
YTA1ZGJjMzIwMjAxNWEyYzVkYy4uOTYyMWZkMTUxZjgzOTFlZWM4YTI5ZGQwOGI0ZDc2ZTQ3YTAy
ZTQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBA
IC05MzksOSArOTM5LDE3IEBAIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ2FsbExpCiAgICAgSlNWYWx1ZSBj
YWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKTsKICAg
ICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5jdGlvbihjYWxsZWVBc1Zh
bHVlKTsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7Ci0gICAgICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgY2FjaGUgdGhlc2Uga2luZHMgb2YgY2FsbHMuIFRoZXkgY2FuIGJlIGNvbW1v
biBhbmQgY3VycmVudGx5IHRoZXkgYXJlCi0gICAgICAgIC8vIGV4cGVuc2l2ZS4KLSAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorICAgICAg
ICBpZiAoY2FsbGVlQXNWYWx1ZS5pc0NlbGwoKSAmJiBjYWxsZWVBc1ZhbHVlLmFzQ2VsbCgpLT50
eXBlKCkgPT0gSW50ZXJuYWxGdW5jdGlvblR5cGUpIHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjb2RlUHRyID0gdm0tPmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5l
Rm9yKGtpbmQpOworICAgICAgICAgICAgQVNTRVJUKCEhY29kZVB0cik7CisKKyAgICAgICAgICAg
IGlmICghY2FsbExpbmtJbmZvLT5zZWVuT25jZSgpKQorICAgICAgICAgICAgICAgIGNhbGxMaW5r
SW5mby0+c2V0U2VlbigpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxpbmtG
b3IoZXhlY0NhbGxlZSwgKmNhbGxMaW5rSW5mbywgbnVsbHB0ciwgYXNPYmplY3QoY2FsbGVlQXNW
YWx1ZSksIGNvZGVQdHIpOworCisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KGNvZGVQ
dHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY2FsbExpbmtJ
bmZvLT5jYWxsTW9kZSgpID09IENhbGxNb2RlOjpUYWlsID8gUmV1c2VUaGVGcmFtZSA6IEtlZXBU
aGVGcmFtZSkpOworICAgICAgICB9CiAgICAgICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwogICAg
ICAgICByZXR1cm4gaGFuZGxlSG9zdENhbGwoZXhlY0NhbGxlZSwgY2FsbGVlQXNWYWx1ZSwgY2Fs
bExpbmtJbmZvKTsKICAgICB9CkBAIC05NTEsNyArOTU5LDcgQEAgU2xvd1BhdGhSZXR1cm5UeXBl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBD
YWxsTGkKICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9IGNhbGxlZS0+ZXhlY3V0YWJs
ZSgpOwogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHI7Ci0gICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSAwOworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gbnVsbHB0cjsKICAg
ICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkgewogICAgICAgICBjb2RlUHRyID0g
ZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcihraW5kLCBNdXN0Q2hlY2tBcml0eSk7CiAgICAgfSBl
bHNlIHsKQEAgLTEwNTMsNiArMTA2MSwxMSBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHZp
cnR1YWxGb3JXaXRoRnVuY3Rpb24oCiAgICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0Nh
bGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKTsKICAgICBjYWxsZWVBc0Z1bmN0aW9uQ2Vs
bCA9IGdldEpTRnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYWxs
ZWVBc0Z1bmN0aW9uQ2VsbCkpIHsKKyAgICAgICAgaWYgKGNhbGxlZUFzVmFsdWUuaXNDZWxsKCkg
JiYgY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEludGVybmFsRnVuY3Rpb25UeXBl
KSB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9IHZtLT5nZXRD
VElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihraW5kKTsKKyAgICAgICAgICAgIEFTU0VS
VCghIWNvZGVQdHIpOworICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChjb2RlUHRyLmV4
ZWN1dGFibGVBZGRyZXNzKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+
Y2FsbE1vZGUoKSA9PSBDYWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJh
bWUpKTsKKyAgICAgICAgfQogICAgICAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKICAgICAgICAg
cmV0dXJuIGhhbmRsZUhvc3RDYWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzVmFsdWUsIGNhbGxMaW5r
SW5mbyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRU
aHVua3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCmluZGV4
IDY4YzU2NDM2MmI5YWYwYWM0ZjE2MmRiYTkyODA2N2M0NzcyYzA1NTMuLmFmNGM4NDE5NTIyY2Y5
NjYzYjk2OWYxYTU1ZjNmYWJmZmIwYmU5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUVGh1bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFRodW5rcy5jcHAKQEAgLTcxLDYgKzcxLDIwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBKSVRU
aHVua3M6OmN0aU5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFncyhWTSogdm0pCiAgICAgcmV0
dXJuIGN0aVN0dWIodm0sIG5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFnc0dlbmVyYXRvciku
Y29kZSgpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlJbnRlcm5h
bEZ1bmN0aW9uQ2FsbChWTSogdm0pCit7CisgICAgaWYgKCF2bS0+Y2FuVXNlSklUKCkpCisgICAg
ICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGlu
dF9pbnRlcm5hbF9mdW5jdGlvbl9jYWxsX3RyYW1wb2xpbmUpOworICAgIHJldHVybiBjdGlTdHVi
KHZtLCBpbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcikuY29kZSgpOworfQorCitNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlJbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0KFZN
KiB2bSkKK3sKKyAgICBpZiAoIXZtLT5jYW5Vc2VKSVQoKSkKKyAgICAgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2ludGVybmFsX2Z1bmN0
aW9uX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKKyAgICByZXR1cm4gY3RpU3R1Yih2bSwgaW50ZXJu
YWxGdW5jdGlvbkNvbnN0cnVjdEdlbmVyYXRvcikuY29kZSgpOworfQorCiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgSklUVGh1bmtzOjpjdGlTdHViKFZNKiB2bSwgVGh1bmtHZW5lcmF0b3IgZ2VuZXJh
dG9yKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRUaHVua3MuaAppbmRleCA0ZTczMzdhMGRmMGZiNjA0Njk3ZmVhNmRmN2FmMzIxMGQ2
MDhlZjU5Li4zMTQyNzI4YjJlNmIyY2Q4NDJjNjIxNzRhYWJiOTIzOWY3ZTUzOTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKQEAgLTU1LDYgKzU1LDggQEAgY2xhc3MgSklU
VGh1bmtzIGZpbmFsIDogcHJpdmF0ZSBXZWFrSGFuZGxlT3duZXIgewogICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoVk0qKTsKICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY3RpTmF0aXZlVGFpbENhbGwoVk0qKTsgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aU5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFncyhWTSopOyAgICAKKyAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpSW50ZXJuYWxGdW5jdGlvbkNhbGwoVk0qKTsKKyAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpSW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdChWTSopOwogCiAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoVk0qLCBUaHVua0dlbmVyYXRvcik7CiAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGV4aXN0aW5nQ1RJU3R1YihUaHVua0dlbmVyYXRvcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAppbmRleCBkNzlhYzZkODgwNzMxN2Vi
MWI3OTI3NWNiNzMwMDk4ZjRlOWNiZTIyLi42NzY0MmQ2NDJhMDQyYWU3NDI2NTBiNTE0NmQwYTQw
MThjM2EwNzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2gu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKQEAgLTY5Miw3
ICs2OTIsNyBAQCBzdGF0aWMgSlNDZWxsKiB3ZWJBc3NlbWJseU93bmVyKEpTQ2VsbCogY2FsbGVl
KQogCiB2b2lkIGxpbmtGb3IoCiAgICAgRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNh
bGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssCi0gICAgSlNGdW5jdGlvbiog
Y2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKKyAgICBKU09iamVjdCogY2Fs
bGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKIHsKICAgICBBU1NFUlQoIWNhbGxM
aW5rSW5mby5zdHViKCkpOwogCkBAIC04MTUsOSArODE1LDcgQEAgdm9pZCBsaW5rUG9seW1vcnBo
aWNDYWxsKAogewogICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxMaW5rSW5mby5hbGxvd1N0dWJzKCkp
OwogICAgIAotICAgIC8vIEN1cnJlbnRseSB3ZSBjYW4ndCBkbyBhbnl0aGluZyBmb3Igbm9uLWZ1
bmN0aW9uIGNhbGxlZXMuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MDY4NQotICAgIGlmICghbmV3VmFyaWFudCB8fCAhbmV3VmFyaWFudC5leGVjdXRh
YmxlKCkpIHsKKyAgICBpZiAoIW5ld1ZhcmlhbnQpIHsKICAgICAgICAgbGlua1ZpcnR1YWxGb3Io
ZXhlYywgY2FsbExpbmtJbmZvKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTgzOSw3ICs4
MzcsNyBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAgICAgQ2FsbFZhcmlhbnRMaXN0IGxp
c3Q7CiAgICAgaWYgKFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKiBzdHViID0gY2FsbExpbmtJ
bmZvLnN0dWIoKSkKICAgICAgICAgbGlzdCA9IHN0dWItPnZhcmlhbnRzKCk7Ci0gICAgZWxzZSBp
ZiAoSlNGdW5jdGlvbiogb2xkQ2FsbGVlID0gY2FsbExpbmtJbmZvLmNhbGxlZSgpKQorICAgIGVs
c2UgaWYgKEpTT2JqZWN0KiBvbGRDYWxsZWUgPSBjYWxsTGlua0luZm8uY2FsbGVlKCkpCiAgICAg
ICAgIGxpc3QgPSBDYWxsVmFyaWFudExpc3R7IENhbGxWYXJpYW50KG9sZENhbGxlZSkgfTsKICAg
ICAKICAgICBsaXN0ID0gdmFyaWFudExpc3RXaXRoVmFyaWFudChsaXN0LCBuZXdWYXJpYW50KTsK
QEAgLTg2MywxMCArODYxLDggQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogICAgIAogICAg
IC8vIEZpZ3VyZSBvdXQgd2hhdCBvdXIgY2FzZXMgYXJlLgogICAgIGZvciAoQ2FsbFZhcmlhbnQg
dmFyaWFudCA6IGxpc3QpIHsKLSAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7Ci0gICAgICAg
IGlmICh2YXJpYW50LmV4ZWN1dGFibGUoKS0+aXNIb3N0RnVuY3Rpb24oKSkKLSAgICAgICAgICAg
IGNvZGVCbG9jayA9IG51bGxwdHI7Ci0gICAgICAgIGVsc2UgeworICAgICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jayA9IG51bGxwdHI7CisgICAgICAgIGlmICh2YXJpYW50LmV4ZWN1dGFibGUoKSAm
JiAhdmFyaWFudC5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpIHsKICAgICAgICAgICAg
IEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlID0gdmFyaWFudC5leGVjdXRhYmxlKCk7CiAgICAg
ICAgICAgICBjb2RlQmxvY2sgPSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0YWJs
ZSktPmNvZGVCbG9ja0ZvckNhbGwoKTsKICAgICAgICAgICAgIC8vIElmIHdlIGNhbm5vdCBoYW5k
bGUgYSBjYWxsZWUsIGVpdGhlciBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYSBDb2RlQmxvY2sgb3Ig
YmVjYXVzZSBhcml0eSBtaXNtYXRjaCwKQEAgLTkyNiw3ICs5MjIsOCBAQCB2b2lkIGxpbmtQb2x5
bW9ycGhpY0NhbGwoCiAjZWxzZQogICAgICAgICAvLyBXZSB3b3VsZCBoYXZlIGFscmVhZHkgY2hl
Y2tlZCB0aGF0IHRoZSBjYWxsZWUgaXMgYSBjZWxsLgogI2VuZGlmCi0gICAgCisKKyAgICAgICAg
Ly8gRklYTUU6IFdlIGNvdWxkIGFkZCBhIGZhc3QgcGF0aCBmb3IgSW50ZXJuYWxGdW5jdGlvbiB3
aXRoIGNsb3N1cmUgY2FsbC4KICAgICAgICAgc2xvd1BhdGguYXBwZW5kKAogICAgICAgICAgICAg
c3R1YkppdC5icmFuY2g4KAogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm90RXF1YWws
CkBAIC05NTMsMTEgKzk1MCwxOCBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAgICAgICAg
ICAgICBmYXN0Q291bnRzW2ldID0gMDsKICAgICAgICAgCiAgICAgICAgIENhbGxWYXJpYW50IHZh
cmlhbnQgPSBjYWxsQ2FzZXNbaV0udmFyaWFudCgpOwotICAgICAgICBpbnQ2NF90IG5ld0Nhc2VW
YWx1ZTsKLSAgICAgICAgaWYgKGlzQ2xvc3VyZUNhbGwpCisgICAgICAgIGludDY0X3QgbmV3Q2Fz
ZVZhbHVlID0gMDsKKyAgICAgICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsKICAgICAgICAgICAgIG5l
d0Nhc2VWYWx1ZSA9IGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4odmFyaWFudC5leGVjdXRhYmxlKCkp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBuZXdDYXNlVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8
aW50cHRyX3Q+KHZhcmlhbnQuZnVuY3Rpb24oKSk7CisgICAgICAgICAgICAvLyBGSVhNRTogV2Ug
Y291bGQgYWRkIGEgZmFzdCBwYXRoIGZvciBJbnRlcm5hbEZ1bmN0aW9uIHdpdGggY2xvc3VyZSBj
YWxsLgorICAgICAgICAgICAgaWYgKCFuZXdDYXNlVmFsdWUpCisgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoYXV0byogZnVuY3Rpb24g
PSB2YXJpYW50LmZ1bmN0aW9uKCkpCisgICAgICAgICAgICAgICAgbmV3Q2FzZVZhbHVlID0gYml0
d2lzZV9jYXN0PGludHB0cl90PihmdW5jdGlvbik7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgbmV3Q2FzZVZhbHVlID0gYml0d2lzZV9jYXN0PGludHB0cl90Pih2YXJpYW50Lmlu
dGVybmFsRnVuY3Rpb24oKSk7CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmICghQVNT
RVJUX0RJU0FCTEVEKSB7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGk7ICsr
aikgewpAQCAtOTk2LDkgKzEwMDAsMTQgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogICAg
ICAgICAKICAgICAgICAgQ2FsbFZhcmlhbnQgdmFyaWFudCA9IGNhbGxDYXNlc1tjYXNlSW5kZXhd
LnZhcmlhbnQoKTsKICAgICAgICAgCi0gICAgICAgIEFTU0VSVCh2YXJpYW50LmV4ZWN1dGFibGUo
KS0+aGFzSklUQ29kZUZvckNhbGwoKSk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
b2RlUHRyID0KLSAgICAgICAgICAgIHZhcmlhbnQuZXhlY3V0YWJsZSgpLT5nZW5lcmF0ZWRKSVRD
b2RlRm9yQ2FsbCgpLT5hZGRyZXNzRm9yQ2FsbChBcml0eUNoZWNrTm90UmVxdWlyZWQpOworICAg
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cjsKKyAgICAgICAgaWYgKHZhcmlhbnQu
ZXhlY3V0YWJsZSgpKSB7CisgICAgICAgICAgICBBU1NFUlQodmFyaWFudC5leGVjdXRhYmxlKCkt
Pmhhc0pJVENvZGVGb3JDYWxsKCkpOworICAgICAgICAgICAgY29kZVB0ciA9IHZhcmlhbnQuZXhl
Y3V0YWJsZSgpLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5hZGRyZXNzRm9yQ2FsbChBcml0
eUNoZWNrTm90UmVxdWlyZWQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQVNTRVJU
KHZhcmlhbnQuaW50ZXJuYWxGdW5jdGlvbigpKTsKKyAgICAgICAgICAgIGNvZGVQdHIgPSB2bS5n
ZXRDVElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihDb2RlRm9yQ2FsbCk7CisgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIGlmIChmYXN0Q291bnRzKSB7CiAgICAgICAgICAgICBzdHVi
Sml0LmFkZDMyKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAppbmRleCBlMjk3NWI5MWMx
ZDljZTg4ZjYyYzAzNzEzODllOWY2YTIwYjMxYTI5Li4xOWIxZjVmZWYwYzkxOGI0ODVkODNkNDI4
MzcxN2E5ZDFjYzk0MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaApAQCAtNDQs
NyArNDQsNyBAQCB2b2lkIGJ1aWxkR2V0QnlJRFByb3RvTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydAogdm9pZCByZXBhdGNoUHV0QnlJRChF
eGVjU3RhdGUqLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3Qg
UHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKIHZvaWQgYnVp
bGRQdXRCeUlkTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRL
aW5kKTsKIHZvaWQgcmVwYXRjaEluKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIGNvbnN0IElkZW50aWZp
ZXImLCBib29sIHdhc0ZvdW5kLCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5m
byYpOwotdm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayos
IEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKTsKK3ZvaWQgbGlua0Zv
cihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBKU09iamVjdCogY2FsbGVl
LCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIpOwogdm9pZCBsaW5rRGlyZWN0Rm9yKEV4ZWNTdGF0ZSos
IENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIE1hY3JvQXNzZW1ibGVyQ29kZVB0cik7CiB2b2lk
IGxpbmtTbG93Rm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYpOwogdm9pZCB1bmxpbmtGb3Io
Vk0mLCBDYWxsTGlua0luZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtH
ZW5lcmF0b3JzLmNwcAppbmRleCBmMWRkZTc2NjIwZTEzOTdhZWEzMjc5M2EzYjlhMTlmYTEwOTll
ZWYzLi5mOWVhNWEzODYyNjczZmY4ZjRmYjZmZGI0MDM2Y2ExZTA4YTI1ZWRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCkBAIC0xOTcsNyArMTk3
LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENhbGxM
aW5rSW5mbyYgY2FsbExpbmtJbmZvKQogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVh
bCwgR1BSSW5mbzo6cmVnVDEsCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpDZWxsVGFnKSkpOwogI2VuZGlmCi0gICAgc2xvd0Nhc2UuYXBwZW5kKGppdC5i
cmFuY2hJZk5vdFR5cGUoR1BSSW5mbzo6cmVnVDAsIEpTRnVuY3Rpb25UeXBlKSk7CisgICAgYXV0
byBub3RKU0Z1bmN0aW9uID0gaml0LmJyYW5jaElmTm90VHlwZShHUFJJbmZvOjpyZWdUMCwgSlNG
dW5jdGlvblR5cGUpOwogICAgIAogICAgIC8vIE5vdyB3ZSBrbm93IHdlIGhhdmUgYSBKU0Z1bmN0
aW9uLgogICAgIApAQCAtMjE1LDYgKzIxNSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0
dWFsVGh1bmtGb3IoVk0qIHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKICAgICAvLyBj
YWxsLgogICAgIAogICAgIC8vIE1ha2UgYSB0YWlsIGNhbGwuIFRoaXMgd2lsbCByZXR1cm4gYmFj
ayB0byBKSVQgY29kZS4KKyAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgY2FsbENvZGUoaml0Lmxh
YmVsKCkpOwogICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86OnJlZ1Q0KTsK
ICAgICBpZiAoY2FsbExpbmtJbmZvLmlzVGFpbENhbGwoKSkgewogICAgICAgICBqaXQucHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86OnJlZ1QwKTsKQEAgLTIyMiw2ICsyMjMs
MTEgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENhbGxM
aW5rSW5mbyYgY2FsbExpbmtJbmZvKQogICAgIH0KICAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdU
NCk7CiAKKyAgICBub3RKU0Z1bmN0aW9uLmxpbmsoJmppdCk7CisgICAgc2xvd0Nhc2UuYXBwZW5k
KGppdC5icmFuY2hJZk5vdFR5cGUoR1BSSW5mbzo6cmVnVDAsIEludGVybmFsRnVuY3Rpb25UeXBl
KSk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtLT5nZXRDVElJ
bnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihjYWxsTGlua0luZm8uc3BlY2lhbGl6YXRpb25L
aW5kKCkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgaml0Lmp1
bXAoKS5saW5rVG8oY2FsbENvZGUsICZqaXQpOworCiAgICAgc2xvd0Nhc2UubGluaygmaml0KTsK
ICAgICAKICAgICAvLyBIZXJlIHdlIGRvbid0IGtub3cgYW55dGhpbmcsIHNvIHJldmVydCB0byB0
aGUgZnVsbCBzbG93IHBhdGguCkBAIC0yMzYsOCArMjQyLDkgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQog
fQogCiBlbnVtIFRodW5rRW50cnlUeXBlIHsgRW50ZXJWaWFDYWxsLCBFbnRlclZpYUp1bXBXaXRo
U2F2ZWRUYWdzLCBFbnRlclZpYUp1bXBXaXRob3V0U2F2ZWRUYWdzIH07CitlbnVtIGNsYXNzIFRo
dW5rRnVuY3Rpb25UeXBlIHsgSlNGdW5jdGlvbiwgSW50ZXJuYWxGdW5jdGlvbiB9OwogCi1zdGF0
aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCwgVGh1bmtFbnRyeVR5cGUgZW50cnlUeXBlID0gRW50ZXJW
aWFDYWxsKQorc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3Io
Vk0qIHZtLCBUaHVua0Z1bmN0aW9uVHlwZSB0aHVua0Z1bmN0aW9uVHlwZSwgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kLCBUaHVua0VudHJ5VHlwZSBlbnRyeVR5cGUgPSBFbnRlclZpYUNhbGwp
CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGFibGUgdG8gbG9nIFNoYWRvd0NoaWNr
ZW4gcHJvbG9ndWUgcGFja2V0cy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU1Njg5CkBAIC0yNzksOCArMjg2LDExIEBAIHN0YXRpYyBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCBrCiAKICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgogICAgIGppdC5lbWl0R2V0RnJvbUNh
bGxGcmFtZUhlYWRlclB0cihDYWxsRnJhbWVTbG90OjpjYWxsZWUsIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMSk7Ci0gICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJm
YWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QxLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIGlm
ICh0aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbikgewor
ICAgICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJ
VDo6cmVnVDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QxKTsKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QxLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIH0g
ZWxzZQorICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFj
ZUpJVDo6cmVnVDEsIEludGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3Io
a2luZCkpKTsKIAogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4
KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIApAQCAtMjkxLDggKzMw
MSwxMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihW
TSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQgawogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplZGkpOwogCiAgICAgaml0LmVt
aXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgWDg2UmVn
aXN0ZXJzOjplc2kpOwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4
NlJlZ2lzdGVyczo6ZXNpLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJl
Z2lzdGVyczo6cjkpOwotICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJl
Z2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgaWYgKHRodW5r
RnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uKSB7CisgICAgICAg
IGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNpLCBK
U0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOworICAg
ICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBl
eGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBqaXQuY2Fs
bChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVzaSwgSW50ZXJuYWxGdW5j
dGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogCiAjZWxzZQogICAgIC8v
IENhbGxpbmcgY29udmVudGlvbjogICAgICBmKGVjeCwgZWR4LCByOCwgcjksIC4uLik7CkBAIC0z
MDQsOCArMzE3LDExIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2Vu
ZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0LnN1YlB0cihK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVy
ZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplZHgp
OwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6
ZWR4LCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkp
OwotICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjks
IGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgaWYgKHRodW5rRnVuY3Rpb25UeXBl
ID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uKSB7CisgICAgICAgIGppdC5sb2FkUHRy
KEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWR4LCBKU0Z1bmN0aW9uOjpv
ZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOworICAgICAgICBqaXQuY2Fs
bChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBleGVjdXRhYmxlT2Zm
c2V0VG9GdW5jdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFj
ZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVkeCwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0
T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFj
ZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2VuZGlmCkBAIC0zMTksOCArMzM1LDExIEBAIHN0YXRp
YyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6eDApOwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgQVJNNjRSZWdpc3RlcnM6Ongx
KTsKLSAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVy
czo6eDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgQVJNNjRSZWdpc3RlcnM6
OngyKTsKLSAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVy
czo6eDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgaWYgKHRodW5rRnVuY3Rp
b25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uKSB7CisgICAgICAgIGppdC5s
b2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MSwgSlNGdW5j
dGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBBUk02NFJlZ2lzdGVyczo6eDIpOworICAgICAg
ICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVyczo6eDIsIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgfSBlbHNlCisgICAgICAgIGppdC5jYWxs
KEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MSwgSW50ZXJuYWxGdW5j
dGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogI2VsaWYgQ1BVKEFSTSkg
fHwgQ1BVKE1JUFMpCiAjaWYgQ1BVKE1JUFMpCiAgICAgLy8gQWxsb2NhdGUgc3RhY2sgc3BhY2Ug
Zm9yICh1bnVzZWQpIDE2IGJ5dGVzICg4LWJ5dGUgYWxpZ25lZCkgZm9yIDQgYXJndW1lbnRzLgpA
QCAtMzMyLDggKzM1MSwxMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZv
ckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQgawogICAgIGppdC5tb3Zl
KEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3Vt
ZW50R1BSMCk7CiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIxKTsKLSAgICBqaXQu
bG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRH
UFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMik7Ci0gICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIGlmICh0aHVua0Z1
bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbikgeworICAgICAgICBq
aXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6YXJndW1l
bnRHUFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMik7CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50
ZXJmYWNlSklUOjpyZWdUMiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VK
SVQ6OmFyZ3VtZW50R1BSMSwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlv
bkZvcihraW5kKSkpOwogCiAjaWYgQ1BVKE1JUFMpCiAgICAgLy8gUmVzdG9yZSBzdGFjayBzcGFj
ZQpAQCAtMzg4LDI3ICs0MTAsMzcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRp
dmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQu
anVtcFRvRXhjZXB0aW9uSGFuZGxlcigqdm0pOwogCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZl
cihqaXQsIEdMT0JBTF9USFVOS19JRCk7Ci0gICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hC
dWZmZXIsICgibmF0aXZlICVzJXMgdHJhbXBvbGluZSIsIGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1
bXBXaXRoU2F2ZWRUYWdzID8gIlRhaWwgV2l0aCBTYXZlZCBUYWdzICIgOiBlbnRyeVR5cGUgPT0g
RW50ZXJWaWFKdW1wV2l0aG91dFNhdmVkVGFncyA/ICJUYWlsIFdpdGhvdXQgU2F2ZWQgVGFncyAi
IDogIiIsIHRvQ1N0cmluZyhraW5kKS5kYXRhKCkpKTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09E
RShwYXRjaEJ1ZmZlciwgKCIlcyAlcyVzIHRyYW1wb2xpbmUiLCB0aHVua0Z1bmN0aW9uVHlwZSA9
PSBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiA/ICJuYXRpdmUiIDogImludGVybmFsIiwg
ZW50cnlUeXBlID09IEVudGVyVmlhSnVtcFdpdGhTYXZlZFRhZ3MgPyAiVGFpbCBXaXRoIFNhdmVk
IFRhZ3MgIiA6IGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1bXBXaXRob3V0U2F2ZWRUYWdzID8gIlRh
aWwgV2l0aG91dCBTYXZlZCBUYWdzICIgOiAiIiwgdG9DU3RyaW5nKGtpbmQpLmRhdGEoKSkpOwog
fQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ2FsbEdlbmVyYXRvcihWTSogdm0pCiB7
Ci0gICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwpOworICAgIHJl
dHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9u
LCBDb2RlRm9yQ2FsbCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2Fs
bEdlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwg
Q29kZUZvckNhbGwsIEVudGVyVmlhSnVtcFdpdGhTYXZlZFRhZ3MpOworICAgIHJldHVybiBuYXRp
dmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uLCBDb2RlRm9y
Q2FsbCwgRW50ZXJWaWFKdW1wV2l0aFNhdmVkVGFncyk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IoVk0qIHZtKQogewot
ICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBFbnRlclZpYUp1
bXBXaXRob3V0U2F2ZWRUYWdzKTsKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBU
aHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiwgQ29kZUZvckNhbGwsIEVudGVyVmlhSnVtcFdp
dGhvdXRTYXZlZFRhZ3MpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ29uc3Ry
dWN0R2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZt
LCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBU
aHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiwgQ29kZUZvckNvbnN0cnVjdCk7Cit9CisKK01h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBpbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcihWTSogdm0p
Cit7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgVGh1bmtGdW5jdGlvblR5cGU6
OkludGVybmFsRnVuY3Rpb24sIENvZGVGb3JDYWxsKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIGludGVybmFsRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJl
dHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpJbnRlcm5hbEZ1
bmN0aW9uLCBDb2RlRm9yQ29uc3RydWN0KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFy
aXR5Rml4dXBHZW5lcmF0b3IoVk0qIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmgKaW5kZXggYzA0M2Q0MTg3YjBmNWI0NmIwZjJjZjdlODY2ODI0ODY2NTRj
ZmNmYy4uNjE4ZmVlMDk4YTgwYTFhMzU1NWI0ZWQ5ZDM2MDNlMzdhYmNiZjAyZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCkBAIC00Niw2ICs0Niw4IEBA
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxsR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbmF0aXZlQ29uc3RydWN0R2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbmF0aXZlVGFpbENhbGxHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IoVk0qKTsKK01h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBpbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcihWTSopOwor
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3Io
Vk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwR2VuZXJhdG9yKFZNKik7CiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgdW5yZWFjaGFibGVHZW5lcmF0b3IoVk0qKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggOGEwZTFh
YzY4OGU0Zjc4NWU2ZThjNjY5YjY4MGYyZDg5NjAxNTgyMy4uMjk3YjZjMTcwMGZiOTM3ZGRiNzEx
ZTk3ZTI2MjllOTMyNzg3OWIyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwCkBAIC0xMzUwLDYgKzEzNTAsMjUgQEAgaW5saW5lIFNsb3dQYXRo
UmV0dXJuVHlwZSBzZXRVcENhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBJbnN0cnVjdGlvbiog
cGMsIENvZGUKICAgICAKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNG
dW5jdGlvbihjYWxsZWVBc1ZhbHVlKTsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7
CisgICAgICAgIGlmIChjYWxsZWVBc1ZhbHVlLmlzQ2VsbCgpICYmIGNhbGxlZUFzVmFsdWUuYXND
ZWxsKCktPnR5cGUoKSA9PSBJbnRlcm5hbEZ1bmN0aW9uVHlwZSkgeworICAgICAgICAgICAgYXV0
byogaW50ZXJuYWxGdW5jdGlvbiA9IGpzQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4oY2FsbGVlQXNW
YWx1ZS5hc0NlbGwoKSk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0
ciA9IHZtLmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKGtpbmQpOworICAgICAg
ICAgICAgQVNTRVJUKCEhY29kZVB0cik7CisKKyAgICAgICAgICAgIGlmICghTExJTlRfQUxXQVlT
X0FDQ0VTU19TTE9XICYmIGNhbGxMaW5rSW5mbykgeworICAgICAgICAgICAgICAgIENvZGVCbG9j
ayogY2FsbGVyQ29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CisKKyAgICAgICAgICAgICAg
ICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKGNhbGxlckNvZGVCbG9jay0+bV9sb2NrKTsKKwor
ICAgICAgICAgICAgICAgIGlmIChjYWxsTGlua0luZm8tPmlzT25MaXN0KCkpCisgICAgICAgICAg
ICAgICAgICAgIGNhbGxMaW5rSW5mby0+cmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgY2FsbExp
bmtJbmZvLT5jYWxsZWUuc2V0KHZtLCBjYWxsZXJDb2RlQmxvY2ssIGludGVybmFsRnVuY3Rpb24p
OworICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuc2V0KHZtLCBj
YWxsZXJDb2RlQmxvY2ssIGludGVybmFsRnVuY3Rpb24pOworICAgICAgICAgICAgICAgIGNhbGxM
aW5rSW5mby0+bWFjaGluZUNvZGVUYXJnZXQgPSBjb2RlUHRyOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBMTElOVF9DQUxMX1JFVFVSTihleGVjLCBleGVjQ2FsbGVlLCBjb2RlUHRyLmV4
ZWN1dGFibGVBZGRyZXNzKCkpOworICAgICAgICB9CiAgICAgICAgIHRocm93U2NvcGUucmVsZWFz
ZSgpOwogICAgICAgICByZXR1cm4gaGFuZGxlSG9zdENhbGwoZXhlY0NhbGxlZSwgcGMsIGNhbGxl
ZUFzVmFsdWUsIGtpbmQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCA1ZGFkMTE2YTkzZjZmOWFjYTk1YzBk
OWIzMzRlNmZlNjgyYWZlYjM2Li42YzA1NGZhNGY5MjkyNTlhZDRlYWE3ODlhNzRjN2FhYzUwYjc3
N2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtCkBAIC0xODM0LDYgKzE4MzQsMTUgQEAgX2xsaW50X25hdGl2ZV9jYWxsX3Ry
YW1wb2xpbmU6CiBfbGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lOgogICAgIG5hdGl2
ZUNhbGxUcmFtcG9saW5lKE5hdGl2ZUV4ZWN1dGFibGU6Om1fY29uc3RydWN0b3IpCiAKKworX2xs
aW50X2ludGVybmFsX2Z1bmN0aW9uX2NhbGxfdHJhbXBvbGluZToKKyAgICBpbnRlcm5hbEZ1bmN0
aW9uQ2FsbFRyYW1wb2xpbmUoSW50ZXJuYWxGdW5jdGlvbjo6bV9mdW5jdGlvbkZvckNhbGwpCisK
KworX2xsaW50X2ludGVybmFsX2Z1bmN0aW9uX2NvbnN0cnVjdF90cmFtcG9saW5lOgorICAgIGlu
dGVybmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShJbnRlcm5hbEZ1bmN0aW9uOjptX2Z1bmN0aW9u
Rm9yQ29uc3RydWN0KQorCisKIF9sbGludF9vcF9nZXRfZW51bWVyYWJsZV9sZW5ndGg6CiAgICAg
dHJhY2VFeGVjdXRpb24oKQogICAgIGNhbGxPcGNvZGVTbG93UGF0aChfc2xvd19wYXRoX2dldF9l
bnVtZXJhYmxlX2xlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggMGU3MTJiNjc5ZDZhYjEyMDNi
YjZjNmNjNTYyYWIwMmE2NzkxNmVjOS4uZTVkYWFhMjI3NDdiMWU5NDM2NGEzNDVmNzg0YmYwYmU3
ODliZWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTIxMTEsNiArMjExMSw1OCBAQCBtYWNybyBu
YXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKIGVuZAogCiAK
K21hY3JvIGludGVybmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShvZmZzZXRPZkZ1bmN0aW9uKQor
ICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQorICAgIHN0b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQorICAg
IGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICAvLyBDYWxsZWUgaXMg
c3RpbGwgaW4gdDEgZm9yIGNvZGUgYmVsb3cKKyAgICBpZiBYODYgb3IgWDg2X1dJTgorICAgICAg
ICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sgcG9pbnRlcgorICAgICAgICBhbmRwIE1hcmtlZEJs
b2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fdm1bdDFdLCB0MworICAg
ICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgICAgICBtb3ZlIGNmciwg
YTAgICMgYTAgPSBlY3gKKyAgICAgICAgc3RvcmVwIGEwLCBbc3BdCisgICAgICAgIGxvYWRpIENh
bGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCisgICAgICAgIGNhbGwgb2Zmc2V0T2ZGdW5jdGlvblt0
MV0KKyAgICAgICAgbG9hZHAgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MworICAgICAg
ICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1f
dm1bdDNdLCB0MworICAgICAgICBhZGRwIDgsIHNwCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9y
IEFSTXY3X1RSQURJVElPTkFMIG9yIENfTE9PUCBvciBNSVBTCisgICAgICAgIHN1YnAgOCwgc3Ag
IyBhbGlnbiBzdGFjayBwb2ludGVyCisgICAgICAgICMgdDEgYWxyZWFkeSBjb250YWlucyB0aGUg
Q2FsbGVlLgorICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAg
TWFya2VkQmxvY2s6Om1fdm1bdDFdLCB0MQorICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2Fs
bEZyYW1lW3QxXQorICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgbG9hZGkgQ2FsbGVlICsg
UGF5bG9hZE9mZnNldFtjZnJdLCB0MQorICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVu
dCh0MywgMHhkZWFkMDAwMSkKKyAgICAgICAgaWYgQ19MT09QCisgICAgICAgICAgICBjbG9vcENh
bGxOYXRpdmUgb2Zmc2V0T2ZGdW5jdGlvblt0MV0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Y2FsbCBvZmZzZXRPZkZ1bmN0aW9uW3QxXQorICAgICAgICBlbmQKKyAgICAgICAgbG9hZHAgQ2Fs
bGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MworICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFz
aywgdDMKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fdm1bdDNdLCB0MworICAgICAgICBh
ZGRwIDgsIHNwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorCisgICAgYnRpbnog
Vk06Om1fZXhjZXB0aW9uW3QzXSwgLmhhbmRsZUV4Y2VwdGlvbgorCisgICAgZnVuY3Rpb25FcGls
b2d1ZSgpCisgICAgcmV0CisKKy5oYW5kbGVFeGNlcHRpb246CisgICAgc3RvcmVwIGNmciwgVk06
OnRvcENhbGxGcmFtZVt0M10KKyAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3Ry
YW1wb2xpbmUKK2VuZAorCisKIG1hY3JvIGdldENvbnN0YW50U2NvcGUoZHN0KQogICAgIGxvYWRw
RnJvbUluc3RydWN0aW9uKDYsIHQwKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbihkc3QsIHQx
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbQppbmRleCA5NzcxNDA5M2U4MzZkNzliYzY4YmVjOTIyZDgxN2EwZWY4YWU3YTE0
Li5lNWYwNzg1MjljYjc0NzQxYjQzMGQ2ZmY2MGZjNmE3NDYwNDhiNzEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpA
QCAtMjA3OCw2ICsyMDc4LDQ1IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFi
bGVPZmZzZXRUb0Z1bmN0aW9uKQogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhf
dHJhbXBvbGluZQogZW5kCiAKK21hY3JvIGludGVybmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShv
ZmZzZXRPZkZ1bmN0aW9uKQorICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQorICAgIHN0b3JlcCAwLCBD
b2RlQmxvY2tbY2ZyXQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAorICAgIGFuZHAgTWFya2Vk
QmxvY2tNYXNrLCB0MCwgdDEKKyAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV92bVt0MV0sIHQxCisg
ICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0MV0KKyAgICBpZiBBUk02NCBvciBDX0xP
T1AKKyAgICAgICAgc3RvcmVwIGxyLCBSZXR1cm5QQ1tjZnJdCisgICAgZW5kCisgICAgbW92ZSBj
ZnIsIGEwCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQxCisgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCisgICAgaWYgQ19MT09QCisgICAgICAgIGNsb29wQ2Fs
bE5hdGl2ZSBvZmZzZXRPZkZ1bmN0aW9uW3QxXQorICAgIGVsc2UKKyAgICAgICAgaWYgWDg2XzY0
X1dJTgorICAgICAgICAgICAgc3VicCAzMiwgc3AKKyAgICAgICAgZW5kCisgICAgICAgIGNhbGwg
b2Zmc2V0T2ZGdW5jdGlvblt0MV0KKyAgICAgICAgaWYgWDg2XzY0X1dJTgorICAgICAgICAgICAg
YWRkcCAzMiwgc3AKKyAgICAgICAgZW5kCisgICAgZW5kCisKKyAgICBsb2FkcCBDYWxsZWVbY2Zy
XSwgdDMKKyAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAgICBsb2FkcCBNYXJrZWRCbG9j
azo6bV92bVt0M10sIHQzCisKKyAgICBidHFueiBWTTo6bV9leGNlcHRpb25bdDNdLCAuaGFuZGxl
RXhjZXB0aW9uCisKKyAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICByZXQKKworLmhhbmRsZUV4
Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgIGptcCBf
bGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQorZW5kCisKIG1hY3JvIGdldENv
bnN0YW50U2NvcGUoZHN0KQogICAgIGxvYWRwRnJvbUluc3RydWN0aW9uKDYsIHQwKQogICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbihkc3QsIHQxKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAppbmRleCA4MjMzNjgzODQzMjE2YjMwYmY5
NzQyNmRhOTQ4ODAyMzYwYjljNTBjLi40ZDg5YWNhYjNiZDVjOTg5NTlkY2EyMDk5OGFlZDA3OGY4
MDQzNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmNwcApAQCAtNTAsOCArNTAsMTEgQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5Q29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW4K
IEBlbmQKICovCiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJh
eUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKik7CisKIEFycmF5
Q29uc3RydWN0b3I6OkFycmF5Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFs
RnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEFycmF5Q29uc3RydWN0b3IsIGNvbnN0cnVjdFdp
dGhBcnJheUNvbnN0cnVjdG9yKQogewogfQogCkBAIC0xMDAsMjUgKzEwMywxMiBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0QXJy
YXlXaXRoU2l6ZVF1aXJrKGV4ZWMsIGFyZ3MsIGV4ZWMtPm5ld1RhcmdldCgpKSk7CiB9CiAKLUNv
bnN0cnVjdFR5cGUgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENv
bnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxBcnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0
IGFyZ3MoZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheVdp
dGhTaXplUXVpcmsoZXhlYywgYXJncywgSlNWYWx1ZSgpKSk7CiB9CiAKLUNhbGxUeXBlIEFycmF5
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsK
LSAgICAvLyBlcXVpdmFsZW50IHRvICduZXcgQXJyYXkoLi4uLiknCi0gICAgY2FsbERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY2FsbEFycmF5Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBl
OjpIb3N0OwotfQotCiBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzQXJyYXlTbG93SW5saW5l
KEV4ZWNTdGF0ZSogZXhlYywgUHJveHlPYmplY3QqIHByb3h5KQogewogICAgIFZNJiB2bSA9IGV4
ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0
cnVjdG9yLmgKaW5kZXggMTU4NDg4NWQwY2RlNjA4NzI3ZGM1OGRkNmQ3MjBmYWM0M2FkOGMxMy4u
NjE2NTJhYTdmM2RjMzNjNWY4OWZhNjYxNTNhYjljM2MzOTVmOTVhOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaApAQCAtNDYsNyArNDYs
NyBAQCBjbGFzcyBBcnJheUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewog
CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQog
CiBwcm90ZWN0ZWQ6CkBAIC01NCw5ICs1NCw2IEBAIGNsYXNzIEFycmF5Q29uc3RydWN0b3IgOiBw
dWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgQXJyYXlDb25zdHJ1Y3Rv
cihWTSYsIFN0cnVjdHVyZSopOwotCi0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3Ry
dWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBKU1ZhbHVlIGNvbnN0cnVjdEFy
cmF5V2l0aFNpemVRdWlyayhFeGVjU3RhdGUqLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiwgSlNH
bG9iYWxPYmplY3QqLCBKU1ZhbHVlIGxlbmd0aCwgSlNWYWx1ZSBwcm90b3R5cGUgPSBKU1ZhbHVl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5j
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggNTI3MjhmOTQ5ZDkyYzNiZTJiNmE5YTk0Yjc0
OWM5YmEyNmFkZDNiYS4uZDBlOWJkNzRmYTE3ZTM4NTAyNDMzNzQzMDQ5MWEzMDVhOTIzNjRmZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNiwxOCArMzYsNiBAQCBTVEFUSUNfQVNTRVJUX0lT
X1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKTsKIAogY29u
c3QgQ2xhc3NJbmZvIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXN5bmNG
dW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKSB9OwogCi1Bc3luY0Z1bmN0aW9uQ29uc3Ry
dWN0b3I6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQotewotfQotCi12b2lk
IEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBBc3luY0Z1
bmN0aW9uUHJvdG90eXBlKiBwcm90b3R5cGUpCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0sICJBc3luY0Z1bmN0aW9uIik7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7Ci19Ci0KIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKQEAgLTYwLDE2ICs0OCwx
NiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBc3luY0Z1
bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y29uc3RydWN0RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVl
KCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpBc3lu
YykpOwogfQogCi1DYWxsVHlwZSBBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6OmdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6
QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisg
ICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxBc3luY0Z1bmN0aW9uQ29u
c3RydWN0b3IsIGNvbnN0cnVjdEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcikKIHsKLSAgICBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOwotICAg
IHJldHVybiBDYWxsVHlwZTo6SG9zdDsKIH0KIAotQ29uc3RydWN0VHlwZSBBc3luY0Z1bmN0aW9u
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29u
c3RydWN0RGF0YSkKK3ZvaWQgQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUqIHByb3RvdHlwZSkKIHsKLSAgICBjb25z
dHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEFzeW5jRnVuY3Rpb25Db25zdHJ1
Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKKyAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSwgIkFzeW5jRnVuY3Rpb24iKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCmluZGV4IDAzNWEyYzFlNGY5MTVjYWMwYjRi
MTc3M2U2ZDA1ODllMjc0NzQ3ZDQuLjAzZWZkYmEyZTAxOTc2ZGQ3MDMwMDk3Njg5NGI2M2E3Njc3
Yjk4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fz
eW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCkBAIC00NiwxNCArNDYsMTIgQEAgY2xhc3MgQXN5bmNG
dW5jdGlvbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFs
RnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRl
OgogICAgIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oVk0mLCBBc3luY0Z1bmN0aW9uUHJvdG90eXBlKik7Ci0gICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3IuY3BwCmluZGV4IGFhYTZhMWY0ZjdjY2U1MmQ5YzFhYjY3OGU5ZDkyNTc3ZDFiMGIzNmIuLmM1
MzQxOTA4ZTk1ZGNkMzIyMmYwZjhlZTY4YzQxYTcwMzQzNTVlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzYsMjAgKzM2LDYgQEAgU1RBVElDX0FTU0VSVF9J
U19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rv
cik7CiAKIGNvbnN0IENsYXNzSW5mbyBBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3RvcikgfTsKIAotQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpBc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBB
c3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
QXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSogcHJvdG90eXBlKQotewotICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtLCAiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiIpOwotICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHBy
b3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotCi0gICAgLy8gTnVt
YmVyIG9mIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0b3IKLSAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0K
LQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFzeW5jR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdz
KGV4ZWMpOwpAQCAtNjIsMTYgKzQ4LDE4IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihFCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFs
RnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzLCBGdW5jdGlv
bkNvbnN0cnVjdGlvbk1vZGU6OkFzeW5jR2VuZXJhdG9yKSk7CiB9CiAKLUNhbGxUeXBlIEFzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmIGNhbGxEYXRhKQorQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpBc3luY0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
KyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEFzeW5jR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3RvciwgY29uc3RydWN0QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxBc3luY0dlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwogfQog
Ci1Db25zdHJ1Y3RUeXBlIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQordm9pZCBB
c3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
QXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSogcHJvdG90eXBlKQogewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0QXN5bmNHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OworICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtLCAiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiIpOworICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHBy
b3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworCisgICAgLy8gTnVt
YmVyIG9mIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0b3IKKyAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCmlu
ZGV4IGI4ZjE1MGI1OWVlN2MzOTRiMWI4MTRjZTZlYWRiM2U0ZDc4NjBjNjEuLmJjNDRhYzZiNmEz
MDIwMzdkYzI2YTNlNzA0ZGM2NTgyNmMyNDg3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25z
dHJ1Y3Rvci5oCkBAIC00NiwxNCArNDYsMTIgQEAgY2xhc3MgQXN5bmNHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rp
b25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgogICAg
IEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBl
Kik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCmluZGV4IDY3YTAx
NWFiM2UxYTc4YTJhZDI2ODU3ODNhNjM4ZmVmY2JhYzcxOTEuLmYwYWIwNDI1M2U5MzM1MDFhYWFj
YmE4YjE2M2RjMzUzZjhjZTY2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcApAQCAtMzEsMTYgKzMxLDEwIEBAIFNUQVRJ
Q19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShCb29sZWFuQ29uc3RydWN0b3IpOwog
CiBjb25zdCBDbGFzc0luZm8gQm9vbGVhbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlv
biIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
Qm9vbGVhbkNvbnN0cnVjdG9yKSB9OwogCi1Cb29sZWFuQ29uc3RydWN0b3I6OkJvb2xlYW5Db25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5j
dGlvbih2bSwgc3RydWN0dXJlKQotewotfQotCi12b2lkIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBCb29sZWFuUHJvdG90eXBlKiBib29sZWFuUHJvdG90eXBlKQor
Ly8gRUNNQSAxNS42LjEKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxC
b29sZWFuQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtLCBib29sZWFuUHJvdG90eXBlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lKTsKLSAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90
eXBlLCBib29sZWFuUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7
Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxl
bmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oZXhlYy0+YXJndW1lbnQoMCkudG9Cb29sZWFuKGV4ZWMpKSk7CiB9CiAKIC8vIEVDTUEgMTUu
Ni4yCkBAIC01NiwyMiArNTAsMTYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGUKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iaik7CiB9CiAKLUNvbnN0cnVjdFR5cGUgQm9vbGVhbkNvbnN0
cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVj
dERhdGEpCitCb29sZWFuQ29uc3RydWN0b3I6OkJvb2xlYW5Db25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJl
LCBjYWxsQm9vbGVhbkNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoQm9vbGVhbkNvbnN0cnVjdG9y
KQogewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEJv
b2xlYW5Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKIH0KIAot
Ly8gRUNNQSAxNS42LjEKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxC
b29sZWFuQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQotewotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNCb29sZWFuKGV4ZWMtPmFyZ3VtZW50KDApLnRvQm9vbGVhbihleGVjKSkpOwot
fQotCi1DYWxsVHlwZSBCb29sZWFuQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJiBjYWxsRGF0YSkKK3ZvaWQgQm9vbGVhbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEJvb2xlYW5Qcm90b3R5cGUqIGJvb2xlYW5Qcm90b3R5cGUpCiB7Ci0gICAgY2Fs
bERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEJvb2xlYW5Db25zdHJ1Y3RvcjsKLSAgICByZXR1
cm4gQ2FsbFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGJvb2xlYW5Q
cm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOworICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGJvb2xlYW5Qcm90b3R5
cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwg
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KTsKIH0KIAogSlNPYmplY3QqIGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgaW1t
ZWRpYXRlQm9vbGVhblZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuQ29uc3RydWN0b3IuaAppbmRleCBiYjhjNWRmMmI1NGRjMDY4YjkzNDFlMWI3NzVk
NTE5MzMwZWI5YzkzLi4zNmVjYzlmNGRiYjE4MGU1NzkwODdiMjgxNmRjZjE3ZTg2ZDJlYjMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0
b3IuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBCb29sZWFuQ29uc3RydWN0b3IgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkgCiAgICAgeyAKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsgCiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01MCw4ICs1MCw2IEBAIGNs
YXNzIEJvb2xlYW5Db25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJp
dmF0ZToKICAgICBCb29sZWFuQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0
aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEm
KTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsK
IH07CiAKIEpTT2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCmluZGV4IGIyZjI5Y2ZkOWU3Nzkz
ZmE2M2U2MDllMzFhYjBlNDg5NTdjYTY3ZmQuLjY3OTk2NWNhYzVhYTI5MTQzNTI0ZGQzOTc2OGNi
OGQ3MmE4YjMyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnN0cnVjdG9yLmNwcApAQCAtNjgsOCArNjgsMTEgQEAgY29uc3QgQ2xhc3NJbmZvIERhdGVD
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19p
bmYKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKERhdGVDb25zdHJ1
Y3Rvcik7CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxEYXRlKEV4
ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aERhdGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogRGF0ZUNvbnN0cnVjdG9yOjpEYXRl
Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFs
RnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVj
dHVyZSwgY2FsbERhdGUsIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3IpCiB7CiB9CiAKQEAg
LTE1MywxMiArMTU2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0V2l0aERhdGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdERhdGUoZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMt
PmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgZXhlYy0+bmV3VGFyZ2V0KCksIGFyZ3MpKTsK
IH0KIAotQ29uc3RydWN0VHlwZSBEYXRlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlND
ZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRh
Lm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3I7Ci0gICAgcmV0
dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIC8vIEVDTUEgMTUuOS4yCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShFeGVjU3RhdGUqIGV4ZWMpCiB7CkBA
IC0xNjgsMTIgKzE2NSw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxEYXRlKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9u
dHJpdmlhbFN0cmluZygmdm0sIGZvcm1hdERhdGVUaW1lKHRzLCBEYXRlVGltZUZvcm1hdERhdGVB
bmRUaW1lLCBmYWxzZSkpKTsKIH0KIAotQ2FsbFR5cGUgRGF0ZUNvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY2FsbERhdGU7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQYXJzZShFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKaW5kZXggZmNlYTU1ZjhkZjZiMDAxYTA5MTljMDJjMmIw
YTI4MmE2ZjVhMGNjMy4uMzA3YzZkNTU0YjFiNDJhM2YwMGJjZGZkYTc2MmFiNDkxYTUwMjJkNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgK
QEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgRGF0ZUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Cisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01MSw4ICs1MSw2IEBAIGNsYXNzIERhdGVDb25z
dHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBEYXRl
Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIEpTT2JqZWN0KiBj
b25zdHJ1Y3REYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBuZXdUYXJn
ZXQsIGNvbnN0IEFyZ0xpc3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCmlu
ZGV4IDkwNjcxZDU3YTM0Y2NkNmIwYzg2ZTljZTc4MTE4NGU4NGE0MWYzYjYuLjRmYWVkMzc3YTBi
ZDJiMmI3MzRmZWE1YzM1MGQ0ODkyMzIzYjllNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3IuaApAQCAtMTA2LDcgKzEwNiw3IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1ZSB0aHJv
d1ZNRE9NQXR0cmlidXRlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFRocm93CiBj
bGFzcyBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
biB7CiBwcml2YXRlOgogICAgIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi0gICAgICAgIDogSW50
ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgICAgICA6IEludGVybmFsRnVuY3Rpb24o
dm0sIHN0cnVjdHVyZSwgY2FsbFRocm93VHlwZUVycm9yLCBjb25zdHJ1Y3RUaHJvd1R5cGVFcnJv
cikKICAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKICAgICB7CiAgICAgfQpAQCAtMTMxLDEy
ICsxMzEsNiBAQCBjbGFzcyBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24gOiBwdWJsaWMgSW50
ZXJuYWxGdW5jdGlvbiB7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkp
OwogICAgIH0KIAotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlND
ZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLSAgICB7Ci0gICAgICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0VGhyb3dUeXBlRXJyb3I7Ci0gICAg
ICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotICAgIH0KLQogICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxUaHJvd1R5cGVFcnJvcihFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgewogICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAtMTQ1LDE3ICsxMzks
MTEgQEAgY2xhc3MgU3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
IGNhbGxEYXRhKQotICAgIHsKLSAgICAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2Fs
bFRocm93VHlwZUVycm9yOwotICAgICAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci0gICAgfQot
CiAgICAgREVDTEFSRV9JTkZPOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7IAogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZGFhN2E5MDFlOTRj
MDFmODgyZmVhMDkyNTkzNjE0YmFiZmEyMjQzNi4uYjA0NGM4ZDI3MDdiMjMwZTE2ODU4ODI4OTQ2
YTg4YTk3MWI5OThmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgU1RBVElDX0FTU0VSVF9JU19U
UklWSUFMTFlfREVTVFJVQ1RJQkxFKEVycm9yQ29uc3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZv
IEVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShFcnJvckNvbnN0cnVjdG9yKSB9
OwogCiBFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIEludGVycHJldGVyOjpjYWxsRXJyb3JD
b25zdHJ1Y3RvciwgSW50ZXJwcmV0ZXI6OmNvbnN0cnVjdFdpdGhFcnJvckNvbnN0cnVjdG9yKQog
ewogfQogCkBAIC02MywxMiArNjMsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0KIAotQ29u
c3RydWN0VHlwZSBFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBJbnRlcnByZXRlcjo6Y29uc3RydWN0V2l0aEVycm9yQ29uc3RydWN0b3I7Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50ZXJwcmV0ZXI6OmNhbGxFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTc2LDEy
ICs3MCw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50ZXJwcmV0ZXI6OmNhbGxF
cnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwg
bnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUNhbGxUeXBlIEVycm9yQ29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBj
YWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBJbnRlcnByZXRlcjo6Y2FsbEVycm9yQ29uc3RydWN0
b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBib29sIEVycm9yQ29uc3RydWN0
b3I6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckNvbnN0cnVjdG9yLmgKaW5kZXggNjMwOTZiZDVjNDM3ODc3NzkzZjg2NTZjNTY5NzczOGY2
ZGQ5MjI0ZC4uYTBkZDFiMDVlNDkyZThlMGY5NmI1MTRhZTk1NDkwNGVkYTczYTRkZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaApAQCAt
NDIsNyArNDIsNyBAQCBjbGFzcyBFcnJvckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsg
Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7IAogICAgIH0KIAogICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHN0YWNrVHJhY2VMaW1p
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2tUcmFjZUxpbWl0OyB9CkBAIC01NSw4ICs1NSw2IEBA
IGNsYXNzIEVycm9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHBy
aXZhdGU6CiAgICAgRXJyb3JDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRp
YyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYp
OwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwog
CiAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbV9zdGFja1RyYWNlTGltaXQ7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9y
LmNwcAppbmRleCBmYTY3Y2Q1ZDUyM2MwZGM5OTMzODUzMGU0OTIwN2UxNWUxOTZkMDQ3Li5kODAz
NjE2NjhkNmJlYjJmNzkzYTM5OGVjNTcyNGIxMDkwYjIwOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzgs
NDEgKzM4LDI5IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShGdW5j
dGlvbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEZ1bmN0aW9uQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShGdW5jdGlvbkNvbnN0cnVjdG9yKSB9OwogCi1GdW5jdGlvbkNv
bnN0cnVjdG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCi17Ci19Ci0KLXZvaWQg
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBGdW5jdGlvblByb3Rv
dHlwZSogZnVuY3Rpb25Qcm90b3R5cGUpCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0s
IGZ1bmN0aW9uUHJvdG90eXBlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lKTsKLSAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBmdW5j
dGlvblByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpz
TnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pOwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RXaXRoRnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAg
QXJnTGlzdCBhcmdzKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0
RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9i
YWxPYmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpGdW5jdGlvbiwgZXhl
Yy0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBGdW5jdGlvbkNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEp
Ci17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoRnVu
Y3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQor
Ly8gRUNNQSAxNS4zLjEgVGhlIEZ1bmN0aW9uIENvbnN0cnVjdG9yIENhbGxlZCBhcyBhIEZ1bmN0
aW9uCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Db25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5h
bEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOwogfQog
Ci0vLyBFQ01BIDE1LjMuMSBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IgQ2FsbGVkIGFzIGEgRnVu
Y3Rpb24KLUNhbGxUeXBlIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJiBjYWxsRGF0YSkKK0Z1bmN0aW9uQ29uc3RydWN0b3I6OkZ1bmN0aW9uQ29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rp
b24odm0sIHN0cnVjdHVyZSwgY2FsbEZ1bmN0aW9uQ29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhG
dW5jdGlvbkNvbnN0cnVjdG9yKQoreworfQorCit2b2lkIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgRnVuY3Rpb25Qcm90b3R5cGUqIGZ1bmN0aW9uUHJvdG90eXBl
KQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxGdW5jdGlvbkNvbnN0cnVj
dG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSwgZnVuY3Rpb25Qcm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOworICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IGZ1bmN0aW9uUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7Cisg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0
aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSk7CiB9CiAKIC8vIEVDTUEgMTUuMy4yIFRoZSBGdW5jdGlvbiBDb25z
dHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25Db25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25D
b25zdHJ1Y3Rvci5oCmluZGV4IDEzYzM3ZmQ1MmYyM2Y3MmMyODk3N2M1MjIwMmViZmMzMDI3NzIw
MzQuLjdjZTNmNDg4NmRjMjM2YTk0YmQzNDUyZGQxYzBjZTMxNGVkZDhiNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAg
LTQ1LDE0ICs0NSwxMiBAQCBjbGFzcyBGdW5jdGlvbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAog
ICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7IAogICAgIH0KIAogcHJpdmF0ZToKICAgICBGdW5jdGlvbkNvbnN0cnVjdG9yKFZN
JiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEZ1bmN0aW9uUHJv
dG90eXBlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBlbnVtIGNsYXNzIEZ1bmN0aW9uQ29uc3RydWN0aW9u
TW9kZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
blByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5jcHAKaW5kZXggMThmOGI1ZWFkNTY0NDk2OGJlMjE1NzZjNjc1NjMyZDIxZTYwNTgy
Zi4uNDA4MGUzOTBmY2QwMGUwMTgzNjdhZTE0M2FkNDcwODZjNjRhYWU2MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcApAQCAt
NDMsOCArNDMsMTQgQEAgY29uc3QgQ2xhc3NJbmZvIEZ1bmN0aW9uUHJvdG90eXBlOjpzX2luZm8g
PSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIKIAogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUq
KTsKIAorLy8gRUNNQSAxNS4zLjQKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxGdW5jdGlvblByb3RvdHlwZShFeGVjU3RhdGUqKQoreworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKIEZ1bmN0aW9uUHJvdG90eXBlOjpGdW5jdGlv
blByb3RvdHlwZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxG
dW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0
dXJlLCBjYWxsRnVuY3Rpb25Qcm90b3R5cGUsIG51bGxwdHIpCiB7CiB9CiAKQEAgLTc3LDE4ICs4
Myw2IEBAIHZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6OmluaXRSZXN0cmljdGVkUHJvcGVydGllcyhF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0CiAgICAgcHV0RGlyZWN0QWNjZXNzb3IoZXhl
Yywgdm0ucHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLCBlcnJvckdldHRlclNldHRlciwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEZ1bmN0aW9uUHJvdG90
eXBlKEV4ZWNTdGF0ZSopCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKLX0KLQotLy8gRUNNQSAxNS4zLjQKLUNhbGxUeXBlIEZ1bmN0aW9uUHJvdG90eXBlOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY2FsbEZ1bmN0aW9uUHJvdG90eXBlOwotICAgIHJldHVybiBDYWxs
VHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblBy
b3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Q
cm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmgKaW5kZXggYmFmN2NjYjRiZDE5ZTc1MTlhOWRiMjM1NDI1MzMwZTIyZmI4YTQ1Zi4uOTM4
ODg3MDhmNDcxNDhhNmJjNzUxMTMxMWM3ZmY2MTE3ZDhlZDA1OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCkBAIC00MSw3ICs0MSw3
IEBAIGNsYXNzIEZ1bmN0aW9uUHJvdG90eXBlIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewog
CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykKICAgICB7Ci0gICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKEludGVybmFsRnVu
Y3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiAgICAgREVDTEFS
RV9JTkZPOwpAQCAtNTEsNyArNTEsNiBAQCBjbGFzcyBGdW5jdGlvblByb3RvdHlwZSA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBGdW5jdGlvblByb3RvdHlwZShW
TSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IGU1NGU2M2Y5MmIzZGQ4MmY3ZGJjMmE0ZDRlNTIxODA0OGVjNzdjN2Qu
LjM3NDNjNmExOWRmYWZkZTcyNmFjNTQ5Y2QxYjhkNGJmYWQxNjg2ZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9u
Q29uc3RydWN0b3IuY3BwCkBAIC0zNiwxOCArMzYsNiBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJ
QUxMWV9ERVNUUlVDVElCTEUoR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0
IENsYXNzSW5mbyBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJHZW5l
cmF0b3JGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcikgfTsKIAotR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0
dXJlKQotewotfQotCi12b2lkIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUqIGdlbmVyYXRvckZ1bmN0
aW9uUHJvdG90eXBlKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiR2VuZXJhdG9y
RnVuY3Rpb24iKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+cHJvdG90eXBlLCBnZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSwgUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotfQotCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsR2VuZXJhdG9yRnVuY3Rpb25Db25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwpAQCAt
NjAsMTYgKzQ4LDE2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhl
Yy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzLCBGdW5jdGlvbkNvbnN0cnVjdGlv
bk1vZGU6OkdlbmVyYXRvciwgZXhlYy0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotQ2FsbFR5cGUgR2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
IGNhbGxEYXRhKQorR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSW50ZXJu
YWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rv
ciwgY29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcikKIHsKLSAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAg
ICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7CiB9CiAKLUNvbnN0cnVjdFR5cGUgR2VuZXJhdG9yRnVu
Y3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
JiBjb25zdHJ1Y3REYXRhKQordm9pZCBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKiBnZW5lcmF0b3JG
dW5jdGlvblByb3RvdHlwZSkKIHsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNvbnN0cnVjdEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0
cnVjdFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sICJHZW5lcmF0b3JG
dW5jdGlvbiIpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wcm90b3R5cGUsIGdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCmluZGV4IGYyOGM3MWM3OGZlYzJl
NWRjZjBmNWVlNGYzZTViNmMyMmFkMGM3NTguLmY0NmQ4YzU5ZDU1NmUyMzExNDRiM2I2YmJiMDll
NmI4ZWNmMDFmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAgLTUyLDE0ICs1MiwxMiBA
QCBjbGFzcyBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CiAgICAgfQogCiBwcml2YXRlOgogICAgIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0m
LCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgR2VuZXJhdG9yRnVu
Y3Rpb25Qcm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApp
bmRleCAzZDNmZDFhYmMzNDMzYzViNDkxOWUwMWU0M2M1ZGU2NDA3ZDk3Yjc5Li5mMDNlM2NhNTFk
MDZmZjIzNDkwMzViMDAxNWM1YjU1ZjIzNDM2NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtMzQsMTggKzM0LDIxIEBA
IFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRlcm5hbEZ1bmN0aW9u
KTsKIAogY29uc3QgQ2xhc3NJbmZvIEludGVybmFsRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0
aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShJbnRlcm5hbEZ1bmN0aW9uKSB9OwogCi1JbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0
aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitJbnRlcm5hbEZ1bmN0aW9uOjpJbnRl
cm5hbEZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE5hdGl2ZUZ1bmN0aW9u
IGZ1bmN0aW9uRm9yQ2FsbCwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpCiAg
ICAgOiBKU0Rlc3RydWN0aWJsZU9iamVjdCh2bSwgc3RydWN0dXJlKQorICAgICwgbV9mdW5jdGlv
bkZvckNhbGwoZnVuY3Rpb25Gb3JDYWxsKQorICAgICwgbV9mdW5jdGlvbkZvckNvbnN0cnVjdChm
dW5jdGlvbkZvckNvbnN0cnVjdCA/IGZ1bmN0aW9uRm9yQ29uc3RydWN0IDogY2FsbEhvc3RGdW5j
dGlvbkFzQ29uc3RydWN0b3IpCiB7CiAgICAgLy8gZXhlYy0+dm0oKSB3YW50cyBjYWxsZWVzIHRv
IG5vdCBiZSBsYXJnZSBhbGxvY2F0aW9ucy4KICAgICBSRUxFQVNFX0FTU0VSVCghaXNMYXJnZUFs
bG9jYXRpb24oKSk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX2Z1bmN0aW9uRm9yQ2FsbCwg
IltbQ2FsbF1dIG11c3QgYmUgaW1wbGVtZW50ZWQiKTsKKyAgICBBU1NFUlQobV9mdW5jdGlvbkZv
ckNvbnN0cnVjdCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBjb25zdCBTdHJpbmcmIG5hbWUsIE5hbWVWaXNpYmlsaXR5IG5hbWVWaXNpYmlsaXR5
KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMo
dm0sIGluZm8oKSkpOwotICAgIEFTU0VSVChtZXRob2RUYWJsZSh2bSktPmdldENhbGxEYXRhICE9
IEludGVybmFsRnVuY3Rpb246OmluZm8oKS0+bWV0aG9kVGFibGUuZ2V0Q2FsbERhdGEpOwogICAg
IEpTU3RyaW5nKiBuYW1lU3RyaW5nID0ganNTdHJpbmcoJnZtLCBuYW1lKTsKICAgICBtX29yaWdp
bmFsTmFtZS5zZXQodm0sIHRoaXMsIG5hbWVTdHJpbmcpOwogICAgIGlmIChuYW1lVmlzaWJpbGl0
eSA9PSBOYW1lVmlzaWJpbGl0eTo6VmlzaWJsZSkKQEAgLTc4LDEwICs4MSwyMSBAQCBjb25zdCBT
dHJpbmcgSW50ZXJuYWxGdW5jdGlvbjo6ZGlzcGxheU5hbWUoVk0mIHZtKQogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KIAotQ2FsbFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmKQorQ2FsbFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q2FsbERhdGEo
SlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Ok5vbmU7CisgICAgYXV0byogZnVu
Y3Rpb24gPSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGNlbGwpOworICAgIEFTU0VSVChmdW5j
dGlvbi0+bV9mdW5jdGlvbkZvckNhbGwpOworICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGZ1bmN0aW9uLT5tX2Z1bmN0aW9uRm9yQ2FsbDsKKyAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
Cit9CisKK0NvbnN0cnVjdFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YShK
U0NlbGwqIGNlbGwsIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCit7CisgICAgYXV0byog
ZnVuY3Rpb24gPSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGNlbGwpOworICAgIGlmIChmdW5j
dGlvbi0+bV9mdW5jdGlvbkZvckNvbnN0cnVjdCA9PSBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1
Y3RvcikKKyAgICAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7CisgICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBmdW5jdGlvbi0+bV9mdW5jdGlvbkZvckNvbnN0cnVjdDsK
KyAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKIH0KIAogY29uc3QgU3RyaW5nIEludGVy
bmFsRnVuY3Rpb246OmNhbGN1bGF0ZWREaXNwbGF5TmFtZShWTSYgdm0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggM2E4ZjIyZWI4
OGUwZWJkYjg3ZDM0N2UzOTc0NmEyYmFjZDJmNTM5OC4uOTE3MGI4NGY5ZWU0NmYwYWYyZWMyZDZh
MmNiMTllYTRmODY3NzgwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGVybmFsRnVuY3Rpb24uaApAQCAtMjMsNiArMjMsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKICNpbmNsdWRlICJKU0Rlc3RydWN0
aWJsZU9iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTMwLDYgKzMxLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiBjbGFzcyBGdW5jdGlvblByb3RvdHlwZTsKIAogY2xhc3MgSW50ZXJuYWxGdW5j
dGlvbiA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CisgICAgZnJpZW5kIGNsYXNzIEpJ
VDsKKyAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogcHVibGljOgogICAg
IHR5cGVkZWYgSlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEltcGxlbWVudHNI
YXNJbnN0YW5jZSB8IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgfCBUeXBlT2ZTaG91bGRD
YWxsR2V0Q2FsbERhdGE7CkBAIC00NCwyMCArNDcsNDAgQEAgY2xhc3MgSW50ZXJuYWxGdW5jdGlv
biA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvKQogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dWJjbGFzc1N0cnVjdHVyZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG5ld1RhcmdldCwgU3RydWN0dXJl
Kik7CiAKKyAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbkZvcihDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQpCisgICAgeworICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkK
KyAgICAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uRm9yQ2FsbDsKKyAgICAgICAgQVNTRVJUKGtp
bmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7CisgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uRm9yQ29u
c3RydWN0OworICAgIH0KKworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOYXRpdmVGdW5j
dGlvbkZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgeworICAgICAgICBpZiAo
a2luZCA9PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
SW50ZXJuYWxGdW5jdGlvbiwgbV9mdW5jdGlvbkZvckNhbGwpOworICAgICAgICBBU1NFUlQoa2lu
ZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihJ
bnRlcm5hbEZ1bmN0aW9uLCBtX2Z1bmN0aW9uRm9yQ29uc3RydWN0KTsKKyAgICB9CisKIHByb3Rl
Y3RlZDoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBJbnRlcm5hbEZ1bmN0aW9uKFZNJiwgU3RydWN0
dXJlKik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgSW50ZXJuYWxGdW5jdGlvbihWTSYsIFN0cnVj
dHVyZSosIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ2FsbCwgTmF0aXZlRnVuY3Rpb24gZnVu
Y3Rpb25Gb3JDb25zdHJ1Y3QpOwogCiAgICAgZW51bSBjbGFzcyBOYW1lVmlzaWJpbGl0eSB7IFZp
c2libGUsIEFub255bW91cyB9OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBjb25zdCBTdHJpbmcmIG5hbWUsIE5hbWVWaXNpYmlsaXR5ID0gTmFtZVZpc2li
aWxpdHk6OlZpc2libGUpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmVTbG93KEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmV3VGFy
Z2V0LCBTdHJ1Y3R1cmUqKTsKIAorICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVj
dERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwogICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOworCisgICAgTmF0aXZlRnVuY3Rpb24gbV9mdW5j
dGlvbkZvckNhbGw7CisgICAgTmF0aXZlRnVuY3Rpb24gbV9mdW5jdGlvbkZvckNvbnN0cnVjdDsK
ICAgICBXcml0ZUJhcnJpZXI8SlNTdHJpbmc+IG1fb3JpZ2luYWxOYW1lOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IGQxYTE4NGYzYzE2MjI2NjhlNTFjNmM1NDU5YTk1NmI1Y2NkMWE1Mjcu
LjAzYjg3YjA2NTk3NDYwNmY5MzFiMWFhNDMwZTM2MjM5YmEwY2IyNWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTQ5LDYgKzQ5LDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc08KIAogbmFtZXNw
YWNlIEpTQyB7CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRs
Q29sbGF0b3IoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3IoRXhlY1N0YXRlKik7CisKIGNvbnN0IENsYXNzSW5mbyBJ
bnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxG
dW5jdGlvbjo6c19pbmZvLCAmY29sbGF0b3JDb25zdHJ1Y3RvclRhYmxlLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEludGxDb2xsYXRvckNvbnN0cnVjdG9yKSB9OwogCiAvKiBTb3VyY2Ug
Zm9yIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmx1dC5oCkBAIC02NiwxMSArNjksMTEgQEAgSW50
bENvbGxhdG9yQ29uc3RydWN0b3IqIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnUKIAogU3RydWN0dXJlKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CiB9CiAKIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpJbnRsQ29sbGF0
b3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJu
YWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3Ry
dWN0dXJlLCBjYWxsSW50bENvbGxhdG9yLCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3IpCiB7CiB9CiAK
QEAgLTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbEludGxDb2xsYXRvcihFeGVjU3RhdGUqIHN0YXRlKQogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoY29sbGF0b3IpOwogfQogCi1Db25zdHJ1Y3RUeXBlIEludGxDb2xsYXRvckNvbnN0cnVj
dG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERh
dGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RJbnRs
Q29sbGF0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBl
IEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYg
Y2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEludGxDb2xs
YXRvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09m
KEV4ZWNTdGF0ZSogc3RhdGUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0
b3IuaAppbmRleCBjZjM0NjhmYjEzMDUwZDE3MjZmZGMxZjNiZjdjMmIzZmRlOTFhMmMwLi4wZGI4
NmM3MmQ0ZmExOWVhZmY5MWI4YjFmMDEyZmFjNmU2ZGYyYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmgKQEAg
LTUxLDggKzUxLDYgQEAgY2xhc3MgSW50bENvbGxhdG9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50
ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgSW50bENvbGxhdG9yQ29uc3RydWN0b3Io
Vk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVu
KEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAgCiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gbV9jb2xsYXRvclN0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRl
eCA1MDEwZTE3NTY0MjY3MjYzZThhZGFmYjM4NWE4ZDhiYjM0OTg0NDhiLi41YWY4MmFiYTMxMjdl
NWRiNWVkYmE5ODk2YjczNjExMmU1NmFlZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3Iu
Y3BwCkBAIC02NiwxMSArNjYsMTQgQEAgSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IqIElu
dGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHIKIAogU3RydWN0
dXJlKiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0g
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQo
RXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RJbnRsRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRlKik7CisKIEludGxEYXRlVGltZUZvcm1hdENv
bnN0cnVjdG9yOjpJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAg
IDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsSW50bERhdGVUaW1lRm9ybWF0
LCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQpCiB7CiB9CiAKQEAgLTEyMywxOCArMTI2LDYg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxEYXRlVGltZUZv
cm1hdChFeGVjU3RhdGUqIHN0YXRlKQogICAgIH0pKTsKIH0KIAotQ29uc3RydWN0VHlwZSBJbnRs
RGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25z
dHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0OwotICAgIHJldHVybiBDb25zdHJ1
Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rv
cjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQ7Ci0gICAgcmV0dXJu
IENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxE
YXRlVGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihFeGVjU3RhdGUq
IHN0YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVj
dG9yLmgKaW5kZXggZjFiYTI2N2NiOTNmODc1ODE1ZTQ5YmYxNzliYTljYzU1M2YwNjlkMy4uOGU2
MTA2NTA4M2EwMjEwY2ZhZjNkMjUzMDhiYTM5YTk0ZGFlYmJjYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25z
dHJ1Y3Rvci5oCkBAIC01MSw4ICs1MSw2IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdENvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIEludGxE
YXRlVGltZUZvcm1hdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENv
bnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0g
ICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAg
c3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgIAog
ICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZGF0ZVRpbWVGb3JtYXRTdHJ1Y3R1cmU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJl
ckZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCAyZjZlYWRmYjhhYjU3MTZjZGQzNzJkNTkwYWMx
ZjliNTZiOWMzNzEzLi4yOTcyMTBjNmRlOGMxODVmZmViYzVmNjhhZTkzODhkY2JkMGQ1OTU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxO
dW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTY2LDExICs2NiwxNCBAQCBJbnRsTnVtYmVy
Rm9ybWF0Q29uc3RydWN0b3IqIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZN
JiB2bSwgU3RydWN0dQogCiBTdHJ1Y3R1cmUqIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxJbnRsTnVtYmVyRm9ybWF0KEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc3RydWN0SW50bE51bWJlckZvcm1hdChFeGVjU3RhdGUqKTsKKwogSW50
bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0
cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEludGxO
dW1iZXJGb3JtYXQsIGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQpCiB7CiB9CiAKQEAgLTEyMywx
OCArMTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxO
dW1iZXJGb3JtYXQoRXhlY1N0YXRlKiBzdGF0ZSkKICAgICB9KSk7CiB9CiAKLUNvbnN0cnVjdFR5
cGUgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCos
IENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RJbnRsTnVtYmVyRm9ybWF0OwotICAgIHJldHVybiBDb25z
dHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0
b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSW50bE51bWJlckZvcm1hdDsKLSAgICByZXR1cm4g
Q2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51
bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihFeGVjU3RhdGUqIHN0
YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaApp
bmRleCBkNzYyMTYxZGRhMjM5YmNiNWM5MTg5MmEwMjVjODU4ZDA0NDhkZmVhLi5lNDNkZWEzZWUy
MGM4OTcwODUwMWY2NWJhMDEzZTQyMDhkYjExOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaApA
QCAtNTEsOCArNTEsNiBAQCBjbGFzcyBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IgOiBwdWJs
aWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgSW50bE51bWJlckZvcm1hdENv
bnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxU
eXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGljIHZvaWQgdmlz
aXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgIAogICAgIFdyaXRlQmFycmll
cjxTdHJ1Y3R1cmU+IG1fbnVtYmVyRm9ybWF0U3RydWN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggZGJiMzczYzhmNTg1YTNjMWMwNjZjYzQzZWUyODgxMjdhNjBmMTAyYy4uYmYyZTkxN2Vm
YTEwOWNmZmY0ZmI5ZDNmOGE1ZTY2NTRmOGNhODhiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCkBA
IC00NCw4ICs0NCwxMSBAQCBjb25zdCBDbGFzc0luZm8gSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7CiAgICAgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0FycmF5QnVmZmVyQ29uc3Ry
dWN0b3IpCiB9OwogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJy
YXlCdWZmZXIoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihFeGVjU3RhdGUqKTsKKwogSlNBcnJheUJ1ZmZlckNvbnN0
cnVjdG9yOjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBzaGFyaW5nTW9kZSkKLSAgICA6IEJhc2Uodm0s
IHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEFycmF5QnVmZmVyLCBj
b25zdHJ1Y3RBcnJheUJ1ZmZlcikKICAgICAsIG1fc2hhcmluZ01vZGUoc2hhcmluZ01vZGUpCiB7
CiB9CkBAIC03Nyw3ICs4MCw3IEBAIFN0cnVjdHVyZSogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoCiAgICAgVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
Ci0gICAgICAgIHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEFycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTEyMSwxOSArMTI0LDYgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5QnVmZmVyKEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5u
b3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZXhlYywgc2NvcGUsICJBcnJheUJ1ZmZlciIp
KTsKIH0KIAotQ29uc3RydWN0VHlwZSBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEoCi0gICAgSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsK
LSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEFycmF5QnVmZmVy
OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBKU0FycmF5
QnVmZmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0
YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXJyYXlCdWZmZXI7Ci0g
ICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIC8v
IEVDTUEgMjQuMS4zLjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKaW5kZXggOWM3NTMyNDg4Njc5ZTIyMzMyZjVk
NDNhYjJlZDE5MjdmYTg3MTZiYy4uNzk0ZmY4Njg2MzM2YzIwODNhMjZjNTE4MTdhMjVlMDRmZGM5
OThkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1
ZmZlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKQEAgLTUwLDEwICs1MCw2IEBAIGNsYXNzIEpTQXJyYXlC
dWZmZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICAKICAgICBB
cnJheUJ1ZmZlclNoYXJpbmdNb2RlIHNoYXJpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9zaGFy
aW5nTW9kZTsgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBl
IGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0KIHByaXZhdGU6CiAgICAgQXJyYXlC
dWZmZXJTaGFyaW5nTW9kZSBtX3NoYXJpbmdNb2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
Q29uc3RydWN0b3IuaAppbmRleCAzZjE4ZTBlZmM2MjgyNTllMzc3NjNiMjlmN2NmZTVkODJjNWJi
OGViLi43YjZkZmQ0NGMxYjYzODgwNmQ1ZWFkOGMyMGFlYjU3NmUxNmNiZDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCkBAIC01NywxMCArNTcsNiBAQCBjbGFzcyBKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogI2VuZGlmCiAgICAgCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci0KLXByb3RlY3RlZDoKLSAg
ICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGlu
ZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggY2IyNDY5NzlmNjFiOGYwMGFkZTdmZmVhY2I0
NmU1ZDRhNzUwNGVjNi4uNDU1ZDI0Y2M5M2Y1MTBmY2ExODM2MWZmMDc1ZWI0NDhlYTIwNWMzNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC0z
OCw4ICszOCwxNCBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdD
bGFzcz4KK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxHZW5lcmljVHlw
ZWRBcnJheVZpZXcoRXhlY1N0YXRlKik7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4K
K0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlW
aWV3KEV4ZWNTdGF0ZSopOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBKU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJh
c2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEdlbmVyaWNU
eXBlZEFycmF5VmlldzxWaWV3Q2xhc3M+LCBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXc8
Vmlld0NsYXNzPikKIHsKIH0KIApAQCAtNzMsNyArNzksNyBAQCBTdHJ1Y3R1cmUqIEpTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8Vmlld0NsYXNzPjo6Y3JlYXRlU3RydWN0dXJlKAog
ICAgIFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpCiB7CiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKAotICAgICAgICB2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKKyAgICAgICAgdm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJ
bnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CkBAIC0xOTUsOSArMjAxLDYgQEAgaW5saW5lIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKEV4ZWNTdGF0
ZSogZXhlYywgU3QKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXcoRXhlY1N0
YXRlKik7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAtMjQ1LDEzICsyNDgsNiBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5VmlldyhF
eGVjU3RhdGUqIGV4ZWMpCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUNvbnN0
cnVjdFR5cGUgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+Ojpn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17
Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RHZW5lcmljVHlw
ZWRBcnJheVZpZXc8Vmlld0NsYXNzPjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsK
LX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMp
CiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTI1OSwxMSArMjU1LDQgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyaWNUeXBlZEFycmF5VmlldyhF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVj
dG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBWaWV3Q2xh
c3M6OmluZm8oKS0+Y2xhc3NOYW1lKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFz
cz4KLUNhbGxUeXBlIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8Vmlld0NsYXNz
Pjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNz
PjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IGQyMTYxMTE3NjFhNDA2NWFjYTkzMWM0ZThmY2VkNWRmZDRkMDczNDku
LjAxMmIxMTlkY2VmNzU5ZWMyOGU1MzdiMTdiNDRmNzNiYTQzNTBjOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5jcHAK
QEAgLTcwLDExICs3MCwxNSBAQCBKU1Byb21pc2VDb25zdHJ1Y3RvciogSlNQcm9taXNlQ29uc3Ry
dWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLAogCiBTdHJ1Y3R1cmUq
IEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5j
dGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAorCitzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUHJvbWlzZShFeGVjU3RhdGUqKTsKK3N0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb21pc2UoRXhlY1N0YXRlKik7
CisKIEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpKU1Byb21pc2VDb25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFz
ZSh2bSwgc3RydWN0dXJlLCBjYWxsUHJvbWlzZSwgY29uc3RydWN0UHJvbWlzZSkKIHsKIH0KIApA
QCAtMTE4LDIwICsxMjIsNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsUHJvbWlzZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGV4ZWMsIHNj
b3BlLCAiUHJvbWlzZSIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBKU1Byb21pc2VDb25zdHJ1Y3Rv
cjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRh
KQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0UHJvbWlz
ZTsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgSlNQcm9t
aXNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
LXsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyB3b3JrYXJvdW5kLiBTaW5jZSBKU0MgZG9lcyBub3Qg
ZXhwb3NlIEBpc0NvbnN0cnVjdG9yIHRvIEpTIGJ1aWx0aW5zLAotICAgIC8vIHdlIHVzZSB0eXBl
b2YgZnVuY3Rpb24gPT09ICJmdW5jdGlvbiIgbm93LiBBbmQgc2luY2UgdHlwZW9mIGNvbnN0cnVj
dG9yV2l0aG91dENhbGxhYmlsaXR5Ci0gICAgLy8gcmV0dXJucyAib2JqZWN0Iiwgd2UgbmVlZCB0
byBkZWZpbmUgW1tDYWxsXV0gZm9yIG5vdy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDkzCi0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y2FsbFByb21pc2U7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
bWlzZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21p
c2VDb25zdHJ1Y3Rvci5oCmluZGV4IDBiZWNhMDRlMjBhMzI3MDY5ODUxNzJiMzNkNzYwZTJmMzU4
MTdiNmUuLmE4NDlhZDc0MWFhODk3NDJlZWRiMGEwYzA3NjZkMTNlZWNjMzU5NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3Iu
aApAQCAtNDgsOSArNDgsNiBAQCBjbGFzcyBKU1Byb21pc2VDb25zdHJ1Y3RvciA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNQcm9taXNl
UHJvdG90eXBlKiwgR2V0dGVyU2V0dGVyKik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0KICAgICB2
b2lkIGFkZE93bkludGVybmFsU2xvdHMoVk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCBjMDE3MDIzNGUyODZhYjc3MDg5
ZThhZjE4MjFlNzQwNjQzMzFhZjJlLi44NTM1NmQzOTc3YWVkNWM3M2I4OWFmZjA1Yzk3YzI0MmY5
NWJiNGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaApAQCAtNTksNiAr
NTksNyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3QgewogICAgIEZpbmFsT2JqZWN0VHlwZSwKICAg
ICBKU0NhbGxlZVR5cGUsCiAgICAgSlNGdW5jdGlvblR5cGUsCisgICAgSW50ZXJuYWxGdW5jdGlv
blR5cGUsCiAgICAgTnVtYmVyT2JqZWN0VHlwZSwKICAgICBFcnJvckluc3RhbmNlVHlwZSwKICAg
ICBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3BwCmluZGV4
IDdiNDZlNjQ0ZjE4N2QxNGZiZTc2OTRjMzA4NjNiNjIyOWY3YjRlZDUuLjJjODA1ZjVlNGQ2ZjIy
YjI3OGY4ODQ3MTg2YzkwYTA5ZWQxZDQ2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcApA
QCAtMzcsOCArMzcsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSopOwor
CiBKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OkpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rv
cihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjb25zdHJ1Y3RUeXBlZEFycmF5VmlldywgY29u
c3RydWN0VHlwZWRBcnJheVZpZXcpCiB7CiB9CiAKQEAgLTU4LDcgKzYwLDcgQEAgdm9pZCBKU1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE8KIFN0cnVjdHVyZSogSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUoCiAgICAgVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKIH0KIAogCkBAIC03MCwxNiArNzIsNCBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0
ZXJhbCgiJVR5cGVkQXJyYXklIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IikpOwogfQog
Ci1Db25zdHJ1Y3RUeXBlIEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0VHlwZWRBcnJheVZpZXc7Ci0gICAg
cmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIEpTVHlwZWRBcnJheVZp
ZXdDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQot
ewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3
OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3Rvci5oCmluZGV4IGQ3ODE3ZTI1ZjFlMTI5ZjUyMzU2ODI5Yjg5MDUwN2Nl
YzcwMDg1ZTIuLjQxNDVjY2NlNThjZWNlZTcxYzg5MTE0Zjc2NWM3MjJmMzk1MjFlZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3Rvci5oCkBAIC01MSw5ICs1MSw2IEBAIGNsYXNzIEpTVHlwZWRBcnJheVZp
ZXdDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBERUNMQVJFX0lO
Rk87CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2Jh
bE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlKTsKLXByb3RlY3RlZDoKLSAgICBzdGF0aWMgQ29u
c3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAg
ICAgCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hcENvbnN0cnVjdG9yLmNwcAppbmRleCBiMGQ0OWI1ZDViYjUwODM0OTlhYjQzN2U4NzIx
NjhkNGRjMmZkNjlkLi43OWY4NDc5ZGQyZmU3MzM0NjgzZTUwNmU2Y2U4YzJkN2VhOThmMmFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3Bw
CkBAIC00Nyw2ICs0NywxNCBAQCB2b2lkIE1hcENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIE1hcFByb3RvdHlwZSogbWFwUHJvdG90eXBlLCBHZXR0ZXJTZQogICAgIHB1dERpcmVj
dE5vbkluZGV4QWNjZXNzb3Iodm0sIHZtLnByb3BlcnR5TmFtZXMtPnNwZWNpZXNTeW1ib2wsIHNw
ZWNpZXNTeW1ib2wsIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKK3N0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxNYXAoRXhlY1N0YXRlKik7CitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RNYXAoRXhlY1N0YXRlKik7
CisKK01hcENvbnN0cnVjdG9yOjpNYXBDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsTWFwLCBjb25zdHJ1Y3RNYXAp
Cit7Cit9CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxNYXAoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC0xMTIsMTggKzEy
MCw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE1hcChF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShtYXApOwogfQogCi1D
b25zdHJ1Y3RUeXBlIE1hcENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjb25zdHJ1Y3RNYXA7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7
Ci19Ci0KLUNhbGxUeXBlIE1hcENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE1h
cDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRIZWFkKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBBU1NFUlQoaXNKU01hcChleGVjLT5hcmd1bWVudCgwKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmgKaW5kZXggYzQ4YTM1YWQwNTI4YTFm
ODM3OGVmMDRmODMzMmUxZTUwNTE5ODUzOS4uNjQ1NzFjNzUxZDY1MDk2MDZlNGE4MjcwY2Q3ZjUx
OTY5YjlkMzVjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFw
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25z
dHJ1Y3Rvci5oCkBAIC00NywxNyArNDcsMTMgQEAgY2xhc3MgTWFwQ29uc3RydWN0b3IgOiBwdWJs
aWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTWFwQ29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUp
Ci0gICAgewotICAgIH0KKyAgICBNYXBDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOworCiAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIE1hcFByb3RvdHlwZSosIEdldHRlclNldHRlciog
c3BlY2llc1N5bWJvbCk7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZChFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggNTdmYzFjNGFmNTA4ZDAwYjZiZGNlM2UxZTJlZDU2MGJmZTYxZWQ3OS4uNWZkM2E2
Nzc2N2YwMTMwYmVjYjNhNjZjODY5YWU3ZGMyMmE3OGI0NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAg
LTM1LDcgKzM1LDcgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKE5h
dGl2ZUVycm9yQ29uc3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZvIE5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShOYXRpdmVFcnJvckNvbnN0cnVj
dG9yKSB9OwogCiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9y
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZt
LCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIEludGVy
cHJldGVyOjpjYWxsTmF0aXZlRXJyb3JDb25zdHJ1Y3RvciwgSW50ZXJwcmV0ZXI6OmNvbnN0cnVj
dFdpdGhOYXRpdmVFcnJvckNvbnN0cnVjdG9yKQogewogfQogCkBAIC03MywxMiArNzMsNiBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoTmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcihFeAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBU
eXBlTm90aGluZywgZmFsc2UpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBOYXRpdmVFcnJvckNvbnN0
cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVj
dERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBJbnRlcnByZXRl
cjo6Y29uc3RydWN0V2l0aE5hdGl2ZUVycm9yQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0
cnVjdFR5cGU6Okhvc3Q7Ci19Ci0gICAgCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGVycHJldGVyOjpjYWxsTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC04NiwxMCArODAs
NCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpjYWxsTmF0aXZl
RXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShF
cnJvckluc3RhbmNlOjpjcmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxw
dHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQogCi1DYWxsVHlwZSBOYXRpdmVFcnJvckNvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAg
Y2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gSW50ZXJwcmV0ZXI6OmNhbGxOYXRpdmVFcnJvckNv
bnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVF
cnJvckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVF
cnJvckNvbnN0cnVjdG9yLmgKaW5kZXggMTZlNzcyZDdkNmUxM2RmZTFlYzRlYWZmNjJmMDQ5MmYw
NGQ3NmU4NS4uZDJiODA5NzIzMmViNGM1MTA4NGRkYjFiZTI4YWNjNDZjMGFhMjhlNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBOYXRpdmVFcnJvckNvbnN0cnVjdG9yIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVy
ZSgpIHsgcmV0dXJuIG1fZXJyb3JTdHJ1Y3R1cmUuZ2V0KCk7IH0KQEAgLTU0LDggKzU0LDYgQEAg
Y2xhc3MgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsK
IAogcHJpdmF0ZToKICAgICBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7
Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25z
dHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90Vmlz
aXRvciYpOwogCiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9lcnJvclN0cnVjdHVyZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rp
b24uY3BwCmluZGV4IGJhNDZiMzAyYzgyYTQyYjdiZjZkZGQ4OGYwNDZkZTQ4NWQ4NjAxZTIuLmE1
NmNhYjNmYWU3OWVlOTQ1ZTY5NzY2MjRhMTY0YjViMThkOGY0YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmNwcApAQCAtNDAs
MTUgKzQwLDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJldHVy
blVuZGVmaW5lZChFeGVjU3RhdGUqKQogfQogfQogCi1DYWxsVHlwZSBOdWxsR2V0dGVyRnVuY3Rp
b246OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK051bGxHZXR0ZXJG
dW5jdGlvbjo6TnVsbEdldHRlckZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIE51bGxHZXR0ZXJGdW5jdGlvbkludGVybmFsOjpj
YWxsUmV0dXJuVW5kZWZpbmVkLCBudWxscHRyKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IE51bGxHZXR0ZXJGdW5jdGlvbkludGVybmFsOjpjYWxsUmV0dXJuVW5kZWZpbmVkOwot
ICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQotQ29uc3RydWN0VHlwZSBOdWxsR2V0dGVy
RnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpCi17Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmgKaW5kZXggNjMzOTc3Mzcy
YjMxOTE0NzdiOTRhNzkzZjgxZTIxZWJkYzgwOGZhNS4uMWYzMDdkN2MwODE1YjMwZmMyMGY5OWEz
YzZlY2E1Y2EzZTQxMzE5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVsbEdldHRlckZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVsbEdldHRlckZ1bmN0aW9uLmgKQEAgLTQ0LDE2ICs0NCwxMSBAQCBjbGFzcyBOdWxsR2V0
dGVyRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlv
blR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
TnVsbEdldHRlckZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9Ci0gICAgc3RhdGljIENvbnN0cnVj
dFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3Rh
dGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CisgICAgTnVsbEdl
dHRlckZ1bmN0aW9uKFZNJiwgU3RydWN0dXJlKik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rp
b24uY3BwCmluZGV4IDZhZjBkMWE4NWRmMjBmZjA4MWE5ODdjZmRkZGE2N2Q1MWFiNmUwZTYuLmNk
ZDExMmViYmYxZWI1YTU5MThjOTY1NzMxN2NkN2RiZGE3NDZjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcApAQCAtODIs
MTUgKzgyLDkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJldHVy
blVuZGVmaW5lZChFeGVjU3RhdGUqIGV4ZWMpCiB9CiB9CiAKLUNhbGxUeXBlIE51bGxTZXR0ZXJG
dW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQorTnVsbFNl
dHRlckZ1bmN0aW9uOjpOdWxsU2V0dGVyRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgTnVsbFNldHRlckZ1bmN0aW9uSW50ZXJu
YWw6OmNhbGxSZXR1cm5VbmRlZmluZWQsIG51bGxwdHIpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gTnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OmNhbGxSZXR1cm5VbmRlZmlu
ZWQ7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCi1Db25zdHJ1Y3RUeXBlIE51bGxT
ZXR0ZXJGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJikK
LXsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6Tm9uZTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uaAppbmRleCA3YzRk
OTY0MGY5ZjU5MDlhMDhjNThmZTBlZTlhNTI3NmExYmZmOWNlLi4wNTE1MDNkZTNmODg2YWFmY2Ni
OGU4YTk4YTBjMzIyM2M2NTc5YWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uaApAQCAtNDQsMTYgKzQ0LDExIEBAIGNsYXNzIE51
bGxTZXR0ZXJGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1
bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBOdWxsU2V0dGVyRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAg
ICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KLSAgICBzdGF0aWMgQ29u
c3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKKyAgICBO
dWxsU2V0dGVyRnVuY3Rpb24oVk0mLCBTdHJ1Y3R1cmUqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IGIzMTE0MjcwYTQzYTJjODY2OTdkNTM1ZGM2MmQ4OTIzNjNkMjI0OGQu
LmUzY2MxZWI4ODZlMmNiZGUzZjFjZTM2NzQxZGE5NWRkMzI1ZTczYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTUz
LDggKzUzLDExIEBAIGNvbnN0IENsYXNzSW5mbyBOdW1iZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiBAZW5kCiAqLwogCitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0
YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3ROdW1i
ZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogTnVtYmVyQ29uc3RydWN0b3I6Ok51bWJlckNv
bnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1
cmUsIGNhbGxOdW1iZXJDb25zdHJ1Y3RvciwgY29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3IpCiB7
CiB9CiAKQEAgLTgwLDcgKzgzLDcgQEAgdm9pZCBOdW1iZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBOdW1iZXJQcm90b3R5cGUqIG51bWJlclByb3RvdHlwZSkKIH0KIAogLy8g
RUNNQSAxNS43LjEKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dFdpdGhOdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05NCwyNCArOTcsMTIgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE51bWJlckNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iamVjdCk7CiB9CiAKLUNvbnN0
cnVjdFR5cGUgTnVtYmVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29u
c3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29u
c3RydWN0VHlwZTo6SG9zdDsKLX0KLQogLy8gRUNNQSAxNS43LjIKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxOdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMp
CiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcighZXhlYy0+YXJndW1lbnRD
b3VudCgpID8gMCA6IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvTnVtYmVyKGV4ZWMpKSk7
CiB9CiAKLUNhbGxUeXBlIE51bWJlckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2Fs
bE51bWJlckNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogLy8g
RUNNQS0yNjIgMjAuMS4yLjMKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51
bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50ZWdlcihFeGVjU3RhdGUqIGV4ZWMpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAppbmRleCA1
MWU0ZmEzMDQ5YjNkNGEzMWVjZDRiNDg3NDcyYjcxODA0NTBiZWM4Li4xMGY1OGEyNWVjZGY2Mzgw
ZWRlNTY5YjRiZGUxZDkyNzQ5ZmQ1ZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgTnVt
YmVyQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01MSw4
ICs1MSw2IEBAIGNsYXNzIE51bWJlckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogCiBwcml2YXRlOgogICAgIE51bWJlckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7
Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25z
dHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCBmNjcwYmQzMjQw
MDc2NGYzOWE2MWYzNDRkNDhjYTZiZDM2ODhjZWIwLi41M2RiOTI2MTNjZTUwYTIyMGM5OTRiOTY0
ZTFkMjU2YmRhNzk0OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC05MCw4ICs5MCwxMiBAQCBjb25zdCBDbGFzc0lu
Zm8gT2JqZWN0Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVu
Y3Rpb246OnNfaQogQGVuZAogKi8KIAorCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0
YXRlKik7CisKIE9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJl
KQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsT2JqZWN0Q29uc3Ry
dWN0b3IsIGNvbnN0cnVjdFdpdGhPYmplY3RDb25zdHJ1Y3RvcikKIHsKIH0KIApAQCAtMTQzLDIz
ICsxNDcsMTEgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNvbnN0cnVjdE9iamVjdChleGVjLCBleGVjLT5uZXdUYXJnZXQoKSkpOwogfQogCi1D
b25zdHJ1Y3RUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCos
IENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJu
IENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RPYmplY3QoZXhlYywgSlNWYWx1ZSgpKSk7CiB9
CiAKLUNhbGxUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE9i
amVjdENvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggMTBmOTJk
MmM5MmMwMTRkMWYwMjllZGZlN2E1Mzk3ZWMzMzE3YTE3Ni4uM2JkMDMwYWZkZWRhZGJjNzczNmU2
N2ExNjA4OGU2NmI1OTI4NjRmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIE9iamVjdENv
bnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25U
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01
OCw4ICs1OCw2IEBAIGNsYXNzIE9iamVjdENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogCiBwcml2YXRlOgogICAgIE9iamVjdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJl
Kik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJik7CiB9OwogCiBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEVtcHR5T2JqZWN0
KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCmluZGV4IDFmM2M0MjZm
YzgwY2FhZmQ4YjM2YWIzZDAyYWYxOTM5Zjc5NjgzOGQuLjU4ZTEyNDI2YTQyYjUxNjExZTgzMjE1
OGU1MzAxNjhhYmEzN2RmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCkBAIC00OCw4ICs0OCwxMSBAQCBQcm94eUNvbnN0cnVj
dG9yKiBQcm94eUNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICByZXR1cm4gY29uc3RydWN0b3I7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxQcm94eShFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb3h5T2JqZWN0KEV4ZWNTdGF0ZSopOworCiBQcm94
eUNvbnN0cnVjdG9yOjpQcm94eUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUs
IGNhbGxQcm94eSwgY29uc3RydWN0UHJveHlPYmplY3QpCiB7CiB9CiAKQEAgLTEwMywyMiArMTA2
LDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb3h5
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFByb3h5
T2JqZWN0OjpjcmVhdGUoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCB0YXJnZXQs
IGhhbmRsZXIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBQcm94eUNvbnN0cnVjdG9yOjpnZXRDb25z
dHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAg
Y29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RQcm94eU9iamVjdDsKLSAg
ICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbFByb3h5KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRShleGVjLT52bSgpKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJy
b3IoZXhlYywgc2NvcGUsICJQcm94eSIpKTsKIH0KIAotQ2FsbFR5cGUgUHJveHlDb25zdHJ1Y3Rv
cjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxQcm94eTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5oCmluZGV4IDQ4ZjUzYzgyYjNmZDY5ZTNmNDE5Y2I3
ZWVkNzdhNTE5N2MyOTg2NjIuLmJhYzYwZDI0MzJhMmE2NjYxMjIzMmE4OWVhODAwNzk0MDNjNWRj
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3Ry
dWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVj
dG9yLmgKQEAgLTQwLDE1ICs0MCwxMyBAQCBjbGFzcyBQcm94eUNvbnN0cnVjdG9yIDogcHVibGlj
IEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7IAogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBj
b25zdCBjaGFyKiBuYW1lLCBKU0dsb2JhbE9iamVjdCopOwogCiBwcml2YXRlOgogICAgIFByb3h5
Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBnZXRHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3h5UmV2b2tlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3h5UmV2b2tlLmNwcAppbmRleCBhNWZjYTc4ZDNlODNjNWFmNThlOWU1MzA5OGQzNWQ4ZjhlYjkx
N2FmLi5mODc1ZjY1ZDQ1MTM5NDk3MDY0ZDkzNmE5NzRhNzlkZjYwOGVlYTRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuY3BwCkBAIC00Miw4ICs0Miwx
MCBAQCBQcm94eVJldm9rZSogUHJveHlSZXZva2U6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBQcm94eU9iamVjdCogcHJveAogICAgIHJldHVybiByZXZva2U7CiB9CiAKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHBlcmZvcm1Qcm94eVJldm9rZShFeGVj
U3RhdGUqKTsKKwogUHJveHlSZXZva2U6OlByb3h5UmV2b2tlKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1
Y3R1cmUsIHBlcmZvcm1Qcm94eVJldm9rZSwgbnVsbHB0cikKIHsKIH0KIApAQCAtNjksMTIgKzcx
LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcGVyZm9ybVByb3h5UmV2
b2tlKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1DYWxsVHlwZSBQcm94eVJldm9rZTo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IHBl
cmZvcm1Qcm94eVJldm9rZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIHZvaWQg
UHJveHlSZXZva2U6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKIHsKICAgICBQcm94eVJldm9rZSogdGhpc09iamVjdCA9IGpzQ2FzdDxQcm94eVJldm9r
ZSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlSZXZva2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmgK
aW5kZXggZTAyOGE3ZGE2YmYyZDM1Y2IwZmQzZGYzYjIyMzQ5ZTRiM2NkZWU3OS4uMTI2ODc2ZWY2
ZjNiZTE2NWNjZDZjYjViNDFmODNhNGFmNjNhM2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm94eVJldm9rZS5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFByb3h5UmV2
b2tlIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSog
Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90b3R5cGUpIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBjb25zdCBjaGFyKiBuYW1lLCBQcm94eU9iamVjdCopOwpAQCAtNTIsNyArNTIs
NiBAQCBjbGFzcyBQcm94eVJldm9rZSA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJp
dmF0ZToKICAgICBQcm94eVJldm9rZShWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDYWxs
VHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgV3JpdGVCYXJyaWVy
PFVua25vd24+IG1fcHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IDFjNjdkYzVlMDNhYTMyYWE2YWQ2ZWYx
MDg2ZTBiN2MyZjI2ZGE3MjYuLjBmNTJhYTI0YWIzZTRmZmFlZmE1MTUzYzdiZjlmMzJhNjBjODcw
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5jcHAKQEAgLTc2LDggKzc2LDEyIEBAIGNvbnN0IENsYXNzSW5mbyBSZWdFeHBDb25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiBA
ZW5kCiAqLwogCisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSZWdF
eHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogUmVn
RXhwQ29uc3RydWN0b3I6OlJlZ0V4cENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIFJlZ0V4cFByb3RvdHlwZSogcmVnRXhwUHJvdG90eXBlKQotICAgIDogSW50ZXJuYWxG
dW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0
dXJlLCBjYWxsUmVnRXhwQ29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3Rv
cikKICAgICAsIG1fY2FjaGVkUmVzdWx0KHZtLCB0aGlzLCByZWdFeHBQcm90b3R5cGUtPmVtcHR5
UmVnRXhwKCkpCiAgICAgLCBtX211bHRpbGluZShmYWxzZSkKIHsKQEAgLTMxMCwyMiArMzE0LDEw
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhSZWdF
eHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
b25zdHJ1Y3RSZWdFeHAoZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkp
LT5nbG9iYWxPYmplY3QoKSwgYXJncywgZXhlYy0+anNDYWxsZWUoKSwgZXhlYy0+bmV3VGFyZ2V0
KCkpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9y
OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCiBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGNvbnN0cnVjdFJlZ0V4cChleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUo
KSktPmdsb2JhbE9iamVjdCgpLCBhcmdzLCBleGVjLT5qc0NhbGxlZSgpKSk7CiB9CiAKLUNhbGxU
eXBlIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2Fs
bERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFJlZ0V4cENvbnN0
cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuaAppbmRleCA2ZDc0NjI3OTMzMTYzZTM1ZjUwYTNhYjg4ODYzNzY2MjQ0MTQ1MWRkLi5kYTc2
MGVjMDRmMGE3ODI3YWE2NTdjY2RiNjc5MjhjMWQ2ZWUwYTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgY2xhc3MgUmVnRXhwQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
SW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAK
ICAgICBERUNMQVJFX0lORk87CkBAIC03NCw4ICs3NCw2IEBAIGNsYXNzIFJlZ0V4cENvbnN0cnVj
dG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHJpdmF0ZToKICAgICBSZWdFeHBDb25z
dHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSosIFJlZ0V4cFByb3RvdHlwZSopOwogICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDZWxsKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3Ry
dWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICBSZWdFeHBDYWNoZWRSZXN1bHQg
bV9jYWNoZWRSZXN1bHQ7CiAgICAgYm9vbCBtX211bHRpbGluZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcAppbmRleCA3ODQzNzVhMjM5NDAx
NzQzMGZjYmJkODY5ZmI1ZjZkZDg3Zjc1NDA3Li5hNWM2YzE3MzhlOTI5MjEzMzZiNzRmYzkwNmE3
OTAxYjhkMzlkYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
ZXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0
Q29uc3RydWN0b3IuY3BwCkBAIC00Nyw2ICs0NywxNCBAQCB2b2lkIFNldENvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIFNldFByb3RvdHlwZSogc2V0UHJvdG90eXBlLCBHZXR0ZXJT
ZQogICAgIHB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIHZtLnByb3BlcnR5TmFtZXMtPnNw
ZWNpZXNTeW1ib2wsIHNwZWNpZXNTeW1ib2wsIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8
IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTZXQoRXhl
Y1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RT
ZXQoRXhlY1N0YXRlKik7CisKK1NldENvbnN0cnVjdG9yOjpTZXRDb25zdHJ1Y3RvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsU2V0
LCBjb25zdHJ1Y3RTZXQpCit7Cit9CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxTZXQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CkBAIC05OCwxOCArMTA2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0U2V0KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHNldCk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgU2V0Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERh
dGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1
Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFNldDsKLSAgICByZXR1cm4gQ29uc3Ry
dWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgU2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVu
Y3Rpb24gPSBjYWxsU2V0OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEhlYWQoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEFTU0VSVChpc0pTU2V0KGV4ZWMtPmFyZ3VtZW50KDApKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuaAppbmRleCA0
NWYwMTMwNjUwMmY2OTcyMjBkNTQ1YjQ3MTBiMGM2NTAxZjY3ODQyLi5kZDRhNGQxOGI2Yzg5Yjdl
YzhlOTE2ZTM5NmNhNzlhOGM1Yjg4NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NldENvbnN0cnVjdG9yLmgKQEAgLTQ3LDE3ICs0NywxMiBAQCBjbGFzcyBTZXRDb25z
dHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTZXRD
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQorICAgIFNldENvbnN0cnVjdG9yKFZNJiwgU3Ry
dWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFNldFByb3RvdHlwZSosIEdl
dHRlclNldHRlciogc3BlY2llc1N5bWJvbCk7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxU
eXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVGdW5jU2V0QnVja2V0SGVhZChFeGVjU3RhdGUqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
LmNwcAppbmRleCAzNzk5NmE4MjEzYmFlMjVlOTVlMTgxMjk5ZWZkMTk0MTA5ZDg1ZTU5Li4xMDY5
ZWZlNmQwYTJjYmE1MWI5ODE4ZjJjYjI3ZGNiODVjZjhmMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC01Miw4ICs1
MiwxMiBAQCBjb25zdCBDbGFzc0luZm8gU3RyaW5nQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJ
QUxMWV9ERVNUUlVDVElCTEUoU3RyaW5nQ29uc3RydWN0b3IpOwogCisKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogU3RyaW5nQ29uc3RydWN0b3I6OlN0cmluZ0NvbnN0
cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0
aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUs
IGNhbGxTdHJpbmdDb25zdHJ1Y3RvciwgY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKQog
ewogfQogCkBAIC0xMzQsMTIgKzEzOCw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShTdHJpbmdPYmplY3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJl
LCBzdHIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3Ry
dWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNv
bnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVj
dG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCiBKU0NlbGwqIHN0cmlu
Z0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBhcmd1bWVudCkKIHsKICAgICBp
ZiAoYXJndW1lbnQuaXNTeW1ib2woKSkKQEAgLTE1NCwxMCArMTUyLDQgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHN0cmluZ0NvbnN0cnVjdG9yKGV4ZWMs
IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKSk7CiB9CiAKLUNhbGxUeXBlIFN0cmluZ0NvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAg
Y2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFN0cmluZ0NvbnN0cnVjdG9yOwotICAgIHJl
dHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAppbmRleCAxYmQx
ZTIxMjY0OTZiYzVkOGU5NWQ2NTk4YjlmZTUyNmE2M2RkYmIxLi45OWFhZmU4MDg4MWI1YzcxMmY0
NmVlMjY5OGQwZTZjZTAyZmE2ZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKQEAgLTQzLDE0ICs0MywxMiBAQCBjbGFzcyBTdHJp
bmdDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0
aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAg
ICBTdHJpbmdDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBTdHJpbmdQcm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIEpTQ2VsbCogSlND
X0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ2hhckNvZGUoRXhlY1N0YXRlKiwgaW50MzJfdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggYTc2MWY0MTU5ODFlZmMyYzFmYjdlNDhmZDI1ODBmMmFkZmVjNzdkMC4uYjUxNTI1OTIx
MWM0MjA1NDc1ZDAwZjM0YmJjMzBmNTU3ZDkyMWFjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmNwcApAQCAtNTYsOCArNTYsMTAg
QEAgY29uc3QgQ2xhc3NJbmZvIFN5bWJvbENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlv
biIsICZCYXNlOjpzX2luZm8sICZzeW1ib2wKIEBlbmQKICovCiAKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTeW1ib2woRXhlY1N0YXRlKik7CisKIFN5bWJvbENvbnN0
cnVjdG9yOjpTeW1ib2xDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQot
ICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5j
dGlvbih2bSwgc3RydWN0dXJlLCBjYWxsU3ltYm9sLCBudWxscHRyKQogewogfQogCkBAIC04Mywx
NyArODUsNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3ltYm9s
KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFN5bWJvbDo6Y3Jl
YXRlKGV4ZWMsIGRlc2NyaXB0aW9uLnRvU3RyaW5nKGV4ZWMpKSk7CiB9CiAKLUNvbnN0cnVjdFR5
cGUgU3ltYm9sQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0
RGF0YSYpCi17Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7Ci19Ci0KLUNhbGxUeXBl
IFN5bWJvbENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERh
dGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFN5bWJvbDsKLSAgICBy
ZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
c3ltYm9sQ29uc3RydWN0b3JGb3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4
ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1i
b2xDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29u
c3RydWN0b3IuaAppbmRleCA1OGMzNTE4ZTQ3ZDkzMTIwNDZjYmU2MGVhMzhmZjBlNzAwNGMxNDY4
Li41YmQwNTk0NzgyN2MzMjYxMzQzYmI4YzlkYmUyOWI1NWNhN2Y5ZDY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmgKQEAgLTQ5LDcg
KzQ5LDcgQEAgY2xhc3MgU3ltYm9sQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
biB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAg
ICB9CiAKIHByb3RlY3RlZDoKQEAgLTU3LDggKzU3LDYgQEAgY2xhc3MgU3ltYm9sQ29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgU3ltYm9sQ29u
c3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRD
b25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IGRjZDRlOTQ1YWE5NWFh
ZmRmNTFhM2QwZWRlMGJmODEzZjQ1NTYwOGYuLmQyMjFkNGQxYWQ5ZjdkM2IzMGRiYjk0ZmI0ODNj
ZWVmNTY1NGY2ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTM1Miw2
ICszNTIsMTAgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAg
ICAgICB3YXRjaGRvZy5zZXRUaW1lTGltaXQodGltZW91dE1pbGxpcyk7CiAgICAgfQogCisgICAg
Ly8gTWFrZSBzdXJlIHRoYXQgYW55IHN0dWJzIHRoYXQgdGhlIEpJVCBpcyBnb2luZyB0byB1c2Ug
YXJlIGluaXRpYWxpemVkIGluIG5vbi1jb21waWxhdGlvbiB0aHJlYWRzLgorICAgIGdldENUSUlu
dGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKENvZGVGb3JDYWxsKTsKKyAgICBnZXRDVElJbnRl
cm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihDb2RlRm9yQ29uc3RydWN0KTsKKwogICAgIFZNSW5z
cGVjdG9yOjppbnN0YW5jZSgpLmFkZCh0aGlzKTsKIH0KIApAQCAtNTc5LDYgKzU4MywxOSBAQCBO
YXRpdmVFeGVjdXRhYmxlKiBWTTo6Z2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0
aW9uLCBJbnRyaW5zaWMgaW50cmlucwogICAgICAgICBOb0ludHJpbnNpYywgc2lnbmF0dXJlLCBu
YW1lKTsKIH0KIAorTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIFZNOjpnZXRDVElJbnRlcm5hbEZ1bmN0
aW9uVHJhbXBvbGluZUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCit7CisjaWYgRU5B
QkxFKEpJVCkKKyAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAgcmV0dXJuIGpp
dFN0dWJzLT5jdGlJbnRlcm5hbEZ1bmN0aW9uQ2FsbCh0aGlzKTsKKyAgICByZXR1cm4gaml0U3R1
YnMtPmN0aUludGVybmFsRnVuY3Rpb25Db25zdHJ1Y3QodGhpcyk7CisjZWxzZQorICAgIGlmIChr
aW5kID09IENvZGVGb3JDYWxsKQorICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
OjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY2FsbF90cmFtcG9s
aW5lKTsKKyAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQ
dHIobGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY29uc3RydWN0X3RyYW1wb2xpbmUpOworI2VuZGlm
Cit9CisKIFZNOjpDbGllbnREYXRhOjp+Q2xpZW50RGF0YSgpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uaAppbmRleCAyZjc5OTY4ODAxMzcxMTkwNzkwYjQ4OTkxYWYzMDM4ODA1ZTI0
ZDI5Li5hNTVlY2Y1ZGM1OTQ4MDhjYjQzYTMxMTgwYTQ5NjRmZTQ1ZmI1ODlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiQ2FsbERhdGEuaCIKKyNpbmNsdWRlICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgi
CiAjaW5jbHVkZSAiQ29uY3VycmVudEpTTG9jay5oIgogI2luY2x1ZGUgIkNvbnRyb2xGbG93UHJv
ZmlsZXIuaCIKICNpbmNsdWRlICJEYXRlSW5zdGFuY2VDYWNoZS5oIgpAQCAtNDg5LDYgKzQ5MCw4
IEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERv
dWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAgTmF0aXZlRXhlY3V0YWJsZSogZ2V0SG9zdEZ1
bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvciwgY29uc3Qg
U3RyaW5nJiBuYW1lKTsKICAgICBOYXRpdmVFeGVjdXRhYmxlKiBnZXRIb3N0RnVuY3Rpb24oTmF0
aXZlRnVuY3Rpb24sIEludHJpbnNpYywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IsIGNvbnN0
IERPTUpJVDo6U2lnbmF0dXJlKiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAorICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBnZXRDVElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kKTsKKwogICAgIHN0YXRpYyBwdHJkaWZmX3QgZXhjZXB0aW9uT2Zmc2V0
KCkKICAgICB7CiAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoVk0sIG1fZXhjZXB0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IGJiMGUwNjg1MWM2MDEwODIwZTg2ZTgxMWVjYTU2YzNjYzI5MzI3M2Qu
LjYyM2I2MjYxODFmYTE1ZTkyYjY4MTNhOTNkZjMwZDk0YmYzNzI1NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcApAQCAt
NDUsNiArNDUsMTQgQEAgdm9pZCBXZWFrTWFwQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgV2Vha01hcFByb3RvdHlwZSogcHJvdG90eXBlKQogICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwog
fQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vha01hcChFeGVj
U3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdl
YWtNYXAoRXhlY1N0YXRlKik7CisKK1dlYWtNYXBDb25zdHJ1Y3Rvcjo6V2Vha01hcENvbnN0cnVj
dG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUsIGNhbGxXZWFrTWFwLCBjb25zdHJ1Y3RXZWFrTWFwKQoreworfQorCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vha01hcChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTk3LDE2ICsxMDUsNCBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXZWFrTWFwKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHdlYWtNYXApOwogfQogCi1Db25zdHJ1Y3RUeXBl
IFdlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY29uc3RydWN0V2Vha01hcDsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0K
LQotQ2FsbFR5cGUgV2Vha01hcENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFdl
YWtNYXA7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5oCmluZGV4IDU5ZjJj
YWFkZTBjYTM1N2MyYWEwMDI3MzYzNDZhYTczMDVmZTk2MDYuLmM5M2U0MTI1MWVjNjBhOTA4YjNk
Y2JjMmFmMTYyNWYxMTFmZGMxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5oCkBAIC00NywxNyArNDcsMTIgQEAgY2xhc3MgV2Vh
a01hcENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVu
Y3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIFdlYWtNYXBDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
ICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQorICAgIFdlYWtNYXBDb25z
dHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBX
ZWFrTWFwUHJvdG90eXBlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3Iu
Y3BwCmluZGV4IDA4NmJiY2FkOGJiYjM1NjEyYWI0OGI1M2I2MTgxNDUyYzI0MWEwMWQuLjY2YmM3
NTI3Y2EyY2I4ZDg2ZTEzOTJlZWU1YzFhZDljYThlMjcyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcApAQCAtNDUsNiAr
NDUsMTQgQEAgdm9pZCBXZWFrU2V0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
V2Vha1NldFByb3RvdHlwZSogcHJvdG90eXBlKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCitz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vha1NldChFeGVjU3RhdGUq
KTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtTZXQo
RXhlY1N0YXRlKik7CisKK1dlYWtTZXRDb25zdHJ1Y3Rvcjo6V2Vha1NldENvbnN0cnVjdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxXZWFrU2V0LCBjb25zdHJ1Y3RXZWFrU2V0KQoreworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vha1NldChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKQEAgLTgzLDE2ICs5MSw0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtTZXQoRXhlY1N0YXRlKiBleGVjKQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUod2Vha1NldCk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2Vha1Nl
dENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNv
bnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25z
dHJ1Y3RXZWFrU2V0OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxs
VHlwZSBXZWFrU2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBj
YWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsV2Vha1NldDsK
LSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmgKaW5kZXggNjkzYzEwYmY4ZGI0
ZWYwZWNkMGM0N2I0NDAwYmJkNzY3N2ZiYmMwZS4uNWU2ZmI4MjhmMTczYjNhNGMwMzVjMmIwNGZm
M2FkNTczMzgxN2ZlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha1NldENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha1NldENvbnN0cnVjdG9yLmgKQEAgLTQ3LDE3ICs0NywxMiBAQCBjbGFzcyBXZWFrU2V0Q29u
c3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgV2Vh
a1NldENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9CisgICAgV2Vha1NldENvbnN0cnVjdG9y
KFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFdlYWtTZXRQ
cm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA5ODJkZjdmNDA4YzE3ZWYyOTdlYjUz
ZGJlODg5NzY5YjcyYmIxYzhiLi5hYzRkOGZjYzBhNGFiNDA5Mjc5ZGJmZTZhODA3NDc4OTNlNmM3
MTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNzAsNyAr
NzAsNyBAQCBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUNv
bXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVgogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1
bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiB2b2lkIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSkKQEAgLTgxLDIyICs4MSwxMCBA
QCB2b2lkIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgV2ViQXNzZW1ibHlDb21waQogfQogCiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNv
bnN0cnVjdG9yOjpXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCBjb25zdHJ1Y3RK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKQogewogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29u
c3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I7Ci0gICAgcmV0dXJu
IENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
LXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseUNvbXBp
bGVFcnJvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJy
b3JDb25zdHJ1Y3Rvci5oCmluZGV4IDM0YTBlNzhjMDQ2NDY3MDlkNmYyZTVjYTc2ODcyMTFmN2E5
NzI0NzcuLjViNzViYzgxMDQyNjU2NDZmNTE4NjU2ZWY1NTczM2NhYzEzNmFjNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQ5LDggKzQ5LDYgQEAgY2xhc3MgV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9u
IHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yKFZN
JiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCmluZGV4IDJmZGQ1YTQ2MTc5ZTc4YTU2ZmM5Mzc4N2Fm
MWI4Y2Y5Mzg5ZjY5ZDAuLjkwOTIxMzA3ZjMzNTJmODA4ZTRhMjRhODVkZDUwMTk4NDUwODI0N2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5z
dGFuY2VDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIFdl
YkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVj
dG9yOjpjcmVhdGUoVk0mIHZtLCBTCiAKIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAogdm9pZCBXZWJBc3NlbWJseUluc3RhbmNlQ29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlJbnN0YW5jZVByb3Rv
dHlwZSogcHJvdG90eXBlKQpAQCAtMTEyLDIyICsxMTIsMTAgQEAgdm9pZCBXZWJBc3NlbWJseUlu
c3RhbmNlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlJbnN0
YW5jZVAKIH0KIAogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUlu
c3RhbmNlQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJh
c2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZSwgY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlKQogewogfQogCi1D
b25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNl
OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3Nl
bWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBj
YWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3Nl
bWJseUluc3RhbmNlOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VD
b25zdHJ1Y3Rvci5oCmluZGV4IDZkOWVkM2MwMGI3M2FkNjg3ZGE2OWFhYjNkOGU3MzkwMzhkOTI2
MDMuLmEyMWQ5MWFjM2IyMzNiNzk5Mzg3ZTFhYjYwNGMzOGYyOWE3MTY0ZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5z
dGFuY2VDb25zdHJ1Y3Rvci5oCkBAIC01Myw4ICs1Myw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5SW5z
dGFuY2VDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToK
ICAgICBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAg
ICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVj
dG9yLmNwcAppbmRleCBiMTdkNThhYmU2NjU4MmZhYWQ3YWRjYTc2NjE1NzIyYmQyNGEzZWU2Li5h
ZjA5MTdhYWI0ZGM2OWYxNjFiNDIyYWVhOTgyNmU5ZDExYTI5Mjk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtF
cnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNzAsNyArNzAsNyBAQCBXZWJBc3NlbWJseUxpbmtFcnJv
ckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0m
IHZtLAogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOwogfQogCiB2b2lkIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUqIHByb3RvdHlw
ZSkKQEAgLTgxLDIyICs4MSwxMCBAQCB2b2lkIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlMaW5rRXJybwogfQogCiBXZWJB
c3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVj
dG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9y
LCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yKQogewogfQogCi1Db25zdHJ1Y3RUeXBl
IFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxs
KiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I7Ci0gICAgcmV0
dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdlYkFzc2VtYmx5TGlua0Vy
cm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
LXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseUxpbmtF
cnJvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpT
QwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1
Y3Rvci5oCmluZGV4IGM3MDBjNjMzMDE0ZmJmYWFmYTBhYmI5MzJjZDcwZTliOWZlOTMwOTUuLmUy
OTEyOTdiZGFlY2FkNzFlMjRlMTI3NzIwZmVjNDViMjg3NDgxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJv
ckNvbnN0cnVjdG9yLmgKQEAgLTQ5LDggKzQ5LDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlMaW5rRXJy
b3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAg
ICBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAg
c3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggZDA0MzVhZjFmZGZlNTYzMGQ5MjJiNjdkZGI2YTg0ZDcxZjQ5ZDhkMS4uYzU1Njk4YzEx
OTdjMDBjZGJjNGNlNDI1YzhlMzFkMmFlNzczYzQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yKiBX
ZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1YwogCiBTdHJ1
Y3R1cmUqIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogewot
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiB2
b2lkIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
V2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUqIHByb3RvdHlwZSkKQEAgLTEzOCwyMiArMTM4LDEw
IEBAIHZvaWQgV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBXZWJBc3NlbWJseU1lbW9yeVByb3RvCiB9CiAKIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3Ry
dWN0b3I6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlNZW1vcnksIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNZW1v
cnkpCiB7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQot
ewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SlNXZWJBc3Nl
bWJseU1lbW9yeTsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5
cGUgV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxK
U1dlYkFzc2VtYmx5TWVtb3J5OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0
cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9y
eUNvbnN0cnVjdG9yLmgKaW5kZXggMjA2MWUyNDhmMzM5NWI2N2QyYzJlNGIxOGNlNDJiOTY4MjIx
ZWM1Yy4uZWE2NDYwYjFiYzcxYmEyODk0NWU3MmU5NTk0YzZjZmM5M2JkZTExNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1
Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVt
b3J5Q29uc3RydWN0b3IuaApAQCAtNDksOCArNDksNiBAQCBjbGFzcyBXZWJBc3NlbWJseU1lbW9y
eUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAg
IFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0
aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEm
KTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAppbmRl
eCA3NWI1YjYyYzM4YTIzZDQ5NzViNWMwOThhNzU1NjcyMjZlNzcwZjNhLi5mYTMxYzU5MzE5ODMx
ZWE1NWRmNTFjMjc0ZWQ0NDM0ZDI3YjQ2YWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNw
cApAQCAtMTk4LDcgKzE5OCw3IEBAIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IqIFdlYkFz
c2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjCiAKIFN0cnVjdHVy
ZSogV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKElu
dGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQg
V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJB
c3NlbWJseU1vZHVsZVByb3RvdHlwZSogcHJvdG90eXBlKQpAQCAtMjA5LDIyICsyMDksMTAgQEAg
dm9pZCBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IFdlYkFzc2VtYmx5TW9kdWxlUHJvdG8KIH0KIAogV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
cjo6V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
LCBjYWxsSlNXZWJBc3NlbWJseU1vZHVsZSwgY29uc3RydWN0SlNXZWJBc3NlbWJseU1vZHVsZSkK
IHsKIH0KIAotQ29uc3RydWN0VHlwZSBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0g
ICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5
TW9kdWxlOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBX
ZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2Vi
QXNzZW1ibHlNb2R1bGU7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5h
bWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29u
c3RydWN0b3IuaAppbmRleCAxM2FjYTNmOTBlYWQzN2NhNTRkYjVhOWRjYjRlYTM0ZWMyNThiZWRl
Li5mNzRiNjY2NWViNGEwYjA1MDY3YTkwZjAyMTkzNmJlM2NlMTFmNjdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVD
b25zdHJ1Y3Rvci5oCkBAIC01NCw4ICs1NCw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5TW9kdWxlQ29u
c3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2Vi
QXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBD
b25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwot
ICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDY0NWY5Njc1ZDcxYmJkMTVhMDYyOGU3ODkzNWFiZWZkMjg2MjlmN2IuLmRhYmM3
ZTA5YzkzZjI0NDU3NTI3NjkwMzUxYWMyMDU5MDg1NDRkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC04MSwyMiArODEsMTAgQEAgdm9pZCBXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2Vt
Ymx5UnVudGkKIH0KIAogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6V2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBj
YWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgY29uc3RydWN0SlNXZWJBc3NlbWJseVJ1bnRp
bWVFcnJvcikKIHsKIH0KIAotQ29uc3RydWN0VHlwZSBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNv
bnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0
cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1
Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpI
b3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I7Ci0gICAgcmV0
dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaApp
bmRleCA3N2ZiNmU0NWFlY2M4NjAzNTdlNDgxYWQ4YzJmNTViOGZiZGQ4ZTkyLi45NGFlNmI5YTVm
MWNlYzU3NzY5OGZjMDMzYWI0MGY4MmUzMzMwMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JD
b25zdHJ1Y3Rvci5oCkBAIC00OSw4ICs0OSw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5UnVudGltZUVy
cm9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAg
ICAgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwot
ICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3Ry
dWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNw
cAppbmRleCAyYzViYzcwMmY3MTBmMzViYTQyMzU3Y2ZkNDlhMTk1ZmFjYTAyMjViLi41ODQ0Yzll
YTA4M2E2YzIyOTcxNjNjYzY3OGJlM2E0NTg2N2QzZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IqIFdl
YkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dQogCiBTdHJ1
Y3R1cmUqIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0g
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZv
aWQgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdl
YkFzc2VtYmx5VGFibGVQcm90b3R5cGUqIHByb3RvdHlwZSkKQEAgLTEyOCwyMiArMTI4LDEwIEBA
IHZvaWQgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IFdlYkFzc2VtYmx5VGFibGVQcm90b3R5CiB9CiAKIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rv
cjo6V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUs
IGNhbGxKU1dlYkFzc2VtYmx5VGFibGUsIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZSkKIHsK
IH0KIAotQ29uc3RydWN0VHlwZSBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBj
b25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJs
ZTsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2Fs
bERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNzZW1i
bHlUYWJsZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3Iu
aAppbmRleCA1YWRlYmIzNzYxNzFjMzRlYzM3YmM5ZDIwZTE3YjNiNmQ0NWU5MTUxLi4zNjQ2OGQw
YjNlZGQzYTBiOGUwY2E2ZWRiYTIwYmMwYzEyNjliYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3Iu
aApAQCAtNDksOCArNDksNiBAQCBjbGFzcyBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IgOiBw
dWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlUYWJs
ZUNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUg
Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENh
bGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCmluZGV4IDkx
MGE3MDJiYTljZWJiMmFlYWJmZTgzZTM0MWM3YmI5MTlmYTMxMDEuLjI1NWQ4NDE1Y2IzMmJkN2Nm
OGVhZjY5MmIxYzVkNjcxMTFhMTU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmNwcApAQCAtNDEsOSArNDEsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEJpbmRpbmdzOwog
CiBXRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gUnVudGltZU1ldGhvZDo6c19pbmZvID0g
eyAiUnVudGltZU1ldGhvZCIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVudGltZU1ldGhvZCkgfTsKIAorc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKik7
CisKIFJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE1ldGhvZCogbWV0aG9kKQogICAgIC8vIENhbGxl
cnMgd2lsbCBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgY29ycmVzcG9u
ZGluZyB0byB0aGlzIG5hdGl2ZSBvYmplY3QgIm1ldGhvZCIuCi0gICAgOiBJbnRlcm5hbEZ1bmN0
aW9uKGdsb2JhbE9iamVjdC0+dm0oKSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlv
bihnbG9iYWxPYmplY3QtPnZtKCksIHN0cnVjdHVyZSwgY2FsbFJ1bnRpbWVNZXRob2QsIG51bGxw
dHIpCiAgICAgLCBtX21ldGhvZChtZXRob2QpCiB7CiB9CkBAIC0xMTAsMTAgKzExMiw0IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSdW50aW1lTWV0aG9kKEV4ZWNT
dGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUNh
bGxUeXBlIFJ1bnRpbWVNZXRob2Q6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
RGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsUnVudGltZU1ldGhv
ZDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfbWV0aG9kLmgKaW5kZXggN2MyNzVhY2MwZTNlMTIyZDRkNmM3ZmJiNGU1MTZkYzM1
OGYzZGQ2Zi4uNGRmNDM1NTBiNmU0NzRjMjFhYmJjMmE3OTgxZjdlYTBiMmQ0NmIzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKQEAgLTU2LDEzICs1NiwxMiBAQCBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lTWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgUnVudGltZU1ldGhvZChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSosIEJpbmRpbmdzOjpNZXRob2QqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwg
Y29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJik7CiAKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmpl
Y3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9k
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRo
b2QuY3BwCmluZGV4IDY2ZjUwYzMzMTFiM2MzOTM4YmIzMGM3NDk2ZjU2NTFjZTljZTJhNmIuLmU1
NjA4OGY3MzIxOGE0YmM3ZjA5MDc4NjllNmRkZWYxZWE3YzAxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3Bw
CkBAIC00NSw4ICs0NSwxMCBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElC
TEUoSlNOUE1ldGhvZCk7CiAKIGNvbnN0IENsYXNzSW5mbyBKU05QTWV0aG9kOjpzX2luZm8gPSB7
ICJOUE1ldGhvZCIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNOUE1ldGhvZCkgfTsKIAorc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1ldGhvZChFeGVjU3RhdGUqKTsKKwogSlNOUE1ldGhvZDo6
SlNOUE1ldGhvZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgTlBJZGVudGlmaWVyIG5wSWRlbnRpZmllcikKLSAgICA6IEludGVybmFsRnVuY3Rpb24o
Z2xvYmFsT2JqZWN0LT52bSgpLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGds
b2JhbE9iamVjdC0+dm0oKSwgc3RydWN0dXJlLCBjYWxsTWV0aG9kLCBudWxscHRyKQogICAgICwg
bV9ucElkZW50aWZpZXIobnBJZGVudGlmaWVyKQogewogfQpAQCAtODQsMTIgKzg2LDYgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogfQogCi1DYWxs
VHlwZSBKU05QTWV0aG9kOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEp
Ci17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE1ldGhvZDsKLSAgICByZXR1
cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKaW5kZXggYWNlN2YyZGQy
ZTJiMjIzZDhlMGQ3ZDEwNDk3OTg3MGE1MDBhOTRkZi4uNWMyODRjOTAxOGI4ZTA1NWYwMDA3ODk5
MTUzZDIxMGUzNmUxYjAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaApAQCAtNjIsMTEgKzYyLDkgQEAgY2xhc3Mg
SlNOUE1ldGhvZCA6IHB1YmxpYyBKU0M6OkludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGlj
IEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6SW50ZXJuYWxGdW5jdGlvblR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgSlNDOjpD
YWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q2FsbERhdGEmKTsKLSAgICAK
ICAgICBOUElkZW50aWZpZXIgbV9ucElkZW50aWZpZXI7CiB9OwogCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc2NGJjZDNmZjRmYzRjZTZk
MjlhMmQwYzY3MDE5MTRhYWQxNDUzZGIuLmQ0Zjg4OTM0NTgxZjk4Y2FkYzhkMGUxNTU4OTlmOTNl
MjAyNGE1MmUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91
bGQgY2FjaGUgY2FsbHMgdG8gb2JqZWN0cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERh
dGEgdHJhcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0NDQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzOiBBZGRlZC4K
KyAgICAgICAgKHRhcmdldCk6CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5h
bC1mdW5jdGlvbi1jb25zdHJ1Y3QuanM6IEFkZGVkLgorICAgICAgICAodGFyZ2V0KToKKyAgICAg
ICAgKiBtaWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNh
bGwuanM6IEFkZGVkLgorICAgICAgICAodGFyZ2V0KToKKyAgICAgICAgKiBtaWNyb2JlbmNobWFy
a3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNvbnN0cnVjdC5qczogQWRkZWQu
CisgICAgICAgICh0YXJnZXQpOgorICAgICAgICAqIHN0cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rp
b24tY2FsbC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0YXJnZXQp
OgorICAgICAgICAqIHN0cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRhcmdldCk6CisgICAgICAgICog
c3RyZXNzL2ludGVybmFsLWZ1bmN0aW9uLWNhbGwuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxk
QmUpOgorICAgICAgICAqIHN0cmVzcy9pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanM6IEFk
ZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorCiAyMDE3LTEwLTE5ICBKRiBCYXN0aWVuICA8amZi
YXN0aWVuQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJBc3NlbWJseTogbm8gVk0gLyBKUyB2ZXJz
aW9uIG9mIGV2ZXJ5dGhpbmcgYnV0IEluc3RhbmNlCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcyBiL0pTVGVzdHMvbWljcm9i
ZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwOTcz
OGI1ZTIwNjE0ZmUxOTdmNWVmY2U3NDdmNDZmODFjNDU2YzgKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcwpAQCAt
MCwwICsxLDggQEAKK2Z1bmN0aW9uIHRhcmdldChmdW5jKQoreworICAgIHJldHVybiBmdW5jKCk7
Cit9Citub0lubGluZSh0YXJnZXQpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQor
ICAgIHRhcmdldChBcnJheSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9k
ZmctaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFy
a3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODJhMDAw
YjFiYTU2YmU5NWVjNzM1OWM1YjllYzg3Nzc0OGFjMzI4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVjdC5qcwpA
QCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIHRhcmdldChmdW5jKQoreworICAgIHJldHVybiBuZXcg
ZnVuYygpOworfQorbm9JbmxpbmUodGFyZ2V0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7
ICsraSkKKyAgICB0YXJnZXQoQXJyYXkpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNo
bWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwuanMgYi9KU1Rlc3Rz
L21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tbm90LWhhbmRsZWQtY2FsbC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMGIyOWI0OTMwNDA4ZmY4MWVmZGRiYTZmZDIxNzI5ZmM4ZTgyZmFhCi0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1
bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiB0YXJn
ZXQoZnVuYykKK3sKKyAgICByZXR1cm4gZnVuYygpOworfQorbm9JbmxpbmUodGFyZ2V0KTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICB0YXJnZXQoRGF0ZSk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tbm90LWhh
bmRsZWQtY29uc3RydWN0LmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFs
LWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNvbnN0cnVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjY2YmJlOThh
ZDQzNGRkNDg1NDJhYmExZjYyNDcwNGQ5NWY2MmUxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNvbnN0
cnVjdC5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIHRhcmdldChmdW5jKQoreworICAgIHJl
dHVybiBuZXcgZnVuYygpOworfQorbm9JbmxpbmUodGFyZ2V0KTsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTQ7ICsraSkKKyAgICB0YXJnZXQoRGF0ZSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RmZy1p
bnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNDg1MmFhZWFhYTIyNzg3ODkx
ZTgxMTQ5NTlhYTdkZGE1MzgwYjIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9k
ZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcwpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KK25v
SW5saW5lKHNob3VsZEJlKTsKKworZnVuY3Rpb24gdGFyZ2V0KGZ1bmMpCit7CisgICAgcmV0dXJu
IGZ1bmMoKTsKK30KK25vSW5saW5lKHRhcmdldCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpCisgICAgc2hvdWxkQmUodGFyZ2V0KEFycmF5KS5sZW5ndGgsIDApOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVjdC5qcyBiL0pT
VGVzdHMvc3RyZXNzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjcxOTQyZWZiYmRmY2E0NDAwM2FlMmU2YzdiOGUzNzEwM2JjMGE4OAotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMK
QEAgLTAsMCArMSwxNCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewor
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jh
ZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9Citub0lubGluZShzaG91bGRCZSk7CisKK2Z1bmN0aW9u
IHRhcmdldChmdW5jKQoreworICAgIHJldHVybiBuZXcgZnVuYygpOworfQorbm9JbmxpbmUodGFy
Z2V0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICBzaG91bGRCZSh0YXJn
ZXQoQXJyYXkpLmxlbmd0aCwgMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRlcm5h
bC1mdW5jdGlvbi1jYWxsLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY2Fs
bC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lY2JmYTdiN2VhYjIzMjJjYzA2MDA5YThiMzYyMjkxYTE1ZTVkMDVk
Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY2Fs
bC5qcwpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCit2YXIgZnVuYyA9IERhdGU7CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCisgICAgc2hvdWxkQmUodHlwZW9mIGZ1bmMoKSwgInN0
cmluZyIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY29u
c3RydWN0LmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk4NTJiOTE3YzkwMzE1ODhhOTZkNGRjMzdiYzhhMzIzNzk3MmIwZDMKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1
Y3QuanMKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3ZhciBmdW5jID0gRGF0ZTsKKworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIHZhciBkYXRlID0gbmV3IGZ1bmMoKTsK
KyAgICBzaG91bGRCZSh0eXBlb2YgZGF0ZSwgIm9iamVjdCIpOworICAgIHNob3VsZEJlKGRhdGUg
aW5zdGFuY2VvZiBEYXRlLCB0cnVlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324390</attachid>
            <date>2017-10-20 06:29:16 -0700</date>
            <delta_ts>2017-10-22 08:04:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144458-20171020222915.patch</filename>
            <type>text/plain</type>
            <size>181149</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzNzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
Nzg2NTJkYTUyYTYwM2M1MWNiYjU0ODA3MDQwYjA4YTRjNmQ1ZjMyLi5mNjcxNThjMTI4MWQ0Nzg5
ZTM1NWI3NWJjNTM0YzFhYWMyZTQ3Zjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNDEgQEAKIDIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CiAKKyAgICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2Fs
bHMgdG8gb2JqZWN0cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkg
b25seSBKU0Z1bmN0aW9uIGlzIGhhbmRsZWQgYnkgQ2FsbExpbmtJbmZvJ3MgY2FjaGluZyBtZWNo
YW5pc20uIFRoaXMgbWVhbnMgdGhhdCBhbnkKKyAgICAgICAgSW50ZXJuYWxGdW5jdGlvbiBjYWxs
cyBhcmUgbm90IGNhY2hlZCBhbmQgdGhleSBhbHdheXMgZ28gdG8gdGhlIHNsb3cgcGF0aC4gVGhp
cyBpcyBub3QgZ29vZCBiZWNhdXNlCisKKyAgICAgICAgMS4gV2UgbmVlZCB0byBxdWVyeSBnZXRD
YWxsRGF0YS9nZXRDb25zdHJ1Y3REYXRhIGV2ZXJ5IHRpbWUgaW4gdGhlIHNsb3cgcGF0aC4KKyAg
ICAgICAgMi4gQ2FsbExpbmtJbmZvIHRlbGxzIG5vdGhpbmcgaW4gdGhlIGhpZ2hlciB0aWVyIEpJ
VHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzdGFydHMgaGFuZGxpbmcgSW50ZXJuYWxGdW5jdGlv
biBpbiBDYWxsTGlua0luZm8ncyBjYWNoaW5nIG1lY2hhbmlzbS4gV2UgY2hhbmdlIEludGVybmFs
RnVuY3Rpb24KKyAgICAgICAgdG8gaG9sZCBwb2ludGVycyB0byB0aGUgZnVuY3Rpb25zIGZvciBj
YWxsIGFuZCBjb25zdHJ1Y3QuIFdlIGhhdmUgbmV3IHN0dWJzIHRoYXQgY2FuIGNhbGwvY29uc3Ry
dWN0CisgICAgICAgIEludGVybmFsRnVuY3Rpb24uIEFuZCB3ZSByZXR1cm4gdGhpcyBjb2RlIHBv
aW50ZXIgYXMgYSByZXN1bHQgb2Ygc2V0dXAgY2FsbCB0byB1c2UgQ2FsbExpbmtJbmZvIG1lY2hh
bmlzbS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGNyaXRpY2FsIHRvIG9wdGltaXppbmcgZGVy
aXZlZCBBcnJheSBjb25zdHJ1Y3Rpb25bMV0gc2luY2UgaXQgc3RhcnRzIHVzaW5nIENhbGxMaW5r
SW5mbworICAgICAgICBmb3IgSW50ZXJuYWxGdW5jdGlvbi4gUHJldmlvdXNseSB3ZSBkbyBub3Qg
cmVjb3JkIGFueSBpbmZvcm1hdGlvbiB0byBDYWxsTGlua0luZm8uIEV4Y2VwdCBmb3IgdGhlCisg
ICAgICAgIGNhc2UgdGhhdCBERkdCeXRlQ29kZVBhcnNlciBmaWd1cmVzIG91dCBJbnRlcm5hbEZ1
bmN0aW9uIGNvbnN0YW50LCB3ZSBjYW5ub3QgYXR0ZW1wdCB0byBlbWl0IERGRworICAgICAgICBu
b2RlcyBmb3IgdGhlc2UgSW50ZXJuYWxGdW5jdGlvbnMgc2luY2UgQ2FsbExpbmtJbmZvIHRlbGxz
IG5vdGhpbmcuIFRoaXMgcGF0Y2ggdGVhY2hlcyBDYWxsTGlua0luZm8KKyAgICAgICAgaGFuZGxp
bmcgSW50ZXJuYWxGdW5jdGlvbiB0b28uCisKKyAgICAgICAgQXR0YWNoZWQgbWljcm9iZW5jaG1h
cmtzIHNob3cgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQuCisKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAg
ICAgICAgICBwYXRjaGVkCisKKyAgICAgICAgZGZnLWludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVj
dCAgICAgICAgICAgICAgICAgMS42NDM5Ky0wLjA4MjYgICAgIF4gICAgICAxLjI4MjkrLTAuMDcy
NyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMjgxM3ggZmFzdGVyCisgICAgICAgIGRmZy1pbnRlcm5h
bC1mdW5jdGlvbi1ub3QtaGFuZGxlZC1jb25zdHJ1Y3QgICAgIDIuMTg2MistMC4xMzYxICAgICAg
ICAgICAgMi4wNjk2Ky0wLjEyMDEgICAgICAgICAgbWlnaHQgYmUgMS4wNTY0eCBmYXN0ZXIKKyAg
ICAgICAgZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwgICAgICAgICAyMC43
NTkyKy0wLjkwODUgICAgICAgICAgIDE5LjczNjkrLTAuNzkyMSAgICAgICAgICBtaWdodCBiZSAx
LjA1MTh4IGZhc3RlcgorICAgICAgICBkZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbCAgICAgICAg
ICAgICAgICAgICAgICAxLjY4NTYrLTAuMDk2NyAgICAgXiAgICAgIDEuMjc3MSstMC4wNzQ0ICAg
ICAgICBeIGRlZmluaXRlbHkgMS4zMTk4eCBmYXN0ZXIKKworICAgICAgICBbMV06IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgwNjQKKworICAgICAgICAqIEFQSS9K
U0NhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246
OkpTQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6
Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
aDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIEFQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpPYmpD
Q2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvT2JqQ0Nh
bGxiYWNrRnVuY3Rpb24ubW06CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9uOjpP
YmpDQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9u
OjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0
aW9uOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9CeXRl
Y29kZUR1bXBlci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJp
bnRDYWxsT3ApOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5m
bzo6c2V0Q2FsbGVlKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjYWxsZWUpOgorICAg
ICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNldExhc3RTZWVuQ2FsbGVlKToKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjpsYXN0U2VlbkNhbGxlZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5r
SW5mbzo6dmlzaXRXZWFrKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAg
ICAgICAgKiBieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OkNhbGxM
aW5rU3RhdHVzOjpjb21wdXRlRnJvbUNhbGxMaW5rSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUv
TExJbnRDYWxsTGlua0luZm8uaDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6Cisg
ICAgICAgICogaml0L0pJVFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3Rp
SW50ZXJuYWxGdW5jdGlvbkNhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aUludGVy
bmFsRnVuY3Rpb25Db25zdHJ1Y3QpOgorICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAg
ICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OmxpbmtGb3IpOgorICAgICAgICAo
SlNDOjpsaW5rUG9seW1vcnBoaWNDYWxsKToKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5oOgorICAg
ICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjp2aXJ0dWFsVGh1
bmtGb3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpuYXRpdmVDYWxsR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bmF0aXZlVGFpbENhbGxHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjppbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6Omlu
dGVybmFsRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9UaHVua0dl
bmVyYXRvcnMuaDoKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAg
IChKU0M6OkxMSW50OjpzZXRVcENhbGwpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206
CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBy
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNvbnN0cnVj
dG9yOjpBcnJheUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0
b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNGdW5jdGlvbkNvbnN0cnVj
dG9yKToKKyAgICAgICAgKEpTQzo6QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlv
bkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KEpTQzo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2Fs
bERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNhbGxCb29s
ZWFuQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OkJvb2xl
YW5Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENvbnN0cnVj
dERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENh
bGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5o
OgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRl
Q29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRhdGVDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNv
bnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmg6CisgICAgICAgIChKU0M6OlN0cmljdE1v
ZGVUeXBlRXJyb3JGdW5jdGlvbjo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmdldENvbnN0cnVjdERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246
OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9y
KToKKyAgICAgICAgKEpTQzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpT
Qzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVj
dG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rp
b25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpjYWxsRnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5j
dGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlv
blByb3RvdHlwZTo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkdlbmVyYXRvckZ1bmN0
aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlND
OjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SW50
ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1
bmN0aW9uOjpnZXRDYWxsRGF0YSk6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246Omdl
dENvbnN0cnVjdERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgor
ICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpuYXRpdmVGdW5jdGlvbkZvcik6CisgICAgICAgIChK
U0M6OkludGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3IpOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpJ
bnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
SW50bENvbGxhdG9yQ29uc3RydWN0b3I6OkludGxDb2xsYXRvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpJbnRsRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmg6CisgICAgICAg
ICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6SW50bE51bWJlckZvcm1hdENvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rv
cjo6SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVm
ZmVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFz
cz46OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChK
U0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpKU1Byb21pc2VDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChKU0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICog
cnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6
SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpNYXBDb25z
dHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcENvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9NYXBDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6TWFwQ29uc3RydWN0b3I6Ok1hcENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51
bGxHZXR0ZXJGdW5jdGlvbjo6TnVsbEdldHRlckZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6TnVs
bEdldHRlckZ1bmN0aW9uOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51
bGxHZXR0ZXJGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6TnVsbEdldHRlckZ1
bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpOdWxsR2V0dGVyRnVuY3Rp
b246Ok51bGxHZXR0ZXJGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxs
U2V0dGVyRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246Ok51
bGxTZXR0ZXJGdW5jdGlvbik6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Z2V0
Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246Omdl
dENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1
bmN0aW9uLmg6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uOjpOdWxsU2V0dGVyRnVuY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6TnVtYmVyQ29uc3RydWN0b3IpOgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNv
bnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51
bWJlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6TnVtYmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0
b3IpOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpQcm94eUNvbnN0cnVj
dG9yOjpQcm94eUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb3h5Q29uc3RydWN0
b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1Byb3h5Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5UmV2b2tlLmNwcDoKKyAgICAgICAgKEpTQzo6UHJv
eHlSZXZva2U6OlByb3h5UmV2b2tlKToKKyAgICAgICAgKEpTQzo6UHJveHlSZXZva2U6OmdldENh
bGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1Byb3h5UmV2b2tlLmg6CisgICAg
ICAgIChKU0M6OlByb3h5UmV2b2tlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rv
cjo6UmVnRXhwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6U2V0Q29uc3RydWN0b3I6OlNldENvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6U2V0Q29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTZXRD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2V0
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6U2V0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OlNldENvbnN0cnVjdG9yOjpTZXRDb25zdHJ1Y3Rvcik6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChK
U0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OlN0cmluZ0Nv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6U3ltYm9sQ29u
c3RydWN0b3IpOgorICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlN5bWJvbENvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAg
ICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKEpT
Qzo6Vk06OmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKToKKyAgICAgICAgKiBy
dW50aW1lL1ZNLmg6CisgICAgICAgICogcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpXZWFrTWFwQ29uc3RydWN0b3I6OldlYWtNYXBDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmg6CisgICAgICAgIChK
U0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
V2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha1Nl
dENvbnN0cnVjdG9yOjpXZWFrU2V0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWFrU2V0
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpX
ZWFrU2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpXZWFrU2V0Q29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYWtTZXRDb25zdHJ1Y3Rvcjo6
V2Vha1NldENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlND
OjpXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUNvbXBpbGVF
cnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JD
b25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpXZWJB
c3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUlu
c3RhbmNlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6Oldl
YkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eUxpbmtFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6V2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OldlYkFz
c2VtYmx5TWVtb3J5Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1lbW9y
eUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5TW9kdWxlQ29u
c3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1
bGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2Vt
Ymx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5VGFibGVDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmg6CisKKzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gU2NyaXB0RmV0Y2hlciBzaG91
bGQgYmUgbm90aWZpZWQgZGlyZWN0bHkgZnJvbSBtb2R1bGUgcGlwZWxpbmUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODM0MAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggOTBkODdhZmQ1YzYyNGJlMjk2ZjA4MWQwMjYzNjNiOWU2MjQ2MzA4ZC4uMzUwODJkMTEzNjYy
MWFmOGM5YzkzOGE3NmNhYTA4YjA2ZGRmYTk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBA
CiAyMDE3LTEwLTIwICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCisg
ICAgICAgIEpJVCBjYWxsIGlubGluZSBjYWNoZXMgc2hvdWxkIGNhY2hlIGNhbGxzIHRvIG9iamVj
dHMgd2l0aCBnZXRDYWxsRGF0YS9nZXRDb25zdHJ1Y3REYXRhIHRyYXBzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0NTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhv
ZC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2QpOgorICAg
ICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAg
ICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisKKzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gU2NyaXB0RmV0Y2hlciBz
aG91bGQgYmUgbm90aWZpZWQgZGlyZWN0bHkgZnJvbSBtb2R1bGUgcGlwZWxpbmUKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODM0MAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDNhNmY5ODM0NDhhOGZlYTM4YjYxNDEzZTRhZTdkYzUyZmZmNjExNzQuLmNmNDAzOWRhYTc1
ODhkM2M5NDUwMjQ2NzE3NTBjZDc1ZjRhNTI2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAg
ICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2FsbHMgdG8gb2JqZWN0
cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBNZXRob2QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0aG9kOjpKU05Q
TWV0aG9kKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE1ldGhvZDo6Z2V0Q2FsbERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmg6
CisgICAgICAgIChXZWJLaXQ6OkpTTlBNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTct
MTAtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBJbnRyb2R1Y2UgY29tcGxldGlvbkhhbmRsZXItYmFzZWQgU1BJIGZvciBfV0tEb3dubG9h
ZERlbGVnYXRlLmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKaW5kZXggNjg0
ZWNlNjMwZmExY2E4MGE3YzM4ZWNjYWNkNDBlNzg3MmVjZjgxMC4uNzhjYTU1YmIyM2VkNmNmZGI5
ZDkxZGU0NTg3NmVjZTc2NzYzNDc2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcApAQCAtNDQsNyArNDQsNyBAQCBTVEFUSUNfQVNTRVJU
X0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNDYWxsYmFja0Z1bmN0aW9uKTsKIGNvbnN0IENs
YXNzSW5mbyBKU0NhbGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxiYWNrRnVuY3Rpb24i
LCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAogSlNDYWxsYmFja0Z1bmN0aW9uOjpK
U0NhbGxiYWNrRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3RD
YWxsQXNGdW5jdGlvbkNhbGxiYWNrIGNhbGxiYWNrKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBBUElD
YWxsYmFja0Z1bmN0aW9uOjpjYWxsPEpTQ2FsbGJhY2tGdW5jdGlvbj4sIG51bGxwdHIpCiAgICAg
LCBtX2NhbGxiYWNrKGNhbGxiYWNrKQogewogfQpAQCAtNjMsMTAgKzYzLDQgQEAgSlNDYWxsYmFj
a0Z1bmN0aW9uKiBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gZnVuY3Rpb247CiB9CiAKLUNhbGxUeXBlIEpTQ2Fs
bGJhY2tGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQot
ewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEFQSUNhbGxiYWNrRnVuY3Rpb246OmNh
bGw8SlNDYWxsYmFja0Z1bmN0aW9uPjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja0Z1bmN0aW9uLmgKaW5kZXggYTRmZGQwNjhmZWY0OGI0OGFkNmRhNDk0NDRiNWI1ZDQwYzBj
ZGE2NS4uNGM1NGI4MGY1OWNlYjkwYjMyMTdkNzc4YmU5Y2RjMTgwZmM0NGYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC00NCwxNSAr
NDQsMTMgQEAgY2xhc3MgSlNDYWxsYmFja0Z1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogICAgIC8vIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRoaXMgb3ZlcnJpZGUgaXNuJ3QgbmVj
ZXNzYXJ5CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAgICAgeyAKLSAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKElu
dGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAog
cHJpdmF0ZToKICAgICBKU0NhbGxiYWNrRnVuY3Rpb24oVk0mLCBTdHJ1Y3R1cmUqLCBKU09iamVj
dENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2spOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBj
b25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7Ci0KICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2sg
ZnVuY3Rpb25DYWxsYmFjaygpIHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAogICAgIEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBtX2NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4IDRkNWI3MzY4ZDNjN2MxMDNi
NGQ0ZTYzZmE4ZTYyNDViY2YwMmM2YjEuLmRlYTZjYzQ0Y2M1NWI5NTk3MTQyOTg1MjI1MDkyNjM1
ZDg5ZWRiNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxi
YWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFj
a0Z1bmN0aW9uLmgKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgT2JqQ0NhbGxiYWNrRnVuY3Rpb24g
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgewogICAgICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0K
IAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CkBAIC02NSw5ICs2NSw2IEBAIGNsYXNzIE9iakND
YWxsYmFja0Z1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIE9iakNDYWxs
YmFja0Z1bmN0aW9uKFZNJiwgU3RydWN0dXJlKiwgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxi
YWNrLCBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yQ2FsbGJhY2ssIHN0ZDo6dW5pcXVlX3B0cjxP
YmpDQ2FsbGJhY2tGdW5jdGlvbkltcGw+KTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLQogICAgIEpT
T2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBmdW5jdGlvbkNhbGxiYWNrKCkgeyByZXR1cm4g
bV9mdW5jdGlvbkNhbGxiYWNrOyB9CiAgICAgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxi
YWNrIGNvbnN0cnVjdENhbGxiYWNrKCkgeyByZXR1cm4gbV9jb25zdHJ1Y3RDYWxsYmFjazsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0
aW9uLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5t
bQppbmRleCBmYjkzYTg2MGFlYmYyZjQ5MGIwN2MyNWZmNzUwMzUzMmE0Yjc3YWQzLi42M2Y5MjBl
ZGIyMjRmMWFkZDFkMDliN2ExMTIzN2FkNjVhMTg3OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KQEAgLTUwNiw3ICs1MDYsNyBA
QCBzdGF0aWMgSlNPYmplY3RSZWYgb2JqQ0NhbGxiYWNrRnVuY3Rpb25DYWxsQXNDb25zdHJ1Y3Rv
cihKU0NvbnRleHRSZWYgY2FsbGVyQ29udAogY29uc3QgSlNDOjpDbGFzc0luZm8gT2JqQ0NhbGxi
YWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxiYWNrRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE9iakNDYWxsYmFja0Z1bmN0
aW9uKSB9OwogCiBPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6T2JqQ0NhbGxiYWNrRnVuY3Rpb24oSlND
OjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0Q2FsbEFzRnVuY3Rp
b25DYWxsYmFjayBmdW5jdGlvbkNhbGxiYWNrLCBKU09iamVjdENhbGxBc0NvbnN0cnVjdG9yQ2Fs
bGJhY2sgY29uc3RydWN0Q2FsbGJhY2ssIHN0ZDo6dW5pcXVlX3B0cjxPYmpDQ2FsbGJhY2tGdW5j
dGlvbkltcGw+IGltcGwpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUsIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGw8T2JqQ0NhbGxiYWNrRnVuY3Rp
b24+LCBpbXBsLT5pc0NvbnN0cnVjdGlibGUoKSA/IEFQSUNhbGxiYWNrRnVuY3Rpb246OmNvbnN0
cnVjdDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj4gOiBudWxscHRyKQogICAgICwgbV9mdW5jdGlvbkNh
bGxiYWNrKGZ1bmN0aW9uQ2FsbGJhY2spCiAgICAgLCBtX2NvbnN0cnVjdENhbGxiYWNrKGNvbnN0
cnVjdENhbGxiYWNrKQogICAgICwgbV9pbXBsKFdURk1vdmUoaW1wbCkpCkBAIC01MjgsMjIgKzUy
OCw2IEBAIHZvaWQgT2JqQ0NhbGxiYWNrRnVuY3Rpb246OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQog
ICAgIGZ1bmN0aW9uLn5PYmpDQ2FsbGJhY2tGdW5jdGlvbigpOwogfQogCi0KLUNhbGxUeXBlIE9i
akNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERh
dGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gQVBJQ2FsbGJhY2tGdW5jdGlv
bjo6Y2FsbDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj47Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0
OwotfQotCi1Db25zdHJ1Y3RUeXBlIE9iakNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCogY2VsbCwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBP
YmpDQ2FsbGJhY2tGdW5jdGlvbiogY2FsbGJhY2sgPSBqc0Nhc3Q8T2JqQ0NhbGxiYWNrRnVuY3Rp
b24qPihjZWxsKTsKLSAgICBpZiAoIWNhbGxiYWNrLT5pbXBsKCktPmlzQ29uc3RydWN0aWJsZSgp
KQotICAgICAgICByZXR1cm4gQmFzZTo6Z2V0Q29uc3RydWN0RGF0YShjZWxsLCBjb25zdHJ1Y3RE
YXRhKTsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEFQSUNhbGxiYWNrRnVu
Y3Rpb246OmNvbnN0cnVjdDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj47Ci0gICAgcmV0dXJuIENvbnN0
cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIFN0cmluZyBPYmpDQ2FsbGJhY2tGdW5jdGlvbkltcGw6Om5h
bWUoKQogewogICAgIGlmIChtX3R5cGUgPT0gQ2FsbGJhY2tJbml0TWV0aG9kKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKaW5kZXggOWJj
MTE3ZjE5OTE0YzUzOWUyZGNhZTMzNzJlMzFhNDlhZDZjMmVhMS4uYTlmMTZkNzNmM2RjZjA3NDkz
OWQxOGM2Y2Q4NzhlMmUxYjFmZjg4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCkBAIC01NzgsMTYgKzU3OCwxOSBAQCB2b2lkIEJ5
dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJpbnRDYWxsT3AoUHJpbnRTdHJlYW0mIG91dCwgaW50IGxv
Y2F0aW9uLCBjb25zdCB0eQogICAgIGlmIChjYWNoZUR1bXBNb2RlID09IER1bXBDYWNoZXMpIHsK
ICAgICAgICAgTExJbnRDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IGdldENhbGxMaW5rSW5m
byhpdFsxXSk7CiAgICAgICAgIGlmIChjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlKSB7Ci0g
ICAgICAgICAgICBvdXQucHJpbnRmKAotICAgICAgICAgICAgICAgICIgbGxpbnQoJXAsIGV4ZWMg
JXApIiwKLSAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLmdldCgp
LAotICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUtPmV4ZWN1dGFi
bGUoKSk7CisgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gY2FsbExpbmtJbmZvLT5sYXN0
U2VlbkNhbGxlZS5nZXQoKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBmdW5jdGlvbiA9IGpzRHlu
YW1pY0Nhc3Q8SlNGdW5jdGlvbio+KCp2bSgpLCBvYmplY3QpKQorICAgICAgICAgICAgICAgIG91
dC5wcmludGYoIiBsbGludCglcCwgZXhlYyAlcCkiLCBmdW5jdGlvbiwgZnVuY3Rpb24tPmV4ZWN1
dGFibGUoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3V0LnByaW50Zigi
IGxsaW50KCVwKSIsIG9iamVjdCk7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoSklUKQogICAgICAg
ICBpZiAoQ2FsbExpbmtJbmZvKiBpbmZvID0gbWFwLmdldChDb2RlT3JpZ2luKGxvY2F0aW9uKSkp
IHsKLSAgICAgICAgICAgIEpTRnVuY3Rpb24qIHRhcmdldCA9IGluZm8tPmxhc3RTZWVuQ2FsbGVl
KCk7Ci0gICAgICAgICAgICBpZiAodGFyZ2V0KQotICAgICAgICAgICAgICAgIG91dC5wcmludGYo
IiBqaXQoJXAsIGV4ZWMgJXApIiwgdGFyZ2V0LCB0YXJnZXQtPmV4ZWN1dGFibGUoKSk7CisgICAg
ICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5mby0+bGFzdFNlZW5DYWxsZWUoKTsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBmdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KCp2
bSgpLCBvYmplY3QpKQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBqaXQoJXAsIGV4ZWMg
JXApIiwgZnVuY3Rpb24sIGZ1bmN0aW9uLT5leGVjdXRhYmxlKCkpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBqaXQoJXApIiwgb2JqZWN0KTsKICAgICAg
ICAgfQogCiAgICAgICAgIGR1bXBDYWxsTGlua1N0YXR1cyhvdXQsIGxvY2F0aW9uLCBtYXApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5q
c29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCmlu
ZGV4IGUxMTMxNGYyMjk2MmY4NWRmN2YxY2ZlNjYzNWU0YmY5OTZhNWVkMDUuLjc0YzkxYWE0Zjg0
NDk0NWQ2ODk3YjcwN2MwYTI1ZjRmZGI5M2Y2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAgLTIxOCw2ICsyMTgsOCBAQAogICAg
ICAgICAgICAgeyAibmFtZSIgOiAibGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZSIg
fSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogImxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUi
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJsbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1w
b2xpbmUiIH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJsbGludF9pbnRlcm5hbF9mdW5jdGlv
bl9jYWxsX3RyYW1wb2xpbmUiIH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJsbGludF9pbnRl
cm5hbF9mdW5jdGlvbl9jb25zdHJ1Y3RfdHJhbXBvbGluZSIgfSwKICAgICAgICAgICAgIHsgIm5h
bWUiIDogImhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uIiB9CiAgICAgICAgIF0KICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCmluZGV4IDNh
Y2M1ZmJlM2ZlZWM1MDFjN2VkYzU0ZGVjODk2Njg2YzNjN2E5YTUuLmVkNmQzNjk3NDc1MTRkZmIy
ZTliZDI1MTYwNTI4NTJmY2JmN2ZjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua0luZm8uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgQ29kZUxvY2F0aW9u
TGFiZWwgQ2FsbExpbmtJbmZvOjpzbG93UGF0aFN0YXJ0KCkKICAgICByZXR1cm4gbV9ob3RQYXRo
QmVnaW5PclNsb3dQYXRoU3RhcnQ7CiB9CiAKLXZvaWQgQ2FsbExpbmtJbmZvOjpzZXRDYWxsZWUo
Vk0mIHZtLCBKU0NlbGwqIG93bmVyLCBKU0Z1bmN0aW9uKiBjYWxsZWUpCit2b2lkIENhbGxMaW5r
SW5mbzo6c2V0Q2FsbGVlKFZNJiB2bSwgSlNDZWxsKiBvd25lciwgSlNPYmplY3QqIGNhbGxlZSkK
IHsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNEaXJlY3QoKSk7CiAgICAgTWFjcm9Bc3NlbWJsZXI6
OnJlcGF0Y2hQb2ludGVyKGhvdFBhdGhCZWdpbigpLCBjYWxsZWUpOwpAQCAtMTM3LDEwICsxMzcs
MTAgQEAgdm9pZCBDYWxsTGlua0luZm86OmNsZWFyQ2FsbGVlKCkKICAgICBtX2lzTGlua2VkID0g
ZmFsc2U7CiB9CiAKLUpTRnVuY3Rpb24qIENhbGxMaW5rSW5mbzo6Y2FsbGVlKCkKK0pTT2JqZWN0
KiBDYWxsTGlua0luZm86OmNhbGxlZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzRGlyZWN0
KCkpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNGdW5jdGlvbio+KG1fY2FsbGVlT3JDb2RlQmxvY2su
Z2V0KCkpOworICAgIHJldHVybiBqc0Nhc3Q8SlNPYmplY3QqPihtX2NhbGxlZU9yQ29kZUJsb2Nr
LmdldCgpKTsKIH0KIAogdm9pZCBDYWxsTGlua0luZm86OnNldENvZGVCbG9jayhWTSYgdm0sIEpT
Q2VsbCogb3duZXIsIEZ1bmN0aW9uQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC0xNjMsNyArMTYz
LDcgQEAgRnVuY3Rpb25Db2RlQmxvY2sqIENhbGxMaW5rSW5mbzo6Y29kZUJsb2NrKCkKICAgICBy
ZXR1cm4ganNDYXN0PEZ1bmN0aW9uQ29kZUJsb2NrKj4obV9jYWxsZWVPckNvZGVCbG9jay5nZXQo
KSk7CiB9CiAKLXZvaWQgQ2FsbExpbmtJbmZvOjpzZXRMYXN0U2VlbkNhbGxlZShWTSYgdm0sIGNv
bnN0IEpTQ2VsbCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxlZSkKK3ZvaWQgQ2FsbExpbmtJbmZv
OjpzZXRMYXN0U2VlbkNhbGxlZShWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0
KiBjYWxsZWUpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzRGlyZWN0KCkpOwogICAgIG1fbGFz
dFNlZW5DYWxsZWVPckV4ZWN1dGFibGUuc2V0KHZtLCBvd25lciwgY2FsbGVlKTsKQEAgLTE3NSwx
MCArMTc1LDEwIEBAIHZvaWQgQ2FsbExpbmtJbmZvOjpjbGVhckxhc3RTZWVuQ2FsbGVlKCkKICAg
ICBtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlLmNsZWFyKCk7CiB9CiAKLUpTRnVuY3Rpb24q
IENhbGxMaW5rSW5mbzo6bGFzdFNlZW5DYWxsZWUoKQorSlNPYmplY3QqIENhbGxMaW5rSW5mbzo6
bGFzdFNlZW5DYWxsZWUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKCFpc0RpcmVjdCgpKTsKLSAg
ICByZXR1cm4ganNDYXN0PEpTRnVuY3Rpb24qPihtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxl
LmdldCgpKTsKKyAgICByZXR1cm4ganNDYXN0PEpTT2JqZWN0Kj4obV9sYXN0U2VlbkNhbGxlZU9y
RXhlY3V0YWJsZS5nZXQoKSk7CiB9CiAKIGJvb2wgQ2FsbExpbmtJbmZvOjpoYXZlTGFzdFNlZW5D
YWxsZWUoKQpAQCAtMjM1LDE0ICsyMzUsMjAgQEAgdm9pZCBDYWxsTGlua0luZm86OnZpc2l0V2Vh
ayhWTSYgdm0pCiAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRHVtcChjb2RlQmxvY2so
KSksICIpLlxuIik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGRhdGFMb2coCi0gICAgICAgICAgICAgICAgICAgICAgICAiQ2xlYXJpbmcgY2FsbCB0
byAiLAotICAgICAgICAgICAgICAgICAgICAgICAgUmF3UG9pbnRlcihjYWxsZWUoKSksICIgKCIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYWxsZWUoKS0+ZXhlY3V0YWJsZSgpLT5oYXNoRm9y
KHNwZWNpYWxpemF0aW9uS2luZCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICIpLlxuIik7
CisgICAgICAgICAgICAgICAgaWYgKGNhbGxlZSgpLT50eXBlKCkgPT0gSlNGdW5jdGlvblR5cGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiQ2xlYXJpbmcgY2FsbCB0byAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJhd1Bv
aW50ZXIoY2FsbGVlKCkpLCAiICgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PEpTRnVuY3Rpb24qPihjYWxsZWUoKSktPmV4ZWN1dGFibGUoKS0+aGFzaEZvcihzcGVj
aWFsaXphdGlvbktpbmQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBoYW5kbGVTcGVjaWZp
Y0NhbGxlZShzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2FsbGVlKCkpKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9T
UigpKQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2xlYXJpbmcgY2FsbCB0byAi
LCBSYXdQb2ludGVyKGNhbGxlZSgpKSwgIi5cbiIpOworICAgICAgICAgICAgICAgICAgICBtX2Ns
ZWFyZWRCeUdDID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaGFu
ZGxlU3BlY2lmaWNDYWxsZWUoY2FsbGVlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
dW5saW5rKHZtKTsKICAgICAgICAgfSBlbHNlIGlmIChpc0RpcmVjdCgpICYmICFIZWFwOjppc01h
cmtlZChtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlLmdldCgpKSkgewpAQCAtMjU4LDcgKzI2
NCwxMCBAQCB2b2lkIENhbGxMaW5rSW5mbzo6dmlzaXRXZWFrKFZNJiB2bSkKICAgICAgICAgfQog
ICAgIH0KICAgICBpZiAoIWlzRGlyZWN0KCkgJiYgaGF2ZUxhc3RTZWVuQ2FsbGVlKCkgJiYgIUhl
YXA6OmlzTWFya2VkKGxhc3RTZWVuQ2FsbGVlKCkpKSB7Ci0gICAgICAgIGhhbmRsZVNwZWNpZmlj
Q2FsbGVlKGxhc3RTZWVuQ2FsbGVlKCkpOworICAgICAgICBpZiAobGFzdFNlZW5DYWxsZWUoKS0+
dHlwZSgpID09IEpTRnVuY3Rpb25UeXBlKQorICAgICAgICAgICAgaGFuZGxlU3BlY2lmaWNDYWxs
ZWUoc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KGxhc3RTZWVuQ2FsbGVlKCkpKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgbV9jbGVhcmVkQnlHQyA9IHRydWU7CiAgICAgICAgIGNsZWFyTGFz
dFNlZW5DYWxsZWUoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXggOTFkM2RkOGY3NWIxMjI4M2UwYWFkZDc4OGUwZjk2NzU5
MGY2ZGU4MS4uNWJjMmM0NGY0NTg0ODI1MGI3OGE4ODU0MGEzODBiOGQwMDYwMDhlZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaApAQCAtMTkxLDE3
ICsxOTEsMTcgQEAgY2xhc3MgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2VudGluZWxO
b2RlPENhbGxMaW5rSW5mbz4gewogICAgICAgICByZXR1cm4gbV9ob3RQYXRoT3RoZXI7CiAgICAg
fQogCi0gICAgdm9pZCBzZXRDYWxsZWUoVk0mLCBKU0NlbGwqLCBKU0Z1bmN0aW9uKiBjYWxsZWUp
OworICAgIHZvaWQgc2V0Q2FsbGVlKFZNJiwgSlNDZWxsKiwgSlNPYmplY3QqIGNhbGxlZSk7CiAg
ICAgdm9pZCBjbGVhckNhbGxlZSgpOwotICAgIEpTRnVuY3Rpb24qIGNhbGxlZSgpOworICAgIEpT
T2JqZWN0KiBjYWxsZWUoKTsKIAogICAgIHZvaWQgc2V0Q29kZUJsb2NrKFZNJiwgSlNDZWxsKiwg
RnVuY3Rpb25Db2RlQmxvY2sqKTsKICAgICB2b2lkIGNsZWFyQ29kZUJsb2NrKCk7CiAgICAgRnVu
Y3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9jaygpOwogCi0gICAgdm9pZCBzZXRMYXN0U2VlbkNhbGxl
ZShWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTRnVuY3Rpb24qIGNhbGxlZSk7CisgICAg
dm9pZCBzZXRMYXN0U2VlbkNhbGxlZShWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0
KiBjYWxsZWUpOwogICAgIHZvaWQgY2xlYXJMYXN0U2VlbkNhbGxlZSgpOwotICAgIEpTRnVuY3Rp
b24qIGxhc3RTZWVuQ2FsbGVlKCk7CisgICAgSlNPYmplY3QqIGxhc3RTZWVuQ2FsbGVlKCk7CiAg
ICAgYm9vbCBoYXZlTGFzdFNlZW5DYWxsZWUoKTsKICAgICAKICAgICB2b2lkIHNldEV4ZWN1dGFi
bGVEdXJpbmdDb21waWxhdGlvbihFeGVjdXRhYmxlQmFzZSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAKaW5kZXggNTNiODRkOWMwMzdl
MTdmNmFlOTNkYzg1NTE5Mjc4OGI2M2U2N2FlYS4uZjI4NGUzMDE2NGEwMGE1NDcxMTA2Y2I1OGQ5
ODgwMDFiZDI2NWVlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q2FsbExpbmtTdGF0dXMuY3BwCkBAIC0yMTUsNyArMjE1LDcgQEAgQ2FsbExpbmtTdGF0dXMgQ2Fs
bExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tQ2FsbExpbmtJbmZvKAogICAgIAogICAgIENhbGxMaW5r
U3RhdHVzIHJlc3VsdDsKICAgICAKLSAgICBpZiAoSlNGdW5jdGlvbiogdGFyZ2V0ID0gY2FsbExp
bmtJbmZvLmxhc3RTZWVuQ2FsbGVlKCkpIHsKKyAgICBpZiAoSlNPYmplY3QqIHRhcmdldCA9IGNh
bGxMaW5rSW5mby5sYXN0U2VlbkNhbGxlZSgpKSB7CiAgICAgICAgIENhbGxWYXJpYW50IHZhcmlh
bnQodGFyZ2V0KTsKICAgICAgICAgaWYgKGNhbGxMaW5rSW5mby5oYXNTZWVuQ2xvc3VyZSgpKQog
ICAgICAgICAgICAgdmFyaWFudCA9IHZhcmlhbnQuZGVzcGVjaWZpZWRDbG9zdXJlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRDYWxsTGlua0luZm8u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCmlu
ZGV4IGMyY2Y0ZDFkYzE1YmY3ZmE5ZTA4OTE4NjE2YWE1M2EwMjQ5MTcxY2QuLjhkMGI4NjBlZWYy
NWE1NTExYWJkZmZkNjE4MDg2ZmZhMTgxNDhlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCkBAIC01NCw4ICs1NCw4IEBAIHN0
cnVjdCBMTEludENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxMTElu
dENhbGxMaW5rSW5mbz4gewogICAgICAgICAgICAgcmVtb3ZlKCk7CiAgICAgfQogICAgIAotICAg
IFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBjYWxsZWU7Ci0gICAgV3JpdGVCYXJyaWVyPEpTRnVu
Y3Rpb24+IGxhc3RTZWVuQ2FsbGVlOworICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gY2FsbGVl
OworICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gbGFzdFNlZW5DYWxsZWU7CiAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIG1hY2hpbmVDb2RlVGFyZ2V0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggMDY1NTAwNGRkMzZlN2MwNjZlNWJm
YTA1ZGJjMzIwMjAxNWEyYzVkYy4uOTYyMWZkMTUxZjgzOTFlZWM4YTI5ZGQwOGI0ZDc2ZTQ3YTAy
ZTQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBA
IC05MzksOSArOTM5LDE3IEBAIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ2FsbExpCiAgICAgSlNWYWx1ZSBj
YWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKTsKICAg
ICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5jdGlvbihjYWxsZWVBc1Zh
bHVlKTsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7Ci0gICAgICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgY2FjaGUgdGhlc2Uga2luZHMgb2YgY2FsbHMuIFRoZXkgY2FuIGJlIGNvbW1v
biBhbmQgY3VycmVudGx5IHRoZXkgYXJlCi0gICAgICAgIC8vIGV4cGVuc2l2ZS4KLSAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorICAgICAg
ICBpZiAoY2FsbGVlQXNWYWx1ZS5pc0NlbGwoKSAmJiBjYWxsZWVBc1ZhbHVlLmFzQ2VsbCgpLT50
eXBlKCkgPT0gSW50ZXJuYWxGdW5jdGlvblR5cGUpIHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjb2RlUHRyID0gdm0tPmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5l
Rm9yKGtpbmQpOworICAgICAgICAgICAgQVNTRVJUKCEhY29kZVB0cik7CisKKyAgICAgICAgICAg
IGlmICghY2FsbExpbmtJbmZvLT5zZWVuT25jZSgpKQorICAgICAgICAgICAgICAgIGNhbGxMaW5r
SW5mby0+c2V0U2VlbigpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxpbmtG
b3IoZXhlY0NhbGxlZSwgKmNhbGxMaW5rSW5mbywgbnVsbHB0ciwgYXNPYmplY3QoY2FsbGVlQXNW
YWx1ZSksIGNvZGVQdHIpOworCisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KGNvZGVQ
dHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY2FsbExpbmtJ
bmZvLT5jYWxsTW9kZSgpID09IENhbGxNb2RlOjpUYWlsID8gUmV1c2VUaGVGcmFtZSA6IEtlZXBU
aGVGcmFtZSkpOworICAgICAgICB9CiAgICAgICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwogICAg
ICAgICByZXR1cm4gaGFuZGxlSG9zdENhbGwoZXhlY0NhbGxlZSwgY2FsbGVlQXNWYWx1ZSwgY2Fs
bExpbmtJbmZvKTsKICAgICB9CkBAIC05NTEsNyArOTU5LDcgQEAgU2xvd1BhdGhSZXR1cm5UeXBl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBD
YWxsTGkKICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9IGNhbGxlZS0+ZXhlY3V0YWJs
ZSgpOwogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHI7Ci0gICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSAwOworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gbnVsbHB0cjsKICAg
ICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkgewogICAgICAgICBjb2RlUHRyID0g
ZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZvcihraW5kLCBNdXN0Q2hlY2tBcml0eSk7CiAgICAgfSBl
bHNlIHsKQEAgLTEwNTMsNiArMTA2MSwxMSBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHZp
cnR1YWxGb3JXaXRoRnVuY3Rpb24oCiAgICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0Nh
bGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKTsKICAgICBjYWxsZWVBc0Z1bmN0aW9uQ2Vs
bCA9IGdldEpTRnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYWxs
ZWVBc0Z1bmN0aW9uQ2VsbCkpIHsKKyAgICAgICAgaWYgKGNhbGxlZUFzVmFsdWUuaXNDZWxsKCkg
JiYgY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEludGVybmFsRnVuY3Rpb25UeXBl
KSB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9IHZtLT5nZXRD
VElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihraW5kKTsKKyAgICAgICAgICAgIEFTU0VS
VCghIWNvZGVQdHIpOworICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChjb2RlUHRyLmV4
ZWN1dGFibGVBZGRyZXNzKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+
Y2FsbE1vZGUoKSA9PSBDYWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJh
bWUpKTsKKyAgICAgICAgfQogICAgICAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKICAgICAgICAg
cmV0dXJuIGhhbmRsZUhvc3RDYWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzVmFsdWUsIGNhbGxMaW5r
SW5mbyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRU
aHVua3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCmluZGV4
IDY4YzU2NDM2MmI5YWYwYWM0ZjE2MmRiYTkyODA2N2M0NzcyYzA1NTMuLmFmNGM4NDE5NTIyY2Y5
NjYzYjk2OWYxYTU1ZjNmYWJmZmIwYmU5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUVGh1bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFRodW5rcy5jcHAKQEAgLTcxLDYgKzcxLDIwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBKSVRU
aHVua3M6OmN0aU5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFncyhWTSogdm0pCiAgICAgcmV0
dXJuIGN0aVN0dWIodm0sIG5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFnc0dlbmVyYXRvciku
Y29kZSgpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlJbnRlcm5h
bEZ1bmN0aW9uQ2FsbChWTSogdm0pCit7CisgICAgaWYgKCF2bS0+Y2FuVXNlSklUKCkpCisgICAg
ICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGlu
dF9pbnRlcm5hbF9mdW5jdGlvbl9jYWxsX3RyYW1wb2xpbmUpOworICAgIHJldHVybiBjdGlTdHVi
KHZtLCBpbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcikuY29kZSgpOworfQorCitNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlJbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0KFZN
KiB2bSkKK3sKKyAgICBpZiAoIXZtLT5jYW5Vc2VKSVQoKSkKKyAgICAgICAgcmV0dXJuIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2ludGVybmFsX2Z1bmN0
aW9uX2NvbnN0cnVjdF90cmFtcG9saW5lKTsKKyAgICByZXR1cm4gY3RpU3R1Yih2bSwgaW50ZXJu
YWxGdW5jdGlvbkNvbnN0cnVjdEdlbmVyYXRvcikuY29kZSgpOworfQorCiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgSklUVGh1bmtzOjpjdGlTdHViKFZNKiB2bSwgVGh1bmtHZW5lcmF0b3IgZ2VuZXJh
dG9yKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRUaHVua3MuaAppbmRleCA0ZTczMzdhMGRmMGZiNjA0Njk3ZmVhNmRmN2FmMzIxMGQ2
MDhlZjU5Li4zMTQyNzI4YjJlNmIyY2Q4NDJjNjIxNzRhYWJiOTIzOWY3ZTUzOTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKQEAgLTU1LDYgKzU1LDggQEAgY2xhc3MgSklU
VGh1bmtzIGZpbmFsIDogcHJpdmF0ZSBXZWFrSGFuZGxlT3duZXIgewogICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjdGlOYXRpdmVDb25zdHJ1Y3QoVk0qKTsKICAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY3RpTmF0aXZlVGFpbENhbGwoVk0qKTsgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIGN0aU5hdGl2ZVRhaWxDYWxsV2l0aG91dFNhdmVkVGFncyhWTSopOyAgICAKKyAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpSW50ZXJuYWxGdW5jdGlvbkNhbGwoVk0qKTsKKyAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY3RpSW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdChWTSopOwogCiAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGN0aVN0dWIoVk0qLCBUaHVua0dlbmVyYXRvcik7CiAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGV4aXN0aW5nQ1RJU3R1YihUaHVua0dlbmVyYXRvcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAppbmRleCBkNzlhYzZkODgwNzMxN2Vi
MWI3OTI3NWNiNzMwMDk4ZjRlOWNiZTIyLi42NzY0MmQ2NDJhMDQyYWU3NDI2NTBiNTE0NmQwYTQw
MThjM2EwNzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2gu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKQEAgLTY5Miw3
ICs2OTIsNyBAQCBzdGF0aWMgSlNDZWxsKiB3ZWJBc3NlbWJseU93bmVyKEpTQ2VsbCogY2FsbGVl
KQogCiB2b2lkIGxpbmtGb3IoCiAgICAgRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNh
bGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssCi0gICAgSlNGdW5jdGlvbiog
Y2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKKyAgICBKU09iamVjdCogY2Fs
bGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKIHsKICAgICBBU1NFUlQoIWNhbGxM
aW5rSW5mby5zdHViKCkpOwogCkBAIC04MTUsOSArODE1LDcgQEAgdm9pZCBsaW5rUG9seW1vcnBo
aWNDYWxsKAogewogICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxMaW5rSW5mby5hbGxvd1N0dWJzKCkp
OwogICAgIAotICAgIC8vIEN1cnJlbnRseSB3ZSBjYW4ndCBkbyBhbnl0aGluZyBmb3Igbm9uLWZ1
bmN0aW9uIGNhbGxlZXMuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MDY4NQotICAgIGlmICghbmV3VmFyaWFudCB8fCAhbmV3VmFyaWFudC5leGVjdXRh
YmxlKCkpIHsKKyAgICBpZiAoIW5ld1ZhcmlhbnQpIHsKICAgICAgICAgbGlua1ZpcnR1YWxGb3Io
ZXhlYywgY2FsbExpbmtJbmZvKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTgzOSw3ICs4
MzcsNyBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAgICAgQ2FsbFZhcmlhbnRMaXN0IGxp
c3Q7CiAgICAgaWYgKFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKiBzdHViID0gY2FsbExpbmtJ
bmZvLnN0dWIoKSkKICAgICAgICAgbGlzdCA9IHN0dWItPnZhcmlhbnRzKCk7Ci0gICAgZWxzZSBp
ZiAoSlNGdW5jdGlvbiogb2xkQ2FsbGVlID0gY2FsbExpbmtJbmZvLmNhbGxlZSgpKQorICAgIGVs
c2UgaWYgKEpTT2JqZWN0KiBvbGRDYWxsZWUgPSBjYWxsTGlua0luZm8uY2FsbGVlKCkpCiAgICAg
ICAgIGxpc3QgPSBDYWxsVmFyaWFudExpc3R7IENhbGxWYXJpYW50KG9sZENhbGxlZSkgfTsKICAg
ICAKICAgICBsaXN0ID0gdmFyaWFudExpc3RXaXRoVmFyaWFudChsaXN0LCBuZXdWYXJpYW50KTsK
QEAgLTg2MywxMCArODYxLDggQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogICAgIAogICAg
IC8vIEZpZ3VyZSBvdXQgd2hhdCBvdXIgY2FzZXMgYXJlLgogICAgIGZvciAoQ2FsbFZhcmlhbnQg
dmFyaWFudCA6IGxpc3QpIHsKLSAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2s7Ci0gICAgICAg
IGlmICh2YXJpYW50LmV4ZWN1dGFibGUoKS0+aXNIb3N0RnVuY3Rpb24oKSkKLSAgICAgICAgICAg
IGNvZGVCbG9jayA9IG51bGxwdHI7Ci0gICAgICAgIGVsc2UgeworICAgICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jayA9IG51bGxwdHI7CisgICAgICAgIGlmICh2YXJpYW50LmV4ZWN1dGFibGUoKSAm
JiAhdmFyaWFudC5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpIHsKICAgICAgICAgICAg
IEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlID0gdmFyaWFudC5leGVjdXRhYmxlKCk7CiAgICAg
ICAgICAgICBjb2RlQmxvY2sgPSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0YWJs
ZSktPmNvZGVCbG9ja0ZvckNhbGwoKTsKICAgICAgICAgICAgIC8vIElmIHdlIGNhbm5vdCBoYW5k
bGUgYSBjYWxsZWUsIGVpdGhlciBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYSBDb2RlQmxvY2sgb3Ig
YmVjYXVzZSBhcml0eSBtaXNtYXRjaCwKQEAgLTkyNiw3ICs5MjIsOCBAQCB2b2lkIGxpbmtQb2x5
bW9ycGhpY0NhbGwoCiAjZWxzZQogICAgICAgICAvLyBXZSB3b3VsZCBoYXZlIGFscmVhZHkgY2hl
Y2tlZCB0aGF0IHRoZSBjYWxsZWUgaXMgYSBjZWxsLgogI2VuZGlmCi0gICAgCisKKyAgICAgICAg
Ly8gRklYTUU6IFdlIGNvdWxkIGFkZCBhIGZhc3QgcGF0aCBmb3IgSW50ZXJuYWxGdW5jdGlvbiB3
aXRoIGNsb3N1cmUgY2FsbC4KICAgICAgICAgc2xvd1BhdGguYXBwZW5kKAogICAgICAgICAgICAg
c3R1YkppdC5icmFuY2g4KAogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm90RXF1YWws
CkBAIC05NTMsMTEgKzk1MCwxOCBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAgICAgICAg
ICAgICBmYXN0Q291bnRzW2ldID0gMDsKICAgICAgICAgCiAgICAgICAgIENhbGxWYXJpYW50IHZh
cmlhbnQgPSBjYWxsQ2FzZXNbaV0udmFyaWFudCgpOwotICAgICAgICBpbnQ2NF90IG5ld0Nhc2VW
YWx1ZTsKLSAgICAgICAgaWYgKGlzQ2xvc3VyZUNhbGwpCisgICAgICAgIGludDY0X3QgbmV3Q2Fz
ZVZhbHVlID0gMDsKKyAgICAgICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsKICAgICAgICAgICAgIG5l
d0Nhc2VWYWx1ZSA9IGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4odmFyaWFudC5leGVjdXRhYmxlKCkp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBuZXdDYXNlVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8
aW50cHRyX3Q+KHZhcmlhbnQuZnVuY3Rpb24oKSk7CisgICAgICAgICAgICAvLyBGSVhNRTogV2Ug
Y291bGQgYWRkIGEgZmFzdCBwYXRoIGZvciBJbnRlcm5hbEZ1bmN0aW9uIHdpdGggY2xvc3VyZSBj
YWxsLgorICAgICAgICAgICAgaWYgKCFuZXdDYXNlVmFsdWUpCisgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoYXV0byogZnVuY3Rpb24g
PSB2YXJpYW50LmZ1bmN0aW9uKCkpCisgICAgICAgICAgICAgICAgbmV3Q2FzZVZhbHVlID0gYml0
d2lzZV9jYXN0PGludHB0cl90PihmdW5jdGlvbik7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgbmV3Q2FzZVZhbHVlID0gYml0d2lzZV9jYXN0PGludHB0cl90Pih2YXJpYW50Lmlu
dGVybmFsRnVuY3Rpb24oKSk7CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmICghQVNT
RVJUX0RJU0FCTEVEKSB7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGk7ICsr
aikgewpAQCAtOTk2LDkgKzEwMDAsMTQgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogICAg
ICAgICAKICAgICAgICAgQ2FsbFZhcmlhbnQgdmFyaWFudCA9IGNhbGxDYXNlc1tjYXNlSW5kZXhd
LnZhcmlhbnQoKTsKICAgICAgICAgCi0gICAgICAgIEFTU0VSVCh2YXJpYW50LmV4ZWN1dGFibGUo
KS0+aGFzSklUQ29kZUZvckNhbGwoKSk7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
b2RlUHRyID0KLSAgICAgICAgICAgIHZhcmlhbnQuZXhlY3V0YWJsZSgpLT5nZW5lcmF0ZWRKSVRD
b2RlRm9yQ2FsbCgpLT5hZGRyZXNzRm9yQ2FsbChBcml0eUNoZWNrTm90UmVxdWlyZWQpOworICAg
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cjsKKyAgICAgICAgaWYgKHZhcmlhbnQu
ZXhlY3V0YWJsZSgpKSB7CisgICAgICAgICAgICBBU1NFUlQodmFyaWFudC5leGVjdXRhYmxlKCkt
Pmhhc0pJVENvZGVGb3JDYWxsKCkpOworICAgICAgICAgICAgY29kZVB0ciA9IHZhcmlhbnQuZXhl
Y3V0YWJsZSgpLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5hZGRyZXNzRm9yQ2FsbChBcml0
eUNoZWNrTm90UmVxdWlyZWQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQVNTRVJU
KHZhcmlhbnQuaW50ZXJuYWxGdW5jdGlvbigpKTsKKyAgICAgICAgICAgIGNvZGVQdHIgPSB2bS5n
ZXRDVElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihDb2RlRm9yQ2FsbCk7CisgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIGlmIChmYXN0Q291bnRzKSB7CiAgICAgICAgICAgICBzdHVi
Sml0LmFkZDMyKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaAppbmRleCBlMjk3NWI5MWMx
ZDljZTg4ZjYyYzAzNzEzODllOWY2YTIwYjMxYTI5Li4xOWIxZjVmZWYwYzkxOGI0ODVkODNkNDI4
MzcxN2E5ZDFjYzk0MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaApAQCAtNDQs
NyArNDQsNyBAQCB2b2lkIGJ1aWxkR2V0QnlJRFByb3RvTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydAogdm9pZCByZXBhdGNoUHV0QnlJRChF
eGVjU3RhdGUqLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3Qg
UHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsKIHZvaWQgYnVp
bGRQdXRCeUlkTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRL
aW5kKTsKIHZvaWQgcmVwYXRjaEluKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIGNvbnN0IElkZW50aWZp
ZXImLCBib29sIHdhc0ZvdW5kLCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5m
byYpOwotdm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayos
IEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKTsKK3ZvaWQgbGlua0Zv
cihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBKU09iamVjdCogY2FsbGVl
LCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIpOwogdm9pZCBsaW5rRGlyZWN0Rm9yKEV4ZWNTdGF0ZSos
IENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIE1hY3JvQXNzZW1ibGVyQ29kZVB0cik7CiB2b2lk
IGxpbmtTbG93Rm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYpOwogdm9pZCB1bmxpbmtGb3Io
Vk0mLCBDYWxsTGlua0luZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtH
ZW5lcmF0b3JzLmNwcAppbmRleCBmMWRkZTc2NjIwZTEzOTdhZWEzMjc5M2EzYjlhMTlmYTEwOTll
ZWYzLi5mOWVhNWEzODYyNjczZmY4ZjRmYjZmZGI0MDM2Y2ExZTA4YTI1ZWRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCkBAIC0xOTcsNyArMTk3
LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENhbGxM
aW5rSW5mbyYgY2FsbExpbmtJbmZvKQogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVh
bCwgR1BSSW5mbzo6cmVnVDEsCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpDZWxsVGFnKSkpOwogI2VuZGlmCi0gICAgc2xvd0Nhc2UuYXBwZW5kKGppdC5i
cmFuY2hJZk5vdFR5cGUoR1BSSW5mbzo6cmVnVDAsIEpTRnVuY3Rpb25UeXBlKSk7CisgICAgYXV0
byBub3RKU0Z1bmN0aW9uID0gaml0LmJyYW5jaElmTm90VHlwZShHUFJJbmZvOjpyZWdUMCwgSlNG
dW5jdGlvblR5cGUpOwogICAgIAogICAgIC8vIE5vdyB3ZSBrbm93IHdlIGhhdmUgYSBKU0Z1bmN0
aW9uLgogICAgIApAQCAtMjE1LDYgKzIxNSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0
dWFsVGh1bmtGb3IoVk0qIHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKICAgICAvLyBj
YWxsLgogICAgIAogICAgIC8vIE1ha2UgYSB0YWlsIGNhbGwuIFRoaXMgd2lsbCByZXR1cm4gYmFj
ayB0byBKSVQgY29kZS4KKyAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgY2FsbENvZGUoaml0Lmxh
YmVsKCkpOwogICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86OnJlZ1Q0KTsK
ICAgICBpZiAoY2FsbExpbmtJbmZvLmlzVGFpbENhbGwoKSkgewogICAgICAgICBqaXQucHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86OnJlZ1QwKTsKQEAgLTIyMiw2ICsyMjMs
MTEgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENhbGxM
aW5rSW5mbyYgY2FsbExpbmtJbmZvKQogICAgIH0KICAgICBqaXQuanVtcChHUFJJbmZvOjpyZWdU
NCk7CiAKKyAgICBub3RKU0Z1bmN0aW9uLmxpbmsoJmppdCk7CisgICAgc2xvd0Nhc2UuYXBwZW5k
KGppdC5icmFuY2hJZk5vdFR5cGUoR1BSSW5mbzo6cmVnVDAsIEludGVybmFsRnVuY3Rpb25UeXBl
KSk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtLT5nZXRDVElJ
bnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihjYWxsTGlua0luZm8uc3BlY2lhbGl6YXRpb25L
aW5kKCkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgaml0Lmp1
bXAoKS5saW5rVG8oY2FsbENvZGUsICZqaXQpOworCiAgICAgc2xvd0Nhc2UubGluaygmaml0KTsK
ICAgICAKICAgICAvLyBIZXJlIHdlIGRvbid0IGtub3cgYW55dGhpbmcsIHNvIHJldmVydCB0byB0
aGUgZnVsbCBzbG93IHBhdGguCkBAIC0yMzYsOCArMjQyLDkgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQog
fQogCiBlbnVtIFRodW5rRW50cnlUeXBlIHsgRW50ZXJWaWFDYWxsLCBFbnRlclZpYUp1bXBXaXRo
U2F2ZWRUYWdzLCBFbnRlclZpYUp1bXBXaXRob3V0U2F2ZWRUYWdzIH07CitlbnVtIGNsYXNzIFRo
dW5rRnVuY3Rpb25UeXBlIHsgSlNGdW5jdGlvbiwgSW50ZXJuYWxGdW5jdGlvbiB9OwogCi1zdGF0
aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVT
cGVjaWFsaXphdGlvbktpbmQga2luZCwgVGh1bmtFbnRyeVR5cGUgZW50cnlUeXBlID0gRW50ZXJW
aWFDYWxsKQorc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3Io
Vk0qIHZtLCBUaHVua0Z1bmN0aW9uVHlwZSB0aHVua0Z1bmN0aW9uVHlwZSwgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kLCBUaHVua0VudHJ5VHlwZSBlbnRyeVR5cGUgPSBFbnRlclZpYUNhbGwp
CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGFibGUgdG8gbG9nIFNoYWRvd0NoaWNr
ZW4gcHJvbG9ndWUgcGFja2V0cy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU1Njg5CkBAIC0yNzksOCArMjg2LDExIEBAIHN0YXRpYyBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCBrCiAKICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgogICAgIGppdC5lbWl0R2V0RnJvbUNh
bGxGcmFtZUhlYWRlclB0cihDYWxsRnJhbWVTbG90OjpjYWxsZWUsIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMSk7Ci0gICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJm
YWNlSklUOjpyZWdUMSk7Ci0gICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QxLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIGlm
ICh0aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbikgewor
ICAgICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJ
VDo6cmVnVDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QxKTsKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QxLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIH0g
ZWxzZQorICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFj
ZUpJVDo6cmVnVDEsIEludGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3Io
a2luZCkpKTsKIAogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4
KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIApAQCAtMjkxLDggKzMw
MSwxMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihW
TSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQgawogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplZGkpOwogCiAgICAgaml0LmVt
aXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgWDg2UmVn
aXN0ZXJzOjplc2kpOwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4
NlJlZ2lzdGVyczo6ZXNpLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJl
Z2lzdGVyczo6cjkpOwotICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJl
Z2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgaWYgKHRodW5r
RnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uKSB7CisgICAgICAg
IGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNpLCBK
U0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOworICAg
ICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBl
eGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBqaXQuY2Fs
bChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVzaSwgSW50ZXJuYWxGdW5j
dGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogCiAjZWxzZQogICAgIC8v
IENhbGxpbmcgY29udmVudGlvbjogICAgICBmKGVjeCwgZWR4LCByOCwgcjksIC4uLik7CkBAIC0z
MDQsOCArMzE3LDExIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2Vu
ZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0LnN1YlB0cihK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVy
ZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplZHgp
OwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6
ZWR4LCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkp
OwotICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjks
IGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgaWYgKHRodW5rRnVuY3Rpb25UeXBl
ID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uKSB7CisgICAgICAgIGppdC5sb2FkUHRy
KEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWR4LCBKU0Z1bmN0aW9uOjpv
ZmZzZXRPZkV4ZWN1dGFibGUoKSksIFg4NlJlZ2lzdGVyczo6cjkpOworICAgICAgICBqaXQuY2Fs
bChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBleGVjdXRhYmxlT2Zm
c2V0VG9GdW5jdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFj
ZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVkeCwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0
T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFj
ZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2VuZGlmCkBAIC0zMTksOCArMzM1LDExIEBAIHN0YXRp
YyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6eDApOwogCiAgICAgaml0LmVtaXRHZXRGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgQVJNNjRSZWdpc3RlcnM6Ongx
KTsKLSAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVy
czo6eDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgQVJNNjRSZWdpc3RlcnM6
OngyKTsKLSAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVy
czo6eDIsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgaWYgKHRodW5rRnVuY3Rp
b25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uKSB7CisgICAgICAgIGppdC5s
b2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MSwgSlNGdW5j
dGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBBUk02NFJlZ2lzdGVyczo6eDIpOworICAgICAg
ICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVyczo6eDIsIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgfSBlbHNlCisgICAgICAgIGppdC5jYWxs
KEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MSwgSW50ZXJuYWxGdW5j
dGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogI2VsaWYgQ1BVKEFSTSkg
fHwgQ1BVKE1JUFMpCiAjaWYgQ1BVKE1JUFMpCiAgICAgLy8gQWxsb2NhdGUgc3RhY2sgc3BhY2Ug
Zm9yICh1bnVzZWQpIDE2IGJ5dGVzICg4LWJ5dGUgYWxpZ25lZCkgZm9yIDQgYXJndW1lbnRzLgpA
QCAtMzMyLDggKzM1MSwxMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZv
ckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQgawogICAgIGppdC5tb3Zl
KEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OmFyZ3Vt
ZW50R1BSMCk7CiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIxKTsKLSAgICBqaXQu
bG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRH
UFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMik7Ci0gICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIGlmICh0aHVua0Z1
bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbikgeworICAgICAgICBq
aXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6YXJndW1l
bnRHUFIxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJmYWNlSklU
OjpyZWdUMik7CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50
ZXJmYWNlSklUOjpyZWdUMiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VK
SVQ6OmFyZ3VtZW50R1BSMSwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlv
bkZvcihraW5kKSkpOwogCiAjaWYgQ1BVKE1JUFMpCiAgICAgLy8gUmVzdG9yZSBzdGFjayBzcGFj
ZQpAQCAtMzg4LDI3ICs0MTAsMzcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRp
dmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQu
anVtcFRvRXhjZXB0aW9uSGFuZGxlcigqdm0pOwogCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZl
cihqaXQsIEdMT0JBTF9USFVOS19JRCk7Ci0gICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hC
dWZmZXIsICgibmF0aXZlICVzJXMgdHJhbXBvbGluZSIsIGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1
bXBXaXRoU2F2ZWRUYWdzID8gIlRhaWwgV2l0aCBTYXZlZCBUYWdzICIgOiBlbnRyeVR5cGUgPT0g
RW50ZXJWaWFKdW1wV2l0aG91dFNhdmVkVGFncyA/ICJUYWlsIFdpdGhvdXQgU2F2ZWQgVGFncyAi
IDogIiIsIHRvQ1N0cmluZyhraW5kKS5kYXRhKCkpKTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09E
RShwYXRjaEJ1ZmZlciwgKCIlcyAlcyVzIHRyYW1wb2xpbmUiLCB0aHVua0Z1bmN0aW9uVHlwZSA9
PSBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiA/ICJuYXRpdmUiIDogImludGVybmFsIiwg
ZW50cnlUeXBlID09IEVudGVyVmlhSnVtcFdpdGhTYXZlZFRhZ3MgPyAiVGFpbCBXaXRoIFNhdmVk
IFRhZ3MgIiA6IGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1bXBXaXRob3V0U2F2ZWRUYWdzID8gIlRh
aWwgV2l0aG91dCBTYXZlZCBUYWdzICIgOiAiIiwgdG9DU3RyaW5nKGtpbmQpLmRhdGEoKSkpOwog
fQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ2FsbEdlbmVyYXRvcihWTSogdm0pCiB7
Ci0gICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwpOworICAgIHJl
dHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9u
LCBDb2RlRm9yQ2FsbCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2Fs
bEdlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwg
Q29kZUZvckNhbGwsIEVudGVyVmlhSnVtcFdpdGhTYXZlZFRhZ3MpOworICAgIHJldHVybiBuYXRp
dmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uLCBDb2RlRm9y
Q2FsbCwgRW50ZXJWaWFKdW1wV2l0aFNhdmVkVGFncyk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IoVk0qIHZtKQogewot
ICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBFbnRlclZpYUp1
bXBXaXRob3V0U2F2ZWRUYWdzKTsKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBU
aHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiwgQ29kZUZvckNhbGwsIEVudGVyVmlhSnVtcFdp
dGhvdXRTYXZlZFRhZ3MpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlQ29uc3Ry
dWN0R2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZt
LCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBU
aHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiwgQ29kZUZvckNvbnN0cnVjdCk7Cit9CisKK01h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBpbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcihWTSogdm0p
Cit7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgVGh1bmtGdW5jdGlvblR5cGU6
OkludGVybmFsRnVuY3Rpb24sIENvZGVGb3JDYWxsKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIGludGVybmFsRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJl
dHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpJbnRlcm5hbEZ1
bmN0aW9uLCBDb2RlRm9yQ29uc3RydWN0KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFy
aXR5Rml4dXBHZW5lcmF0b3IoVk0qIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1
bmtHZW5lcmF0b3JzLmgKaW5kZXggYzA0M2Q0MTg3YjBmNWI0NmIwZjJjZjdlODY2ODI0ODY2NTRj
ZmNmYy4uNjE4ZmVlMDk4YTgwYTFhMzU1NWI0ZWQ5ZDM2MDNlMzdhYmNiZjAyZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCkBAIC00Niw2ICs0Niw4IEBA
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxsR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgbmF0aXZlQ29uc3RydWN0R2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbmF0aXZlVGFpbENhbGxHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IoVk0qKTsKK01h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBpbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcihWTSopOwor
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFsRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3Io
Vk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwR2VuZXJhdG9yKFZNKik7CiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgdW5yZWFjaGFibGVHZW5lcmF0b3IoVk0qKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggOGEwZTFh
YzY4OGU0Zjc4NWU2ZThjNjY5YjY4MGYyZDg5NjAxNTgyMy4uMjk3YjZjMTcwMGZiOTM3ZGRiNzEx
ZTk3ZTI2MjllOTMyNzg3OWIyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwCkBAIC0xMzUwLDYgKzEzNTAsMjUgQEAgaW5saW5lIFNsb3dQYXRo
UmV0dXJuVHlwZSBzZXRVcENhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBJbnN0cnVjdGlvbiog
cGMsIENvZGUKICAgICAKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNG
dW5jdGlvbihjYWxsZWVBc1ZhbHVlKTsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7
CisgICAgICAgIGlmIChjYWxsZWVBc1ZhbHVlLmlzQ2VsbCgpICYmIGNhbGxlZUFzVmFsdWUuYXND
ZWxsKCktPnR5cGUoKSA9PSBJbnRlcm5hbEZ1bmN0aW9uVHlwZSkgeworICAgICAgICAgICAgYXV0
byogaW50ZXJuYWxGdW5jdGlvbiA9IGpzQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4oY2FsbGVlQXNW
YWx1ZS5hc0NlbGwoKSk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0
ciA9IHZtLmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKGtpbmQpOworICAgICAg
ICAgICAgQVNTRVJUKCEhY29kZVB0cik7CisKKyAgICAgICAgICAgIGlmICghTExJTlRfQUxXQVlT
X0FDQ0VTU19TTE9XICYmIGNhbGxMaW5rSW5mbykgeworICAgICAgICAgICAgICAgIENvZGVCbG9j
ayogY2FsbGVyQ29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CisKKyAgICAgICAgICAgICAg
ICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKGNhbGxlckNvZGVCbG9jay0+bV9sb2NrKTsKKwor
ICAgICAgICAgICAgICAgIGlmIChjYWxsTGlua0luZm8tPmlzT25MaXN0KCkpCisgICAgICAgICAg
ICAgICAgICAgIGNhbGxMaW5rSW5mby0+cmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgY2FsbExp
bmtJbmZvLT5jYWxsZWUuc2V0KHZtLCBjYWxsZXJDb2RlQmxvY2ssIGludGVybmFsRnVuY3Rpb24p
OworICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuc2V0KHZtLCBj
YWxsZXJDb2RlQmxvY2ssIGludGVybmFsRnVuY3Rpb24pOworICAgICAgICAgICAgICAgIGNhbGxM
aW5rSW5mby0+bWFjaGluZUNvZGVUYXJnZXQgPSBjb2RlUHRyOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBMTElOVF9DQUxMX1JFVFVSTihleGVjLCBleGVjQ2FsbGVlLCBjb2RlUHRyLmV4
ZWN1dGFibGVBZGRyZXNzKCkpOworICAgICAgICB9CiAgICAgICAgIHRocm93U2NvcGUucmVsZWFz
ZSgpOwogICAgICAgICByZXR1cm4gaGFuZGxlSG9zdENhbGwoZXhlY0NhbGxlZSwgcGMsIGNhbGxl
ZUFzVmFsdWUsIGtpbmQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCA1ZGFkMTE2YTkzZjZmOWFjYTk1YzBk
OWIzMzRlNmZlNjgyYWZlYjM2Li42YzA1NGZhNGY5MjkyNTlhZDRlYWE3ODlhNzRjN2FhYzUwYjc3
N2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtCkBAIC0xODM0LDYgKzE4MzQsMTUgQEAgX2xsaW50X25hdGl2ZV9jYWxsX3Ry
YW1wb2xpbmU6CiBfbGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lOgogICAgIG5hdGl2
ZUNhbGxUcmFtcG9saW5lKE5hdGl2ZUV4ZWN1dGFibGU6Om1fY29uc3RydWN0b3IpCiAKKworX2xs
aW50X2ludGVybmFsX2Z1bmN0aW9uX2NhbGxfdHJhbXBvbGluZToKKyAgICBpbnRlcm5hbEZ1bmN0
aW9uQ2FsbFRyYW1wb2xpbmUoSW50ZXJuYWxGdW5jdGlvbjo6bV9mdW5jdGlvbkZvckNhbGwpCisK
KworX2xsaW50X2ludGVybmFsX2Z1bmN0aW9uX2NvbnN0cnVjdF90cmFtcG9saW5lOgorICAgIGlu
dGVybmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShJbnRlcm5hbEZ1bmN0aW9uOjptX2Z1bmN0aW9u
Rm9yQ29uc3RydWN0KQorCisKIF9sbGludF9vcF9nZXRfZW51bWVyYWJsZV9sZW5ndGg6CiAgICAg
dHJhY2VFeGVjdXRpb24oKQogICAgIGNhbGxPcGNvZGVTbG93UGF0aChfc2xvd19wYXRoX2dldF9l
bnVtZXJhYmxlX2xlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggMGU3MTJiNjc5ZDZhYjEyMDNi
YjZjNmNjNTYyYWIwMmE2NzkxNmVjOS4uZTVkYWFhMjI3NDdiMWU5NDM2NGEzNDVmNzg0YmYwYmU3
ODliZWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTIxMTEsNiArMjExMSw1OCBAQCBtYWNybyBu
YXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKIGVuZAogCiAK
K21hY3JvIGludGVybmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShvZmZzZXRPZkZ1bmN0aW9uKQor
ICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQorICAgIHN0b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQorICAg
IGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICAvLyBDYWxsZWUgaXMg
c3RpbGwgaW4gdDEgZm9yIGNvZGUgYmVsb3cKKyAgICBpZiBYODYgb3IgWDg2X1dJTgorICAgICAg
ICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sgcG9pbnRlcgorICAgICAgICBhbmRwIE1hcmtlZEJs
b2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fdm1bdDFdLCB0MworICAg
ICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgICAgICBtb3ZlIGNmciwg
YTAgICMgYTAgPSBlY3gKKyAgICAgICAgc3RvcmVwIGEwLCBbc3BdCisgICAgICAgIGxvYWRpIENh
bGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCisgICAgICAgIGNhbGwgb2Zmc2V0T2ZGdW5jdGlvblt0
MV0KKyAgICAgICAgbG9hZHAgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MworICAgICAg
ICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1f
dm1bdDNdLCB0MworICAgICAgICBhZGRwIDgsIHNwCisgICAgZWxzaWYgQVJNIG9yIEFSTXY3IG9y
IEFSTXY3X1RSQURJVElPTkFMIG9yIENfTE9PUCBvciBNSVBTCisgICAgICAgIHN1YnAgOCwgc3Ag
IyBhbGlnbiBzdGFjayBwb2ludGVyCisgICAgICAgICMgdDEgYWxyZWFkeSBjb250YWlucyB0aGUg
Q2FsbGVlLgorICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAg
TWFya2VkQmxvY2s6Om1fdm1bdDFdLCB0MQorICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2Fs
bEZyYW1lW3QxXQorICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgbG9hZGkgQ2FsbGVlICsg
UGF5bG9hZE9mZnNldFtjZnJdLCB0MQorICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVu
dCh0MywgMHhkZWFkMDAwMSkKKyAgICAgICAgaWYgQ19MT09QCisgICAgICAgICAgICBjbG9vcENh
bGxOYXRpdmUgb2Zmc2V0T2ZGdW5jdGlvblt0MV0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Y2FsbCBvZmZzZXRPZkZ1bmN0aW9uW3QxXQorICAgICAgICBlbmQKKyAgICAgICAgbG9hZHAgQ2Fs
bGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MworICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFz
aywgdDMKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fdm1bdDNdLCB0MworICAgICAgICBh
ZGRwIDgsIHNwCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorCisgICAgYnRpbnog
Vk06Om1fZXhjZXB0aW9uW3QzXSwgLmhhbmRsZUV4Y2VwdGlvbgorCisgICAgZnVuY3Rpb25FcGls
b2d1ZSgpCisgICAgcmV0CisKKy5oYW5kbGVFeGNlcHRpb246CisgICAgc3RvcmVwIGNmciwgVk06
OnRvcENhbGxGcmFtZVt0M10KKyAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3Ry
YW1wb2xpbmUKK2VuZAorCisKIG1hY3JvIGdldENvbnN0YW50U2NvcGUoZHN0KQogICAgIGxvYWRw
RnJvbUluc3RydWN0aW9uKDYsIHQwKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbihkc3QsIHQx
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbQppbmRleCA5NzcxNDA5M2U4MzZkNzliYzY4YmVjOTIyZDgxN2EwZWY4YWU3YTE0
Li5lNWYwNzg1MjljYjc0NzQxYjQzMGQ2ZmY2MGZjNmE3NDYwNDhiNzEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpA
QCAtMjA3OCw2ICsyMDc4LDQ1IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFi
bGVPZmZzZXRUb0Z1bmN0aW9uKQogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhf
dHJhbXBvbGluZQogZW5kCiAKK21hY3JvIGludGVybmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShv
ZmZzZXRPZkZ1bmN0aW9uKQorICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQorICAgIHN0b3JlcCAwLCBD
b2RlQmxvY2tbY2ZyXQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAorICAgIGFuZHAgTWFya2Vk
QmxvY2tNYXNrLCB0MCwgdDEKKyAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV92bVt0MV0sIHQxCisg
ICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0MV0KKyAgICBpZiBBUk02NCBvciBDX0xP
T1AKKyAgICAgICAgc3RvcmVwIGxyLCBSZXR1cm5QQ1tjZnJdCisgICAgZW5kCisgICAgbW92ZSBj
ZnIsIGEwCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQxCisgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCisgICAgaWYgQ19MT09QCisgICAgICAgIGNsb29wQ2Fs
bE5hdGl2ZSBvZmZzZXRPZkZ1bmN0aW9uW3QxXQorICAgIGVsc2UKKyAgICAgICAgaWYgWDg2XzY0
X1dJTgorICAgICAgICAgICAgc3VicCAzMiwgc3AKKyAgICAgICAgZW5kCisgICAgICAgIGNhbGwg
b2Zmc2V0T2ZGdW5jdGlvblt0MV0KKyAgICAgICAgaWYgWDg2XzY0X1dJTgorICAgICAgICAgICAg
YWRkcCAzMiwgc3AKKyAgICAgICAgZW5kCisgICAgZW5kCisKKyAgICBsb2FkcCBDYWxsZWVbY2Zy
XSwgdDMKKyAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKKyAgICBsb2FkcCBNYXJrZWRCbG9j
azo6bV92bVt0M10sIHQzCisKKyAgICBidHFueiBWTTo6bV9leGNlcHRpb25bdDNdLCAuaGFuZGxl
RXhjZXB0aW9uCisKKyAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICByZXQKKworLmhhbmRsZUV4
Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgIGptcCBf
bGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQorZW5kCisKIG1hY3JvIGdldENv
bnN0YW50U2NvcGUoZHN0KQogICAgIGxvYWRwRnJvbUluc3RydWN0aW9uKDYsIHQwKQogICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbihkc3QsIHQxKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAppbmRleCA4MjMzNjgzODQzMjE2YjMwYmY5
NzQyNmRhOTQ4ODAyMzYwYjljNTBjLi40ZDg5YWNhYjNiZDVjOTg5NTlkY2EyMDk5OGFlZDA3OGY4
MDQzNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmNwcApAQCAtNTAsOCArNTAsMTEgQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5Q29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW4K
IEBlbmQKICovCiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJh
eUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKik7CisKIEFycmF5
Q29uc3RydWN0b3I6OkFycmF5Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFs
RnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEFycmF5Q29uc3RydWN0b3IsIGNvbnN0cnVjdFdp
dGhBcnJheUNvbnN0cnVjdG9yKQogewogfQogCkBAIC0xMDAsMjUgKzEwMywxMiBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0QXJy
YXlXaXRoU2l6ZVF1aXJrKGV4ZWMsIGFyZ3MsIGV4ZWMtPm5ld1RhcmdldCgpKSk7CiB9CiAKLUNv
bnN0cnVjdFR5cGUgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENv
bnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxBcnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0
IGFyZ3MoZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheVdp
dGhTaXplUXVpcmsoZXhlYywgYXJncywgSlNWYWx1ZSgpKSk7CiB9CiAKLUNhbGxUeXBlIEFycmF5
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsK
LSAgICAvLyBlcXVpdmFsZW50IHRvICduZXcgQXJyYXkoLi4uLiknCi0gICAgY2FsbERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY2FsbEFycmF5Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBl
OjpIb3N0OwotfQotCiBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGlzQXJyYXlTbG93SW5saW5l
KEV4ZWNTdGF0ZSogZXhlYywgUHJveHlPYmplY3QqIHByb3h5KQogewogICAgIFZNJiB2bSA9IGV4
ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0
cnVjdG9yLmgKaW5kZXggMTU4NDg4NWQwY2RlNjA4NzI3ZGM1OGRkNmQ3MjBmYWM0M2FkOGMxMy4u
NjE2NTJhYTdmM2RjMzNjNWY4OWZhNjYxNTNhYjljM2MzOTVmOTVhOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaApAQCAtNDYsNyArNDYs
NyBAQCBjbGFzcyBBcnJheUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewog
CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQog
CiBwcm90ZWN0ZWQ6CkBAIC01NCw5ICs1NCw2IEBAIGNsYXNzIEFycmF5Q29uc3RydWN0b3IgOiBw
dWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgQXJyYXlDb25zdHJ1Y3Rv
cihWTSYsIFN0cnVjdHVyZSopOwotCi0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3Ry
dWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBKU1ZhbHVlIGNvbnN0cnVjdEFy
cmF5V2l0aFNpemVRdWlyayhFeGVjU3RhdGUqLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiwgSlNH
bG9iYWxPYmplY3QqLCBKU1ZhbHVlIGxlbmd0aCwgSlNWYWx1ZSBwcm90b3R5cGUgPSBKU1ZhbHVl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5j
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggNTI3MjhmOTQ5ZDkyYzNiZTJiNmE5YTk0Yjc0
OWM5YmEyNmFkZDNiYS4uZDBlOWJkNzRmYTE3ZTM4NTAyNDMzNzQzMDQ5MWEzMDVhOTIzNjRmZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNiwxOCArMzYsNiBAQCBTVEFUSUNfQVNTRVJUX0lT
X1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKTsKIAogY29u
c3QgQ2xhc3NJbmZvIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXN5bmNG
dW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKSB9OwogCi1Bc3luY0Z1bmN0aW9uQ29uc3Ry
dWN0b3I6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQotewotfQotCi12b2lk
IEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBBc3luY0Z1
bmN0aW9uUHJvdG90eXBlKiBwcm90b3R5cGUpCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0sICJBc3luY0Z1bmN0aW9uIik7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7Ci19Ci0KIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKQEAgLTYwLDE2ICs0OCwx
NiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBc3luY0Z1
bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y29uc3RydWN0RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVl
KCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpBc3lu
YykpOwogfQogCi1DYWxsVHlwZSBBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6OmdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6
QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisg
ICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxBc3luY0Z1bmN0aW9uQ29u
c3RydWN0b3IsIGNvbnN0cnVjdEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcikKIHsKLSAgICBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOwotICAg
IHJldHVybiBDYWxsVHlwZTo6SG9zdDsKIH0KIAotQ29uc3RydWN0VHlwZSBBc3luY0Z1bmN0aW9u
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29u
c3RydWN0RGF0YSkKK3ZvaWQgQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUqIHByb3RvdHlwZSkKIHsKLSAgICBjb25z
dHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEFzeW5jRnVuY3Rpb25Db25zdHJ1
Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKKyAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSwgIkFzeW5jRnVuY3Rpb24iKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCmluZGV4IDAzNWEyYzFlNGY5MTVjYWMwYjRi
MTc3M2U2ZDA1ODllMjc0NzQ3ZDQuLjAzZWZkYmEyZTAxOTc2ZGQ3MDMwMDk3Njg5NGI2M2E3Njc3
Yjk4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fz
eW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCkBAIC00NiwxNCArNDYsMTIgQEAgY2xhc3MgQXN5bmNG
dW5jdGlvbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFs
RnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRl
OgogICAgIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oVk0mLCBBc3luY0Z1bmN0aW9uUHJvdG90eXBlKik7Ci0gICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3IuY3BwCmluZGV4IGFhYTZhMWY0ZjdjY2U1MmQ5YzFhYjY3OGU5ZDkyNTc3ZDFiMGIzNmIuLmM1
MzQxOTA4ZTk1ZGNkMzIyMmYwZjhlZTY4YzQxYTcwMzQzNTVlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzYsMjAgKzM2LDYgQEAgU1RBVElDX0FTU0VSVF9J
U19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rv
cik7CiAKIGNvbnN0IENsYXNzSW5mbyBBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3RvcikgfTsKIAotQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpBc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBB
c3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
QXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSogcHJvdG90eXBlKQotewotICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtLCAiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiIpOwotICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHBy
b3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotCi0gICAgLy8gTnVt
YmVyIG9mIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0b3IKLSAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0K
LQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFzeW5jR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdz
KGV4ZWMpOwpAQCAtNjIsMTYgKzQ4LDE4IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihFCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFs
RnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzLCBGdW5jdGlv
bkNvbnN0cnVjdGlvbk1vZGU6OkFzeW5jR2VuZXJhdG9yKSk7CiB9CiAKLUNhbGxUeXBlIEFzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmIGNhbGxEYXRhKQorQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpBc3luY0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
KyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEFzeW5jR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3RvciwgY29uc3RydWN0QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxBc3luY0dlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwogfQog
Ci1Db25zdHJ1Y3RUeXBlIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQordm9pZCBB
c3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
QXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSogcHJvdG90eXBlKQogewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0QXN5bmNHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OworICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtLCAiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiIpOworICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHBy
b3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworCisgICAgLy8gTnVt
YmVyIG9mIGFyZ3VtZW50cyBmb3IgY29uc3RydWN0b3IKKyAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCmlu
ZGV4IGI4ZjE1MGI1OWVlN2MzOTRiMWI4MTRjZTZlYWRiM2U0ZDc4NjBjNjEuLmJjNDRhYzZiNmEz
MDIwMzdkYzI2YTNlNzA0ZGM2NTgyNmMyNDg3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25z
dHJ1Y3Rvci5oCkBAIC00NiwxNCArNDYsMTIgQEAgY2xhc3MgQXN5bmNHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rp
b25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgogICAg
IEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBl
Kik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCmluZGV4IDY3YTAx
NWFiM2UxYTc4YTJhZDI2ODU3ODNhNjM4ZmVmY2JhYzcxOTEuLmYwYWIwNDI1M2U5MzM1MDFhYWFj
YmE4YjE2M2RjMzUzZjhjZTY2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcApAQCAtMzEsMTYgKzMxLDEwIEBAIFNUQVRJ
Q19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShCb29sZWFuQ29uc3RydWN0b3IpOwog
CiBjb25zdCBDbGFzc0luZm8gQm9vbGVhbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlv
biIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
Qm9vbGVhbkNvbnN0cnVjdG9yKSB9OwogCi1Cb29sZWFuQ29uc3RydWN0b3I6OkJvb2xlYW5Db25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5j
dGlvbih2bSwgc3RydWN0dXJlKQotewotfQotCi12b2lkIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBCb29sZWFuUHJvdG90eXBlKiBib29sZWFuUHJvdG90eXBlKQor
Ly8gRUNNQSAxNS42LjEKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxC
b29sZWFuQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtLCBib29sZWFuUHJvdG90eXBlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lKTsKLSAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90
eXBlLCBib29sZWFuUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7
Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxl
bmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oZXhlYy0+YXJndW1lbnQoMCkudG9Cb29sZWFuKGV4ZWMpKSk7CiB9CiAKIC8vIEVDTUEgMTUu
Ni4yCkBAIC01NiwyMiArNTAsMTYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGUKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iaik7CiB9CiAKLUNvbnN0cnVjdFR5cGUgQm9vbGVhbkNvbnN0
cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVj
dERhdGEpCitCb29sZWFuQ29uc3RydWN0b3I6OkJvb2xlYW5Db25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJl
LCBjYWxsQm9vbGVhbkNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoQm9vbGVhbkNvbnN0cnVjdG9y
KQogewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEJv
b2xlYW5Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKIH0KIAot
Ly8gRUNNQSAxNS42LjEKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxC
b29sZWFuQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQotewotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNCb29sZWFuKGV4ZWMtPmFyZ3VtZW50KDApLnRvQm9vbGVhbihleGVjKSkpOwot
fQotCi1DYWxsVHlwZSBCb29sZWFuQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJiBjYWxsRGF0YSkKK3ZvaWQgQm9vbGVhbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEJvb2xlYW5Qcm90b3R5cGUqIGJvb2xlYW5Qcm90b3R5cGUpCiB7Ci0gICAgY2Fs
bERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEJvb2xlYW5Db25zdHJ1Y3RvcjsKLSAgICByZXR1
cm4gQ2FsbFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGJvb2xlYW5Q
cm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOworICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGJvb2xlYW5Qcm90b3R5
cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwg
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KTsKIH0KIAogSlNPYmplY3QqIGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgaW1t
ZWRpYXRlQm9vbGVhblZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuQ29uc3RydWN0b3IuaAppbmRleCBiYjhjNWRmMmI1NGRjMDY4YjkzNDFlMWI3NzVk
NTE5MzMwZWI5YzkzLi4zNmVjYzlmNGRiYjE4MGU1NzkwODdiMjgxNmRjZjE3ZTg2ZDJlYjMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0
b3IuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBCb29sZWFuQ29uc3RydWN0b3IgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkgCiAgICAgeyAKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsgCiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01MCw4ICs1MCw2IEBAIGNs
YXNzIEJvb2xlYW5Db25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJp
dmF0ZToKICAgICBCb29sZWFuQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0
aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEm
KTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsK
IH07CiAKIEpTT2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCmluZGV4IGIyZjI5Y2ZkOWU3Nzkz
ZmE2M2U2MDllMzFhYjBlNDg5NTdjYTY3ZmQuLjY3OTk2NWNhYzVhYTI5MTQzNTI0ZGQzOTc2OGNi
OGQ3MmE4YjMyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnN0cnVjdG9yLmNwcApAQCAtNjgsOCArNjgsMTEgQEAgY29uc3QgQ2xhc3NJbmZvIERhdGVD
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19p
bmYKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKERhdGVDb25zdHJ1
Y3Rvcik7CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxEYXRlKEV4
ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aERhdGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogRGF0ZUNvbnN0cnVjdG9yOjpEYXRl
Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFs
RnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVj
dHVyZSwgY2FsbERhdGUsIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3IpCiB7CiB9CiAKQEAg
LTE1MywxMiArMTU2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0V2l0aERhdGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdERhdGUoZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMt
PmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgZXhlYy0+bmV3VGFyZ2V0KCksIGFyZ3MpKTsK
IH0KIAotQ29uc3RydWN0VHlwZSBEYXRlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlND
ZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRh
Lm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3I7Ci0gICAgcmV0
dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIC8vIEVDTUEgMTUuOS4yCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShFeGVjU3RhdGUqIGV4ZWMpCiB7CkBA
IC0xNjgsMTIgKzE2NSw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxEYXRlKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9u
dHJpdmlhbFN0cmluZygmdm0sIGZvcm1hdERhdGVUaW1lKHRzLCBEYXRlVGltZUZvcm1hdERhdGVB
bmRUaW1lLCBmYWxzZSkpKTsKIH0KIAotQ2FsbFR5cGUgRGF0ZUNvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY2FsbERhdGU7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQYXJzZShFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKaW5kZXggZmNlYTU1ZjhkZjZiMDAxYTA5MTljMDJjMmIw
YTI4MmE2ZjVhMGNjMy4uMzA3YzZkNTU0YjFiNDJhM2YwMGJjZGZkYTc2MmFiNDkxYTUwMjJkNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgK
QEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgRGF0ZUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Cisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01MSw4ICs1MSw2IEBAIGNsYXNzIERhdGVDb25z
dHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBEYXRl
Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIEpTT2JqZWN0KiBj
b25zdHJ1Y3REYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBuZXdUYXJn
ZXQsIGNvbnN0IEFyZ0xpc3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCmlu
ZGV4IDkwNjcxZDU3YTM0Y2NkNmIwYzg2ZTljZTc4MTE4NGU4NGE0MWYzYjYuLjRmYWVkMzc3YTBi
ZDJiMmI3MzRmZWE1YzM1MGQ0ODkyMzIzYjllNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3IuaApAQCAtMTA2LDcgKzEwNiw3IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1ZSB0aHJv
d1ZNRE9NQXR0cmlidXRlR2V0dGVyVHlwZUVycm9yKEV4ZWNTdGF0ZSogc3RhdGUsIFRocm93CiBj
bGFzcyBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
biB7CiBwcml2YXRlOgogICAgIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi0gICAgICAgIDogSW50
ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgICAgICA6IEludGVybmFsRnVuY3Rpb24o
dm0sIHN0cnVjdHVyZSwgY2FsbFRocm93VHlwZUVycm9yLCBjb25zdHJ1Y3RUaHJvd1R5cGVFcnJv
cikKICAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKICAgICB7CiAgICAgfQpAQCAtMTMxLDEy
ICsxMzEsNiBAQCBjbGFzcyBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24gOiBwdWJsaWMgSW50
ZXJuYWxGdW5jdGlvbiB7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkp
OwogICAgIH0KIAotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlND
ZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLSAgICB7Ci0gICAgICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0VGhyb3dUeXBlRXJyb3I7Ci0gICAg
ICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotICAgIH0KLQogICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxUaHJvd1R5cGVFcnJvcihFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgewogICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAtMTQ1LDE3ICsxMzks
MTEgQEAgY2xhc3MgU3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
IGNhbGxEYXRhKQotICAgIHsKLSAgICAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2Fs
bFRocm93VHlwZUVycm9yOwotICAgICAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci0gICAgfQot
CiAgICAgREVDTEFSRV9JTkZPOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7IAogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZGFhN2E5MDFlOTRj
MDFmODgyZmVhMDkyNTkzNjE0YmFiZmEyMjQzNi4uYjA0NGM4ZDI3MDdiMjMwZTE2ODU4ODI4OTQ2
YTg4YTk3MWI5OThmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgU1RBVElDX0FTU0VSVF9JU19U
UklWSUFMTFlfREVTVFJVQ1RJQkxFKEVycm9yQ29uc3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZv
IEVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShFcnJvckNvbnN0cnVjdG9yKSB9
OwogCiBFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIEludGVycHJldGVyOjpjYWxsRXJyb3JD
b25zdHJ1Y3RvciwgSW50ZXJwcmV0ZXI6OmNvbnN0cnVjdFdpdGhFcnJvckNvbnN0cnVjdG9yKQog
ewogfQogCkBAIC02MywxMiArNjMsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0KIAotQ29u
c3RydWN0VHlwZSBFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBJbnRlcnByZXRlcjo6Y29uc3RydWN0V2l0aEVycm9yQ29uc3RydWN0b3I7Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50ZXJwcmV0ZXI6OmNhbGxFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTc2LDEy
ICs3MCw2IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50ZXJwcmV0ZXI6OmNhbGxF
cnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwg
bnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUNhbGxUeXBlIEVycm9yQ29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBj
YWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBJbnRlcnByZXRlcjo6Y2FsbEVycm9yQ29uc3RydWN0
b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBib29sIEVycm9yQ29uc3RydWN0
b3I6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckNvbnN0cnVjdG9yLmgKaW5kZXggNjMwOTZiZDVjNDM3ODc3NzkzZjg2NTZjNTY5NzczOGY2
ZGQ5MjI0ZC4uYTBkZDFiMDVlNDkyZThlMGY5NmI1MTRhZTk1NDkwNGVkYTczYTRkZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaApAQCAt
NDIsNyArNDIsNyBAQCBjbGFzcyBFcnJvckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsg
Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7IAogICAgIH0KIAogICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHN0YWNrVHJhY2VMaW1p
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2tUcmFjZUxpbWl0OyB9CkBAIC01NSw4ICs1NSw2IEBA
IGNsYXNzIEVycm9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHBy
aXZhdGU6CiAgICAgRXJyb3JDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRp
YyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYp
OwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwog
CiAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbV9zdGFja1RyYWNlTGltaXQ7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9y
LmNwcAppbmRleCBmYTY3Y2Q1ZDUyM2MwZGM5OTMzODUzMGU0OTIwN2UxNWUxOTZkMDQ3Li5kODAz
NjE2NjhkNmJlYjJmNzkzYTM5OGVjNTcyNGIxMDkwYjIwOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzgs
NDEgKzM4LDI5IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShGdW5j
dGlvbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEZ1bmN0aW9uQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShGdW5jdGlvbkNvbnN0cnVjdG9yKSB9OwogCi1GdW5jdGlvbkNv
bnN0cnVjdG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCi17Ci19Ci0KLXZvaWQg
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBGdW5jdGlvblByb3Rv
dHlwZSogZnVuY3Rpb25Qcm90b3R5cGUpCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0s
IGZ1bmN0aW9uUHJvdG90eXBlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lKTsKLSAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBmdW5j
dGlvblByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpz
TnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pOwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RXaXRoRnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAg
QXJnTGlzdCBhcmdzKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0
RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9i
YWxPYmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpGdW5jdGlvbiwgZXhl
Yy0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBGdW5jdGlvbkNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEp
Ci17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoRnVu
Y3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQor
Ly8gRUNNQSAxNS4zLjEgVGhlIEZ1bmN0aW9uIENvbnN0cnVjdG9yIENhbGxlZCBhcyBhIEZ1bmN0
aW9uCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Db25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5h
bEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOwogfQog
Ci0vLyBFQ01BIDE1LjMuMSBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IgQ2FsbGVkIGFzIGEgRnVu
Y3Rpb24KLUNhbGxUeXBlIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJiBjYWxsRGF0YSkKK0Z1bmN0aW9uQ29uc3RydWN0b3I6OkZ1bmN0aW9uQ29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rp
b24odm0sIHN0cnVjdHVyZSwgY2FsbEZ1bmN0aW9uQ29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhG
dW5jdGlvbkNvbnN0cnVjdG9yKQoreworfQorCit2b2lkIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgRnVuY3Rpb25Qcm90b3R5cGUqIGZ1bmN0aW9uUHJvdG90eXBl
KQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxGdW5jdGlvbkNvbnN0cnVj
dG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSwgZnVuY3Rpb25Qcm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOworICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IGZ1bmN0aW9uUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7Cisg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0
aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSk7CiB9CiAKIC8vIEVDTUEgMTUuMy4yIFRoZSBGdW5jdGlvbiBDb25z
dHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25Db25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25D
b25zdHJ1Y3Rvci5oCmluZGV4IDEzYzM3ZmQ1MmYyM2Y3MmMyODk3N2M1MjIwMmViZmMzMDI3NzIw
MzQuLjdjZTNmNDg4NmRjMjM2YTk0YmQzNDUyZGQxYzBjZTMxNGVkZDhiNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAg
LTQ1LDE0ICs0NSwxMiBAQCBjbGFzcyBGdW5jdGlvbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAog
ICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7IAogICAgIH0KIAogcHJpdmF0ZToKICAgICBGdW5jdGlvbkNvbnN0cnVjdG9yKFZN
JiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEZ1bmN0aW9uUHJv
dG90eXBlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBlbnVtIGNsYXNzIEZ1bmN0aW9uQ29uc3RydWN0aW9u
TW9kZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
blByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5jcHAKaW5kZXggMThmOGI1ZWFkNTY0NDk2OGJlMjE1NzZjNjc1NjMyZDIxZTYwNTgy
Zi4uNDA4MGUzOTBmY2QwMGUwMTgzNjdhZTE0M2FkNDcwODZjNjRhYWU2MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcApAQCAt
NDMsOCArNDMsMTQgQEAgY29uc3QgQ2xhc3NJbmZvIEZ1bmN0aW9uUHJvdG90eXBlOjpzX2luZm8g
PSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIKIAogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUq
KTsKIAorLy8gRUNNQSAxNS4zLjQKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxGdW5jdGlvblByb3RvdHlwZShFeGVjU3RhdGUqKQoreworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKIEZ1bmN0aW9uUHJvdG90eXBlOjpGdW5jdGlv
blByb3RvdHlwZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxG
dW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0
dXJlLCBjYWxsRnVuY3Rpb25Qcm90b3R5cGUsIG51bGxwdHIpCiB7CiB9CiAKQEAgLTc3LDE4ICs4
Myw2IEBAIHZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6OmluaXRSZXN0cmljdGVkUHJvcGVydGllcyhF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0CiAgICAgcHV0RGlyZWN0QWNjZXNzb3IoZXhl
Yywgdm0ucHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLCBlcnJvckdldHRlclNldHRlciwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEZ1bmN0aW9uUHJvdG90
eXBlKEV4ZWNTdGF0ZSopCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKLX0KLQotLy8gRUNNQSAxNS4zLjQKLUNhbGxUeXBlIEZ1bmN0aW9uUHJvdG90eXBlOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY2FsbEZ1bmN0aW9uUHJvdG90eXBlOwotICAgIHJldHVybiBDYWxs
VHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblBy
b3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Q
cm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmgKaW5kZXggYmFmN2NjYjRiZDE5ZTc1MTlhOWRiMjM1NDI1MzMwZTIyZmI4YTQ1Zi4uOTM4
ODg3MDhmNDcxNDhhNmJjNzUxMTMxMWM3ZmY2MTE3ZDhlZDA1OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCkBAIC00MSw3ICs0MSw3
IEBAIGNsYXNzIEZ1bmN0aW9uUHJvdG90eXBlIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewog
CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykKICAgICB7Ci0gICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKEludGVybmFsRnVu
Y3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiAgICAgREVDTEFS
RV9JTkZPOwpAQCAtNTEsNyArNTEsNiBAQCBjbGFzcyBGdW5jdGlvblByb3RvdHlwZSA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBGdW5jdGlvblByb3RvdHlwZShW
TSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IGU1NGU2M2Y5MmIzZGQ4MmY3ZGJjMmE0ZDRlNTIxODA0OGVjNzdjN2Qu
LjM3NDNjNmExOWRmYWZkZTcyNmFjNTQ5Y2QxYjhkNGJmYWQxNjg2ZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9u
Q29uc3RydWN0b3IuY3BwCkBAIC0zNiwxOCArMzYsNiBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJ
QUxMWV9ERVNUUlVDVElCTEUoR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0
IENsYXNzSW5mbyBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJHZW5l
cmF0b3JGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcikgfTsKIAotR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0
dXJlKQotewotfQotCi12b2lkIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUqIGdlbmVyYXRvckZ1bmN0
aW9uUHJvdG90eXBlKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiR2VuZXJhdG9y
RnVuY3Rpb24iKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+cHJvdG90eXBlLCBnZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSwgUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotfQotCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsR2VuZXJhdG9yRnVuY3Rpb25Db25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwpAQCAt
NjAsMTYgKzQ4LDE2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhl
Yy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzLCBGdW5jdGlvbkNvbnN0cnVjdGlv
bk1vZGU6OkdlbmVyYXRvciwgZXhlYy0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotQ2FsbFR5cGUgR2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
IGNhbGxEYXRhKQorR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSW50ZXJu
YWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rv
ciwgY29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcikKIHsKLSAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAg
ICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7CiB9CiAKLUNvbnN0cnVjdFR5cGUgR2VuZXJhdG9yRnVu
Y3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
JiBjb25zdHJ1Y3REYXRhKQordm9pZCBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKiBnZW5lcmF0b3JG
dW5jdGlvblByb3RvdHlwZSkKIHsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNvbnN0cnVjdEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0
cnVjdFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sICJHZW5lcmF0b3JG
dW5jdGlvbiIpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wcm90b3R5cGUsIGdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCmluZGV4IGYyOGM3MWM3OGZlYzJl
NWRjZjBmNWVlNGYzZTViNmMyMmFkMGM3NTguLmY0NmQ4YzU5ZDU1NmUyMzExNDRiM2I2YmJiMDll
NmI4ZWNmMDFmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAgLTUyLDE0ICs1MiwxMiBA
QCBjbGFzcyBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CiAgICAgfQogCiBwcml2YXRlOgogICAgIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0m
LCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgR2VuZXJhdG9yRnVu
Y3Rpb25Qcm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApp
bmRleCAzZDNmZDFhYmMzNDMzYzViNDkxOWUwMWU0M2M1ZGU2NDA3ZDk3Yjc5Li5mMDNlM2NhNTFk
MDZmZjIzNDkwMzViMDAxNWM1YjU1ZjIzNDM2NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtMzQsMTggKzM0LDIxIEBA
IFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRlcm5hbEZ1bmN0aW9u
KTsKIAogY29uc3QgQ2xhc3NJbmZvIEludGVybmFsRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0
aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShJbnRlcm5hbEZ1bmN0aW9uKSB9OwogCi1JbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0
aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitJbnRlcm5hbEZ1bmN0aW9uOjpJbnRl
cm5hbEZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE5hdGl2ZUZ1bmN0aW9u
IGZ1bmN0aW9uRm9yQ2FsbCwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpCiAg
ICAgOiBKU0Rlc3RydWN0aWJsZU9iamVjdCh2bSwgc3RydWN0dXJlKQorICAgICwgbV9mdW5jdGlv
bkZvckNhbGwoZnVuY3Rpb25Gb3JDYWxsKQorICAgICwgbV9mdW5jdGlvbkZvckNvbnN0cnVjdChm
dW5jdGlvbkZvckNvbnN0cnVjdCA/IGZ1bmN0aW9uRm9yQ29uc3RydWN0IDogY2FsbEhvc3RGdW5j
dGlvbkFzQ29uc3RydWN0b3IpCiB7CiAgICAgLy8gZXhlYy0+dm0oKSB3YW50cyBjYWxsZWVzIHRv
IG5vdCBiZSBsYXJnZSBhbGxvY2F0aW9ucy4KICAgICBSRUxFQVNFX0FTU0VSVCghaXNMYXJnZUFs
bG9jYXRpb24oKSk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX2Z1bmN0aW9uRm9yQ2FsbCwg
IltbQ2FsbF1dIG11c3QgYmUgaW1wbGVtZW50ZWQiKTsKKyAgICBBU1NFUlQobV9mdW5jdGlvbkZv
ckNvbnN0cnVjdCk7CiB9CiAKIHZvaWQgSW50ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBjb25zdCBTdHJpbmcmIG5hbWUsIE5hbWVWaXNpYmlsaXR5IG5hbWVWaXNpYmlsaXR5
KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMo
dm0sIGluZm8oKSkpOwotICAgIEFTU0VSVChtZXRob2RUYWJsZSh2bSktPmdldENhbGxEYXRhICE9
IEludGVybmFsRnVuY3Rpb246OmluZm8oKS0+bWV0aG9kVGFibGUuZ2V0Q2FsbERhdGEpOwogICAg
IEpTU3RyaW5nKiBuYW1lU3RyaW5nID0ganNTdHJpbmcoJnZtLCBuYW1lKTsKICAgICBtX29yaWdp
bmFsTmFtZS5zZXQodm0sIHRoaXMsIG5hbWVTdHJpbmcpOwogICAgIGlmIChuYW1lVmlzaWJpbGl0
eSA9PSBOYW1lVmlzaWJpbGl0eTo6VmlzaWJsZSkKQEAgLTc4LDEwICs4MSwyMSBAQCBjb25zdCBT
dHJpbmcgSW50ZXJuYWxGdW5jdGlvbjo6ZGlzcGxheU5hbWUoVk0mIHZtKQogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KIAotQ2FsbFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmKQorQ2FsbFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q2FsbERhdGEo
SlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Ok5vbmU7CisgICAgYXV0byogZnVu
Y3Rpb24gPSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGNlbGwpOworICAgIEFTU0VSVChmdW5j
dGlvbi0+bV9mdW5jdGlvbkZvckNhbGwpOworICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGZ1bmN0aW9uLT5tX2Z1bmN0aW9uRm9yQ2FsbDsKKyAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
Cit9CisKK0NvbnN0cnVjdFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YShK
U0NlbGwqIGNlbGwsIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCit7CisgICAgYXV0byog
ZnVuY3Rpb24gPSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGNlbGwpOworICAgIGlmIChmdW5j
dGlvbi0+bV9mdW5jdGlvbkZvckNvbnN0cnVjdCA9PSBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1
Y3RvcikKKyAgICAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7CisgICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBmdW5jdGlvbi0+bV9mdW5jdGlvbkZvckNvbnN0cnVjdDsK
KyAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKIH0KIAogY29uc3QgU3RyaW5nIEludGVy
bmFsRnVuY3Rpb246OmNhbGN1bGF0ZWREaXNwbGF5TmFtZShWTSYgdm0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggM2E4ZjIyZWI4
OGUwZWJkYjg3ZDM0N2UzOTc0NmEyYmFjZDJmNTM5OC4uZWM0MmJiOGUyNDRkN2JhNDg2NTUyYjM4
NDA4MDFkOGQwNDI0ZjAyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGVybmFsRnVuY3Rpb24uaApAQCAtMjMsNiArMjMsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKICNpbmNsdWRlICJKU0Rlc3RydWN0
aWJsZU9iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTMwLDYgKzMxLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiBjbGFzcyBGdW5jdGlvblByb3RvdHlwZTsKIAogY2xhc3MgSW50ZXJuYWxGdW5j
dGlvbiA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CisgICAgZnJpZW5kIGNsYXNzIEpJ
VDsKKyAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogcHVibGljOgogICAg
IHR5cGVkZWYgSlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEltcGxlbWVudHNI
YXNJbnN0YW5jZSB8IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgfCBUeXBlT2ZTaG91bGRD
YWxsR2V0Q2FsbERhdGE7CkBAIC00NCwyMCArNDcsNDAgQEAgY2xhc3MgSW50ZXJuYWxGdW5jdGlv
biA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvKQogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dWJjbGFzc1N0cnVjdHVyZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG5ld1RhcmdldCwgU3RydWN0dXJl
Kik7CiAKKyAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbkZvcihDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQpCisgICAgeworICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkK
KyAgICAgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uRm9yQ2FsbDsKKyAgICAgICAgQVNTRVJUKGtp
bmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7CisgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uRm9yQ29u
c3RydWN0OworICAgIH0KKworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOYXRpdmVGdW5j
dGlvbkZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgeworICAgICAgICBpZiAo
a2luZCA9PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
SW50ZXJuYWxGdW5jdGlvbiwgbV9mdW5jdGlvbkZvckNhbGwpOworICAgICAgICBBU1NFUlQoa2lu
ZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihJ
bnRlcm5hbEZ1bmN0aW9uLCBtX2Z1bmN0aW9uRm9yQ29uc3RydWN0KTsKKyAgICB9CisKIHByb3Rl
Y3RlZDoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBJbnRlcm5hbEZ1bmN0aW9uKFZNJiwgU3RydWN0
dXJlKik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgSW50ZXJuYWxGdW5jdGlvbihWTSYsIFN0cnVj
dHVyZSosIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ2FsbCwgTmF0aXZlRnVuY3Rpb24gZnVu
Y3Rpb25Gb3JDb25zdHJ1Y3QpOwogCiAgICAgZW51bSBjbGFzcyBOYW1lVmlzaWJpbGl0eSB7IFZp
c2libGUsIEFub255bW91cyB9OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBjb25zdCBTdHJpbmcmIG5hbWUsIE5hbWVWaXNpYmlsaXR5ID0gTmFtZVZpc2li
aWxpdHk6OlZpc2libGUpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmVTbG93KEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmV3VGFy
Z2V0LCBTdHJ1Y3R1cmUqKTsKIAotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDb25zdHJ1Y3RU
eXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOworICAgIEpTX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYpOworCisgICAgTmF0aXZlRnVuY3Rpb24gbV9mdW5jdGlvbkZvckNhbGw7CisgICAgTmF0aXZl
RnVuY3Rpb24gbV9mdW5jdGlvbkZvckNvbnN0cnVjdDsKICAgICBXcml0ZUJhcnJpZXI8SlNTdHJp
bmc+IG1fb3JpZ2luYWxOYW1lOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGQxYTE4NGYz
YzE2MjI2NjhlNTFjNmM1NDU5YTk1NmI1Y2NkMWE1MjcuLjAzYjg3YjA2NTk3NDYwNmY5MzFiMWFh
NDMwZTM2MjM5YmEwY2IyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ5LDYgKzQ5LDkgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9yQ29uc3RydWN0
b3JGdW5jU3VwcG9ydGVkTG9jYWxlc08KIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsQ29sbGF0b3IoRXhlY1N0YXRlKik7Citz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3Io
RXhlY1N0YXRlKik7CisKIGNvbnN0IENsYXNzSW5mbyBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAmY29sbGF0
b3JDb25zdHJ1Y3RvclRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEludGxDb2xs
YXRvckNvbnN0cnVjdG9yKSB9OwogCiAvKiBTb3VyY2UgZm9yIEludGxDb2xsYXRvckNvbnN0cnVj
dG9yLmx1dC5oCkBAIC02NiwxMSArNjksMTEgQEAgSW50bENvbGxhdG9yQ29uc3RydWN0b3IqIElu
dGxDb2xsYXRvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnUKIAog
U3RydWN0dXJlKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0g
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIElu
dGxDb2xsYXRvckNvbnN0cnVjdG9yOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJl
KQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsSW50bENvbGxhdG9y
LCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3IpCiB7CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxDb2xsYXRvcihFeGVjU3Rh
dGUqIHN0YXRlKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29sbGF0b3IpOwogfQogCi1D
b25zdHJ1Y3RUeXBlIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RJbnRsQ29sbGF0b3I7Ci0gICAgcmV0dXJuIENv
bnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIEludGxDb2xsYXRvckNvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEludGxDb2xsYXRvcjsKLSAgICByZXR1cm4gQ2FsbFR5
cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9y
Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKEV4ZWNTdGF0ZSogc3RhdGUpCiB7CiAg
ICAgVk0mIHZtID0gc3RhdGUtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaAppbmRleCBjZjM0NjhmYjEzMDUw
ZDE3MjZmZGMxZjNiZjdjMmIzZmRlOTFhMmMwLi4wZGI4NmM3MmQ0ZmExOWVhZmY5MWI4YjFmMDEy
ZmFjNmU2ZGYyYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmgKQEAgLTUxLDggKzUxLDYgQEAgY2xhc3MgSW50
bENvbGxhdG9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZh
dGU6CiAgICAgSW50bENvbGxhdG9yQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBz
dGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
KTsKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7
CiAgICAgCiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9jb2xsYXRvclN0cnVjdHVyZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZv
cm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCA1MDEwZTE3NTY0MjY3MjYzZThhZGFm
YjM4NWE4ZDhiYjM0OTg0NDhiLi41YWY4MmFiYTMxMjdlNWRiNWVkYmE5ODk2YjczNjExMmU1NmFl
ZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRp
bWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC02NiwxMSArNjYsMTQgQEAg
SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IqIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVj
dG9yOjpjcmVhdGUoVk0mIHZtLCBTdHIKIAogU3RydWN0dXJlKiBJbnRsRGF0ZVRpbWVGb3JtYXRD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQoRXhl
Y1N0YXRlKik7CisKIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpJbnRsRGF0ZVRpbWVG
b3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50
ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwg
c3RydWN0dXJlLCBjYWxsSW50bERhdGVUaW1lRm9ybWF0LCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVG
b3JtYXQpCiB7CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbEludGxEYXRlVGltZUZvcm1hdChFeGVjU3RhdGUqIHN0YXRlKQog
ICAgIH0pKTsKIH0KIAotQ29uc3RydWN0VHlwZSBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rv
cjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRh
KQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SW50bERh
dGVUaW1lRm9ybWF0OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxs
VHlwZSBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxJbnRsRGF0ZVRpbWVGb3JtYXQ7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9y
RnVuY1N1cHBvcnRlZExvY2FsZXNPZihFeGVjU3RhdGUqIHN0YXRlKQogewogICAgIFZNJiB2bSA9
IHN0YXRlLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmgKaW5kZXggZjFiYTI2N2NiOTNm
ODc1ODE1ZTQ5YmYxNzliYTljYzU1M2YwNjlkMy4uOGU2MTA2NTA4M2EwMjEwY2ZhZjNkMjUzMDhi
YTM5YTk0ZGFlYmJjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5oCkBAIC01MSw4ICs1MSw2
IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9y
KFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJl
bihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgIAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IG1fZGF0ZVRpbWVGb3JtYXRTdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcApp
bmRleCAyZjZlYWRmYjhhYjU3MTZjZGQzNzJkNTkwYWMxZjliNTZiOWMzNzEzLi4yOTcyMTBjNmRl
OGMxODVmZmViYzVmNjhhZTkzODhkY2JkMGQ1OTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5j
cHAKQEAgLTY2LDExICs2NiwxNCBAQCBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IqIEludGxO
dW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dQogCiBTdHJ1Y3R1
cmUqIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKElu
dGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKK3N0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsTnVtYmVyRm9ybWF0KEV4ZWNT
dGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50
bE51bWJlckZvcm1hdChFeGVjU3RhdGUqKTsKKwogSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9y
OjpJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFs
RnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEludGxOdW1iZXJGb3JtYXQsIGNvbnN0cnVjdElu
dGxOdW1iZXJGb3JtYXQpCiB7CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxOdW1iZXJGb3JtYXQoRXhlY1N0YXRlKiBz
dGF0ZSkKICAgICB9KSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgSW50bE51bWJlckZvcm1hdENvbnN0
cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVj
dERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RJ
bnRsTnVtYmVyRm9ybWF0OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1D
YWxsVHlwZSBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBj
YWxsSW50bE51bWJlckZvcm1hdDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVu
Y1N1cHBvcnRlZExvY2FsZXNPZihFeGVjU3RhdGUqIHN0YXRlKQogewogICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaAppbmRleCBkNzYyMTYxZGRhMjM5YmNiNWM5
MTg5MmEwMjVjODU4ZDA0NDhkZmVhLi5lNDNkZWEzZWUyMGM4OTcwODUwMWY2NWJhMDEzZTQyMDhk
YjExOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaApAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBJ
bnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAK
IHByaXZhdGU6CiAgICAgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJl
Kik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90
VmlzaXRvciYpOwogICAgIAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fbnVtYmVyRm9y
bWF0U3RydWN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZGJiMzczYzhmNTg1YTNjMWMw
NjZjYzQzZWUyODgxMjdhNjBmMTAyYy4uYmYyZTkxN2VmYTEwOWNmZmY0ZmI5ZDNmOGE1ZTY2NTRm
OGNhODhiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCkBAIC00NCw4ICs0NCwxMSBAQCBjb25zdCBD
bGFzc0luZm8gSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7CiAgICAgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IpCiB9OwogCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlCdWZmZXIoRXhlY1N0YXRlKik7Citz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihF
eGVjU3RhdGUqKTsKKwogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpKU0FycmF5QnVmZmVyQ29u
c3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQXJyYXlCdWZmZXJTaGFyaW5n
TW9kZSBzaGFyaW5nTW9kZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSwgY2FsbEFycmF5QnVmZmVyLCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcikKICAg
ICAsIG1fc2hhcmluZ01vZGUoc2hhcmluZ01vZGUpCiB7CiB9CkBAIC03Nyw3ICs4MCw3IEBAIFN0
cnVjdHVyZSogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoCiAgICAg
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
IHsKICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoCi0gICAgICAgIHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOworICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVy
bmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFycmF5QnVmZmVyKEV4ZWNTdGF0
ZSogZXhlYykKQEAgLTEyMSwxOSArMTI0LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEFycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBl
RXJyb3IoZXhlYywgc2NvcGUsICJBcnJheUJ1ZmZlciIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBK
U0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoCi0gICAgSlNDZWxsKiwg
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEFycmF5QnVmZmVyOwotICAgIHJldHVybiBDb25zdHJ1Y3RU
eXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjYWxsQXJyYXlCdWZmZXI7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0
OwotfQotCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIC8vIEVDTUEgMjQuMS4zLjEKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVj
dG9yLmgKaW5kZXggOWM3NTMyNDg4Njc5ZTIyMzMyZjVkNDNhYjJlZDE5MjdmYTg3MTZiYy4uNzk0
ZmY4Njg2MzM2YzIwODNhMjZjNTE4MTdhMjVlMDRmZGM5OThkYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgK
QEAgLTUwLDEwICs1MCw2IEBAIGNsYXNzIEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICAKICAgICBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlIHNo
YXJpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9zaGFyaW5nTW9kZTsgfQogCi1wcm90ZWN0ZWQ6
Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25z
dHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJik7Ci0KIHByaXZhdGU6CiAgICAgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBtX3NoYXJp
bmdNb2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaAppbmRleCAzZjE4
ZTBlZmM2MjgyNTllMzc3NjNiMjlmN2NmZTVkODJjNWJiOGViLi43YjZkZmQ0NGMxYjYzODgwNmQ1
ZWFkOGMyMGFlYjU3NmUxNmNiZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rv
ci5oCkBAIC01NywxMCArNTcsNiBAQCBjbGFzcyBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogI2VuZGlmCiAgICAgCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1Zh
bHVlIHByb3RvdHlwZSk7Ci0KLXByb3RlY3RlZDoKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgK
aW5kZXggY2IyNDY5NzlmNjFiOGYwMGFkZTdmZmVhY2I0NmU1ZDRhNzUwNGVjNi4uNDU1ZDI0Y2M5
M2Y1MTBmY2ExODM2MWZmMDc1ZWI0NDhlYTIwNWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGlu
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC0zOCw4ICszOCwxNCBAQAogbmFtZXNwYWNl
IEpTQyB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxHZW5lcmljVHlwZWRBcnJheVZpZXcoRXhlY1N0YXRlKik7
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSopOworCit0ZW1w
bGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVj
dG9yPFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6
IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEdlbmVyaWNUeXBlZEFycmF5VmlldzxWaWV3Q2xhc3M+
LCBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPikKIHsKIH0KIApAQCAt
NzMsNyArNzksNyBAQCBTdHJ1Y3R1cmUqIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0
b3I8Vmlld0NsYXNzPjo6Y3JlYXRlU3RydWN0dXJlKAogICAgIFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7CiAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKAotICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgdm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+
CkBAIC0xOTUsOSArMjAxLDYgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlw
ZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKEV4ZWNTdGF0ZSogZXhlYywgU3QKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXcoRXhlY1N0YXRlKik7Ci0KLXRlbXBsYXRlPHR5cGVu
YW1lIFZpZXdDbGFzcz4KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwpAQCAtMjQ1LDEzICsyNDgsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUNvbnN0cnVjdFR5cGUgSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCos
IENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPjsK
LSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUg
Vmlld0NsYXNzPgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVy
aWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKQEAgLTI1OSwxMSArMjU1LDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0
aW9uVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBWaWV3Q2xhc3M6OmluZm8oKS0+Y2xhc3NOYW1lKSk7
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUNhbGxUeXBlIEpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8Vmlld0NsYXNzPjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6
Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwCmluZGV4IGQyMTYxMTE3
NjFhNDA2NWFjYTkzMWM0ZThmY2VkNWRmZDRkMDczNDkuLjAxMmIxMTlkY2VmNzU5ZWMyOGU1Mzdi
MTdiNDRmNzNiYTQzNTBjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5jcHAKQEAgLTcwLDExICs3MCwxNSBAQCBKU1By
b21pc2VDb25zdHJ1Y3RvciogSlNQcm9taXNlQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLAogCiBTdHJ1Y3R1cmUqIEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKIH0KIAorCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsUHJvbWlzZShFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdFByb21pc2UoRXhlY1N0YXRlKik7CisKIEpTUHJvbWlzZUNvbnN0cnVjdG9y
OjpKU1Byb21pc2VDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsUHJv
bWlzZSwgY29uc3RydWN0UHJvbWlzZSkKIHsKIH0KIApAQCAtMTE4LDIwICsxMjIsNCBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUHJvbWlzZShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVD
YWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCAiUHJvbWlzZSIpKTsKIH0KIAot
Q29uc3RydWN0VHlwZSBKU1Byb21pc2VDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0UHJvbWlzZTsKLSAgICByZXR1cm4gQ29uc3RydWN0
VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgSlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICAvLyBGSVhNRTogVGhpcyBp
cyB3b3JrYXJvdW5kLiBTaW5jZSBKU0MgZG9lcyBub3QgZXhwb3NlIEBpc0NvbnN0cnVjdG9yIHRv
IEpTIGJ1aWx0aW5zLAotICAgIC8vIHdlIHVzZSB0eXBlb2YgZnVuY3Rpb24gPT09ICJmdW5jdGlv
biIgbm93LiBBbmQgc2luY2UgdHlwZW9mIGNvbnN0cnVjdG9yV2l0aG91dENhbGxhYmlsaXR5Ci0g
ICAgLy8gcmV0dXJucyAib2JqZWN0Iiwgd2UgbmVlZCB0byBkZWZpbmUgW1tDYWxsXV0gZm9yIG5v
dy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDkz
Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFByb21pc2U7Ci0gICAgcmV0dXJu
IENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5oCmluZGV4IDBi
ZWNhMDRlMjBhMzI3MDY5ODUxNzJiMzNkNzYwZTJmMzU4MTdiNmUuLmE4NDlhZDc0MWFhODk3NDJl
ZWRiMGEwYzA3NjZkMTNlZWNjMzU5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuaApAQCAtNDgsOSArNDgsNiBAQCBjbGFz
cyBKU1Byb21pc2VDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNQcm9taXNlUHJvdG90eXBlKiwgR2V0dGVyU2V0dGVy
Kik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0KICAgICB2b2lkIGFkZE93bkludGVybmFsU2xvdHMo
Vk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1R5cGUuaAppbmRleCBjMDE3MDIzNGUyODZhYjc3MDg5ZThhZjE4MjFlNzQwNjQzMzFhZjJlLi44
NTM1NmQzOTc3YWVkNWM3M2I4OWFmZjA1Yzk3YzI0MmY5NWJiNGVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1R5cGUuaApAQCAtNTksNiArNTksNyBAQCBlbnVtIEpTVHlwZSA6IHVp
bnQ4X3QgewogICAgIEZpbmFsT2JqZWN0VHlwZSwKICAgICBKU0NhbGxlZVR5cGUsCiAgICAgSlNG
dW5jdGlvblR5cGUsCisgICAgSW50ZXJuYWxGdW5jdGlvblR5cGUsCiAgICAgTnVtYmVyT2JqZWN0
VHlwZSwKICAgICBFcnJvckluc3RhbmNlVHlwZSwKICAgICBQdXJlRm9yd2FyZGluZ1Byb3h5VHlw
ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3BwCmluZGV4IDdiNDZlNjQ0ZjE4N2QxNGZiZTc2OTRj
MzA4NjNiNjIyOWY3YjRlZDUuLjJjODA1ZjVlNGQ2ZjIyYjI3OGY4ODQ3MTg2YzkwYTA5ZWQxZDQ2
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcApAQCAtMzcsOCArMzcsMTAgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdFR5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSopOworCiBKU1R5cGVkQXJyYXlWaWV3Q29uc3Ry
dWN0b3I6OkpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0
dXJlLCBjb25zdHJ1Y3RUeXBlZEFycmF5VmlldywgY29uc3RydWN0VHlwZWRBcnJheVZpZXcpCiB7
CiB9CiAKQEAgLTU4LDcgKzYwLDcgQEAgdm9pZCBKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIFN0cnVjdHVy
ZSogSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoCiAgICAgVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsK
LSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAog
CkBAIC03MCwxNiArNzIsNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiJVR5cGVkQXJyYXklIHNob3Vs
ZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IikpOwogfQogCi1Db25zdHJ1Y3RUeXBlIEpTVHlwZWRB
cnJheVZpZXdDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY29uc3RydWN0VHlwZWRBcnJheVZpZXc7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhv
c3Q7Ci19Ci0KLUNhbGxUeXBlIEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3OwotICAgIHJldHVybiBDYWxsVHlwZTo6
SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCmluZGV4
IGQ3ODE3ZTI1ZjFlMTI5ZjUyMzU2ODI5Yjg5MDUwN2NlYzcwMDg1ZTIuLjQxNDVjY2NlNThjZWNl
ZTcxYzg5MTE0Zjc2NWM3MjJmMzk1MjFlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCkBAIC01
MSw5ICs1MSw2IEBAIGNsYXNzIEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvciA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKICAgICBERUNMQVJFX0lORk87CiAKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90
eXBlKTsKLXByb3RlY3RlZDoKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcApp
bmRleCBiMGQ0OWI1ZDViYjUwODM0OTlhYjQzN2U4NzIxNjhkNGRjMmZkNjlkLi43OWY4NDc5ZGQy
ZmU3MzM0NjgzZTUwNmU2Y2U4YzJkN2VhOThmMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwCkBAIC00Nyw2ICs0NywxNCBAQCB2b2lk
IE1hcENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIE1hcFByb3RvdHlwZSogbWFw
UHJvdG90eXBlLCBHZXR0ZXJTZQogICAgIHB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3Iodm0sIHZt
LnByb3BlcnR5TmFtZXMtPnNwZWNpZXNTeW1ib2wsIHNwZWNpZXNTeW1ib2wsIFByb3BlcnR5QXR0
cmlidXRlOjpBY2Nlc3NvciB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxNYXAoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RNYXAoRXhlY1N0YXRlKik7CisKK01hcENvbnN0cnVjdG9yOjpNYXBD
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwg
c3RydWN0dXJlLCBjYWxsTWFwLCBjb25zdHJ1Y3RNYXApCit7Cit9CisKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxNYXAoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC0xMTIsMTggKzEyMCw2IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE1hcChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShtYXApOwogfQogCi1Db25zdHJ1Y3RUeXBlIE1hcENvbnN0cnVj
dG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERh
dGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RNYXA7
Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIE1hcENvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAg
Y2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE1hcDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6
Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNN
YXBCdWNrZXRIZWFkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBU1NFUlQoaXNKU01hcChleGVj
LT5hcmd1bWVudCgwKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENv
bnN0cnVjdG9yLmgKaW5kZXggYzQ4YTM1YWQwNTI4YTFmODM3OGVmMDRmODMzMmUxZTUwNTE5ODUz
OS4uNjQ1NzFjNzUxZDY1MDk2MDZlNGE4MjcwY2Q3ZjUxOTY5YjlkMzVjMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oCkBAIC00NywxNyArNDcs
MTMgQEAgY2xhc3MgTWFwQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
SW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgTWFwQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKLSAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KKyAgICBNYXBD
b25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOworCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihW
TSYsIE1hcFByb3RvdHlwZSosIEdldHRlclNldHRlciogc3BlY2llc1N5bWJvbCk7Ci0gICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
CiB9OwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVj
a2V0SGVhZChFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTdmYzFjNGFmNTA4ZDAw
YjZiZGNlM2UxZTJlZDU2MGJmZTYxZWQ3OS4uNWZkM2E2Nzc2N2YwMTMwYmVjYjNhNjZjODY5YWU3
ZGMyMmE3OGI0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgU1RBVElDX0FT
U0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKE5hdGl2ZUVycm9yQ29uc3RydWN0b3IpOwog
Y29uc3QgQ2xhc3NJbmZvIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0
aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShOYXRpdmVFcnJvckNvbnN0cnVjdG9yKSB9OwogCiBOYXRpdmVFcnJvckNv
bnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRl
cm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIEludGVycHJldGVyOjpjYWxsTmF0aXZlRXJyb3JD
b25zdHJ1Y3RvciwgSW50ZXJwcmV0ZXI6OmNvbnN0cnVjdFdpdGhOYXRpdmVFcnJvckNvbnN0cnVj
dG9yKQogewogfQogCkBAIC03MywxMiArNzMsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGVycHJldGVyOjpjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihFeAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVy
cm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0K
IAotQ29uc3RydWN0VHlwZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBJbnRlcnByZXRlcjo6Y29uc3RydWN0V2l0aE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0gICAg
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpjYWxsTmF0aXZlRXJy
b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0g
ZXhlYy0+YXJndW1lbnQoMCk7CkBAIC04NiwxMCArODAsNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGVycHJldGVyOjpjYWxsTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZXhl
YywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkp
OwogfQogCi1DYWxsVHlwZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gSW50ZXJwcmV0ZXI6OmNhbGxOYXRpdmVFcnJvckNvbnN0cnVjdG9yOwotICAgIHJldHVybiBD
YWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKaW5kZXgg
MTZlNzcyZDdkNmUxM2RmZTFlYzRlYWZmNjJmMDQ5MmYwNGQ3NmU4NS4uZDJiODA5NzIzMmViNGM1
MTA4NGRkYjFiZTI4YWNjNDZjMGFhMjhlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaApAQCAtNDQsNyArNDQsNyBA
QCBjbGFzcyBOYXRpdmVFcnJvckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAg
fQogCiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSgpIHsgcmV0dXJuIG1fZXJyb3JTdHJ1
Y3R1cmUuZ2V0KCk7IH0KQEAgLTU0LDggKzU0LDYgQEAgY2xhc3MgTmF0aXZlRXJyb3JDb25zdHJ1
Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBOYXRpdmVF
cnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5
cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGljIHZv
aWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgV3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4gbV9lcnJvclN0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uY3BwCmluZGV4IGJhNDZiMzAyYzgy
YTQyYjdiZjZkZGQ4OGYwNDZkZTQ4NWQ4NjAxZTIuLmE1NmNhYjNmYWU3OWVlOTQ1ZTY5NzY2MjRh
MTY0YjViMThkOGY0YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bGxHZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVsbEdldHRlckZ1bmN0aW9uLmNwcApAQCAtNDAsMTUgKzQwLDkgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJldHVyblVuZGVmaW5lZChFeGVjU3RhdGUqKQog
fQogfQogCi1DYWxsVHlwZSBOdWxsR2V0dGVyRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJiBjYWxsRGF0YSkKK051bGxHZXR0ZXJGdW5jdGlvbjo6TnVsbEdldHRlckZ1bmN0
aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUsIE51bGxHZXR0ZXJGdW5jdGlvbkludGVybmFsOjpjYWxsUmV0dXJuVW5kZWZpbmVkLCBudWxs
cHRyKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IE51bGxHZXR0ZXJGdW5jdGlv
bkludGVybmFsOjpjYWxsUmV0dXJuVW5kZWZpbmVkOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9z
dDsKLX0KLQotQ29uc3RydWN0VHlwZSBOdWxsR2V0dGVyRnVuY3Rpb246OmdldENvbnN0cnVjdERh
dGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpCi17Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6
Ok5vbmU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bGxHZXR0ZXJGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bEdldHRlckZ1bmN0aW9uLmgKaW5kZXggNjMzOTc3MzcyYjMxOTE0NzdiOTRhNzkzZjgxZTIxZWJk
YzgwOGZhNS4uMWYzMDdkN2MwODE1YjMwZmMyMGY5OWEzYzZlY2E1Y2EzZTQxMzE5NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmgK
QEAgLTQ0LDE2ICs0NCwxMSBAQCBjbGFzcyBOdWxsR2V0dGVyRnVuY3Rpb24gOiBwdWJsaWMgSW50
ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTnVsbEdldHRlckZ1bmN0aW9uKFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQot
ICAgIHsKLSAgICB9Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShK
U0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJik7CisgICAgTnVsbEdldHRlckZ1bmN0aW9uKFZNJiwgU3RydWN0
dXJlKik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCmluZGV4IDZhZjBkMWE4NWRm
MjBmZjA4MWE5ODdjZmRkZGE2N2Q1MWFiNmUwZTYuLmNkZDExMmViYmYxZWI1YTU5MThjOTY1NzMx
N2NkN2RiZGE3NDZjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcApAQCAtODIsMTUgKzgyLDkgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJldHVyblVuZGVmaW5lZChFeGVjU3RhdGUqIGV4
ZWMpCiB9CiB9CiAKLUNhbGxUeXBlIE51bGxTZXR0ZXJGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQorTnVsbFNldHRlckZ1bmN0aW9uOjpOdWxsU2V0dGVy
RnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSwgTnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OmNhbGxSZXR1cm5VbmRlZmluZWQs
IG51bGxwdHIpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gTnVsbFNldHRlckZ1
bmN0aW9uSW50ZXJuYWw6OmNhbGxSZXR1cm5VbmRlZmluZWQ7Ci0gICAgcmV0dXJuIENhbGxUeXBl
OjpIb3N0OwotfQotCi1Db25zdHJ1Y3RUeXBlIE51bGxTZXR0ZXJGdW5jdGlvbjo6Z2V0Q29uc3Ry
dWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJikKLXsKLSAgICByZXR1cm4gQ29uc3RydWN0
VHlwZTo6Tm9uZTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdWxsU2V0dGVyRnVuY3Rpb24uaAppbmRleCA3YzRkOTY0MGY5ZjU5MDlhMDhjNThmZTBlZTlh
NTI3NmExYmZmOWNlLi4wNTE1MDNkZTNmODg2YWFmY2NiOGU4YTk4YTBjMzIyM2M2NTc5YWY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rp
b24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rp
b24uaApAQCAtNDQsMTYgKzQ0LDExIEBAIGNsYXNzIE51bGxTZXR0ZXJGdW5jdGlvbiA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBOdWxsU2V0dGVyRnVuY3Rpb24o
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUpCi0gICAgewotICAgIH0KLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKKyAgICBOdWxsU2V0dGVyRnVuY3Rpb24oVk0mLCBT
dHJ1Y3R1cmUqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IGIzMTE0Mjcw
YTQzYTJjODY2OTdkNTM1ZGM2MmQ4OTIzNjNkMjI0OGQuLmUzY2MxZWI4ODZlMmNiZGUzZjFjZTM2
NzQxZGE5NWRkMzI1ZTczYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTUzLDggKzUzLDExIEBAIGNvbnN0IENsYXNz
SW5mbyBOdW1iZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxG
dW5jdGlvbjo6c19pCiBAZW5kCiAqLwogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsTnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
KTsKKwogTnVtYmVyQ29uc3RydWN0b3I6Ok51bWJlckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisg
ICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxOdW1iZXJDb25zdHJ1Y3Rv
ciwgY29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3IpCiB7CiB9CiAKQEAgLTgwLDcgKzgzLDcgQEAg
dm9pZCBOdW1iZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBOdW1iZXJQcm90
b3R5cGUqIG51bWJlclByb3RvdHlwZSkKIH0KIAogLy8gRUNNQSAxNS43LjEKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0g
ZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC05NCwyNCArOTcsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0V2l0aE51bWJlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXgKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKG9iamVjdCk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgTnVtYmVyQ29uc3RydWN0
b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhO
dW1iZXJDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQog
Ly8gRUNNQSAxNS43LjIKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxO
dW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcighZXhlYy0+YXJndW1lbnRDb3VudCgpID8gMCA6IGV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KDApLnRvTnVtYmVyKGV4ZWMpKSk7CiB9CiAKLUNhbGxUeXBlIE51bWJlckNv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0g
ICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE51bWJlckNvbnN0cnVjdG9yOwotICAg
IHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogLy8gRUNNQS0yNjIgMjAuMS4yLjMKIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50
ZWdlcihFeGVjU3RhdGUqIGV4ZWMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAppbmRleCA1MWU0ZmEzMDQ5YjNkNGEzMWVjZDRiNDg3
NDcyYjcxODA0NTBiZWM4Li4xMGY1OGEyNWVjZGY2MzgwZWRlNTY5YjRiZGUxZDkyNzQ5ZmQ1ZmY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1
Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgTnVtYmVyQ29uc3RydWN0b3IgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAK
ICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsg
CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
bywgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsgCiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01MSw4ICs1MSw2IEBAIGNsYXNzIE51bWJlckNv
bnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIE51
bWJlckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5
cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dENvbnN0cnVjdG9yLmNwcAppbmRleCBmNjcwYmQzMjQwMDc2NGYzOWE2MWYzNDRkNDhjYTZiZDM2
ODhjZWIwLi41M2RiOTI2MTNjZTUwYTIyMGM5OTRiOTY0ZTFkMjU2YmRhNzk0OGM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3Bw
CkBAIC05MCw4ICs5MCwxMiBAQCBjb25zdCBDbGFzc0luZm8gT2JqZWN0Q29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogQGVuZAogKi8KIAor
CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2JqZWN0Q29uc3RydWN0
b3IoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKik7CisKIE9iamVjdENvbnN0cnVj
dG9yOjpPYmplY3RDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlv
bih2bSwgc3RydWN0dXJlLCBjYWxsT2JqZWN0Q29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhPYmpl
Y3RDb25zdHJ1Y3RvcikKIHsKIH0KIApAQCAtMTQzLDIzICsxNDcsMTEgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE9iamVjdENvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdE9iamVjdChl
eGVjLCBleGVjLT5uZXdUYXJnZXQoKSkpOwogfQogCi1Db25zdHJ1Y3RUeXBlIE9iamVjdENvbnN0
cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVj
dERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RX
aXRoT2JqZWN0Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19
Ci0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxPYmplY3RDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25z
dHJ1Y3RPYmplY3QoZXhlYywgSlNWYWx1ZSgpKSk7CiB9CiAKLUNhbGxUeXBlIE9iamVjdENvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAg
Y2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE9iamVjdENvbnN0cnVjdG9yOwotICAgIHJl
dHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggMTBmOTJkMmM5MmMwMTRkMWYwMjllZGZlN2E1Mzk3
ZWMzMzE3YTE3Ni4uM2JkMDMwYWZkZWRhZGJjNzczNmU2N2ExNjA4OGU2NmI1OTI4NjRmOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5o
CkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIE9iamVjdENvbnN0cnVjdG9yIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01OCw4ICs1OCw2IEBAIGNsYXNzIE9iamVj
dENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAg
IE9iamVjdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVj
dFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3Rh
dGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBpbmxp
bmUgSlNPYmplY3QqIGNvbnN0cnVjdEVtcHR5T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3h5Q29uc3RydWN0b3IuY3BwCmluZGV4IDFmM2M0MjZmYzgwY2FhZmQ4YjM2YWIzZDAyYWYxOTM5
Zjc5NjgzOGQuLjU4ZTEyNDI2YTQyYjUxNjExZTgzMjE1OGU1MzAxNjhhYmEzN2RmMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3Bw
CkBAIC00OCw4ICs0OCwxMSBAQCBQcm94eUNvbnN0cnVjdG9yKiBQcm94eUNvbnN0cnVjdG9yOjpj
cmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICByZXR1cm4gY29uc3RydWN0
b3I7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxQcm94eShF
eGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dFByb3h5T2JqZWN0KEV4ZWNTdGF0ZSopOworCiBQcm94eUNvbnN0cnVjdG9yOjpQcm94eUNvbnN0
cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1
Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxQcm94eSwgY29uc3RydWN0UHJv
eHlPYmplY3QpCiB7CiB9CiAKQEAgLTEwMywyMiArMTA2LDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb3h5T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFByb3h5T2JqZWN0OjpjcmVhdGUoZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCB0YXJnZXQsIGhhbmRsZXIpKTsKIH0KIAotQ29uc3Ry
dWN0VHlwZSBQcm94eUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0
cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVu
Y3Rpb24gPSBjb25zdHJ1Y3RQcm94eU9iamVjdDsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6
SG9zdDsKLX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFByb3h5
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RShleGVjLT52bSgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0
b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZXhlYywgc2NvcGUsICJQcm94eSIp
KTsKIH0KIAotQ2FsbFR5cGUgUHJveHlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxQcm94eTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25z
dHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rv
ci5oCmluZGV4IDQ4ZjUzYzgyYjNmZDY5ZTNmNDE5Y2I3ZWVkNzdhNTE5N2MyOTg2NjIuLmJhYzYw
ZDI0MzJhMmE2NjYxMjIzMmE4OWVhODAwNzk0MDNjNWRjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmgKQEAgLTQwLDE1ICs0MCwxMyBA
QCBjbGFzcyBQcm94eUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsgCi0gICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0K
IAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBjb25zdCBjaGFyKiBuYW1lLCBKU0dsb2Jh
bE9iamVjdCopOwogCiBwcml2YXRlOgogICAgIFByb3h5Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1
cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCos
IENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxs
KiwgQ2FsbERhdGEmKTsKIAogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBnZXRHZXR0ZXIoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmNwcAppbmRleCBhNWZj
YTc4ZDNlODNjNWFmNThlOWU1MzA5OGQzNWQ4ZjhlYjkxN2FmLi5mODc1ZjY1ZDQ1MTM5NDk3MDY0
ZDkzNmE5NzRhNzlkZjYwOGVlYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm94eVJldm9rZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJveHlSZXZva2UuY3BwCkBAIC00Miw4ICs0MiwxMCBAQCBQcm94eVJldm9rZSogUHJveHlS
ZXZva2U6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQcm94eU9iamVjdCog
cHJveAogICAgIHJldHVybiByZXZva2U7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHBlcmZvcm1Qcm94eVJldm9rZShFeGVjU3RhdGUqKTsKKwogUHJveHlSZXZva2U6
OlByb3h5UmV2b2tlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIHBlcmZvcm1Qcm94eVJldm9r
ZSwgbnVsbHB0cikKIHsKIH0KIApAQCAtNjksMTIgKzcxLDYgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgcGVyZm9ybVByb3h5UmV2b2tlKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1DYWxsVHlwZSBQ
cm94eVJldm9rZTo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewot
ICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IHBlcmZvcm1Qcm94eVJldm9rZTsKLSAgICBy
ZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIHZvaWQgUHJveHlSZXZva2U6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBQcm94eVJldm9r
ZSogdGhpc09iamVjdCA9IGpzQ2FzdDxQcm94eVJldm9rZSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmgKaW5kZXggZTAyOGE3ZGE2YmYyZDM1Y2Iw
ZmQzZGYzYjIyMzQ5ZTRiM2NkZWU3OS4uMTI2ODc2ZWY2ZjNiZTE2NWNjZDZjYjViNDFmODNhNGFm
NjNhM2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlS
ZXZva2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5o
CkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFByb3h5UmV2b2tlIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsg
Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7IAogICAgIH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBjb25zdCBjaGFyKiBu
YW1lLCBQcm94eU9iamVjdCopOwpAQCAtNTIsNyArNTIsNiBAQCBjbGFzcyBQcm94eVJldm9rZSA6
IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBQcm94eVJldm9rZShW
TSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYpOwogCiAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1fcHJveHk7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDFjNjdkYzVlMDNhYTMyYWE2YWQ2ZWYxMDg2ZTBiN2MyZjI2ZGE3MjYuLjBmNTJh
YTI0YWIzZTRmZmFlZmE1MTUzYzdiZjlmMzJhNjBjODcwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKQEAgLTc2LDggKzc2
LDEyIEBAIGNvbnN0IENsYXNzSW5mbyBSZWdFeHBDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVu
Y3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiBAZW5kCiAqLwogCisKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
KTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhSZWdF
eHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogUmVnRXhwQ29uc3RydWN0b3I6OlJlZ0V4cENv
bnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4cFByb3RvdHlwZSog
cmVnRXhwUHJvdG90eXBlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQor
ICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsUmVnRXhwQ29uc3RydWN0
b3IsIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvcikKICAgICAsIG1fY2FjaGVkUmVzdWx0
KHZtLCB0aGlzLCByZWdFeHBQcm90b3R5cGUtPmVtcHR5UmVnRXhwKCkpCiAgICAgLCBtX211bHRp
bGluZShmYWxzZSkKIHsKQEAgLTMxMCwyMiArMzE0LDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RSZWdFeHAoZXhlYywgYXNJ
bnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncywg
ZXhlYy0+anNDYWxsZWUoKSwgZXhlYy0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotQ29uc3RydWN0VHlw
ZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RU
eXBlOjpIb3N0OwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
UmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhl
eGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJlZ0V4cChleGVjLCBh
c0ludGVybmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdz
LCBleGVjLT5qc0NhbGxlZSgpKSk7CiB9CiAKLUNhbGxUeXBlIFJlZ0V4cENvbnN0cnVjdG9yOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY2FsbFJlZ0V4cENvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxs
VHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCA2ZDc0NjI3OTMzMTYz
ZTM1ZjUwYTNhYjg4ODYzNzY2MjQ0MTQ1MWRkLi5kYTc2MGVjMDRmMGE3ODI3YWE2NTdjY2RiNjc5
MjhjMWQ2ZWUwYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgUmVnRXhwQ29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBERUNMQVJFX0lORk87CkBAIC03
NCw4ICs3NCw2IEBAIGNsYXNzIFJlZ0V4cENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogcHJpdmF0ZToKICAgICBSZWdFeHBDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSos
IFJlZ0V4cFByb3RvdHlwZSopOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7Ci0g
ICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CiAKICAgICBSZWdFeHBDYWNoZWRSZXN1bHQgbV9jYWNoZWRSZXN1bHQ7CiAgICAgYm9v
bCBtX211bHRpbGluZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NldENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENv
bnN0cnVjdG9yLmNwcAppbmRleCA3ODQzNzVhMjM5NDAxNzQzMGZjYmJkODY5ZmI1ZjZkZDg3Zjc1
NDA3Li5hNWM2YzE3MzhlOTI5MjEzMzZiNzRmYzkwNmE3OTAxYjhkMzlkYTkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCkBAIC00Nyw2
ICs0NywxNCBAQCB2b2lkIFNldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFNl
dFByb3RvdHlwZSogc2V0UHJvdG90eXBlLCBHZXR0ZXJTZQogICAgIHB1dERpcmVjdE5vbkluZGV4
QWNjZXNzb3Iodm0sIHZtLnByb3BlcnR5TmFtZXMtPnNwZWNpZXNTeW1ib2wsIHNwZWNpZXNTeW1i
b2wsIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTZXQoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTZXQoRXhlY1N0YXRlKik7CisKK1NldENv
bnN0cnVjdG9yOjpTZXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQor
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsU2V0LCBjb25zdHJ1Y3RTZXQpCit7Cit9CisK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTZXQoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC05OCwxOCArMTA2LDYgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2V0KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldCk7CiB9CiAKLUNvbnN0cnVjdFR5
cGUgU2V0Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0
YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNvbnN0cnVjdFNldDsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2Fs
bFR5cGUgU2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
RGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsU2V0OwotICAgIHJl
dHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
ZXRQcml2YXRlRnVuY1NldEJ1Y2tldEhlYWQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFTU0VS
VChpc0pTU2V0KGV4ZWMtPmFyZ3VtZW50KDApKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuaAppbmRleCA0NWYwMTMwNjUwMmY2OTcyMjBkNTQ1YjQ3
MTBiMGM2NTAxZjY3ODQyLi5kZDRhNGQxOGI2Yzg5YjdlYzhlOTE2ZTM5NmNhNzlhOGM1Yjg4NWEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmgK
QEAgLTQ3LDE3ICs0NywxMiBAQCBjbGFzcyBTZXRDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5h
bEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBTZXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0g
ICAgfQorICAgIFNldENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIFNldFByb3RvdHlwZSosIEdldHRlclNldHRlciogc3BlY2llc1N5bWJv
bCk7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJik7CiB9OwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZh
dGVGdW5jU2V0QnVja2V0SGVhZChFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAppbmRleCAzNzk5NmE4MjEzYmFl
MjVlOTVlMTgxMjk5ZWZkMTk0MTA5ZDg1ZTU5Li4xMDY5ZWZlNmQwYTJjYmE1MWI5ODE4ZjJjYjI3
ZGNiODVjZjhmMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC01Miw4ICs1MiwxMiBAQCBjb25zdCBDbGFzc0luZm8g
U3RyaW5nQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rp
b246OnNfaQogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoU3RyaW5n
Q29uc3RydWN0b3IpOwogCisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsK
KwogU3RyaW5nQ29uc3RydWN0b3I6OlN0cmluZ0NvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxTdHJpbmdDb25zdHJ1Y3Rvciwg
Y29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKQogewogfQogCkBAIC0xMzQsMTIgKzEzOCw2
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJp
bmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShT
dHJpbmdPYmplY3Q6OmNyZWF0ZSh2bSwgc3RydWN0dXJlLCBzdHIpKTsKIH0KIAotQ29uc3RydWN0
VHlwZSBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0
aW9uID0gY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1
Y3RUeXBlOjpIb3N0OwotfQotCiBKU0NlbGwqIHN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBhcmd1bWVudCkKIHsKICAgICBpZiAoYXJndW1lbnQuaXNTeW1ib2woKSkK
QEAgLTE1NCwxMCArMTUyLDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHN0cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApKSk7CiB9CiAKLUNhbGxUeXBlIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY2FsbFN0cmluZ0NvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nQ29uc3RydWN0b3IuaAppbmRleCAxYmQxZTIxMjY0OTZiYzVkOGU5NWQ2NTk4Yjlm
ZTUyNmE2M2RkYmIxLi45OWFhZmU4MDg4MWI1YzcxMmY0NmVlMjY5OGQwZTZjZTAyZmE2ZDVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
LmgKQEAgLTQzLDE0ICs0MywxMiBAQCBjbGFzcyBTdHJpbmdDb25zdHJ1Y3RvciA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBTdHJpbmdDb25zdHJ1Y3RvcihWTSYs
IFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBTdHJpbmdQcm90b3R5
cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCos
IENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxs
KiwgQ2FsbERhdGEmKTsKIH07CiAKIEpTQ2VsbCogSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ2hh
ckNvZGUoRXhlY1N0YXRlKiwgaW50MzJfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTc2MWY0MTU5ODFlZmMyYzFm
YjdlNDhmZDI1ODBmMmFkZmVjNzdkMC4uYjUxNTI1OTIxMWM0MjA1NDc1ZDAwZjM0YmJjMzBmNTU3
ZDkyMWFjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9s
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJv
bENvbnN0cnVjdG9yLmNwcApAQCAtNTYsOCArNTYsMTAgQEAgY29uc3QgQ2xhc3NJbmZvIFN5bWJv
bENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sICZzeW1i
b2wKIEBlbmQKICovCiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxT
eW1ib2woRXhlY1N0YXRlKik7CisKIFN5bWJvbENvbnN0cnVjdG9yOjpTeW1ib2xDb25zdHJ1Y3Rv
cihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxs
U3ltYm9sLCBudWxscHRyKQogewogfQogCkBAIC04MywxNyArODUsNiBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3ltYm9sKEV4ZWNTdGF0ZSogZXhlYykKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFN5bWJvbDo6Y3JlYXRlKGV4ZWMsIGRlc2NyaXB0aW9uLnRv
U3RyaW5nKGV4ZWMpKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgU3ltYm9sQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpCi17Ci0gICAgcmV0dXJuIENv
bnN0cnVjdFR5cGU6Ok5vbmU7Ci19Ci0KLUNhbGxUeXBlIFN5bWJvbENvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY2FsbFN5bWJvbDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19
Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sQ29uc3RydWN0b3JGb3IoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuaAppbmRleCA1OGMzNTE4
ZTQ3ZDkzMTIwNDZjYmU2MGVhMzhmZjBlNzAwNGMxNDY4Li41YmQwNTk0NzgyN2MzMjYxMzQzYmI4
YzlkYmUyOWI1NWNhN2Y5ZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbENvbnN0cnVjdG9yLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgU3ltYm9sQ29u
c3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKQEAgLTU3
LDggKzU3LDYgQEAgY2xhc3MgU3ltYm9sQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5j
dGlvbiB7CiAKIHByaXZhdGU6CiAgICAgU3ltYm9sQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUq
KTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uY3BwCmluZGV4IGRjZDRlOTQ1YWE5NWFhZmRmNTFhM2QwZWRlMGJmODEzZjQ1NTYw
OGYuLmQyMjFkNGQxYWQ5ZjdkM2IzMGRiYjk0ZmI0ODNjZWVmNTY1NGY2ODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTM1Miw2ICszNTIsMTAgQEAgVk06OlZNKFZNVHlw
ZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICAgICB3YXRjaGRvZy5zZXRUaW1lTGlt
aXQodGltZW91dE1pbGxpcyk7CiAgICAgfQogCisgICAgLy8gTWFrZSBzdXJlIHRoYXQgYW55IHN0
dWJzIHRoYXQgdGhlIEpJVCBpcyBnb2luZyB0byB1c2UgYXJlIGluaXRpYWxpemVkIGluIG5vbi1j
b21waWxhdGlvbiB0aHJlYWRzLgorICAgIGdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5l
Rm9yKENvZGVGb3JDYWxsKTsKKyAgICBnZXRDVElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZv
cihDb2RlRm9yQ29uc3RydWN0KTsKKwogICAgIFZNSW5zcGVjdG9yOjppbnN0YW5jZSgpLmFkZCh0
aGlzKTsKIH0KIApAQCAtNTc5LDYgKzU4MywxOSBAQCBOYXRpdmVFeGVjdXRhYmxlKiBWTTo6Z2V0
SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBJbnRyaW5zaWMgaW50cmlucwog
ICAgICAgICBOb0ludHJpbnNpYywgc2lnbmF0dXJlLCBuYW1lKTsKIH0KIAorTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIFZNOjpnZXRDVElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCit7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAoa2luZCA9
PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAgcmV0dXJuIGppdFN0dWJzLT5jdGlJbnRlcm5hbEZ1bmN0
aW9uQ2FsbCh0aGlzKTsKKyAgICByZXR1cm4gaml0U3R1YnMtPmN0aUludGVybmFsRnVuY3Rpb25D
b25zdHJ1Y3QodGhpcyk7CisjZWxzZQorICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKQorICAg
ICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxp
bnRfaW50ZXJuYWxfZnVuY3Rpb25fY2FsbF90cmFtcG9saW5lKTsKKyAgICByZXR1cm4gTWFjcm9B
c3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfaW50ZXJuYWxfZnVuY3Rp
b25fY29uc3RydWN0X3RyYW1wb2xpbmUpOworI2VuZGlmCit9CisKIFZNOjpDbGllbnREYXRhOjp+
Q2xpZW50RGF0YSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCAyZjc5
OTY4ODAxMzcxMTkwNzkwYjQ4OTkxYWYzMDM4ODA1ZTI0ZDI5Li5hNTVlY2Y1ZGM1OTQ4MDhjYjQz
YTMxMTgwYTQ5NjRmZTQ1ZmI1ODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAg
LTI5LDYgKzI5LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ2FsbERhdGEuaCIKKyNp
bmNsdWRlICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgiCiAjaW5jbHVkZSAiQ29uY3VycmVudEpT
TG9jay5oIgogI2luY2x1ZGUgIkNvbnRyb2xGbG93UHJvZmlsZXIuaCIKICNpbmNsdWRlICJEYXRl
SW5zdGFuY2VDYWNoZS5oIgpAQCAtNDg5LDYgKzQ5MCw4IEBAIGNsYXNzIFZNIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7
CiAgICAgTmF0aXZlRXhlY3V0YWJsZSogZ2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uLCBO
YXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBOYXRp
dmVFeGVjdXRhYmxlKiBnZXRIb3N0RnVuY3Rpb24oTmF0aXZlRnVuY3Rpb24sIEludHJpbnNpYywg
TmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IsIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlKiwgY29u
c3QgU3RyaW5nJiBuYW1lKTsKIAorICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBnZXRDVElJbnRl
cm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKKwogICAg
IHN0YXRpYyBwdHJkaWZmX3QgZXhjZXB0aW9uT2Zmc2V0KCkKICAgICB7CiAgICAgICAgIHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoVk0sIG1fZXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCmluZGV4IGJiMGUwNjg1
MWM2MDEwODIwZTg2ZTgxMWVjYTU2YzNjYzI5MzI3M2QuLjYyM2I2MjYxODFmYTE1ZTkyYjY4MTNh
OTNkZjMwZDk0YmYzNzI1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcApAQCAtNDUsNiArNDUsMTQgQEAgdm9pZCBXZWFr
TWFwQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2Vha01hcFByb3RvdHlwZSog
cHJvdG90eXBlKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0g
fCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vha01hcChFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtNYXAoRXhlY1N0YXRlKik7CisKK1dl
YWtNYXBDb25zdHJ1Y3Rvcjo6V2Vha01hcENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxXZWFrTWFwLCBjb25zdHJ1
Y3RXZWFrTWFwKQoreworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsV2Vha01hcChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
QEAgLTk3LDE2ICsxMDUsNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RXZWFrTWFwKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHdlYWtNYXApOwogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewot
ICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2Vha01hcDsKLSAg
ICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2Vha01hcENvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAg
Y2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFdlYWtNYXA7Ci0gICAgcmV0dXJuIENhbGxU
eXBlOjpIb3N0OwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9XZWFrTWFwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dlYWtNYXBDb25zdHJ1Y3Rvci5oCmluZGV4IDU5ZjJjYWFkZTBjYTM1N2MyYWEwMDI3MzYzNDZh
YTczMDVmZTk2MDYuLmM5M2U0MTI1MWVjNjBhOTA4YjNkY2JjMmFmMTYyNWYxMTFmZGMxYWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rv
ci5oCkBAIC00NywxNyArNDcsMTIgQEAgY2xhc3MgV2Vha01hcENvbnN0cnVjdG9yIDogcHVibGlj
IEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFdlYWtNYXBDb25zdHJ1Y3RvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKLSAgICB7Ci0gICAgfQorICAgIFdlYWtNYXBDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSop
OwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBXZWFrTWFwUHJvdG90eXBlKik7Ci0gICAg
c3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3BwCmluZGV4IDA4NmJiY2FkOGJiYjM1
NjEyYWI0OGI1M2I2MTgxNDUyYzI0MWEwMWQuLjY2YmM3NTI3Y2EyY2I4ZDg2ZTEzOTJlZWU1YzFh
ZDljYThlMjcyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dl
YWtTZXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha1NldENvbnN0cnVjdG9yLmNwcApAQCAtNDUsNiArNDUsMTQgQEAgdm9pZCBXZWFrU2V0Q29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2Vha1NldFByb3RvdHlwZSogcHJvdG90
eXBlKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsV2Vha1NldChFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtTZXQoRXhlY1N0YXRlKik7CisKK1dlYWtTZXRD
b25zdHJ1Y3Rvcjo6V2Vha1NldENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxXZWFrU2V0LCBjb25zdHJ1Y3RXZWFr
U2V0KQoreworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vh
a1NldChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTgz
LDE2ICs5MSw0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dFdlYWtTZXQoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUod2Vh
a1NldCk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2Vha1NldENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXZWFrU2V0OwotICAgIHJldHVy
biBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWFrU2V0Q29uc3RydWN0b3I6
OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsV2Vha1NldDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dl
YWtTZXRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1Nl
dENvbnN0cnVjdG9yLmgKaW5kZXggNjkzYzEwYmY4ZGI0ZWYwZWNkMGM0N2I0NDAwYmJkNzY3N2Zi
YmMwZS4uNWU2ZmI4MjhmMTczYjNhNGMwMzVjMmIwNGZmM2FkNTczMzgxN2ZlNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmgKQEAg
LTQ3LDE3ICs0NywxMiBAQCBjbGFzcyBXZWFrU2V0Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgV2Vha1NldENvbnN0cnVjdG9yKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAg
IHsKLSAgICB9CisgICAgV2Vha1NldENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFdlYWtTZXRQcm90b3R5cGUqKTsKLSAgICBzdGF0aWMg
Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsK
LSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9y
LmNwcAppbmRleCA5ODJkZjdmNDA4YzE3ZWYyOTdlYjUzZGJlODg5NzY5YjcyYmIxYzhiLi5hYzRk
OGZjYzBhNGFiNDA5Mjc5ZGJmZTZhODA3NDc4OTNlNmM3MTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBp
bGVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNzAsNyArNzAsNyBAQCBXZWJBc3NlbWJseUNvbXBp
bGVFcnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpj
cmVhdGUoVgogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOwogfQogCiB2b2lkIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5
cGUqIHByb3RvdHlwZSkKQEAgLTgxLDIyICs4MSwxMCBAQCB2b2lkIFdlYkFzc2VtYmx5Q29tcGls
ZUVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlDb21w
aQogfQogCiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUNv
bXBpbGVFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAg
OiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dl
YkFzc2VtYmx5Q29tcGlsZUVycm9yLCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
KQogewogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0
b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19
Ci0KLUNhbGxUeXBlIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjsKLSAgICByZXR1cm4gQ2Fs
bFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxF
KFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDM0
YTBlNzhjMDQ2NDY3MDlkNmYyZTVjYTc2ODcyMTFmN2E5NzI0NzcuLjViNzViYzgxMDQyNjU2NDZm
NTE4NjU2ZWY1NTczM2NhYzEzNmFjNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmgKQEAgLTQ5LDggKzQ5LDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25z
dHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJB
c3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3Bw
CmluZGV4IDJmZGQ1YTQ2MTc5ZTc4YTU2ZmM5Mzc4N2FmMWI4Y2Y5Mzg5ZjY5ZDAuLjkwOTIxMzA3
ZjMzNTJmODA4ZTRhMjRhODVkZDUwMTk4NDUwODI0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0
cnVjdG9yLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3RvciogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTCiAK
IFN0cnVjdHVyZSogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Cisg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
IH0KIAogdm9pZCBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZSogcHJvdG90eXBlKQpAQCAtMTEy
LDIyICsxMTIsMTAgQEAgdm9pZCBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlJbnN0YW5jZVAKIH0KIAogV2ViQXNzZW1ibHlJ
bnN0YW5jZUNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6
IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlJbnN0YW5jZSwgY29uc3RydWN0
SlNXZWJBc3NlbWJseUluc3RhbmNlKQogewogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5
SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlOwotICAgIHJldHVybiBDb25zdHJ1Y3RU
eXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6
OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseUluc3RhbmNlOwotICAgIHJldHVy
biBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBF
TkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCmluZGV4IDZkOWVk
M2MwMGI3M2FkNjg3ZGE2OWFhYjNkOGU3MzkwMzhkOTI2MDMuLmEyMWQ5MWFjM2IyMzNiNzk5Mzg3
ZTFhYjYwNGMzOGYyOWE3MTY0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oCkBAIC01
Myw4ICs1Myw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3RvciA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseUluc3RhbmNl
Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBiMTdkNThhYmU2
NjU4MmZhYWQ3YWRjYTc2NjE1NzIyYmQyNGEzZWU2Li5hZjA5MTdhYWI0ZGM2OWYxNjFiNDIyYWVh
OTgyNmU5ZDExYTI5Mjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAt
NzAsNyArNzAsNyBAQCBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJs
eUxpbmtFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLAogCiBTdHJ1Y3R1cmUqIFdlYkFz
c2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5h
bEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiB2b2lkIFdlYkFz
c2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNz
ZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUqIHByb3RvdHlwZSkKQEAgLTgxLDIyICs4MSwxMCBAQCB2
b2lkIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgV2ViQXNzZW1ibHlMaW5rRXJybwogfQogCiBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVj
dG9yOjpXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1
Y3R1cmUsIGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5
TGlua0Vycm9yKQogewogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3Ry
dWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVj
dEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7
Ci19Ci0KLUNhbGxUeXBlIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseUxpbmtFcnJvcjsKLSAgICByZXR1cm4gQ2FsbFR5
cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IGM3MDBjNjMzMDE0
ZmJmYWFmYTBhYmI5MzJjZDcwZTliOWZlOTMwOTUuLmUyOTEyOTdiZGFlY2FkNzFlMjRlMTI3NzIw
ZmVjNDViMjg3NDgxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQ5LDgg
KzQ5LDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJseUxpbmtFcnJvckNv
bnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxU
eXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDA0MzVhZjFmZGZlNTYzMGQ5
MjJiNjdkZGI2YTg0ZDcxZjQ5ZDhkMS4uYzU1Njk4YzExOTdjMDBjZGJjNGNlNDI1YzhlMzFkMmFl
NzczYzQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyNyw3ICsxMjcsNyBA
QCBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVj
dG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1YwogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5TWVtb3J5
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiB2b2lkIFdlYkFzc2VtYmx5TWVtb3J5Q29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5
cGUqIHByb3RvdHlwZSkKQEAgLTEzOCwyMiArMTM4LDEwIEBAIHZvaWQgV2ViQXNzZW1ibHlNZW1v
cnlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseU1lbW9yeVBy
b3RvCiB9CiAKIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OldlYkFzc2VtYmx5TWVtb3J5
Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0s
IHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlN
ZW1vcnksIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNZW1vcnkpCiB7CiB9CiAKLUNvbnN0cnVjdFR5
cGUgV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwq
LCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SlNXZWJBc3NlbWJseU1lbW9yeTsKLSAgICByZXR1cm4g
Q29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlNZW1vcnlDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAg
IGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxKU1dlYkFzc2VtYmx5TWVtb3J5OwotICAg
IHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmgKaW5kZXggMjA2
MWUyNDhmMzM5NWI2N2QyYzJlNGIxOGNlNDJiOTY4MjIxZWM1Yy4uZWE2NDYwYjFiYzcxYmEyODk0
NWU3MmU5NTk0YzZjZmM5M2JkZTExNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuaApAQCAtNDks
OCArNDksNiBAQCBjbGFzcyBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yIDogcHVibGljIElu
dGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3Ry
dWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25z
dHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlN
b2R1bGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAppbmRleCA3NWI1YjYyYzM4YTIzZDQ5NzViNWMw
OThhNzU1NjcyMjZlNzcwZjNhLi5mYTMxYzU5MzE5ODMxZWE1NWRmNTFjMjc0ZWQ0NDM0ZDI3YjQ2
YWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eU1vZHVsZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcApAQCAtMTk4LDcgKzE5OCw3IEBAIFdl
YkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6
OmNyZWF0ZShWTSYgdm0sIFN0cnVjCiAKIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlNb2R1bGVDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZSog
cHJvdG90eXBlKQpAQCAtMjA5LDIyICsyMDksMTAgQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZUNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG8K
IH0KIAogV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlNb2R1bGVDb25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSlNXZWJBc3NlbWJseU1vZHVs
ZSwgY29uc3RydWN0SlNXZWJBc3NlbWJseU1vZHVsZSkKIHsKIH0KIAotQ29uc3RydWN0VHlwZSBX
ZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TW9kdWxlOwotICAgIHJldHVybiBDb25z
dHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2Fs
bERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNzZW1ibHlNb2R1bGU7Ci0gICAgcmV0
dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaAppbmRleCAxM2FjYTNm
OTBlYWQzN2NhNTRkYjVhOWRjYjRlYTM0ZWMyNThiZWRlLi5mNzRiNjY2NWViNGEwYjA1MDY3YTkw
ZjAyMTkzNmJlM2NlMTFmNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oCkBAIC01NCw4ICs1
NCw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
cihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVj
dERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRp
bWVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDY0NWY5Njc1ZDcxYmJk
MTVhMDYyOGU3ODkzNWFiZWZkMjg2MjlmN2IuLmRhYmM3ZTA5YzkzZjI0NDU3NTI3NjkwMzUxYWMy
MDU5MDg1NDRkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCkBA
IC04MSwyMiArODEsMTAgQEAgdm9pZCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5UnVudGkKIH0KIAogV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1
Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0
dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvciwgY29uc3RydWN0SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcikKIHsKIH0KIAotQ29uc3Ry
dWN0VHlwZSBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RE
YXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3Ry
dWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVy
cm9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpT
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCA3N2ZiNmU0NWFlY2M4NjAzNTdl
NDgxYWQ4YzJmNTViOGZiZGQ4ZTkyLi45NGFlNmI5YTVmMWNlYzU3NzY5OGZjMDMzYWI0MGY4MmUz
MzMwMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC00OSw4ICs0
OSw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBl
IGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBD
YWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcAppbmRleCAyYzViYzcwMmY3MTBmMzVi
YTQyMzU3Y2ZkNDlhMTk1ZmFjYTAyMjViLi41ODQ0YzllYTA4M2E2YzIyOTcxNjNjYzY3OGJlM2E0
NTg2N2QzZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTExNyw3ICsxMTcsNyBA
QCBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rv
cjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dQogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5VGFibGVD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNzZW1ibHlUYWJsZUNvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUq
IHByb3RvdHlwZSkKQEAgLTEyOCwyMiArMTI4LDEwIEBAIHZvaWQgV2ViQXNzZW1ibHlUYWJsZUNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5
CiB9CiAKIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlUYWJsZUNvbnN0
cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1
Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2VtYmx5VGFibGUs
IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZSkKIHsKIH0KIAotQ29uc3RydWN0VHlwZSBXZWJB
c3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3Ry
dWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZTsKLSAgICByZXR1cm4gQ29uc3RydWN0
VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNzZW1ibHlUYWJsZTsKLSAgICByZXR1cm4gQ2Fs
bFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxF
KFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaAppbmRleCA1YWRlYmIzNzYxNzFjMzRl
YzM3YmM5ZDIwZTE3YjNiNmQ0NWU5MTUxLi4zNjQ2OGQwYjNlZGQzYTBiOGUwY2E2ZWRiYTIwYmMw
YzEyNjliYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaApAQCAtNDksOCArNDksNiBAQCBjbGFz
cyBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yKFZNJiwgU3RydWN0
dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwq
LCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCmluZGV4IDkxMGE3MDJiYTljZWJiMmFlYWJmZTgzZTM0
MWM3YmI5MTlmYTMxMDEuLjI1NWQ4NDE1Y2IzMmJkN2NmOGVhZjY5MmIxYzVkNjcxMTFhMTU4MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtNDEsOSArNDEs
MTEgQEAgdXNpbmcgbmFtZXNwYWNlIEJpbmRpbmdzOwogCiBXRUJDT1JFX0VYUE9SVCBjb25zdCBD
bGFzc0luZm8gUnVudGltZU1ldGhvZDo6c19pbmZvID0geyAiUnVudGltZU1ldGhvZCIsICZJbnRl
cm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoUnVudGltZU1ldGhvZCkgfTsKIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbFJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKik7CisKIFJ1bnRpbWVNZXRob2Q6OlJ1bnRp
bWVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIE1ldGhvZCogbWV0aG9kKQogICAgIC8vIENhbGxlcnMgd2lsbCBuZWVkIHRvIHBhc3MgaW4g
dGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGlzIG5hdGl2ZSBvYmpl
Y3QgIm1ldGhvZCIuCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSwg
c3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmplY3QtPnZtKCksIHN0
cnVjdHVyZSwgY2FsbFJ1bnRpbWVNZXRob2QsIG51bGxwdHIpCiAgICAgLCBtX21ldGhvZChtZXRo
b2QpCiB7CiB9CkBAIC0xMTAsMTAgKzExMiw0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUNhbGxUeXBlIFJ1bnRpbWVNZXRob2Q6Omdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5u
YXRpdmUuZnVuY3Rpb24gPSBjYWxsUnVudGltZU1ldGhvZDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6
Okhvc3Q7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKaW5kZXgg
N2MyNzVhY2MwZTNlMTIyZDRkNmM3ZmJiNGU1MTZkYzM1OGYzZGQ2Zi4uNGRmNDM1NTBiNmU0NzRj
MjFhYmJjMmE3OTgxZjdlYTBiMmQ0NmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmgKQEAgLTU2LDEzICs1NiwxMiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1l
TWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUnVu
dGltZU1ldGhvZChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEJpbmRpbmdzOjpNZXRob2Qq
KTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgc3Rh
dGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCmluZGV4IDY2ZjUwYzMzMTFi
M2MzOTM4YmIzMGM3NDk2ZjU2NTFjZTljZTJhNmIuLmU1NjA4OGY3MzIxOGE0YmM3ZjA5MDc4Njll
NmRkZWYxZWE3YzAxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCkBAIC00NSw4ICs0NSwxMCBAQCBTVEFU
SUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNOUE1ldGhvZCk7CiAKIGNvbnN0
IENsYXNzSW5mbyBKU05QTWV0aG9kOjpzX2luZm8gPSB7ICJOUE1ldGhvZCIsICZJbnRlcm5hbEZ1
bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNO
UE1ldGhvZCkgfTsKIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1l
dGhvZChFeGVjU3RhdGUqKTsKKwogSlNOUE1ldGhvZDo6SlNOUE1ldGhvZChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTlBJZGVudGlmaWVyIG5wSWRl
bnRpZmllcikKLSAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LT52bSgpLCBzdHJ1
Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSwgc3RydWN0
dXJlLCBjYWxsTWV0aG9kLCBudWxscHRyKQogICAgICwgbV9ucElkZW50aWZpZXIobnBJZGVudGlm
aWVyKQogewogfQpAQCAtODQsMTIgKzg2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYywgc2NvcGUpOwogfQogCi1DYWxsVHlwZSBKU05QTWV0aG9kOjpnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY2FsbE1ldGhvZDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QTWV0aG9kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QTWV0aG9kLmgKaW5kZXggYWNlN2YyZGQyZTJiMjIzZDhlMGQ3ZDEwNDk3OTg3MGE1
MDBhOTRkZi4uNWMyODRjOTAxOGI4ZTA1NWYwMDA3ODk5MTUzZDIxMGUzNmUxYjAyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhv
ZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBN
ZXRob2QuaApAQCAtNjIsMTEgKzYyLDkgQEAgY2xhc3MgSlNOUE1ldGhvZCA6IHB1YmxpYyBKU0M6
OkludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6SW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6
OkpTQ2VsbCosIEpTQzo6Q2FsbERhdGEmKTsKLSAgICAKICAgICBOUElkZW50aWZpZXIgbV9ucElk
ZW50aWZpZXI7CiB9OwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDc2NGJjZDNmZjRmYzRjZTZkMjlhMmQwYzY3MDE5MTRhYWQxNDUzZGIu
LmQ0Zjg4OTM0NTgxZjk4Y2FkYzhkMGUxNTU4OTlmOTNlMjAyNGE1MmUgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTctMTAtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAg
ICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2FsbHMgdG8gb2JqZWN0
cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2RmZy1p
bnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzOiBBZGRlZC4KKyAgICAgICAgKHRhcmdldCk6CisgICAg
ICAgICogbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanM6
IEFkZGVkLgorICAgICAgICAodGFyZ2V0KToKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvZGZn
LWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwuanM6IEFkZGVkLgorICAgICAgICAo
dGFyZ2V0KToKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9u
LW5vdC1oYW5kbGVkLWNvbnN0cnVjdC5qczogQWRkZWQuCisgICAgICAgICh0YXJnZXQpOgorICAg
ICAgICAqIHN0cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qczogQWRkZWQuCisgICAg
ICAgIChzaG91bGRCZSk6CisgICAgICAgICh0YXJnZXQpOgorICAgICAgICAqIHN0cmVzcy9kZmct
aW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJl
KToKKyAgICAgICAgKHRhcmdldCk6CisgICAgICAgICogc3RyZXNzL2ludGVybmFsLWZ1bmN0aW9u
LWNhbGwuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAqIHN0cmVzcy9p
bnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorCiAyMDE3LTEwLTE5ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWJBc3NlbWJseTogbm8gVk0gLyBKUyB2ZXJzaW9uIG9mIGV2ZXJ5dGhpbmcgYnV0IElu
c3RhbmNlCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwt
ZnVuY3Rpb24tY2FsbC5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1m
dW5jdGlvbi1jYWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwOTczOGI1ZTIwNjE0ZmUxOTdmNWVmY2U3NDdm
NDZmODFjNDU2YzgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9k
ZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9uIHRh
cmdldChmdW5jKQoreworICAgIHJldHVybiBmdW5jKCk7Cit9Citub0lubGluZSh0YXJnZXQpOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQorICAgIHRhcmdldChBcnJheSk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY29u
c3RydWN0LmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9u
LWNvbnN0cnVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODJhMDAwYjFiYTU2YmU5NWVjNzM1OWM1YjllYzg3
Nzc0OGFjMzI4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZn
LWludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVjdC5qcwpAQCAtMCwwICsxLDggQEAKK2Z1bmN0aW9u
IHRhcmdldChmdW5jKQoreworICAgIHJldHVybiBuZXcgZnVuYygpOworfQorbm9JbmxpbmUodGFy
Z2V0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICB0YXJnZXQoQXJyYXkp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0
aW9uLW5vdC1oYW5kbGVkLWNhbGwuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50
ZXJuYWwtZnVuY3Rpb24tbm90LWhhbmRsZWQtY2FsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGIyOWI0OTMw
NDA4ZmY4MWVmZGRiYTZmZDIxNzI5ZmM4ZTgyZmFhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwu
anMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiB0YXJnZXQoZnVuYykKK3sKKyAgICByZXR1cm4g
ZnVuYygpOworfQorbm9JbmxpbmUodGFyZ2V0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7
ICsraSkKKyAgICB0YXJnZXQoRGF0ZSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tbm90LWhhbmRsZWQtY29uc3RydWN0LmpzIGIvSlNU
ZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNv
bnN0cnVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjY2YmJlOThhZDQzNGRkNDg1NDJhYmExZjYyNDcwNGQ5
NWY2MmUxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWlu
dGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNvbnN0cnVjdC5qcwpAQCAtMCwwICsxLDggQEAK
K2Z1bmN0aW9uIHRhcmdldChmdW5jKQoreworICAgIHJldHVybiBuZXcgZnVuYygpOworfQorbm9J
bmxpbmUodGFyZ2V0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICB0YXJn
ZXQoRGF0ZSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rp
b24tY2FsbC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQwNDg1MmFhZWFhYTIyNzg3ODkxZTgxMTQ5NTlhYTdkZGE1MzgwYjIKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2Fs
bC5qcwpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KK25vSW5saW5lKHNob3VsZEJlKTsKKworZnVu
Y3Rpb24gdGFyZ2V0KGZ1bmMpCit7CisgICAgcmV0dXJuIGZ1bmMoKTsKK30KK25vSW5saW5lKHRh
cmdldCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCisgICAgc2hvdWxkQmUodGFy
Z2V0KEFycmF5KS5sZW5ndGgsIDApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGZnLWlu
dGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVjdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RmZy1pbnRlcm5h
bC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcxOTQyZWZiYmRmY2E0NDAwM2Fl
MmU2YzdiOGUzNzEwM2JjMGE4OAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Rm
Zy1pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMKQEAgLTAsMCArMSwxNCBAQAorZnVuY3Rp
b24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9
Citub0lubGluZShzaG91bGRCZSk7CisKK2Z1bmN0aW9uIHRhcmdldChmdW5jKQoreworICAgIHJl
dHVybiBuZXcgZnVuYygpOworfQorbm9JbmxpbmUodGFyZ2V0KTsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTQ7ICsraSkKKyAgICBzaG91bGRCZSh0YXJnZXQoQXJyYXkpLmxlbmd0aCwgMCk7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lY2JmYTdi
N2VhYjIzMjJjYzA2MDA5YThiMzYyMjkxYTE1ZTVkMDVkCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcwpAQCAtMCwwICsxLDkgQEAKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwp
OworfQorCit2YXIgZnVuYyA9IERhdGU7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kp
CisgICAgc2hvdWxkQmUodHlwZW9mIGZ1bmMoKSwgInN0cmluZyIpOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzIGIvSlNUZXN0cy9zdHJl
c3MvaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4NTJiOTE3Yzkw
MzE1ODhhOTZkNGRjMzdiYzhhMzIzNzk3MmIwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMKQEAgLTAsMCArMSwxMiBAQAor
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVh
bCk7Cit9CisKK3ZhciBmdW5jID0gRGF0ZTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsr
aSkgeworICAgIHZhciBkYXRlID0gbmV3IGZ1bmMoKTsKKyAgICBzaG91bGRCZSh0eXBlb2YgZGF0
ZSwgIm9iamVjdCIpOworICAgIHNob3VsZEJlKGRhdGUgaW5zdGFuY2VvZiBEYXRlLCB0cnVlKTsK
K30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324527</attachid>
            <date>2017-10-22 08:04:20 -0700</date>
            <delta_ts>2017-11-05 21:12:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144458-20171023000419.patch</filename>
            <type>text/plain</type>
            <size>180925</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YjIyZmU4NDk1NTVlYWQ2MjQ1MTc5MWJiMDkxNDRkZTJiZWYzYjg3Li40NDJiZDU1NDY0MGIzYjQ0
MzkzNzA4YjUxYzNkZTBjMGZhMGEyNzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMzkgQEAKKzIwMTctMTAtMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2Fs
bHMgdG8gb2JqZWN0cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkg
b25seSBKU0Z1bmN0aW9uIGlzIGhhbmRsZWQgYnkgQ2FsbExpbmtJbmZvJ3MgY2FjaGluZyBtZWNo
YW5pc20uIFRoaXMgbWVhbnMgdGhhdCBhbnkKKyAgICAgICAgSW50ZXJuYWxGdW5jdGlvbiBjYWxs
cyBhcmUgbm90IGNhY2hlZCBhbmQgdGhleSBhbHdheXMgZ28gdG8gdGhlIHNsb3cgcGF0aC4gVGhp
cyBpcyBub3QgZ29vZCBiZWNhdXNlCisKKyAgICAgICAgMS4gV2UgbmVlZCB0byBxdWVyeSBnZXRD
YWxsRGF0YS9nZXRDb25zdHJ1Y3REYXRhIGV2ZXJ5IHRpbWUgaW4gdGhlIHNsb3cgcGF0aC4KKyAg
ICAgICAgMi4gQ2FsbExpbmtJbmZvIHRlbGxzIG5vdGhpbmcgaW4gdGhlIGhpZ2hlciB0aWVyIEpJ
VHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzdGFydHMgaGFuZGxpbmcgSW50ZXJuYWxGdW5jdGlv
biBpbiBDYWxsTGlua0luZm8ncyBjYWNoaW5nIG1lY2hhbmlzbS4gV2UgY2hhbmdlIEludGVybmFs
RnVuY3Rpb24KKyAgICAgICAgdG8gaG9sZCBwb2ludGVycyB0byB0aGUgZnVuY3Rpb25zIGZvciBj
YWxsIGFuZCBjb25zdHJ1Y3QuIFdlIGhhdmUgbmV3IHN0dWJzIHRoYXQgY2FuIGNhbGwvY29uc3Ry
dWN0CisgICAgICAgIEludGVybmFsRnVuY3Rpb24uIEFuZCB3ZSByZXR1cm4gdGhpcyBjb2RlIHBv
aW50ZXIgYXMgYSByZXN1bHQgb2Ygc2V0dXAgY2FsbCB0byB1c2UgQ2FsbExpbmtJbmZvIG1lY2hh
bmlzbS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGNyaXRpY2FsIHRvIG9wdGltaXppbmcgZGVy
aXZlZCBBcnJheSBjb25zdHJ1Y3Rpb25bMV0gc2luY2UgaXQgc3RhcnRzIHVzaW5nIENhbGxMaW5r
SW5mbworICAgICAgICBmb3IgSW50ZXJuYWxGdW5jdGlvbi4gUHJldmlvdXNseSB3ZSBkbyBub3Qg
cmVjb3JkIGFueSBpbmZvcm1hdGlvbiB0byBDYWxsTGlua0luZm8uIEV4Y2VwdCBmb3IgdGhlCisg
ICAgICAgIGNhc2UgdGhhdCBERkdCeXRlQ29kZVBhcnNlciBmaWd1cmVzIG91dCBJbnRlcm5hbEZ1
bmN0aW9uIGNvbnN0YW50LCB3ZSBjYW5ub3QgYXR0ZW1wdCB0byBlbWl0IERGRworICAgICAgICBu
b2RlcyBmb3IgdGhlc2UgSW50ZXJuYWxGdW5jdGlvbnMgc2luY2UgQ2FsbExpbmtJbmZvIHRlbGxz
IG5vdGhpbmcuIFRoaXMgcGF0Y2ggdGVhY2hlcyBDYWxsTGlua0luZm8KKyAgICAgICAgaGFuZGxp
bmcgSW50ZXJuYWxGdW5jdGlvbiB0b28uCisKKyAgICAgICAgQXR0YWNoZWQgbWljcm9iZW5jaG1h
cmtzIHNob3cgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQuCisKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAg
ICAgICAgICBwYXRjaGVkCisKKyAgICAgICAgZGZnLWludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVj
dCAgICAgICAgICAgICAgICAgMS42NDM5Ky0wLjA4MjYgICAgIF4gICAgICAxLjI4MjkrLTAuMDcy
NyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMjgxM3ggZmFzdGVyCisgICAgICAgIGRmZy1pbnRlcm5h
bC1mdW5jdGlvbi1ub3QtaGFuZGxlZC1jb25zdHJ1Y3QgICAgIDIuMTg2MistMC4xMzYxICAgICAg
ICAgICAgMi4wNjk2Ky0wLjEyMDEgICAgICAgICAgbWlnaHQgYmUgMS4wNTY0eCBmYXN0ZXIKKyAg
ICAgICAgZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwgICAgICAgICAyMC43
NTkyKy0wLjkwODUgICAgICAgICAgIDE5LjczNjkrLTAuNzkyMSAgICAgICAgICBtaWdodCBiZSAx
LjA1MTh4IGZhc3RlcgorICAgICAgICBkZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbCAgICAgICAg
ICAgICAgICAgICAgICAxLjY4NTYrLTAuMDk2NyAgICAgXiAgICAgIDEuMjc3MSstMC4wNzQ0ICAg
ICAgICBeIGRlZmluaXRlbHkgMS4zMTk4eCBmYXN0ZXIKKworICAgICAgICBbMV06IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgwNjQKKworICAgICAgICAqIEFQSS9K
U0NhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246
OkpTQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6
Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
aDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIEFQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpPYmpD
Q2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvT2JqQ0Nh
bGxiYWNrRnVuY3Rpb24ubW06CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9uOjpP
YmpDQ2FsbGJhY2tGdW5jdGlvbik6CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9u
OjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0
aW9uOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9CeXRl
Y29kZUR1bXBlci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJp
bnRDYWxsT3ApOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5m
bzo6c2V0Q2FsbGVlKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjYWxsZWUpOgorICAg
ICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNldExhc3RTZWVuQ2FsbGVlKToKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjpsYXN0U2VlbkNhbGxlZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5r
SW5mbzo6dmlzaXRXZWFrKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAg
ICAgICAgKiBieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OkNhbGxM
aW5rU3RhdHVzOjpjb21wdXRlRnJvbUNhbGxMaW5rSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUv
TExJbnRDYWxsTGlua0luZm8uaDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6Cisg
ICAgICAgICogaml0L0pJVFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3Rp
SW50ZXJuYWxGdW5jdGlvbkNhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aUludGVy
bmFsRnVuY3Rpb25Db25zdHJ1Y3QpOgorICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAg
ICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OmxpbmtGb3IpOgorICAgICAgICAo
SlNDOjpsaW5rUG9seW1vcnBoaWNDYWxsKToKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5oOgorICAg
ICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjp2aXJ0dWFsVGh1
bmtGb3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpuYXRpdmVDYWxsR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bmF0aXZlVGFpbENhbGxHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5l
cmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjppbnRlcm5hbEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6Omlu
dGVybmFsRnVuY3Rpb25Db25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9UaHVua0dl
bmVyYXRvcnMuaDoKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAg
IChKU0M6OkxMSW50OjpzZXRVcENhbGwpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206
CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBy
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNvbnN0cnVj
dG9yOjpBcnJheUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0
b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNGdW5jdGlvbkNvbnN0cnVj
dG9yKToKKyAgICAgICAgKEpTQzo6QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlv
bkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KEpTQzo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2Fs
bERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNhbGxCb29s
ZWFuQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OkJvb2xl
YW5Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENvbnN0cnVj
dERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENh
bGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5o
OgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRl
Q29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRhdGVDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNv
bnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmg6CisgICAgICAgIChKU0M6OlN0cmljdE1v
ZGVUeXBlRXJyb3JGdW5jdGlvbjo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmdldENvbnN0cnVjdERh
dGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246
OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9y
KToKKyAgICAgICAgKEpTQzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpT
Qzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVj
dG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rp
b25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpjYWxsRnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5j
dGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlv
blByb3RvdHlwZTo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkdlbmVyYXRvckZ1bmN0
aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlND
OjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SW50
ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1
bmN0aW9uOjpnZXRDYWxsRGF0YSk6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246Omdl
dENvbnN0cnVjdERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgor
ICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpuYXRpdmVGdW5jdGlvbkZvcik6CisgICAgICAgIChK
U0M6OkludGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3IpOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpJ
bnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
SW50bENvbGxhdG9yQ29uc3RydWN0b3I6OkludGxDb2xsYXRvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpJbnRsRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmg6CisgICAgICAg
ICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OkludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6SW50bE51bWJlckZvcm1hdENvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rv
cjo6SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVm
ZmVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFz
cz46OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChK
U0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpKU1Byb21pc2VDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChKU0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICog
cnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6
SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpNYXBDb25z
dHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok1hcENvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9NYXBDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKEpTQzo6TWFwQ29uc3RydWN0b3I6Ok1hcENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51
bGxHZXR0ZXJGdW5jdGlvbjo6TnVsbEdldHRlckZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6TnVs
bEdldHRlckZ1bmN0aW9uOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51
bGxHZXR0ZXJGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6TnVsbEdldHRlckZ1
bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpOdWxsR2V0dGVyRnVuY3Rp
b246Ok51bGxHZXR0ZXJGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxs
U2V0dGVyRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246Ok51
bGxTZXR0ZXJGdW5jdGlvbik6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Z2V0
Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246Omdl
dENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1
bmN0aW9uLmg6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uOjpOdWxsU2V0dGVyRnVuY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6TnVtYmVyQ29uc3RydWN0b3IpOgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNv
bnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51
bWJlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6TnVtYmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0
b3IpOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpQcm94eUNvbnN0cnVj
dG9yOjpQcm94eUNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb3h5Q29uc3RydWN0
b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1Byb3h5Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5UmV2b2tlLmNwcDoKKyAgICAgICAgKEpTQzo6UHJv
eHlSZXZva2U6OlByb3h5UmV2b2tlKToKKyAgICAgICAgKEpTQzo6UHJveHlSZXZva2U6OmdldENh
bGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1Byb3h5UmV2b2tlLmg6CisgICAg
ICAgIChKU0M6OlByb3h5UmV2b2tlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rv
cjo6UmVnRXhwQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVj
dG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6U2V0Q29uc3RydWN0b3I6OlNldENvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6U2V0Q29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTZXRD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2V0
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6U2V0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OlNldENvbnN0cnVjdG9yOjpTZXRDb25zdHJ1Y3Rvcik6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChK
U0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OlN0cmluZ0Nv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6U3ltYm9sQ29u
c3RydWN0b3IpOgorICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlN5bWJvbENvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAg
ICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKEpT
Qzo6Vk06OmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKToKKyAgICAgICAgKiBy
dW50aW1lL1ZNLmg6CisgICAgICAgICogcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpXZWFrTWFwQ29uc3RydWN0b3I6OldlYWtNYXBDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmg6CisgICAgICAgIChK
U0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6
V2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha1Nl
dENvbnN0cnVjdG9yOjpXZWFrU2V0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWFrU2V0
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpX
ZWFrU2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpXZWFrU2V0Q29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYWtTZXRDb25zdHJ1Y3Rvcjo6
V2Vha1NldENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlND
OjpXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUNvbXBpbGVF
cnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JD
b25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oldl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpXZWJB
c3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUlu
c3RhbmNlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6Oldl
YkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJs
eUxpbmtFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6V2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OldlYkFz
c2VtYmx5TWVtb3J5Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1lbW9y
eUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAg
ICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5TW9kdWxlQ29u
c3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1
bGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2Vt
Ymx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5VGFibGVDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmg6CisKIDIwMTctMTAtMjEgIEpvc2VwaCBQZWNvcmFybyAg
PHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgdW51
c2VkIENvbnNvbGUuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYmYxNjQw
NWQyMTdmOTA1NzlkNWVjODk1MWIxOWE0MmY4M2E0OGQwLi43M2Y1NDkyZDQwZGYxYTFlZjBkOGFk
OTNjZTY3ODZjNzVhZWJiMGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMTAt
MjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgSklU
IGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2FsbHMgdG8gb2JqZWN0cyB3aXRoIGdl
dENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAg
ICAgICAgKEpTQzo6UnVudGltZU1ldGhvZDo6UnVudGltZU1ldGhvZCk6CisgICAgICAgIChKU0M6
OlJ1bnRpbWVNZXRob2Q6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBicmlkZ2Uv
cnVudGltZV9tZXRob2QuaDoKKwogMjAxNy0xMC0yMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtGcmFtZVZpZXc6OmxheW91dCBjbGVhbnVwXSBEcm9wIGFsbG93
U3VidHJlZSBwYXJhbWV0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDVjNDVlNzQ3N2UzZGNjMWRlYzYyYjY3YmUx
M2FhZTk4ZmJjOGY0My4uMWQxMmVhN2Q4ODY1NzMxNzQzMzNmMjRiNjQ2NzE0MGQ3Y2NkNGRmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0xMC0yMiAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBKSVQgY2FsbCBpbmxpbmUgY2FjaGVzIHNo
b3VsZCBjYWNoZSBjYWxscyB0byBvYmplY3RzIHdpdGggZ2V0Q2FsbERhdGEvZ2V0Q29uc3RydWN0
RGF0YSB0cmFwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ0NDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkpTTlBNZXRob2Q6OkpTTlBNZXRob2QpOgorICAgICAgICAoV2ViS2l0OjpKU05Q
TWV0aG9kOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE1ldGhvZDo6
Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxNy0xMC0yMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0
YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2lsZW5jZSBhIC1XdW51
c2VkLWJ1dC1zZXQtdmFyaWFibGUgd2FybmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCmluZGV4IDY4NGVjZTYzMGZhMWNhODBhN2MzOGVj
Y2FjZDQwZTc4NzJlY2Y4MTAuLjc4Y2E1NWJiMjNlZDZjZmRiOWQ5MWRlNDU4NzZlY2U3Njc2MzQ3
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlv
bi5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJV
Q1RJQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbik7CiBjb25zdCBDbGFzc0luZm8gSlNDYWxsYmFja0Z1
bmN0aW9uOjpzX2luZm8gPSB7ICJDYWxsYmFja0Z1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNr
RnVuY3Rpb24pIH07CiAKIEpTQ2FsbGJhY2tGdW5jdGlvbjo6SlNDYWxsYmFja0Z1bmN0aW9uKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFj
ayBjYWxsYmFjaykKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6
IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2Fs
bDxKU0NhbGxiYWNrRnVuY3Rpb24+LCBudWxscHRyKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFj
aykKIHsKIH0KQEAgLTYzLDEwICs2Myw0IEBAIEpTQ2FsbGJhY2tGdW5jdGlvbiogSlNDYWxsYmFj
a0Z1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAg
cmV0dXJuIGZ1bmN0aW9uOwogfQogCi1DYWxsVHlwZSBKU0NhbGxiYWNrRnVuY3Rpb246OmdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBBUElDYWxsYmFja0Z1bmN0aW9uOjpjYWxsPEpTQ2FsbGJhY2tGdW5jdGlv
bj47Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9u
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCmluZGV4
IGE0ZmRkMDY4ZmVmNDhiNDhhZDZkYTQ5NDQ0YjViNWQ0MGMwY2RhNjUuLjRjNTRiODBmNTljZWI5
MGIzMjE3ZDc3OGJlOWNkYzE4MGZjNDRmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaApAQCAtNDQsMTUgKzQ0LDEzIEBAIGNsYXNzIEpTQ2Fs
bGJhY2tGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICAvLyByZWZhY3Rv
ciB0aGUgY29kZSBzbyB0aGlzIG92ZXJyaWRlIGlzbid0IG5lY2Vzc2FyeQogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKIHByaXZhdGU6CiAgICAgSlNDYWxs
YmFja0Z1bmN0aW9uKFZNJiwgU3RydWN0dXJlKiwgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxi
YWNrKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29uc3QgU3RyaW5nJiBuYW1lKTsK
IAotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwot
CiAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrIGZ1bmN0aW9uQ2FsbGJhY2soKSB7
IHJldHVybiBtX2NhbGxiYWNrOyB9CiAKICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJh
Y2sgbV9jYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2Jq
Q0NhbGxiYWNrRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxi
YWNrRnVuY3Rpb24uaAppbmRleCA0ZDViNzM2OGQzYzdjMTAzYjRkNGU2M2ZhOGU2MjQ1YmNmMDJj
NmIxLi5kZWE2Y2M0NGNjNTViOTU5NzE0Mjk4NTIyNTA5MjYzNWQ4OWVkYjcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC01NCw3
ICs1NCw3IEBAIGNsYXNzIE9iakNDYWxsYmFja0Z1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBERUNMQVJFX0VYUE9S
VF9JTkZPOwpAQCAtNjUsOSArNjUsNiBAQCBjbGFzcyBPYmpDQ2FsbGJhY2tGdW5jdGlvbiA6IHB1
YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBPYmpDQ2FsbGJhY2tGdW5jdGlvbihWTSYsIFN0
cnVjdHVyZSosIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjaywgSlNPYmplY3RDYWxsQXND
b25zdHJ1Y3RvckNhbGxiYWNrLCBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ0NhbGxiYWNrRnVuY3Rpb25J
bXBsPik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0KICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9u
Q2FsbGJhY2sgZnVuY3Rpb25DYWxsYmFjaygpIHsgcmV0dXJuIG1fZnVuY3Rpb25DYWxsYmFjazsg
fQogICAgIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBjb25zdHJ1Y3RDYWxsYmFj
aygpIHsgcmV0dXJuIG1fY29uc3RydWN0Q2FsbGJhY2s7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KaW5kZXggZmI5M2E4NjBhZWJm
MmY0OTBiMDdjMjVmZjc1MDM1MzJhNGI3N2FkMy4uNjNmOTIwZWRiMjI0ZjFhZGQxZDA5YjdhMTEy
MzdhZDY1YTE4NzkyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpD
Q2FsbGJhY2tGdW5jdGlvbi5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakND
YWxsYmFja0Z1bmN0aW9uLm1tCkBAIC01MDYsNyArNTA2LDcgQEAgc3RhdGljIEpTT2JqZWN0UmVm
IG9iakNDYWxsYmFja0Z1bmN0aW9uQ2FsbEFzQ29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGNhbGxl
ckNvbnQKIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIE9iakNDYWxsYmFja0Z1bmN0aW9uOjpzX2luZm8g
PSB7ICJDYWxsYmFja0Z1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShPYmpDQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAogT2JqQ0NhbGxi
YWNrRnVuY3Rpb246Ok9iakNDYWxsYmFja0Z1bmN0aW9uKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2sgZnVuY3Rpb25D
YWxsYmFjaywgSlNPYmplY3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxiYWNrIGNvbnN0cnVjdENhbGxi
YWNrLCBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsPiBpbXBsKQotICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBBUElDYWxs
YmFja0Z1bmN0aW9uOjpjYWxsPE9iakNDYWxsYmFja0Z1bmN0aW9uPiwgaW1wbC0+aXNDb25zdHJ1
Y3RpYmxlKCkgPyBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1Y3Q8T2JqQ0NhbGxiYWNrRnVu
Y3Rpb24+IDogbnVsbHB0cikKICAgICAsIG1fZnVuY3Rpb25DYWxsYmFjayhmdW5jdGlvbkNhbGxi
YWNrKQogICAgICwgbV9jb25zdHJ1Y3RDYWxsYmFjayhjb25zdHJ1Y3RDYWxsYmFjaykKICAgICAs
IG1faW1wbChXVEZNb3ZlKGltcGwpKQpAQCAtNTI4LDIyICs1MjgsNiBAQCB2b2lkIE9iakNDYWxs
YmFja0Z1bmN0aW9uOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKICAgICBmdW5jdGlvbi5+T2JqQ0Nh
bGxiYWNrRnVuY3Rpb24oKTsKIH0KIAotCi1DYWxsVHlwZSBPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRh
Lm5hdGl2ZS5mdW5jdGlvbiA9IEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGw8T2JqQ0NhbGxiYWNr
RnVuY3Rpb24+OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQotQ29uc3RydWN0VHlw
ZSBPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqIGNlbGwsIENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgT2JqQ0NhbGxiYWNrRnVuY3Rpb24q
IGNhbGxiYWNrID0ganNDYXN0PE9iakNDYWxsYmFja0Z1bmN0aW9uKj4oY2VsbCk7Ci0gICAgaWYg
KCFjYWxsYmFjay0+aW1wbCgpLT5pc0NvbnN0cnVjdGlibGUoKSkKLSAgICAgICAgcmV0dXJuIEJh
c2U6OmdldENvbnN0cnVjdERhdGEoY2VsbCwgY29uc3RydWN0RGF0YSk7Ci0gICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1Y3Q8T2Jq
Q0NhbGxiYWNrRnVuY3Rpb24+OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQot
CiBTdHJpbmcgT2JqQ0NhbGxiYWNrRnVuY3Rpb25JbXBsOjpuYW1lKCkKIHsKICAgICBpZiAobV90
eXBlID09IENhbGxiYWNrSW5pdE1ldGhvZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCmluZGV4IDliYzExN2YxOTkxNGM1MzllMmRjYWUz
MzcyZTMxYTQ5YWQ2YzJlYTEuLmE5ZjE2ZDczZjNkY2YwNzQ5MzlkMThjNmNkODc4ZTJlMWIxZmY4
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1
bXBlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVt
cGVyLmNwcApAQCAtNTc4LDE2ICs1NzgsMTkgQEAgdm9pZCBCeXRlY29kZUR1bXBlcjxCbG9jaz46
OnByaW50Q2FsbE9wKFByaW50U3RyZWFtJiBvdXQsIGludCBsb2NhdGlvbiwgY29uc3QgdHkKICAg
ICBpZiAoY2FjaGVEdW1wTW9kZSA9PSBEdW1wQ2FjaGVzKSB7CiAgICAgICAgIExMSW50Q2FsbExp
bmtJbmZvKiBjYWxsTGlua0luZm8gPSBnZXRDYWxsTGlua0luZm8oaXRbMV0pOwogICAgICAgICBp
ZiAoY2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZSkgewotICAgICAgICAgICAgb3V0LnByaW50
ZigKLSAgICAgICAgICAgICAgICAiIGxsaW50KCVwLCBleGVjICVwKSIsCi0gICAgICAgICAgICAg
ICAgY2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZS5nZXQoKSwKLSAgICAgICAgICAgICAgICBj
YWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLT5leGVjdXRhYmxlKCkpOworICAgICAgICAgICAg
SlNPYmplY3QqIG9iamVjdCA9IGNhbGxMaW5rSW5mby0+bGFzdFNlZW5DYWxsZWUuZ2V0KCk7Cisg
ICAgICAgICAgICBpZiAoYXV0byogZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24q
Pigqdm0oKSwgb2JqZWN0KSkKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIgbGxpbnQoJXAs
IGV4ZWMgJXApIiwgZnVuY3Rpb24sIGZ1bmN0aW9uLT5leGVjdXRhYmxlKCkpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiBsbGludCglcCkiLCBvYmplY3Qp
OwogICAgICAgICB9CiAjaWYgRU5BQkxFKEpJVCkKICAgICAgICAgaWYgKENhbGxMaW5rSW5mbyog
aW5mbyA9IG1hcC5nZXQoQ29kZU9yaWdpbihsb2NhdGlvbikpKSB7Ci0gICAgICAgICAgICBKU0Z1
bmN0aW9uKiB0YXJnZXQgPSBpbmZvLT5sYXN0U2VlbkNhbGxlZSgpOwotICAgICAgICAgICAgaWYg
KHRhcmdldCkKLSAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIgaml0KCVwLCBleGVjICVwKSIs
IHRhcmdldCwgdGFyZ2V0LT5leGVjdXRhYmxlKCkpOworICAgICAgICAgICAgSlNPYmplY3QqIG9i
amVjdCA9IGluZm8tPmxhc3RTZWVuQ2FsbGVlKCk7CisgICAgICAgICAgICBpZiAoYXV0byogZnVu
Y3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPigqdm0oKSwgb2JqZWN0KSkKKyAgICAg
ICAgICAgICAgICBvdXQucHJpbnRmKCIgaml0KCVwLCBleGVjICVwKSIsIGZ1bmN0aW9uLCBmdW5j
dGlvbi0+ZXhlY3V0YWJsZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBv
dXQucHJpbnRmKCIgaml0KCVwKSIsIG9iamVjdCk7CiAgICAgICAgIH0KIAogICAgICAgICBkdW1w
Q2FsbExpbmtTdGF0dXMob3V0LCBsb2NhdGlvbiwgbWFwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbiBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgppbmRleCBlMTEzMTRmMjI5NjJmODVk
ZjdmMWNmZTY2MzVlNGJmOTk2YTVlZDA1Li43NGM5MWFhNGY4NDQ5NDVkNjg5N2I3MDdjMGEyNWY0
ZmRiOTNmNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlTGlzdC5qc29uCkBAIC0yMTgsNiArMjE4LDggQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDog
ImxsaW50X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xpbmUiIH0sCiAgICAgICAgICAgICB7ICJu
YW1lIiA6ICJsbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lIiB9LAogICAgICAgICAgICAgeyAi
bmFtZSIgOiAibGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lIiB9LAorICAgICAgICAg
ICAgeyAibmFtZSIgOiAibGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY2FsbF90cmFtcG9saW5lIiB9
LAorICAgICAgICAgICAgeyAibmFtZSIgOiAibGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY29uc3Ry
dWN0X3RyYW1wb2xpbmUiIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJoYW5kbGVVbmNhdWdo
dEV4Y2VwdGlvbiIgfQogICAgICAgICBdCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAppbmRleCAzYWNjNWZiZTNmZWVjNTAxYzdlZGM1
NGRlYzg5NjY4NmMzYzdhOWE1Li5lZDZkMzY5NzQ3NTE0ZGZiMmU5YmQyNTE2MDUyODUyZmNiZjdm
Y2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
LmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIENvZGVMb2NhdGlvbkxhYmVsIENhbGxMaW5rSW5mbzo6
c2xvd1BhdGhTdGFydCgpCiAgICAgcmV0dXJuIG1faG90UGF0aEJlZ2luT3JTbG93UGF0aFN0YXJ0
OwogfQogCi12b2lkIENhbGxMaW5rSW5mbzo6c2V0Q2FsbGVlKFZNJiB2bSwgSlNDZWxsKiBvd25l
ciwgSlNGdW5jdGlvbiogY2FsbGVlKQordm9pZCBDYWxsTGlua0luZm86OnNldENhbGxlZShWTSYg
dm0sIEpTQ2VsbCogb3duZXIsIEpTT2JqZWN0KiBjYWxsZWUpCiB7CiAgICAgUkVMRUFTRV9BU1NF
UlQoIWlzRGlyZWN0KCkpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBhdGNoUG9pbnRlcihob3RQ
YXRoQmVnaW4oKSwgY2FsbGVlKTsKQEAgLTEzNywxMCArMTM3LDEwIEBAIHZvaWQgQ2FsbExpbmtJ
bmZvOjpjbGVhckNhbGxlZSgpCiAgICAgbV9pc0xpbmtlZCA9IGZhbHNlOwogfQogCi1KU0Z1bmN0
aW9uKiBDYWxsTGlua0luZm86OmNhbGxlZSgpCitKU09iamVjdCogQ2FsbExpbmtJbmZvOjpjYWxs
ZWUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKCFpc0RpcmVjdCgpKTsKLSAgICByZXR1cm4ganND
YXN0PEpTRnVuY3Rpb24qPihtX2NhbGxlZU9yQ29kZUJsb2NrLmdldCgpKTsKKyAgICByZXR1cm4g
anNDYXN0PEpTT2JqZWN0Kj4obV9jYWxsZWVPckNvZGVCbG9jay5nZXQoKSk7CiB9CiAKIHZvaWQg
Q2FsbExpbmtJbmZvOjpzZXRDb2RlQmxvY2soVk0mIHZtLCBKU0NlbGwqIG93bmVyLCBGdW5jdGlv
bkNvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtMTYzLDcgKzE2Myw3IEBAIEZ1bmN0aW9uQ29kZUJs
b2NrKiBDYWxsTGlua0luZm86OmNvZGVCbG9jaygpCiAgICAgcmV0dXJuIGpzQ2FzdDxGdW5jdGlv
bkNvZGVCbG9jayo+KG1fY2FsbGVlT3JDb2RlQmxvY2suZ2V0KCkpOwogfQogCi12b2lkIENhbGxM
aW5rSW5mbzo6c2V0TGFzdFNlZW5DYWxsZWUoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBK
U0Z1bmN0aW9uKiBjYWxsZWUpCit2b2lkIENhbGxMaW5rSW5mbzo6c2V0TGFzdFNlZW5DYWxsZWUo
Vk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBKU09iamVjdCogY2FsbGVlKQogewogICAgIFJF
TEVBU0VfQVNTRVJUKCFpc0RpcmVjdCgpKTsKICAgICBtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRh
YmxlLnNldCh2bSwgb3duZXIsIGNhbGxlZSk7CkBAIC0xNzUsMTAgKzE3NSwxMCBAQCB2b2lkIENh
bGxMaW5rSW5mbzo6Y2xlYXJMYXN0U2VlbkNhbGxlZSgpCiAgICAgbV9sYXN0U2VlbkNhbGxlZU9y
RXhlY3V0YWJsZS5jbGVhcigpOwogfQogCi1KU0Z1bmN0aW9uKiBDYWxsTGlua0luZm86Omxhc3RT
ZWVuQ2FsbGVlKCkKK0pTT2JqZWN0KiBDYWxsTGlua0luZm86Omxhc3RTZWVuQ2FsbGVlKCkKIHsK
ICAgICBSRUxFQVNFX0FTU0VSVCghaXNEaXJlY3QoKSk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0Z1
bmN0aW9uKj4obV9sYXN0U2VlbkNhbGxlZU9yRXhlY3V0YWJsZS5nZXQoKSk7CisgICAgcmV0dXJu
IGpzQ2FzdDxKU09iamVjdCo+KG1fbGFzdFNlZW5DYWxsZWVPckV4ZWN1dGFibGUuZ2V0KCkpOwog
fQogCiBib29sIENhbGxMaW5rSW5mbzo6aGF2ZUxhc3RTZWVuQ2FsbGVlKCkKQEAgLTIzNSwxNCAr
MjM1LDIwIEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp2aXNpdFdlYWsoVk0mIHZtKQogICAgICAgICAg
ICAgICAgICAgICAgICAgcG9pbnRlckR1bXAoY29kZUJsb2NrKCkpLCAiKS5cbiIpOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKE9w
dGlvbnM6OnZlcmJvc2VPU1IoKSkgewotICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKAotICAg
ICAgICAgICAgICAgICAgICAgICAgIkNsZWFyaW5nIGNhbGwgdG8gIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIFJhd1BvaW50ZXIoY2FsbGVlKCkpLCAiICgiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgY2FsbGVlKCktPmV4ZWN1dGFibGUoKS0+aGFzaEZvcihzcGVjaWFsaXphdGlvbktpbmQo
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAiKS5cbiIpOworICAgICAgICAgICAgICAgIGlm
IChjYWxsZWUoKS0+dHlwZSgpID09IEpTRnVuY3Rpb25UeXBlKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRhdGFMb2coCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNsZWFyaW5nIGNhbGwgdG8g
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYXdQb2ludGVyKGNhbGxlZSgpKSwgIiAo
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4o
Y2FsbGVlKCkpLT5leGVjdXRhYmxlKCktPmhhc2hGb3Ioc3BlY2lhbGl6YXRpb25LaW5kKCkpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpLlxuIik7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlU3BlY2lmaWNDYWxsZWUoc3RhdGljX2Nhc3Q8
SlNGdW5jdGlvbio+KGNhbGxlZSgpKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRhdGFMb2coIkNsZWFyaW5nIGNhbGwgdG8gIiwgUmF3UG9pbnRlcihjYWxsZWUo
KSksICIuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jbGVhcmVkQnlHQyA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGhhbmRsZVNwZWNpZmljQ2FsbGVlKGNh
bGxlZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHVubGluayh2bSk7CiAgICAgICAg
IH0gZWxzZSBpZiAoaXNEaXJlY3QoKSAmJiAhSGVhcDo6aXNNYXJrZWQobV9sYXN0U2VlbkNhbGxl
ZU9yRXhlY3V0YWJsZS5nZXQoKSkpIHsKQEAgLTI1OCw3ICsyNjQsMTAgQEAgdm9pZCBDYWxsTGlu
a0luZm86OnZpc2l0V2VhayhWTSYgdm0pCiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKCFpc0Rp
cmVjdCgpICYmIGhhdmVMYXN0U2VlbkNhbGxlZSgpICYmICFIZWFwOjppc01hcmtlZChsYXN0U2Vl
bkNhbGxlZSgpKSkgewotICAgICAgICBoYW5kbGVTcGVjaWZpY0NhbGxlZShsYXN0U2VlbkNhbGxl
ZSgpKTsKKyAgICAgICAgaWYgKGxhc3RTZWVuQ2FsbGVlKCktPnR5cGUoKSA9PSBKU0Z1bmN0aW9u
VHlwZSkKKyAgICAgICAgICAgIGhhbmRsZVNwZWNpZmljQ2FsbGVlKHN0YXRpY19jYXN0PEpTRnVu
Y3Rpb24qPihsYXN0U2VlbkNhbGxlZSgpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1f
Y2xlYXJlZEJ5R0MgPSB0cnVlOwogICAgICAgICBjbGVhckxhc3RTZWVuQ2FsbGVlKCk7CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5r
SW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCmlu
ZGV4IDkxZDNkZDhmNzViMTIyODNlMGFhZGQ3ODhlMGY5Njc1OTBmNmRlODEuLjViYzJjNDRmNDU4
NDgyNTBiNzhhODg1NDBhMzgwYjhkMDA2MDA4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKQEAgLTE5MSwxNyArMTkxLDE3IEBAIGNsYXNzIENh
bGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxDYWxsTGlua0luZm8+IHsK
ICAgICAgICAgcmV0dXJuIG1faG90UGF0aE90aGVyOwogICAgIH0KIAotICAgIHZvaWQgc2V0Q2Fs
bGVlKFZNJiwgSlNDZWxsKiwgSlNGdW5jdGlvbiogY2FsbGVlKTsKKyAgICB2b2lkIHNldENhbGxl
ZShWTSYsIEpTQ2VsbCosIEpTT2JqZWN0KiBjYWxsZWUpOwogICAgIHZvaWQgY2xlYXJDYWxsZWUo
KTsKLSAgICBKU0Z1bmN0aW9uKiBjYWxsZWUoKTsKKyAgICBKU09iamVjdCogY2FsbGVlKCk7CiAK
ICAgICB2b2lkIHNldENvZGVCbG9jayhWTSYsIEpTQ2VsbCosIEZ1bmN0aW9uQ29kZUJsb2NrKik7
CiAgICAgdm9pZCBjbGVhckNvZGVCbG9jaygpOwogICAgIEZ1bmN0aW9uQ29kZUJsb2NrKiBjb2Rl
QmxvY2soKTsKIAotICAgIHZvaWQgc2V0TGFzdFNlZW5DYWxsZWUoVk0mIHZtLCBjb25zdCBKU0Nl
bGwqIG93bmVyLCBKU0Z1bmN0aW9uKiBjYWxsZWUpOworICAgIHZvaWQgc2V0TGFzdFNlZW5DYWxs
ZWUoVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBKU09iamVjdCogY2FsbGVlKTsKICAgICB2b2lk
IGNsZWFyTGFzdFNlZW5DYWxsZWUoKTsKLSAgICBKU0Z1bmN0aW9uKiBsYXN0U2VlbkNhbGxlZSgp
OworICAgIEpTT2JqZWN0KiBsYXN0U2VlbkNhbGxlZSgpOwogICAgIGJvb2wgaGF2ZUxhc3RTZWVu
Q2FsbGVlKCk7CiAgICAgCiAgICAgdm9pZCBzZXRFeGVjdXRhYmxlRHVyaW5nQ29tcGlsYXRpb24o
RXhlY3V0YWJsZUJhc2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9DYWxsTGlua1N0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q2FsbExpbmtTdGF0dXMuY3BwCmluZGV4IDUzYjg0ZDljMDM3ZTE3ZjZhZTkzZGM4NTUxOTI3ODhi
NjNlNjdhZWEuLmYyODRlMzAxNjRhMDBhNTQ3MTEwNmNiNThkOTg4MDAxYmQyNjVlZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcApA
QCAtMjE1LDcgKzIxNSw3IEBAIENhbGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRl
RnJvbUNhbGxMaW5rSW5mbygKICAgICAKICAgICBDYWxsTGlua1N0YXR1cyByZXN1bHQ7CiAgICAg
Ci0gICAgaWYgKEpTRnVuY3Rpb24qIHRhcmdldCA9IGNhbGxMaW5rSW5mby5sYXN0U2VlbkNhbGxl
ZSgpKSB7CisgICAgaWYgKEpTT2JqZWN0KiB0YXJnZXQgPSBjYWxsTGlua0luZm8ubGFzdFNlZW5D
YWxsZWUoKSkgewogICAgICAgICBDYWxsVmFyaWFudCB2YXJpYW50KHRhcmdldCk7CiAgICAgICAg
IGlmIChjYWxsTGlua0luZm8uaGFzU2VlbkNsb3N1cmUoKSkKICAgICAgICAgICAgIHZhcmlhbnQg
PSB2YXJpYW50LmRlc3BlY2lmaWVkQ2xvc3VyZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50Q2FsbExpbmtJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTExJbnRDYWxsTGlua0luZm8uaAppbmRleCBjMmNmNGQxZGMxNWJmN2Zh
OWUwODkxODYxNmFhNTNhMDI0OTE3MWNkLi44ZDBiODYwZWVmMjVhNTUxMWFiZGZmZDYxODA4NmZm
YTE4MTQ4ZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJ
bnRDYWxsTGlua0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJ
bnRDYWxsTGlua0luZm8uaApAQCAtNTQsOCArNTQsOCBAQCBzdHJ1Y3QgTExJbnRDYWxsTGlua0lu
Zm8gOiBwdWJsaWMgQmFzaWNSYXdTZW50aW5lbE5vZGU8TExJbnRDYWxsTGlua0luZm8+IHsKICAg
ICAgICAgICAgIHJlbW92ZSgpOwogICAgIH0KICAgICAKLSAgICBXcml0ZUJhcnJpZXI8SlNGdW5j
dGlvbj4gY2FsbGVlOwotICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBsYXN0U2VlbkNhbGxl
ZTsKKyAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IGNhbGxlZTsKKyAgICBXcml0ZUJhcnJpZXI8
SlNPYmplY3Q+IGxhc3RTZWVuQ2FsbGVlOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtYWNo
aW5lQ29kZVRhcmdldDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCmluZGV4IDA2NTUwMDRkZDM2ZTdjMDY2ZTViZmEwNWRiYzMyMDIwMTVhMmM1ZGMu
Ljk2MjFmZDE1MWY4MzkxZWVjOGEyOWRkMDhiNGQ3NmU0N2EwMmU0NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtOTM5LDkgKzkzOSwxNyBAQCBT
bG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbChFeGVjU3Rh
dGUqIGV4ZWNDYWxsZWUsIENhbGxMaQogICAgIEpTVmFsdWUgY2FsbGVlQXNWYWx1ZSA9IGV4ZWND
YWxsZWUtPmd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCk7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1
bmN0aW9uQ2VsbCA9IGdldEpTRnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSk7CiAgICAgaWYgKCFjYWxs
ZWVBc0Z1bmN0aW9uQ2VsbCkgewotICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNhY2hlIHRo
ZXNlIGtpbmRzIG9mIGNhbGxzLiBUaGV5IGNhbiBiZSBjb21tb24gYW5kIGN1cnJlbnRseSB0aGV5
IGFyZQotICAgICAgICAvLyBleHBlbnNpdmUuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0NTgKKyAgICAgICAgaWYgKGNhbGxlZUFzVmFsdWUu
aXNDZWxsKCkgJiYgY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEludGVybmFsRnVu
Y3Rpb25UeXBlKSB7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9
IHZtLT5nZXRDVElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihraW5kKTsKKyAgICAgICAg
ICAgIEFTU0VSVCghIWNvZGVQdHIpOworCisgICAgICAgICAgICBpZiAoIWNhbGxMaW5rSW5mby0+
c2Vlbk9uY2UoKSkKKyAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPnNldFNlZW4oKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5rRm9yKGV4ZWNDYWxsZWUsICpjYWxs
TGlua0luZm8sIG51bGxwdHIsIGFzT2JqZWN0KGNhbGxlZUFzVmFsdWUpLCBjb2RlUHRyKTsKKwor
ICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNz
KCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+Y2FsbE1vZGUoKSA9PSBD
YWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJhbWUpKTsKKyAgICAgICAg
fQogICAgICAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKICAgICAgICAgcmV0dXJuIGhhbmRsZUhv
c3RDYWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzVmFsdWUsIGNhbGxMaW5rSW5mbyk7CiAgICAgfQpA
QCAtOTUxLDcgKzk1OSw3IEBAIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ2FsbExpCiAgICAgRXhlY3V0YWJs
ZUJhc2UqIGV4ZWN1dGFibGUgPSBjYWxsZWUtPmV4ZWN1dGFibGUoKTsKIAogICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBjb2RlUHRyOwotICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gMDsKKyAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IG51bGxwdHI7CiAgICAgaWYgKGV4ZWN1dGFibGUtPmlz
SG9zdEZ1bmN0aW9uKCkpIHsKICAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUtPmVudHJ5cG9p
bnRGb3Ioa2luZCwgTXVzdENoZWNrQXJpdHkpOwogICAgIH0gZWxzZSB7CkBAIC0xMDUzLDYgKzEw
NjEsMTEgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9u
KAogICAgIEpTVmFsdWUgY2FsbGVlQXNWYWx1ZSA9IGV4ZWNDYWxsZWUtPmd1YXJhbnRlZWRKU1Zh
bHVlQ2FsbGVlKCk7CiAgICAgY2FsbGVlQXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9uKGNh
bGxlZUFzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghY2FsbGVlQXNGdW5jdGlvbkNlbGwpKSB7
CisgICAgICAgIGlmIChjYWxsZWVBc1ZhbHVlLmlzQ2VsbCgpICYmIGNhbGxlZUFzVmFsdWUuYXND
ZWxsKCktPnR5cGUoKSA9PSBJbnRlcm5hbEZ1bmN0aW9uVHlwZSkgeworICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIgPSB2bS0+Z2V0Q1RJSW50ZXJuYWxGdW5jdGlvblRy
YW1wb2xpbmVGb3Ioa2luZCk7CisgICAgICAgICAgICBBU1NFUlQoISFjb2RlUHRyKTsKKyAgICAg
ICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpLCBy
ZWludGVycHJldF9jYXN0PHZvaWQqPihjYWxsTGlua0luZm8tPmNhbGxNb2RlKCkgPT0gQ2FsbE1v
ZGU6OlRhaWwgPyBSZXVzZVRoZUZyYW1lIDogS2VlcFRoZUZyYW1lKSk7CisgICAgICAgIH0KICAg
ICAgICAgdGhyb3dTY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBoYW5kbGVIb3N0Q2Fs
bChleGVjQ2FsbGVlLCBjYWxsZWVBc1ZhbHVlLCBjYWxsTGlua0luZm8pOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcAppbmRleCBkZmZkODAyYjFlYzk5ODQ3MGIw
Y2ZmYWYxOTAwZmM2NTYwMDBhNDI2Li4wM2RlZDZjMzI2YTU1YjFhNzYxNTIzYzllZTE5N2JkZmJm
MjJhYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCkBAIC03MSw2
ICs3MSwyMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVUYWls
Q2FsbFdpdGhvdXRTYXZlZFRhZ3MoVk0qIHZtKQogICAgIHJldHVybiBjdGlTdHViKHZtLCBuYXRp
dmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IpLmNvZGUoKTsKIH0KIAorTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpSW50ZXJuYWxGdW5jdGlvbkNhbGwoVk0qIHZt
KQoreworICAgIGlmICghdm0tPmNhblVzZUpJVCgpKQorICAgICAgICByZXR1cm4gTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQdHIobGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25f
Y2FsbF90cmFtcG9saW5lKTsKKyAgICByZXR1cm4gY3RpU3R1Yih2bSwgaW50ZXJuYWxGdW5jdGlv
bkNhbGxHZW5lcmF0b3IpLmNvZGUoKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRo
dW5rczo6Y3RpSW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdChWTSogdm0pCit7CisgICAgaWYgKCF2
bS0+Y2FuVXNlSklUKCkpCisgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNy
ZWF0ZUxMSW50Q29kZVB0cihsbGludF9pbnRlcm5hbF9mdW5jdGlvbl9jb25zdHJ1Y3RfdHJhbXBv
bGluZSk7CisgICAgcmV0dXJuIGN0aVN0dWIodm0sIGludGVybmFsRnVuY3Rpb25Db25zdHJ1Y3RH
ZW5lcmF0b3IpLmNvZGUoKTsKK30KKwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIEpJVFRodW5rczo6
Y3RpU3R1YihWTSogdm0sIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvcikKIHsKICAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2xvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRUaHVua3MuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKaW5k
ZXggNGU3MzM3YTBkZjBmYjYwNDY5N2ZlYTZkZjdhZjMyMTBkNjA4ZWY1OS4uMzE0MjcyOGIyZTZi
MmNkODQyYzYyMTc0YWFiYjkyMzlmN2U1MzkwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRUaHVua3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFRodW5rcy5oCkBAIC01NSw2ICs1NSw4IEBAIGNsYXNzIEpJVFRodW5rcyBmaW5hbCA6IHByaXZh
dGUgV2Vha0hhbmRsZU93bmVyIHsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZl
Q29uc3RydWN0KFZNKik7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZVRhaWxD
YWxsKFZNKik7ICAgIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVUYWlsQ2Fs
bFdpdGhvdXRTYXZlZFRhZ3MoVk0qKTsgICAgCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aUludGVybmFsRnVuY3Rpb25DYWxsKFZNKik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0
aUludGVybmFsRnVuY3Rpb25Db25zdHJ1Y3QoVk0qKTsKIAogICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBjdGlTdHViKFZNKiwgVGh1bmtHZW5lcmF0b3IpOwogICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBleGlzdGluZ0NUSVN0dWIoVGh1bmtHZW5lcmF0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5jcHAKaW5kZXggZDc5YWM2ZDg4MDczMTdlYjFiNzkyNzVjYjczMDA5OGY0ZTlj
YmUyMi4uNjc2NDJkNjQyYTA0MmFlNzQyNjUwYjUxNDZkMGE0MDE4YzNhMDc4MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCkBAIC02OTIsNyArNjkyLDcgQEAgc3RhdGljIEpT
Q2VsbCogd2ViQXNzZW1ibHlPd25lcihKU0NlbGwqIGNhbGxlZSkKIAogdm9pZCBsaW5rRm9yKAog
ICAgIEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9j
ayogY2FsbGVlQ29kZUJsb2NrLAotICAgIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGNvZGVQdHIpCisgICAgSlNPYmplY3QqIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGNvZGVQdHIpCiB7CiAgICAgQVNTRVJUKCFjYWxsTGlua0luZm8uc3R1YigpKTsKIApA
QCAtODE1LDkgKzgxNSw3IEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKIHsKICAgICBSRUxF
QVNFX0FTU0VSVChjYWxsTGlua0luZm8uYWxsb3dTdHVicygpKTsKICAgICAKLSAgICAvLyBDdXJy
ZW50bHkgd2UgY2FuJ3QgZG8gYW55dGhpbmcgZm9yIG5vbi1mdW5jdGlvbiBjYWxsZWVzLgotICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA2ODUKLSAgICBp
ZiAoIW5ld1ZhcmlhbnQgfHwgIW5ld1ZhcmlhbnQuZXhlY3V0YWJsZSgpKSB7CisgICAgaWYgKCFu
ZXdWYXJpYW50KSB7CiAgICAgICAgIGxpbmtWaXJ0dWFsRm9yKGV4ZWMsIGNhbGxMaW5rSW5mbyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04MzksNyArODM3LDcgQEAgdm9pZCBsaW5rUG9s
eW1vcnBoaWNDYWxsKAogICAgIENhbGxWYXJpYW50TGlzdCBsaXN0OwogICAgIGlmIChQb2x5bW9y
cGhpY0NhbGxTdHViUm91dGluZSogc3R1YiA9IGNhbGxMaW5rSW5mby5zdHViKCkpCiAgICAgICAg
IGxpc3QgPSBzdHViLT52YXJpYW50cygpOwotICAgIGVsc2UgaWYgKEpTRnVuY3Rpb24qIG9sZENh
bGxlZSA9IGNhbGxMaW5rSW5mby5jYWxsZWUoKSkKKyAgICBlbHNlIGlmIChKU09iamVjdCogb2xk
Q2FsbGVlID0gY2FsbExpbmtJbmZvLmNhbGxlZSgpKQogICAgICAgICBsaXN0ID0gQ2FsbFZhcmlh
bnRMaXN0eyBDYWxsVmFyaWFudChvbGRDYWxsZWUpIH07CiAgICAgCiAgICAgbGlzdCA9IHZhcmlh
bnRMaXN0V2l0aFZhcmlhbnQobGlzdCwgbmV3VmFyaWFudCk7CkBAIC04NjMsMTAgKzg2MSw4IEBA
IHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKICAgICAKICAgICAvLyBGaWd1cmUgb3V0IHdoYXQg
b3VyIGNhc2VzIGFyZS4KICAgICBmb3IgKENhbGxWYXJpYW50IHZhcmlhbnQgOiBsaXN0KSB7Ci0g
ICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrOwotICAgICAgICBpZiAodmFyaWFudC5leGVjdXRh
YmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpCi0gICAgICAgICAgICBjb2RlQmxvY2sgPSBudWxscHRy
OwotICAgICAgICBlbHNlIHsKKyAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBudWxscHRy
OworICAgICAgICBpZiAodmFyaWFudC5leGVjdXRhYmxlKCkgJiYgIXZhcmlhbnQuZXhlY3V0YWJs
ZSgpLT5pc0hvc3RGdW5jdGlvbigpKSB7CiAgICAgICAgICAgICBFeGVjdXRhYmxlQmFzZSogZXhl
Y3V0YWJsZSA9IHZhcmlhbnQuZXhlY3V0YWJsZSgpOwogICAgICAgICAgICAgY29kZUJsb2NrID0g
anNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpLT5jb2RlQmxvY2tGb3JDYWxs
KCk7CiAgICAgICAgICAgICAvLyBJZiB3ZSBjYW5ub3QgaGFuZGxlIGEgY2FsbGVlLCBlaXRoZXIg
YmVjYXVzZSB3ZSBkb24ndCBoYXZlIGEgQ29kZUJsb2NrIG9yIGJlY2F1c2UgYXJpdHkgbWlzbWF0
Y2gsCkBAIC05MjYsNyArOTIyLDggQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogI2Vsc2UK
ICAgICAgICAgLy8gV2Ugd291bGQgaGF2ZSBhbHJlYWR5IGNoZWNrZWQgdGhhdCB0aGUgY2FsbGVl
IGlzIGEgY2VsbC4KICNlbmRpZgotICAgIAorCisgICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBh
ZGQgYSBmYXN0IHBhdGggZm9yIEludGVybmFsRnVuY3Rpb24gd2l0aCBjbG9zdXJlIGNhbGwuCiAg
ICAgICAgIHNsb3dQYXRoLmFwcGVuZCgKICAgICAgICAgICAgIHN0dWJKaXQuYnJhbmNoOCgKICAg
ICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLApAQCAtOTUzLDExICs5NTAsMTgg
QEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogICAgICAgICAgICAgZmFzdENvdW50c1tpXSA9
IDA7CiAgICAgICAgIAogICAgICAgICBDYWxsVmFyaWFudCB2YXJpYW50ID0gY2FsbENhc2VzW2ld
LnZhcmlhbnQoKTsKLSAgICAgICAgaW50NjRfdCBuZXdDYXNlVmFsdWU7Ci0gICAgICAgIGlmIChp
c0Nsb3N1cmVDYWxsKQorICAgICAgICBpbnQ2NF90IG5ld0Nhc2VWYWx1ZSA9IDA7CisgICAgICAg
IGlmIChpc0Nsb3N1cmVDYWxsKSB7CiAgICAgICAgICAgICBuZXdDYXNlVmFsdWUgPSBiaXR3aXNl
X2Nhc3Q8aW50cHRyX3Q+KHZhcmlhbnQuZXhlY3V0YWJsZSgpKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgbmV3Q2FzZVZhbHVlID0gYml0d2lzZV9jYXN0PGludHB0cl90Pih2YXJpYW50LmZ1
bmN0aW9uKCkpOworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGFkZCBhIGZhc3QgcGF0
aCBmb3IgSW50ZXJuYWxGdW5jdGlvbiB3aXRoIGNsb3N1cmUgY2FsbC4KKyAgICAgICAgICAgIGlm
ICghbmV3Q2FzZVZhbHVlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgaWYgKGF1dG8qIGZ1bmN0aW9uID0gdmFyaWFudC5mdW5jdGlvbigp
KQorICAgICAgICAgICAgICAgIG5ld0Nhc2VWYWx1ZSA9IGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4o
ZnVuY3Rpb24pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG5ld0Nhc2VWYWx1
ZSA9IGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4odmFyaWFudC5pbnRlcm5hbEZ1bmN0aW9uKCkpOwor
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkgewogICAg
ICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBpOyArK2opIHsKQEAgLTk5Niw5ICsxMDAw
LDE0IEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKICAgICAgICAgCiAgICAgICAgIENhbGxW
YXJpYW50IHZhcmlhbnQgPSBjYWxsQ2FzZXNbY2FzZUluZGV4XS52YXJpYW50KCk7CiAgICAgICAg
IAotICAgICAgICBBU1NFUlQodmFyaWFudC5leGVjdXRhYmxlKCktPmhhc0pJVENvZGVGb3JDYWxs
KCkpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciA9Ci0gICAgICAgICAg
ICB2YXJpYW50LmV4ZWN1dGFibGUoKS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+YWRkcmVz
c0ZvckNhbGwoQXJpdHlDaGVja05vdFJlcXVpcmVkKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGNvZGVQdHI7CisgICAgICAgIGlmICh2YXJpYW50LmV4ZWN1dGFibGUoKSkgeworICAg
ICAgICAgICAgQVNTRVJUKHZhcmlhbnQuZXhlY3V0YWJsZSgpLT5oYXNKSVRDb2RlRm9yQ2FsbCgp
KTsKKyAgICAgICAgICAgIGNvZGVQdHIgPSB2YXJpYW50LmV4ZWN1dGFibGUoKS0+Z2VuZXJhdGVk
SklUQ29kZUZvckNhbGwoKS0+YWRkcmVzc0ZvckNhbGwoQXJpdHlDaGVja05vdFJlcXVpcmVkKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVCh2YXJpYW50LmludGVybmFsRnVu
Y3Rpb24oKSk7CisgICAgICAgICAgICBjb2RlUHRyID0gdm0uZ2V0Q1RJSW50ZXJuYWxGdW5jdGlv
blRyYW1wb2xpbmVGb3IoQ29kZUZvckNhbGwpOworICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICBpZiAoZmFzdENvdW50cykgewogICAgICAgICAgICAgc3R1YkppdC5hZGQzMigKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmgKaW5kZXggZTI5NzViOTFjMWQ5Y2U4OGY2MmMwMzcxMzg5ZTlm
NmEyMGIzMWEyOS4uMTliMWY1ZmVmMGM5MThiNDg1ZDgzZDQyODM3MTdhOWQxY2M5NDA0YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBidWls
ZEdldEJ5SURQcm90b0xpc3QoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYs
IGNvbnN0IFByb3BlcnQKIHZvaWQgcmVwYXRjaFB1dEJ5SUQoRXhlY1N0YXRlKiwgSlNWYWx1ZSwg
U3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFB1dFByb3BlcnR5U2xvdCYsIFN0
cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lkIGJ1aWxkUHV0QnlJZExpc3QoRXhlY1N0
YXRlKiwgSlNWYWx1ZSwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFB1dFBy
b3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lkIHJlcGF0Y2hJ
bihFeGVjU3RhdGUqLCBKU0NlbGwqLCBjb25zdCBJZGVudGlmaWVyJiwgYm9vbCB3YXNGb3VuZCwg
Y29uc3QgUHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mKTsKLXZvaWQgbGlua0ZvcihF
eGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBKU0Z1bmN0aW9uKiBjYWxsZWUs
IE1hY3JvQXNzZW1ibGVyQ29kZVB0cik7Cit2b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiwgQ2FsbExp
bmtJbmZvJiwgQ29kZUJsb2NrKiwgSlNPYmplY3QqIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKTsKIHZvaWQgbGlua0RpcmVjdEZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDb2Rl
QmxvY2sqLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIpOwogdm9pZCBsaW5rU2xvd0ZvcihFeGVjU3Rh
dGUqLCBDYWxsTGlua0luZm8mKTsKIHZvaWQgdW5saW5rRm9yKFZNJiwgQ2FsbExpbmtJbmZvJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKaW5kZXgg
ZjFkZGU3NjYyMGUxMzk3YWVhMzI3OTNhM2I5YTE5ZmExMDk5ZWVmMy4uZjllYTVhMzg2MjY3M2Zm
OGY0ZmI2ZmRiNDAzNmNhMWUwOGEyNWVkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiB2aXJ0dWFsVGh1bmtGb3IoVk0qIHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5m
bykKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm90RXF1YWwsIEdQUkluZm86OnJlZ1QxLAog
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykp
KTsKICNlbmRpZgotICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RUeXBlKEdQUklu
Zm86OnJlZ1QwLCBKU0Z1bmN0aW9uVHlwZSkpOworICAgIGF1dG8gbm90SlNGdW5jdGlvbiA9IGpp
dC5icmFuY2hJZk5vdFR5cGUoR1BSSW5mbzo6cmVnVDAsIEpTRnVuY3Rpb25UeXBlKTsKICAgICAK
ICAgICAvLyBOb3cgd2Uga25vdyB3ZSBoYXZlIGEgSlNGdW5jdGlvbi4KICAgICAKQEAgLTIxNSw2
ICsyMTUsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbFRodW5rRm9yKFZNKiB2bSwg
Q2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiAgICAgLy8gY2FsbC4KICAgICAKICAgICAvLyBN
YWtlIGEgdGFpbCBjYWxsLiBUaGlzIHdpbGwgcmV0dXJuIGJhY2sgdG8gSklUIGNvZGUuCisgICAg
SlNJbnRlcmZhY2VKSVQ6OkxhYmVsIGNhbGxDb2RlKGppdC5sYWJlbCgpKTsKICAgICBlbWl0UG9p
bnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpyZWdUNCk7CiAgICAgaWYgKGNhbGxMaW5rSW5m
by5pc1RhaWxDYWxsKCkpIHsKICAgICAgICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVy
Q2FsbChHUFJJbmZvOjpyZWdUMCk7CkBAIC0yMjIsNiArMjIzLDExIEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiB2aXJ0dWFsVGh1bmtGb3IoVk0qIHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5m
bykKICAgICB9CiAgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDQpOwogCisgICAgbm90SlNGdW5j
dGlvbi5saW5rKCZqaXQpOworICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RUeXBl
KEdQUkluZm86OnJlZ1QwLCBJbnRlcm5hbEZ1bmN0aW9uVHlwZSkpOworICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2bS0+Z2V0Q1RJSW50ZXJuYWxGdW5jdGlvblRyYW1w
b2xpbmVGb3IoY2FsbExpbmtJbmZvLnNwZWNpYWxpemF0aW9uS2luZCgpKS5leGVjdXRhYmxlQWRk
cmVzcygpKSwgR1BSSW5mbzo6cmVnVDQpOworICAgIGppdC5qdW1wKCkubGlua1RvKGNhbGxDb2Rl
LCAmaml0KTsKKwogICAgIHNsb3dDYXNlLmxpbmsoJmppdCk7CiAgICAgCiAgICAgLy8gSGVyZSB3
ZSBkb24ndCBrbm93IGFueXRoaW5nLCBzbyByZXZlcnQgdG8gdGhlIGZ1bGwgc2xvdyBwYXRoLgpA
QCAtMjM2LDggKzI0Miw5IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsVGh1bmtGb3Io
Vk0qIHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKIH0KIAogZW51bSBUaHVua0VudHJ5
VHlwZSB7IEVudGVyVmlhQ2FsbCwgRW50ZXJWaWFKdW1wV2l0aFNhdmVkVGFncywgRW50ZXJWaWFK
dW1wV2l0aG91dFNhdmVkVGFncyB9OworZW51bSBjbGFzcyBUaHVua0Z1bmN0aW9uVHlwZSB7IEpT
RnVuY3Rpb24sIEludGVybmFsRnVuY3Rpb24gfTsKIAotc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtp
bmQsIFRodW5rRW50cnlUeXBlIGVudHJ5VHlwZSA9IEVudGVyVmlhQ2FsbCkKK3N0YXRpYyBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgVGh1bmtGdW5jdGlv
blR5cGUgdGh1bmtGdW5jdGlvblR5cGUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgVGh1
bmtFbnRyeVR5cGUgZW50cnlUeXBlID0gRW50ZXJWaWFDYWxsKQogewogICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBhYmxlIHRvIGxvZyBTaGFkb3dDaGlja2VuIHByb2xvZ3VlIHBhY2tldHMu
CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTY4OQpA
QCAtMjc5LDggKzI4NiwxMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZv
ckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQgawogCiAgICAgLy8gY2Fs
bCB0aGUgZnVuY3Rpb24KICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2Fs
bEZyYW1lU2xvdDo6Y2FsbGVlLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgIGppdC5sb2Fk
UHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNGdW5j
dGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAg
IGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwg
ZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKKyAgICBpZiAodGh1bmtGdW5jdGlvblR5cGUg
PT0gVGh1bmtGdW5jdGlvblR5cGU6OkpTRnVuY3Rpb24pIHsKKyAgICAgICAgaml0LmxvYWRQdHIo
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0Z1bmN0aW9u
OjpvZmZzZXRPZkV4ZWN1dGFibGUoKSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAgICAg
IGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwg
ZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaml0LmNh
bGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBJbnRlcm5h
bEZ1bmN0aW9uOjpvZmZzZXRPZk5hdGl2ZUZ1bmN0aW9uRm9yKGtpbmQpKSk7CiAKICAgICBqaXQu
YWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpz
dGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKQEAgLTI5MSw4ICszMDEsMTEgQEAgc3RhdGljIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIFg4NlJlZ2lzdGVyczo6ZWRpKTsKIAogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlclB0cihDYWxsRnJhbWVTbG90OjpjYWxsZWUsIFg4NlJlZ2lzdGVyczo6ZXNpKTsKLSAgICBq
aXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVzaSwgSlNG
dW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBYODZSZWdpc3RlcnM6OnI5KTsKLSAgICBq
aXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBleGVjdXRh
YmxlT2Zmc2V0VG9GdW5jdGlvbikpOworICAgIGlmICh0aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVu
a0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbikgeworICAgICAgICBqaXQubG9hZFB0cihKU0ludGVy
ZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVzaSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZF
eGVjdXRhYmxlKCkpLCBYODZSZWdpc3RlcnM6OnI5KTsKKyAgICAgICAgaml0LmNhbGwoSlNJbnRl
cmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpyOSwgZXhlY3V0YWJsZU9mZnNldFRvRnVu
Y3Rpb24pKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFk
ZHJlc3MoWDg2UmVnaXN0ZXJzOjplc2ksIEludGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZl
RnVuY3Rpb25Gb3Ioa2luZCkpKTsKIAogI2Vsc2UKICAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246
ICAgICAgZihlY3gsIGVkeCwgcjgsIHI5LCAuLi4pOwpAQCAtMzA0LDggKzMxNywxMSBAQCBzdGF0
aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVT
cGVjaWFsaXphdGlvbktpbmQgawogICAgIGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0
ZWRJbW0zMig0ICogc2l6ZW9mKGludDY0X3QpKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKIAogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihDYWxs
RnJhbWVTbG90OjpjYWxsZWUsIFg4NlJlZ2lzdGVyczo6ZWR4KTsKLSAgICBqaXQubG9hZFB0cihK
U0ludGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVkeCwgSlNGdW5jdGlvbjo6b2Zm
c2V0T2ZFeGVjdXRhYmxlKCkpLCBYODZSZWdpc3RlcnM6OnI5KTsKLSAgICBqaXQuY2FsbChKU0lu
dGVyZmFjZUpJVDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OnI5LCBleGVjdXRhYmxlT2Zmc2V0VG9G
dW5jdGlvbikpOworICAgIGlmICh0aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0aW9uVHlw
ZTo6SlNGdW5jdGlvbikgeworICAgICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRk
cmVzcyhYODZSZWdpc3RlcnM6OmVkeCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkp
LCBYODZSZWdpc3RlcnM6OnI5KTsKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFk
ZHJlc3MoWDg2UmVnaXN0ZXJzOjpyOSwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVn
aXN0ZXJzOjplZHgsIEludGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3Io
a2luZCkpKTsKIAogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig0
ICogc2l6ZW9mKGludDY0X3QpKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKICNlbmRpZgpAQCAtMzE5LDggKzMzNSwxMSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQgawog
ICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQVJNNjRSZWdp
c3RlcnM6OngwKTsKIAogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihDYWxs
RnJhbWVTbG90OjpjYWxsZWUsIEFSTTY0UmVnaXN0ZXJzOjp4MSk7Ci0gICAgaml0LmxvYWRQdHIo
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoQVJNNjRSZWdpc3RlcnM6OngxLCBKU0Z1bmN0aW9uOjpv
ZmZzZXRPZkV4ZWN1dGFibGUoKSksIEFSTTY0UmVnaXN0ZXJzOjp4Mik7Ci0gICAgaml0LmNhbGwo
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoQVJNNjRSZWdpc3RlcnM6OngyLCBleGVjdXRhYmxlT2Zm
c2V0VG9GdW5jdGlvbikpOworICAgIGlmICh0aHVua0Z1bmN0aW9uVHlwZSA9PSBUaHVua0Z1bmN0
aW9uVHlwZTo6SlNGdW5jdGlvbikgeworICAgICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJ
VDo6QWRkcmVzcyhBUk02NFJlZ2lzdGVyczo6eDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0
YWJsZSgpKSwgQVJNNjRSZWdpc3RlcnM6OngyKTsKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoQVJNNjRSZWdpc3RlcnM6OngyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5j
dGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRk
cmVzcyhBUk02NFJlZ2lzdGVyczo6eDEsIEludGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZl
RnVuY3Rpb25Gb3Ioa2luZCkpKTsKICNlbGlmIENQVShBUk0pIHx8IENQVShNSVBTKQogI2lmIENQ
VShNSVBTKQogICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZvciAodW51c2VkKSAxNiBieXRl
cyAoOC1ieXRlIGFsaWduZWQpIGZvciA0IGFyZ3VtZW50cy4KQEAgLTMzMiw4ICszNTEsMTEgQEAg
c3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjApOwogCiAgICAgaml0
LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgSlNJ
bnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMSk7Ci0gICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VK
SVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMSwgSlNGdW5jdGlvbjo6b2Zm
c2V0T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwotICAgIGppdC5jYWxs
KEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMiwgZXhlY3V0YWJs
ZU9mZnNldFRvRnVuY3Rpb24pKTsKKyAgICBpZiAodGh1bmtGdW5jdGlvblR5cGUgPT0gVGh1bmtG
dW5jdGlvblR5cGU6OkpTRnVuY3Rpb24pIHsKKyAgICAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50R1BSMSwgSlNGdW5jdGlvbjo6
b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAgICAgICBq
aXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDIsIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgfSBlbHNlCisgICAgICAgIGppdC5jYWxs
KEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjEsIElu
dGVybmFsRnVuY3Rpb246Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3Ioa2luZCkpKTsKIAogI2lm
IENQVShNSVBTKQogICAgIC8vIFJlc3RvcmUgc3RhY2sgc3BhY2UKQEAgLTM4OCwyNyArNDEwLDM3
IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2
bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0Lmp1bXBUb0V4Y2VwdGlvbkhhbmRs
ZXIoKnZtKTsKIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoaml0LCBHTE9CQUxfVEhVTktf
SUQpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIm5hdGl2ZSAlcyVz
IHRyYW1wb2xpbmUiLCBlbnRyeVR5cGUgPT0gRW50ZXJWaWFKdW1wV2l0aFNhdmVkVGFncyA/ICJU
YWlsIFdpdGggU2F2ZWQgVGFncyAiIDogZW50cnlUeXBlID09IEVudGVyVmlhSnVtcFdpdGhvdXRT
YXZlZFRhZ3MgPyAiVGFpbCBXaXRob3V0IFNhdmVkIFRhZ3MgIiA6ICIiLCB0b0NTdHJpbmcoa2lu
ZCkuZGF0YSgpKSk7CisgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiJXMg
JXMlcyB0cmFtcG9saW5lIiwgdGh1bmtGdW5jdGlvblR5cGUgPT0gVGh1bmtGdW5jdGlvblR5cGU6
OkpTRnVuY3Rpb24gPyAibmF0aXZlIiA6ICJpbnRlcm5hbCIsIGVudHJ5VHlwZSA9PSBFbnRlclZp
YUp1bXBXaXRoU2F2ZWRUYWdzID8gIlRhaWwgV2l0aCBTYXZlZCBUYWdzICIgOiBlbnRyeVR5cGUg
PT0gRW50ZXJWaWFKdW1wV2l0aG91dFNhdmVkVGFncyA/ICJUYWlsIFdpdGhvdXQgU2F2ZWQgVGFn
cyAiIDogIiIsIHRvQ1N0cmluZyhraW5kKS5kYXRhKCkpKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIG5hdGl2ZUNhbGxHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiBuYXRpdmVG
b3JHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsKTsKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJh
dG9yKHZtLCBUaHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiwgQ29kZUZvckNhbGwpOwogfQog
CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlVGFpbENhbGxHZW5lcmF0b3IoVk0qIHZtKQog
ewotICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBFbnRlclZp
YUp1bXBXaXRoU2F2ZWRUYWdzKTsKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBU
aHVua0Z1bmN0aW9uVHlwZTo6SlNGdW5jdGlvbiwgQ29kZUZvckNhbGwsIEVudGVyVmlhSnVtcFdp
dGhTYXZlZFRhZ3MpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlVGFpbENhbGxX
aXRob3V0U2F2ZWRUYWdzR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbmF0aXZlRm9y
R2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwgRW50ZXJWaWFKdW1wV2l0aG91dFNhdmVkVGFncyk7
CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgVGh1bmtGdW5jdGlvblR5cGU6OkpT
RnVuY3Rpb24sIENvZGVGb3JDYWxsLCBFbnRlclZpYUp1bXBXaXRob3V0U2F2ZWRUYWdzKTsKIH0K
IAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUNvbnN0cnVjdEdlbmVyYXRvcihWTSogdm0p
CiB7Ci0gICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCk7
CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgVGh1bmtGdW5jdGlvblR5cGU6OkpT
RnVuY3Rpb24sIENvZGVGb3JDb25zdHJ1Y3QpOworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
aW50ZXJuYWxGdW5jdGlvbkNhbGxHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBuYXRp
dmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpJbnRlcm5hbEZ1bmN0aW9uLCBD
b2RlRm9yQ2FsbCk7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBpbnRlcm5hbEZ1bmN0aW9u
Q29uc3RydWN0R2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJh
dG9yKHZtLCBUaHVua0Z1bmN0aW9uVHlwZTo6SW50ZXJuYWxGdW5jdGlvbiwgQ29kZUZvckNvbnN0
cnVjdCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwR2VuZXJhdG9yKFZN
KiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0
b3JzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCmluZGV4
IGMwNDNkNDE4N2IwZjViNDZiMGYyY2Y3ZTg2NjgyNDg2NjU0Y2ZjZmMuLjYxOGZlZTA5OGE4MGEx
YTM1NTViNGVkOWQzNjAzZTM3YWJjYmYwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9UaHVua0dlbmVyYXRvcnMuaApAQCAtNDYsNiArNDYsOCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgbmF0aXZlQ2FsbEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2
ZUNvbnN0cnVjdEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRh
aWxDYWxsR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlVGFpbENh
bGxXaXRob3V0U2F2ZWRUYWdzR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
aW50ZXJuYWxGdW5jdGlvbkNhbGxHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBpbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0R2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgYXJpdHlGaXh1cEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IHVucmVhY2hhYmxlR2VuZXJhdG9yKFZNKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IDhhMGUxYWM2ODhlNGY3ODVlNmU4YzY2OWI2
ODBmMmQ4OTYwMTU4MjMuLjI5N2I2YzE3MDBmYjkzN2RkYjcxMWU5N2UyNjI5ZTkzMjc4NzliMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApA
QCAtMTM1MCw2ICsxMzUwLDI1IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUgc2V0VXBDYWxs
KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgSW5zdHJ1Y3Rpb24qIHBjLCBDb2RlCiAgICAgCiAgICAg
SlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCA9IGdldEpTRnVuY3Rpb24oY2FsbGVlQXNWYWx1
ZSk7CiAgICAgaWYgKCFjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkgeworICAgICAgICBpZiAoY2FsbGVl
QXNWYWx1ZS5pc0NlbGwoKSAmJiBjYWxsZWVBc1ZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPT0gSW50
ZXJuYWxGdW5jdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGF1dG8qIGludGVybmFsRnVuY3Rpb24g
PSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGNhbGxlZUFzVmFsdWUuYXNDZWxsKCkpOworICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIgPSB2bS5nZXRDVElJbnRlcm5h
bEZ1bmN0aW9uVHJhbXBvbGluZUZvcihraW5kKTsKKyAgICAgICAgICAgIEFTU0VSVCghIWNvZGVQ
dHIpOworCisgICAgICAgICAgICBpZiAoIUxMSU5UX0FMV0FZU19BQ0NFU1NfU0xPVyAmJiBjYWxs
TGlua0luZm8pIHsKKyAgICAgICAgICAgICAgICBDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jayA9
IGV4ZWMtPmNvZGVCbG9jaygpOworCisgICAgICAgICAgICAgICAgQ29uY3VycmVudEpTTG9ja2Vy
IGxvY2tlcihjYWxsZXJDb2RlQmxvY2stPm1fbG9jayk7CisKKyAgICAgICAgICAgICAgICBpZiAo
Y2FsbExpbmtJbmZvLT5pc09uTGlzdCgpKQorICAgICAgICAgICAgICAgICAgICBjYWxsTGlua0lu
Zm8tPnJlbW92ZSgpOworICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+Y2FsbGVlLnNldCh2
bSwgY2FsbGVyQ29kZUJsb2NrLCBpbnRlcm5hbEZ1bmN0aW9uKTsKKyAgICAgICAgICAgICAgICBj
YWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLnNldCh2bSwgY2FsbGVyQ29kZUJsb2NrLCBpbnRl
cm5hbEZ1bmN0aW9uKTsKKyAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPm1hY2hpbmVDb2Rl
VGFyZ2V0ID0gY29kZVB0cjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgTExJTlRfQ0FM
TF9SRVRVUk4oZXhlYywgZXhlY0NhbGxlZSwgY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpKTsK
KyAgICAgICAgfQogICAgICAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKICAgICAgICAgcmV0dXJu
IGhhbmRsZUhvc3RDYWxsKGV4ZWNDYWxsZWUsIHBjLCBjYWxsZWVBc1ZhbHVlLCBraW5kKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlci5hc20KaW5kZXggNWRhZDExNmE5M2Y2ZjlhY2E5NWMwZDliMzM0ZTZmZTY4MmFmZWIzNi4u
NmMwNTRmYTRmOTI5MjU5YWQ0ZWFhNzg5YTc0YzdhYWM1MGI3NzdlNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTgz
NCw2ICsxODM0LDE1IEBAIF9sbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lOgogX2xsaW50X25h
dGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZToKICAgICBuYXRpdmVDYWxsVHJhbXBvbGluZShOYXRp
dmVFeGVjdXRhYmxlOjptX2NvbnN0cnVjdG9yKQogCisKK19sbGludF9pbnRlcm5hbF9mdW5jdGlv
bl9jYWxsX3RyYW1wb2xpbmU6CisgICAgaW50ZXJuYWxGdW5jdGlvbkNhbGxUcmFtcG9saW5lKElu
dGVybmFsRnVuY3Rpb246Om1fZnVuY3Rpb25Gb3JDYWxsKQorCisKK19sbGludF9pbnRlcm5hbF9m
dW5jdGlvbl9jb25zdHJ1Y3RfdHJhbXBvbGluZToKKyAgICBpbnRlcm5hbEZ1bmN0aW9uQ2FsbFRy
YW1wb2xpbmUoSW50ZXJuYWxGdW5jdGlvbjo6bV9mdW5jdGlvbkZvckNvbnN0cnVjdCkKKworCiBf
bGxpbnRfb3BfZ2V0X2VudW1lcmFibGVfbGVuZ3RoOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAg
ICBjYWxsT3Bjb2RlU2xvd1BhdGgoX3Nsb3dfcGF0aF9nZXRfZW51bWVyYWJsZV9sZW5ndGgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyMzJfNjQuYXNtCmluZGV4IDBlNzEyYjY3OWQ2YWIxMjAzYmI2YzZjYzU2MmFiMDJhNjc5MTZl
YzkuLmU1ZGFhYTIyNzQ3YjFlOTQzNjRhMzQ1Zjc4NGJmMGJlNzg5YmVjZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtCkBAIC0yMTExLDYgKzIxMTEsNTggQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUo
ZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCiBlbmQKIAogCittYWNybyBpbnRlcm5hbEZ1bmN0
aW9uQ2FsbFRyYW1wb2xpbmUob2Zmc2V0T2ZGdW5jdGlvbikKKyAgICBmdW5jdGlvblByb2xvZ3Vl
KCkKKyAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KKyAgICBsb2FkaSBDYWxsZWUgKyBQYXls
b2FkT2Zmc2V0W2Nmcl0sIHQxCisgICAgLy8gQ2FsbGVlIGlzIHN0aWxsIGluIHQxIGZvciBjb2Rl
IGJlbG93CisgICAgaWYgWDg2IG9yIFg4Nl9XSU4KKyAgICAgICAgc3VicCA4LCBzcCAjIGFsaWdu
IHN0YWNrIHBvaW50ZXIKKyAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQxCisgICAgICAg
IGxvYWRwIE1hcmtlZEJsb2NrOjptX3ZtW3QxXSwgdDMKKyAgICAgICAgc3RvcmVwIGNmciwgVk06
OnRvcENhbGxGcmFtZVt0M10KKyAgICAgICAgbW92ZSBjZnIsIGEwICAjIGEwID0gZWN4CisgICAg
ICAgIHN0b3JlcCBhMCwgW3NwXQorICAgICAgICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0
W2Nmcl0sIHQxCisgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQw
MDAxKQorICAgICAgICBjYWxsIG9mZnNldE9mRnVuY3Rpb25bdDFdCisgICAgICAgIGxvYWRwIENh
bGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDMKKyAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01h
c2ssIHQzCisgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3ZtW3QzXSwgdDMKKyAgICAgICAg
YWRkcCA4LCBzcAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBv
ciBDX0xPT1Agb3IgTUlQUworICAgICAgICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sgcG9pbnRl
cgorICAgICAgICAjIHQxIGFscmVhZHkgY29udGFpbnMgdGhlIENhbGxlZS4KKyAgICAgICAgYW5k
cCBNYXJrZWRCbG9ja01hc2ssIHQxCisgICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3ZtW3Qx
XSwgdDEKKyAgICAgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0MV0KKyAgICAgICAg
bW92ZSBjZnIsIGEwCisgICAgICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwg
dDEKKyAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCisg
ICAgICAgIGlmIENfTE9PUAorICAgICAgICAgICAgY2xvb3BDYWxsTmF0aXZlIG9mZnNldE9mRnVu
Y3Rpb25bdDFdCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNhbGwgb2Zmc2V0T2ZGdW5jdGlv
blt0MV0KKyAgICAgICAgZW5kCisgICAgICAgIGxvYWRwIENhbGxlZSArIFBheWxvYWRPZmZzZXRb
Y2ZyXSwgdDMKKyAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCisgICAgICAgIGxvYWRw
IE1hcmtlZEJsb2NrOjptX3ZtW3QzXSwgdDMKKyAgICAgICAgYWRkcCA4LCBzcAorICAgIGVsc2UK
KyAgICAgICAgZXJyb3IKKyAgICBlbmQKKworICAgIGJ0aW56IFZNOjptX2V4Y2VwdGlvblt0M10s
IC5oYW5kbGVFeGNlcHRpb24KKworICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIHJldAorCisu
aGFuZGxlRXhjZXB0aW9uOgorICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCisg
ICAgam1wIF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCitlbmQKKworCiBt
YWNybyBnZXRDb25zdGFudFNjb3BlKGRzdCkKICAgICBsb2FkcEZyb21JbnN0cnVjdGlvbig2LCB0
MCkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oZHN0LCB0MSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggOTc3
MTQwOTNlODM2ZDc5YmM2OGJlYzkyMmQ4MTdhMGVmOGFlN2ExNC4uZTVmMDc4NTI5Y2I3NDc0MWI0
MzBkNmZmNjBmYzZhNzQ2MDQ4YjcxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTIwNzgsNiArMjA3OCw0NSBA
QCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikK
ICAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIGVuZAogCitt
YWNybyBpbnRlcm5hbEZ1bmN0aW9uQ2FsbFRyYW1wb2xpbmUob2Zmc2V0T2ZGdW5jdGlvbikKKyAg
ICBmdW5jdGlvblByb2xvZ3VlKCkKKyAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KKyAgICBs
b2FkcCBDYWxsZWVbY2ZyXSwgdDAKKyAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDAsIHQxCisg
ICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fdm1bdDFdLCB0MQorICAgIHN0b3JlcCBjZnIsIFZNOjp0
b3BDYWxsRnJhbWVbdDFdCisgICAgaWYgQVJNNjQgb3IgQ19MT09QCisgICAgICAgIHN0b3JlcCBs
ciwgUmV0dXJuUENbY2ZyXQorICAgIGVuZAorICAgIG1vdmUgY2ZyLCBhMAorICAgIGxvYWRwIENh
bGxlZVtjZnJdLCB0MQorICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQw
MDAxKQorICAgIGlmIENfTE9PUAorICAgICAgICBjbG9vcENhbGxOYXRpdmUgb2Zmc2V0T2ZGdW5j
dGlvblt0MV0KKyAgICBlbHNlCisgICAgICAgIGlmIFg4Nl82NF9XSU4KKyAgICAgICAgICAgIHN1
YnAgMzIsIHNwCisgICAgICAgIGVuZAorICAgICAgICBjYWxsIG9mZnNldE9mRnVuY3Rpb25bdDFd
CisgICAgICAgIGlmIFg4Nl82NF9XSU4KKyAgICAgICAgICAgIGFkZHAgMzIsIHNwCisgICAgICAg
IGVuZAorICAgIGVuZAorCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQzCisgICAgYW5kcCBNYXJr
ZWRCbG9ja01hc2ssIHQzCisgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fdm1bdDNdLCB0MworCisg
ICAgYnRxbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmhhbmRsZUV4Y2VwdGlvbgorCisgICAgZnVu
Y3Rpb25FcGlsb2d1ZSgpCisgICAgcmV0CisKKy5oYW5kbGVFeGNlcHRpb246CisgICAgc3RvcmVw
IGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KKyAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xv
d19wYXRoX3RyYW1wb2xpbmUKK2VuZAorCiBtYWNybyBnZXRDb25zdGFudFNjb3BlKGRzdCkKICAg
ICBsb2FkcEZyb21JbnN0cnVjdGlvbig2LCB0MCkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24o
ZHN0LCB0MSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggODIzMzY4Mzg0MzIxNmIzMGJmOTc0MjZkYTk0ODgwMjM2MGI5YzUw
Yy4uNGQ4OWFjYWIzYmQ1Yzk4OTU5ZGNhMjA5OThhZWQwNzhmODA0MzQ3OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTUw
LDggKzUwLDExIEBAIGNvbnN0IENsYXNzSW5mbyBBcnJheUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luCiBAZW5kCiAqLwogCitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhB
cnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworCiBBcnJheUNvbnN0cnVjdG9yOjpBcnJheUNv
bnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1
cmUsIGNhbGxBcnJheUNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3RvcikK
IHsKIH0KIApAQCAtMTAwLDI1ICsxMDMsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGUKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhleGVj
LCBhcmdzLCBleGVjLT5uZXdUYXJnZXQoKSkpOwogfQogCi1Db25zdHJ1Y3RUeXBlIEFycmF5Q29u
c3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3Ry
dWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVj
dFdpdGhBcnJheUNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0Owot
fQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKGV4ZWMsIGFy
Z3MsIEpTVmFsdWUoKSkpOwogfQogCi1DYWxsVHlwZSBBcnJheUNvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgLy8gZXF1aXZhbGVudCB0
byAnbmV3IEFycmF5KC4uLi4pJwotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxB
cnJheUNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogc3RhdGlj
IEFMV0FZU19JTkxJTkUgYm9vbCBpc0FycmF5U2xvd0lubGluZShFeGVjU3RhdGUqIGV4ZWMsIFBy
b3h5T2JqZWN0KiBwcm94eSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IDE1ODQ4
ODVkMGNkZTYwODcyN2RjNThkZDZkNzIwZmFjNDNhZDhjMTMuLjYxNjUyYWE3ZjNkYzMzYzVmODlm
YTY2MTUzYWI5YzNjMzk1Zjk1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheUNvbnN0cnVjdG9yLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgQXJyYXlDb25z
dHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJvdGVjdGVkOgpAQCAtNTQs
OSArNTQsNiBAQCBjbGFzcyBBcnJheUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogCiBwcml2YXRlOgogICAgIEFycmF5Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsK
LQotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29u
c3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYpOwogfTsKIAogSlNWYWx1ZSBjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoRXhl
Y1N0YXRlKiwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1
ZSBsZW5ndGgsIEpTVmFsdWUgcHJvdG90eXBlID0gSlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDUyNzI4Zjk0OWQ5MmMzYmUyYjZhOWE5NGI3NDljOWJhMjZhZGQzYmEuLmQwZTli
ZDc0ZmExN2UzODUwMjQzMzc0MzA0OTFhMzA1YTkyMzY0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNw
cApAQCAtMzYsMTggKzM2LDYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJ
QkxFKEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBBc3luY0Z1
bmN0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkFzeW5jRnVuY3Rpb24iLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFzeW5jRnVuY3Rpb25D
b25zdHJ1Y3RvcikgfTsKIAotQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpBc3luY0Z1bmN0aW9u
Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFs
RnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBBc3luY0Z1bmN0aW9uQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQXN5bmNGdW5jdGlvblByb3RvdHlwZSogcHJv
dG90eXBlKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiQXN5bmNGdW5jdGlvbiIp
OwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5w
cm90b3R5cGUsIHByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwot
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pOwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICBBcmdMaXN0IGFyZ3MoZXhlYyk7CkBAIC02MCwxNiArNDgsMTYgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4
ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCks
IGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6QXN5bmMpKTsKIH0KIAotQ2FsbFR5cGUg
QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYg
Y2FsbERhdGEpCitBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6OkFzeW5jRnVuY3Rpb25Db25zdHJ1
Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlv
bih2bSwgc3RydWN0dXJlLCBjYWxsQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RB
c3luY0Z1bmN0aW9uQ29uc3RydWN0b3IpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY2FsbEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7CiB9CiAKLUNvbnN0cnVjdFR5cGUgQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25z
dHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCit2b2lkIEFz
eW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBBc3luY0Z1bmN0
aW9uUHJvdG90eXBlKiBwcm90b3R5cGUpCiB7Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVu
Y3Rpb24gPSBjb25zdHJ1Y3RBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENv
bnN0cnVjdFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sICJBc3luY0Z1
bmN0aW9uIik7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0g
fCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0
cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29u
c3RydWN0b3IuaAppbmRleCAwMzVhMmMxZTRmOTE1Y2FjMGI0YjE3NzNlNmQwNTg5ZTI3NDc0N2Q0
Li4wM2VmZGJhMmUwMTk3NmRkNzAzMDA5NzY4OTRiNjNhNzY3N2I5ODcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0
b3IuaApAQCAtNDYsMTQgKzQ2LDEyIEBAIGNsYXNzIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvciA6
IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBBc3luY0Z1bmN0aW9u
Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
JiwgQXN5bmNGdW5jdGlvblByb3RvdHlwZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxs
VHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBhYWE2YTFm
NGY3Y2NlNTJkOWMxYWI2NzhlOWQ5MjU3N2QxYjBiMzZiLi5jNTM0MTkwOGU5NWRjZDMyMjJmMGY4
ZWU2OGM0MWE3MDM0MzU1ZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5j
cHAKQEAgLTM2LDIwICszNiw2IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNU
SUJMRShBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0lu
Zm8gQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJBc3luY0dl
bmVyYXRvckZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpIH07CiAKLUFz
eW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCi17Ci19Ci0KLXZvaWQgQXN5bmNHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEFzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Qcm90b3R5cGUqIHByb3RvdHlwZSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwg
IkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKLQotICAgIC8vIE51bWJlciBvZiBhcmd1bWVudHMgZm9y
IGNvbnN0cnVjdG9yCi0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7Ci19Ci0KIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKQEAgLTYyLDE2ICs0
OCwxOCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoRQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY29uc3RydWN0RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2Fs
bGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpB
c3luY0dlbmVyYXRvcikpOwogfQogCi1DYWxsVHlwZSBBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK0FzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0
aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Is
IGNvbnN0cnVjdEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcikKIHsKLSAgICBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVj
dG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKIH0KIAotQ29uc3RydWN0VHlwZSBBc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwg
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKK3ZvaWQgQXN5bmNHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEFzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Qcm90b3R5cGUqIHByb3RvdHlwZSkKIHsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IGNvbnN0cnVjdEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICBy
ZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwg
IkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKworICAgIC8vIE51bWJlciBvZiBhcmd1bWVudHMgZm9y
IGNvbnN0cnVjdG9yCisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
c3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaAppbmRleCBiOGYxNTBiNTllZTdjMzk0
YjFiODE0Y2U2ZWFkYjNlNGQ3ODYwYzYxLi5iYzQ0YWM2YjZhMzAyMDM3ZGMyNmEzZTcwNGRjNjU4
MjZjMjQ4N2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaApAQCAtNDYsMTQg
KzQ2LDEyIEBAIGNsYXNzIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvciA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBBc3luY0dlbmVyYXRvckZ1bmN0
aW9uQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KFZNJiwgQXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSopOwotICAgIHN0YXRpYyBDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAg
IHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAppbmRleCA2N2EwMTVhYjNlMWE3OGEyYWQyNjg1Nzgz
YTYzOGZlZmNiYWM3MTkxLi5mMGFiMDQyNTNlOTMzNTAxYWFhY2JhOGIxNjNkYzM1M2Y4Y2U2NmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25z
dHJ1Y3Rvci5jcHAKQEAgLTMxLDE2ICszMSwxMCBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxM
WV9ERVNUUlVDVElCTEUoQm9vbGVhbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEJv
b2xlYW5Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEJvb2xlYW5Db25zdHJ1Y3Rvcikg
fTsKIAotQm9vbGVhbkNvbnN0cnVjdG9yOjpCb29sZWFuQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkK
LXsKLX0KLQotdm9pZCBCb29sZWFuQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
Qm9vbGVhblByb3RvdHlwZSogYm9vbGVhblByb3RvdHlwZSkKKy8vIEVDTUEgMTUuNi4xCitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQm9vbGVhbkNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgYm9vbGVhblBy
b3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgYm9vbGVhblByb3RvdHlw
ZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRE
ZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwotICAgIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
OworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGV4ZWMtPmFyZ3VtZW50KDAp
LnRvQm9vbGVhbihleGVjKSkpOwogfQogCiAvLyBFQ01BIDE1LjYuMgpAQCAtNTYsMjIgKzUwLDE2
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhCb29s
ZWFuQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShv
YmopOwogfQogCi1Db25zdHJ1Y3RUeXBlIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQorQm9vbGVhbkNvbnN0
cnVjdG9yOjpCb29sZWFuQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
KyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEJvb2xlYW5Db25zdHJ1
Y3RvciwgY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3RvcikKIHsKLSAgICBjb25zdHJ1Y3RE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhCb29sZWFuQ29uc3RydWN0b3I7Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7CiB9CiAKLS8vIEVDTUEgMTUuNi4xCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQm9vbGVhbkNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYykKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihl
eGVjLT5hcmd1bWVudCgwKS50b0Jvb2xlYW4oZXhlYykpKTsKLX0KLQotQ2FsbFR5cGUgQm9vbGVh
bkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCit2
b2lkIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBCb29sZWFuUHJv
dG90eXBlKiBib29sZWFuUHJvdG90eXBlKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNhbGxCb29sZWFuQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0Owor
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBib29sZWFuUHJvdG90eXBlLT5jbGFzc0luZm8o
KS0+Y2xhc3NOYW1lKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+cHJvdG90eXBlLCBib29sZWFuUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKIEpTT2JqZWN0KiBj
b25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGltbWVkaWF0ZUJvb2xlYW5WYWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9y
LmgKaW5kZXggYmI4YzVkZjJiNTRkYzA2OGI5MzQxZTFiNzc1ZDUxOTMzMGViOWM5My4uMzZlY2M5
ZjRkYmIxODBlNTc5MDg3YjI4MTZkY2YxN2U4NmQyZWIzMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmgKQEAgLTQyLDcgKzQyLDcg
QEAgY2xhc3MgQm9vbGVhbkNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewog
CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAogICAgIHsgCi0gICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAg
IH0KIAogcHJvdGVjdGVkOgpAQCAtNTAsOCArNTAsNiBAQCBjbGFzcyBCb29sZWFuQ29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgQm9vbGVhbkNv
bnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxU
eXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBKU09iamVjdCogY29u
c3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2Jq
ZWN0KiwgSlNWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnN0cnVjdG9yLmNwcAppbmRleCBiMmYyOWNmZDllNzc5M2ZhNjNlNjA5ZTMxYWIwZTQ4OTU3
Y2E2N2ZkLi42Nzk5NjVjYWM1YWEyOTE0MzUyNGRkMzk3NjhjYjhkNzJhOGIzMmEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKQEAg
LTY4LDggKzY4LDExIEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mCiAKIFNUQVRJQ19BU1NFUlRf
SVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShEYXRlQ29uc3RydWN0b3IpOwogCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShFeGVjU3RhdGUqKTsKK3N0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKik7CisKIERhdGVDb25zdHJ1Y3Rvcjo6RGF0ZUNvbnN0cnVjdG9yKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1
cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxEYXRlLCBjb25z
dHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKQogewogfQogCkBAIC0xNTMsMTIgKzE1Niw2IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1
Y3REYXRlKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFs
T2JqZWN0KCksIGV4ZWMtPm5ld1RhcmdldCgpLCBhcmdzKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUg
RGF0ZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEm
IGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBj
b25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpI
b3N0OwotfQotCiAvLyBFQ01BIDE1LjkuMgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbERhdGUoRXhlY1N0YXRlKiBleGVjKQogewpAQCAtMTY4LDEyICsxNjUsNiBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBm
b3JtYXREYXRlVGltZSh0cywgRGF0ZVRpbWVGb3JtYXREYXRlQW5kVGltZSwgZmFsc2UpKSk7CiB9
CiAKLUNhbGxUeXBlIERhdGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxEYXRl
OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUGFyc2UoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rv
ci5oCmluZGV4IGZjZWE1NWY4ZGY2YjAwMWEwOTE5YzAyYzJiMGEyODJhNmY1YTBjYzMuLjMwN2M2
ZDU1NGIxYjQyYTNmMDBiY2RmZGE3NjJhYjQ5MWE1MDIyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0Myw3IEBAIGNs
YXNzIERhdGVDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5h
bEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJvdGVj
dGVkOgpAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBEYXRlQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50
ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgRGF0ZUNvbnN0cnVjdG9yKFZNJiwgU3Ry
dWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7CiB9OwogCiBKU09iamVjdCogY29uc3RydWN0RGF0ZShFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgbmV3VGFyZ2V0LCBjb25zdCBBcmdMaXN0Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAppbmRleCA5MDY3MWQ1N2EzNGNjZDZi
MGM4NmU5Y2U3ODExODRlODRhNDFmM2I2Li40ZmFlZDM3N2EwYmQyYjJiNzM0ZmVhNWMzNTBkNDg5
MjMyM2I5ZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKQEAgLTEwNiw3
ICsxMDYsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTURPTUF0dHJpYnV0ZUdldHRl
clR5cGVFcnJvcihFeGVjU3RhdGUqIHN0YXRlLCBUaHJvdwogY2xhc3MgU3RyaWN0TW9kZVR5cGVF
cnJvckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHJpdmF0ZToKICAgICBT
dHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQotICAgICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0
cnVjdHVyZSkKKyAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxU
aHJvd1R5cGVFcnJvciwgY29uc3RydWN0VGhyb3dUeXBlRXJyb3IpCiAgICAgICAgICwgbV9tZXNz
YWdlKG1lc3NhZ2UpCiAgICAgewogICAgIH0KQEAgLTEzMSwxMiArMTMxLDYgQEAgY2xhc3MgU3Ry
aWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEm
IGNvbnN0cnVjdERhdGEpCi0gICAgewotICAgICAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IGNvbnN0cnVjdFRocm93VHlwZUVycm9yOwotICAgICAgICByZXR1cm4gQ29uc3RydWN0
VHlwZTo6SG9zdDsKLSAgICB9Ci0KICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsVGhyb3dUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHsKICAgICAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTE0NSwxNyArMTM5LDExIEBAIGNsYXNzIFN0cmljdE1v
ZGVUeXBlRXJyb3JGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIENh
bGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLSAgICB7Ci0g
ICAgICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxUaHJvd1R5cGVFcnJvcjsKLSAg
ICAgICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotICAgIH0KLQogICAgIERFQ0xBUkVfSU5GTzsK
IAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAg
ICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGRhYTdhOTAxZTk0YzAxZjg4MmZlYTA5MjU5MzYxNGJh
YmZhMjI0MzYuLmIwNDRjOGQyNzA3YjIzMGUxNjg1ODgyODk0NmE4OGE5NzFiOTk4ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CkBAIC0zNCw3ICszNCw3IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJM
RShFcnJvckNvbnN0cnVjdG9yKTsKIGNvbnN0IENsYXNzSW5mbyBFcnJvckNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoRXJyb3JDb25zdHJ1Y3RvcikgfTsKIAogRXJyb3JDb25zdHJ1Y3Rv
cjo6RXJyb3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDog
SW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlLCBJbnRlcnByZXRlcjo6Y2FsbEVycm9yQ29uc3RydWN0b3IsIEludGVycHJl
dGVyOjpjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcikKIHsKIH0KIApAQCAtNjMsMTIgKzYz
LDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y29uc3RydWN0
V2l0aEVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVs
bHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgRXJyb3JDb25z
dHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1
Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gSW50ZXJwcmV0
ZXI6OmNvbnN0cnVjdFdpdGhFcnJvckNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RU
eXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVy
OjpjYWxsRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBt
ZXNzYWdlID0gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC03NiwxMiArNzAsNiBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEludGVycHJldGVyOjpjYWxsRXJyb3JDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpj
cmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5n
LCBmYWxzZSkpOwogfQogCi1DYWxsVHlwZSBFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShK
U0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0
aW9uID0gSW50ZXJwcmV0ZXI6OmNhbGxFcnJvckNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxs
VHlwZTo6SG9zdDsKLX0KLQogYm9vbCBFcnJvckNvbnN0cnVjdG9yOjpwdXQoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCmlu
ZGV4IDYzMDk2YmQ1YzQzNzg3Nzc5M2Y4NjU2YzU2OTc3MzhmNmRkOTIyNGQuLmEwZGQxYjA1ZTQ5
MmU4ZTBmOTZiNTE0YWU5NTQ5MDRlZGE3M2E0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3Mg
RXJyb3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5h
bEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKICAgICBz
dGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBzdGFja1RyYWNlTGltaXQoKSBjb25zdCB7IHJldHVybiBt
X3N0YWNrVHJhY2VMaW1pdDsgfQpAQCAtNTUsOCArNTUsNiBAQCBjbGFzcyBFcnJvckNvbnN0cnVj
dG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIEVycm9yQ29u
c3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRD
b25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8
dW5zaWduZWQ+IG1fc3RhY2tUcmFjZUxpbWl0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggZmE2N2NkNWQ1
MjNjMGRjOTkzMzg1MzBlNDkyMDdlMTVlMTk2ZDA0Ny4uZDgwMzYxNjY4ZDZiZWIyZjc5M2EzOThl
YzU3MjRiMTA5MGIyMDk4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTM4LDQxICszOCwyOSBAQCBTVEFUSUNf
QVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAK
IGNvbnN0IENsYXNzSW5mbyBGdW5jdGlvbkNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlv
biIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
RnVuY3Rpb25Db25zdHJ1Y3RvcikgfTsKIAotRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6RnVuY3Rpb25D
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxG
dW5jdGlvbih2bSwgc3RydWN0dXJlKQotewotfQotCi12b2lkIEZ1bmN0aW9uQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgRnVuY3Rpb25Qcm90b3R5cGUqIGZ1bmN0aW9uUHJvdG90
eXBlKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBmdW5jdGlvblByb3RvdHlwZS0+
Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZnVuY3Rpb25Qcm90b3R5cGUsIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KLQog
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEZ1bmN0aW9u
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMsIGFzSW50
ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3MsIEZ1
bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6RnVuY3Rpb24sIGV4ZWMtPm5ld1RhcmdldCgpKSk7CiB9
CiAKLUNvbnN0cnVjdFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShK
U0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KKy8vIEVDTUEgMTUuMy4xIFRoZSBG
dW5jdGlvbiBDb25zdHJ1Y3RvciBDYWxsZWQgYXMgYSBGdW5jdGlvbgogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEZ1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0Nh
bGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3MpKTsKIH0KIAotLy8gRUNNQSAxNS4zLjEgVGhl
IEZ1bmN0aW9uIENvbnN0cnVjdG9yIENhbGxlZCBhcyBhIEZ1bmN0aW9uCi1DYWxsVHlwZSBGdW5j
dGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEp
CitGdW5jdGlvbkNvbnN0cnVjdG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxGdW5jdGlvbkNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoRnVuY3Rpb25Db25zdHJ1Y3RvcikK
K3sKK30KKwordm9pZCBGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jdGlvblByb3RvdHlwZSkKIHsKLSAgICBjYWxsRGF0YS5u
YXRpdmUuZnVuY3Rpb24gPSBjYWxsRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2Fs
bFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGZ1bmN0aW9uUHJvdG90
eXBlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lKTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBmdW5jdGlvblByb3RvdHlwZSwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwog
fQogCiAvLyBFQ01BIDE1LjMuMiBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaAppbmRleCAx
M2MzN2ZkNTJmMjNmNzJjMjg5NzdjNTIyMDJlYmZjMzAyNzcyMDM0Li43Y2UzZjQ4ODZkYzIzNmE5
NGJkMzQ1MmRkMWMwY2UzMTRlZGQ4YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCkBAIC00NSwxNCArNDUsMTIgQEAgY2xh
c3MgRnVuY3Rpb25Db25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJ
bnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAK
IHByaXZhdGU6CiAgICAgRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBGdW5jdGlvblByb3RvdHlwZSopOwotICAgIHN0YXRp
YyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYp
OwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwog
fTsKIAogZW51bSBjbGFzcyBGdW5jdGlvbkNvbnN0cnVjdGlvbk1vZGUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCmluZGV4IDE4
ZjhiNWVhZDU2NDQ5NjhiZTIxNTc2YzY3NTYzMmQyMWU2MDU4MmYuLjQwODBlMzkwZmNkMDBlMDE4
MzY3YWUxNDNhZDQ3MDg2YzY0YWFlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKQEAgLTQzLDggKzQzLDE0IEBAIGNvbnN0
IENsYXNzSW5mbyBGdW5jdGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKik7CiAKKy8vIEVDTUEgMTUuMy40
CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Qcm90b3R5
cGUoRXhlY1N0YXRlKikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworfQorCiBGdW5jdGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVy
ZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEZ1bmN0aW9uUHJv
dG90eXBlLCBudWxscHRyKQogewogfQogCkBAIC03NywxOCArODMsNiBAQCB2b2lkIEZ1bmN0aW9u
UHJvdG90eXBlOjppbml0UmVzdHJpY3RlZFByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdAogICAgIHB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMt
PmFyZ3VtZW50cywgZXJyb3JHZXR0ZXJTZXR0ZXIsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvblByb3RvdHlwZShFeGVjU3RhdGUqKQotewot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci19Ci0KLS8vIEVDTUEg
MTUuMy40Ci1DYWxsVHlwZSBGdW5jdGlvblByb3RvdHlwZTo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxGdW5jdGlvblByb3RvdHlwZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4IGJhZjdjY2I0
YmQxOWU3NTE5YTlkYjIzNTQyNTMzMGUyMmZiOGE0NWYuLjkzODg4NzA4ZjQ3MTQ4YTZiYzc1MTEz
MTFjN2ZmNjExN2Q4ZWQwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBGdW5jdGlvblBy
b3RvdHlwZSA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG8pCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAgIERFQ0xBUkVfSU5GTzsKQEAgLTUxLDcgKzUx
LDYgQEAgY2xhc3MgRnVuY3Rpb25Qcm90b3R5cGUgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiAKIHByaXZhdGU6CiAgICAgRnVuY3Rpb25Qcm90b3R5cGUoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBlNTRl
NjNmOTJiM2RkODJmN2RiYzJhNGQ0ZTUyMTgwNDhlYzc3YzdkLi4zNzQzYzZhMTlkZmFmZGU3MjZh
YzU0OWNkMWI4ZDRiZmFkMTY4NmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAt
MzYsMTggKzM2LDYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEdl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiR2VuZXJhdG9yRnVuY3Rpb24iLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdlbmVyYXRv
ckZ1bmN0aW9uQ29uc3RydWN0b3IpIH07CiAKLUdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6
OkdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBH
ZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEdlbmVy
YXRvckZ1bmN0aW9uUHJvdG90eXBlKiBnZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSkKLXsKLSAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgIkdlbmVyYXRvckZ1bmN0aW9uIik7Ci0gICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwg
Z2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKQEAgLTYwLDE2ICs0OCwxNiBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yKEV4ZWNTdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0
RnVuY3Rpb24oZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmpzQ2FsbGVlKCkpLT5nbG9i
YWxPYmplY3QoKSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpHZW5lcmF0b3IsIGV4
ZWMtPm5ld1RhcmdldCgpKSk7CiB9CiAKLUNhbGxUeXBlIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKK0dlbmVyYXRv
ckZ1bmN0aW9uQ29uc3RydWN0b3I6OkdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVj
dHVyZSwgY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IsIGNvbnN0cnVjdEdlbmVyYXRv
ckZ1bmN0aW9uQ29uc3RydWN0b3IpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpI
b3N0OwogfQogCi1Db25zdHJ1Y3RUeXBlIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKK3Zv
aWQgR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBH
ZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSogZ2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpCiB7
Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OworICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiR2VuZXJhdG9yRnVuY3Rpb24iKTsKKyAgICBwdXRE
aXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBn
ZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0
aW9uQ29uc3RydWN0b3IuaAppbmRleCBmMjhjNzFjNzhmZWMyZTVkY2YwZjVlZTRmM2U1YjZjMjJh
ZDBjNzU4Li5mNDZkOGM1OWQ1NTZlMjMxMTQ0YjNiNmJiYjA5ZTZiOGVjZjAxZjUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5oCkBAIC01MiwxNCArNTIsMTIgQEAgY2xhc3MgR2VuZXJhdG9yRnVu
Y3Rpb25Db25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1
bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToK
ICAgICBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKik7Ci0g
ICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKaW5kZXggM2QzZmQxYWJjMzQzM2M1
YjQ5MTllMDFlNDNjNWRlNjQwN2Q5N2I3OS4uZjAzZTNjYTUxZDA2ZmYyMzQ5MDM1YjAwMTVjNWI1
NWYyMzQzNjRlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5jcHAKQEAgLTM0LDE4ICszNCwyMSBAQCBTVEFUSUNfQVNTRVJUX0lTX1RS
SVZJQUxMWV9ERVNUUlVDVElCTEUoSW50ZXJuYWxGdW5jdGlvbik7CiAKIGNvbnN0IENsYXNzSW5m
byBJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSW50ZXJuYWxGdW5jdGlvbikg
fTsKIAotSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQorSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlvbihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbkZvckNhbGwsIE5h
dGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ29uc3RydWN0KQogICAgIDogSlNEZXN0cnVjdGlibGVP
YmplY3Qodm0sIHN0cnVjdHVyZSkKKyAgICAsIG1fZnVuY3Rpb25Gb3JDYWxsKGZ1bmN0aW9uRm9y
Q2FsbCkKKyAgICAsIG1fZnVuY3Rpb25Gb3JDb25zdHJ1Y3QoZnVuY3Rpb25Gb3JDb25zdHJ1Y3Qg
PyBmdW5jdGlvbkZvckNvbnN0cnVjdCA6IGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yKQog
ewogICAgIC8vIGV4ZWMtPnZtKCkgd2FudHMgY2FsbGVlcyB0byBub3QgYmUgbGFyZ2UgYWxsb2Nh
dGlvbnMuCiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzTGFyZ2VBbGxvY2F0aW9uKCkpOworICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UobV9mdW5jdGlvbkZvckNhbGwsICJbW0NhbGxdXSBtdXN0IGJlIGlt
cGxlbWVudGVkIik7CisgICAgQVNTRVJUKG1fZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpOwogfQogCiB2
b2lkIEludGVybmFsRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3QgU3RyaW5n
JiBuYW1lLCBOYW1lVmlzaWJpbGl0eSBuYW1lVmlzaWJpbGl0eSkKIHsKICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAgICBB
U1NFUlQobWV0aG9kVGFibGUodm0pLT5nZXRDYWxsRGF0YSAhPSBJbnRlcm5hbEZ1bmN0aW9uOjpp
bmZvKCktPm1ldGhvZFRhYmxlLmdldENhbGxEYXRhKTsKICAgICBKU1N0cmluZyogbmFtZVN0cmlu
ZyA9IGpzU3RyaW5nKCZ2bSwgbmFtZSk7CiAgICAgbV9vcmlnaW5hbE5hbWUuc2V0KHZtLCB0aGlz
LCBuYW1lU3RyaW5nKTsKICAgICBpZiAobmFtZVZpc2liaWxpdHkgPT0gTmFtZVZpc2liaWxpdHk6
OlZpc2libGUpCkBAIC03OCwxMCArODEsMjEgQEAgY29uc3QgU3RyaW5nIEludGVybmFsRnVuY3Rp
b246OmRpc3BsYXlOYW1lKFZNJiB2bSkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLUNhbGxU
eXBlIEludGVybmFsRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJikKK0Nh
bGxUeXBlIEludGVybmFsRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCogY2VsbCwgQ2FsbERh
dGEmIGNhbGxEYXRhKQogewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIENhbGxUeXBlOjpOb25lOworICAgIGF1dG8qIGZ1bmN0aW9uID0ganNDYXN0PEludGVy
bmFsRnVuY3Rpb24qPihjZWxsKTsKKyAgICBBU1NFUlQoZnVuY3Rpb24tPm1fZnVuY3Rpb25Gb3JD
YWxsKTsKKyAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBmdW5jdGlvbi0+bV9mdW5jdGlv
bkZvckNhbGw7CisgICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OworfQorCitDb25zdHJ1Y3RUeXBl
IEludGVybmFsRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiBjZWxsLCBDb25zdHJ1
Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQoreworICAgIGF1dG8qIGZ1bmN0aW9uID0ganNDYXN0PElu
dGVybmFsRnVuY3Rpb24qPihjZWxsKTsKKyAgICBpZiAoZnVuY3Rpb24tPm1fZnVuY3Rpb25Gb3JD
b25zdHJ1Y3QgPT0gY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IpCisgICAgICAgIHJldHVy
biBDb25zdHJ1Y3RUeXBlOjpOb25lOworICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gZnVuY3Rpb24tPm1fZnVuY3Rpb25Gb3JDb25zdHJ1Y3Q7CisgICAgcmV0dXJuIENvbnN0cnVj
dFR5cGU6Okhvc3Q7CiB9CiAKIGNvbnN0IFN0cmluZyBJbnRlcm5hbEZ1bmN0aW9uOjpjYWxjdWxh
dGVkRGlzcGxheU5hbWUoVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDNhOGYyMmViODhlMGViZGI4N2QzNDdlMzk3NDZh
MmJhY2QyZjUzOTguLmVjNDJiYjhlMjQ0ZDdiYTQ4NjU1MmIzODQwODAxZDhkMDQyNGYwMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgK
QEAgLTIzLDYgKzIzLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDb2RlU3BlY2lh
bGl6YXRpb25LaW5kLmgiCiAjaW5jbHVkZSAiSlNEZXN0cnVjdGlibGVPYmplY3QuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CkBAIC0zMCw2ICszMSw4IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRnVu
Y3Rpb25Qcm90b3R5cGU7CiAKIGNsYXNzIEludGVybmFsRnVuY3Rpb24gOiBwdWJsaWMgSlNEZXN0
cnVjdGlibGVPYmplY3QgeworICAgIGZyaWVuZCBjbGFzcyBKSVQ7CisgICAgZnJpZW5kIGNsYXNz
IExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBJbXBsZW1l
bnRzRGVmYXVsdEhhc0luc3RhbmNlIHwgVHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhOwpAQCAt
NDQsMjAgKzQ3LDQwIEBAIGNsYXNzIEludGVybmFsRnVuY3Rpb24gOiBwdWJsaWMgSlNEZXN0cnVj
dGlibGVPYmplY3QgewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykKICAgICB7
IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCisgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlw
ZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCiAg
ICAgfQogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoRXhl
Y1N0YXRlKiwgSlNWYWx1ZSBuZXdUYXJnZXQsIFN0cnVjdHVyZSopOwogCisgICAgTmF0aXZlRnVu
Y3Rpb24gbmF0aXZlRnVuY3Rpb25Gb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQorICAg
IHsKKyAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCisgICAgICAgICAgICByZXR1cm4g
bV9mdW5jdGlvbkZvckNhbGw7CisgICAgICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1
Y3QpOworICAgICAgICByZXR1cm4gbV9mdW5jdGlvbkZvckNvbnN0cnVjdDsKKyAgICB9CisKKyAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3IoQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kKQorICAgIHsKKyAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwp
CisgICAgICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEludGVybmFsRnVuY3Rpb24sIG1f
ZnVuY3Rpb25Gb3JDYWxsKTsKKyAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVj
dCk7CisgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSW50ZXJuYWxGdW5jdGlvbiwgbV9m
dW5jdGlvbkZvckNvbnN0cnVjdCk7CisgICAgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgSlNfRVhQT1JU
X1BSSVZBVEUgSW50ZXJuYWxGdW5jdGlvbihWTSYsIFN0cnVjdHVyZSopOworICAgIEpTX0VYUE9S
VF9QUklWQVRFIEludGVybmFsRnVuY3Rpb24oVk0mLCBTdHJ1Y3R1cmUqLCBOYXRpdmVGdW5jdGlv
biBmdW5jdGlvbkZvckNhbGwsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ29uc3RydWN0KTsK
IAogICAgIGVudW0gY2xhc3MgTmFtZVZpc2liaWxpdHkgeyBWaXNpYmxlLCBBbm9ueW1vdXMgfTsK
ICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBOYW1lVmlzaWJpbGl0eSA9IE5hbWVWaXNpYmlsaXR5OjpWaXNpYmxlKTsKIAog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN1YmNsYXNzU3Ry
dWN0dXJlU2xvdyhFeGVjU3RhdGUqLCBKU1ZhbHVlIG5ld1RhcmdldCwgU3RydWN0dXJlKik7CiAK
LSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMg
Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKKworICAgIE5hdGl2ZUZ1
bmN0aW9uIG1fZnVuY3Rpb25Gb3JDYWxsOworICAgIE5hdGl2ZUZ1bmN0aW9uIG1fZnVuY3Rpb25G
b3JDb25zdHJ1Y3Q7CiAgICAgV3JpdGVCYXJyaWVyPEpTU3RyaW5nPiBtX29yaWdpbmFsTmFtZTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xs
YXRvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxD
b2xsYXRvckNvbnN0cnVjdG9yLmNwcAppbmRleCBkMWExODRmM2MxNjIyNjY4ZTUxYzZjNTQ1OWE5
NTZiNWNjZDFhNTI3Li4wM2I4N2IwNjU5NzQ2MDZmOTMxYjFhYTQzMGUzNjIzOWJhMGNiMjVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxh
dG9yQ29uc3RydWN0b3IuY3BwCkBAIC00OSw2ICs0OSw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xsYXRvckNvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2Fs
ZXNPCiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsSW50bENvbGxhdG9yKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bENvbGxhdG9yKEV4ZWNTdGF0ZSopOworCiBjb25z
dCBDbGFzc0luZm8gSW50bENvbGxhdG9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9u
IiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgJmNvbGxhdG9yQ29uc3RydWN0b3JUYWJsZSwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvcikgfTsK
IAogLyogU291cmNlIGZvciBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaApAQCAtNjYsMTEg
KzY5LDExIEBAIEludGxDb2xsYXRvckNvbnN0cnVjdG9yKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rv
cjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1CiAKIFN0cnVjdHVyZSogSW50bENvbGxh
dG9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rv
cjo6SW50bENvbGxhdG9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
LSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVu
Y3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEludGxDb2xsYXRvciwgY29uc3RydWN0SW50bENvbGxh
dG9yKQogewogfQogCkBAIC0xMjMsMTggKzEyNiw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxJbnRsQ29sbGF0b3IoRXhlY1N0YXRlKiBzdGF0ZSkKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbGxhdG9yKTsKIH0KIAotQ29uc3RydWN0VHlwZSBJbnRsQ29s
bGF0b3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
JiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y29uc3RydWN0SW50bENvbGxhdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0Owot
fQotCi1DYWxsVHlwZSBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxs
KiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNhbGxJbnRsQ29sbGF0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xsYXRvckNvbnN0cnVjdG9yRnVuY1N1cHBv
cnRlZExvY2FsZXNPZihFeGVjU3RhdGUqIHN0YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52
bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxh
dG9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xs
YXRvckNvbnN0cnVjdG9yLmgKaW5kZXggY2YzNDY4ZmIxMzA1MGQxNzI2ZmRjMWYzYmY3YzJiM2Zk
ZTkxYTJjMC4uMGRiODZjNzJkNGZhMTllYWZmOTFiOGIxZjAxMmZhYzZlNmRmMmIzYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25z
dHJ1Y3Rvci5oCkBAIC01MSw4ICs1MSw2IEBAIGNsYXNzIEludGxDb2xsYXRvckNvbnN0cnVjdG9y
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIEludGxDb2xsYXRv
ckNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUg
Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENh
bGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGljIHZvaWQg
dmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgIAogICAgIFdyaXRlQmFy
cmllcjxTdHJ1Y3R1cmU+IG1fY29sbGF0b3JTdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggNTAxMGUxNzU2NDI2NzI2M2U4YWRhZmIzODVhOGQ4YmIzNDk4NDQ4Yi4u
NWFmODJhYmEzMTI3ZTVkYjVlZGJhOTg5NmI3MzYxMTJlNTZhZWY3YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1h
dENvbnN0cnVjdG9yLmNwcApAQCAtNjYsMTEgKzY2LDE0IEBAIEludGxEYXRlVGltZUZvcm1hdENv
bnN0cnVjdG9yKiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwg
U3RyCiAKIFN0cnVjdHVyZSogSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSW50bERh
dGVUaW1lRm9ybWF0KEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0KEV4ZWNTdGF0ZSopOworCiBJbnRsRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0
cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEludGxE
YXRlVGltZUZvcm1hdCwgY29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0KQogewogfQogCkBAIC0x
MjMsMTggKzEyNiw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJ
bnRsRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRlKiBzdGF0ZSkKICAgICB9KSk7CiB9CiAKLUNvbnN0
cnVjdFR5cGUgSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEo
SlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3RE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEludGxEYXRlVGltZUZvcm1hdDsKLSAgICBy
ZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgSW50bERhdGVUaW1lRm9y
bWF0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
LXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSW50bERhdGVUaW1lRm9ybWF0
OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVz
T2YoRXhlY1N0YXRlKiBzdGF0ZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXRDb25zdHJ1Y3Rvci5oCmluZGV4IGYxYmEyNjdjYjkzZjg3NTgxNWU0OWJmMTc5YmE5Y2M1
NTNmMDY5ZDMuLjhlNjEwNjUwODNhMDIxMGNmYWYzZDI1MzA4YmEzOWE5NGRhZWJiY2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENv
bnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0Q29uc3RydWN0b3IuaApAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBJbnRsRGF0ZVRp
bWVGb3JtYXRDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0
ZToKICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwot
ICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3Ry
dWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYpOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0
b3ImKTsKICAgICAKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2RhdGVUaW1lRm9ybWF0
U3RydWN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMmY2ZWFkZmI4YWI1NzE2
Y2RkMzcyZDU5MGFjMWY5YjU2YjljMzcxMy4uMjk3MjEwYzZkZThjMTg1ZmZlYmM1ZjY4YWU5Mzg4
ZGNiZDBkNTk1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC02NiwxMSArNjYsMTQg
QEAgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yKiBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0
b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHUKIAogU3RydWN0dXJlKiBJbnRsTnVtYmVyRm9ybWF0
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsSW50bE51bWJlckZvcm1hdChFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQoRXhlY1N0
YXRlKik7CisKIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6SW50bE51bWJlckZvcm1hdENv
bnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1
cmUsIGNhbGxJbnRsTnVtYmVyRm9ybWF0LCBjb25zdHJ1Y3RJbnRsTnVtYmVyRm9ybWF0KQogewog
fQogCkBAIC0xMjMsMTggKzEyNiw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxJbnRsTnVtYmVyRm9ybWF0KEV4ZWNTdGF0ZSogc3RhdGUpCiAgICAgfSkpOwogfQog
Ci1Db25zdHJ1Y3RUeXBlIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SW50bE51bWJlckZvcm1hdDsKLSAg
ICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgSW50bE51bWJlckZv
cm1hdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEp
Ci17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEludGxOdW1iZXJGb3JtYXQ7
Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2Yo
RXhlY1N0YXRlKiBzdGF0ZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENv
bnN0cnVjdG9yLmgKaW5kZXggZDc2MjE2MWRkYTIzOWJjYjVjOTE4OTJhMDI1Yzg1OGQwNDQ4ZGZl
YS4uZTQzZGVhM2VlMjBjODk3MDg1MDFmNjViYTAxM2U0MjA4ZGIxMTk3YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENv
bnN0cnVjdG9yLmgKQEAgLTUxLDggKzUxLDYgQEAgY2xhc3MgSW50bE51bWJlckZvcm1hdENvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIEludGxO
dW1iZXJGb3JtYXRDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAg
IHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIHN0
YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICAKICAg
ICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX251bWJlckZvcm1hdFN0cnVjdHVyZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29u
c3RydWN0b3IuY3BwCmluZGV4IGRiYjM3M2M4ZjU4NWEzYzFjMDY2Y2M0M2VlMjg4MTI3YTYwZjEw
MmMuLmJmMmU5MTdlZmExMDljZmZmNGZiOWQzZjhhNWU2NjU0ZjhjYTg4YjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0
cnVjdG9yLmNwcApAQCAtNDQsOCArNDQsMTEgQEAgY29uc3QgQ2xhc3NJbmZvIEpTQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0gewogICAgIENSRUFURV9NRVRIT0RfVEFCTEUoSlNBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yKQogfTsKIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbEFycmF5QnVmZmVyKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0QXJyYXlCdWZmZXIoRXhlY1N0YXRlKik7CisKIEpTQXJy
YXlCdWZmZXJDb25zdHJ1Y3Rvcjo6SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEFycmF5QnVmZmVyU2hhcmluZ01vZGUgc2hhcmluZ01vZGUpCi0g
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxB
cnJheUJ1ZmZlciwgY29uc3RydWN0QXJyYXlCdWZmZXIpCiAgICAgLCBtX3NoYXJpbmdNb2RlKHNo
YXJpbmdNb2RlKQogewogfQpAQCAtNzcsNyArODAsNyBAQCBTdHJ1Y3R1cmUqIEpTQXJyYXlCdWZm
ZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKAogICAgIFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7CiAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKAotICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgdm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihFeGVjU3RhdGUqIGV4ZWMpCkBAIC0xMjEsMTkg
KzEyNCw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJheUJ1
ZmZlcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0Nv
bnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCAi
QXJyYXlCdWZmZXIiKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgSlNBcnJheUJ1ZmZlckNvbnN0cnVj
dG9yOjpnZXRDb25zdHJ1Y3REYXRhKAotICAgIEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0
cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1
Y3RBcnJheUJ1ZmZlcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2Fs
bFR5cGUgSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEFy
cmF5QnVmZmVyOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCiAvLyBFQ01BIDI0LjEuMy4xCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oCmluZGV4IDljNzUzMjQ4
ODY3OWUyMjMzMmY1ZDQzYWIyZWQxOTI3ZmE4NzE2YmMuLjc5NGZmODY4NjMzNmMyMDgzYTI2YzUx
ODE3YTI1ZTA0ZmRjOTk4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oCkBAIC01MCwxMCArNTAsNiBAQCBj
bGFzcyBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiAgICAgCiAgICAgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBzaGFyaW5nTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2hhcmluZ01vZGU7IH0KIAotcHJvdGVjdGVkOgotICAgIHN0YXRpYyBDb25zdHJ1
Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0
YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwotCiBwcml2YXRl
OgogICAgIEFycmF5QnVmZmVyU2hhcmluZ01vZGUgbV9zaGFyaW5nTW9kZTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKaW5kZXggM2YxOGUwZWZjNjI4MjU5ZTM3NzYzYjI5
ZjdjZmU1ZDgyYzViYjhlYi4uN2I2ZGZkNDRjMWI2Mzg4MDZkNWVhZDhjMjBhZWI1NzZlMTZjYmQy
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaApAQCAtNTcsMTAgKzU3LDYg
QEAgY2xhc3MgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKICNlbmRpZgogICAgIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOwotCi1w
cm90ZWN0ZWQ6Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29u
c3RydWN0b3JJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCmluZGV4IGNiMjQ2OTc5ZjYxYjhm
MDBhZGU3ZmZlYWNiNDZlNWQ0YTc1MDRlYzYuLjQ1NWQyNGNjOTNmNTEwZmNhMTgzNjFmZjA3NWVi
NDQ4ZWEyMDVjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcklu
bGluZXMuaApAQCAtMzgsOCArMzgsMTQgQEAKIG5hbWVzcGFjZSBKU0MgewogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBWaWV3Q2xhc3M+CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSopOworCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBWaWV3Q2xhc3M+CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEdlbmVy
aWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqKTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVmlld0Ns
YXNzPgogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUs
IGNhbGxHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPiwgY29uc3RydWN0R2VuZXJpY1R5
cGVkQXJyYXlWaWV3PFZpZXdDbGFzcz4pCiB7CiB9CiAKQEAgLTczLDcgKzc5LDcgQEAgU3RydWN0
dXJlKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmNyZWF0
ZVN0cnVjdHVyZSgKICAgICBWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogewogICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSgKLSAgICAg
ICAgdm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgpAQCAtMTk1LDkgKzIwMSw2IEBA
IGlubGluZSBKU09iamVjdCogY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3Vt
ZW50cyhFeGVjU3RhdGUqIGV4ZWMsIFN0CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFz
cz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJy
YXlWaWV3KEV4ZWNTdGF0ZSopOwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5VmlldyhF
eGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTI0NSwxMyAr
MjQ4LDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmljVHlw
ZWRBcnJheVZpZXcoRXhlY1N0YXRlKiBleGVjKQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3
Q2xhc3M+Ci1Db25zdHJ1Y3RUeXBlIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8
Vmlld0NsYXNzPjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25z
dHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3Ry
dWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3PFZpZXdDbGFzcz47Ci0gICAgcmV0dXJuIENvbnN0cnVj
dFR5cGU6Okhvc3Q7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxHZW5lcmljVHlwZWRBcnJheVZpZXcoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC0yNTksMTEgKzI1
NSw0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxHZW5lcmljVHlw
ZWRBcnJheVZpZXcoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
dGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVFcnJvcihleGVjLCBz
Y29wZSwgVmlld0NsYXNzOjppbmZvKCktPmNsYXNzTmFtZSkpOwogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBWaWV3Q2xhc3M+Ci1DYWxsVHlwZSBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVj
dG9yPFZpZXdDbGFzcz46OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
LXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsR2VuZXJpY1R5cGVkQXJyYXlW
aWV3PFZpZXdDbGFzcz47Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvbWlzZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvbWlzZUNvbnN0cnVjdG9yLmNwcAppbmRleCBkMjE2MTExNzYxYTQwNjVhY2E5MzFjNGU4ZmNl
ZDVkZmQ0ZDA3MzQ5Li4wMTJiMTE5ZGNlZjc1OWVjMjhlNTM3YjE3YjQ0ZjczYmE0MzUwYzkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29u
c3RydWN0b3IuY3BwCkBAIC03MCwxMSArNzAsMTUgQEAgSlNQcm9taXNlQ29uc3RydWN0b3IqIEpT
UHJvbWlzZUNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwK
IAogU3RydWN0dXJlKiBKU1Byb21pc2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0g
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwg
VHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKKwor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFByb21pc2UoRXhlY1N0YXRl
Kik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RQcm9taXNl
KEV4ZWNTdGF0ZSopOworCiBKU1Byb21pc2VDb25zdHJ1Y3Rvcjo6SlNQcm9taXNlQ29uc3RydWN0
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbFByb21pc2UsIGNvbnN0cnVjdFByb21p
c2UpCiB7CiB9CiAKQEAgLTExOCwyMCArMTIyLDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFByb21pc2UoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVF
cnJvcihleGVjLCBzY29wZSwgIlByb21pc2UiKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgSlNQcm9t
aXNlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYg
Y29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNv
bnN0cnVjdFByb21pc2U7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNh
bGxUeXBlIEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYgY2FsbERhdGEpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgd29ya2Fyb3VuZC4gU2luY2Ug
SlNDIGRvZXMgbm90IGV4cG9zZSBAaXNDb25zdHJ1Y3RvciB0byBKUyBidWlsdGlucywKLSAgICAv
LyB3ZSB1c2UgdHlwZW9mIGZ1bmN0aW9uID09PSAiZnVuY3Rpb24iIG5vdy4gQW5kIHNpbmNlIHR5
cGVvZiBjb25zdHJ1Y3RvcldpdGhvdXRDYWxsYWJpbGl0eQotICAgIC8vIHJldHVybnMgIm9iamVj
dCIsIHdlIG5lZWQgdG8gZGVmaW5lIFtbQ2FsbF1dIGZvciBub3cuCi0gICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA5MwotICAgIGNhbGxEYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNhbGxQcm9taXNlOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuaAppbmRleCAwYmVjYTA0ZTIwYTMyNzA2OTg1MTcy
YjMzZDc2MGUyZjM1ODE3YjZlLi5hODQ5YWQ3NDFhYTg5NzQyZWVkYjBhMGMwNzY2ZDEzZWVjYzM1
OTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZUNvbnN0cnVjdG9yLmgKQEAgLTQ4LDkgKzQ4LDYgQEAgY2xhc3MgSlNQcm9taXNlQ29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihW
TSYsIEpTUHJvbWlzZVByb3RvdHlwZSosIEdldHRlclNldHRlciopOwogCiBwcml2YXRlOgotICAg
IHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0
RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYpOwotCiAgICAgdm9pZCBhZGRPd25JbnRlcm5hbFNsb3RzKFZNJiwgSlNHbG9iYWxPYmplY3Qq
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggYzAxNzAy
MzRlMjg2YWI3NzA4OWU4YWYxODIxZTc0MDY0MzMxYWYyZS4uODUzNTZkMzk3N2FlZDVjNzNiODlh
ZmYwNWM5N2MyNDJmOTViYjRlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
LmgKQEAgLTU5LDYgKzU5LDcgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBGaW5hbE9i
amVjdFR5cGUsCiAgICAgSlNDYWxsZWVUeXBlLAogICAgIEpTRnVuY3Rpb25UeXBlLAorICAgIElu
dGVybmFsRnVuY3Rpb25UeXBlLAogICAgIE51bWJlck9iamVjdFR5cGUsCiAgICAgRXJyb3JJbnN0
YW5jZVR5cGUsCiAgICAgUHVyZUZvcndhcmRpbmdQcm94eVR5cGUsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVj
dG9yLmNwcAppbmRleCA3YjQ2ZTY0NGYxODdkMTRmYmU3Njk0YzMwODYzYjYyMjlmN2I0ZWQ1Li4y
YzgwNWY1ZTRkNmYyMmIyNzhmODg0NzE4NmM5MGEwOWVkMWQ0NjM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHAKQEAgLTM3LDggKzM3LDEwIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RUeXBlZEFycmF5VmlldyhF
eGVjU3RhdGUqKTsKKwogSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpKU1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY29uc3RydWN0VHlwZWRB
cnJheVZpZXcsIGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KQogewogfQogCkBAIC01OCw3ICs2MCw3
IEBAIHZvaWQgSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiBTdHJ1Y3R1cmUqIEpTVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKAogICAgIFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25U
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIApAQCAtNzAsMTYgKzcyLDQgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VHlwZWRBcnJheVZp
ZXcoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNj
b3BlLCBBU0NJSUxpdGVyYWwoIiVUeXBlZEFycmF5JSBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJl
Y3RseSIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6
OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkK
LXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFR5cGVkQXJy
YXlWaWV3OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBK
U1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
JiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RU
eXBlZEFycmF5VmlldzsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaAppbmRleCBkNzgxN2UyNWYxZTEyOWY1MjM1
NjgyOWI4OTA1MDdjZWM3MDA4NWUyLi40MTQ1Y2NjZTU4Y2VjZWU3MWM4OTExNGY3NjVjNzIyZjM5
NTIxZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaApAQCAtNTEsOSArNTEsNiBAQCBjbGFzcyBK
U1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAg
ICAgREVDTEFSRV9JTkZPOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7Ci1wcm90ZWN0ZWQ6Ci0g
ICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYjBkNDliNWQ1YmI1MDgz
NDk5YWI0MzdlODcyMTY4ZDRkYzJmZDY5ZC4uNzlmODQ3OWRkMmZlNzMzNDY4M2U1MDZlNmNlOGMy
ZDdlYTk4ZjJhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFw
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENv
bnN0cnVjdG9yLmNwcApAQCAtNDcsNiArNDcsMTQgQEAgdm9pZCBNYXBDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBNYXBQcm90b3R5cGUqIG1hcFByb3RvdHlwZSwgR2V0dGVyU2UK
ICAgICBwdXREaXJlY3ROb25JbmRleEFjY2Vzc29yKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVj
aWVzU3ltYm9sLCBzcGVjaWVzU3ltYm9sLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
OwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTWFwKEV4ZWNT
dGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TWFw
KEV4ZWNTdGF0ZSopOworCitNYXBDb25zdHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbE1hcCwg
Y29uc3RydWN0TWFwKQoreworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsTWFwKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpA
QCAtMTEyLDE4ICsxMjAsNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RNYXAoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
bWFwKTsKIH0KIAotQ29uc3RydWN0VHlwZSBNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVj
dERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0TWFwOwotICAgIHJldHVybiBDb25zdHJ1
Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IGNhbGxNYXA7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZChFeGVjU3Rh
dGUqIGV4ZWMpCiB7CiAgICAgQVNTRVJUKGlzSlNNYXAoZXhlYy0+YXJndW1lbnQoMCkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oCmluZGV4IGM0
OGEzNWFkMDUyOGExZjgzNzhlZjA0ZjgzMzJlMWU1MDUxOTg1MzkuLjY0NTcxYzc1MWQ2NTA5NjA2
ZTRhODI3MGNkN2Y1MTk2OWI5ZDM1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWFwQ29uc3RydWN0b3IuaApAQCAtNDcsMTcgKzQ3LDEzIEBAIGNsYXNzIE1hcENvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1hcENv
bnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2
bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9CisgICAgTWFwQ29uc3RydWN0b3IoVk0mLCBTdHJ1
Y3R1cmUqKTsKKwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBNYXBQcm90b3R5cGUqLCBH
ZXR0ZXJTZXR0ZXIqIHNwZWNpZXNTeW1ib2wpOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxs
VHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEhlYWQoRXhlY1N0YXRlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9y
Q29uc3RydWN0b3IuY3BwCmluZGV4IDU3ZmMxYzRhZjUwOGQwMGI2YmRjZTNlMWUyZWQ1NjBiZmU2
MWVkNzkuLjVmZDNhNjc3NjdmMDEzMGJlY2IzYTY2Yzg2OWFlN2RjMjJhNzhiNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IuY3BwCkBAIC0zNSw3ICszNSw3IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RF
U1RSVUNUSUJMRShOYXRpdmVFcnJvckNvbnN0cnVjdG9yKTsKIGNvbnN0IENsYXNzSW5mbyBOYXRp
dmVFcnJvckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0
aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoTmF0aXZl
RXJyb3JDb25zdHJ1Y3RvcikgfTsKIAogTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0aXZlRXJy
b3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJu
YWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3Ry
dWN0dXJlLCBJbnRlcnByZXRlcjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IsIEludGVycHJl
dGVyOjpjb25zdHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcikKIHsKIH0KIApAQCAtNzMs
MTIgKzczLDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y29u
c3RydWN0V2l0aE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXgKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2Fn
ZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gSW50ZXJwcmV0ZXI6OmNvbnN0cnVjdFdpdGhOYXRpdmVFcnJvckNvbnN0cnVjdG9yOwotICAg
IHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotICAgIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwpA
QCAtODYsMTAgKzgwLDQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRlcnByZXRl
cjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3RydWN0dXJlLCBt
ZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0KIAotQ2FsbFR5cGUgTmF0
aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxE
YXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEludGVycHJldGVyOjpjYWxs
TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDE2ZTc3MmQ3ZDZlMTNkZmUxZWM0
ZWFmZjYyZjA0OTJmMDRkNzZlODUuLmQyYjgwOTcyMzJlYjRjNTEwODRkZGIxYmUyOGFjYzQ2YzBh
YTI4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVy
cm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgTmF0aXZlRXJyb3JD
b25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9u
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAgIFN0cnVjdHVyZSog
ZXJyb3JTdHJ1Y3R1cmUoKSB7IHJldHVybiBtX2Vycm9yU3RydWN0dXJlLmdldCgpOyB9CkBAIC01
NCw4ICs1NCw2IEBAIGNsYXNzIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihWTSYs
IFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEo
SlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0
YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZXJy
b3JTdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dWxsR2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bEdldHRlckZ1bmN0aW9uLmNwcAppbmRleCBiYTQ2YjMwMmM4MmE0MmI3YmY2ZGRkODhmMDQ2ZGU0
ODVkODYwMWUyLi5hNTZjYWIzZmFlNzllZTk0NWU2OTc2NjI0YTE2NGI1YjE4ZDhmNGM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlv
bi5jcHAKQEAgLTQwLDE1ICs0MCw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxSZXR1cm5VbmRlZmluZWQoRXhlY1N0YXRlKikKIH0KIH0KIAotQ2FsbFR5cGUgTnVs
bEdldHRlckZ1bmN0aW9uOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEp
CitOdWxsR2V0dGVyRnVuY3Rpb246Ok51bGxHZXR0ZXJGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBOdWxsR2V0dGVyRnVuY3Rp
b25JbnRlcm5hbDo6Y2FsbFJldHVyblVuZGVmaW5lZCwgbnVsbHB0cikKIHsKLSAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBOdWxsR2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6Y2FsbFJldHVy
blVuZGVmaW5lZDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KLUNvbnN0cnVjdFR5
cGUgTnVsbEdldHRlckZ1bmN0aW9uOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmKQotewotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpOb25lOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oCmlu
ZGV4IDYzMzk3NzM3MmIzMTkxNDc3Yjk0YTc5M2Y4MWUyMWViZGM4MDhmYTUuLjFmMzA3ZDdjMDgx
NWIzMGZjMjBmOTlhM2M2ZWNhNWNhM2U0MTMxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oCkBAIC00NCwxNiArNDQsMTEgQEAg
Y2xhc3MgTnVsbEdldHRlckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKElu
dGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIE51bGxHZXR0ZXJGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQotICAgIHN0
YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0
YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYp
OworICAgIE51bGxHZXR0ZXJGdW5jdGlvbihWTSYsIFN0cnVjdHVyZSopOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dWxsU2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bFNldHRlckZ1bmN0aW9uLmNwcAppbmRleCA2YWYwZDFhODVkZjIwZmYwODFhOTg3Y2ZkZGRhNjdk
NTFhYjZlMGU2Li5jZGQxMTJlYmJmMWViNWE1OTE4Yzk2NTczMTdjZDdkYmRhNzQ2YzQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlv
bi5jcHAKQEAgLTgyLDE1ICs4Miw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxSZXR1cm5VbmRlZmluZWQoRXhlY1N0YXRlKiBleGVjKQogfQogfQogCi1DYWxsVHlw
ZSBOdWxsU2V0dGVyRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
RGF0YSkKK051bGxTZXR0ZXJGdW5jdGlvbjo6TnVsbFNldHRlckZ1bmN0aW9uKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIE51bGxTZXR0ZXJG
dW5jdGlvbkludGVybmFsOjpjYWxsUmV0dXJuVW5kZWZpbmVkLCBudWxscHRyKQogewotICAgIGNh
bGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IE51bGxTZXR0ZXJGdW5jdGlvbkludGVybmFsOjpjYWxs
UmV0dXJuVW5kZWZpbmVkOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQotQ29uc3Ry
dWN0VHlwZSBOdWxsU2V0dGVyRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29u
c3RydWN0RGF0YSYpCi17Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5j
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9u
LmgKaW5kZXggN2M0ZDk2NDBmOWY1OTA5YTA4YzU4ZmUwZWU5YTUyNzZhMWJmZjljZS4uMDUxNTAz
ZGUzZjg4NmFhZmNjYjhlOGE5OGEwYzMyMjNjNjU3OWFmNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmgKQEAgLTQ0LDE2ICs0NCwx
MSBAQCBjbGFzcyBOdWxsU2V0dGVyRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgTnVsbFNldHRlckZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9Ci0g
ICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxE
YXRhJik7CisgICAgTnVsbFNldHRlckZ1bmN0aW9uKFZNJiwgU3RydWN0dXJlKik7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcAppbmRleCBiMzExNDI3MGE0M2EyYzg2Njk3ZDUzNWRjNjJk
ODkyMzYzZDIyNDhkLi5lM2NjMWViODg2ZTJjYmRlM2YxY2UzNjc0MWRhOTVkZDMyNWU3M2I2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0
b3IuY3BwCkBAIC01Myw4ICs1MywxMSBAQCBjb25zdCBDbGFzc0luZm8gTnVtYmVyQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogQGVuZAog
Ki8KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE51bWJlckNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CisKIE51bWJlckNvbnN0cnVj
dG9yOjpOdW1iZXJDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlv
bih2bSwgc3RydWN0dXJlLCBjYWxsTnVtYmVyQ29uc3RydWN0b3IsIGNvbnN0cnVjdE51bWJlckNv
bnN0cnVjdG9yKQogewogfQogCkBAIC04MCw3ICs4Myw3IEBAIHZvaWQgTnVtYmVyQ29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTnVtYmVyUHJvdG90eXBlKiBudW1iZXJQcm90b3R5
cGUpCiB9CiAKIC8vIEVDTUEgMTUuNy4xCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQorc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TnVtYmVyQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTQsMjQgKzk3LDEyIEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhOdW1iZXJDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvYmplY3Qp
OwogfQogCi1Db25zdHJ1Y3RUeXBlIE51bWJlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0b3I7Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIC8vIEVDTUEgMTUuNy4yCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTnVtYmVyQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoIWV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA/IDAgOiBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b051
bWJlcihleGVjKSkpOwogfQogCi1DYWxsVHlwZSBOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNhbGxOdW1iZXJDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7Ci19Ci0KIC8vIEVDTUEtMjYyIDIwLjEuMi4zCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBudW1iZXJDb25zdHJ1Y3RvckZ1bmNJc0ludGVnZXIoRXhlY1N0YXRlKiBleGVj
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVj
dG9yLmgKaW5kZXggNTFlNGZhMzA0OWIzZDRhMzFlY2Q0YjQ4NzQ3MmI3MTgwNDUwYmVjOC4uMTBm
NThhMjVlY2RmNjM4MGVkZTU2OWI0YmRlMWQ5Mjc0OWZkNWZmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC00Myw3ICs0Myw3
IEBAIGNsYXNzIE51bWJlckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewog
CiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykgCiAgICAgeyAKLSAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKEludGVybmFs
RnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAogICAgIH0KIAogcHJvdGVj
dGVkOgpAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBOdW1iZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBOdW1iZXJDb25zdHJ1Y3RvcihWTSYs
IFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEo
SlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0
YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggZjY3MGJkMzI0MDA3NjRmMzlhNjFmMzQ0ZDQ4Y2E2YmQzNjg4Y2ViMC4uNTNkYjkyNjEzY2U1
MGEyMjBjOTk0Yjk2NGUxZDI1NmJkYTc5NDhjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtOTAsOCArOTAsMTIgQEAg
Y29uc3QgQ2xhc3NJbmZvIE9iamVjdENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIs
ICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKIEBlbmQKICovCiAKKworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE9iamVjdENvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSopOworCiBPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24o
dm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2Fs
bE9iamVjdENvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3IpCiB7CiB9
CiAKQEAgLTE0MywyMyArMTQ3LDExIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdFdpdGhPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RPYmplY3QoZXhlYywgZXhlYy0+bmV3VGFyZ2V0
KCkpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aE9iamVjdENvbnN0cnVjdG9y
OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCiBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0T2JqZWN0KGV4ZWMsIEpT
VmFsdWUoKSkpOwogfQogCi1DYWxsVHlwZSBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IGNhbGxPYmplY3RDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRQ
cm90b3R5cGVPZihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5o
CmluZGV4IDEwZjkyZDJjOTJjMDE0ZDFmMDI5ZWRmZTdhNTM5N2VjMzMxN2ExNzYuLjNiZDAzMGFm
ZGVkYWRiYzc3MzZlNjdhMTYwODhlNjZiNTkyODY0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtNTAsNyArNTAsNyBAQCBj
bGFzcyBPYmplY3RDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRl
cm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJv
dGVjdGVkOgpAQCAtNTgsOCArNTgsNiBAQCBjbGFzcyBPYmplY3RDb25zdHJ1Y3RvciA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBPYmplY3RDb25zdHJ1Y3RvcihW
TSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERh
dGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1
Y3RFbXB0eU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcApp
bmRleCAxZjNjNDI2ZmM4MGNhYWZkOGIzNmFiM2QwMmFmMTkzOWY3OTY4MzhkLi41OGUxMjQyNmE0
MmI1MTYxMWU4MzIxNThlNTMwMTY4YWJhMzdkZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcApAQCAtNDgsOCArNDgsMTEgQEAg
UHJveHlDb25zdHJ1Y3RvciogUHJveHlDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogfQogCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUHJveHkoRXhlY1N0YXRlKik7CitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RQcm94eU9iamVjdChFeGVjU3Rh
dGUqKTsKKwogUHJveHlDb25zdHJ1Y3Rvcjo6UHJveHlDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2
bSwgc3RydWN0dXJlLCBjYWxsUHJveHksIGNvbnN0cnVjdFByb3h5T2JqZWN0KQogewogfQogCkBA
IC0xMDMsMjIgKzEwNiwxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RQcm94eU9iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShQcm94eU9iamVjdDo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKSwgdGFyZ2V0LCBoYW5kbGVyKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgUHJveHlDb25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3RE
YXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0UHJv
eHlPYmplY3Q7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxQcm94eShFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZXhlYy0+dm0oKSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1
bmN0aW9uVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCAiUHJveHkiKSk7CiB9CiAKLUNhbGxUeXBlIFBy
b3h5Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
LXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsUHJveHk7Ci0gICAgcmV0dXJu
IENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaAppbmRleCA0OGY1M2M4MmIz
ZmQ2OWUzZjQxOWNiN2VlZDc3YTUxOTdjMjk4NjYyLi5iYWM2MGQyNDMyYTJhNjY2MTIyMzJhODll
YTgwMDc5NDAzYzVkY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJveHlDb25zdHJ1Y3Rvci5oCkBAIC00MCwxNSArNDAsMTMgQEAgY2xhc3MgUHJveHlDb25zdHJ1
Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgY29uc3QgY2hhciogbmFtZSwgSlNHbG9iYWxPYmplY3QqKTsKIAogcHJpdmF0
ZToKICAgICBQcm94eUNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENv
bnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0g
ICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZ2V0R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm94eVJldm9rZS5jcHAKaW5kZXggYTVmY2E3OGQzZTgzYzVhZjU4ZTllNTMw
OThkMzVkOGY4ZWI5MTdhZi4uZjg3NWY2NWQ0NTEzOTQ5NzA2NGQ5MzZhOTc0YTc5ZGY2MDhlZWE0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmNwcApA
QCAtNDIsOCArNDIsMTAgQEAgUHJveHlSZXZva2UqIFByb3h5UmV2b2tlOjpjcmVhdGUoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUHJveHlPYmplY3QqIHByb3gKICAgICByZXR1cm4gcmV2
b2tlOwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwZXJmb3JtUHJv
eHlSZXZva2UoRXhlY1N0YXRlKik7CisKIFByb3h5UmV2b2tlOjpQcm94eVJldm9rZShWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlLCBwZXJmb3JtUHJveHlSZXZva2UsIG51bGxwdHIpCiB7CiB9CiAK
QEAgLTY5LDEyICs3MSw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHBl
cmZvcm1Qcm94eVJldm9rZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotQ2FsbFR5cGUgUHJveHlSZXZva2U6OmdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBwZXJmb3JtUHJveHlSZXZva2U7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0
OwotfQotCiB2b2lkIFByb3h5UmV2b2tlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgUHJveHlSZXZva2UqIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8UHJveHlSZXZva2UqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3h5UmV2b2tlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm94eVJldm9rZS5oCmluZGV4IGUwMjhhN2RhNmJmMmQzNWNiMGZkM2RmM2IyMjM0OWU0YjNjZGVl
NzkuLjEyNjg3NmVmNmYzYmUxNjVjY2Q2Y2I1YjQxZjgzYTRhZjYzYTNlMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBQcm94eVJldm9rZSA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5h
bEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29uc3QgY2hhciogbmFtZSwgUHJveHlPYmplY3QqKTsK
QEAgLTUyLDcgKzUyLDYgQEAgY2xhc3MgUHJveHlSZXZva2UgOiBwdWJsaWMgSW50ZXJuYWxGdW5j
dGlvbiB7CiAKIHByaXZhdGU6CiAgICAgUHJveHlSZXZva2UoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAg
IFdyaXRlQmFycmllcjxVbmtub3duPiBtX3Byb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCAxYzY3ZGM1ZTAz
YWEzMmFhNmFkNmVmMTA4NmUwYjdjMmYyNmRhNzI2Li4wZjUyYWEyNGFiM2U0ZmZhZWZhNTE1M2M3
YmY5ZjMyYTYwYzg3MGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC03Niw4ICs3NiwxMiBAQCBjb25zdCBDbGFzc0lu
Zm8gUmVnRXhwQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVu
Y3Rpb246OnNfaQogQGVuZAogKi8KIAorCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsUmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoUmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0
YXRlKik7CisKIFJlZ0V4cENvbnN0cnVjdG9yOjpSZWdFeHBDb25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBSZWdFeHBQcm90b3R5cGUqIHJlZ0V4cFByb3RvdHlwZSkKLSAg
ICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rp
b24odm0sIHN0cnVjdHVyZSwgY2FsbFJlZ0V4cENvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoUmVn
RXhwQ29uc3RydWN0b3IpCiAgICAgLCBtX2NhY2hlZFJlc3VsdCh2bSwgdGhpcywgcmVnRXhwUHJv
dG90eXBlLT5lbXB0eVJlZ0V4cCgpKQogICAgICwgbV9tdWx0aWxpbmUoZmFsc2UpCiB7CkBAIC0z
MTAsMjIgKzMxNCwxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RXaXRoUmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY29uc3RydWN0UmVnRXhwKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVj
LT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3MsIGV4ZWMtPmpzQ2FsbGVlKCksIGV4
ZWMtPm5ld1RhcmdldCgpKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgUmVnRXhwQ29uc3RydWN0b3I6
OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkK
LXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhSZWdF
eHBDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJlZ0V4cENvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShjb25zdHJ1Y3RSZWdFeHAoZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4
ZWMtPmpzQ2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncywgZXhlYy0+anNDYWxsZWUoKSkp
OwogfQogCi1DYWxsVHlwZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxSZWdFeHBDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmgKaW5kZXggNmQ3NDYyNzkzMzE2M2UzNWY1MGEzYWI4ODg2Mzc2NjI0
NDE0NTFkZC4uZGE3NjBlYzA0ZjBhNzgyN2FhNjU3Y2NkYjY3OTI4YzFkNmVlMGE1YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBA
IC00NCw3ICs0NCw3IEBAIGNsYXNzIFJlZ0V4cENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Cisg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CiAgICAgfQogCiAgICAgREVDTEFSRV9JTkZPOwpAQCAtNzQsOCArNzQsNiBAQCBjbGFzcyBS
ZWdFeHBDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHByaXZhdGU6CiAg
ICAgUmVnRXhwQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqLCBSZWdFeHBQcm90b3R5cGUqKTsK
ICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RU
eXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRp
YyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgUmVnRXhw
Q2FjaGVkUmVzdWx0IG1fY2FjaGVkUmVzdWx0OwogICAgIGJvb2wgbV9tdWx0aWxpbmU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
Nzg0Mzc1YTIzOTQwMTc0MzBmY2JiZDg2OWZiNWY2ZGQ4N2Y3NTQwNy4uYTVjNmMxNzM4ZTkyOTIx
MzM2Yjc0ZmM5MDZhNzkwMWI4ZDM5ZGE5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcApAQCAtNDcsNiArNDcsMTQgQEAgdm9pZCBTZXRD
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBTZXRQcm90b3R5cGUqIHNldFByb3Rv
dHlwZSwgR2V0dGVyU2UKICAgICBwdXREaXJlY3ROb25JbmRleEFjY2Vzc29yKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5zcGVjaWVzU3ltYm9sLCBzcGVjaWVzU3ltYm9sLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6QWNjZXNzb3IgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pOwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsU2V0KEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0U2V0KEV4ZWNTdGF0ZSopOworCitTZXRDb25zdHJ1Y3Rvcjo6U2V0Q29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSwgY2FsbFNldCwgY29uc3RydWN0U2V0KQoreworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsU2V0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwpAQCAtOTgsMTggKzEwNiw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdFNldChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShzZXQpOwogfQogCi1Db25zdHJ1Y3RUeXBlIFNldENvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17
Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RTZXQ7Ci0gICAg
cmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFNldENvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFNldDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNr
ZXRIZWFkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBU1NFUlQoaXNKU1NldChleGVjLT5hcmd1
bWVudCgwKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVj
dG9yLmgKaW5kZXggNDVmMDEzMDY1MDJmNjk3MjIwZDU0NWI0NzEwYjBjNjUwMWY2Nzg0Mi4uZGQ0
YTRkMThiNmM4OWI3ZWM4ZTkxNmUzOTZjYTc5YThjNWI4ODVhMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oCkBAIC00NywxNyArNDcsMTIgQEAg
Y2xhc3MgU2V0Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJu
YWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgU2V0Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAg
ICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KKyAgICBTZXRDb25zdHJ1
Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBTZXRQ
cm90b3R5cGUqLCBHZXR0ZXJTZXR0ZXIqIHNwZWNpZXNTeW1ib2wpOwotICAgIHN0YXRpYyBDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAg
IHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEhlYWQo
RXhlY1N0YXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMzc5OTZhODIxM2JhZTI1ZTk1ZTE4MTI5OWVmZDE5NDEw
OWQ4NWU1OS4uMTA2OWVmZTZkMGEyY2JhNTFiOTgxOGYyY2IyN2RjYjg1Y2Y4ZjFjMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNw
cApAQCAtNTIsOCArNTIsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIFN0cmluZ0NvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKIAogU1RBVElDX0FT
U0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKFN0cmluZ0NvbnN0cnVjdG9yKTsKIAorCitz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3RyaW5nQ29uc3RydWN0b3Io
RXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CisKIFN0cmluZ0NvbnN0cnVjdG9y
OjpTdHJpbmdDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDog
SW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlLCBjYWxsU3RyaW5nQ29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhTdHJpbmdD
b25zdHJ1Y3RvcikKIHsKIH0KIApAQCAtMTM0LDEyICsxMzgsNiBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoU3RyaW5nT2JqZWN0OjpjcmVhdGUo
dm0sIHN0cnVjdHVyZSwgc3RyKSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgU3RyaW5nQ29uc3RydWN0
b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhT
dHJpbmdDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQog
SlNDZWxsKiBzdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYXJndW1l
bnQpCiB7CiAgICAgaWYgKGFyZ3VtZW50LmlzU3ltYm9sKCkpCkBAIC0xNTQsMTAgKzE1Miw0IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTdHJpbmdDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzdHJpbmdDb25z
dHJ1Y3RvcihleGVjLCBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSkpOwogfQogCi1DYWxsVHlw
ZSBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxE
YXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxTdHJpbmdDb25zdHJ1
Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3Ry
dWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
LmgKaW5kZXggMWJkMWUyMTI2NDk2YmM1ZDhlOTVkNjU5OGI5ZmU1MjZhNjNkZGJiMS4uOTlhYWZl
ODA4ODFiNWM3MTJmNDZlZTI2OThkMGU2Y2UwMmZhNmQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCkBAIC00MywxNCArNDMsMTIg
QEAgY2xhc3MgU3RyaW5nQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
SW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAK
IHByaXZhdGU6CiAgICAgU3RyaW5nQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgU3RyaW5nUHJvdG90eXBlKik7Ci0gICAgc3RhdGljIENv
bnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0g
ICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9Owog
CiBKU0NlbGwqIEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJvbUNoYXJDb2RlKEV4ZWNTdGF0ZSosIGlu
dDMyX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9s
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29u
c3RydWN0b3IuY3BwCmluZGV4IGE3NjFmNDE1OTgxZWZjMmMxZmI3ZTQ4ZmQyNTgwZjJhZGZlYzc3
ZDAuLmI1MTUyNTkyMTFjNDIwNTQ3NWQwMGYzNGJiYzMwZjU1N2Q5MjFhY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAKQEAg
LTU2LDggKzU2LDEwIEBAIGNvbnN0IENsYXNzSW5mbyBTeW1ib2xDb25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAmc3ltYm9sCiBAZW5kCiAqLwogCitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3ltYm9sKEV4ZWNTdGF0ZSopOwor
CiBTeW1ib2xDb25zdHJ1Y3Rvcjo6U3ltYm9sQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6
IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbFN5bWJvbCwgbnVsbHB0cikKIHsK
IH0KIApAQCAtODMsMTcgKzg1LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbFN5bWJvbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShTeW1ib2w6OmNyZWF0ZShleGVjLCBkZXNjcmlwdGlvbi50b1N0cmluZyhleGVjKSkpOwogfQog
Ci1Db25zdHJ1Y3RUeXBlIFN5bWJvbENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2Vs
bCosIENvbnN0cnVjdERhdGEmKQotewotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpOb25lOwot
fQotCi1DYWxsVHlwZSBTeW1ib2xDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxT
eW1ib2w7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN5bWJvbENvbnN0cnVjdG9yRm9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbENvbnN0cnVjdG9yLmgKaW5kZXggNThjMzUxOGU0N2Q5MzEyMDQ2Y2JlNjBlYTM4
ZmYwZTcwMDRjMTQ2OC4uNWJkMDU5NDc4MjdjMzI2MTM0M2JiOGM5ZGJlMjliNTVjYTdmOWQ2NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rv
ci5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFN5bWJvbENvbnN0cnVjdG9yIDogcHVibGljIElu
dGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUp
CiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC01Nyw4ICs1Nyw2IEBAIGNsYXNzIFN5
bWJvbENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgog
ICAgIFN5bWJvbENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCBk
Y2Q0ZTk0NWFhOTVhYWZkZjUxYTNkMGVkZTBiZjgxM2Y0NTU2MDhmLi5kMjIxZDRkMWFkOWY3ZDNi
MzBkYmI5NGZiNDgzY2VlZjU2NTRmNjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
Y3BwCkBAIC0zNTIsNiArMzUyLDEwIEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBo
ZWFwVHlwZSkKICAgICAgICAgd2F0Y2hkb2cuc2V0VGltZUxpbWl0KHRpbWVvdXRNaWxsaXMpOwog
ICAgIH0KIAorICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGFueSBzdHVicyB0aGF0IHRoZSBKSVQgaXMg
Z29pbmcgdG8gdXNlIGFyZSBpbml0aWFsaXplZCBpbiBub24tY29tcGlsYXRpb24gdGhyZWFkcy4K
KyAgICBnZXRDVElJbnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihDb2RlRm9yQ2FsbCk7Cisg
ICAgZ2V0Q1RJSW50ZXJuYWxGdW5jdGlvblRyYW1wb2xpbmVGb3IoQ29kZUZvckNvbnN0cnVjdCk7
CisKICAgICBWTUluc3BlY3Rvcjo6aW5zdGFuY2UoKS5hZGQodGhpcyk7CiB9CiAKQEAgLTU3OSw2
ICs1ODMsMTkgQEAgTmF0aXZlRXhlY3V0YWJsZSogVk06OmdldEhvc3RGdW5jdGlvbihOYXRpdmVG
dW5jdGlvbiBmdW5jdGlvbiwgSW50cmluc2ljIGludHJpbnMKICAgICAgICAgTm9JbnRyaW5zaWMs
IHNpZ25hdHVyZSwgbmFtZSk7CiB9CiAKK01hY3JvQXNzZW1ibGVyQ29kZVB0ciBWTTo6Z2V0Q1RJ
SW50ZXJuYWxGdW5jdGlvblRyYW1wb2xpbmVGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5k
KQoreworI2lmIEVOQUJMRShKSVQpCisgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCisgICAg
ICAgIHJldHVybiBqaXRTdHVicy0+Y3RpSW50ZXJuYWxGdW5jdGlvbkNhbGwodGhpcyk7CisgICAg
cmV0dXJuIGppdFN0dWJzLT5jdGlJbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0KHRoaXMpOworI2Vs
c2UKKyAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAgcmV0dXJuIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2ludGVybmFsX2Z1bmN0aW9u
X2NhbGxfdHJhbXBvbGluZSk7CisgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3Jl
YXRlTExJbnRDb2RlUHRyKGxsaW50X2ludGVybmFsX2Z1bmN0aW9uX2NvbnN0cnVjdF90cmFtcG9s
aW5lKTsKKyNlbmRpZgorfQorCiBWTTo6Q2xpZW50RGF0YTo6fkNsaWVudERhdGEoKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggMmY3OTk2ODgwMTM3MTE5MDc5MGI0ODk5
MWFmMzAzODgwNWUyNGQyOS4uYTU1ZWNmNWRjNTk0ODA4Y2I0M2EzMTE4MGE0OTY0ZmU0NWZiNTg5
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIkNhbGxEYXRhLmgiCisjaW5jbHVkZSAiQ29kZVNwZWNpYWxp
emF0aW9uS2luZC5oIgogI2luY2x1ZGUgIkNvbmN1cnJlbnRKU0xvY2suaCIKICNpbmNsdWRlICJD
b250cm9sRmxvd1Byb2ZpbGVyLmgiCiAjaW5jbHVkZSAiRGF0ZUluc3RhbmNlQ2FjaGUuaCIKQEAg
LTQ4OSw2ICs0OTAsOCBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxW
TT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIE5hdGl2ZUV4ZWN1dGFi
bGUqIGdldEhvc3RGdW5jdGlvbihOYXRpdmVGdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3Ry
dWN0b3IsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgTmF0aXZlRXhlY3V0YWJsZSogZ2V0SG9z
dEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uLCBJbnRyaW5zaWMsIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0
cnVjdG9yLCBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSosIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAK
KyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZ2V0Q1RJSW50ZXJuYWxGdW5jdGlvblRyYW1wb2xp
bmVGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CisKICAgICBzdGF0aWMgcHRyZGlmZl90IGV4
Y2VwdGlvbk9mZnNldCgpCiAgICAgewogICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFZN
LCBtX2V4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha01hcENvbnN0cnVjdG9yLmNwcAppbmRleCBiYjBlMDY4NTFjNjAxMDgyMGU4NmU4MTFlY2E1
NmMzY2MyOTMyNzNkLi42MjNiNjI2MTgxZmExNWU5MmI2ODEzYTkzZGYzMGQ5NGJmMzcyNTczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1
Y3Rvci5jcHAKQEAgLTQ1LDYgKzQ1LDE0IEBAIHZvaWQgV2Vha01hcENvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIFdlYWtNYXBQcm90b3R5cGUqIHByb3RvdHlwZSkKICAgICBwdXRE
aXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051
bWJlcigwKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KTsKIH0KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bFdlYWtNYXAoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zdHJ1Y3RXZWFrTWFwKEV4ZWNTdGF0ZSopOworCitXZWFrTWFwQ29uc3RydWN0b3I6Oldl
YWtNYXBDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogQmFz
ZSh2bSwgc3RydWN0dXJlLCBjYWxsV2Vha01hcCwgY29uc3RydWN0V2Vha01hcCkKK3sKK30KKwog
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFdlYWtNYXAoRXhlY1N0YXRl
KiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC05NywxNiArMTA1LDQgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha01hcChFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh3ZWFrTWFwKTsKIH0KIAot
Q29uc3RydWN0VHlwZSBXZWFrTWFwQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxs
KiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdlYWtNYXA7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5
cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdlYWtNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IGNhbGxXZWFrTWFwOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3Iu
aAppbmRleCA1OWYyY2FhZGUwY2EzNTdjMmFhMDAyNzM2MzQ2YWE3MzA1ZmU5NjA2Li5jOTNlNDEy
NTFlYzYwYTkwOGIzZGNiYzJhZjE2MjVmMTExZmRjMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuaApAQCAtNDcsMTcgKzQ3LDEy
IEBAIGNsYXNzIFdlYWtNYXBDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsK
IAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlw
ZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBXZWFrTWFwQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKLSAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KKyAg
ICBXZWFrTWFwQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgV2Vha01hcFByb3RvdHlwZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBl
IGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBD
YWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFr
U2V0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1Nl
dENvbnN0cnVjdG9yLmNwcAppbmRleCAwODZiYmNhZDhiYmIzNTYxMmFiNDhiNTNiNjE4MTQ1MmMy
NDFhMDFkLi42NmJjNzUyN2NhMmNiOGQ4NmUxMzkyZWVlNWMxYWQ5Y2E4ZTI3MmIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5j
cHAKQEAgLTQ1LDYgKzQ1LDE0IEBAIHZvaWQgV2Vha1NldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIFdlYWtTZXRQcm90b3R5cGUqIHByb3RvdHlwZSkKICAgICBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigw
KSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5KTsKIH0KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFdlYWtT
ZXQoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RXZWFrU2V0KEV4ZWNTdGF0ZSopOworCitXZWFrU2V0Q29uc3RydWN0b3I6OldlYWtTZXRD
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwg
c3RydWN0dXJlLCBjYWxsV2Vha1NldCwgY29uc3RydWN0V2Vha1NldCkKK3sKK30KKwogc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFdlYWtTZXQoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC04MywxNiArOTEsNCBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXZWFrU2V0KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHdlYWtTZXQpOwogfQogCi1Db25zdHJ1
Y3RUeXBlIFdlYWtTZXRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25z
dHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY29uc3RydWN0V2Vha1NldDsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9z
dDsKLX0KLQotQ2FsbFR5cGUgV2Vha1NldENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y2FsbFdlYWtTZXQ7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5oCmluZGV4
IDY5M2MxMGJmOGRiNGVmMGVjZDBjNDdiNDQwMGJiZDc2NzdmYmJjMGUuLjVlNmZiODI4ZjE3M2Iz
YTRjMDM1YzJiMDRmZjNhZDU3MzM4MTdmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5oCkBAIC00NywxNyArNDcsMTIgQEAgY2xh
c3MgV2Vha1NldENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVy
bmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2
YXRlOgotICAgIFdlYWtTZXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQorICAgIFdlYWtT
ZXRDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Vk0mLCBXZWFrU2V0UHJvdG90eXBlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBl
IGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOTgyZGY3ZjQw
OGMxN2VmMjk3ZWI1M2RiZTg4OTc2OWI3MmJiMWM4Yi4uYWM0ZDhmY2MwYTRhYjQwOTI3OWRiZmU2
YTgwNzQ3ODkzZTZjNzE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKQEAgLTcwLDcgKzcwLDcgQEAgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvciog
V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFYKIAogU3RydWN0dXJl
KiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsK
LSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAog
dm9pZCBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlKiBwcm90b3R5cGUpCkBAIC04
MSwyMiArODEsMTAgQEAgdm9pZCBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5Q29tcGkKIH0KIAogV2ViQXNzZW1ibHlD
b21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rv
cihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJv
ciwgY29uc3RydWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcikKIHsKIH0KIAotQ29uc3RydWN0
VHlwZSBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9
IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCAzNGEwZTc4YzA0NjQ2NzA5ZDZmMmU1
Y2E3Njg3MjExZjdhOTcyNDc3Li41Yjc1YmM4MTA0MjY1NjQ2ZjUxODY1NmVmNTU3MzNjYWMxMzZh
YzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC00OSw4ICs0OSw2
IEBAIGNsYXNzIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50
ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JD
b25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxs
VHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcAppbmRleCAyZmRkNWE0NjE3OWU3
OGE1NmZjOTM3ODdhZjFiOGNmOTM4OWY2OWQwLi45MDkyMTMwN2YzMzUyZjgwOGU0YTI0YTg1ZGQ1
MDE5ODQ1MDgyNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKQEAgLTEwMSw3
ICsxMDEsNyBAQCBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5SW5z
dGFuY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgUwogCiBTdHJ1Y3R1cmUqIFdlYkFzc2Vt
Ymx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVu
Y3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNzZW1i
bHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5
SW5zdGFuY2VQcm90b3R5cGUqIHByb3RvdHlwZSkKQEAgLTExMiwyMiArMTEyLDEwIEBAIHZvaWQg
V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdl
YkFzc2VtYmx5SW5zdGFuY2VQCiB9CiAKIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6
V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUs
IGNhbGxKU1dlYkFzc2VtYmx5SW5zdGFuY2UsIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJbnN0YW5j
ZSkKIHsKIH0KIAotQ29uc3RydWN0VHlwZSBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6
OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkK
LXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZTsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2Fs
bFR5cGUgV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y2FsbEpTV2ViQXNzZW1ibHlJbnN0YW5jZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0
YW5jZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUluc3RhbmNlQ29uc3RydWN0b3IuaAppbmRleCA2ZDllZDNjMDBiNzNhZDY4N2RhNjlhYWIz
ZDhlNzM5MDM4ZDkyNjAzLi5hMjFkOTFhYzNiMjMzYjc5OTM4N2UxYWI2MDRjMzhmMjlhNzE2NGUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUlu
c3RhbmNlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuaApAQCAtNTMsOCArNTMsNiBAQCBjbGFzcyBX
ZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yKFZNJiwgU3Ry
dWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5r
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYjE3ZDU4YWJlNjY1ODJmYWFkN2FkY2E3NjYxNTcy
MmJkMjRhM2VlNi4uYWYwOTE3YWFiNGRjNjlmMTYxYjQyMmFlYTk4MjZlOWQxMWEyOTI5NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgV2ViQXNz
ZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rv
cjo6Y3JlYXRlKFZNJiB2bSwKIAogU3RydWN0dXJlKiBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAogdm9pZCBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5TGlua0Vycm9yUHJvdG90
eXBlKiBwcm90b3R5cGUpCkBAIC04MSwyMiArODEsMTAgQEAgdm9pZCBXZWJBc3NlbWJseUxpbmtF
cnJvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5TGlua0Vy
cm8KIH0KIAogV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlMaW5r
RXJyb3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFz
ZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSlNXZWJBc3Nl
bWJseUxpbmtFcnJvciwgY29uc3RydWN0SlNXZWJBc3NlbWJseUxpbmtFcnJvcikKIHsKIH0KIAot
Q29uc3RydWN0VHlwZSBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJB
c3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29u
c3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlu
a0Vycm9yQ29uc3RydWN0b3IuaAppbmRleCBjNzAwYzYzMzAxNGZiZmFhZmEwYWJiOTMyY2Q3MGU5
YjlmZTkzMDk1Li5lMjkxMjk3YmRhZWNhZDcxZTI0ZTEyNzcyMGZlYzQ1YjI4NzQ4MTdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJv
ckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC00OSw4ICs0OSw2IEBAIGNsYXNzIFdlYkFz
c2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAK
IHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3RvcihWTSYsIFN0cnVj
dHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxs
KiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29u
c3RydWN0b3IuY3BwCmluZGV4IGQwNDM1YWYxZmRmZTU2MzBkOTIyYjY3ZGRiNmE4NGQ3MWY0OWQ4
ZDEuLmM1NTY5OGMxMTk3YzAwY2RiYzRjZTQyNWM4ZTMxZDJhZTc3M2M0OGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVt
b3J5Q29uc3RydWN0b3IuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgV2ViQXNzZW1ibHlNZW1vcnlD
b25zdHJ1Y3RvciogV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwg
U3RydWMKIAogU3RydWN0dXJlKiBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKIH0KIAogdm9pZCBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlKiBwcm90b3R5cGUpCkBAIC0x
MzgsMjIgKzEzOCwxMCBAQCB2b2lkIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlNZW1vcnlQcm90bwogfQogCiBXZWJBc3NlbWJs
eU1lbW9yeUNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBC
YXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2VtYmx5TWVtb3J5LCBjb25zdHJ1Y3RKU1dl
YkFzc2VtYmx5TWVtb3J5KQogewogfQogCi1Db25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5TWVtb3J5
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29u
c3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0
cnVjdEpTV2ViQXNzZW1ibHlNZW1vcnk7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7
Ci19Ci0KLUNhbGxUeXBlIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OmdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVu
Y3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJseU1lbW9yeTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlNZW1vcnlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oCmluZGV4IDIwNjFlMjQ4ZjMzOTViNjdkMmMyZTRi
MThjZTQyYjk2ODIyMWVjNWMuLmVhNjQ2MGIxYmM3MWJhMjg5NDVlNzJlOTU5NGM2Y2ZjOTNiZGUx
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
TWVtb3J5Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmgKQEAgLTQ5LDggKzQ5LDYgQEAgY2xhc3MgV2Vi
QXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAog
cHJpdmF0ZToKICAgICBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJl
Kik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBD
b25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggNzViNWI2MmMzOGEyM2Q0OTc1YjVjMDk4YTc1NTY3MjI2ZTc3MGYzYS4u
ZmEzMWM1OTMxOTgzMWVhNTVkZjUxYzI3NGVkNDQzNGQyN2I0NmFjZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVD
b25zdHJ1Y3Rvci5jcHAKQEAgLTE5OCw3ICsxOTgsNyBAQCBXZWJBc3NlbWJseU1vZHVsZUNvbnN0
cnVjdG9yKiBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1
YwogCiBTdHJ1Y3R1cmUqIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
KyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OwogfQogCiB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgV2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUqIHByb3RvdHlwZSkKQEAgLTIwOSwy
MiArMjA5LDEwIEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseU1vZHVsZVByb3RvCiB9CiAKIFdlYkFzc2VtYmx5TW9k
dWxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlNb2R1bGUsIGNvbnN0cnVjdEpTV2ViQXNz
ZW1ibHlNb2R1bGUpCiB7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2ViQXNzZW1ibHlNb2R1bGVDb25z
dHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1
Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0
SlNXZWJBc3NlbWJseU1vZHVsZTsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0K
LQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNhbGxKU1dlYkFzc2VtYmx5TW9kdWxlOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1vZHVsZUNvbnN0cnVjdG9yLmgKaW5kZXggMTNhY2EzZjkwZWFkMzdjYTU0ZGI1YTlkY2I0
ZWEzNGVjMjU4YmVkZS4uZjc0YjY2NjVlYjRhMGIwNTA2N2E5MGYwMjE5MzZiZTNjZTExZjY3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1
bGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaApAQCAtNTQsOCArNTQsNiBAQCBjbGFzcyBXZWJBc3Nl
bWJseU1vZHVsZUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2
YXRlOgogICAgIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsK
LSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0
cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ckNvbnN0cnVjdG9yLmNwcAppbmRleCA2NDVmOTY3NWQ3MWJiZDE1YTA2MjhlNzg5MzVhYmVmZDI4
NjI5ZjdiLi5kYWJjN2UwOWM5M2YyNDQ1NzUyNzY5MDM1MWFjMjA1OTA4NTQ0ZDNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtODEsMjIgKzgxLDEwIEBAIHZv
aWQgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBXZWJBc3NlbWJseVJ1bnRpCiB9CiAKIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3I6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0s
IHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIGNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3IpCiB7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1
Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0
aW9uID0gY29uc3RydWN0SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjsKLSAgICByZXR1cm4gQ29u
c3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewot
ICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVy
cm9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlND
CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNv
bnN0cnVjdG9yLmgKaW5kZXggNzdmYjZlNDVhZWNjODYwMzU3ZTQ4MWFkOGMyZjU1YjhmYmRkOGU5
Mi4uOTRhZTZiOWE1ZjFjZWM1Nzc2OThmYzAzM2FiNDBmODJlMzMzMDI3MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25z
dHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
UnVudGltZUVycm9yQ29uc3RydWN0b3IuaApAQCAtNDksOCArNDksNiBAQCBjbGFzcyBXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewog
CiBwcml2YXRlOgogICAgIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IoVk0mLCBT
dHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggMmM1YmM3MDJmNzEwZjM1YmE0MjM1N2NmZDQ5YTE5NWZhY2Ew
MjI1Yi4uNTg0NGM5ZWEwODNhNmMyMjk3MTYzY2M2NzhiZTNhNDU4NjdkM2VkMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRh
YmxlQ29uc3RydWN0b3IuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgV2ViQXNzZW1ibHlUYWJsZUNv
bnN0cnVjdG9yKiBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0
cnVjdHUKIAogU3RydWN0dXJlKiBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOwogfQogCiB2b2lkIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlKiBwcm90b3R5cGUpCkBAIC0xMjgs
MjIgKzEyOCwxMCBAQCB2b2lkIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseVRhYmxlUHJvdG90eQogfQogCiBXZWJBc3NlbWJseVRh
YmxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2
bSwgc3RydWN0dXJlLCBjYWxsSlNXZWJBc3NlbWJseVRhYmxlLCBjb25zdHJ1Y3RKU1dlYkFzc2Vt
Ymx5VGFibGUpCiB7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVj
dG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERh
dGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dl
YkFzc2VtYmx5VGFibGU7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNh
bGxUeXBlIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxKU1dlYkFzc2VtYmx5VGFibGU7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9
IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25z
dHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJs
ZUNvbnN0cnVjdG9yLmgKaW5kZXggNWFkZWJiMzc2MTcxYzM0ZWMzN2JjOWQyMGUxN2IzYjZkNDVl
OTE1MS4uMzY0NjhkMGIzZWRkM2EwYjhlMGNhNmVkYmEyMGJjMGMxMjY5YmFjNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVj
dG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJs
ZUNvbnN0cnVjdG9yLmgKQEAgLTQ5LDggKzQ5LDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlUYWJsZUNv
bnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIFdl
YkFzc2VtYmx5VGFibGVDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBD
b25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwot
ICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmNwcAppbmRleCA5MTBhNzAyYmE5Y2ViYjJhZWFiZmU4M2UzNDFjN2JiOTE5ZmEzMTAxLi4yNTVk
ODQxNWNiMzJiZDdjZjhlYWY2OTJiMWM1ZDY3MTExYTE1ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5jcHAKQEAgLTQxLDkgKzQxLDExIEBAIHVzaW5nIG5hbWVzcGFj
ZSBCaW5kaW5nczsKIAogV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVNZXRo
b2Q6OnNfaW5mbyA9IHsgIlJ1bnRpbWVNZXRob2QiLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFJ1bnRpbWVNZXRob2QpIH07
CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSdW50aW1lTWV0aG9k
KEV4ZWNTdGF0ZSopOworCiBSdW50aW1lTWV0aG9kOjpSdW50aW1lTWV0aG9kKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBNZXRob2QqIG1ldGhvZCkK
ICAgICAvLyBDYWxsZXJzIHdpbGwgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2Jq
ZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBuYXRpdmUgb2JqZWN0ICJtZXRob2QiLgotICAgIDog
SW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmplY3QtPnZtKCksIHN0cnVjdHVyZSkKKyAgICA6IElu
dGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LT52bSgpLCBzdHJ1Y3R1cmUsIGNhbGxSdW50aW1l
TWV0aG9kLCBudWxscHRyKQogICAgICwgbV9tZXRob2QobWV0aG9kKQogewogfQpAQCAtMTEwLDEw
ICsxMTIsNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUnVudGlt
ZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCi1DYWxsVHlwZSBSdW50aW1lTWV0aG9kOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2Fs
bFJ1bnRpbWVNZXRob2Q7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCmluZGV4IDdjMjc1YWNjMGUzZTEyMmQ0ZDZj
N2ZiYjRlNTE2ZGMzNThmM2RkNmYuLjRkZjQzNTUwYjZlNDc0YzIxYWJiYzJhNzk4MWY3ZWEwYjJk
NDZiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCkBAIC01NiwxMyAr
NTYsMTIgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVudGltZU1ldGhvZCA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOwogICAgIH0KIAogcHJvdGVjdGVkOgogICAgIFJ1bnRpbWVNZXRob2QoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBCaW5kaW5nczo6TWV0aG9kKik7CiAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihWTSYsIGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE1ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QTWV0aG9kLmNwcAppbmRleCA2NmY1MGMzMzExYjNjMzkzOGJiMzBjNzQ5NmY1NjUx
Y2U5Y2UyYTZiLi5lNTYwODhmNzMyMThhNGJjN2YwOTA3ODY5ZTZkZGVmMWVhN2MwMTE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0
aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QTWV0aG9kLmNwcApAQCAtNDUsOCArNDUsMTAgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFM
TFlfREVTVFJVQ1RJQkxFKEpTTlBNZXRob2QpOwogCiBjb25zdCBDbGFzc0luZm8gSlNOUE1ldGhv
ZDo6c19pbmZvID0geyAiTlBNZXRob2QiLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTTlBNZXRob2QpIH07CiAKK3N0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxNZXRob2QoRXhlY1N0YXRlKik7CisK
IEpTTlBNZXRob2Q6OkpTTlBNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIE5QSWRlbnRpZmllciBucElkZW50aWZpZXIpCi0gICAgOiBJbnRl
cm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJu
YWxGdW5jdGlvbihnbG9iYWxPYmplY3QtPnZtKCksIHN0cnVjdHVyZSwgY2FsbE1ldGhvZCwgbnVs
bHB0cikKICAgICAsIG1fbnBJZGVudGlmaWVyKG5wSWRlbnRpZmllcikKIHsKIH0KQEAgLTg0LDEy
ICs4Niw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxNZXRob2Qo
RXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3Bl
KTsKIH0KIAotQ2FsbFR5cGUgSlNOUE1ldGhvZDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxNZXRo
b2Q7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCmlu
ZGV4IGFjZTdmMmRkMmUyYjIyM2Q4ZTBkN2QxMDQ5Nzk4NzBhNTAwYTk0ZGYuLjVjMjg0YzkwMThi
OGUwNTVmMDAwNzg5OTE1M2QyMTBlMzZlMWIwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKQEAgLTYyLDExICs2
Miw5IEBAIGNsYXNzIEpTTlBNZXRob2QgOiBwdWJsaWMgSlNDOjpJbnRlcm5hbEZ1bmN0aW9uIHsK
IAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkludGVy
bmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCi0gICAg
c3RhdGljIEpTQzo6Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNhbGxE
YXRhJik7Ci0gICAgCiAgICAgTlBJZGVudGlmaWVyIG1fbnBJZGVudGlmaWVyOwogfTsKIApkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA5YmE3
MzYzYjJhNjFiNmQ3ZDkyMWIyMjJhYmNiYmExYjA0YzM0ZGY4Li43NmM5OTk5N2ZmZmUzN2MxODQw
ZmUxMDI2MWMwZmE5YzMyZDI3MjVkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysg
Yi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTEwLTIyICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIEpJVCBjYWxsIGlubGlu
ZSBjYWNoZXMgc2hvdWxkIGNhY2hlIGNhbGxzIHRvIG9iamVjdHMgd2l0aCBnZXRDYWxsRGF0YS9n
ZXRDb25zdHJ1Y3REYXRhIHRyYXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDQ0NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2Fs
bC5qczogQWRkZWQuCisgICAgICAgICh0YXJnZXQpOgorICAgICAgICAqIG1pY3JvYmVuY2htYXJr
cy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRh
cmdldCk6CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1u
b3QtaGFuZGxlZC1jYWxsLmpzOiBBZGRlZC4KKyAgICAgICAgKHRhcmdldCk6CisgICAgICAgICog
bWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1ub3QtaGFuZGxlZC1jb25zdHJ1
Y3QuanM6IEFkZGVkLgorICAgICAgICAodGFyZ2V0KToKKyAgICAgICAgKiBzdHJlc3MvZGZnLWlu
dGVybmFsLWZ1bmN0aW9uLWNhbGwuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAodGFyZ2V0KToKKyAgICAgICAgKiBzdHJlc3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLWNv
bnN0cnVjdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0YXJnZXQp
OgorICAgICAgICAqIHN0cmVzcy9pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKiBzdHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY29u
c3RydWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKwogMjAxNy0xMC0yMCAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgdGVzdCBjYXNlIGZv
ciByMjE0MzM0LgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVy
bmFsLWZ1bmN0aW9uLWNhbGwuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJu
YWwtZnVuY3Rpb24tY2FsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDk3MzhiNWUyMDYxNGZlMTk3ZjVlZmNl
NzQ3ZjQ2ZjgxYzQ1NmM4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFy
a3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLWNhbGwuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlv
biB0YXJnZXQoZnVuYykKK3sKKyAgICByZXR1cm4gZnVuYygpOworfQorbm9JbmxpbmUodGFyZ2V0
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICB0YXJnZXQoQXJyYXkpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9u
LWNvbnN0cnVjdC5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5j
dGlvbi1jb25zdHJ1Y3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODgyYTAwMGIxYmE1NmJlOTVlYzczNTljNWI5
ZWM4Nzc3NDhhYzMyOAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtz
L2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMKQEAgLTAsMCArMSw4IEBACitmdW5j
dGlvbiB0YXJnZXQoZnVuYykKK3sKKyAgICByZXR1cm4gbmV3IGZ1bmMoKTsKK30KK25vSW5saW5l
KHRhcmdldCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCisgICAgdGFyZ2V0KEFy
cmF5KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1m
dW5jdGlvbi1ub3QtaGFuZGxlZC1jYWxsLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZn
LWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBiMjli
NDkzMDQwOGZmODFlZmRkYmE2ZmQyMTcyOWZjOGU4MmZhYQotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1ub3QtaGFuZGxlZC1j
YWxsLmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gdGFyZ2V0KGZ1bmMpCit7CisgICAgcmV0
dXJuIGZ1bmMoKTsKK30KK25vSW5saW5lKHRhcmdldCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MWU0OyArK2kpCisgICAgdGFyZ2V0KERhdGUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNvbnN0cnVjdC5qcyBi
L0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1ub3QtaGFuZGxl
ZC1jb25zdHJ1Y3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI2NmJiZTk4YWQ0MzRkZDQ4NTQyYWJhMWY2MjQ3
MDRkOTVmNjJlMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Rm
Zy1pbnRlcm5hbC1mdW5jdGlvbi1ub3QtaGFuZGxlZC1jb25zdHJ1Y3QuanMKQEAgLTAsMCArMSw4
IEBACitmdW5jdGlvbiB0YXJnZXQoZnVuYykKK3sKKyAgICByZXR1cm4gbmV3IGZ1bmMoKTsKK30K
K25vSW5saW5lKHRhcmdldCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpCisgICAg
dGFyZ2V0KERhdGUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGZnLWludGVybmFsLWZ1
bmN0aW9uLWNhbGwuanMgYi9KU1Rlc3RzL3N0cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2Fs
bC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMDQ4NTJhYWVhYWEyMjc4Nzg5MWU4MTE0OTU5YWE3ZGRhNTM4MGIy
Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGZnLWludGVybmFsLWZ1bmN0aW9u
LWNhbGwuanMKQEAgLTAsMCArMSwxNCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBl
Y3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9Citub0lubGluZShzaG91bGRCZSk7CisK
K2Z1bmN0aW9uIHRhcmdldChmdW5jKQoreworICAgIHJldHVybiBmdW5jKCk7Cit9Citub0lubGlu
ZSh0YXJnZXQpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQorICAgIHNob3VsZEJl
KHRhcmdldChBcnJheSkubGVuZ3RoLCAwKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Rm
Zy1pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9kZmctaW50
ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MTk0MmVmYmJkZmNhNDQw
MDNhZTJlNmM3YjhlMzcxMDNiYzBhODgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzCkBAIC0wLDAgKzEsMTQgQEAKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwp
OworfQorbm9JbmxpbmUoc2hvdWxkQmUpOworCitmdW5jdGlvbiB0YXJnZXQoZnVuYykKK3sKKyAg
ICByZXR1cm4gbmV3IGZ1bmMoKTsKK30KK25vSW5saW5lKHRhcmdldCk7CisKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMWU0OyArK2kpCisgICAgc2hvdWxkQmUodGFyZ2V0KEFycmF5KS5sZW5ndGgsIDAp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qcyBi
L0pTVGVzdHMvc3RyZXNzL2ludGVybmFsLWZ1bmN0aW9uLWNhbGwuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNi
ZmE3YjdlYWIyMzIyY2MwNjAwOWE4YjM2MjI5MWExNWU1ZDA1ZAotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2ludGVybmFsLWZ1bmN0aW9uLWNhbGwuanMKQEAgLTAsMCArMSw5IEBA
CitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0
dWFsKTsKK30KKwordmFyIGZ1bmMgPSBEYXRlOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsg
KytpKQorICAgIHNob3VsZEJlKHR5cGVvZiBmdW5jKCksICJzdHJpbmciKTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2ludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVjdC5qcyBiL0pTVGVzdHMv
c3RyZXNzL2ludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODUyYjkx
N2M5MDMxNTg4YTk2ZDRkYzM3YmM4YTMyMzc5NzJiMGQzCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzCkBAIC0wLDAgKzEsMTIg
QEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFs
ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBh
Y3R1YWwpOworfQorCit2YXIgZnVuYyA9IERhdGU7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKKyAgICB2YXIgZGF0ZSA9IG5ldyBmdW5jKCk7CisgICAgc2hvdWxkQmUodHlwZW9m
IGRhdGUsICJvYmplY3QiKTsKKyAgICBzaG91bGRCZShkYXRlIGluc3RhbmNlb2YgRGF0ZSwgdHJ1
ZSk7Cit9Cg==
</data>
<flag name="review"
          id="344149"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326102</attachid>
            <date>2017-11-05 22:31:41 -0800</date>
            <delta_ts>2017-11-05 22:33:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144458-20171106153140.patch</filename>
            <type>text/plain</type>
            <size>184901</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
Yjc5ZGUwOWRlYzc5ZGViNzdlMGZmNTZmZTY3YjkyMDBkMjhjOGY2Li4zZmFiY2RhMWY0YWVmZjBm
NzZlMmVhMDEwYjRlMmQzNzE2NTQ2ZDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNDUgQEAKKzIwMTctMTEtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2Fs
bHMgdG8gb2JqZWN0cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkg
b25seSBKU0Z1bmN0aW9uIGlzIGhhbmRsZWQgYnkgQ2FsbExpbmtJbmZvJ3MgY2FjaGluZyBtZWNo
YW5pc20uIFRoaXMgbWVhbnMgdGhhdAorICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uIGNhbGxzIGFy
ZSBub3QgY2FjaGVkIGFuZCB0aGV5IGFsd2F5cyBnbyB0byB0aGUgc2xvdyBwYXRoLiBUaGlzIGlz
IG5vdCBnb29kIGJlY2F1c2UKKworICAgICAgICAxLiBXZSBuZWVkIHRvIHF1ZXJ5IGdldENhbGxE
YXRhL2dldENvbnN0cnVjdERhdGEgZXZlcnkgdGltZSBpbiB0aGUgc2xvdyBwYXRoLgorICAgICAg
ICAyLiBDYWxsTGlua0luZm8gdGVsbHMgbm90aGluZyBpbiB0aGUgaGlnaGVyIHRpZXIgSklUcy4K
KworICAgICAgICBUaGlzIHBhdGNoIHN0YXJ0cyBoYW5kbGluZyBJbnRlcm5hbEZ1bmN0aW9uIGlu
IENhbGxMaW5rSW5mbydzIGNhY2hpbmcgbWVjaGFuaXNtLiBXZSBjaGFuZ2UgSW50ZXJuYWxGdW5j
dGlvbgorICAgICAgICB0byBob2xkIHBvaW50ZXJzIHRvIHRoZSBmdW5jdGlvbnMgZm9yIGNhbGwg
YW5kIGNvbnN0cnVjdC4gV2UgaGF2ZSBuZXcgc3R1YnMgdGhhdCBjYW4gY2FsbC9jb25zdHJ1Y3QK
KyAgICAgICAgSW50ZXJuYWxGdW5jdGlvbi4gQW5kIHdlIHJldHVybiB0aGlzIGNvZGUgcG9pbnRl
ciBhcyBhIHJlc3VsdCBvZiBzZXR1cCBjYWxsIHRvIHVzZSBDYWxsTGlua0luZm8gbWVjaGFuaXNt
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgY3JpdGljYWwgdG8gb3B0aW1pemluZyBkZXJpdmVk
IEFycmF5IGNvbnN0cnVjdGlvblsxXSBzaW5jZSBpdCBzdGFydHMgdXNpbmcgQ2FsbExpbmtJbmZv
CisgICAgICAgIGZvciBJbnRlcm5hbEZ1bmN0aW9uLiBQcmV2aW91c2x5IHdlIGRpZCBub3QgcmVj
b3JkIGFueSBpbmZvcm1hdGlvbiB0byBDYWxsTGlua0luZm8uIEV4Y2VwdCBmb3IgdGhlCisgICAg
ICAgIGNhc2UgdGhhdCBERkdCeXRlQ29kZVBhcnNlciBmaWd1cmVzIG91dCBJbnRlcm5hbEZ1bmN0
aW9uIGNvbnN0YW50LCB3ZSBjYW5ub3QgYXR0ZW1wdCB0byBlbWl0IERGRworICAgICAgICBub2Rl
cyBmb3IgdGhlc2UgSW50ZXJuYWxGdW5jdGlvbnMgc2luY2UgQ2FsbExpbmtJbmZvIHRlbGxzIHVz
IG5vdGhpbmcuCisKKyAgICAgICAgQXR0YWNoZWQgbWljcm9iZW5jaG1hcmtzIHNob3cgcGVyZm9y
bWFuY2UgaW1wcm92ZW1lbnQuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAgICAgICAgICBwYXRjaGVk
CisKKyAgICAgICAgZGZnLWludGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVjdCAgICAgICAgICAgICAg
ICAgMS42NDM5Ky0wLjA4MjYgICAgIF4gICAgICAxLjI4MjkrLTAuMDcyNyAgICAgICAgXiBkZWZp
bml0ZWx5IDEuMjgxM3ggZmFzdGVyCisgICAgICAgIGRmZy1pbnRlcm5hbC1mdW5jdGlvbi1ub3Qt
aGFuZGxlZC1jb25zdHJ1Y3QgICAgIDIuMTg2MistMC4xMzYxICAgICAgICAgICAgMi4wNjk2Ky0w
LjEyMDEgICAgICAgICAgbWlnaHQgYmUgMS4wNTY0eCBmYXN0ZXIKKyAgICAgICAgZGZnLWludGVy
bmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwgICAgICAgICAyMC43NTkyKy0wLjkwODUgICAg
ICAgICAgIDE5LjczNjkrLTAuNzkyMSAgICAgICAgICBtaWdodCBiZSAxLjA1MTh4IGZhc3Rlcgor
ICAgICAgICBkZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbCAgICAgICAgICAgICAgICAgICAgICAx
LjY4NTYrLTAuMDk2NyAgICAgXiAgICAgIDEuMjc3MSstMC4wNzQ0ICAgICAgICBeIGRlZmluaXRl
bHkgMS4zMTk4eCBmYXN0ZXIKKworICAgICAgICBbMV06IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzgwNjQKKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rp
b24uY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246OkpTQ2FsbGJhY2tGdW5j
dGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tGdW5jdGlvbjo6Z2V0Q2FsbERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaDoKKyAgICAgICAgKEpT
Qzo6SlNDYWxsYmFja0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIEFQSS9P
YmpDQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpPYmpDQ2FsbGJhY2tGdW5jdGlv
bjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBBUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24u
bW06CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9uOjpPYmpDQ2FsbGJhY2tGdW5j
dGlvbik6CisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxsRGF0YSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDb25zdHJ1
Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHA6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJpbnRDYWxsT3ApOgorICAg
ICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0Nh
bGxMaW5rSW5mby5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6c2V0Q2FsbGVlKToK
KyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjYWxsZWUpOgorICAgICAgICAoSlNDOjpDYWxs
TGlua0luZm86OnNldExhc3RTZWVuQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZv
OjpsYXN0U2VlbkNhbGxlZSk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6dmlzaXRXZWFr
KToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAgICAgICAgKiBieXRlY29k
ZS9DYWxsTGlua1N0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OkNhbGxMaW5rU3RhdHVzOjpjb21w
dXRlRnJvbUNhbGxMaW5rSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvTExJbnRDYWxsTGlua0lu
Zm8uaDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJ
VFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkpJVFRodW5rczo6Y3RpSW50ZXJuYWxGdW5jdGlv
bkNhbGwpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aUludGVybmFsRnVuY3Rpb25Db25z
dHJ1Y3QpOgorICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAgICAgKiBqaXQvUmVwYXRj
aC5jcHA6CisgICAgICAgIChKU0M6OmxpbmtGb3IpOgorICAgICAgICAoSlNDOjpsaW5rUG9seW1v
cnBoaWNDYWxsKToKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5oOgorICAgICAgICAqIGppdC9UaHVu
a0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjp2aXJ0dWFsVGh1bmtGb3IpOgorICAgICAg
ICAoSlNDOjpuYXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVDYWxsR2Vu
ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bmF0aXZlVGFpbENhbGxHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjpuYXRpdmVUYWlsQ2FsbFdpdGhvdXRTYXZlZFRhZ3NHZW5lcmF0b3IpOgorICAgICAg
ICAoSlNDOjpuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjppbnRlcm5h
bEZ1bmN0aW9uQ2FsbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmludGVybmFsRnVuY3Rpb25D
b25zdHJ1Y3RHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuaDoKKyAg
ICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50Ojpz
ZXRVcENhbGwpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAg
ICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0
YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0b3I6OmdldENhbGxEYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaDoKKyAgICAg
ICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkFzeW5j
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KEpTQzo6QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
IChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmg6
CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5
bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6QXN5bmNHZW5l
cmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6
OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENv
bnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXN5bmNHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xl
YW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNhbGxCb29sZWFuQ29uc3RydWN0b3Ip
OgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OkJvb2xlYW5Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChKU0M6OkJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpCb29sZWFuQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlND
OjpCb29sZWFuQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGlt
ZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OkRh
dGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3Ry
dWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0Q2Fs
bERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmg6Cisg
ICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmg6CisgICAgICAgIChKU0M6OlN0cmljdE1vZGVUeXBlRXJyb3JGdW5j
dGlvbjo6U3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6U3RyaWN0
TW9kZVR5cGVFcnJvckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpT
dHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OmdldENhbGxEYXRhKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpFcnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpT
Qzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkVycm9yQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAg
KiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpGdW5jdGlvbkNv
bnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24pOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RE
YXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2Fs
bERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5o
OgorICAgICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpj
YWxsRnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlvblByb3RvdHlwZTo6
RnVuY3Rpb25Qcm90b3R5cGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlvblByb3RvdHlwZTo6Z2V0
Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
aDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6Cisg
ICAgICAgICogcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6R2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpHZW5lcmF0b3JGdW5j
dGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6R2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0
aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpnZXRDYWxs
RGF0YSk6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEp
OgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJ
bnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpJbnRlcm5h
bEZ1bmN0aW9uOjpuYXRpdmVGdW5jdGlvbkZvcik6CisgICAgICAgIChKU0M6OkludGVybmFsRnVu
Y3Rpb246Om9mZnNldE9mTmF0aXZlRnVuY3Rpb25Gb3IpOgorICAgICAgICAqIHJ1bnRpbWUvSW50
bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpJbnRsQ29sbGF0b3JDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yQ29u
c3RydWN0b3I6OkludGxDb2xsYXRvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SW50bENv
bGxhdG9yQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SW50
bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChK
U0M6OkludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpJbnRsRGF0ZVRpbWVGb3JtYXRDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9y
bWF0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVyRm9y
bWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29u
c3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcjo6SlNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6
OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVy
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpKU0dlbmVyaWNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpK
U0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdDbGFzcz46OmdldENvbnN0cnVj
dERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9yPFZpZXdDbGFzcz46OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL0pTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpK
U0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAo
SlNDOjpKU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yOjpKU0ludGVybmFsUHJvbWlzZUNvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvcjo6Z2V0
Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTSW50ZXJuYWxQcm9taXNl
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
SW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlz
ZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpKU1By
b21pc2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZUNvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlz
ZUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpT
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKToK
KyAgICAgICAgKEpTQzo6SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAoSlNDOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRB
cnJheVZpZXdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3IpOgorICAg
ICAgICAoSlNDOjpNYXBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Ok1hcENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpNYXBDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6TWFwQ29uc3RydWN0b3I6Ok1h
cENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpOYXRp
dmVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9y
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL051bGxHZXR0ZXJGdW5j
dGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51bGxHZXR0ZXJGdW5jdGlvbjo6TnVsbEdldHRlckZ1
bmN0aW9uKToKKyAgICAgICAgKEpTQzo6TnVsbEdldHRlckZ1bmN0aW9uOjpnZXRDYWxsRGF0YSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51bGxHZXR0ZXJGdW5jdGlvbjo6Z2V0Q29uc3RydWN0
RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uaDoK
KyAgICAgICAgKEpTQzo6TnVsbEdldHRlckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAg
ICAgICAoSlNDOjpOdWxsR2V0dGVyRnVuY3Rpb246Ok51bGxHZXR0ZXJGdW5jdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246Ok51bGxTZXR0ZXJGdW5jdGlvbik6CisgICAgICAgIChK
U0M6Ok51bGxTZXR0ZXJGdW5jdGlvbjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpOdWxsU2V0dGVyRnVuY3Rpb246OmdldENvbnN0cnVjdERhdGEpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmg6CisgICAgICAgIChKU0M6Ok51bGxT
ZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6TnVsbFNldHRl
ckZ1bmN0aW9uOjpOdWxsU2V0dGVyRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rv
cjo6TnVtYmVyQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdFdpdGhOdW1iZXJDb25zdHJ1Y3Rvcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RE
YXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6TnVtYmVyQ29uc3RydWN0b3I6OmdldENhbGxE
YXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmg6Cisg
ICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RD
b25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpPYmplY3RDb25z
dHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Ok9iamVj
dENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpQcm94eUNvbnN0cnVjdG9yOjpQcm94eUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKEpTQzo6UHJveHlDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OlByb3h5Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6UHJveHlD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1Byb3h5UmV2
b2tlLmNwcDoKKyAgICAgICAgKEpTQzo6UHJveHlSZXZva2U6OlByb3h5UmV2b2tlKToKKyAgICAg
ICAgKEpTQzo6UHJveHlSZXZva2U6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1Byb3h5UmV2b2tlLmg6CisgICAgICAgIChKU0M6OlByb3h5UmV2b2tlOjpjcmVhdGVT
dHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6UmVnRXhwQ29uc3RydWN0b3IpOgorICAgICAg
ICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpSZWdF
eHBDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1NldENv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U2V0Q29uc3RydWN0b3I6OlNldENvbnN0cnVj
dG9yKToKKyAgICAgICAgKEpTQzo6U2V0Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpTZXRDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6
U2V0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OlNldENvbnN0
cnVjdG9yOjpTZXRDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TdHJp
bmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpTdHJp
bmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDb25z
dHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U3RyaW5nQ29uc3RydWN0b3I6Omdl
dENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpT
eW1ib2xDb25zdHJ1Y3Rvcjo6U3ltYm9sQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpTeW1i
b2xDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OlN5bWJvbENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpTeW1ib2xDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAg
KEpTQzo6Vk06OlZNKToKKyAgICAgICAgKEpTQzo6Vk06OmdldENUSUludGVybmFsRnVuY3Rpb25U
cmFtcG9saW5lRm9yKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgICogcnVudGlt
ZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpXZWFrTWFwQ29uc3RydWN0
b3I6OldlYWtNYXBDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rv
cjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldlYWtNYXBDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01h
cENvbnN0cnVjdG9yLmg6CisgICAgICAgIChKU0M6OldlYWtNYXBDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6V2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29u
c3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha1NldENvbnN0cnVjdG9yOjpXZWFrU2V0Q29uc3RydWN0
b3IpOgorICAgICAgICAoSlNDOjpXZWFrU2V0Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXZWFrU2V0Q29uc3RydWN0b3I6OmdldENhbGxEYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAoSlNDOjpXZWFrU2V0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
IChKU0M6OldlYWtTZXRDb25zdHJ1Y3Rvcjo6V2Vha1NldENvbnN0cnVjdG9yKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0
cnVjdG9yOjpXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKEpT
Qzo6V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5
SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5SW5zdGFu
Y2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1i
bHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IpOgor
ICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmdldENvbnN0cnVj
dERhdGEpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUluc3RhbmNlQ29uc3Ry
dWN0b3I6OmdldENhbGxEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2Vt
Ymx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlM
aW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TGlua0Vy
cm9yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2Vt
Ymx5TGlua0Vycm9yQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3Ip
OgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25z
dHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlMaW5rRXJyb3JD
b25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNz
ZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TWVt
b3J5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2Vt
Ymx5TWVtb3J5Q29uc3RydWN0b3I6OldlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IpOgorICAg
ICAgICAoSlNDOjpXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6
Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNZW1v
cnlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlQ29uc3Ry
dWN0b3I6OldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpXZWJB
c3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6V2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBE
ZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29u
c3RydWN0b3I6OldlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IpOgorICAgICAgICAo
SlNDOjpXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1
Y3Rvcjo6Z2V0Q2FsbERhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1i
bHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlUYWJsZUNv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVRh
YmxlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChK
U0M6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERh
dGEpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVj
dG9yLmg6CisKIDIwMTctMTEtMDMgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+
CiAKICAgICAgICAgVGhlIEFic3RyYWN0IEludGVycHJldGVyIG5lZWRzIHRvIGNoYW5nZSBzaW1p
bGFyIHRvIGNsb2JiZXJpemUoKSBpbiByMjI0MzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTY3MzVmNGRkZDg4
ZjZjNjBiNWE5NjRlYzFkN2QwYzdmNGJiOWZhOS4uZWE4ODI4OTE2M2E4YjYxYTM4YjA4MWQ5MWI0
ZGNmMWE3NThiODU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTExLTA1ICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIEpJVCBjYWxs
IGlubGluZSBjYWNoZXMgc2hvdWxkIGNhY2hlIGNhbGxzIHRvIG9iamVjdHMgd2l0aCBnZXRDYWxs
RGF0YS9nZXRDb25zdHJ1Y3REYXRhIHRyYXBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5jcHA6CisgICAgICAg
IChKU0M6OlJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2QpOgorICAgICAgICAoSlNDOjpSdW50
aW1lTWV0aG9kOjpnZXRDYWxsRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfbWV0aG9kLmg6CisKIDIwMTctMTEtMDUgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVq
aWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBGaXggYnVpbGQgYWZ0ZXIgcjIyNDQ2
MwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzYjZhMDBhMTcxOGVlZDM4Yzg4YTRmNTBiZmZiN2QxZmQ2M2NhZDdmLi5h
NjQ0MjI3NGJhM2M3YzRmMTkxOTk2NjcxNTRmODYwNzI3ZDA4ZGE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDE3LTExLTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgorCisgICAgICAgIEpJVCBjYWxsIGlubGluZSBjYWNoZXMgc2hvdWxkIGNhY2hlIGNhbGxz
IHRvIG9iamVjdHMgd2l0aCBnZXRDYWxsRGF0YS9nZXRDb25zdHJ1Y3REYXRhIHRyYXBzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ0NTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE1l
dGhvZDo6SlNOUE1ldGhvZCk6CisgICAgICAgIChXZWJLaXQ6OkpTTlBNZXRob2Q6OmdldENhbGxE
YXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE1ldGhvZC5oOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0aG9kOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorCiAyMDE3LTExLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjIzNzE4KTogTGVha2luZyBXZWJQcm9jZXNzUG9vbCBhZnRlciByZWNv
bmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1
bmN0aW9uLmNwcAppbmRleCA2ODRlY2U2MzBmYTFjYTgwYTdjMzhlY2NhY2Q0MGU3ODcyZWNmODEw
Li43OGNhNTViYjIzZWQ2Y2ZkYjlkOTFkZTQ1ODc2ZWNlNzY3NjM0NzY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCkBAIC00NCw3ICs0
NCw3IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShKU0NhbGxiYWNr
RnVuY3Rpb24pOwogY29uc3QgQ2xhc3NJbmZvIEpTQ2FsbGJhY2tGdW5jdGlvbjo6c19pbmZvID0g
eyAiQ2FsbGJhY2tGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNDYWxsYmFja0Z1bmN0aW9uKSB9OwogCiBK
U0NhbGxiYWNrRnVuY3Rpb246OkpTQ2FsbGJhY2tGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBKU09iamVjdENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2sgY2FsbGJhY2spCi0gICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9u
KHZtLCBzdHJ1Y3R1cmUsIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGw8SlNDYWxsYmFja0Z1bmN0
aW9uPiwgbnVsbHB0cikKICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiB7CiB9CkBAIC02Mywx
MCArNjMsNCBAQCBKU0NhbGxiYWNrRnVuY3Rpb24qIEpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRl
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIHJldHVybiBmdW5jdGlvbjsK
IH0KIAotQ2FsbFR5cGUgSlNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gQVBJ
Q2FsbGJhY2tGdW5jdGlvbjo6Y2FsbDxKU0NhbGxiYWNrRnVuY3Rpb24+OwotICAgIHJldHVybiBD
YWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAppbmRleCBhNGZkZDA2OGZlZjQ4YjQ4
YWQ2ZGE0OTQ0NGI1YjVkNDBjMGNkYTY1Li40YzU0YjgwZjU5Y2ViOTBiMzIxN2Q3NzhiZTljZGMx
ODBmYzQ0ZjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1
bmN0aW9uLmgKQEAgLTQ0LDE1ICs0NCwxMyBAQCBjbGFzcyBKU0NhbGxiYWNrRnVuY3Rpb24gOiBw
dWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgLy8gcmVmYWN0b3IgdGhlIGNvZGUgc28gdGhp
cyBvdmVycmlkZSBpc24ndCBuZWNlc3NhcnkKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90bywgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsgCiAgICAgfQogCiBwcml2YXRlOgogICAgIEpTQ2FsbGJhY2tGdW5jdGlvbihWTSYs
IFN0cnVjdHVyZSosIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayk7CiAgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihWTSYsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKLSAgICBzdGF0aWMgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLQogICAgIEpTT2JqZWN0Q2Fs
bEFzRnVuY3Rpb25DYWxsYmFjayBmdW5jdGlvbkNhbGxiYWNrKCkgeyByZXR1cm4gbV9jYWxsYmFj
azsgfQogCiAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrIG1fY2FsbGJhY2s7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9u
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLmgKaW5k
ZXggNGQ1YjczNjhkM2M3YzEwM2I0ZDRlNjNmYThlNjI0NWJjZjAyYzZiMS4uZGVhNmNjNDRjYzU1
Yjk1OTcxNDI5ODUyMjUwOTI2MzVkODllZGI3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaApAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBP
YmpDQ2FsbGJhY2tGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChnbG9i
YWxPYmplY3QpOwotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CiAgICAgfQogCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKQEAgLTY1LDkg
KzY1LDYgQEAgY2xhc3MgT2JqQ0NhbGxiYWNrRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5j
dGlvbiB7CiAgICAgT2JqQ0NhbGxiYWNrRnVuY3Rpb24oVk0mLCBTdHJ1Y3R1cmUqLCBKU09iamVj
dENhbGxBc0Z1bmN0aW9uQ2FsbGJhY2ssIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFj
aywgc3RkOjp1bmlxdWVfcHRyPE9iakNDYWxsYmFja0Z1bmN0aW9uSW1wbD4pOwogCiBwcml2YXRl
OgotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwot
ICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3Ry
dWN0RGF0YSYpOwotCiAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrIGZ1bmN0aW9u
Q2FsbGJhY2soKSB7IHJldHVybiBtX2Z1bmN0aW9uQ2FsbGJhY2s7IH0KICAgICBKU09iamVjdENh
bGxBc0NvbnN0cnVjdG9yQ2FsbGJhY2sgY29uc3RydWN0Q2FsbGJhY2soKSB7IHJldHVybiBtX2Nv
bnN0cnVjdENhbGxiYWNrOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09i
akNDYWxsYmFja0Z1bmN0aW9uLm1tCmluZGV4IGZiOTNhODYwYWViZjJmNDkwYjA3YzI1ZmY3NTAz
NTMyYTRiNzdhZDMuLjYzZjkyMGVkYjIyNGYxYWRkMWQwOWI3YTExMjM3YWQ2NWExODc5MjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24u
bW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5t
bQpAQCAtNTA2LDcgKzUwNiw3IEBAIHN0YXRpYyBKU09iamVjdFJlZiBvYmpDQ2FsbGJhY2tGdW5j
dGlvbkNhbGxBc0NvbnN0cnVjdG9yKEpTQ29udGV4dFJlZiBjYWxsZXJDb250CiBjb25zdCBKU0M6
OkNsYXNzSW5mbyBPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6c19pbmZvID0geyAiQ2FsbGJhY2tGdW5j
dGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoT2JqQ0NhbGxiYWNrRnVuY3Rpb24pIH07CiAKIE9iakNDYWxsYmFja0Z1bmN0aW9uOjpPYmpD
Q2FsbGJhY2tGdW5jdGlvbihKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
SlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrIGZ1bmN0aW9uQ2FsbGJhY2ssIEpTT2JqZWN0
Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBjb25zdHJ1Y3RDYWxsYmFjaywgc3RkOjp1bmlxdWVf
cHRyPE9iakNDYWxsYmFja0Z1bmN0aW9uSW1wbD4gaW1wbCkKLSAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2Fs
bDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj4sIGltcGwtPmlzQ29uc3RydWN0aWJsZSgpID8gQVBJQ2Fs
bGJhY2tGdW5jdGlvbjo6Y29uc3RydWN0PE9iakNDYWxsYmFja0Z1bmN0aW9uPiA6IG51bGxwdHIp
CiAgICAgLCBtX2Z1bmN0aW9uQ2FsbGJhY2soZnVuY3Rpb25DYWxsYmFjaykKICAgICAsIG1fY29u
c3RydWN0Q2FsbGJhY2soY29uc3RydWN0Q2FsbGJhY2spCiAgICAgLCBtX2ltcGwoV1RGTW92ZShp
bXBsKSkKQEAgLTUyOCwyMiArNTI4LDYgQEAgdm9pZCBPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6ZGVz
dHJveShKU0NlbGwqIGNlbGwpCiAgICAgZnVuY3Rpb24ufk9iakNDYWxsYmFja0Z1bmN0aW9uKCk7
CiB9CiAKLQotQ2FsbFR5cGUgT2JqQ0NhbGxiYWNrRnVuY3Rpb246OmdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24g
PSBBUElDYWxsYmFja0Z1bmN0aW9uOjpjYWxsPE9iakNDYWxsYmFja0Z1bmN0aW9uPjsKLSAgICBy
ZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KLUNvbnN0cnVjdFR5cGUgT2JqQ0NhbGxiYWNrRnVu
Y3Rpb246OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiBjZWxsLCBDb25zdHJ1Y3REYXRhJiBjb25z
dHJ1Y3REYXRhKQotewotICAgIE9iakNDYWxsYmFja0Z1bmN0aW9uKiBjYWxsYmFjayA9IGpzQ2Fz
dDxPYmpDQ2FsbGJhY2tGdW5jdGlvbio+KGNlbGwpOwotICAgIGlmICghY2FsbGJhY2stPmltcGwo
KS0+aXNDb25zdHJ1Y3RpYmxlKCkpCi0gICAgICAgIHJldHVybiBCYXNlOjpnZXRDb25zdHJ1Y3RE
YXRhKGNlbGwsIGNvbnN0cnVjdERhdGEpOwotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0
aW9uID0gQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y29uc3RydWN0PE9iakNDYWxsYmFja0Z1bmN0aW9u
PjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQogU3RyaW5nIE9iakNDYWxs
YmFja0Z1bmN0aW9uSW1wbDo6bmFtZSgpCiB7CiAgICAgaWYgKG1fdHlwZSA9PSBDYWxsYmFja0lu
aXRNZXRob2QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVEdW1wZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
RHVtcGVyLmNwcAppbmRleCA5YzZmNWQzYzIzNTliYWY0OTU4OTI0NzIxMDZiZjVjNzlhMzM3ZDdj
Li40Zjk4MzRlZjRhYmQ1YTcxOTAyMGI4YThkODg4OGFjZjVhNzQwYTk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKQEAgLTU3OCwx
NiArNTc4LDE5IEBAIHZvaWQgQnl0ZWNvZGVEdW1wZXI8QmxvY2s+OjpwcmludENhbGxPcChQcmlu
dFN0cmVhbSYgb3V0LCBpbnQgbG9jYXRpb24sIGNvbnN0IHR5CiAgICAgaWYgKGNhY2hlRHVtcE1v
ZGUgPT0gRHVtcENhY2hlcykgewogICAgICAgICBMTEludENhbGxMaW5rSW5mbyogY2FsbExpbmtJ
bmZvID0gZ2V0Q2FsbExpbmtJbmZvKGl0WzFdKTsKICAgICAgICAgaWYgKGNhbGxMaW5rSW5mby0+
bGFzdFNlZW5DYWxsZWUpIHsKLSAgICAgICAgICAgIG91dC5wcmludGYoCi0gICAgICAgICAgICAg
ICAgIiBsbGludCglcCwgZXhlYyAlcCkiLAotICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+
bGFzdFNlZW5DYWxsZWUuZ2V0KCksCi0gICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5sYXN0
U2VlbkNhbGxlZS0+ZXhlY3V0YWJsZSgpKTsKKyAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3Qg
PSBjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLmdldCgpOworICAgICAgICAgICAgaWYgKGF1
dG8qIGZ1bmN0aW9uID0ganNEeW5hbWljQ2FzdDxKU0Z1bmN0aW9uKj4oKnZtKCksIG9iamVjdCkp
CisgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiIGxsaW50KCVwLCBleGVjICVwKSIsIGZ1bmN0
aW9uLCBmdW5jdGlvbi0+ZXhlY3V0YWJsZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBvdXQucHJpbnRmKCIgbGxpbnQoJXApIiwgb2JqZWN0KTsKICAgICAgICAgfQogI2lm
IEVOQUJMRShKSVQpCiAgICAgICAgIGlmIChDYWxsTGlua0luZm8qIGluZm8gPSBtYXAuZ2V0KENv
ZGVPcmlnaW4obG9jYXRpb24pKSkgewotICAgICAgICAgICAgSlNGdW5jdGlvbiogdGFyZ2V0ID0g
aW5mby0+bGFzdFNlZW5DYWxsZWUoKTsKLSAgICAgICAgICAgIGlmICh0YXJnZXQpCi0gICAgICAg
ICAgICAgICAgb3V0LnByaW50ZigiIGppdCglcCwgZXhlYyAlcCkiLCB0YXJnZXQsIHRhcmdldC0+
ZXhlY3V0YWJsZSgpKTsKKyAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBpbmZvLT5sYXN0
U2VlbkNhbGxlZSgpOworICAgICAgICAgICAgaWYgKGF1dG8qIGZ1bmN0aW9uID0ganNEeW5hbWlj
Q2FzdDxKU0Z1bmN0aW9uKj4oKnZtKCksIG9iamVjdCkpCisgICAgICAgICAgICAgICAgb3V0LnBy
aW50ZigiIGppdCglcCwgZXhlYyAlcCkiLCBmdW5jdGlvbiwgZnVuY3Rpb24tPmV4ZWN1dGFibGUo
KSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3V0LnByaW50ZigiIGppdCgl
cCkiLCBvYmplY3QpOwogICAgICAgICB9CiAKICAgICAgICAgZHVtcENhbGxMaW5rU3RhdHVzKG91
dCwgbG9jYXRpb24sIG1hcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVMaXN0Lmpzb24KaW5kZXggMzZjZjU3ZWUzMjVlZmYzMjdjYzFhZDcxZTI0ZWVhYzc5
YWViZmU1ZC4uMDkwMDVlYWRmMjA5ZTVkMjU1ZTljYTRiZmY4MzJjNWQ0MjM4ZGFlNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAt
MjE5LDYgKzIxOSw4IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJsbGludF90aHJvd19kdXJp
bmdfY2FsbF90cmFtcG9saW5lIiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAibGxpbnRfbmF0
aXZlX2NhbGxfdHJhbXBvbGluZSIgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogImxsaW50X25h
dGl2ZV9jb25zdHJ1Y3RfdHJhbXBvbGluZSIgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogImxs
aW50X2ludGVybmFsX2Z1bmN0aW9uX2NhbGxfdHJhbXBvbGluZSIgfSwKKyAgICAgICAgICAgIHsg
Im5hbWUiIDogImxsaW50X2ludGVybmFsX2Z1bmN0aW9uX2NvbnN0cnVjdF90cmFtcG9saW5lIiB9
LAogICAgICAgICAgICAgeyAibmFtZSIgOiAiaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24iIH0KICAg
ICAgICAgXQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHAKaW5kZXggM2FjYzVmYmUzZmVlYzUwMWM3ZWRjNTRkZWM4OTY2ODZjM2M3YTlh
NS4uZjIzNjAxNDhkOTcxYTlmYjkwMDJkN2E3N2Y5YjFiY2Q2YTg5NmZjOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKQEAgLTEyMSw3ICsx
MjEsNyBAQCBDb2RlTG9jYXRpb25MYWJlbCBDYWxsTGlua0luZm86OnNsb3dQYXRoU3RhcnQoKQog
ICAgIHJldHVybiBtX2hvdFBhdGhCZWdpbk9yU2xvd1BhdGhTdGFydDsKIH0KIAotdm9pZCBDYWxs
TGlua0luZm86OnNldENhbGxlZShWTSYgdm0sIEpTQ2VsbCogb3duZXIsIEpTRnVuY3Rpb24qIGNh
bGxlZSkKK3ZvaWQgQ2FsbExpbmtJbmZvOjpzZXRDYWxsZWUoVk0mIHZtLCBKU0NlbGwqIG93bmVy
LCBKU09iamVjdCogY2FsbGVlKQogewogICAgIFJFTEVBU0VfQVNTRVJUKCFpc0RpcmVjdCgpKTsK
ICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRjaFBvaW50ZXIoaG90UGF0aEJlZ2luKCksIGNhbGxl
ZSk7CkBAIC0xMzcsMTAgKzEzNywxMCBAQCB2b2lkIENhbGxMaW5rSW5mbzo6Y2xlYXJDYWxsZWUo
KQogICAgIG1faXNMaW5rZWQgPSBmYWxzZTsKIH0KIAotSlNGdW5jdGlvbiogQ2FsbExpbmtJbmZv
OjpjYWxsZWUoKQorSlNPYmplY3QqIENhbGxMaW5rSW5mbzo6Y2FsbGVlKCkKIHsKICAgICBSRUxF
QVNFX0FTU0VSVCghaXNEaXJlY3QoKSk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0Z1bmN0aW9uKj4o
bV9jYWxsZWVPckNvZGVCbG9jay5nZXQoKSk7CisgICAgcmV0dXJuIGpzQ2FzdDxKU09iamVjdCo+
KG1fY2FsbGVlT3JDb2RlQmxvY2suZ2V0KCkpOwogfQogCiB2b2lkIENhbGxMaW5rSW5mbzo6c2V0
Q29kZUJsb2NrKFZNJiB2bSwgSlNDZWxsKiBvd25lciwgRnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVC
bG9jaykKQEAgLTE2Myw3ICsxNjMsNyBAQCBGdW5jdGlvbkNvZGVCbG9jayogQ2FsbExpbmtJbmZv
Ojpjb2RlQmxvY2soKQogICAgIHJldHVybiBqc0Nhc3Q8RnVuY3Rpb25Db2RlQmxvY2sqPihtX2Nh
bGxlZU9yQ29kZUJsb2NrLmdldCgpKTsKIH0KIAotdm9pZCBDYWxsTGlua0luZm86OnNldExhc3RT
ZWVuQ2FsbGVlKFZNJiB2bSwgY29uc3QgSlNDZWxsKiBvd25lciwgSlNGdW5jdGlvbiogY2FsbGVl
KQordm9pZCBDYWxsTGlua0luZm86OnNldExhc3RTZWVuQ2FsbGVlKFZNJiB2bSwgY29uc3QgSlND
ZWxsKiBvd25lciwgSlNPYmplY3QqIGNhbGxlZSkKIHsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNE
aXJlY3QoKSk7CiAgICAgbV9sYXN0U2VlbkNhbGxlZU9yRXhlY3V0YWJsZS5zZXQodm0sIG93bmVy
LCBjYWxsZWUpOwpAQCAtMTc1LDEwICsxNzUsMTAgQEAgdm9pZCBDYWxsTGlua0luZm86OmNsZWFy
TGFzdFNlZW5DYWxsZWUoKQogICAgIG1fbGFzdFNlZW5DYWxsZWVPckV4ZWN1dGFibGUuY2xlYXIo
KTsKIH0KIAotSlNGdW5jdGlvbiogQ2FsbExpbmtJbmZvOjpsYXN0U2VlbkNhbGxlZSgpCitKU09i
amVjdCogQ2FsbExpbmtJbmZvOjpsYXN0U2VlbkNhbGxlZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NF
UlQoIWlzRGlyZWN0KCkpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNGdW5jdGlvbio+KG1fbGFzdFNl
ZW5DYWxsZWVPckV4ZWN1dGFibGUuZ2V0KCkpOworICAgIHJldHVybiBqc0Nhc3Q8SlNPYmplY3Qq
PihtX2xhc3RTZWVuQ2FsbGVlT3JFeGVjdXRhYmxlLmdldCgpKTsKIH0KIAogYm9vbCBDYWxsTGlu
a0luZm86OmhhdmVMYXN0U2VlbkNhbGxlZSgpCkBAIC0yMzUsMTQgKzIzNSwyMCBAQCB2b2lkIENh
bGxMaW5rSW5mbzo6dmlzaXRXZWFrKFZNJiB2bSkKICAgICAgICAgICAgICAgICAgICAgICAgIHBv
aW50ZXJEdW1wKGNvZGVCbG9jaygpKSwgIikuXG4iKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NS
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygKLSAgICAgICAgICAgICAgICAgICAg
ICAgICJDbGVhcmluZyBjYWxsIHRvICIsCi0gICAgICAgICAgICAgICAgICAgICAgICBSYXdQb2lu
dGVyKGNhbGxlZSgpKSwgIiAoIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxlZSgpLT5l
eGVjdXRhYmxlKCktPmhhc2hGb3Ioc3BlY2lhbGl6YXRpb25LaW5kKCkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIikuXG4iKTsKKyAgICAgICAgICAgICAgICBpZiAoY2FsbGVlKCktPnR5cGUo
KSA9PSBKU0Z1bmN0aW9uVHlwZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6
dmVyYm9zZU9TUigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJDbGVhcmluZyBjYWxsIHRvICIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmF3UG9pbnRlcihjYWxsZWUoKSksICIgKCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KGNhbGxlZSgpKS0+ZXhlY3V0
YWJsZSgpLT5oYXNoRm9yKHNwZWNpYWxpemF0aW9uS2luZCgpKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiKS5cbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIGhhbmRsZVNwZWNpZmljQ2FsbGVlKHN0YXRpY19jYXN0PEpTRnVuY3Rpb24qPihjYWxs
ZWUoKSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9n
KCJDbGVhcmluZyBjYWxsIHRvICIsIFJhd1BvaW50ZXIoY2FsbGVlKCkpLCAiLlxuIik7CisgICAg
ICAgICAgICAgICAgICAgIG1fY2xlYXJlZEJ5R0MgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBoYW5kbGVTcGVjaWZpY0NhbGxlZShjYWxsZWUoKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB1bmxpbmsodm0pOwogICAgICAgICB9IGVsc2UgaWYgKGlzRGly
ZWN0KCkgJiYgIUhlYXA6OmlzTWFya2VkKG1fbGFzdFNlZW5DYWxsZWVPckV4ZWN1dGFibGUuZ2V0
KCkpKSB7CkBAIC0yNTgsNyArMjY0LDEwIEBAIHZvaWQgQ2FsbExpbmtJbmZvOjp2aXNpdFdlYWso
Vk0mIHZtKQogICAgICAgICB9CiAgICAgfQogICAgIGlmICghaXNEaXJlY3QoKSAmJiBoYXZlTGFz
dFNlZW5DYWxsZWUoKSAmJiAhSGVhcDo6aXNNYXJrZWQobGFzdFNlZW5DYWxsZWUoKSkpIHsKLSAg
ICAgICAgaGFuZGxlU3BlY2lmaWNDYWxsZWUobGFzdFNlZW5DYWxsZWUoKSk7CisgICAgICAgIGlm
IChsYXN0U2VlbkNhbGxlZSgpLT50eXBlKCkgPT0gSlNGdW5jdGlvblR5cGUpCisgICAgICAgICAg
ICBoYW5kbGVTcGVjaWZpY0NhbGxlZShqc0Nhc3Q8SlNGdW5jdGlvbio+KGxhc3RTZWVuQ2FsbGVl
KCkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jbGVhcmVkQnlHQyA9IHRydWU7CiAg
ICAgICAgIGNsZWFyTGFzdFNlZW5DYWxsZWUoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXggOTFkM2RkOGY3NWIxMjI4M2Uw
YWFkZDc4OGUwZjk2NzU5MGY2ZGU4MS4uNWJjMmM0NGY0NTg0ODI1MGI3OGE4ODU0MGEzODBiOGQw
MDYwMDhlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0lu
Zm8uaApAQCAtMTkxLDE3ICsxOTEsMTcgQEAgY2xhc3MgQ2FsbExpbmtJbmZvIDogcHVibGljIEJh
c2ljUmF3U2VudGluZWxOb2RlPENhbGxMaW5rSW5mbz4gewogICAgICAgICByZXR1cm4gbV9ob3RQ
YXRoT3RoZXI7CiAgICAgfQogCi0gICAgdm9pZCBzZXRDYWxsZWUoVk0mLCBKU0NlbGwqLCBKU0Z1
bmN0aW9uKiBjYWxsZWUpOworICAgIHZvaWQgc2V0Q2FsbGVlKFZNJiwgSlNDZWxsKiwgSlNPYmpl
Y3QqIGNhbGxlZSk7CiAgICAgdm9pZCBjbGVhckNhbGxlZSgpOwotICAgIEpTRnVuY3Rpb24qIGNh
bGxlZSgpOworICAgIEpTT2JqZWN0KiBjYWxsZWUoKTsKIAogICAgIHZvaWQgc2V0Q29kZUJsb2Nr
KFZNJiwgSlNDZWxsKiwgRnVuY3Rpb25Db2RlQmxvY2sqKTsKICAgICB2b2lkIGNsZWFyQ29kZUJs
b2NrKCk7CiAgICAgRnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9jaygpOwogCi0gICAgdm9pZCBz
ZXRMYXN0U2VlbkNhbGxlZShWTSYgdm0sIGNvbnN0IEpTQ2VsbCogb3duZXIsIEpTRnVuY3Rpb24q
IGNhbGxlZSk7CisgICAgdm9pZCBzZXRMYXN0U2VlbkNhbGxlZShWTSYsIGNvbnN0IEpTQ2VsbCog
b3duZXIsIEpTT2JqZWN0KiBjYWxsZWUpOwogICAgIHZvaWQgY2xlYXJMYXN0U2VlbkNhbGxlZSgp
OwotICAgIEpTRnVuY3Rpb24qIGxhc3RTZWVuQ2FsbGVlKCk7CisgICAgSlNPYmplY3QqIGxhc3RT
ZWVuQ2FsbGVlKCk7CiAgICAgYm9vbCBoYXZlTGFzdFNlZW5DYWxsZWUoKTsKICAgICAKICAgICB2
b2lkIHNldEV4ZWN1dGFibGVEdXJpbmdDb21waWxhdGlvbihFeGVjdXRhYmxlQmFzZSopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAKaW5k
ZXggNTNiODRkOWMwMzdlMTdmNmFlOTNkYzg1NTE5Mjc4OGI2M2U2N2FlYS4uZjI4NGUzMDE2NGEw
MGE1NDcxMTA2Y2I1OGQ5ODgwMDFiZDI2NWVlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwCkBAIC0yMTUsNyArMjE1LDcgQEAgQ2Fs
bExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tQ2FsbExpbmtJbmZvKAogICAg
IAogICAgIENhbGxMaW5rU3RhdHVzIHJlc3VsdDsKICAgICAKLSAgICBpZiAoSlNGdW5jdGlvbiog
dGFyZ2V0ID0gY2FsbExpbmtJbmZvLmxhc3RTZWVuQ2FsbGVlKCkpIHsKKyAgICBpZiAoSlNPYmpl
Y3QqIHRhcmdldCA9IGNhbGxMaW5rSW5mby5sYXN0U2VlbkNhbGxlZSgpKSB7CiAgICAgICAgIENh
bGxWYXJpYW50IHZhcmlhbnQodGFyZ2V0KTsKICAgICAgICAgaWYgKGNhbGxMaW5rSW5mby5oYXNT
ZWVuQ2xvc3VyZSgpKQogICAgICAgICAgICAgdmFyaWFudCA9IHZhcmlhbnQuZGVzcGVjaWZpZWRD
bG9zdXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJ
bnRDYWxsTGlua0luZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludENh
bGxMaW5rSW5mby5oCmluZGV4IGMyY2Y0ZDFkYzE1YmY3ZmE5ZTA4OTE4NjE2YWE1M2EwMjQ5MTcx
Y2QuLjhkMGI4NjBlZWYyNWE1NTExYWJkZmZkNjE4MDg2ZmZhMTgxNDhlYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCkBAIC01
NCw4ICs1NCw4IEBAIHN0cnVjdCBMTEludENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1Nl
bnRpbmVsTm9kZTxMTEludENhbGxMaW5rSW5mbz4gewogICAgICAgICAgICAgcmVtb3ZlKCk7CiAg
ICAgfQogICAgIAotICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBjYWxsZWU7Ci0gICAgV3Jp
dGVCYXJyaWVyPEpTRnVuY3Rpb24+IGxhc3RTZWVuQ2FsbGVlOworICAgIFdyaXRlQmFycmllcjxK
U09iamVjdD4gY2FsbGVlOworICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gbGFzdFNlZW5DYWxs
ZWU7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1hY2hpbmVDb2RlVGFyZ2V0OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggNzM1OTg1
NjU5MDRjOTg5YTQyM2FiN2RmMmI0NjViNmM3MGQ4YjRhNS4uYWNkMjNlOGZmOGVhNjAxODQ4MTZi
MGJiMjg3MDZjZGU0MWE0ZmNmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCkBAIC05MzksOSArOTM5LDE3IEBAIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ2FsbExp
CiAgICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFs
dWVDYWxsZWUoKTsKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5j
dGlvbihjYWxsZWVBc1ZhbHVlKTsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2FjaGUgdGhlc2Uga2luZHMgb2YgY2FsbHMuIFRo
ZXkgY2FuIGJlIGNvbW1vbiBhbmQgY3VycmVudGx5IHRoZXkgYXJlCi0gICAgICAgIC8vIGV4cGVu
c2l2ZS4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0NDQ1OAorICAgICAgICBpZiAoY2FsbGVlQXNWYWx1ZS5pc0NlbGwoKSAmJiBjYWxsZWVBc1Zh
bHVlLmFzQ2VsbCgpLT50eXBlKCkgPT0gSW50ZXJuYWxGdW5jdGlvblR5cGUpIHsKKyAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyID0gdm0tPmdldENUSUludGVybmFsRnVu
Y3Rpb25UcmFtcG9saW5lRm9yKGtpbmQpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoISFj
b2RlUHRyKTsKKworICAgICAgICAgICAgaWYgKCFjYWxsTGlua0luZm8tPnNlZW5PbmNlKCkpCisg
ICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5zZXRTZWVuKCk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgbGlua0ZvcihleGVjQ2FsbGVlLCAqY2FsbExpbmtJbmZvLCBudWxs
cHRyLCBhc09iamVjdChjYWxsZWVBc1ZhbHVlKSwgY29kZVB0cik7CisKKyAgICAgICAgICAgIHJl
dHVybiBlbmNvZGVSZXN1bHQoY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpLCByZWludGVycHJl
dF9jYXN0PHZvaWQqPihjYWxsTGlua0luZm8tPmNhbGxNb2RlKCkgPT0gQ2FsbE1vZGU6OlRhaWwg
PyBSZXVzZVRoZUZyYW1lIDogS2VlcFRoZUZyYW1lKSk7CisgICAgICAgIH0KICAgICAgICAgdGhy
b3dTY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBoYW5kbGVIb3N0Q2FsbChleGVjQ2Fs
bGVlLCBjYWxsZWVBc1ZhbHVlLCBjYWxsTGlua0luZm8pOwogICAgIH0KQEAgLTk1MSw3ICs5NTks
NyBAQCBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbChF
eGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENhbGxMaQogICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRh
YmxlID0gY2FsbGVlLT5leGVjdXRhYmxlKCk7CiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y29kZVB0cjsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDA7CisgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSBudWxscHRyOwogICAgIGlmIChleGVjdXRhYmxlLT5pc0hvc3RGdW5jdGlvbigp
KSB7CiAgICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKGtpbmQsIE11
c3RDaGVja0FyaXR5KTsKICAgICB9IGVsc2UgewpAQCAtMTA1Myw2ICsxMDYxLDExIEBAIGlubGlu
ZSBTbG93UGF0aFJldHVyblR5cGUgdmlydHVhbEZvcldpdGhGdW5jdGlvbigKICAgICBKU1ZhbHVl
IGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5ndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgpOwog
ICAgIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5jdGlvbihjYWxsZWVBc1ZhbHVlKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSkgeworICAgICAgICBpZiAo
Y2FsbGVlQXNWYWx1ZS5pc0NlbGwoKSAmJiBjYWxsZWVBc1ZhbHVlLmFzQ2VsbCgpLT50eXBlKCkg
PT0gSW50ZXJuYWxGdW5jdGlvblR5cGUpIHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBjb2RlUHRyID0gdm0tPmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKGtp
bmQpOworICAgICAgICAgICAgQVNTRVJUKCEhY29kZVB0cik7CisgICAgICAgICAgICByZXR1cm4g
ZW5jb2RlUmVzdWx0KGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgcmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oY2FsbExpbmtJbmZvLT5jYWxsTW9kZSgpID09IENhbGxNb2RlOjpUYWlsID8gUmV1
c2VUaGVGcmFtZSA6IEtlZXBUaGVGcmFtZSkpOworICAgICAgICB9CiAgICAgICAgIHRocm93U2Nv
cGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gaGFuZGxlSG9zdENhbGwoZXhlY0NhbGxlZSwg
Y2FsbGVlQXNWYWx1ZSwgY2FsbExpbmtJbmZvKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFRodW5rcy5jcHAKaW5kZXggZGZmZDgwMmIxZWM5OTg0NzBiMGNmZmFmMTkwMGZjNjU2
MDAwYTQyNi4uMDNkZWQ2YzMyNmE1NWIxYTc2MTUyM2M5ZWUxOTdiZGZiZjIyYWMyYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcApAQCAtNzEsNiArNzEsMjAgQEAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlVGFpbENhbGxXaXRob3V0U2F2
ZWRUYWdzKFZNKiB2bSkKICAgICByZXR1cm4gY3RpU3R1Yih2bSwgbmF0aXZlVGFpbENhbGxXaXRo
b3V0U2F2ZWRUYWdzR2VuZXJhdG9yKS5jb2RlKCk7CiB9CiAKK01hY3JvQXNzZW1ibGVyQ29kZVB0
ciBKSVRUaHVua3M6OmN0aUludGVybmFsRnVuY3Rpb25DYWxsKFZNKiB2bSkKK3sKKyAgICBpZiAo
IXZtLT5jYW5Vc2VKSVQoKSkKKyAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6
Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2ludGVybmFsX2Z1bmN0aW9uX2NhbGxfdHJhbXBvbGlu
ZSk7CisgICAgcmV0dXJuIGN0aVN0dWIodm0sIGludGVybmFsRnVuY3Rpb25DYWxsR2VuZXJhdG9y
KS5jb2RlKCk7Cit9CisKK01hY3JvQXNzZW1ibGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aUludGVy
bmFsRnVuY3Rpb25Db25zdHJ1Y3QoVk0qIHZtKQoreworICAgIGlmICghdm0tPmNhblVzZUpJVCgp
KQorICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVMTEludENvZGVQ
dHIobGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY29uc3RydWN0X3RyYW1wb2xpbmUpOworICAgIHJl
dHVybiBjdGlTdHViKHZtLCBpbnRlcm5hbEZ1bmN0aW9uQ29uc3RydWN0R2VuZXJhdG9yKS5jb2Rl
KCk7Cit9CisKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoVk0qIHZt
LCBUaHVua0dlbmVyYXRvciBnZW5lcmF0b3IpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9s
b2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCmluZGV4IDRlNzMzN2EwZGYw
ZmI2MDQ2OTdmZWE2ZGY3YWYzMjEwZDYwOGVmNTkuLjMxNDI3MjhiMmU2YjJjZDg0MmM2MjE3NGFh
YmI5MjM5ZjdlNTM5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
VGh1bmtzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaApAQCAt
NTUsNiArNTUsOCBAQCBjbGFzcyBKSVRUaHVua3MgZmluYWwgOiBwcml2YXRlIFdlYWtIYW5kbGVP
d25lciB7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5hdGl2ZUNvbnN0cnVjdChWTSop
OwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlOYXRpdmVUYWlsQ2FsbChWTSopOyAgICAK
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY3RpTmF0aXZlVGFpbENhbGxXaXRob3V0U2F2ZWRU
YWdzKFZNKik7ICAgIAorICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlJbnRlcm5hbEZ1bmN0
aW9uQ2FsbChWTSopOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjdGlJbnRlcm5hbEZ1bmN0
aW9uQ29uc3RydWN0KFZNKik7CiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY3RpU3R1YihW
TSosIFRodW5rR2VuZXJhdG9yKTsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZXhpc3RpbmdD
VElTdHViKFRodW5rR2VuZXJhdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3Bw
CmluZGV4IGQ3OWFjNmQ4ODA3MzE3ZWIxYjc5Mjc1Y2I3MzAwOThmNGU5Y2JlMjIuLmU5MjMyMWM1
MDE4YjY4NDMxMTZhMWY1MWRlYzVhNzkyYmI2MTI5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZXBhdGNoLmNwcApAQCAtNjkyLDcgKzY5Miw3IEBAIHN0YXRpYyBKU0NlbGwqIHdlYkFzc2Vt
Ymx5T3duZXIoSlNDZWxsKiBjYWxsZWUpCiAKIHZvaWQgbGlua0ZvcigKICAgICBFeGVjU3RhdGUq
IGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVC
bG9jaywKLSAgICBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2Rl
UHRyKQorICAgIEpTT2JqZWN0KiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRy
KQogewogICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLnN0dWIoKSk7CiAKQEAgLTgxNSw5ICs4MTUs
NyBAQCB2b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoY2Fs
bExpbmtJbmZvLmFsbG93U3R1YnMoKSk7CiAgICAgCi0gICAgLy8gQ3VycmVudGx5IHdlIGNhbid0
IGRvIGFueXRoaW5nIGZvciBub24tZnVuY3Rpb24gY2FsbGVlcy4KLSAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwNjg1Ci0gICAgaWYgKCFuZXdWYXJpYW50
IHx8ICFuZXdWYXJpYW50LmV4ZWN1dGFibGUoKSkgeworICAgIGlmICghbmV3VmFyaWFudCkgewog
ICAgICAgICBsaW5rVmlydHVhbEZvcihleGVjLCBjYWxsTGlua0luZm8pOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtODM5LDcgKzgzNyw3IEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgK
ICAgICBDYWxsVmFyaWFudExpc3QgbGlzdDsKICAgICBpZiAoUG9seW1vcnBoaWNDYWxsU3R1YlJv
dXRpbmUqIHN0dWIgPSBjYWxsTGlua0luZm8uc3R1YigpKQogICAgICAgICBsaXN0ID0gc3R1Yi0+
dmFyaWFudHMoKTsKLSAgICBlbHNlIGlmIChKU0Z1bmN0aW9uKiBvbGRDYWxsZWUgPSBjYWxsTGlu
a0luZm8uY2FsbGVlKCkpCisgICAgZWxzZSBpZiAoSlNPYmplY3QqIG9sZENhbGxlZSA9IGNhbGxM
aW5rSW5mby5jYWxsZWUoKSkKICAgICAgICAgbGlzdCA9IENhbGxWYXJpYW50TGlzdHsgQ2FsbFZh
cmlhbnQob2xkQ2FsbGVlKSB9OwogICAgIAogICAgIGxpc3QgPSB2YXJpYW50TGlzdFdpdGhWYXJp
YW50KGxpc3QsIG5ld1ZhcmlhbnQpOwpAQCAtODYzLDEwICs4NjEsOCBAQCB2b2lkIGxpbmtQb2x5
bW9ycGhpY0NhbGwoCiAgICAgCiAgICAgLy8gRmlndXJlIG91dCB3aGF0IG91ciBjYXNlcyBhcmUu
CiAgICAgZm9yIChDYWxsVmFyaWFudCB2YXJpYW50IDogbGlzdCkgewotICAgICAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jazsKLSAgICAgICAgaWYgKHZhcmlhbnQuZXhlY3V0YWJsZSgpLT5pc0hvc3RG
dW5jdGlvbigpKQotICAgICAgICAgICAgY29kZUJsb2NrID0gbnVsbHB0cjsKLSAgICAgICAgZWxz
ZSB7CisgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gbnVsbHB0cjsKKyAgICAgICAgaWYg
KHZhcmlhbnQuZXhlY3V0YWJsZSgpICYmICF2YXJpYW50LmV4ZWN1dGFibGUoKS0+aXNIb3N0RnVu
Y3Rpb24oKSkgewogICAgICAgICAgICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUgPSB2YXJp
YW50LmV4ZWN1dGFibGUoKTsKICAgICAgICAgICAgIGNvZGVCbG9jayA9IGpzQ2FzdDxGdW5jdGlv
bkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKS0+Y29kZUJsb2NrRm9yQ2FsbCgpOwogICAgICAgICAg
ICAgLy8gSWYgd2UgY2Fubm90IGhhbmRsZSBhIGNhbGxlZSwgZWl0aGVyIGJlY2F1c2Ugd2UgZG9u
J3QgaGF2ZSBhIENvZGVCbG9jayBvciBiZWNhdXNlIGFyaXR5IG1pc21hdGNoLApAQCAtOTI2LDcg
KzkyMiw4IEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKICNlbHNlCiAgICAgICAgIC8vIFdl
IHdvdWxkIGhhdmUgYWxyZWFkeSBjaGVja2VkIHRoYXQgdGhlIGNhbGxlZSBpcyBhIGNlbGwuCiAj
ZW5kaWYKLSAgICAKKworICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgYWRkIGEgZmFzdCBwYXRo
IGZvciBJbnRlcm5hbEZ1bmN0aW9uIHdpdGggY2xvc3VyZSBjYWxsLgogICAgICAgICBzbG93UGF0
aC5hcHBlbmQoCiAgICAgICAgICAgICBzdHViSml0LmJyYW5jaDgoCiAgICAgICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwKQEAgLTk1MywxMSArOTUwLDE5IEBAIHZvaWQgbGlua1Bv
bHltb3JwaGljQ2FsbCgKICAgICAgICAgICAgIGZhc3RDb3VudHNbaV0gPSAwOwogICAgICAgICAK
ICAgICAgICAgQ2FsbFZhcmlhbnQgdmFyaWFudCA9IGNhbGxDYXNlc1tpXS52YXJpYW50KCk7Ci0g
ICAgICAgIGludDY0X3QgbmV3Q2FzZVZhbHVlOwotICAgICAgICBpZiAoaXNDbG9zdXJlQ2FsbCkK
KyAgICAgICAgaW50NjRfdCBuZXdDYXNlVmFsdWUgPSAwOworICAgICAgICBpZiAoaXNDbG9zdXJl
Q2FsbCkgewogICAgICAgICAgICAgbmV3Q2FzZVZhbHVlID0gYml0d2lzZV9jYXN0PGludHB0cl90
Pih2YXJpYW50LmV4ZWN1dGFibGUoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ld0Nh
c2VWYWx1ZSA9IGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4odmFyaWFudC5mdW5jdGlvbigpKTsKKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBhZGQgYSBmYXN0IHBhdGggZm9yIEludGVybmFs
RnVuY3Rpb24gd2l0aCBjbG9zdXJlIGNhbGwuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5MzExCisgICAgICAgICAgICBpZiAoIW5ld0Nh
c2VWYWx1ZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGlmIChhdXRvKiBmdW5jdGlvbiA9IHZhcmlhbnQuZnVuY3Rpb24oKSkKKyAgICAg
ICAgICAgICAgICBuZXdDYXNlVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KGZ1bmN0aW9u
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBuZXdDYXNlVmFsdWUgPSBiaXR3
aXNlX2Nhc3Q8aW50cHRyX3Q+KHZhcmlhbnQuaW50ZXJuYWxGdW5jdGlvbigpKTsKKyAgICAgICAg
fQogICAgICAgICAKICAgICAgICAgaWYgKCFBU1NFUlRfRElTQUJMRUQpIHsKICAgICAgICAgICAg
IGZvciAoc2l6ZV90IGogPSAwOyBqIDwgaTsgKytqKSB7CkBAIC05OTYsOSArMTAwMSwxNCBAQCB2
b2lkIGxpbmtQb2x5bW9ycGhpY0NhbGwoCiAgICAgICAgIAogICAgICAgICBDYWxsVmFyaWFudCB2
YXJpYW50ID0gY2FsbENhc2VzW2Nhc2VJbmRleF0udmFyaWFudCgpOwogICAgICAgICAKLSAgICAg
ICAgQVNTRVJUKHZhcmlhbnQuZXhlY3V0YWJsZSgpLT5oYXNKSVRDb2RlRm9yQ2FsbCgpKTsKLSAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHIgPQotICAgICAgICAgICAgdmFyaWFu
dC5leGVjdXRhYmxlKCktPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCktPmFkZHJlc3NGb3JDYWxs
KEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBj
b2RlUHRyOworICAgICAgICBpZiAodmFyaWFudC5leGVjdXRhYmxlKCkpIHsKKyAgICAgICAgICAg
IEFTU0VSVCh2YXJpYW50LmV4ZWN1dGFibGUoKS0+aGFzSklUQ29kZUZvckNhbGwoKSk7CisgICAg
ICAgICAgICBjb2RlUHRyID0gdmFyaWFudC5leGVjdXRhYmxlKCktPmdlbmVyYXRlZEpJVENvZGVG
b3JDYWxsKCktPmFkZHJlc3NGb3JDYWxsKEFyaXR5Q2hlY2tOb3RSZXF1aXJlZCk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQodmFyaWFudC5pbnRlcm5hbEZ1bmN0aW9uKCkp
OworICAgICAgICAgICAgY29kZVB0ciA9IHZtLmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9s
aW5lRm9yKENvZGVGb3JDYWxsKTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaWYgKGZh
c3RDb3VudHMpIHsKICAgICAgICAgICAgIHN0dWJKaXQuYWRkMzIoCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5oCmluZGV4IGUyOTc1YjkxYzFkOWNlODhmNjJjMDM3MTM4OWU5ZjZhMjBiMzFh
MjkuLjE5YjFmNWZlZjBjOTE4YjQ4NWQ4M2Q0MjgzNzE3YTlkMWNjOTQwNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5oCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgYnVpbGRHZXRCeUlE
UHJvdG9MaXN0KEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQ
cm9wZXJ0CiB2b2lkIHJlcGF0Y2hQdXRCeUlEKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIFN0cnVjdHVy
ZSosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQdXRQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVT
dHViSW5mbyYsIFB1dEtpbmQpOwogdm9pZCBidWlsZFB1dEJ5SWRMaXN0KEV4ZWNTdGF0ZSosIEpT
VmFsdWUsIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQdXRQcm9wZXJ0eVNs
b3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIFB1dEtpbmQpOwogdm9pZCByZXBhdGNoSW4oRXhlY1N0
YXRlKiwgSlNDZWxsKiwgY29uc3QgSWRlbnRpZmllciYsIGJvb2wgd2FzRm91bmQsIGNvbnN0IFBy
b3BlcnR5U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJik7Ci12b2lkIGxpbmtGb3IoRXhlY1N0YXRl
KiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIpOwordm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYs
IENvZGVCbG9jayosIEpTT2JqZWN0KiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0cik7CiB2
b2lkIGxpbmtEaXJlY3RGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKTsKIHZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0YXRlKiwgQ2Fs
bExpbmtJbmZvJik7CiB2b2lkIHVubGlua0ZvcihWTSYsIENhbGxMaW5rSW5mbyYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCmluZGV4IGYxZGRlNzY2
MjBlMTM5N2FlYTMyNzkzYTNiOWExOWZhMTA5OWVlZjMuLmY5ZWE1YTM4NjI2NzNmZjhmNGZiNmZk
YjQwMzZjYTFlMDhhMjVlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
VGh1bmtHZW5lcmF0b3JzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5jcHAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
dmlydHVhbFRodW5rRm9yKFZNKiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiAgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBHUFJJbmZvOjpyZWdUMSwKICAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAjZW5k
aWYKLSAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaElmTm90VHlwZShHUFJJbmZvOjpyZWdU
MCwgSlNGdW5jdGlvblR5cGUpKTsKKyAgICBhdXRvIG5vdEpTRnVuY3Rpb24gPSBqaXQuYnJhbmNo
SWZOb3RUeXBlKEdQUkluZm86OnJlZ1QwLCBKU0Z1bmN0aW9uVHlwZSk7CiAgICAgCiAgICAgLy8g
Tm93IHdlIGtub3cgd2UgaGF2ZSBhIEpTRnVuY3Rpb24uCiAgICAgCkBAIC0yMTUsNiArMjE1LDcg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENhbGxMaW5r
SW5mbyYgY2FsbExpbmtJbmZvKQogICAgIC8vIGNhbGwuCiAgICAgCiAgICAgLy8gTWFrZSBhIHRh
aWwgY2FsbC4gVGhpcyB3aWxsIHJldHVybiBiYWNrIHRvIEpJVCBjb2RlLgorICAgIEpTSW50ZXJm
YWNlSklUOjpMYWJlbCBjYWxsQ29kZShqaXQubGFiZWwoKSk7CiAgICAgZW1pdFBvaW50ZXJWYWxp
ZGF0aW9uKGppdCwgR1BSSW5mbzo6cmVnVDQpOwogICAgIGlmIChjYWxsTGlua0luZm8uaXNUYWls
Q2FsbCgpKSB7CiAgICAgICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BS
SW5mbzo6cmVnVDApOwpAQCAtMjIyLDYgKzIyMywxMSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
dmlydHVhbFRodW5rRm9yKFZNKiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiAgICAg
fQogICAgIGppdC5qdW1wKEdQUkluZm86OnJlZ1Q0KTsKIAorICAgIG5vdEpTRnVuY3Rpb24ubGlu
aygmaml0KTsKKyAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaElmTm90VHlwZShHUFJJbmZv
OjpyZWdUMCwgSW50ZXJuYWxGdW5jdGlvblR5cGUpKTsKKyAgICBqaXQubW92ZShDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIodm0tPmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9y
KGNhbGxMaW5rSW5mby5zcGVjaWFsaXphdGlvbktpbmQoKSkuZXhlY3V0YWJsZUFkZHJlc3MoKSks
IEdQUkluZm86OnJlZ1Q0KTsKKyAgICBqaXQuanVtcCgpLmxpbmtUbyhjYWxsQ29kZSwgJmppdCk7
CisKICAgICBzbG93Q2FzZS5saW5rKCZqaXQpOwogICAgIAogICAgIC8vIEhlcmUgd2UgZG9uJ3Qg
a25vdyBhbnl0aGluZywgc28gcmV2ZXJ0IHRvIHRoZSBmdWxsIHNsb3cgcGF0aC4KQEAgLTIzNiw4
ICsyNDIsOSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbFRodW5rRm9yKFZNKiB2bSwg
Q2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiB9CiAKIGVudW0gVGh1bmtFbnRyeVR5cGUgeyBF
bnRlclZpYUNhbGwsIEVudGVyVmlhSnVtcFdpdGhTYXZlZFRhZ3MsIEVudGVyVmlhSnVtcFdpdGhv
dXRTYXZlZFRhZ3MgfTsKK2VudW0gY2xhc3MgVGh1bmtGdW5jdGlvblR5cGUgeyBKU0Z1bmN0aW9u
LCBJbnRlcm5hbEZ1bmN0aW9uIH07CiAKLXN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0
aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBUaHVu
a0VudHJ5VHlwZSBlbnRyeVR5cGUgPSBFbnRlclZpYUNhbGwpCitzdGF0aWMgTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIFRodW5rRnVuY3Rpb25UeXBlIHRo
dW5rRnVuY3Rpb25UeXBlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFRodW5rRW50cnlU
eXBlIGVudHJ5VHlwZSA9IEVudGVyVmlhQ2FsbCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgYmUgYWJsZSB0byBsb2cgU2hhZG93Q2hpY2tlbiBwcm9sb2d1ZSBwYWNrZXRzLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU2ODkKQEAgLTI3OSw4
ICsyODYsMTEgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0
b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKIAogICAgIC8vIGNhbGwgdGhlIGZ1
bmN0aW9uCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQubG9hZFB0cihKU0lu
dGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTRnVuY3Rpb246Om9m
ZnNldE9mRXhlY3V0YWJsZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuY2Fs
bChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIGV4ZWN1dGFi
bGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgaWYgKHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5r
RnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uKSB7CisgICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJm
YWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNGdW5jdGlvbjo6b2Zmc2V0
T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOworICAgICAgICBqaXQuY2Fs
bChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIGV4ZWN1dGFi
bGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgfSBlbHNlCisgICAgICAgIGppdC5jYWxsKEpTSW50
ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSW50ZXJuYWxGdW5jdGlv
bjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSkpOwogCiAgICAgaml0LmFkZFB0cihK
U0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwogCkBAIC0yOTEsOCArMzAxLDExIEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCBrCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBYODZS
ZWdpc3RlcnM6OmVkaSk7CiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIo
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlLCBYODZSZWdpc3RlcnM6OmVzaSk7Ci0gICAgaml0LmxvYWRQ
dHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplc2ksIEpTRnVuY3Rpb246
Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgWDg2UmVnaXN0ZXJzOjpyOSk7Ci0gICAgaml0LmNhbGwo
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpyOSwgZXhlY3V0YWJsZU9mZnNl
dFRvRnVuY3Rpb24pKTsKKyAgICBpZiAodGh1bmtGdW5jdGlvblR5cGUgPT0gVGh1bmtGdW5jdGlv
blR5cGU6OkpTRnVuY3Rpb24pIHsKKyAgICAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6
OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplc2ksIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJs
ZSgpKSwgWDg2UmVnaXN0ZXJzOjpyOSk7CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklU
OjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7
CisgICAgfSBlbHNlCisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4
NlJlZ2lzdGVyczo6ZXNpLCBJbnRlcm5hbEZ1bmN0aW9uOjpvZmZzZXRPZk5hdGl2ZUZ1bmN0aW9u
Rm9yKGtpbmQpKSk7CiAKICNlbHNlCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYo
ZWN4LCBlZHgsIHI4LCByOSwgLi4uKTsKQEAgLTMwNCw4ICszMTcsMTEgQEAgc3RhdGljIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGsKICAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIo
NCAqIHNpemVvZihpbnQ2NF90KSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rl
cik7CiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZyYW1lU2xv
dDo6Y2FsbGVlLCBYODZSZWdpc3RlcnM6OmVkeCk7Ci0gICAgaml0LmxvYWRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplZHgsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhl
Y3V0YWJsZSgpKSwgWDg2UmVnaXN0ZXJzOjpyOSk7Ci0gICAgaml0LmNhbGwoSlNJbnRlcmZhY2VK
SVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpyOSwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24p
KTsKKyAgICBpZiAodGh1bmtGdW5jdGlvblR5cGUgPT0gVGh1bmtGdW5jdGlvblR5cGU6OkpTRnVu
Y3Rpb24pIHsKKyAgICAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2
UmVnaXN0ZXJzOjplZHgsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwgWDg2UmVn
aXN0ZXJzOjpyOSk7CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4
NlJlZ2lzdGVyczo6cjksIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CisgICAgfSBlbHNl
CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6
ZWR4LCBJbnRlcm5hbEZ1bmN0aW9uOjpvZmZzZXRPZk5hdGl2ZUZ1bmN0aW9uRm9yKGtpbmQpKSk7
CiAKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoNCAqIHNpemVv
ZihpbnQ2NF90KSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZW5k
aWYKQEAgLTMxOSw4ICszMzUsMTEgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRp
dmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQu
bW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp4
MCk7CiAKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZyYW1lU2xv
dDo6Y2FsbGVlLCBBUk02NFJlZ2lzdGVyczo6eDEpOwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJm
YWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZF
eGVjdXRhYmxlKCkpLCBBUk02NFJlZ2lzdGVyczo6eDIpOwotICAgIGppdC5jYWxsKEpTSW50ZXJm
YWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MiwgZXhlY3V0YWJsZU9mZnNldFRvRnVu
Y3Rpb24pKTsKKyAgICBpZiAodGh1bmtGdW5jdGlvblR5cGUgPT0gVGh1bmtGdW5jdGlvblR5cGU6
OkpTRnVuY3Rpb24pIHsKKyAgICAgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJl
c3MoQVJNNjRSZWdpc3RlcnM6OngxLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUoKSks
IEFSTTY0UmVnaXN0ZXJzOjp4Mik7CisgICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4MiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoQVJN
NjRSZWdpc3RlcnM6OngxLCBJbnRlcm5hbEZ1bmN0aW9uOjpvZmZzZXRPZk5hdGl2ZUZ1bmN0aW9u
Rm9yKGtpbmQpKSk7CiAjZWxpZiBDUFUoQVJNKSB8fCBDUFUoTUlQUykKICNpZiBDUFUoTUlQUykK
ICAgICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3IgKHVudXNlZCkgMTYgYnl0ZXMgKDgtYnl0
ZSBhbGlnbmVkKSBmb3IgNCBhcmd1bWVudHMuCkBAIC0zMzIsOCArMzUxLDExIEBAIHN0YXRpYyBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNp
YWxpemF0aW9uS2luZCBrCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJl
Z2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKIAogICAgIGppdC5lbWl0R2V0
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihDYWxsRnJhbWVTbG90OjpjYWxsZWUsIEpTSW50ZXJmYWNl
SklUOjphcmd1bWVudEdQUjEpOwotICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRy
ZXNzKEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhl
Y3V0YWJsZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQuY2FsbChKU0ludGVy
ZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDIsIGV4ZWN1dGFibGVPZmZzZXRU
b0Z1bmN0aW9uKSk7CisgICAgaWYgKHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25U
eXBlOjpKU0Z1bmN0aW9uKSB7CisgICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzKEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjEsIEpTRnVuY3Rpb246Om9mZnNldE9m
RXhlY3V0YWJsZSgpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICAgICAgaml0LmNhbGwo
SlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyLCBleGVjdXRhYmxl
T2Zmc2V0VG9GdW5jdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBqaXQuY2FsbChKU0ludGVy
ZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIxLCBJbnRlcm5hbEZ1
bmN0aW9uOjpvZmZzZXRPZk5hdGl2ZUZ1bmN0aW9uRm9yKGtpbmQpKSk7CiAKICNpZiBDUFUoTUlQ
UykKICAgICAvLyBSZXN0b3JlIHN0YWNrIHNwYWNlCkBAIC0zODgsMjcgKzQxMCwzNyBAQCBzdGF0
aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVT
cGVjaWFsaXphdGlvbktpbmQgawogICAgIGppdC5qdW1wVG9FeGNlcHRpb25IYW5kbGVyKCp2bSk7
CiAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKGppdCwgR0xPQkFMX1RIVU5LX0lEKTsKLSAg
ICByZXR1cm4gRklOQUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgKCJuYXRpdmUgJXMlcyB0cmFtcG9s
aW5lIiwgZW50cnlUeXBlID09IEVudGVyVmlhSnVtcFdpdGhTYXZlZFRhZ3MgPyAiVGFpbCBXaXRo
IFNhdmVkIFRhZ3MgIiA6IGVudHJ5VHlwZSA9PSBFbnRlclZpYUp1bXBXaXRob3V0U2F2ZWRUYWdz
ID8gIlRhaWwgV2l0aG91dCBTYXZlZCBUYWdzICIgOiAiIiwgdG9DU3RyaW5nKGtpbmQpLmRhdGEo
KSkpOworICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIiVzICVzJXMgdHJh
bXBvbGluZSIsIHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0
aW9uID8gIm5hdGl2ZSIgOiAiaW50ZXJuYWwiLCBlbnRyeVR5cGUgPT0gRW50ZXJWaWFKdW1wV2l0
aFNhdmVkVGFncyA/ICJUYWlsIFdpdGggU2F2ZWQgVGFncyAiIDogZW50cnlUeXBlID09IEVudGVy
VmlhSnVtcFdpdGhvdXRTYXZlZFRhZ3MgPyAiVGFpbCBXaXRob3V0IFNhdmVkIFRhZ3MgIiA6ICIi
LCB0b0NTdHJpbmcoa2luZCkuZGF0YSgpKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBu
YXRpdmVDYWxsR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJh
dG9yKHZtLCBDb2RlRm9yQ2FsbCk7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwg
VGh1bmtGdW5jdGlvblR5cGU6OkpTRnVuY3Rpb24sIENvZGVGb3JDYWxsKTsKIH0KIAogTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxsR2VuZXJhdG9yKFZNKiB2bSkKIHsKLSAgICBy
ZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwgRW50ZXJWaWFKdW1wV2l0
aFNhdmVkVGFncyk7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwgVGh1bmtGdW5j
dGlvblR5cGU6OkpTRnVuY3Rpb24sIENvZGVGb3JDYWxsLCBFbnRlclZpYUp1bXBXaXRoU2F2ZWRU
YWdzKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxsV2l0aG91dFNh
dmVkVGFnc0dlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRv
cih2bSwgQ29kZUZvckNhbGwsIEVudGVyVmlhSnVtcFdpdGhvdXRTYXZlZFRhZ3MpOworICAgIHJl
dHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9u
LCBDb2RlRm9yQ2FsbCwgRW50ZXJWaWFKdW1wV2l0aG91dFNhdmVkVGFncyk7CiB9CiAKIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IoVk0qIHZtKQogewotICAg
IHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJl
dHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0sIFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9u
LCBDb2RlRm9yQ29uc3RydWN0KTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFs
RnVuY3Rpb25DYWxsR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbmF0aXZlRm9yR2Vu
ZXJhdG9yKHZtLCBUaHVua0Z1bmN0aW9uVHlwZTo6SW50ZXJuYWxGdW5jdGlvbiwgQ29kZUZvckNh
bGwpOworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgaW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVj
dEdlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIG5hdGl2ZUZvckdlbmVyYXRvcih2bSwg
VGh1bmtGdW5jdGlvblR5cGU6OkludGVybmFsRnVuY3Rpb24sIENvZGVGb3JDb25zdHJ1Y3QpOwog
fQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cEdlbmVyYXRvcihWTSogdm0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAppbmRleCBjMDQzZDQx
ODdiMGY1YjQ2YjBmMmNmN2U4NjY4MjQ4NjY1NGNmY2ZjLi42MThmZWUwOThhODBhMWEzNTU1YjRl
ZDlkMzYwM2UzN2FiY2JmMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtH
ZW5lcmF0b3JzLmgKQEAgLTQ2LDYgKzQ2LDggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2
ZUNhbGxHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDb25zdHJ1
Y3RHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVUYWlsQ2FsbEdl
bmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxsV2l0aG91
dFNhdmVkVGFnc0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGludGVybmFs
RnVuY3Rpb25DYWxsR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgaW50ZXJu
YWxGdW5jdGlvbkNvbnN0cnVjdEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGFyaXR5Rml4dXBHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB1bnJlYWNo
YWJsZUdlbmVyYXRvcihWTSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcAppbmRleCA4YTBlMWFjNjg4ZTRmNzg1ZTZlOGM2NjliNjgwZjJkODk2
MDE1ODIzLi4yOTdiNmMxNzAwZmI5MzdkZGI3MTFlOTdlMjYyOWU5MzI3ODc5YjJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTEzNTAs
NiArMTM1MCwyNSBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHNldFVwQ2FsbChFeGVjU3Rh
dGUqIGV4ZWNDYWxsZWUsIEluc3RydWN0aW9uKiBwYywgQ29kZQogICAgIAogICAgIEpTQ2VsbCog
Y2FsbGVlQXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9uKGNhbGxlZUFzVmFsdWUpOwogICAg
IGlmICghY2FsbGVlQXNGdW5jdGlvbkNlbGwpIHsKKyAgICAgICAgaWYgKGNhbGxlZUFzVmFsdWUu
aXNDZWxsKCkgJiYgY2FsbGVlQXNWYWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEludGVybmFsRnVu
Y3Rpb25UeXBlKSB7CisgICAgICAgICAgICBhdXRvKiBpbnRlcm5hbEZ1bmN0aW9uID0ganNDYXN0
PEludGVybmFsRnVuY3Rpb24qPihjYWxsZWVBc1ZhbHVlLmFzQ2VsbCgpKTsKKyAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyID0gdm0uZ2V0Q1RJSW50ZXJuYWxGdW5jdGlv
blRyYW1wb2xpbmVGb3Ioa2luZCk7CisgICAgICAgICAgICBBU1NFUlQoISFjb2RlUHRyKTsKKwor
ICAgICAgICAgICAgaWYgKCFMTElOVF9BTFdBWVNfQUNDRVNTX1NMT1cgJiYgY2FsbExpbmtJbmZv
KSB7CisgICAgICAgICAgICAgICAgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2sgPSBleGVjLT5j
b2RlQmxvY2soKTsKKworICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIo
Y2FsbGVyQ29kZUJsb2NrLT5tX2xvY2spOworCisgICAgICAgICAgICAgICAgaWYgKGNhbGxMaW5r
SW5mby0+aXNPbkxpc3QoKSkKKyAgICAgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5yZW1v
dmUoKTsKKyAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPmNhbGxlZS5zZXQodm0sIGNhbGxl
ckNvZGVCbG9jaywgaW50ZXJuYWxGdW5jdGlvbik7CisgICAgICAgICAgICAgICAgY2FsbExpbmtJ
bmZvLT5sYXN0U2VlbkNhbGxlZS5zZXQodm0sIGNhbGxlckNvZGVCbG9jaywgaW50ZXJuYWxGdW5j
dGlvbik7CisgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5tYWNoaW5lQ29kZVRhcmdldCA9
IGNvZGVQdHI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIExMSU5UX0NBTExfUkVUVVJO
KGV4ZWMsIGV4ZWNDYWxsZWUsIGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAg
IH0KICAgICAgICAgdGhyb3dTY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBoYW5kbGVI
b3N0Q2FsbChleGVjQ2FsbGVlLCBwYywgY2FsbGVlQXNWYWx1ZSwga2luZCk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
CmluZGV4IDVkYWQxMTZhOTNmNmY5YWNhOTVjMGQ5YjMzNGU2ZmU2ODJhZmViMzYuLjZjMDU0ZmE0
ZjkyOTI1OWFkNGVhYTc4OWE3NGM3YWFjNTBiNzc3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTE4MzQsNiArMTgz
NCwxNSBAQCBfbGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZToKIF9sbGludF9uYXRpdmVfY29u
c3RydWN0X3RyYW1wb2xpbmU6CiAgICAgbmF0aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZlRXhlY3V0
YWJsZTo6bV9jb25zdHJ1Y3RvcikKIAorCitfbGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY2FsbF90
cmFtcG9saW5lOgorICAgIGludGVybmFsRnVuY3Rpb25DYWxsVHJhbXBvbGluZShJbnRlcm5hbEZ1
bmN0aW9uOjptX2Z1bmN0aW9uRm9yQ2FsbCkKKworCitfbGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25f
Y29uc3RydWN0X3RyYW1wb2xpbmU6CisgICAgaW50ZXJuYWxGdW5jdGlvbkNhbGxUcmFtcG9saW5l
KEludGVybmFsRnVuY3Rpb246Om1fZnVuY3Rpb25Gb3JDb25zdHJ1Y3QpCisKKwogX2xsaW50X29w
X2dldF9lbnVtZXJhYmxlX2xlbmd0aDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2FsbE9w
Y29kZVNsb3dQYXRoKF9zbG93X3BhdGhfZ2V0X2VudW1lcmFibGVfbGVuZ3RoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQppbmRleCBkZmQxN2I1NjUyZTRjYjAxMjE1NjVkMmZhNGExY2NmMzk0NGYzOGJlLi43ZDYy
NjljYjczNjdkNzM4MDkzNmJkNTYwYzg4ZTUwMjAzNWJjNWU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpA
QCAtMjExNSw2ICsyMTE1LDU4IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFi
bGVPZmZzZXRUb0Z1bmN0aW9uKQogZW5kCiAKIAorbWFjcm8gaW50ZXJuYWxGdW5jdGlvbkNhbGxU
cmFtcG9saW5lKG9mZnNldE9mRnVuY3Rpb24pCisgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAg
c3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCisgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNl
dFtjZnJdLCB0MQorICAgIC8vIENhbGxlZSBpcyBzdGlsbCBpbiB0MSBmb3IgY29kZSBiZWxvdwor
ICAgIGlmIFg4NiBvciBYODZfV0lOCisgICAgICAgIHN1YnAgOCwgc3AgIyBhbGlnbiBzdGFjayBw
b2ludGVyCisgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MQorICAgICAgICBsb2FkcCBN
YXJrZWRCbG9jazo6bV92bVt0MV0sIHQzCisgICAgICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxs
RnJhbWVbdDNdCisgICAgICAgIG1vdmUgY2ZyLCBhMCAgIyBhMCA9IGVjeAorICAgICAgICBzdG9y
ZXAgYTAsIFtzcF0KKyAgICAgICAgbG9hZGkgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0
MQorICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKKyAg
ICAgICAgY2FsbCBvZmZzZXRPZkZ1bmN0aW9uW3QxXQorICAgICAgICBsb2FkcCBDYWxsZWUgKyBQ
YXlsb2FkT2Zmc2V0W2Nmcl0sIHQzCisgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0Mwor
ICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV92bVt0M10sIHQzCisgICAgICAgIGFkZHAgOCwg
c3AKKyAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgQ19MT09Q
IG9yIE1JUFMKKyAgICAgICAgc3VicCA4LCBzcCAjIGFsaWduIHN0YWNrIHBvaW50ZXIKKyAgICAg
ICAgIyB0MSBhbHJlYWR5IGNvbnRhaW5zIHRoZSBDYWxsZWUuCisgICAgICAgIGFuZHAgTWFya2Vk
QmxvY2tNYXNrLCB0MQorICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV92bVt0MV0sIHQxCisg
ICAgICAgIHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDFdCisgICAgICAgIG1vdmUgY2Zy
LCBhMAorICAgICAgICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCisgICAg
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQwMDAxKQorICAgICAgICBp
ZiBDX0xPT1AKKyAgICAgICAgICAgIGNsb29wQ2FsbE5hdGl2ZSBvZmZzZXRPZkZ1bmN0aW9uW3Qx
XQorICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWxsIG9mZnNldE9mRnVuY3Rpb25bdDFdCisg
ICAgICAgIGVuZAorICAgICAgICBsb2FkcCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQz
CisgICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MworICAgICAgICBsb2FkcCBNYXJrZWRC
bG9jazo6bV92bVt0M10sIHQzCisgICAgICAgIGFkZHAgOCwgc3AKKyAgICBlbHNlCisgICAgICAg
IGVycm9yCisgICAgZW5kCisKKyAgICBidGlueiBWTTo6bV9leGNlcHRpb25bdDNdLCAuaGFuZGxl
RXhjZXB0aW9uCisKKyAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICByZXQKKworLmhhbmRsZUV4
Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQorICAgIGptcCBf
bGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQorZW5kCisKKwogbWFjcm8gZ2V0
Q29uc3RhbnRTY29wZShkc3QpCiAgICAgbG9hZHBGcm9tSW5zdHJ1Y3Rpb24oNiwgdDApCiAgICAg
bG9hZGlzRnJvbUluc3RydWN0aW9uKGRzdCwgdDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IGM1N2ViYzNjZjFj
NGUzNmI5NjAzODg4NzU3MDAyZmMwMjBlMjQ5NjcuLjQ2ZjcyZTBiOGJmZmMzMWU3MGE1ZjZlNjIy
NGY3ZmFmNzE4YjExZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0yMDk0LDYgKzIwOTQsNDUgQEAgbWFjcm8g
bmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgam1w
IF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCiBlbmQKIAorbWFjcm8gaW50
ZXJuYWxGdW5jdGlvbkNhbGxUcmFtcG9saW5lKG9mZnNldE9mRnVuY3Rpb24pCisgICAgZnVuY3Rp
b25Qcm9sb2d1ZSgpCisgICAgc3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCisgICAgbG9hZHAgQ2Fs
bGVlW2Nmcl0sIHQwCisgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQwLCB0MQorICAgIGxvYWRw
IE1hcmtlZEJsb2NrOjptX3ZtW3QxXSwgdDEKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZy
YW1lW3QxXQorICAgIGlmIEFSTTY0IG9yIENfTE9PUAorICAgICAgICBzdG9yZXAgbHIsIFJldHVy
blBDW2Nmcl0KKyAgICBlbmQKKyAgICBtb3ZlIGNmciwgYTAKKyAgICBsb2FkcCBDYWxsZWVbY2Zy
XSwgdDEKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKKyAg
ICBpZiBDX0xPT1AKKyAgICAgICAgY2xvb3BDYWxsTmF0aXZlIG9mZnNldE9mRnVuY3Rpb25bdDFd
CisgICAgZWxzZQorICAgICAgICBpZiBYODZfNjRfV0lOCisgICAgICAgICAgICBzdWJwIDMyLCBz
cAorICAgICAgICBlbmQKKyAgICAgICAgY2FsbCBvZmZzZXRPZkZ1bmN0aW9uW3QxXQorICAgICAg
ICBpZiBYODZfNjRfV0lOCisgICAgICAgICAgICBhZGRwIDMyLCBzcAorICAgICAgICBlbmQKKyAg
ICBlbmQKKworICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MworICAgIGFuZHAgTWFya2VkQmxvY2tN
YXNrLCB0MworICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3ZtW3QzXSwgdDMKKworICAgIGJ0cW56
IFZNOjptX2V4Y2VwdGlvblt0M10sIC5oYW5kbGVFeGNlcHRpb24KKworICAgIGZ1bmN0aW9uRXBp
bG9ndWUoKQorICAgIHJldAorCisuaGFuZGxlRXhjZXB0aW9uOgorICAgIHN0b3JlcCBjZnIsIFZN
Ojp0b3BDYWxsRnJhbWVbdDNdCisgICAgam1wIF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90
cmFtcG9saW5lCitlbmQKKwogbWFjcm8gZ2V0Q29uc3RhbnRTY29wZShkc3QpCiAgICAgbG9hZHBG
cm9tSW5zdHJ1Y3Rpb24oNiwgdDApCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKGRzdCwgdDEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwCmluZGV4IDgyMzM2ODM4NDMyMTZiMzBiZjk3NDI2ZGE5NDg4MDIzNjBiOWM1MGMuLjRkODlh
Y2FiM2JkNWM5ODk1OWRjYTIwOTk4YWVkMDc4ZjgwNDM0NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCkBAIC01MCw4ICs1MCwx
MSBAQCBjb25zdCBDbGFzc0luZm8gQXJyYXlDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rp
b24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbgogQGVuZAogKi8KIAorc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKik7Citz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqKTsKKwogQXJyYXlDb25zdHJ1Y3Rvcjo6QXJyYXlDb25zdHJ1Y3Rv
cihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxs
QXJyYXlDb25zdHJ1Y3RvciwgY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IpCiB7CiB9CiAK
QEAgLTEwMCwyNSArMTAzLDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdFdpdGhBcnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZXhlYywgYXJncywg
ZXhlYy0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBBcnJheUNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEp
Ci17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoQXJy
YXlDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5Q29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhleGVjLCBhcmdzLCBKU1Zh
bHVlKCkpKTsKIH0KIAotQ2FsbFR5cGUgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIC8vIGVxdWl2YWxlbnQgdG8gJ25ldyBB
cnJheSguLi4uKScKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsQXJyYXlDb25z
dHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIHN0YXRpYyBBTFdBWVNf
SU5MSU5FIGJvb2wgaXNBcnJheVNsb3dJbmxpbmUoRXhlY1N0YXRlKiBleGVjLCBQcm94eU9iamVj
dCogcHJveHkpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAppbmRleCAxNTg0ODg1ZDBjZGU2
MDg3MjdkYzU4ZGQ2ZDcyMGZhYzQzYWQ4YzEzLi42MTY1MmFhN2YzZGMzM2M1Zjg5ZmE2NjE1M2Fi
OWMzYzM5NWY5NWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlDb25zdHJ1Y3Rvci5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIEFycmF5Q29uc3RydWN0b3Ig
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKQEAgLTU0LDkgKzU0LDYg
QEAgY2xhc3MgQXJyYXlDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAog
cHJpdmF0ZToKICAgICBBcnJheUNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0KLSAgICBz
dGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
KTsKIH07CiAKIEpTVmFsdWUgY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKEV4ZWNTdGF0ZSos
IEFycmF5QWxsb2NhdGlvblByb2ZpbGUqLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgbGVuZ3Ro
LCBKU1ZhbHVlIHByb3RvdHlwZSA9IEpTVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRl
eCA1MjcyOGY5NDlkOTJjM2JlMmI2YTlhOTRiNzQ5YzliYTI2YWRkM2JhLi5kMGU5YmQ3NGZhMTdl
Mzg1MDI0MzM3NDMwNDkxYTMwNWE5MjM2NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTM2
LDE4ICszNiw2IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShBc3lu
Y0Z1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gQXN5bmNGdW5jdGlvbkNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJBc3luY0Z1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBc3luY0Z1bmN0aW9uQ29uc3RydWN0
b3IpIH07CiAKLUFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6QXN5bmNGdW5jdGlvbkNvbnN0cnVj
dG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9u
KHZtLCBzdHJ1Y3R1cmUpCi17Ci19Ci0KLXZvaWQgQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUqIHByb3RvdHlwZSkK
LXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgIkFzeW5jRnVuY3Rpb24iKTsKLSAgICBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBl
LCBwcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmli
dXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKLSAgICBwdXRE
aXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051
bWJlcigxKSwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKTsKLX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlz
dCBhcmdzKGV4ZWMpOwpAQCAtNjAsMTYgKzQ4LDE2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUq
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0lu
dGVybmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzLCBG
dW5jdGlvbkNvbnN0cnVjdGlvbk1vZGU6OkFzeW5jKSk7CiB9CiAKLUNhbGxUeXBlIEFzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRh
KQorQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0
cnVjdHVyZSwgY2FsbEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3RvciwgY29uc3RydWN0QXN5bmNGdW5j
dGlvbkNvbnN0cnVjdG9yKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxB
c3luY0Z1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwogfQog
Ci1Db25zdHJ1Y3RUeXBlIEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQordm9pZCBBc3luY0Z1bmN0
aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQXN5bmNGdW5jdGlvblByb3Rv
dHlwZSogcHJvdG90eXBlKQogewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Y29uc3RydWN0QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RU
eXBlOjpIb3N0OworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCAiQXN5bmNGdW5jdGlvbiIp
OworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5w
cm90b3R5cGUsIHByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwor
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9y
LmgKaW5kZXggMDM1YTJjMWU0ZjkxNWNhYzBiNGIxNzczZTZkMDU4OWUyNzQ3NDdkNC4uMDNlZmRi
YTJlMDE5NzZkZDcwMzAwOTc2ODk0YjYzYTc2NzdiOTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAg
LTQ2LDE0ICs0NiwxMiBAQCBjbGFzcyBBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgQXN5bmNGdW5jdGlvbkNvbnN0cnVj
dG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEFzeW5j
RnVuY3Rpb25Qcm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fz
eW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggYWFhNmExZjRmN2NjZTUy
ZDljMWFiNjc4ZTlkOTI1NzdkMWIwYjM2Yi4uYzUzNDE5MDhlOTVkY2QzMjIyZjBmOGVlNjhjNDFh
NzAzNDM1NWVmZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5
bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0z
NiwyMCArMzYsNiBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoQXN5
bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEFzeW5j
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXN5bmNHZW5lcmF0b3JG
dW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKSB9OwogCi1Bc3luY0dlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rv
cihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2
bSwgc3RydWN0dXJlKQotewotfQotCi12b2lkIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90
eXBlKiBwcm90b3R5cGUpCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sICJBc3luY0dl
bmVyYXRvckZ1bmN0aW9uIik7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSk7Ci0KLSAgICAvLyBOdW1iZXIgb2YgYXJndW1lbnRzIGZvciBjb25zdHJ1
Y3RvcgotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7CkBAIC02MiwxNiArNDgsMTggQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0QXN5bmNHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yKEUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0
cnVjdEZ1bmN0aW9uKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+
Z2xvYmFsT2JqZWN0KCksIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6QXN5bmNHZW5l
cmF0b3IpKTsKIH0KIAotQ2FsbFR5cGUgQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9y
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCitBc3luY0dlbmVyYXRv
ckZ1bmN0aW9uQ29uc3RydWN0b3I6OkFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwg
c3RydWN0dXJlLCBjYWxsQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLCBjb25zdHJ1
Y3RBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpCiB7Ci0gICAgY2FsbERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY2FsbEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcjsKLSAg
ICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7CiB9CiAKLUNvbnN0cnVjdFR5cGUgQXN5bmNHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmIGNvbnN0cnVjdERhdGEpCit2b2lkIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90
eXBlKiBwcm90b3R5cGUpCiB7Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBj
b25zdHJ1Y3RBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENv
bnN0cnVjdFR5cGU6Okhvc3Q7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sICJBc3luY0dl
bmVyYXRvckZ1bmN0aW9uIik7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSk7CisKKyAgICAvLyBOdW1iZXIgb2YgYXJndW1lbnRzIGZvciBjb25zdHJ1
Y3RvcgorICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5l
cmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmgKaW5kZXggYjhmMTUwYjU5ZWU3YzM5NGIxYjgxNGNl
NmVhZGIzZTRkNzg2MGM2MS4uYmM0NGFjNmI2YTMwMjAzN2RjMjZhM2U3MDRkYzY1ODI2YzI0ODdi
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmgKQEAgLTQ2LDE0ICs0NiwxMiBA
QCBjbGFzcyBBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsK
KyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEFz
eW5jR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlw
ZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMg
Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9v
bGVhbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggNjdhMDE1YWIzZTFhNzhhMmFkMjY4NTc4M2E2MzhmZWZj
YmFjNzE5MS4uZjBhYjA0MjUzZTkzMzUwMWFhYWNiYThiMTYzZGMzNTNmOGNlNjZkMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3Iu
Y3BwCkBAIC0zMSwxNiArMzEsMTAgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJV
Q1RJQkxFKEJvb2xlYW5Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBCb29sZWFuQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShCb29sZWFuQ29uc3RydWN0b3IpIH07CiAKLUJv
b2xlYW5Db25zdHJ1Y3Rvcjo6Qm9vbGVhbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCi17Ci19Ci0K
LXZvaWQgQm9vbGVhbkNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEJvb2xlYW5Q
cm90b3R5cGUqIGJvb2xlYW5Qcm90b3R5cGUpCisvLyBFQ01BIDE1LjYuMQorc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEJvb2xlYW5Db25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0sIGJvb2xlYW5Qcm90b3R5cGUt
PmNsYXNzSW5mbygpLT5jbGFzc05hbWUpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGJvb2xlYW5Qcm90b3R5cGUsIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihleGVjLT5hcmd1bWVudCgwKS50b0Jvb2xl
YW4oZXhlYykpKTsKIH0KIAogLy8gRUNNQSAxNS42LjIKQEAgLTU2LDIyICs1MCwxNiBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoQm9vbGVhbkNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUob2JqKTsKIH0K
IAotQ29uc3RydWN0VHlwZSBCb29sZWFuQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlND
ZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKK0Jvb2xlYW5Db25zdHJ1Y3Rvcjo6
Qm9vbGVhbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBJ
bnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxCb29sZWFuQ29uc3RydWN0b3IsIGNv
bnN0cnVjdFdpdGhCb29sZWFuQ29uc3RydWN0b3IpCiB7Ci0gICAgY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoQm9vbGVhbkNvbnN0cnVjdG9yOwotICAgIHJldHVy
biBDb25zdHJ1Y3RUeXBlOjpIb3N0OwogfQogCi0vLyBFQ01BIDE1LjYuMQotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEJvb2xlYW5Db25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZXhlYy0+YXJn
dW1lbnQoMCkudG9Cb29sZWFuKGV4ZWMpKSk7Ci19Ci0KLUNhbGxUeXBlIEJvb2xlYW5Db25zdHJ1
Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQordm9pZCBCb29s
ZWFuQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQm9vbGVhblByb3RvdHlwZSog
Ym9vbGVhblByb3RvdHlwZSkKIHsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxs
Qm9vbGVhbkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbih2bSwgYm9vbGVhblByb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNz
TmFtZSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnByb3RvdHlwZSwgYm9vbGVhblByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCiBKU09iamVjdCogY29uc3RydWN0
Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBpbW1lZGlhdGVCb29sZWFuVmFsdWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCmluZGV4
IGJiOGM1ZGYyYjU0ZGMwNjhiOTM0MWUxYjc3NWQ1MTkzMzBlYjljOTMuLjM2ZWNjOWY0ZGJiMTgw
ZTU3OTA4N2IyODE2ZGNmMTdlODZkMmViMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNz
IEJvb2xlYW5Db25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICB7IAotICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAorICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRl
cm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKIHBy
b3RlY3RlZDoKQEAgLTUwLDggKzUwLDYgQEAgY2xhc3MgQm9vbGVhbkNvbnN0cnVjdG9yIDogcHVi
bGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIEJvb2xlYW5Db25zdHJ1Y3Rv
cihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVj
dERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogSlNPYmplY3QqIGNvbnN0cnVjdEJv
b2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpT
VmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggYjJmMjljZmQ5ZTc3OTNmYTYzZTYwOWUzMWFiMGU0ODk1N2NhNjdmZC4u
Njc5OTY1Y2FjNWFhMjkxNDM1MjRkZDM5NzY4Y2I4ZDcyYThiMzJhMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCkBAIC02OCw4ICs2
OCwxMSBAQCBjb25zdCBDbGFzc0luZm8gRGF0ZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5j
dGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZgogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJ
QUxMWV9ERVNUUlVDVElCTEUoRGF0ZUNvbnN0cnVjdG9yKTsKIAorc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbERhdGUoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSopOworCiBEYXRlQ29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAg
IDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsRGF0ZSwgY29uc3RydWN0V2l0
aERhdGVDb25zdHJ1Y3RvcikKIHsKIH0KIApAQCAtMTUzLDEyICsxNTYsNiBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RGF0ZShl
eGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCgp
LCBleGVjLT5uZXdUYXJnZXQoKSwgYXJncykpOwogfQogCi1Db25zdHJ1Y3RUeXBlIERhdGVDb25z
dHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1
Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0
V2l0aERhdGVDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0K
LQogLy8gRUNNQSAxNS45LjIKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxEYXRlKEV4ZWNTdGF0ZSogZXhlYykKIHsKQEAgLTE2OCwxMiArMTY1LDYgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbERhdGUoRXhlY1N0YXRlKiBleGVjKQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFsU3RyaW5nKCZ2bSwgZm9ybWF0RGF0
ZVRpbWUodHMsIERhdGVUaW1lRm9ybWF0RGF0ZUFuZFRpbWUsIGZhbHNlKSkpOwogfQogCi1DYWxs
VHlwZSBEYXRlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
RGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsRGF0ZTsKLSAgICBy
ZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVBhcnNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAppbmRl
eCBmY2VhNTVmOGRmNmIwMDFhMDkxOWMwMmMyYjBhMjgyYTZmNWEwY2MzLi4zMDdjNmQ1NTRiMWI0
MmEzZjAwYmNkZmRhNzYyYWI0OTFhNTAyMmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBEYXRl
Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlv
blR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKQEAg
LTUxLDggKzUxLDYgQEAgY2xhc3MgRGF0ZUNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogCiBwcml2YXRlOgogICAgIERhdGVDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSop
OwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29u
c3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYpOwogfTsKIAogSlNPYmplY3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRlKiwgSlNH
bG9iYWxPYmplY3QqLCBKU1ZhbHVlIG5ld1RhcmdldCwgY29uc3QgQXJnTGlzdCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKaW5kZXggOTA2NzFkNTdhMzRjY2Q2YjBjODZlOWNl
NzgxMTg0ZTg0YTQxZjNiNi4uNGZhZWQzNzdhMGJkMmIyYjczNGZlYTVjMzUwZDQ4OTIzMjNiOWU2
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCkBAIC0xMDYsNyArMTA2LDcg
QEAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1ET01BdHRyaWJ1dGVHZXR0ZXJUeXBlRXJy
b3IoRXhlY1N0YXRlKiBzdGF0ZSwgVGhyb3cKIGNsYXNzIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5j
dGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHByaXZhdGU6CiAgICAgU3RyaWN0TW9k
ZVR5cGVFcnJvckZ1bmN0aW9uKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKLSAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUp
CisgICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsVGhyb3dUeXBl
RXJyb3IsIGNvbnN0cnVjdFRocm93VHlwZUVycm9yKQogICAgICAgICAsIG1fbWVzc2FnZShtZXNz
YWdlKQogICAgIHsKICAgICB9CkBAIC0xMzEsMTIgKzEzMSw2IEBAIGNsYXNzIFN0cmljdE1vZGVU
eXBlRXJyb3JGdW5jdGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1
Y3REYXRhKQotICAgIHsKLSAgICAgICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBj
b25zdHJ1Y3RUaHJvd1R5cGVFcnJvcjsKLSAgICAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhv
c3Q7Ci0gICAgfQotCiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bFRocm93VHlwZUVycm9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICB7CiAgICAgICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CkBAIC0xNDUsMTcgKzEzOSwxMSBAQCBjbGFzcyBTdHJpY3RNb2RlVHlwZUVy
cm9yRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBDYWxsVHlwZSBn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi0gICAgewotICAgICAgICBj
YWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsVGhyb3dUeXBlRXJyb3I7Ci0gICAgICAgIHJl
dHVybiBDYWxsVHlwZTo6SG9zdDsKLSAgICB9Ci0KICAgICBERUNMQVJFX0lORk87CiAKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgeyAKLSAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50
ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCiAgICAgfQogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0
cnVjdG9yLmNwcAppbmRleCBkYWE3YTkwMWU5NGMwMWY4ODJmZWEwOTI1OTM2MTRiYWJmYTIyNDM2
Li5iMDQ0YzhkMjcwN2IyMzBlMTY4NTg4Mjg5NDZhODhhOTcxYjk5OGY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzQs
NyArMzQsNyBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoRXJyb3JD
b25zdHJ1Y3Rvcik7CiBjb25zdCBDbGFzc0luZm8gRXJyb3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEVycm9yQ29uc3RydWN0b3IpIH07CiAKIEVycm9yQ29uc3RydWN0b3I6OkVycm9y
Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFs
RnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVj
dHVyZSwgSW50ZXJwcmV0ZXI6OmNhbGxFcnJvckNvbnN0cnVjdG9yLCBJbnRlcnByZXRlcjo6Y29u
c3RydWN0V2l0aEVycm9yQ29uc3RydWN0b3IpCiB7CiB9CiAKQEAgLTYzLDEyICs2Myw2IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50ZXJwcmV0ZXI6OmNvbnN0cnVjdFdpdGhFcnJv
ckNvbnN0cnVjdG9yKEV4ZWNTdGF0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5
cGVOb3RoaW5nLCBmYWxzZSkpOwogfQogCi1Db25zdHJ1Y3RUeXBlIEVycm9yQ29uc3RydWN0b3I6
OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkK
LXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEludGVycHJldGVyOjpjb25z
dHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9z
dDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y2FsbEVy
cm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9
IGV4ZWMtPmFyZ3VtZW50KDApOwpAQCAtNzYsMTIgKzcwLDYgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRlcnByZXRlcjo6Y2FsbEVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4
ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2Up
KTsKIH0KIAotQ2FsbFR5cGUgRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IElu
dGVycHJldGVyOjpjYWxsRXJyb3JDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7Ci19Ci0KIGJvb2wgRXJyb3JDb25zdHJ1Y3Rvcjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaAppbmRleCA2MzA5
NmJkNWM0Mzc4Nzc3OTNmODY1NmM1Njk3NzM4ZjZkZDkyMjRkLi5hMGRkMWIwNWU0OTJlOGUwZjk2
YjUxNGFlOTU0OTA0ZWRhNzNhNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIEVycm9yQ29u
c3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgeyAKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlv
blR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCiAgICAgfQogCiAgICAgc3RkOjpvcHRp
b25hbDx1bnNpZ25lZD4gc3RhY2tUcmFjZUxpbWl0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFja1Ry
YWNlTGltaXQ7IH0KQEAgLTU1LDggKzU1LDYgQEAgY2xhc3MgRXJyb3JDb25zdHJ1Y3RvciA6IHB1
YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBFcnJvckNvbnN0cnVjdG9y
KFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVk
PiBtX3N0YWNrVHJhY2VMaW1pdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IGZhNjdjZDVkNTIzYzBkYzk5
MzM4NTMwZTQ5MjA3ZTE1ZTE5NmQwNDcuLmQ4MDM2MTY2OGQ2YmViMmY3OTNhMzk4ZWM1NzI0YjEw
OTBiMjA5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zOCw0MSArMzgsMjkgQEAgU1RBVElDX0FTU0VSVF9J
U19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBD
bGFzc0luZm8gRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0aW9u
Q29uc3RydWN0b3IpIH07CiAKLUZ1bmN0aW9uQ29uc3RydWN0b3I6OkZ1bmN0aW9uQ29uc3RydWN0
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24o
dm0sIHN0cnVjdHVyZSkKLXsKLX0KLQotdm9pZCBGdW5jdGlvbkNvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jdGlvblByb3RvdHlwZSkKLXsK
LSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgZnVuY3Rpb25Qcm90b3R5cGUtPmNsYXNzSW5m
bygpLT5jbGFzc05hbWUpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGZ1bmN0aW9uUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7Ci19Ci0KIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVu
Y3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzLCBGdW5jdGlvbkNv
bnN0cnVjdGlvbk1vZGU6OkZ1bmN0aW9uLCBleGVjLT5uZXdUYXJnZXQoKSkpOwogfQogCi1Db25z
dHJ1Y3RUeXBlIEZ1bmN0aW9uQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwg
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0cnVjdG9yOwotICAgIHJldHVy
biBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCisvLyBFQ01BIDE1LjMuMSBUaGUgRnVuY3Rpb24g
Q29uc3RydWN0b3IgQ2FsbGVkIGFzIGEgRnVuY3Rpb24KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25z
dHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSkt
Pmdsb2JhbE9iamVjdCgpLCBhcmdzKSk7CiB9CiAKLS8vIEVDTUEgMTUuMy4xIFRoZSBGdW5jdGlv
biBDb25zdHJ1Y3RvciBDYWxsZWQgYXMgYSBGdW5jdGlvbgotQ2FsbFR5cGUgRnVuY3Rpb25Db25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQorRnVuY3Rp
b25Db25zdHJ1Y3Rvcjo6RnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsRnVuY3Rp
b25Db25zdHJ1Y3RvciwgY29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3IpCit7Cit9CisK
K3ZvaWQgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBGdW5jdGlv
blByb3RvdHlwZSogZnVuY3Rpb25Qcm90b3R5cGUpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY2FsbEZ1bmN0aW9uQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpI
b3N0OworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtLCBmdW5jdGlvblByb3RvdHlwZS0+Y2xh
c3NJbmZvKCktPmNsYXNzTmFtZSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZnVuY3Rpb25Qcm90b3R5cGUsIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAogLy8g
RUNNQSAxNS4zLjIgVGhlIEZ1bmN0aW9uIENvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKaW5kZXggMTNjMzdmZDUy
ZjIzZjcyYzI4OTc3YzUyMjAyZWJmYzMwMjc3MjAzNC4uN2NlM2Y0ODg2ZGMyMzZhOTRiZDM0NTJk
ZDFjMGNlMzE0ZWRkOGI2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaApAQCAtNDUsMTQgKzQ1LDEyIEBAIGNsYXNzIEZ1bmN0
aW9uQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgeyAKLSAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxG
dW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgCiAgICAgfQogCiBwcml2YXRl
OgogICAgIEZ1bmN0aW9uQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKFZNJiwgRnVuY3Rpb25Qcm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3Ry
dWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBz
dGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIGVu
dW0gY2xhc3MgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAppbmRleCAxOGY4YjVlYWQ1
NjQ0OTY4YmUyMTU3NmM2NzU2MzJkMjFlNjA1ODJmLi40MDgwZTM5MGZjZDAwZTAxODM2N2FlMTQz
YWQ0NzA4NmM2NGFhZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC00Myw4ICs0MywxNCBAQCBjb25zdCBDbGFzc0lu
Zm8gRnVuY3Rpb25Qcm90b3R5cGU6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0cgogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSopOwogCisvLyBFQ01BIDE1LjMuNAorc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEZ1bmN0aW9uUHJvdG90eXBlKEV4ZWNT
dGF0ZSopCit7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30K
KwogRnVuY3Rpb25Qcm90b3R5cGU6OkZ1bmN0aW9uUHJvdG90eXBlKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxGdW5jdGlvblByb3RvdHlwZSwg
bnVsbHB0cikKIHsKIH0KIApAQCAtNzcsMTggKzgzLDYgQEAgdm9pZCBGdW5jdGlvblByb3RvdHlw
ZTo6aW5pdFJlc3RyaWN0ZWRQcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QKICAgICBwdXREaXJlY3RBY2Nlc3NvcihleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVu
dHMsIGVycm9yR2V0dGVyU2V0dGVyLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Qcm90b3R5cGUoRXhlY1N0YXRlKikKLXsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQotCi0vLyBFQ01BIDE1LjMuNAot
Q2FsbFR5cGUgRnVuY3Rpb25Qcm90b3R5cGU6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
JiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsRnVuY3Rp
b25Qcm90b3R5cGU7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaAppbmRleCBiYWY3Y2NiNGJkMTllNzUx
OWE5ZGIyMzU0MjUzMzBlMjJmYjhhNDVmLi45Mzg4ODcwOGY0NzE0OGE2YmM3NTExMzExYzdmZjYx
MTdkOGVkMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5j
dGlvblByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uUHJvdG90eXBlLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgRnVuY3Rpb25Qcm90b3R5cGUg
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90bywgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKICAgICB9CiAKICAgICBERUNMQVJFX0lORk87CkBAIC01MSw3ICs1MSw2IEBAIGNs
YXNzIEZ1bmN0aW9uUHJvdG90eXBlIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2
YXRlOgogICAgIEZ1bmN0aW9uUHJvdG90eXBlKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggZTU0ZTYzZjkyYjNk
ZDgyZjdkYmMyYTRkNGU1MjE4MDQ4ZWM3N2M3ZC4uMzc0M2M2YTE5ZGZhZmRlNzI2YWM1NDljZDFi
OGQ0YmZhZDE2ODZkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTM2LDE4ICsz
Niw2IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEdlbmVyYXRvckZ1bmN0aW9u
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkdlbmVyYXRvckZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yKSB9OwogCi1HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCi17Ci19Ci0KLXZvaWQgR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBHZW5lcmF0b3JGdW5j
dGlvblByb3RvdHlwZSogZ2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpCi17Ci0gICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0sICJHZW5lcmF0b3JGdW5jdGlvbiIpOwotICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGdlbmVyYXRv
ckZ1bmN0aW9uUHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7Ci0g
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0
aCwganNOdW1iZXIoMSksIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSk7Ci19Ci0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7CkBAIC02MCwxNiArNDgsMTYgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3RvcihFeGVjU3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9u
KGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0
KCksIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6R2VuZXJhdG9yLCBleGVjLT5uZXdU
YXJnZXQoKSkpOwogfQogCi1DYWxsVHlwZSBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCitHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yOjpHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxHZW5l
cmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKIH0K
IAotQ29uc3RydWN0VHlwZSBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCit2b2lkIEdlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgR2VuZXJhdG9y
RnVuY3Rpb25Qcm90b3R5cGUqIGdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKQogewotICAgIGNv
bnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKKyAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSwgIkdlbmVyYXRvckZ1bmN0aW9uIik7CisgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZ2VuZXJhdG9y
RnVuY3Rpb25Qcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5
QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigxKSwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yLmgKaW5kZXggZjI4YzcxYzc4ZmVjMmU1ZGNmMGY1ZWU0ZjNlNWI2YzIyYWQwYzc1OC4u
ZjQ2ZDhjNTlkNTU2ZTIzMTE0NGIzYjZiYmIwOWU2YjhlY2YwMWY1MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3IuaApAQCAtNTIsMTQgKzUyLDEyIEBAIGNsYXNzIEdlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgR2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oVk0mLCBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSopOwotICAgIHN0YXRp
YyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYp
OwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCmluZGV4IDNkM2ZkMWFiYzM0MzNjNWI0OTE5ZTAx
ZTQzYzVkZTY0MDdkOTdiNzkuLjdiNjY0Mzg1ZmIyYjBkZTY1ZGI5NWU0ZTViM2EzMzg5NTBlMDZk
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uY3BwCkBAIC0zNCwxOCArMzQsMjQgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlf
REVTVFJVQ1RJQkxFKEludGVybmFsRnVuY3Rpb24pOwogCiBjb25zdCBDbGFzc0luZm8gSW50ZXJu
YWxGdW5jdGlvbjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEludGVybmFsRnVuY3Rpb24pIH07CiAKLUlu
dGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKK0ludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb25Gb3JDYWxsLCBOYXRpdmVGdW5j
dGlvbiBmdW5jdGlvbkZvckNvbnN0cnVjdCkKICAgICA6IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0KHZt
LCBzdHJ1Y3R1cmUpCisgICAgLCBtX2Z1bmN0aW9uRm9yQ2FsbChmdW5jdGlvbkZvckNhbGwpCisg
ICAgLCBtX2Z1bmN0aW9uRm9yQ29uc3RydWN0KGZ1bmN0aW9uRm9yQ29uc3RydWN0ID8gZnVuY3Rp
b25Gb3JDb25zdHJ1Y3QgOiBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvcikKIHsKICAgICAv
LyBleGVjLT52bSgpIHdhbnRzIGNhbGxlZXMgdG8gbm90IGJlIGxhcmdlIGFsbG9jYXRpb25zLgog
ICAgIFJFTEVBU0VfQVNTRVJUKCFpc0xhcmdlQWxsb2NhdGlvbigpKTsKKyAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKG1fZnVuY3Rpb25Gb3JDYWxsLCAiW1tDYWxsXV0gbXVzdCBiZSBpbXBsZW1lbnRl
ZCIpOworICAgIEFTU0VSVChtX2Z1bmN0aW9uRm9yQ29uc3RydWN0KTsKIH0KIAogdm9pZCBJbnRl
cm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIGNvbnN0IFN0cmluZyYgbmFtZSwg
TmFtZVZpc2liaWxpdHkgbmFtZVZpc2liaWxpdHkpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7Ci0gICAgQVNTRVJUKG1l
dGhvZFRhYmxlKHZtKS0+Z2V0Q2FsbERhdGEgIT0gSW50ZXJuYWxGdW5jdGlvbjo6aW5mbygpLT5t
ZXRob2RUYWJsZS5nZXRDYWxsRGF0YSk7CisgICAgQVNTRVJUKG1ldGhvZFRhYmxlKHZtKS0+Z2V0
Q2FsbERhdGEgPT0gSW50ZXJuYWxGdW5jdGlvbjo6aW5mbygpLT5tZXRob2RUYWJsZS5nZXRDYWxs
RGF0YSk7CisgICAgQVNTRVJUKG1ldGhvZFRhYmxlKHZtKS0+Z2V0Q29uc3RydWN0RGF0YSA9PSBJ
bnRlcm5hbEZ1bmN0aW9uOjppbmZvKCktPm1ldGhvZFRhYmxlLmdldENvbnN0cnVjdERhdGEpOwor
ICAgIEFTU0VSVCh0eXBlKCkgPT0gSW50ZXJuYWxGdW5jdGlvblR5cGUpOwogICAgIEpTU3RyaW5n
KiBuYW1lU3RyaW5nID0ganNTdHJpbmcoJnZtLCBuYW1lKTsKICAgICBtX29yaWdpbmFsTmFtZS5z
ZXQodm0sIHRoaXMsIG5hbWVTdHJpbmcpOwogICAgIGlmIChuYW1lVmlzaWJpbGl0eSA9PSBOYW1l
VmlzaWJpbGl0eTo6VmlzaWJsZSkKQEAgLTc4LDEwICs4NCwyMSBAQCBjb25zdCBTdHJpbmcgSW50
ZXJuYWxGdW5jdGlvbjo6ZGlzcGxheU5hbWUoVk0mIHZtKQogICAgIHJldHVybiBTdHJpbmcoKTsK
IH0KIAotQ2FsbFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmKQorQ2FsbFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBj
ZWxsLCBDYWxsRGF0YSYgY2FsbERhdGEpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Ok5vbmU7CisgICAgYXV0byogZnVuY3Rpb24gPSBq
c0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGNlbGwpOworICAgIEFTU0VSVChmdW5jdGlvbi0+bV9m
dW5jdGlvbkZvckNhbGwpOworICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGZ1bmN0aW9u
LT5tX2Z1bmN0aW9uRm9yQ2FsbDsKKyAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Cit9CisKK0Nv
bnN0cnVjdFR5cGUgSW50ZXJuYWxGdW5jdGlvbjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqIGNl
bGwsIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCit7CisgICAgYXV0byogZnVuY3Rpb24g
PSBqc0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KGNlbGwpOworICAgIGlmIChmdW5jdGlvbi0+bV9m
dW5jdGlvbkZvckNvbnN0cnVjdCA9PSBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvcikKKyAg
ICAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Ok5vbmU7CisgICAgY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBmdW5jdGlvbi0+bV9mdW5jdGlvbkZvckNvbnN0cnVjdDsKKyAgICByZXR1
cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKIH0KIAogY29uc3QgU3RyaW5nIEludGVybmFsRnVuY3Rp
b246OmNhbGN1bGF0ZWREaXNwbGF5TmFtZShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggM2E4ZjIyZWI4OGUwZWJkYjg3
ZDM0N2UzOTc0NmEyYmFjZDJmNTM5OC4uZWM0MmJiOGUyNDRkN2JhNDg2NTUyYjM4NDA4MDFkOGQw
NDI0ZjAyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJu
YWxGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFs
RnVuY3Rpb24uaApAQCAtMjMsNiArMjMsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVj
dC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTMwLDYgKzMxLDggQEAgbmFtZXNwYWNlIEpTQyB7
CiBjbGFzcyBGdW5jdGlvblByb3RvdHlwZTsKIAogY2xhc3MgSW50ZXJuYWxGdW5jdGlvbiA6IHB1
YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CisgICAgZnJpZW5kIGNsYXNzIEpJVDsKKyAgICBm
cmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogcHVibGljOgogICAgIHR5cGVkZWYg
SlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEltcGxlbWVudHNIYXNJbnN0YW5j
ZSB8IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgfCBUeXBlT2ZTaG91bGRDYWxsR2V0Q2Fs
bERhdGE7CkBAIC00NCwyMCArNDcsNDAgQEAgY2xhc3MgSW50ZXJuYWxGdW5jdGlvbiA6IHB1Ymxp
YyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvKQogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOyAKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdWJjbGFzc1N0
cnVjdHVyZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG5ld1RhcmdldCwgU3RydWN0dXJlKik7CiAKKyAg
ICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbkZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQpCisgICAgeworICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKKyAgICAgICAg
ICAgIHJldHVybiBtX2Z1bmN0aW9uRm9yQ2FsbDsKKyAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29k
ZUZvckNvbnN0cnVjdCk7CisgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uRm9yQ29uc3RydWN0Owor
ICAgIH0KKworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgeworICAgICAgICBpZiAoa2luZCA9PSBD
b2RlRm9yQ2FsbCkKKyAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSW50ZXJuYWxG
dW5jdGlvbiwgbV9mdW5jdGlvbkZvckNhbGwpOworICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2Rl
Rm9yQ29uc3RydWN0KTsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihJbnRlcm5hbEZ1
bmN0aW9uLCBtX2Z1bmN0aW9uRm9yQ29uc3RydWN0KTsKKyAgICB9CisKIHByb3RlY3RlZDoKLSAg
ICBKU19FWFBPUlRfUFJJVkFURSBJbnRlcm5hbEZ1bmN0aW9uKFZNJiwgU3RydWN0dXJlKik7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgSW50ZXJuYWxGdW5jdGlvbihWTSYsIFN0cnVjdHVyZSosIE5h
dGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ2FsbCwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb25Gb3JD
b25zdHJ1Y3QpOwogCiAgICAgZW51bSBjbGFzcyBOYW1lVmlzaWJpbGl0eSB7IFZpc2libGUsIEFu
b255bW91cyB9OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0m
LCBjb25zdCBTdHJpbmcmIG5hbWUsIE5hbWVWaXNpYmlsaXR5ID0gTmFtZVZpc2liaWxpdHk6OlZp
c2libGUpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3ViY2xhc3NTdHJ1Y3R1cmVTbG93KEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmV3VGFyZ2V0LCBTdHJ1
Y3R1cmUqKTsKIAotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENv
bnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOworICAgIEpTX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOworCisg
ICAgTmF0aXZlRnVuY3Rpb24gbV9mdW5jdGlvbkZvckNhbGw7CisgICAgTmF0aXZlRnVuY3Rpb24g
bV9mdW5jdGlvbkZvckNvbnN0cnVjdDsKICAgICBXcml0ZUJhcnJpZXI8SlNTdHJpbmc+IG1fb3Jp
Z2luYWxOYW1lOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGQxYTE4NGYzYzE2MjI2Njhl
NTFjNmM1NDU5YTk1NmI1Y2NkMWE1MjcuLjAzYjg3YjA2NTk3NDYwNmY5MzFiMWFhNDMwZTM2MjM5
YmEwY2IyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxD
b2xsYXRvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ5LDYgKzQ5LDkgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3Vw
cG9ydGVkTG9jYWxlc08KIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsQ29sbGF0b3IoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3IoRXhlY1N0YXRl
Kik7CisKIGNvbnN0IENsYXNzSW5mbyBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAmY29sbGF0b3JDb25zdHJ1
Y3RvclRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEludGxDb2xsYXRvckNvbnN0
cnVjdG9yKSB9OwogCiAvKiBTb3VyY2UgZm9yIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmx1dC5o
CkBAIC02NiwxMSArNjksMTEgQEAgSW50bENvbGxhdG9yQ29uc3RydWN0b3IqIEludGxDb2xsYXRv
ckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnUKIAogU3RydWN0dXJl
KiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFs
RnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIEludGxDb2xsYXRv
ckNvbnN0cnVjdG9yOjpJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlKQorICAgIDog
SW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsSW50bENvbGxhdG9yLCBjb25zdHJ1
Y3RJbnRsQ29sbGF0b3IpCiB7CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxDb2xsYXRvcihFeGVjU3RhdGUqIHN0YXRl
KQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29sbGF0b3IpOwogfQogCi1Db25zdHJ1Y3RU
eXBlIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjb25zdHJ1Y3RJbnRsQ29sbGF0b3I7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5
cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY2FsbEludGxDb2xsYXRvcjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7
Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9yQ29uc3RydWN0
b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKEV4ZWNTdGF0ZSogc3RhdGUpCiB7CiAgICAgVk0mIHZt
ID0gc3RhdGUtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaAppbmRleCBjZjM0NjhmYjEzMDUwZDE3MjZmZGMx
ZjNiZjdjMmIzZmRlOTFhMmMwLi4wZGI4NmM3MmQ0ZmExOWVhZmY5MWI4YjFmMDEyZmFjNmU2ZGYy
YjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0
b3JDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxD
b2xsYXRvckNvbnN0cnVjdG9yLmgKQEAgLTUxLDggKzUxLDYgQEAgY2xhc3MgSW50bENvbGxhdG9y
Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAg
SW50bENvbGxhdG9yQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29u
c3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICBz
dGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAgCiAg
ICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9jb2xsYXRvclN0cnVjdHVyZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZv
cm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCA1MDEwZTE3NTY0MjY3MjYzZThhZGFmYjM4NWE4ZDhi
YjM0OTg0NDhiLi41YWY4MmFiYTMxMjdlNWRiNWVkYmE5ODk2YjczNjExMmU1NmFlZjdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERh
dGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC02NiwxMSArNjYsMTQgQEAgSW50bERhdGVU
aW1lRm9ybWF0Q29uc3RydWN0b3IqIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVh
dGUoVk0mIHZtLCBTdHIKIAogU3RydWN0dXJlKiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQoRXhlY1N0YXRlKik7
CisKIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpJbnRsRGF0ZVRpbWVGb3JtYXRDb25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSW50ZXJuYWxGdW5j
dGlvbih2bSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJl
LCBjYWxsSW50bERhdGVUaW1lRm9ybWF0LCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQpCiB7
CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbEludGxEYXRlVGltZUZvcm1hdChFeGVjU3RhdGUqIHN0YXRlKQogICAgIH0pKTsK
IH0KIAotQ29uc3RydWN0VHlwZSBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAg
IGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0SW50bERhdGVUaW1lRm9y
bWF0OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBJbnRs
RGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
IGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxJbnRsRGF0
ZVRpbWVGb3JtYXQ7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBv
cnRlZExvY2FsZXNPZihFeGVjU3RhdGUqIHN0YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52
bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmgKaW5kZXggZjFiYTI2N2NiOTNmODc1ODE1ZTQ5
YmYxNzliYTljYzU1M2YwNjlkMy4uOGU2MTA2NTA4M2EwMjEwY2ZhZjNkMjUzMDhiYTM5YTk0ZGFl
YmJjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5oCkBAIC01MSw4ICs1MSw2IEBAIGNsYXNz
IEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24g
ewogCiBwcml2YXRlOgogICAgIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yKFZNJiwgU3Ry
dWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwq
LCBTbG90VmlzaXRvciYpOwogICAgIAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZGF0
ZVRpbWVGb3JtYXRTdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCAyZjZl
YWRmYjhhYjU3MTZjZGQzNzJkNTkwYWMxZjliNTZiOWMzNzEzLi4yOTcyMTBjNmRlOGMxODVmZmVi
YzVmNjhhZTkzODhkY2JkMGQ1OTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTY2
LDExICs2NiwxNCBAQCBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IqIEludGxOdW1iZXJGb3Jt
YXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dQogCiBTdHJ1Y3R1cmUqIEludGxO
dW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVu
Y3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsTnVtYmVyRm9ybWF0KEV4ZWNTdGF0ZSopOwor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bE51bWJlckZv
cm1hdChFeGVjU3RhdGUqKTsKKwogSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpJbnRsTnVt
YmVyRm9ybWF0Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6
IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24o
dm0sIHN0cnVjdHVyZSwgY2FsbEludGxOdW1iZXJGb3JtYXQsIGNvbnN0cnVjdEludGxOdW1iZXJG
b3JtYXQpCiB7CiB9CiAKQEAgLTEyMywxOCArMTI2LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbEludGxOdW1iZXJGb3JtYXQoRXhlY1N0YXRlKiBzdGF0ZSkKICAg
ICB9KSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17
Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RJbnRsTnVtYmVy
Rm9ybWF0OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBJ
bnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
JiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSW50bE51
bWJlckZvcm1hdDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRl
ZExvY2FsZXNPZihFeGVjU3RhdGUqIHN0YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZv
cm1hdENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0Q29uc3RydWN0b3IuaAppbmRleCBkNzYyMTYxZGRhMjM5YmNiNWM5MTg5MmEwMjVj
ODU4ZDA0NDhkZmVhLi5lNDNkZWEzZWUyMGM4OTcwODUwMWY2NWJhMDEzZTQyMDhkYjExOTdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVt
YmVyRm9ybWF0Q29uc3RydWN0b3IuaApAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBJbnRsTnVtYmVy
Rm9ybWF0Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6
CiAgICAgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAg
c3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
Jik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYp
OwogICAgIAogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fbnVtYmVyRm9ybWF0U3RydWN0
dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1
ZmZlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZGJiMzczYzhmNTg1YTNjMWMwNjZjYzQzZWUy
ODgxMjdhNjBmMTAyYy4uYmYyZTkxN2VmYTEwOWNmZmY0ZmI5ZDNmOGE1ZTY2NTRmOGNhODhiNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5
QnVmZmVyQ29uc3RydWN0b3IuY3BwCkBAIC00NCw4ICs0NCwxMSBAQCBjb25zdCBDbGFzc0luZm8g
SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7CiAgICAgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IpCiB9OwogCitzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXJyYXlCdWZmZXIoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihFeGVjU3RhdGUq
KTsKKwogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3Io
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBzaGFy
aW5nTW9kZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSwgY2FsbEFycmF5QnVmZmVyLCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcikKICAgICAsIG1fc2hh
cmluZ01vZGUoc2hhcmluZ01vZGUpCiB7CiB9CkBAIC03Nyw3ICs4MCw3IEBAIFN0cnVjdHVyZSog
SlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoCiAgICAgVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoCi0gICAgICAgIHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAg
ICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rp
b25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykK
QEAgLTEyMSwxOSArMTI0LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbEFycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZXhl
Yywgc2NvcGUsICJBcnJheUJ1ZmZlciIpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBKU0FycmF5QnVm
ZmVyQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoCi0gICAgSlNDZWxsKiwgQ29uc3RydWN0
RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNvbnN0cnVjdEFycmF5QnVmZmVyOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0
OwotfQotCi1DYWxsVHlwZSBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpT
Q2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjYWxsQXJyYXlCdWZmZXI7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKIC8vIEVDTUEgMjQuMS4zLjEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKaW5k
ZXggOWM3NTMyNDg4Njc5ZTIyMzMyZjVkNDNhYjJlZDE5MjdmYTg3MTZiYy4uNzk0ZmY4Njg2MzM2
YzIwODNhMjZjNTE4MTdhMjVlMDRmZGM5OThkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgKQEAgLTUwLDEw
ICs1MCw2IEBAIGNsYXNzIEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5h
bEZ1bmN0aW9uIHsKICAgICAKICAgICBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlIHNoYXJpbmdNb2Rl
KCkgY29uc3QgeyByZXR1cm4gbV9zaGFyaW5nTW9kZTsgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgc3Rh
dGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7
Ci0KIHByaXZhdGU6CiAgICAgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBtX3NoYXJpbmdNb2RlOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaAppbmRleCAzZjE4ZTBlZmM2Mjgy
NTllMzc3NjNiMjlmN2NmZTVkODJjNWJiOGViLi43YjZkZmQ0NGMxYjYzODgwNmQ1ZWFkOGMyMGFl
YjU3NmUxNmNiZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCkBAIC01
NywxMCArNTcsNiBAQCBjbGFzcyBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yIDog
cHVibGljIEludGVybmFsRnVuY3Rpb24gewogI2VuZGlmCiAgICAgCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3Rv
dHlwZSk7Ci0KLXByb3RlY3RlZDoKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggNDYw
MzlmYTI1YmVlNmEwOTNmOWZhYmJjNTk1ZTY5NjNjMDk3ODlkOC4uODU4MzM2ZmVkNGViMzI2MjJi
ZDJiOTgyZGFkOWRhNGZkYmNlNmJjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9ySW5saW5lcy5oCkBAIC0zOCw4ICszOCwxNCBAQAogbmFtZXNwYWNlIEpTQyB7CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxHZW5lcmljVHlwZWRBcnJheVZpZXcoRXhlY1N0YXRlKik7CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSopOworCit0ZW1wbGF0ZTx0eXBl
bmFtZSBWaWV3Q2xhc3M+CiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yPFZpZXdD
bGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0s
IHN0cnVjdHVyZSwgY2FsbEdlbmVyaWNUeXBlZEFycmF5VmlldzxWaWV3Q2xhc3M+LCBjb25zdHJ1
Y3RHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPikKIHsKIH0KIApAQCAtNzMsNyArNzks
NyBAQCBTdHJ1Y3R1cmUqIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8Vmlld0Ns
YXNzPjo6Y3JlYXRlU3RydWN0dXJlKAogICAgIFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7CiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKAotICAgICAgICB2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgdm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CkBAIC0xOTks
OSArMjA1LDYgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZp
ZXdXaXRoQXJndW1lbnRzKEV4ZWNTdGF0ZSogZXhlYywgU3QKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5l
cmljVHlwZWRBcnJheVZpZXcoRXhlY1N0YXRlKik7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdD
bGFzcz4KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJpY1R5cGVk
QXJyYXlWaWV3KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpA
QCAtMjQ5LDEzICsyNTIsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFZpZXdDbGFzcz4KLUNvbnN0cnVjdFR5cGUgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3RvcjxWaWV3Q2xhc3M+OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPjsKLSAgICByZXR1
cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNz
Pgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyaWNUeXBlZEFy
cmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAg
LTI2MywxMSArMjU5LDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEdlbmVyaWNUeXBlZEFycmF5VmlldyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVy
cm9yKGV4ZWMsIHNjb3BlLCBWaWV3Q2xhc3M6OmluZm8oKS0+Y2xhc3NOYW1lKSk7CiB9CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUNhbGxUeXBlIEpTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3I8Vmlld0NsYXNzPjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
IGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxHZW5lcmlj
VHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPjsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAppbmRleCAx
N2ZlZDg5MzU5Y2JjNTg1ZjZhODcxN2U2OGUxOTA0ZDE3YTZmMWZhLi5kYTNmODEzZDMzNmQxMmVm
ZDZkMzBmMzRlYzg1MTdhYTRhN2U3ODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmNwcApA
QCAtNTQsMTIgKzU0LDcgQEAgSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvciogSlNJbnRlcm5h
bFByb21pc2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWMKIAogU3RydWN0dXJlKiBK
U0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Ci19Ci0KLUpTSW50ZXJuYWxQ
cm9taXNlQ29uc3RydWN0b3I6OkpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLXsKKyAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQog
CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RQcm9taXNlKEV4
ZWNTdGF0ZSogZXhlYykKQEAgLTcxLDE2ICs2Niw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb21pc2UoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocHJvbWlzZSk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgSlNJbnRlcm5h
bFByb21pc2VDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY29uc3RydWN0UHJvbWlzZTsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0K
LQotQ2FsbFR5cGUgSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQorSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvcjo6
SlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjb25zdHJ1Y3RQcm9taXNlLCBjb25zdHJ1Y3RQ
cm9taXNlKQogewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFByb21p
c2U7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9t
aXNlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJu
YWxQcm9taXNlQ29uc3RydWN0b3IuaAppbmRleCA4MWJkMmI4NTEyZDYyMDQ3ZDMxNjE5N2RjY2Iz
ZGQ4NmYyMjYyYmE5Li4wOThhMzg1MjdiNjJhYTQyMmY1YmI1NGQ0ODQxYjdjNjZlODdhMDljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRl
cm5hbFByb21pc2VDb25zdHJ1Y3Rvci5oCkBAIC00NCw4ICs0NCw2IEBAIGNsYXNzIEpTSW50ZXJu
YWxQcm9taXNlQ29uc3RydWN0b3IgOiBwdWJsaWMgSlNQcm9taXNlQ29uc3RydWN0b3IgewogCiBw
cml2YXRlOgogICAgIEpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUq
KTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENv
bnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwg
Q2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwCmluZGV4IGQy
MTYxMTE3NjFhNDA2NWFjYTkzMWM0ZThmY2VkNWRmZDRkMDczNDkuLmQ0N2I4ZDQ1NDNjNDZkZjc0
NGZhYzhjNzdiYzBkYzIyOTJlODNhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5jcHAKQEAgLTcwLDExICs3MCwyMCBA
QCBKU1Byb21pc2VDb25zdHJ1Y3RvciogSlNQcm9taXNlQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLAogCiBTdHJ1Y3R1cmUqIEpTUHJvbWlzZUNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKIH0KIAorCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsUHJvbWlzZShFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnN0cnVjdFByb21pc2UoRXhlY1N0YXRlKik7CisKIEpTUHJvbWlzZUNvbnN0
cnVjdG9yOjpKU1Byb21pc2VDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBj
YWxsUHJvbWlzZSwgY29uc3RydWN0UHJvbWlzZSkKK3sKK30KKworSlNQcm9taXNlQ29uc3RydWN0
b3I6OkpTUHJvbWlzZUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE5h
dGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uRm9yQ2FsbCwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb25Gb3JD
b25zdHJ1Y3QpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGZ1bmN0aW9uRm9yQ2FsbCwgZnVu
Y3Rpb25Gb3JDb25zdHJ1Y3QpCiB7CiB9CiAKQEAgLTExOCwyMCArMTI3LDQgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFByb21pc2UoRXhlY1N0YXRlKiBleGVjKQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVk
QXNGdW5jdGlvblR5cGVFcnJvcihleGVjLCBzY29wZSwgIlByb21pc2UiKSk7CiB9CiAKLUNvbnN0
cnVjdFR5cGUgSlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwg
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFByb21pc2U7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6
Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIEpTUHJvbWlzZUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShK
U0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgd29y
a2Fyb3VuZC4gU2luY2UgSlNDIGRvZXMgbm90IGV4cG9zZSBAaXNDb25zdHJ1Y3RvciB0byBKUyBi
dWlsdGlucywKLSAgICAvLyB3ZSB1c2UgdHlwZW9mIGZ1bmN0aW9uID09PSAiZnVuY3Rpb24iIG5v
dy4gQW5kIHNpbmNlIHR5cGVvZiBjb25zdHJ1Y3RvcldpdGhvdXRDYWxsYWJpbGl0eQotICAgIC8v
IHJldHVybnMgIm9iamVjdCIsIHdlIG5lZWQgdG8gZGVmaW5lIFtbQ2FsbF1dIGZvciBub3cuCi0g
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA5MwotICAg
IGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxQcm9taXNlOwotICAgIHJldHVybiBDYWxs
VHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuaAppbmRleCAwYmVjYTA0
ZTIwYTMyNzA2OTg1MTcyYjMzZDc2MGUyZjM1ODE3YjZlLi5lYmRmNTcxY2I4OGQyOGI1MTMxNjJk
Zjg1N2FlM2UwZjhiNTUzOTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmgKQEAgLTQ1LDEyICs0NSwxMCBAQCBjbGFzcyBK
U1Byb21pc2VDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJvdGVj
dGVkOgogICAgIEpTUHJvbWlzZUNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CisgICAgSlNQ
cm9taXNlQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqLCBOYXRpdmVGdW5jdGlvbiwgTmF0aXZl
RnVuY3Rpb24pOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU1Byb21pc2VQcm90b3R5
cGUqLCBHZXR0ZXJTZXR0ZXIqKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlw
ZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMg
Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLQogICAgIHZvaWQgYWRk
T3duSW50ZXJuYWxTbG90cyhWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCmluZGV4IGMwMTcwMjM0ZTI4NmFiNzcwODllOGFmMTgy
MWU3NDA2NDMzMWFmMmUuLjg1MzU2ZDM5NzdhZWQ1YzczYjg5YWZmMDVjOTdjMjQyZjk1YmI0ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCkBAIC01OSw2ICs1OSw3IEBA
IGVudW0gSlNUeXBlIDogdWludDhfdCB7CiAgICAgRmluYWxPYmplY3RUeXBlLAogICAgIEpTQ2Fs
bGVlVHlwZSwKICAgICBKU0Z1bmN0aW9uVHlwZSwKKyAgICBJbnRlcm5hbEZ1bmN0aW9uVHlwZSwK
ICAgICBOdW1iZXJPYmplY3RUeXBlLAogICAgIEVycm9ySW5zdGFuY2VUeXBlLAogICAgIFB1cmVG
b3J3YXJkaW5nUHJveHlUeXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggN2I0NmU2
NDRmMTg3ZDE0ZmJlNzY5NGMzMDg2M2I2MjI5ZjdiNGVkNS4uMmM4MDVmNWU0ZDZmMjJiMjc4Zjg4
NDcxODZjOTBhMDllZDFkNDYzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3BwCkBAIC0zNyw4
ICszNywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc3RydWN0VHlwZWRBcnJheVZpZXcoRXhlY1N0YXRlKik7CisKIEpTVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAg
OiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3LCBjb25zdHJ1Y3RU
eXBlZEFycmF5VmlldykKIHsKIH0KIApAQCAtNTgsNyArNjAsNyBAQCB2b2lkIEpTVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsTwogU3RydWN0dXJlKiBKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZSgKICAgICBWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOwogfQogCiAKQEAgLTcwLDE2ICs3Miw0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KEV4ZWNTdGF0ZSogZXhlYykK
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCIl
VHlwZWRBcnJheSUgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkiKSk7CiB9CiAKLUNvbnN0
cnVjdFR5cGUgSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RUeXBlZEFycmF5VmlldzsKLSAgICByZXR1cm4g
Q29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgSlNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAg
Y2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0VHlwZWRBcnJheVZpZXc7Ci0gICAg
cmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9yLmgKaW5kZXggZDc4MTdlMjVmMWUxMjlmNTIzNTY4MjliODkwNTA3Y2VjNzAwODVl
Mi4uNDE0NWNjY2U1OGNlY2VlNzFjODkxMTRmNzY1YzcyMmYzOTUyMWVlZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9yLmgKQEAgLTUxLDkgKzUxLDYgQEAgY2xhc3MgSlNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIERFQ0xBUkVfSU5GTzsKIAog
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgSlNWYWx1ZSBwcm90b3R5cGUpOwotcHJvdGVjdGVkOgotICAgIHN0YXRpYyBDb25zdHJ1Y3RU
eXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRp
YyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKICAgICAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFw
Q29uc3RydWN0b3IuY3BwCmluZGV4IDk2MGVlOGJkNGExOWNkMjZhMmNiMWUzYWU1Yzg1ODI4ZGEy
YTE2MzEuLjM5MTRmMmM4Y2YyOTdhNzRjY2U2N2JmZGRmMGQxMjJmNTU0YjdiODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ3
LDYgKzQ3LDE0IEBAIHZvaWQgTWFwQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
TWFwUHJvdG90eXBlKiBtYXBQcm90b3R5cGUsIEdldHRlclNlCiAgICAgcHV0RGlyZWN0Tm9uSW5k
ZXhBY2Nlc3Nvcih2bSwgdm0ucHJvcGVydHlOYW1lcy0+c3BlY2llc1N5bWJvbCwgc3BlY2llc1N5
bWJvbCwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAorc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1hcChFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE1hcChFeGVjU3RhdGUqKTsKKworTWFw
Q29uc3RydWN0b3I6Ok1hcENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxNYXAsIGNvbnN0cnVjdE1hcCkKK3sKK30K
Kwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1hcChFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTExMywxOCArMTIxLDYgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TWFwKEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG1hcCk7CiB9CiAKLUNvbnN0cnVj
dFR5cGUgTWFwQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0
RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNvbnN0cnVjdE1hcDsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQot
Q2FsbFR5cGUgTWFwQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBj
YWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsTWFwOwotICAg
IHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEhlYWQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFT
U0VSVChpc0pTTWFwKGV4ZWMtPmFyZ3VtZW50KDApKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuaAppbmRleCBjNDhhMzVhZDA1MjhhMWY4Mzc4ZWYw
NGY4MzMyZTFlNTA1MTk4NTM5Li42NDU3MWM3NTFkNjUwOTYwNmU0YTgyNzBjZDdmNTE5NjliOWQz
NWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1
Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9y
LmgKQEAgLTQ3LDE3ICs0NywxMyBAQCBjbGFzcyBNYXBDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRl
cm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBp
bmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNYXBDb25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICB7
Ci0gICAgfQorICAgIE1hcENvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CisKICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKFZNJiwgTWFwUHJvdG90eXBlKiwgR2V0dGVyU2V0dGVyKiBzcGVjaWVz
U3ltYm9sKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2Vs
bCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFw
UHJpdmF0ZUZ1bmNNYXBCdWNrZXRIZWFkKEV4ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRl
eCA1N2ZjMWM0YWY1MDhkMDBiNmJkY2UzZTFlMmVkNTYwYmZlNjFlZDc5Li41ZmQzYTY3NzY3ZjAx
MzBiZWNiM2E2NmM4NjlhZTdkYzIyYTc4YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzUsNyAr
MzUsNyBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvcik7CiBjb25zdCBDbGFzc0luZm8gTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE5hdGl2ZUVycm9yQ29uc3RydWN0b3IpIH07
CiAKIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVj
dHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgSW50ZXJwcmV0ZXI6
OmNhbGxOYXRpdmVFcnJvckNvbnN0cnVjdG9yLCBJbnRlcnByZXRlcjo6Y29uc3RydWN0V2l0aE5h
dGl2ZUVycm9yQ29uc3RydWN0b3IpCiB7CiB9CiAKQEAgLTczLDEyICs3Myw2IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50ZXJwcmV0ZXI6OmNvbnN0cnVjdFdpdGhOYXRpdmVFcnJv
ckNvbnN0cnVjdG9yKEV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNl
OjpjcmVhdGUoZXhlYywgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3Ro
aW5nLCBmYWxzZSkpOwogfQogCi1Db25zdHJ1Y3RUeXBlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6
OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkK
LXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IEludGVycHJldGVyOjpjb25z
dHJ1Y3RXaXRoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlw
ZTo6SG9zdDsKLX0KLSAgICAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50ZXJwcmV0
ZXI6OmNhbGxOYXRpdmVFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBK
U1ZhbHVlIG1lc3NhZ2UgPSBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTg2LDEwICs4MCw0IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50ZXJwcmV0ZXI6OmNhbGxOYXRpdmVFcnJvckNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5z
dGFuY2U6OmNyZWF0ZShleGVjLCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlw
ZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUNhbGxUeXBlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6
OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBJbnRlcnByZXRlcjo6Y2FsbE5hdGl2ZUVycm9yQ29uc3RydWN0
b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29u
c3RydWN0b3IuaAppbmRleCAxNmU3NzJkN2Q2ZTEzZGZlMWVjNGVhZmY2MmYwNDkyZjA0ZDc2ZTg1
Li5kMmI4MDk3MjMyZWI0YzUxMDg0ZGRiMWJlMjhhY2M0NmMwYWEyOGU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5o
CkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlw
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKICAgICB9CiAKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlKCkgeyBy
ZXR1cm4gbV9lcnJvclN0cnVjdHVyZS5nZXQoKTsgfQpAQCAtNTQsOCArNTQsNiBAQCBjbGFzcyBO
YXRpdmVFcnJvckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2
YXRlOgogICAgIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBz
dGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
KTsKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7
CiAKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2Vycm9yU3RydWN0dXJlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHAK
aW5kZXggYmE0NmIzMDJjODJhNDJiN2JmNmRkZDg4ZjA0NmRlNDg1ZDg2MDFlMi4uYTU2Y2FiM2Zh
ZTc5ZWU5NDVlNjk3NjYyNGExNjRiNWIxOGQ4ZjRjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uY3BwCkBAIC00MCwxNSArNDAs
OSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmV0dXJuVW5kZWZp
bmVkKEV4ZWNTdGF0ZSopCiB9CiB9CiAKLUNhbGxUeXBlIE51bGxHZXR0ZXJGdW5jdGlvbjo6Z2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQorTnVsbEdldHRlckZ1bmN0aW9u
OjpOdWxsR2V0dGVyRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6
IEJhc2Uodm0sIHN0cnVjdHVyZSwgTnVsbEdldHRlckZ1bmN0aW9uSW50ZXJuYWw6OmNhbGxSZXR1
cm5VbmRlZmluZWQsIG51bGxwdHIpCiB7Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
TnVsbEdldHRlckZ1bmN0aW9uSW50ZXJuYWw6OmNhbGxSZXR1cm5VbmRlZmluZWQ7Ci0gICAgcmV0
dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCi1Db25zdHJ1Y3RUeXBlIE51bGxHZXR0ZXJGdW5jdGlv
bjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJikKLXsKLSAgICByZXR1
cm4gQ29uc3RydWN0VHlwZTo6Tm9uZTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uaAppbmRleCA2MzM5NzczNzJiMzE5MTQ3
N2I5NGE3OTNmODFlMjFlYmRjODA4ZmE1Li4xZjMwN2Q3YzA4MTViMzBmYzIwZjk5YTNjNmVjYTVj
YTNlNDEzMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxs
R2V0dGVyRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxs
R2V0dGVyRnVuY3Rpb24uaApAQCAtNDQsMTYgKzQ0LDExIEBAIGNsYXNzIE51bGxHZXR0ZXJGdW5j
dGlvbiA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBOdWxsR2V0
dGVyRnVuY3Rpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBn
ZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKKyAgICBOdWxsR2V0dGVyRnVu
Y3Rpb24oVk0mLCBTdHJ1Y3R1cmUqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAK
aW5kZXggNmFmMGQxYTg1ZGYyMGZmMDgxYTk4N2NmZGRkYTY3ZDUxYWI2ZTBlNi4uY2RkMTEyZWJi
ZjFlYjVhNTkxOGM5NjU3MzE3Y2Q3ZGJkYTc0NmM0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCkBAIC04MiwxNSArODIs
OSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmV0dXJuVW5kZWZp
bmVkKEV4ZWNTdGF0ZSogZXhlYykKIH0KIH0KIAotQ2FsbFR5cGUgTnVsbFNldHRlckZ1bmN0aW9u
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCitOdWxsU2V0dGVyRnVu
Y3Rpb246Ok51bGxTZXR0ZXJGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQor
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBOdWxsU2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6Y2Fs
bFJldHVyblVuZGVmaW5lZCwgbnVsbHB0cikKIHsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBOdWxsU2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6Y2FsbFJldHVyblVuZGVmaW5lZDsKLSAg
ICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KLUNvbnN0cnVjdFR5cGUgTnVsbFNldHRlckZ1
bmN0aW9uOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKQotewotICAg
IHJldHVybiBDb25zdHJ1Y3RUeXBlOjpOb25lOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5oCmluZGV4IDdjNGQ5NjQwZjlm
NTkwOWEwOGM1OGZlMGVlOWE1Mjc2YTFiZmY5Y2UuLjA1MTUwM2RlM2Y4ODZhYWZjY2I4ZThhOThh
MGMzMjIzYzY1NzlhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bGxTZXR0ZXJGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bGxTZXR0ZXJGdW5jdGlvbi5oCkBAIC00NCwxNiArNDQsMTEgQEAgY2xhc3MgTnVsbFNldHRl
ckZ1bmN0aW9uIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25U
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIE51
bGxTZXR0ZXJGdW5jdGlvbihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6
IEJhc2Uodm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQotICAgIHN0YXRpYyBDb25zdHJ1Y3RU
eXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRp
YyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOworICAgIE51bGxTZXR0
ZXJGdW5jdGlvbihWTSYsIFN0cnVjdHVyZSopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggYjMxMTQyNzBhNDNhMmM4NjY5N2Q1MzVkYzYyZDg5MjM2M2QyMjQ4ZC4uZTNjYzFl
Yjg4NmUyY2JkZTNmMWNlMzY3NDFkYTk1ZGQzMjVlNzNiNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcApAQCAtNTMsOCArNTMs
MTEgQEAgY29uc3QgQ2xhc3NJbmZvIE51bWJlckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5j
dGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKIEBlbmQKICovCiAKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxOdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE51bWJlckNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSopOworCiBOdW1iZXJDb25zdHJ1Y3Rvcjo6TnVtYmVyQ29uc3RydWN0
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24o
dm0sIHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2Fs
bE51bWJlckNvbnN0cnVjdG9yLCBjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvcikKIHsKIH0KIApA
QCAtODAsNyArODMsNyBAQCB2b2lkIE51bWJlckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIE51bWJlclByb3RvdHlwZSogbnVtYmVyUHJvdG90eXBlKQogfQogCiAvLyBFQ01BIDE1
LjcuMQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE51
bWJlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykK
IHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTk0LDI0ICs5NywxMiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoTnVtYmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUob2JqZWN0KTsKIH0KIAotQ29uc3RydWN0VHlw
ZSBOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY29uc3RydWN0V2l0aE51bWJlckNvbnN0cnVjdG9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RU
eXBlOjpIb3N0OwotfQotCiAvLyBFQ01BIDE1LjcuMgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbE51bWJlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKCFleGVjLT5hcmd1bWVudENvdW50KCkg
PyAwIDogZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkudG9OdW1iZXIoZXhlYykpKTsKIH0KIAot
Q2FsbFR5cGUgTnVtYmVyQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRh
JiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsTnVtYmVy
Q29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiAvLyBFQ01BLTI2
MiAyMC4xLjIuMwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyQ29u
c3RydWN0b3JGdW5jSXNJbnRlZ2VyKEV4ZWNTdGF0ZSogZXhlYykKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCmluZGV4IDUxZTRmYTMw
NDliM2Q0YTMxZWNkNGI0ODc0NzJiNzE4MDQ1MGJlYzguLjEwZjU4YTI1ZWNkZjYzODBlZGU1Njli
NGJkZTFkOTI3NDlmZDVmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBOdW1iZXJDb25z
dHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG8pIAogICAgIHsgCi0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKIHByb3RlY3RlZDoKQEAgLTUxLDggKzUxLDYg
QEAgY2xhc3MgTnVtYmVyQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAK
IHByaXZhdGU6CiAgICAgTnVtYmVyQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBz
dGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDBlZTk2NjU4ZmY5OTM3MDI3
ZjQ3YWI5NTNkMDlkNjEzM2I5NDk2MWQuLmE4NzNhODE4ODgwNTFlZDc5OGM5NjQ1ZDUzOWQxZWUz
ZjI4Y2IwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTkwLDggKzkwLDEyIEBAIGNvbnN0IENsYXNzSW5mbyBPYmpl
Y3RDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6
c19pCiBAZW5kCiAqLwogCisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsK
KwogT2JqZWN0Q29uc3RydWN0b3I6Ok9iamVjdENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxPYmplY3RDb25zdHJ1Y3Rvciwg
Y29uc3RydWN0V2l0aE9iamVjdENvbnN0cnVjdG9yKQogewogfQogCkBAIC0xNDMsMjMgKzE0Nywx
MSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoT2Jq
ZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y29uc3RydWN0T2JqZWN0KGV4ZWMsIGV4ZWMtPm5ld1RhcmdldCgpKSk7CiB9CiAKLUNvbnN0cnVj
dFR5cGUgT2JqZWN0Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3Ry
dWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5j
dGlvbiA9IGNvbnN0cnVjdFdpdGhPYmplY3RDb25zdHJ1Y3RvcjsKLSAgICByZXR1cm4gQ29uc3Ry
dWN0VHlwZTo6SG9zdDsKLX0KLQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdE9iamVjdChleGVjLCBKU1ZhbHVlKCkpKTsKIH0KIAotQ2Fs
bFR5cGUgT2JqZWN0Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBj
YWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsT2JqZWN0Q29u
c3RydWN0b3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YoRXhlY1N0YXRl
KiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAppbmRleCAxMGY5MmQyYzkyYzAx
NGQxZjAyOWVkZmU3YTUzOTdlYzMzMTdhMTc2Li4zYmQwMzBhZmRlZGFkYmM3NzM2ZTY3YTE2MDg4
ZTY2YjU5Mjg2NGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgT2JqZWN0Q29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByb3RlY3RlZDoKQEAgLTU4LDggKzU4
LDYgQEAgY2xhc3MgT2JqZWN0Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7
CiAKIHByaXZhdGU6CiAgICAgT2JqZWN0Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAg
ICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVj
dERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmKTsKIH07CiAKIGlubGluZSBKU09iamVjdCogY29uc3RydWN0RW1wdHlPYmplY3QoRXhlY1N0
YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMWYzYzQyNmZjODBjYWFm
ZDhiMzZhYjNkMDJhZjE5MzlmNzk2ODM4ZC4uNThlMTI0MjZhNDJiNTE2MTFlODMyMTU4ZTUzMDE2
OGFiYTM3ZGYxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ4LDggKzQ4LDExIEBAIFByb3h5Q29uc3RydWN0b3IqIFBy
b3h5Q29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAg
IHJldHVybiBjb25zdHJ1Y3RvcjsKIH0KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbFByb3h5KEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0UHJveHlPYmplY3QoRXhlY1N0YXRlKik7CisKIFByb3h5Q29uc3Ry
dWN0b3I6OlByb3h5Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAg
ICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbFBy
b3h5LCBjb25zdHJ1Y3RQcm94eU9iamVjdCkKIHsKIH0KIApAQCAtMTAzLDIyICsxMDYsMTAgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0UHJveHlPYmplY3Qo
RXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoUHJveHlPYmplY3Q6
OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHRhcmdldCwgaGFuZGxl
cikpOwogfQogCi1Db25zdHJ1Y3RUeXBlIFByb3h5Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERh
dGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1
Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFByb3h5T2JqZWN0OwotICAgIHJldHVy
biBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsUHJveHkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKGV4ZWMtPnZtKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVFcnJvcihleGVj
LCBzY29wZSwgIlByb3h5IikpOwogfQogCi1DYWxsVHlwZSBQcm94eUNvbnN0cnVjdG9yOjpnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY2FsbFByb3h5OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eUNvbnN0cnVjdG9yLmgKaW5kZXggNDhmNTNjODJiM2ZkNjllM2Y0MTljYjdlZWQ3N2E1
MTk3YzI5ODY2Mi4uYmFjNjBkMjQzMmEyYTY2NjEyMjMyYTg5ZWE4MDA3OTQwM2M1ZGNhYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuaApA
QCAtNDAsMTUgKzQwLDEzIEBAIGNsYXNzIFByb3h5Q29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCiAg
ICAgeyAKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsgCiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIGNvbnN0IGNo
YXIqIG5hbWUsIEpTR2xvYmFsT2JqZWN0Kik7CiAKIHByaXZhdGU6CiAgICAgUHJveHlDb25zdHJ1
Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0
cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIGdldEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJveHlSZXZva2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZv
a2UuY3BwCmluZGV4IGE1ZmNhNzhkM2U4M2M1YWY1OGU5ZTUzMDk4ZDM1ZDhmOGViOTE3YWYuLmY4
NzVmNjVkNDUxMzk0OTcwNjRkOTM2YTk3NGE3OWRmNjA4ZWVhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5jcHAKQEAgLTQyLDggKzQyLDEwIEBAIFBy
b3h5UmV2b2tlKiBQcm94eVJldm9rZTo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFByb3h5T2JqZWN0KiBwcm94CiAgICAgcmV0dXJuIHJldm9rZTsKIH0KIAorc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcGVyZm9ybVByb3h5UmV2b2tlKEV4ZWNTdGF0ZSop
OworCiBQcm94eVJldm9rZTo6UHJveHlSZXZva2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwg
cGVyZm9ybVByb3h5UmV2b2tlLCBudWxscHRyKQogewogfQogCkBAIC02OSwxMiArNzEsNiBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwZXJmb3JtUHJveHlSZXZva2UoRXhl
Y1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUNhbGxUeXBlIFByb3h5UmV2b2tlOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gcGVyZm9ybVBy
b3h5UmV2b2tlOwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogdm9pZCBQcm94eVJl
dm9rZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQog
ewogICAgIFByb3h5UmV2b2tlKiB0aGlzT2JqZWN0ID0ganNDYXN0PFByb3h5UmV2b2tlKj4oY2Vs
bCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9r
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuaAppbmRleCBl
MDI4YTdkYTZiZjJkMzVjYjBmZDNkZjNiMjIzNDllNGIzY2RlZTc5Li4xMjY4NzZlZjZmM2JlMTY1
Y2NkNmNiNWI0MWY4M2E0YWY2M2EzZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm94eVJldm9rZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3h5UmV2b2tlLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgUHJveHlSZXZva2UgOiBw
dWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvdHlwZSkgCiAgICAgeyAKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOyAKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsgCiAgICAgfQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihW
TSYsIGNvbnN0IGNoYXIqIG5hbWUsIFByb3h5T2JqZWN0Kik7CkBAIC01Miw3ICs1Miw2IEBAIGNs
YXNzIFByb3h5UmV2b2tlIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgog
ICAgIFByb3h5UmV2b2tlKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICBXcml0ZUJhcnJpZXI8VW5rbm93
bj4gbV9wcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMWM2N2RjNWUwM2FhMzJhYTZhZDZlZjEwODZlMGI3
YzJmMjZkYTcyNi4uMGY1MmFhMjRhYjNlNGZmYWVmYTUxNTNjN2JmOWYzMmE2MGM4NzBmMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcApAQCAtNzYsOCArNzYsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKIEBlbmQKICov
CiAKKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJlZ0V4cENvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworCiBSZWdFeHBDb25z
dHJ1Y3Rvcjo6UmVnRXhwQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
UmVnRXhwUHJvdG90eXBlKiByZWdFeHBQcm90b3R5cGUpCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9u
KHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxSZWdFeHBDb25zdHJ1Y3RvciwgY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9yKQogICAg
ICwgbV9jYWNoZWRSZXN1bHQodm0sIHRoaXMsIHJlZ0V4cFByb3RvdHlwZS0+ZW1wdHlSZWdFeHAo
KSkKICAgICAsIG1fbXVsdGlsaW5lKGZhbHNlKQogewpAQCAtMzEwLDIyICszMTQsMTAgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVj
dFJlZ0V4cChleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+anNDYWxsZWUoKSktPmdsb2Jh
bE9iamVjdCgpLCBhcmdzLCBleGVjLT5qc0NhbGxlZSgpLCBleGVjLT5uZXdUYXJnZXQoKSkpOwog
fQogCi1Db25zdHJ1Y3RUeXBlIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoUmVnRXhwQ29uc3RydWN0b3I7Ci0gICAg
cmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgQXJnTGlzdCBhcmdzKGV4ZWMpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3Ry
dWN0UmVnRXhwKGV4ZWMsIGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5qc0NhbGxlZSgpKS0+Z2xv
YmFsT2JqZWN0KCksIGFyZ3MsIGV4ZWMtPmpzQ2FsbGVlKCkpKTsKIH0KIAotQ2FsbFR5cGUgUmVn
RXhwQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkK
LXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsUmVnRXhwQ29uc3RydWN0b3I7
Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmlu
ZGV4IDZkNzQ2Mjc5MzMxNjNlMzVmNTBhM2FiODg4NjM3NjYyNDQxNDUxZGQuLmRhNzYwZWMwNGYw
YTc4MjdhYTY1N2NjZGI2NzkyOGMxZDZlZTBhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFz
cyBSZWdFeHBDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5h
bEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAgIERF
Q0xBUkVfSU5GTzsKQEAgLTc0LDggKzc0LDYgQEAgY2xhc3MgUmVnRXhwQ29uc3RydWN0b3IgOiBw
dWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwcml2YXRlOgogICAgIFJlZ0V4cENvbnN0cnVjdG9y
KFZNJiwgU3RydWN0dXJlKiwgUmVnRXhwUHJvdG90eXBlKik7CiAgICAgc3RhdGljIHZvaWQgZGVz
dHJveShKU0NlbGwqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAgIFJlZ0V4cENhY2hlZFJlc3VsdCBtX2NhY2hl
ZFJlc3VsdDsKICAgICBib29sIG1fbXVsdGlsaW5lOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCmluZGV4IGYxODlkMmY1YjNjYmNlYjYyYjU5
YWVmNzkyNjJhOTg5ODQ0Mzc1YTAuLmU3YjNkYzI1NjQwMDdhOTIwZDgzMWE5ZmNhYjZjZmU3N2Zl
ZTcyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1
Y3Rvci5jcHAKQEAgLTQ3LDYgKzQ3LDE0IEBAIHZvaWQgU2V0Q29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgU2V0UHJvdG90eXBlKiBzZXRQcm90b3R5cGUsIEdldHRlclNlCiAgICAg
cHV0RGlyZWN0Tm9uSW5kZXhBY2Nlc3Nvcih2bSwgdm0ucHJvcGVydHlOYW1lcy0+c3BlY2llc1N5
bWJvbCwgc3BlY2llc1N5bWJvbCwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0K
IAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFNldChFeGVjU3RhdGUq
KTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFNldChFeGVj
U3RhdGUqKTsKKworU2V0Q29uc3RydWN0b3I6OlNldENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxTZXQsIGNvbnN0
cnVjdFNldCkKK3sKK30KKwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bFNldChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTk5
LDE4ICsxMDcsNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RTZXQoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2V0KTsK
IH0KIAotQ29uc3RydWN0VHlwZSBTZXRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0Nl
bGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0U2V0OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBl
OjpIb3N0OwotfQotCi1DYWxsVHlwZSBTZXRDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxs
KiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9
IGNhbGxTZXQ7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVGdW5jU2V0QnVja2V0SGVhZChFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgQVNTRVJUKGlzSlNTZXQoZXhlYy0+YXJndW1lbnQoMCkpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oCmluZGV4IDQ1ZjAxMzA2
NTAyZjY5NzIyMGQ1NDViNDcxMGIwYzY1MDFmNjc4NDIuLmRkNGE0ZDE4YjZjODliN2VjOGU5MTZl
Mzk2Y2E3OWE4YzViODg1YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NldENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2V0Q29uc3RydWN0b3IuaApAQCAtNDcsMTcgKzQ3LDEyIEBAIGNsYXNzIFNldENvbnN0cnVjdG9y
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNldENvbnN0cnVj
dG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlKQotICAgIHsKLSAgICB9CisgICAgU2V0Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUq
KTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgU2V0UHJvdG90eXBlKiwgR2V0dGVyU2V0
dGVyKiBzcGVjaWVzU3ltYm9sKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1
Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRIZWFkKEV4ZWNTdGF0ZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IDM3OTk2YTgyMTNiYWUyNWU5NWUxODEyOTllZmQxOTQxMDlkODVlNTkuLjEwNjllZmU2ZDBh
MmNiYTUxYjk4MThmMmNiMjdkY2I4NWNmOGYxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKQEAgLTUyLDggKzUyLDEyIEBA
IGNvbnN0IENsYXNzSW5mbyBTdHJpbmdDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24i
LCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RF
U1RSVUNUSUJMRShTdHJpbmdDb25zdHJ1Y3Rvcik7CiAKKworc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOworc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSopOworCiBTdHJpbmdDb25zdHJ1Y3Rvcjo6U3RyaW5nQ29uc3RydWN0b3Io
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEludGVybmFsRnVuY3Rpb24odm0s
IHN0cnVjdHVyZSkKKyAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbFN0
cmluZ0NvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3IpCiB7CiB9CiAK
QEAgLTEzNCwxMiArMTM4LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXgKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKFN0cmluZ09iamVjdDo6Y3JlYXRlKHZtLCBzdHJ1Y3R1cmUsIHN0cikp
OwogfQogCi1Db25zdHJ1Y3RUeXBlIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0
RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3I7Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KIEpTQ2VsbCogc3RyaW5nQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGFyZ3VtZW50KQogewogICAgIGlmIChhcmd1
bWVudC5pc1N5bWJvbCgpKQpAQCAtMTU0LDEwICsxNTIsNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc3RyaW5nQ29uc3RydWN0b3IoZXhlYywgZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMCkpKTsKIH0KIAotQ2FsbFR5cGUgU3RyaW5nQ29uc3RydWN0b3I6
OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsU3RyaW5nQ29uc3RydWN0b3I7Ci0gICAgcmV0dXJuIENh
bGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCmluZGV4IDFiZDFlMjEyNjQ5
NmJjNWQ4ZTk1ZDY1OThiOWZlNTI2YTYzZGRiYjEuLjk5YWFmZTgwODgxYjVjNzEyZjQ2ZWUyNjk4
ZDBlNmNlMDJmYTZkNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuaApAQCAtNDMsMTQgKzQzLDEyIEBAIGNsYXNzIFN0cmluZ0NvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIFN0cmlu
Z0NvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihW
TSYsIFN0cmluZ1Byb3RvdHlwZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0
cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBn
ZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogSlNDZWxsKiBKU0NfSE9TVF9D
QUxMIHN0cmluZ0Zyb21DaGFyQ29kZShFeGVjU3RhdGUqLCBpbnQzMl90KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmNwcAppbmRleCBh
NzYxZjQxNTk4MWVmYzJjMWZiN2U0OGZkMjU4MGYyYWRmZWM3N2QwLi5iNTE1MjU5MjExYzQyMDU0
NzVkMDBmMzRiYmMzMGY1NTdkOTIxYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuY3BwCkBAIC01Niw4ICs1NiwxMCBAQCBjb25z
dCBDbGFzc0luZm8gU3ltYm9sQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJh
c2U6OnNfaW5mbywgJnN5bWJvbAogQGVuZAogKi8KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFN5bWJvbChFeGVjU3RhdGUqKTsKKwogU3ltYm9sQ29uc3RydWN0b3I6
OlN5bWJvbENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBJ
bnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZt
LCBzdHJ1Y3R1cmUsIGNhbGxTeW1ib2wsIG51bGxwdHIpCiB7CiB9CiAKQEAgLTgzLDE3ICs4NSw2
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTeW1ib2woRXhlY1N0
YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoU3ltYm9sOjpjcmVhdGUoZXhl
YywgZGVzY3JpcHRpb24udG9TdHJpbmcoZXhlYykpKTsKIH0KIAotQ29uc3RydWN0VHlwZSBTeW1i
b2xDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJikK
LXsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZTo6Tm9uZTsKLX0KLQotQ2FsbFR5cGUgU3ltYm9s
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsK
LSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsU3ltYm9sOwotICAgIHJldHVybiBD
YWxsVHlwZTo6SG9zdDsKLX0KLQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xD
b25zdHJ1Y3RvckZvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0
cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rv
ci5oCmluZGV4IDU4YzM1MThlNDdkOTMxMjA0NmNiZTYwZWEzOGZmMGU3MDA0YzE0NjguLjViZDA1
OTQ3ODI3YzMyNjEzNDNiYjhjOWRiZTI5YjU1Y2E3ZjlkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuaApAQCAtNDksNyArNDksNyBA
QCBjbGFzcyBTeW1ib2xDb25zdHJ1Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAog
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJ
bnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAog
cHJvdGVjdGVkOgpAQCAtNTcsOCArNTcsNiBAQCBjbGFzcyBTeW1ib2xDb25zdHJ1Y3RvciA6IHB1
YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBTeW1ib2xDb25zdHJ1Y3Rv
cihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVj
dERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYmJiZDcwOGI0YWIzZWVmMDE1ODBj
YmE0ZjY4ZWViYTUzNTkzNTIyNi4uYjIwMDg1NzNmZTAyYTQ1Y2ZlZDBlYTc1MWJlMmQ1ZGU5N2U4
NDU5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMzUxLDYgKzM1MSwx
MCBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgICAgIHdh
dGNoZG9nLnNldFRpbWVMaW1pdCh0aW1lb3V0TWlsbGlzKTsKICAgICB9CiAKKyAgICAvLyBNYWtl
IHN1cmUgdGhhdCBhbnkgc3R1YnMgdGhhdCB0aGUgSklUIGlzIGdvaW5nIHRvIHVzZSBhcmUgaW5p
dGlhbGl6ZWQgaW4gbm9uLWNvbXBpbGF0aW9uIHRocmVhZHMuCisgICAgZ2V0Q1RJSW50ZXJuYWxG
dW5jdGlvblRyYW1wb2xpbmVGb3IoQ29kZUZvckNhbGwpOworICAgIGdldENUSUludGVybmFsRnVu
Y3Rpb25UcmFtcG9saW5lRm9yKENvZGVGb3JDb25zdHJ1Y3QpOworCiAgICAgVk1JbnNwZWN0b3I6
Omluc3RhbmNlKCkuYWRkKHRoaXMpOwogfQogCkBAIC01NzgsNiArNTgyLDE5IEBAIE5hdGl2ZUV4
ZWN1dGFibGUqIFZNOjpnZXRIb3N0RnVuY3Rpb24oTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIElu
dHJpbnNpYyBpbnRyaW5zCiAgICAgICAgIE5vSW50cmluc2ljLCBzaWduYXR1cmUsIG5hbWUpOwog
fQogCitNYWNyb0Fzc2VtYmxlckNvZGVQdHIgVk06OmdldENUSUludGVybmFsRnVuY3Rpb25UcmFt
cG9saW5lRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK3sKKyNpZiBFTkFCTEUoSklU
KQorICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKQorICAgICAgICByZXR1cm4gaml0U3R1YnMt
PmN0aUludGVybmFsRnVuY3Rpb25DYWxsKHRoaXMpOworICAgIHJldHVybiBqaXRTdHVicy0+Y3Rp
SW50ZXJuYWxGdW5jdGlvbkNvbnN0cnVjdCh0aGlzKTsKKyNlbHNlCisgICAgaWYgKGtpbmQgPT0g
Q29kZUZvckNhbGwpCisgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0
ZUxMSW50Q29kZVB0cihsbGludF9pbnRlcm5hbF9mdW5jdGlvbl9jYWxsX3RyYW1wb2xpbmUpOwor
ICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUxMSW50Q29kZVB0cihsbGlu
dF9pbnRlcm5hbF9mdW5jdGlvbl9jb25zdHJ1Y3RfdHJhbXBvbGluZSk7CisjZW5kaWYKK30KKwog
Vk06OkNsaWVudERhdGE6On5DbGllbnREYXRhKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCmluZGV4IDYyMjAyYmM5MWUxNGRhNWFhY2JiYzRiOWY4ZmQ3NDhlMjQ5NGE4ZGUuLmI1
NTRiMzUwZDQxODUxNWU0OGI2ZjhmY2MwZTg0ZWMwMTcyNGY2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uaApAQCAtMjksNiArMjksNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJDYWxsRGF0YS5oIgorI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKICNpbmNs
dWRlICJDb25jdXJyZW50SlNMb2NrLmgiCiAjaW5jbHVkZSAiQ29udHJvbEZsb3dQcm9maWxlci5o
IgogI2luY2x1ZGUgIkRhdGVJbnN0YW5jZUNhY2hlLmgiCkBAIC00ODMsNiArNDg0LDggQEAgY2xh
c3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlu
a2VkTGlzdE5vZGU8Vk0+IHsKICAgICBOYXRpdmVFeGVjdXRhYmxlKiBnZXRIb3N0RnVuY3Rpb24o
TmF0aXZlRnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yLCBjb25zdCBTdHJpbmcm
IG5hbWUpOwogICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGdldEhvc3RGdW5jdGlvbihOYXRpdmVGdW5j
dGlvbiwgSW50cmluc2ljLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvciwgY29uc3QgRE9NSklU
OjpTaWduYXR1cmUqLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCisgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKENvZGVTcGVjaWFsaXph
dGlvbktpbmQpOworCiAgICAgc3RhdGljIHB0cmRpZmZfdCBleGNlcHRpb25PZmZzZXQoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihWTSwgbV9leGNlcHRpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggYTUxZTg0NDNhZmNlNTJkMmEzNTI5ZGNjMjIxMWM1OTE4NDQxMTgyNS4uYzBkOWNl
MWQ5OWMyZDYzODI3MzQyMDllN2ViNDVhOTM0NTg4MDZjNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCkBAIC00NSw2ICs0
NSwxNCBAQCB2b2lkIFdlYWtNYXBDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBX
ZWFrTWFwUHJvdG90eXBlKiBwcm90b3R5cGUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWFrTWFwKEV4ZWNTdGF0ZSop
Oworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha01hcChF
eGVjU3RhdGUqKTsKKworV2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2Fs
bFdlYWtNYXAsIGNvbnN0cnVjdFdlYWtNYXApCit7Cit9CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWFrTWFwKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwpAQCAtOTgsMTYgKzEwNiw0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtNYXAoRXhlY1N0YXRlKiBleGVjKQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUod2Vha01hcCk7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2Vha01h
cENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNv
bnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25z
dHJ1Y3RXZWFrTWFwOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxs
VHlwZSBXZWFrTWFwQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBj
YWxsRGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsV2Vha01hcDsK
LSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmgKaW5kZXggNTlmMmNhYWRlMGNh
MzU3YzJhYTAwMjczNjM0NmFhNzMwNWZlOTYwNi4uYzkzZTQxMjUxZWM2MGE5MDhiM2RjYmMyYWYx
NjI1ZjExMWZkYzFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha01hcENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha01hcENvbnN0cnVjdG9yLmgKQEAgLTQ3LDE3ICs0NywxMiBAQCBjbGFzcyBXZWFrTWFwQ29u
c3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgV2Vh
a01hcENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9CisgICAgV2Vha01hcENvbnN0cnVjdG9y
KFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFdlYWtNYXBQ
cm90b3R5cGUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
SlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggM2I0ZWZlNjRjNjhiMGJiOGNiMTM2NWU0YWE4NDEyNTQyYjAyMTQwYS4uNDBkOWNjNTBjYjMx
MzgyZDVkMjE2ODYxZmRjZDFhZjBkZjM1MWU5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3BwCkBAIC00NSw2ICs0NSwxNCBA
QCB2b2lkIFdlYWtTZXRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWFrU2V0
UHJvdG90eXBlKiBwcm90b3R5cGUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKK3N0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWFrU2V0KEV4ZWNTdGF0ZSopOworc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha1NldChFeGVjU3Rh
dGUqKTsKKworV2Vha1NldENvbnN0cnVjdG9yOjpXZWFrU2V0Q29uc3RydWN0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbFdlYWtT
ZXQsIGNvbnN0cnVjdFdlYWtTZXQpCit7Cit9CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxXZWFrU2V0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwpAQCAtODQsMTYgKzkyLDQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0V2Vha1NldChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZSh3ZWFrU2V0KTsKIH0KIAotQ29uc3RydWN0VHlwZSBXZWFrU2V0Q29uc3Ry
dWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0
RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdl
YWtTZXQ7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdl
YWtTZXRDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRh
KQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxXZWFrU2V0OwotICAgIHJl
dHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuaAppbmRleCA2OTNjMTBiZjhkYjRlZjBlY2Qw
YzQ3YjQ0MDBiYmQ3Njc3ZmJiYzBlLi41ZTZmYjgyOGYxNzNiM2E0YzAzNWMyYjA0ZmYzYWQ1NzMz
ODE3ZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0
Q29uc3RydWN0b3IuaApAQCAtNDcsMTcgKzQ3LDEyIEBAIGNsYXNzIFdlYWtTZXRDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBXZWFrU2V0Q29u
c3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KKyAgICBXZWFrU2V0Q29uc3RydWN0b3IoVk0mLCBT
dHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgV2Vha1NldFByb3RvdHlw
ZSopOwotICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwg
Q29uc3RydWN0RGF0YSYpOwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDk4MmRmN2Y0MDhjMTdlZjI5N2ViNTNkYmU4ODk3
NjliNzJiYjFjOGIuLmFjNGQ4ZmNjMGE0YWI0MDkyNzlkYmZlNmE4MDc0Nzg5M2U2YzcxNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC03MCw3ICs3MCw3IEBA
IFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWCiAKIFN0cnVjdHVyZSogV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25U
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseUNv
bXBpbGVFcnJvclByb3RvdHlwZSogcHJvdG90eXBlKQpAQCAtODEsMjIgKzgxLDEwIEBAIHZvaWQg
V2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBXZWJBc3NlbWJseUNvbXBpCiB9CiAKIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0
b3I6OldlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIGNvbnN0cnVjdEpTV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3IpCiB7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY29uc3RydWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjsKLSAgICByZXR1cm4gQ29uc3Ry
dWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAg
IGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
OwotICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0
cnVjdG9yLmgKaW5kZXggMzRhMGU3OGMwNDY0NjcwOWQ2ZjJlNWNhNzY4NzIxMWY3YTk3MjQ3Ny4u
NWI3NWJjODEwNDI2NTY0NmY1MTg2NTZlZjU1NzMzY2FjMTM2YWM2MSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yQ29uc3RydWN0b3IuaApAQCAtNDksOCArNDksNiBAQCBjbGFzcyBXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBw
cml2YXRlOgogICAgIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IoVk0mLCBTdHJ1
Y3R1cmUqKTsKLSAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2Vs
bCosIENvbnN0cnVjdERhdGEmKTsKLSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlND
ZWxsKiwgQ2FsbERhdGEmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFu
Y2VDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNWRlNGQ5MjRhNzg4MmQwNTVlMDg0N2UwM2Y2MjM2OTNm
ZDUwM2Y2Zi4uNTkxMjRiOWMzNDAwMjkwMWFkZDMyNjM3NGY5Mzg3ODhkMGJlMTk4MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgV2ViQXNzZW1i
bHlJbnN0YW5jZUNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmNy
ZWF0ZShWTSYgdm0sIFMKIAogU3RydWN0dXJlKiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogewotICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKKyAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogfQogCiB2b2lkIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rv
cjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlKiBw
cm90b3R5cGUpCkBAIC0xMTIsMjIgKzExMiwxMCBAQCB2b2lkIFdlYkFzc2VtYmx5SW5zdGFuY2VD
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseUluc3RhbmNlUAog
fQogCiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5SW5zdGFuY2VD
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwg
c3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSlNXZWJBc3NlbWJseUlu
c3RhbmNlLCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5SW5zdGFuY2UpCiB7CiB9CiAKLUNvbnN0cnVj
dFR5cGUgV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpT
Q2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0
YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5SW5zdGFuY2U7Ci0gICAg
cmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdlYkFzc2VtYmx5SW5z
dGFuY2VDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRh
KQotewotICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxKU1dlYkFzc2VtYmx5SW5z
dGFuY2U7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVj
dG9yLmgKaW5kZXggNmQ5ZWQzYzAwYjczYWQ2ODdkYTY5YWFiM2Q4ZTczOTAzOGQ5MjYwMy4uYTIx
ZDkxYWMzYjIzM2I3OTkzODdlMWFiNjA0YzM4ZjI5YTcxNjRlMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yLmgKQEAgLTUzLDggKzUzLDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIFdl
YkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRp
YyBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYp
OwotICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3Bw
CmluZGV4IGIxN2Q1OGFiZTY2NTgyZmFhZDdhZGNhNzY2MTU3MjJiZDI0YTNlZTYuLmFmMDkxN2Fh
YjRkYzY5ZjE2MWI0MjJhZWE5ODI2ZTlkMTFhMjkyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29u
c3RydWN0b3IuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3Ry
dWN0b3IqIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sCiAK
IFN0cnVjdHVyZSogV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwor
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CiB9CiAKIHZvaWQgV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBXZWJBc3NlbWJseUxpbmtFcnJvclByb3RvdHlwZSogcHJvdG90eXBlKQpAQCAt
ODEsMjIgKzgxLDEwIEBAIHZvaWQgV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseUxpbmtFcnJvCiB9CiAKIFdlYkFzc2VtYmx5
TGlua0Vycm9yQ29uc3RydWN0b3I6OldlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAg
ICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IsIGNvbnN0
cnVjdEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IpCiB7CiB9CiAKLUNvbnN0cnVjdFR5cGUgV2ViQXNz
ZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25z
dHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY29uc3RydWN0SlNXZWJBc3NlbWJseUxpbmtFcnJvcjsKLSAgICByZXR1cm4gQ29u
c3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25z
dHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQotewotICAg
IGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yOwot
ICAgIHJldHVybiBDYWxsVHlwZTo6SG9zdDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmgK
aW5kZXggYzcwMGM2MzMwMTRmYmZhYWZhMGFiYjkzMmNkNzBlOWI5ZmU5MzA5NS4uZTI5MTI5N2Jk
YWVjYWQ3MWUyNGUxMjc3MjBmZWM0NWIyODc0ODE3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3Ry
dWN0b3IuaApAQCAtNDksOCArNDksNiBAQCBjbGFzcyBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0
cnVjdG9yIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiBwcml2YXRlOgogICAgIFdlYkFz
c2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMg
Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsK
LSAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcAppbmRleCBk
MDQzNWFmMWZkZmU1NjMwZDkyMmI2N2RkYjZhODRkNzFmNDlkOGQxLi5jNTU2OThjMTE5N2MwMGNk
YmM0Y2U0MjVjOGUzMWQyYWU3NzNjNDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcApA
QCAtMTI3LDcgKzEyNyw3IEBAIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IqIFdlYkFzc2Vt
Ymx5TWVtb3J5Q29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjCiAKIFN0cnVjdHVyZSog
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVy
bmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2Vi
QXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWJBc3Nl
bWJseU1lbW9yeVByb3RvdHlwZSogcHJvdG90eXBlKQpAQCAtMTM4LDIyICsxMzgsMTAgQEAgdm9p
ZCBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdl
YkFzc2VtYmx5TWVtb3J5UHJvdG8KIH0KIAogV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBj
YWxsSlNXZWJBc3NlbWJseU1lbW9yeSwgY29uc3RydWN0SlNXZWJBc3NlbWJseU1lbW9yeSkKIHsK
IH0KIAotQ29uc3RydWN0VHlwZSBXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpnZXRDb25z
dHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAg
Y29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TWVt
b3J5OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxsVHlwZSBXZWJB
c3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYg
Y2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNz
ZW1ibHlNZW1vcnk7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpIb3N0OwotfQotCiB9IC8vIG5hbWVz
cGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3Ry
dWN0b3IuaAppbmRleCAyMDYxZTI0OGYzMzk1YjY3ZDJjMmU0YjE4Y2U0MmI5NjgyMjFlYzVjLi5l
YTY0NjBiMWJjNzFiYTI4OTQ1ZTcyZTk1OTRjNmNmYzkzYmRlMTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25z
dHJ1Y3Rvci5oCkBAIC00OSw4ICs0OSw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3Ry
dWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNz
ZW1ibHlNZW1vcnlDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAg
IHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCmluZGV4IDc1YjVi
NjJjMzhhMjNkNDk3NWI1YzA5OGE3NTU2NzIyNmU3NzBmM2EuLmZhMzFjNTkzMTk4MzFlYTU1ZGY1
MWMyNzRlZDQ0MzRkMjdiNDZhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCkBAIC0x
OTgsNyArMTk4LDcgQEAgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlN
b2R1bGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWMKIAogU3RydWN0dXJlKiBXZWJB
c3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKIHsKLSAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxG
dW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAogdm9pZCBXZWJBc3Nl
bWJseU1vZHVsZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5
TW9kdWxlUHJvdG90eXBlKiBwcm90b3R5cGUpCkBAIC0yMDksMjIgKzIwOSwxMCBAQCB2b2lkIFdl
YkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNz
ZW1ibHlNb2R1bGVQcm90bwogfQogCiBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpXZWJB
c3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0g
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxK
U1dlYkFzc2VtYmx5TW9kdWxlLCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TW9kdWxlKQogewogfQog
Ci1Db25zdHJ1Y3RUeXBlIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmdldENvbnN0cnVj
dERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25z
dHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNb2R1bGU7
Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGU6Okhvc3Q7Ci19Ci0KLUNhbGxUeXBlIFdlYkFzc2Vt
Ymx5TW9kdWxlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxs
RGF0YSkKLXsKLSAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsSlNXZWJBc3NlbWJs
eU1vZHVsZTsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
ci5oCmluZGV4IDEzYWNhM2Y5MGVhZDM3Y2E1NGRiNWE5ZGNiNGVhMzRlYzI1OGJlZGUuLmY3NGI2
NjY1ZWI0YTBiMDUwNjdhOTBmMDIxOTM2YmUzY2UxMWY2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVj
dG9yLmgKQEAgLTU0LDggKzU0LDYgQEAgY2xhc3MgV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogcHJpdmF0ZToKICAgICBXZWJBc3NlbWJs
eU1vZHVsZUNvbnN0cnVjdG9yKFZNJiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVj
dFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3Rh
dGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggNjQ1Zjk2NzVkNzFiYmQxNWEwNjI4ZTc4OTM1YWJlZmQyODYyOWY3Yi4uMTU1MzE1ZjFmOGVm
NWMwOWE3ZGIzNjExNWIxMzk3Y2IxMzY5YTYwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JD
b25zdHJ1Y3RvciogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFYK
IAogU3RydWN0dXJlKiBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHBy
b3RvdHlwZSkKIHsKLSAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CisgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKIH0KIAogdm9pZCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlKiBwcm90
b3R5cGUpCkBAIC04MSwyMiArODEsMTAgQEAgdm9pZCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5UnVudGkKIH0KIAog
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2
bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSlNXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvciwgY29uc3RydWN0SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcikKIHsKIH0K
IAotQ29uc3RydWN0VHlwZSBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0g
ICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlOjpIb3N0OwotfQotCi1DYWxs
VHlwZSBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9u
ID0gY2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I7Ci0gICAgcmV0dXJuIENhbGxUeXBlOjpI
b3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NF
TUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCA3N2ZiNmU0NWFl
Y2M4NjAzNTdlNDgxYWQ4YzJmNTViOGZiZGQ4ZTkyLi45NGFlNmI5YTVmMWNlYzU3NzY5OGZjMDMz
YWI0MGY4MmUzMzMwMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5oCkBA
IC00OSw4ICs0OSw2IEBAIGNsYXNzIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3Ig
OiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3RvcihWTSYsIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwotICAg
IHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcAppbmRleCAyYzViYzcw
MmY3MTBmMzViYTQyMzU3Y2ZkNDlhMTk1ZmFjYTAyMjViLi41ODQ0YzllYTA4M2E2YzIyOTcxNjNj
YzY3OGJlM2E0NTg2N2QzZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTExNyw3
ICsxMTcsNyBAQCBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5VGFibGVD
b25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dQogCiBTdHJ1Y3R1cmUqIFdlYkFzc2Vt
Ymx5VGFibGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiB7Ci0gICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rp
b25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKIHZvaWQgV2ViQXNzZW1ibHlU
YWJsZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5VGFibGVQ
cm90b3R5cGUqIHByb3RvdHlwZSkKQEAgLTEyOCwyMiArMTI4LDEwIEBAIHZvaWQgV2ViQXNzZW1i
bHlUYWJsZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5VGFi
bGVQcm90b3R5CiB9CiAKIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvcjo6V2ViQXNzZW1ibHlU
YWJsZUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxKU1dlYkFzc2Vt
Ymx5VGFibGUsIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZSkKIHsKIH0KIAotQ29uc3RydWN0
VHlwZSBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDZWxs
KiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZTsKLSAgICByZXR1cm4g
Q29uc3RydWN0VHlwZTo6SG9zdDsKLX0KLQotQ2FsbFR5cGUgV2ViQXNzZW1ibHlUYWJsZUNvbnN0
cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAg
Y2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbEpTV2ViQXNzZW1ibHlUYWJsZTsKLSAgICBy
ZXR1cm4gQ2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaAppbmRleCA1YWRlYmIz
NzYxNzFjMzRlYzM3YmM5ZDIwZTE3YjNiNmQ0NWU5MTUxLi4zNjQ2OGQwYjNlZGQzYTBiOGUwY2E2
ZWRiYTIwYmMwYzEyNjliYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuaApAQCAtNDksOCArNDks
NiBAQCBjbGFzcyBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxG
dW5jdGlvbiB7CiAKIHByaXZhdGU6CiAgICAgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yKFZN
JiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxE
YXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCmluZGV4IDkxMGE3MDJiYTljZWJiMmFl
YWJmZTgzZTM0MWM3YmI5MTlmYTMxMDEuLjI1NWQ4NDE1Y2IzMmJkN2NmOGVhZjY5MmIxYzVkNjcx
MTFhMTU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAt
NDEsOSArNDEsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEJpbmRpbmdzOwogCiBXRUJDT1JFX0VYUE9S
VCBjb25zdCBDbGFzc0luZm8gUnVudGltZU1ldGhvZDo6c19pbmZvID0geyAiUnVudGltZU1ldGhv
ZCIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoUnVudGltZU1ldGhvZCkgfTsKIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKik7CisKIFJ1bnRpbWVNZXRo
b2Q6OlJ1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIE1ldGhvZCogbWV0aG9kKQogICAgIC8vIENhbGxlcnMgd2lsbCBuZWVkIHRv
IHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGlzIG5h
dGl2ZSBvYmplY3QgIm1ldGhvZCIuCi0gICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVj
dC0+dm0oKSwgc3RydWN0dXJlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmplY3Qt
PnZtKCksIHN0cnVjdHVyZSwgY2FsbFJ1bnRpbWVNZXRob2QsIG51bGxwdHIpCiAgICAgLCBtX21l
dGhvZChtZXRob2QpCiB7CiB9CkBAIC0xMTAsMTAgKzExMiw0IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUNhbGxUeXBlIFJ1bnRpbWVN
ZXRob2Q6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKLXsKLSAgICBj
YWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsUnVudGltZU1ldGhvZDsKLSAgICByZXR1cm4g
Q2FsbFR5cGU6Okhvc3Q7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmgKaW5kZXggN2MyNzVhY2MwZTNlMTIyZDRkNmM3ZmJiNGU1MTZkYzM1OGYzZGQ2Zi4uNGRmNDM1
NTBiNmU0NzRjMjFhYmJjMmE3OTgxZjdlYTBiMmQ0NmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfbWV0aG9kLmgKQEAgLTU2LDEzICs1NiwxMiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9S
VCBSdW50aW1lTWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVu
Y3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6
CiAgICAgUnVudGltZU1ldGhvZChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEJpbmRpbmdz
OjpNZXRob2QqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgY29uc3QgU3RyaW5nJik7
Ci0gICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAK
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBFeGVjU3RhdGUq
LCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCmluZGV4IDY2
ZjUwYzMzMTFiM2MzOTM4YmIzMGM3NDk2ZjU2NTFjZTljZTJhNmIuLmU1NjA4OGY3MzIxOGE0YmM3
ZjA5MDc4NjllNmRkZWYxZWE3YzAxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCkBAIC00NSw4ICs0NSwx
MCBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNOUE1ldGhvZCk7
CiAKIGNvbnN0IENsYXNzSW5mbyBKU05QTWV0aG9kOjpzX2luZm8gPSB7ICJOUE1ldGhvZCIsICZJ
bnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNOUE1ldGhvZCkgfTsKIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbE1ldGhvZChFeGVjU3RhdGUqKTsKKwogSlNOUE1ldGhvZDo6SlNOUE1ldGhvZChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTlBJZGVudGlm
aWVyIG5wSWRlbnRpZmllcikKLSAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LT52
bSgpLCBzdHJ1Y3R1cmUpCisgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdC0+dm0o
KSwgc3RydWN0dXJlLCBjYWxsTWV0aG9kLCBudWxscHRyKQogICAgICwgbV9ucElkZW50aWZpZXIo
bnBJZGVudGlmaWVyKQogewogfQpAQCAtODQsMTIgKzg2LDYgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogfQogCi1DYWxsVHlwZSBKU05QTWV0aG9k
OjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCi17Ci0gICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbE1ldGhvZDsKLSAgICByZXR1cm4gQ2FsbFR5cGU6Okhv
c3Q7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKaW5kZXggYWNlN2YyZGQyZTJiMjIzZDhlMGQ3ZDEw
NDk3OTg3MGE1MDBhOTRkZi4uNWMyODRjOTAxOGI4ZTA1NWYwMDA3ODk5MTUzZDIxMGUzNmUxYjAy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBNZXRob2QuaApAQCAtNjIsMTEgKzYyLDkgQEAgY2xhc3MgSlNOUE1ldGhvZCA6IHB1
YmxpYyBKU0M6OkludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6SW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgSlNDOjpDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q2FsbERhdGEmKTsKLSAgICAKICAgICBOUElkZW50aWZp
ZXIgbV9ucElkZW50aWZpZXI7CiB9OwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBi
L0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVmZDEyNGEzZGZkOGYxMDg0YmI1MDBkNzYyMmNlZDZh
MmQ1MTkzYTYuLjFhOTJjZGVmZTkzM2ZkOGRmNjQyZTI2ZWQ5MjhhOGUyNmFlZjZmNjkgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjkgQEAKKzIwMTctMTEtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CisKKyAgICAgICAgSklUIGNhbGwgaW5saW5lIGNhY2hlcyBzaG91bGQgY2FjaGUgY2FsbHMg
dG8gb2JqZWN0cyB3aXRoIGdldENhbGxEYXRhL2dldENvbnN0cnVjdERhdGEgdHJhcHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1h
cmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzOiBBZGRlZC4KKyAgICAgICAgKHRhcmdl
dCk6CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jb25z
dHJ1Y3QuanM6IEFkZGVkLgorICAgICAgICAodGFyZ2V0KToKKyAgICAgICAgKiBtaWNyb2JlbmNo
bWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNhbGwuanM6IEFkZGVkLgor
ICAgICAgICAodGFyZ2V0KToKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvZGZnLWludGVybmFs
LWZ1bmN0aW9uLW5vdC1oYW5kbGVkLWNvbnN0cnVjdC5qczogQWRkZWQuCisgICAgICAgICh0YXJn
ZXQpOgorICAgICAgICAqIHN0cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY2FsbC5qczogQWRk
ZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0YXJnZXQpOgorICAgICAgICAqIHN0
cmVzcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0LmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKHRhcmdldCk6CisgICAgICAgICogc3RyZXNzL2ludGVybmFs
LWZ1bmN0aW9uLWNhbGwuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAq
IHN0cmVzcy9pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorCiAyMDE3LTExLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbV2luXSBTa2lwIHN0cmVzcy9yZWdyZXNzLTE3ODM4NS5qcy4KZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1j
YWxsLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLWNh
bGwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDA5NzM4YjVlMjA2MTRmZTE5N2Y1ZWZjZTc0N2Y0NmY4MWM0NTZj
OAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5h
bC1mdW5jdGlvbi1jYWxsLmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gdGFyZ2V0KGZ1bmMp
Cit7CisgICAgcmV0dXJuIGZ1bmMoKTsKK30KK25vSW5saW5lKHRhcmdldCk7CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMWU0OyArK2kpCisgICAgdGFyZ2V0KEFycmF5KTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMg
Yi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tY29uc3RydWN0
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg4MmEwMDBiMWJhNTZiZTk1ZWM3MzU5YzViOWVjODc3NzQ4YWMzMjgK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwt
ZnVuY3Rpb24tY29uc3RydWN0LmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24gdGFyZ2V0KGZ1
bmMpCit7CisgICAgcmV0dXJuIG5ldyBmdW5jKCk7Cit9Citub0lubGluZSh0YXJnZXQpOworCitm
b3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQorICAgIHRhcmdldChBcnJheSk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tbm90LWhh
bmRsZWQtY2FsbC5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1pbnRlcm5hbC1mdW5j
dGlvbi1ub3QtaGFuZGxlZC1jYWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYjI5YjQ5MzA0MDhmZjgxZWZk
ZGJhNmZkMjE3MjlmYzhlODJmYWEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tbm90LWhhbmRsZWQtY2FsbC5qcwpAQCAtMCww
ICsxLDggQEAKK2Z1bmN0aW9uIHRhcmdldChmdW5jKQoreworICAgIHJldHVybiBmdW5jKCk7Cit9
Citub0lubGluZSh0YXJnZXQpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQorICAg
IHRhcmdldChEYXRlKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RmZy1p
bnRlcm5hbC1mdW5jdGlvbi1ub3QtaGFuZGxlZC1jb25zdHJ1Y3QuanMgYi9KU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVuY3Rpb24tbm90LWhhbmRsZWQtY29uc3RydWN0Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmUyNjZiYmU5OGFkNDM0ZGQ0ODU0MmFiYTFmNjI0NzA0ZDk1ZjYyZTEKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZmctaW50ZXJuYWwtZnVu
Y3Rpb24tbm90LWhhbmRsZWQtY29uc3RydWN0LmpzCkBAIC0wLDAgKzEsOCBAQAorZnVuY3Rpb24g
dGFyZ2V0KGZ1bmMpCit7CisgICAgcmV0dXJuIG5ldyBmdW5jKCk7Cit9Citub0lubGluZSh0YXJn
ZXQpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQorICAgIHRhcmdldChEYXRlKTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpz
IGIvSlNUZXN0cy9zdHJlc3MvZGZnLWludGVybmFsLWZ1bmN0aW9uLWNhbGwuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDA0ODUyYWFlYWFhMjI3ODc4OTFlODExNDk1OWFhN2RkYTUzODBiMgotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2RmZy1pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzCkBAIC0w
LDAgKzEsMTQgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBp
ZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFs
dWU6ICcgKyBhY3R1YWwpOworfQorbm9JbmxpbmUoc2hvdWxkQmUpOworCitmdW5jdGlvbiB0YXJn
ZXQoZnVuYykKK3sKKyAgICByZXR1cm4gZnVuYygpOworfQorbm9JbmxpbmUodGFyZ2V0KTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICBzaG91bGRCZSh0YXJnZXQoQXJyYXkp
Lmxlbmd0aCwgMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kZmctaW50ZXJuYWwtZnVu
Y3Rpb24tY29uc3RydWN0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGZnLWludGVybmFsLWZ1bmN0aW9u
LWNvbnN0cnVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzE5NDJlZmJiZGZjYTQ0MDAzYWUyZTZjN2I4ZTM3
MTAzYmMwYTg4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGZnLWludGVybmFs
LWZ1bmN0aW9uLWNvbnN0cnVjdC5qcwpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiBzaG91bGRC
ZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KK25vSW5saW5l
KHNob3VsZEJlKTsKKworZnVuY3Rpb24gdGFyZ2V0KGZ1bmMpCit7CisgICAgcmV0dXJuIG5ldyBm
dW5jKCk7Cit9Citub0lubGluZSh0YXJnZXQpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsg
KytpKQorICAgIHNob3VsZEJlKHRhcmdldChBcnJheSkubGVuZ3RoLCAwKTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2ludGVybmFsLWZ1bmN0aW9uLWNhbGwuanMgYi9KU1Rlc3RzL3N0cmVz
cy9pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjYmZhN2I3ZWFiMjMyMmNj
MDYwMDlhOGIzNjIyOTFhMTVlNWQwNWQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9pbnRlcm5hbC1mdW5jdGlvbi1jYWxsLmpzCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gc2hv
dWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3Zh
ciBmdW5jID0gRGF0ZTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICBzaG91
bGRCZSh0eXBlb2YgZnVuYygpLCAic3RyaW5nIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9pbnRlcm5hbC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRlcm5h
bC1mdW5jdGlvbi1jb25zdHJ1Y3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg1MmI5MTdjOTAzMTU4OGE5NmQ0
ZGMzN2JjOGEzMjM3OTcyYjBkMwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2lu
dGVybmFsLWZ1bmN0aW9uLWNvbnN0cnVjdC5qcwpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKwor
dmFyIGZ1bmMgPSBEYXRlOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAg
dmFyIGRhdGUgPSBuZXcgZnVuYygpOworICAgIHNob3VsZEJlKHR5cGVvZiBkYXRlLCAib2JqZWN0
Iik7CisgICAgc2hvdWxkQmUoZGF0ZSBpbnN0YW5jZW9mIERhdGUsIHRydWUpOworfQo=
</data>
<flag name="commit-queue"
          id="345457"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>326104</attachid>
            <date>2017-11-05 23:24:26 -0800</date>
            <delta_ts>2017-11-05 23:24:26 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews113 for mac-elcapitan</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>525352</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
3O4gXzZei57xbk+JsTgtFT9Z77X1dL3X9tOGkJa5i6d28dQuntrFU7t4ahdP7eKpXTy1i6e+K55C
u3hqF0/t4qldPLWLp3bx1C6e2sVTu3jqu+IpvIundvHULp7axVO7eGoXT+3iqV08tYunviuesv6P
vWtrbuTGzu/6FXqcjQsU7hdXKlW4OlM7Xk88nknetprNpsxEEhWScuz8+hx0k1SjCXKUHT/SDyO5
gQa+A5zLdw4g8sqnrnzqyqeufOrKp6586sqnrnzqyqe+iU/xK5+68qkrn7ryqSufuvKpK5+68qkr
n/omPiWufOrKp6586sqnrnzqyqeufOrKp6586pv4lLzyqSufuvKpK5+68qkrn7ryqSufuvKpb+FT
+LbdNPmj32/zx1ve/oeWt/uWT7v8OZ3vJEfz1e4v39/c3m6a37+/Pa40ns+bxbzrltAwPzYMH2Zm
WliK3NCee2NRNMB/Ui0NzpMsVuOxxIKS+YKA7W62q9ErsM8L3LVNbpg/n7zRKZzfqDbAJLcbPZm+
75QbzOsr+ZNeF0yrbAcbgsdvUMobuTQmN5DJG32HLAmhRYvkWnamH4uNJaG46eClLAnhuQGwLse4
coOoNNA8yeq5XBW5kIaCJJvlw0REgsENgiVtaG1PYKybD+v7FTiiW//x8/e9LuGbuNmsN7d+veiG
J69vyptf8qfR/u3lcd5thkbCb25u3Oqp2fxx+/6xue+2WW32r8H0ZtFlcdDt+GEzb5ZLdfvd5Pvu
3+G/3P5zoFpqxRLi4NoRi1ohw11AsJKMRpXAuNi/3N59WT+8PHbbuy8/ffj8Y7z7p7tyrAJDi8kp
BnjYYwAr2n/g7C/ddvfp19Xj3rR6NHkHk5ceWRICYiZ5ZCRNSPtIsPJSRoxraM6NOsHFT3F1eFnD
9fL8vN7sxtA01yFix5CXRCGGKUHGeoaSSURLwwkP6g3QxgOP0TFKzQk63rY8ozvvm99JLL6Dl+DH
jMwI+65fxCSwkAJxTAQsImdIh0CRVBJrarWk1tWQlkPPlpvmscuf+Xf3pQPPAFHszk76jAVQQsoT
AbRuKKzv5OOO/wp5Ww24powSgI40twkx7jTogQE9SN4IzimVtLr7w5B1wEPbGCjYgj4BOm+z/2K9
HvxPN9/s2mLvqUkJwh6yoJKIWWOR0QojTxjnmCptNDmz9+PBxihaYU4sFRaRisl+Hz4durZezjqR
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
SJQolqGS2yoNTNttM5nMh5JiJoAJFG3dPky30tBySDi/UpgIFiHWXUNxXCtItjo7U4C/axJGPmNM
DYxkoRIold5W+Z4GaVoDlfxGicZ93w7qcXjBhT/cX4d0mg1r+u2W/AQ60+pLA0kgK3v/Gza4FWxE
g8CsozMlU8aBjo+Lz6pp2DH3QHIp/jNL/bY3g6DvxcYjxEOpoCRMCRPzBR44dG3mf3c7aN364Hv9
jdu6CocS61JyXhVKY3AiHqXitLszdY+V9YzR3fRRkQzbqQrdHlq7GYEmjOdYSba58RQE9COeTjGz
T9FqFFPLpljIO7QxhyU27rpXhpzkOUvqwd9KI95e4y3HIwfx2JIZUdByy62bw6ueyZyVft+nshN/
A88kWZWvmKjIMqk0StcnjeXaPk0H3ib0r/n0pg7H20KUa4nPnv0ZNfz2jt1jCXXcjQ5N02M67dFV
we4h/bJf7tvZcUGvFXTxDozfCo5kUpSMGVH5m9TyK6lmpMiBzhXAZcE4xUsLaf6G5sf+cVpWLLO5
/AmC/QPqRsqse3R6tBLJQkkhi3yKVXFhxFLyrU2cIS4CLCgpyryCtRMICD3ByUkuUKi/EXIInCA0
SXE38BXI4VTJQSvpmT5W5tHo8rgQdF0l5fG19fqaLDOOFYJv0PawoHjDJVsFPoIERemIaLIffbnS
kG8yaCc9Kob3YvlaXxBVlxuewYXI2bMAWr2UULU5MFy36mnjAAWlaOWgewz2L1BLAwQKAAAAAABs
tmVLAAAAAAAAAAAAAAAAHwAcAGFjY2Vzc2liaWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS9VVAkAA2sG
AFqpBgBadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIu2ZUupD6prvEMAAD36AABTABwAYWNjZXNz
aWJpbGl0eS9tYWMvdmFsdWUtY2hhbmdlL3ZhbHVlLWNoYW5nZS11c2VyLWluZm8tY29udGVudGVk
aXRhYmxlLWNyYXNoLWxvZy50eHRVVAkAA6YGAFoGBgBadXgLAAEE9QEAAAQUAAAA5Fztb9s4k/98
+iv44bBw2ioRKZF6Qa6ALdvd7ObtYje7h0Uh6IVK9NSWvJKcNvfX35CSHcmW06hPnrsDYqBNLEoz
v5nhvHDI6DrPQl4UDmp/xuvl6oanEc/nOefoL0KxQb8o1355v3srfE5us8V6yYuT26vzzxeTk3cn
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
JaeeA34Iv8xNahDq3QxbS9MS53haN2GLalp3mexRdR12jjBmDeFPg1dw3w8sx8XdgybizwiD40g+
UrZvSSYpC722dd8obTBQ3wtc4clmvlyUHuXj/uUFpL0GTsN4tdqRl3iekucfBPxVqMzX7QYh/qDv
ZvH2c4qB6Un2ZbkrH1xrCbN490+02Gyj1+X8mlj5PY2WESXwmaXXxKzf3KVZtMuq+03C54o3f614
+FGTCmpA08OgHOCGdYrDbO/nSA4+Tgie8KxX7wOkmq5XPwi2cnyyWZDKFbgms00Wr94xHwaoCdmm
u+UcPIJ35u1b880V2X3DxjSPNvssAq72aw3aA8TmRQ4MzfjmavBpu8zi51UKBSDxqlhuDe0b8g2e
Zum6LPQEkfJWnZAuo6BDtOSnr4/jh9mTuINvD+pmPL0ng+L/7K8Pqj/b4/hv/TScPt3PyNv1Zm0k
m3iV7pJ0fkUG7w5XTwHV0/LLQCTZ8iviZM62cYLtt+OipsNvqx9kEN4QXMnG1LsMsas78ljcc1t5
lvp89YmrI89Oo0vnWXfdmWp5PMiDmwXWkF43o15KhzxOnudpXPCHsyfdWcwqj00Gsli8Bk27hn6/
1/RaHDp8aE5q8tROJJ+4qFmvg/eP5P14Rj7nDiNURQL6s8UZrdNhfXne5iDj2FII4b7b4K28yjQE
Omk8n8PPHQFB8QxLrb1fDW41YhcReIdM10nPe+X1KpuIu7tpeLJfUEQjKtmibpXn8z7ezslrX/ux
ab0JfMj1F4HX+rpLyXi92Jxt0o8zEd6SmyfxIHuZY2ApV7wBnccMOsGZjk5NVFnFd05A90VaIjE7
0c2J49Tl+ZQ+o1U10dXfQ4Y7Q6+kY9ntPI1XX11gm3k3h27ws00giqSYiTPi25X41IZqjqLxRNyo
05kYbbyaKLob398qCS2677It//BqLAvzzNSfs9Osee6Qlrzhq4mip/txOJUnuWOM1nl70aNCr87Q
7Disxhv0zkKlvaQvGHC8Tz8dmg2YoP9Ls8+mMz3CnLo4HVpFE3CpU+T5g7yAQts1GkLeAAqGhqye
Z/AfUEsDBBQAAgAIADW2ZUvaS3NS+wMAAJwMAABQABwAYWNjZXNzaWJpbGl0eS9tYWMvdmFsdWUt
Y2hhbmdlL3ZhbHVlLWNoYW5nZS11c2VyLWluZm8tY29udGVudGVkaXRhYmxlLXN0ZGVyci50eHRV
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
b3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRlcnIudHh0VVQJAAPrBQBa6wUAWnV4CwAB
BPUBAAAEFAAAAG3LsQ2AMAxE0Z4pbh8aVrBkS7GAOHIuRGwPDR31f39Lv4SG3e6O6SwxCFF1elQ5
oEKBpKEG0UdrkTRd1o/jjDeySAVnoKWf1n+GB1BLAwQKAAAAAAAdtmVLAAAAAAAAAAAAAAAADwAc
AGNyeXB0by93b3JrZXJzL1VUCQAD2QUAWqkGAFp1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAHbZl
SwAAAAAAAAAAAAAAABYAHABjcnlwdG8vd29ya2Vycy9zdWJ0bGUvVVQJAAPZBQBaqQYAWnV4CwAB
BPUBAAAEFAAAAFBLAwQKAAIAAAAdtmVLJeDTCCwAAAAsAAAAMQAcAGNyeXB0by93b3JrZXJzL3N1
YnRsZS9yc2EtZ2VuZXJhdGUta2V5LXN0ZGVyci50eHRVVAkAA9kFAFrZBQBadXgLAAEE9QEAAAQU
AAAAQ291bGQgbm90IGdlbmVyYXRlIGEga2V5IHBhaXIsIHN0YXR1cyAtNDMwNApQSwMECgAAAAAA
N7ZlSwAAAAAAAAAAAAAAAAUAHABjc3MzL1VUCQADCQYAWqkGAFp1eAsAAQT1AQAABBQAAABQSwME
CgAAAAAAN7ZlSwAAAAAAAAAAAAAAACEAHABjc3MzL3ZpZXdwb3J0LXBlcmNlbnRhZ2UtbGVuZ3Ro
cy9VVAkAAwkGAFqpBgBadXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIADe2ZUs4bUUgnAAAAPQBAAA4
ABwAY3NzMy92aWV3cG9ydC1wZXJjZW50YWdlLWxlbmd0aHMvdmgtcmVzaXplLWNyYXNoLWxvZy50
eHRVVAkAAwkGAFoJBgBadXgLAAEE9QEAAAQUAAAAxY+7DoJAEAB7vmI7KryHMSq1WBFNLloZQw5u
hUuQJXtHDH8vvTWxnWZmCmOuJoez9T06iASM1kEq7gE5iHryvaspitLXbHkWJbVBnLxtBwrRNwZH
4riQ6T0aHBzyjRErLdU+UyqTOpNHdZSywk9Qartp2IYuzeFRMA8E+gkXgjA1HbwWPxCD84xNJJ7z
lSOSYv3zg979//wnIvkCUEsDBBQAAgAIADe2ZUsUayITsgMAANULAAA1ABwAY3NzMy92aWV3cG9y
dC1wZXJjZW50YWdlLWxlbmd0aHMvdmgtcmVzaXplLXN0ZGVyci50eHRVVAkAAwkGAFoJBgBadXgL
AAEE9QEAAAQUAAAA1ZZdb+I6EIbv+RW5WkFV7eY7JNqt1ENhRVVKBYheIsexi8+GGDmGLf9+x4kT
AgXUnnN0VnuDSDzvM+84nklup9P+ZDYcPxqD2+FD/y4y5G5N2h3j2zdjmEkiMpQONhmWjGczWGl9
/iI2mWQr8uV4+TNer9ue2zEiY8tZYtxPe1F0HBRFlGUsX/YEQeq6XUTNR8anawPzLJfG82wQRVMp
WPaibp6hPKIVmbOcxSxlctdpWYZhmK+W6ZtxN7RNRekJlC9btl7wsGXbxPuYK8jftFMYfL8nR6em
AUY0waVsUu7eiMglTz6Ut9NyNZDYDooDZIzjv3v/huc1eKZlneJhRSIlp/9K8FTC5ZXegvvp95TH
KAUdwfLqwmb9xbIEbuZRVIKvOi1/nzxILO84Dph4CASUYRJFL0SWwjNOngRfEyF36hF0WsF+47HX
pcdoXWLpOopWBfg7kfA83+JTDrWon5OZutXpSkKXkvAwZJpywONNLvnqHP4ts9y4VqjJLnZjCs/6
BBk2ZY7SDfkA1TK1X9dzHWpVj7HAFMB3sK7fevlU8y3NDxPHtFwjTVkmF3nKfy7WSC4XkGER7xYs
aVl2VZ9JqVNFkkyKXcty6jUcksDYrvrq/ozfoy2aYsHWkMmtMvmB7VaVDGc9nkAlBArYVOd2PmqU
IXkPpelAQCFwCOHcaYqaG83psBYEfmuSEp3tgvr8F9cqVI3KxuUdkuiwIfSe66tb8fLAYPZVjWn5
2lbsJx41yyB8yUKT9l8YCPYGfBz+3wb0JHlEP0jyJMVXnRSTtZpqN8pgd28wtPXLZi04ZSlJLjys
pyIE5sCEoJxnv81+qCeUn9DQjY1nEve4IAo7QiybLWHsJrX5P6ky26xmr+WZdtCsrL+F9lYwkqnO
WqIsSUlxs11Hld3dL5oOiD0Ovfha5K0iCoFKpEcNxb6HKTkKmCEBs0a9DwU5yJu3j0i6pDl0MBdf
i/8TQlVxdeCEvCi1IMkB6ubasDap1hdfG+NsvCWCwriDJb9eG6BcjmCvOb4B33bl2yMksP+xbyCV
Y9IynW7cRd6edDcePcPbjv+MooTlMHjx8mib69JPJIexaLsVOXSd2L5IfuCo3JY26PQ4pTEKXbvb
0HG8WUHMXlZiDsR+LXYCaOkTYrZapwwz2Ut5TpQk0D5tz6PNNirmu4Krg4aXBP9QZ314LO/u5Zh6
F+UctPBGSJQsrGW+CZ18RtZQOOY+UWLZ703kWLXM9WhwRlZ+8kE/IpFD+4PuF1BLAwQKAAAAAAAi
tmVLAAAAAAAAAAAAAAAADQAcAGRpc3BsYXlsaXN0cy9VVAkAA98FAFqpBgBadXgLAAEE9QEAAAQU
AAAAUEsDBBQAAgAIACK2ZUujV/3oUAAAAI4AAAAyABwAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNs
dWRlcy10cmFuc2Zvcm1zLXN0ZGVyci50eHRVVAkAA98FAFrfBQBadXgLAAEE9QEAAAQUAAAAcy9K
LMjITC52zs8rSa0osbJKTy1xDvHV0FTILFbIyy9RqEwtUUjOzy1ILMlMyklVKM8syVAoSk3OL0rJ
zEsHyoC1FetxuaMbVIxmEDGGAABQSwMEFAACAAgAIrZlS/KWldVHAAAASQAAACkAHABkaXNwbGF5
bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUCQAD3wUAWt8FAFp1eAsAAQT1AQAA
BBQAAABzL0osyMhMLnbOzytJrSixskpPLXEO8dXQVMgsVsjLL1GoTC1RSM7PLUgsyUzKSVUozyzJ
UChKTc4vSsnMSwfKgLUV63EBAFBLAwQKAAAAAAB0tmVLAAAAAAAAAAAAAAAACAAcAGVkaXRpbmcv
VVQJAAN8BgBaqQYAWnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABVtmVLAAAAAAAAAAAAAAAADgAc
AGVkaXRpbmcvY2FyZXQvVVQJAANBBgBaqQYAWnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABVtmVL
1uA1hpAAAAD6AAAAIQAcAGVkaXRpbmcvY2FyZXQvZW1vamktY3Jhc2gtbG9nLnR4dFVUCQADQQYA
WkEGAFp1eAsAAQT1AQAABBQAAAC1zrEOgjAQgOHdp7iNCcvVRCOzOBFNGp2MIaU9oAly5FpieHt5
Cdd/+f7KmLsp4WrDSB4Sg5D1kKlnJImqXcLoW06qDq1YWVXNfVSXYPuJYwrO0MyStrJ8ZkOTJ3kI
UaMLPOWIeaHz4qwRjw19I+Jh78TGISvhVYlMDPoNN4a4uAG6zQcW8EHIJZa1/PPE7gdQSwMEFAAC
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
j04P15IutZIqS2dYFRdWpJTY2sQ54kLAglIyz8tvnBCfsBOcnOQChQYboR6BE4SmMe4G3gIFnCo5
bCSph5V5NDo/LiRrqiQ/vrZuX9NVIrBC8A5aHxbgxH26VeBjoCjKxsSQ/ejLtYF0k0E96VFz/C/m
t/Ul0WW54RmcyZQ/S2DFTQlVqwMj6kcRXsmtAxSUYoWD9jHYv1BLAwQKAAAAAABVtmVLAAAAAAAA
AAAAAAAAFwAcAGVkaXRpbmcvbWFjL3Bhc3RlYm9hcmQvVVQJAANBBgBaqQYAWnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACAA2tmVLLxXQ2ZAAAAD6AAAARwAcAGVkaXRpbmcvbWFjL3Bhc3RlYm9hcmQv
ZHJhZy1zZWxlY3Rpb25zLXRvLWNvbnRlbnRlZGl0YWJsZS1jcmFzaC1sb2cudHh0VVQJAAMIBgBa
CAYAWnV4CwABBPUBAAAEFAAAALXOsQ6CMBCA4d2nuI0JSyHGwCxORJNGJ2NIaQ9oghy5KzG8vbyE
6798f23M3VRwtWFCD5GA0XpI1FOQRXVrmHxHUTWhY8ubamgQdQl2mElicAYX4riX9bMYnD3ygxHb
PNPnVOs0y9Os1GVxavErWhdHx1bGpIJXzTwT5G+4EcjqRuh3H4jBB0YXibfqzxOHH1BLAwQUAAIA
CAA2tmVLL5RlsqYDAACdCwAARAAcAGVkaXRpbmcvbWFjL3Bhc3RlYm9hcmQvZHJhZy1zZWxlY3Rp
b25zLXRvLWNvbnRlbnRlZGl0YWJsZS1zdGRlcnIudHh0VVQJAAMIBgBaCAYAWnV4CwABBPUBAAAE
FAAAANWW227iSBCG73kKX40gimbcPtuaiZQlZEQUQgSIXKJ2uxx6x7gtu2HC20+1TxwCaLK72tXe
AHbX/9Xf1a4yt9PpYDIbjp+0+9vh4+Au0OQ2g25P+/ZNG6YS8pQm9+uUSS7SGa50Pn/J16nkK/hy
vPyZZVnXtnpaoG0Ej7SHaT8IjoOCIOYpL5b9HKi67pZR85H26VpjIi2k9jK7D4KpzHn6qm6eoTzR
Fcx5wUOecLntdYimafob0T2fGr6hK0o/p8WyYzQLVswMsD/mCvPv2ykN/r4ns0pNDD104ohVsklV
vRHIpYg+lLfXsWqgHhpO6FJtHP7Z/zs8e4+nE3KKxxQJKs7gDdhU4uVVXYKH6fdEhDRBHTB5daFY
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
TTJstXXo9lDr5hIM4SLHSnKdjacgYB/xdIqZfYpurZhQh2HL7NDGApbYuG2vjATJc06rwX+URny/
xdt9jxzEY0tmREPDLbduDq9mpnJe+n2fyk78DTwTuiq/cOIiy5Q2KD2opVOHpqG3Cf1jPr2pwvEm
keVa4ifR/oxqfnP/7rGEOt5Gh6XpMZ3m6FrD7iH9sl/u29lxQb8WxCvL226zUvBS0aJkzIjO36SW
Xyk9I0UObK4BfhRcMLzQkBZsaH7iH6dlxTKbq18g+V+gb5TKukenxytJF1pJVeRTrIoLK1FKbG3i
DHExYEEpWeY1bJ2wgLATnJzkAoXCjVCfwAlCkxR3A78QBZwo2bdbydTHpjgaXR4XkrVVUh5fW19m
k2UmsEKQ2RwWxHe9wN06c4CiKLskhuyiU1Hki433ZvhRc7wRkfk3UEsDBAoAAAAAAHS2ZUsAAAAA
AAAAAAAAAAAVABwAZWRpdGluZy9zZWN1cmUtaW5wdXQvVVQJAAN8BgBaqQYAWnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACAB0tmVLpjcpkpAAAAD6AAAATQAcAGVkaXRpbmcvc2VjdXJlLWlucHV0L3Bh
c3N3b3JkLWlucHV0LWZvY3VzaW5nLXRvLWRpZmZlcmVudC1mcmFtZS1jcmFzaC1sb2cudHh0VVQJ
AAN8BgBafAYAWnV4CwABBPUBAAAEFAAAALXOsQ6CMBCA4d2nuI0JS6mJCbMwEU0anYwhpT2hCXLk
rsTw9vISrv/y/bW1N1tB4+KEARIBowuQqYcgi+rXOIWekmpjz4431dIg6hLdMJOk6C0uxGkv62ex
OAfkOyN2ZaHPudZ5YfJSm8KcOvyK1ubo2cmYVfCsmWeC8gVXAln9CO/dB2IIkdEn4q3688ThB1BL
AwQUAAIACAB0tmVLirasV7IDAADVCwAASgAcAGVkaXRpbmcvc2VjdXJlLWlucHV0L3Bhc3N3b3Jk
LWlucHV0LWZvY3VzaW5nLXRvLWRpZmZlcmVudC1mcmFtZS1zdGRlcnIudHh0VVQJAAN8BgBafAYA
WnV4CwABBPUBAAAEFAAAANWWW2/iOBTH3/kUeRpBVc3EuSeaqdSlMKIqpQJEH5HjOMU7IY4cw5Rv
P8e5ESigdne1o3lBOD7/37nY5yS3s9lgOh9NHrXh7ehhcBdocpfRbk/79k0bpZKKFCfDTUok4+kc
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
AAAYABgAAAAAAAEAAACkgfH4AABfd3B0X2NlcnRzL2xvY2FsaG9zdC5wZW1VVAUAA7IFAFp1eAsA
AQT1AQAABBQAAABQSwECHgMKAAIAAAAJtmVLeWNkigUAAAAFAAAAEQAYAAAAAAABAAAApIErAwEA
X3dwdF9jZXJ0cy9zZXJpYWxVVAUAA7IFAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAAAJtmVL
OFJ/kwUAAAAFAAAAFQAYAAAAAAABAAAApIF7AwEAX3dwdF9jZXJ0cy9zZXJpYWwub2xkVVQFAAOy
BQBadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAB7ZlSwAAAAAAAAAAAAAAAA4AGAAAAAAAAAAA
AKSBzwMBAGFjY2Vzc19sb2cudHh0VVQFAAOuBQBadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
NrZlSwAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BFwQBAGFjY2Vzc2liaWxpdHkvVVQFAAMIBgBa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAi7ZlSxB2QehoSgAA5FcBADcAGAAAAAAAAQAAAKSB
XwQBAGFjY2Vzc2liaWxpdHkvYWRkLWNoaWxkcmVuLXBzZXVkby1lbGVtZW50LWNyYXNoLWxvZy50
eHRVVAUAA6YGAFp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2tmVLSbqRSAcEAACjDAAANAAY
AAAAAAABAAAApIE4TwEAYWNjZXNzaWJpbGl0eS9hZGQtY2hpbGRyZW4tcHNldWRvLWVsZW1lbnQt
c3RkZXJyLnR4dFVUBQADCAYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAG62ZUsAAAAAAAAA
AAAAAAASABgAAAAAAAAAEADtQa1TAQBhY2Nlc3NpYmlsaXR5L21hYy9VVAUAA3AGAFp1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABTtmVLRhvH4JAAAAD6AAAAOAAYAAAAAAABAAAApIH5UwEAYWNj
ZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXJyb3ctbmF2LWNyYXNoLWxvZy50eHRVVAUA
Az0GAFp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABTtmVLu1qlhf0DAACcDAAANQAYAAAAAAAB
AAAApIH7VAEAYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXJyb3ctbmF2LXN0ZGVy
ci50eHRVVAUAAz0GAFp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACLtmVLENyuKahEAADo/QAA
PAAYAAAAAAABAAAApIFnWQEAYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctdGFiLXNl
bGVjdGlvbi1jcmFzaC1sb2cudHh0VVQFAAOmBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
brZlS9/fQgsHBAAAowwAADkAGAAAAAAAAQAAAKSBhZ4BAGFjY2Vzc2liaWxpdHkvbWFjL2NhcmV0
LWJyb3dzaW5nLXRhYi1zZWxlY3Rpb24tc3RkZXJyLnR4dFVUBQADcAYAWnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAGy2ZUsAAAAAAAAAAAAAAAAfABgAAAAAAAAAEADtQf+iAQBhY2Nlc3NpYmls
aXR5L21hYy92YWx1ZS1jaGFuZ2UvVVQFAANrBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
i7ZlS6kPqmu8QwAAPfoAAFMAGAAAAAAAAQAAAKSBWKMBAGFjY2Vzc2liaWxpdHkvbWFjL3ZhbHVl
LWNoYW5nZS92YWx1ZS1jaGFuZ2UtdXNlci1pbmZvLWNvbnRlbnRlZGl0YWJsZS1jcmFzaC1sb2cu
dHh0VVQFAAOmBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANbZlS9pLc1L7AwAAnAwAAFAA
GAAAAAAAAQAAAKSBoecBAGFjY2Vzc2liaWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS92YWx1ZS1jaGFu
Z2UtdXNlci1pbmZvLWNvbnRlbnRlZGl0YWJsZS1zdGRlcnIudHh0VVQFAAMGBgBadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAi7ZlS303Si3FQwAAa/sAAEwAGAAAAAAAAQAAAKSBJuwBAGFjY2Vz
c2liaWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS92YWx1ZS1jaGFuZ2UtdXNlci1pbmZvLXRleHRhcmVh
LWNyYXNoLWxvZy50eHRVVAUAA6YGAFp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABRtmVL4gS/
WfsDAACcDAAASQAYAAAAAAABAAAApIFxMAIAYWNjZXNzaWJpbGl0eS9tYWMvdmFsdWUtY2hhbmdl
L3ZhbHVlLWNoYW5nZS11c2VyLWluZm8tdGV4dGFyZWEtc3RkZXJyLnR4dFVUBQADOgYAWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAIu2ZUvsY6g5wkMAAEX9AABNABgAAAAAAAEAAACkge80AgBh
Y2Nlc3NpYmlsaXR5L21hYy92YWx1ZS1jaGFuZ2UvdmFsdWUtY2hhbmdlLXVzZXItaW5mby10ZXh0
ZmllbGQtY3Jhc2gtbG9nLnR4dFVUBQADpgYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGy2
ZUs2lioR+AMAAJwMAABKABgAAAAAAAEAAACkgTh5AgBhY2Nlc3NpYmlsaXR5L21hYy92YWx1ZS1j
aGFuZ2UvdmFsdWUtY2hhbmdlLXVzZXItaW5mby10ZXh0ZmllbGQtc3RkZXJyLnR4dFVUBQADawYA
WnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFG2ZUsAAAAAAAAAAAAAAAALABgAAAAAAAAAEADt
QbR9AgBhbmltYXRpb25zL1VUBQADOgYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFG2ZUsI
dozOkAAAAPoAAAA0ABgAAAAAAAEAAACkgfl9AgBhbmltYXRpb25zL3Jlc3RhcnQtYWZ0ZXItc2Ny
b2xsLW5lc3RlZC1jcmFzaC1sb2cudHh0VVQFAAM6BgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAUbZlS+3DM4LQAwAA7gsAADEAGAAAAAAAAQAAAKSB934CAGFuaW1hdGlvbnMvcmVzdGFydC1h
ZnRlci1zY3JvbGwtbmVzdGVkLXN0ZGVyci50eHRVVAUAAzoGAFp1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAABctmVLAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UEygwIAY29tcG9zaXRpbmcvVVQF
AANQBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAi7ZlS8YudP03SgAAWmgBADEAGAAAAAAA
AQAAAKSBeIMCAGNvbXBvc2l0aW5nL2ZpeGVkLXdpdGgtZml4ZWQtbGF5b3V0LWNyYXNoLWxvZy50
eHRVVAUAA6YGAFp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2tmVLohKFWQwEAACjDAAALgAY
AAAAAAABAAAApIEazgIAY29tcG9zaXRpbmcvZml4ZWQtd2l0aC1maXhlZC1sYXlvdXQtc3RkZXJy
LnR4dFVUBQADCAYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFO2ZUsAAAAAAAAAAAAAAAAU
ABgAAAAAAAAAEADtQY7SAgBjb21wb3NpdGluZy9pZnJhbWVzL1VUBQADPQYAWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIu2ZUu1xJIZ/UQAAJdAAQAzABgAAAAAAAEAAACkgdzSAgBjb21wb3Np
dGluZy9pZnJhbWVzL2NyYXNoLW1vdXNlLWV2ZW50LWNyYXNoLWxvZy50eHRVVAUAA6YGAFp1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAA1tmVLLwVk6coDAADkCwAAMAAYAAAAAAABAAAApIFGGAMA
Y29tcG9zaXRpbmcvaWZyYW1lcy9jcmFzaC1tb3VzZS1ldmVudC1zdGRlcnIudHh0VVQFAAMGBgBa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAi7ZlS12lUDFaRgAA0lcBAD4AGAAAAAAAAQAAAKSB
ehwDAGNvbXBvc2l0aW5nL2lmcmFtZXMvbGF5b3V0LW9uLWNvbXBvc2l0aW5nLWNoYW5nZS1jcmFz
aC1sb2cudHh0VVQFAAOmBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAU7ZlSyBn9Z/KAwAA
5AsAADsAGAAAAAAAAQAAAKSBTGMDAGNvbXBvc2l0aW5nL2lmcmFtZXMvbGF5b3V0LW9uLWNvbXBv
c2l0aW5nLWNoYW5nZS1zdGRlcnIudHh0VVQFAAM9BgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAXLZlSwAAAAAAAAAAAAAAABsAGAAAAAAAAAAQAO1Bi2cDAGNvbXBvc2l0aW5nL2xheWVyLWNy
ZWF0aW9uL1VUBQADUAYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFy2ZUsSdTWa8AMAACIM
AABBABgAAAAAAAEAAACkgeBnAwBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi96b29tZWQtY2xp
cC1pbnRlcnNlY3Rpb24tY3Jhc2gtbG9nLnR4dFVUBQADUAYAWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAFy2ZUtk3etRwwMAAOILAAA+ABgAAAAAAAEAAACkgUtsAwBjb21wb3NpdGluZy9sYXll
ci1jcmVhdGlvbi96b29tZWQtY2xpcC1pbnRlcnNlY3Rpb24tc3RkZXJyLnR4dFVUBQADUAYAWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADa2ZUsAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQYZw
AwBjb21wb3NpdGluZy90aWxpbmcvVVQFAAMIBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
i7ZlS9rHg4KCRwAATkIBADIAGAAAAAAAAQAAAKSB03ADAGNvbXBvc2l0aW5nL3RpbGluZy90aWxl
LWNhY2hlLXpvb21lZC1jcmFzaC1sb2cudHh0VVQFAAOmBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgANrZlS8ENXdbGAwAA4gsAAC8AGAAAAAAAAQAAAKSBwbgDAGNvbXBvc2l0aW5nL3RpbGlu
Zy90aWxlLWNhY2hlLXpvb21lZC1zdGRlcnIudHh0VVQFAAMIBgBadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAJ7ZlSwAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1B8LwDAGNyeXB0by9VVAUAA+kF
AFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAotmVLAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA
7UExvQMAY3J5cHRvL3N1YnRsZS9VVAUAA+sFAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAAAn
tmVLJeDTCCwAAAAsAAAAPgAYAAAAAAABAAAApIF5vQMAY3J5cHRvL3N1YnRsZS9yc2EtZ2VuZXJh
dGUta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAA+kFAFp1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAotmVLMDu4sUsAAABoAAAAPAAYAAAAAAABAAAApIEdvgMAY3J5cHRv
L3N1YnRsZS9yc2EtaW1wb3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRlcnIudHh0VVQF
AAPrBQBadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAHbZlSwAAAAAAAAAAAAAAAA8AGAAAAAAA
AAAQAO1B3r4DAGNyeXB0by93b3JrZXJzL1VUBQAD2QUAWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAB22ZUsAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQSe/AwBjcnlwdG8vd29ya2Vycy9zdWJ0
bGUvVVQFAAPZBQBadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAHbZlSyXg0wgsAAAALAAAADEA
GAAAAAAAAQAAAKSBd78DAGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LXN0
ZGVyci50eHRVVAUAA9kFAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA3tmVLAAAAAAAAAAAA
AAAABQAYAAAAAAAAABAA7UEOwAMAY3NzMy9VVAUAAwkGAFp1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAA3tmVLAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UFNwAMAY3NzMy92aWV3cG9ydC1wZXJj
ZW50YWdlLWxlbmd0aHMvVVQFAAMJBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAN7ZlSzht
RSCcAAAA9AEAADgAGAAAAAAAAQAAAKSBqMADAGNzczMvdmlld3BvcnQtcGVyY2VudGFnZS1sZW5n
dGhzL3ZoLXJlc2l6ZS1jcmFzaC1sb2cudHh0VVQFAAMJBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAN7ZlSxRrIhOyAwAA1QsAADUAGAAAAAAAAQAAAKSBtsEDAGNzczMvdmlld3BvcnQtcGVy
Y2VudGFnZS1sZW5ndGhzL3ZoLXJlc2l6ZS1zdGRlcnIudHh0VVQFAAMJBgBadXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAIrZlSwAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1B18UDAGRpc3BsYXls
aXN0cy9VVAUAA98FAFp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAitmVLo1f96FAAAACOAAAA
MgAYAAAAAAABAAAApIEexgMAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zvcm1z
LXN0ZGVyci50eHRVVAUAA98FAFp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAitmVL8paV1UcA
AABJAAAAKQAYAAAAAAABAAAApIHaxgMAZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1saXN0LXN0
ZGVyci50eHRVVAUAA98FAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB0tmVLAAAAAAAAAAAA
AAAACAAYAAAAAAAAABAA7UGExwMAZWRpdGluZy9VVAUAA3wGAFp1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAABVtmVLAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UHGxwMAZWRpdGluZy9jYXJldC9V
VAUAA0EGAFp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABVtmVL1uA1hpAAAAD6AAAAIQAYAAAA
AAABAAAApIEOyAMAZWRpdGluZy9jYXJldC9lbW9qaS1jcmFzaC1sb2cudHh0VVQFAANBBgBadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVbZlS/tRfXP9AwAAnAwAAB4AGAAAAAAAAQAAAKSB+cgD
AGVkaXRpbmcvY2FyZXQvZW1vamktc3RkZXJyLnR4dFVUBQADQQYAWnV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAFO2ZUsAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQU7NAwBlZGl0aW5nL2RlbGV0
aW5nL1VUBQADPQYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFO2ZUtGG8fgkAAAAPoAAAAm
ABgAAAAAAAEAAACkgZnNAwBlZGl0aW5nL2RlbGV0aW5nLzU3Mjk2ODAtY3Jhc2gtbG9nLnR4dFVU
BQADPQYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFO2ZUvc7DCU9wMAAGMMAAAjABgAAAAA
AAEAAACkgYnOAwBlZGl0aW5nL2RlbGV0aW5nLzU3Mjk2ODAtc3RkZXJyLnR4dFVUBQADPQYAWnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHG2ZUsAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQd3S
AwBlZGl0aW5nL2V4ZWNDb21tYW5kL1VUBQADdgYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AHG2ZUurFjcUkAAAAPoAAABEABgAAAAAAAEAAACkgSvTAwBlZGl0aW5nL2V4ZWNDb21tYW5kL2Ns
aXBib2FyZC1hY2Nlc3Mtd2l0aC11c2VyLWdlc3R1cmUtY3Jhc2gtbG9nLnR4dFVUBQADdgYAWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHG2ZUse4d1+6QMAAE4MAABBABgAAAAAAAEAAACkgTnU
AwBlZGl0aW5nL2V4ZWNDb21tYW5kL2NsaXBib2FyZC1hY2Nlc3Mtd2l0aC11c2VyLWdlc3R1cmUt
c3RkZXJyLnR4dFVUBQADdgYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAG22ZUsAAAAAAAAA
AAAAAAAOABgAAAAAAAAAEADtQZ3YAwBlZGl0aW5nL2lucHV0L1VUBQADbgYAWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAG22ZUuapAiAIQQAAKMMAABAABgAAAAAAAEAAACkgeXYAwBlZGl0aW5n
L2lucHV0L2NhcmV0LWF0LXRoZS1lZGdlLW9mLWNvbnRlbnRlZGl0YWJsZS1jcmFzaC1sb2cudHh0
VVQFAANuBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbbZlS/kwUSL2AwAAYwwAAD0AGAAA
AAAAAQAAAKSBgN0DAGVkaXRpbmcvaW5wdXQvY2FyZXQtYXQtdGhlLWVkZ2Utb2YtY29udGVudGVk
aXRhYmxlLXN0ZGVyci50eHRVVAUAA24GAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABwtmVL
AAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UHt4QMAZWRpdGluZy9pbnNlcnRpbmcvVVQFAAN0BgBa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcLZlS5pBZOEsBAAAsgwAAC4AGAAAAAAAAQAAAKSB
OeIDAGVkaXRpbmcvaW5zZXJ0aW5nL2NhcmV0LXBvc2l0aW9uLWNyYXNoLWxvZy50eHRVVAUAA3QG
AFp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABwtmVLvycVXwEEAAByDAAAKwAYAAAAAAABAAAA
pIHN5gMAZWRpdGluZy9pbnNlcnRpbmcvY2FyZXQtcG9zaXRpb24tc3RkZXJyLnR4dFVUBQADdAYA
WnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAG+2ZUsAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADt
QTPrAwBlZGl0aW5nL21hYy9VVAUAA3IGAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABvtmVL
AAAAAAAAAAAAAAAAFQAYAAAAAAAAABAA7UF56wMAZWRpdGluZy9tYWMvZGVsZXRpbmcvVVQFAANy
BgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAb7ZlS1EI+VEsBAAAsgwAADIAGAAAAAAAAQAA
AKSByOsDAGVkaXRpbmcvbWFjL2RlbGV0aW5nL2JhY2t3YXJkLWRlbGV0ZS1jcmFzaC1sb2cudHh0
VVQFAANyBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAb7ZlS2+91gAABAAAcgwAAC8AGAAA
AAAAAQAAAKSBYPADAGVkaXRpbmcvbWFjL2RlbGV0aW5nL2JhY2t3YXJkLWRlbGV0ZS1zdGRlcnIu
dHh0VVQFAANyBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAdLZlSwAAAAAAAAAAAAAAABIA
GAAAAAAAAAAQAO1ByfQDAGVkaXRpbmcvbWFjL2lucHV0L1VUBQADewYAWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIADa2ZUs4bUUgnAAAAPQBAAAnABgAAAAAAAEAAACkgRX1AwBlZGl0aW5nL21h
Yy9pbnB1dC81NTc2NjE5LWNyYXNoLWxvZy50eHRVVAUAAwgGAFp1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAA2tmVLFq9QHPYDAABjDAAAJAAYAAAAAAABAAAApIES9gMAZWRpdGluZy9tYWMvaW5w
dXQvNTU3NjYxOS1zdGRlcnIudHh0VVQFAAMIBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
i7ZlS3x61u+6RAAAw/8AAD0AGAAAAAAAAQAAAKSBZvoDAGVkaXRpbmcvbWFjL2lucHV0L05TQmFj
a2dyb3VuZENvbG9yLXRyYW5zcGFyZW50LWNyYXNoLWxvZy50eHRVVAUAA6YGAFp1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABWtmVL8sr1cgsEAACjDAAAOgAYAAAAAAABAAAApIGXPwQAZWRpdGlu
Zy9tYWMvaW5wdXQvTlNCYWNrZ3JvdW5kQ29sb3ItdHJhbnNwYXJlbnQtc3RkZXJyLnR4dFVUBQAD
RAYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIu2ZUsUOCoVpUQAAK//AAApABgAAAAAAAEA
AACkgRZEBABlZGl0aW5nL21hYy9pbnB1dC9ib2xkLW5vZGUtY3Jhc2gtbG9nLnR4dFVUBQADpgYA
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHS2ZUvukRMuCQQAAKMMAAAmABgAAAAAAAEAAACk
gR6JBABlZGl0aW5nL21hYy9pbnB1dC9ib2xkLW5vZGUtc3RkZXJyLnR4dFVUBQADewYAWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAFW2ZUsAAAAAAAAAAAAAAAAXABgAAAAAAAAAEADtQYeNBABl
ZGl0aW5nL21hYy9wYXN0ZWJvYXJkL1VUBQADQQYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ADa2ZUsvFdDZkAAAAPoAAABHABgAAAAAAAEAAACkgdiNBABlZGl0aW5nL21hYy9wYXN0ZWJvYXJk
L2RyYWctc2VsZWN0aW9ucy10by1jb250ZW50ZWRpdGFibGUtY3Jhc2gtbG9nLnR4dFVUBQADCAYA
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADa2ZUsvlGWypgMAAJ0LAABEABgAAAAAAAEAAACk
gemOBABlZGl0aW5nL21hYy9wYXN0ZWJvYXJkL2RyYWctc2VsZWN0aW9ucy10by1jb250ZW50ZWRp
dGFibGUtc3RkZXJyLnR4dFVUBQADCAYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIu2ZUu6
pM/2tkMAAMPrAABJABgAAAAAAAEAAACkgQ2TBABlZGl0aW5nL21hYy9wYXN0ZWJvYXJkL3Bhc3Rl
LWFuZC1tYXRjaC1zdHlsZS1zZWxlY3Rvci1ldmVudC1jcmFzaC1sb2cudHh0VVQFAAOmBgBadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVbZlS20vtY6vAwAAvQsAAEYAGAAAAAAAAQAAAKSBRtcE
AGVkaXRpbmcvbWFjL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLW1hdGNoLXN0eWxlLXNlbGVjdG9yLWV2
ZW50LXN0ZGVyci50eHRVVAUAA0EGAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAButmVLAAAA
AAAAAAAAAAAAFgAYAAAAAAAAABAA7UF12wQAZWRpdGluZy9tYWMvc2VsZWN0aW9uL1VUBQADcAYA
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG62ZUvktvlRkAAAAPoAAAApABgAAAAAAAEAAACk
gcXbBABlZGl0aW5nL21hYy9zZWxlY3Rpb24vMjUyMjgtY3Jhc2gtbG9nLnR4dFVUBQADcAYAWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG62ZUtV7LD/0AMAAO4LAAAmABgAAAAAAAEAAACkgbjc
BABlZGl0aW5nL21hYy9zZWxlY3Rpb24vMjUyMjgtc3RkZXJyLnR4dFVUBQADcAYAWnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAFa2ZUsAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQejgBABlZGl0
aW5nL21hYy9zcGVsbGluZy9VVAUAA0QGAFp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACLtmVL
QycWOd9JAADQYgEAQgAYAAAAAAABAAAApIE34QQAZWRpdGluZy9tYWMvc3BlbGxpbmcvYXV0b2Nv
cnJlY3Rpb24tYmxvY2txdW90ZS1jcmFzaC1jcmFzaC1sb2cudHh0VVQFAAOmBgBadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAVrZlS6JQqOUJBAAAowwAAD8AGAAAAAAAAQAAAKSBkisFAGVkaXRp
bmcvbWFjL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLWJsb2NrcXVvdGUtY3Jhc2gtc3RkZXJyLnR4
dFVUBQADRAYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHS2ZUsAAAAAAAAAAAAAAAATABgA
AAAAAAAAEADtQRQwBQBlZGl0aW5nL3Bhc3RlYm9hcmQvVVQFAAN8BgBadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAdLZlSzp+nnyQAAAA+gAAACoAGAAAAAAAAQAAAKSBYTAFAGVkaXRpbmcvcGFz
dGVib2FyZC80OTQ0NzcwLTItY3Jhc2gtbG9nLnR4dFVUBQADfAYAWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAHS2ZUtsfS1a7gMAAFAMAAAnABgAAAAAAAEAAACkgVUxBQBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvNDk0NDc3MC0yLXN0ZGVyci50eHRVVAUAA3wGAFp1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAB0tmVLAAAAAAAAAAAAAAAAFQAYAAAAAAAAABAA7UGkNQUAZWRpdGluZy9zZWN1cmUtaW5w
dXQvVVQFAAN8BgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdLZlS6Y3KZKQAAAA+gAAAE0A
GAAAAAAAAQAAAKSB8zUFAGVkaXRpbmcvc2VjdXJlLWlucHV0L3Bhc3N3b3JkLWlucHV0LWZvY3Vz
aW5nLXRvLWRpZmZlcmVudC1mcmFtZS1jcmFzaC1sb2cudHh0VVQFAAN8BgBadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAdLZlS4q2rFeyAwAA1QsAAEoAGAAAAAAAAQAAAKSBCjcFAGVkaXRpbmcv
c2VjdXJlLWlucHV0L3Bhc3N3b3JkLWlucHV0LWZvY3VzaW5nLXRvLWRpZmZlcmVudC1mcmFtZS1z
dGRlcnIudHh0VVQFAAN8BgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAbLZlSwAAAAAAAAAA
AAAAAA4AGAAAAAAAAAAQAO1BQDsFAGVkaXRpbmcvc3R5bGUvVVQFAANrBgBadXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAbLZlS1P4S2+RAAAA+gAAACcAGAAAAAAAAQAAAKSBiDsFAGVkaXRpbmcv
c3R5bGUvdGV4dC1pbmRlbnQtY3Jhc2gtbG9nLnR4dFVUBQADawYAWnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAGy2ZUvBtcd6AAQAAHIMAAAkABgAAAAAAAEAAACkgXo8BQBlZGl0aW5nL3N0eWxl
L3RleHQtaW5kZW50LXN0ZGVyci50eHRVVAUAA2sGAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AABxtmVLAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UHYQAUAZWRpdGluZy91bmRvL1VUBQADdgYA
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIu2ZUt6hgoqOUkAADROAQAqABgAAAAAAAEAAACk
gR9BBQBlZGl0aW5nL3VuZG8vdW5kby1kZWxldGVXb3JkLWNyYXNoLWxvZy50eHRVVAUAA6YGAFp1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABxtmVL+SSJM84DAADuCwAAJwAYAAAAAAABAAAApIG8
igUAZWRpdGluZy91bmRvL3VuZG8tZGVsZXRlV29yZC1zdGRlcnIudHh0VVQFAAN2BgBadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAdbZlS8Zeu27GAgAAVAgAAA0AGAAAAAAAAQAAAKSB644FAGVy
cm9yX2xvZy50eHRVVAUAA30GAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABttmVLAAAAAAAA
AAAAAAAABQAYAAAAAAAAABAA7UH4kQUAZmFzdC9VVAUAA24GAFp1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAB0tmVLAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UE3kgUAZmFzdC9hdHRhY2htZW50
L1VUBQADfAYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFa2ZUs9DIONcgIAAEwiAAA1ABgA
AAAAAAEAAACkgYGSBQBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC1sYWJlbC1oaWdobGlnaHQt
c3RkZXJyLnR4dFVUBQADRAYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIu2ZUvA83rex0cA
ABhVAQBPABgAAAAAAAEAAACkgWKVBQBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC1zZWxlY3Qt
b24tY2xpY2staW5zaWRlLXVzZXItc2VsZWN0LWFsbC1jcmFzaC1sb2cudHh0VVQFAAOmBgBadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdLZlSyyW38/GAwAA4gsAAEwAGAAAAAAAAQAAAKSBst0F
AGZhc3QvYXR0YWNobWVudC9hdHRhY2htZW50LXNlbGVjdC1vbi1jbGljay1pbnNpZGUtdXNlci1z
ZWxlY3QtYWxsLXN0ZGVyci50eHRVVAUAA3wGAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABt
tmVLAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UH+4QUAZmFzdC9jYW52YXMvVVQFAANuBgBadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbbZlSyH7ThtsAAAA7AAAACYAGAAAAAAAAQAAAKSBROIF
AGZhc3QvY2FudmFzLzJkLmN1cnJlbnRQb2ludC1zdGRlcnIudHh0VVQFAANuBgBadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAjLZlS41bzh+uAwAA6A8AABEAGAAAAAAAAQAAAKSBEOMFAGZ1bGxf
cmVzdWx0cy5qc29uVVQFAAOnBgBadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAB7ZlS1sEWA6i
BQAATRAAAAoAGAAAAAAAAQAAAKSBCecFAGh0dHBkLmNvbmZVVAUAA64FAFp1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAAAItmVLAAAAAAAAAAAAAAAAGgAYAAAAAAAAAAAApIHv7AUAcHl3ZWJzb2Nr
ZXQud3MubG9nLWVyci50eHRVVAUAA7AFAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAItmVL
AAAAAAAAAAAAAAAAGgAYAAAAAAAAAAAApIFD7QUAcHl3ZWJzb2NrZXQud3MubG9nLW91dC50eHRV
VAUAA68FAFp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAJtmVLAAAAAAAAAAAAAAAAGwAYAAAA
AAAAAAAApIGX7QUAcHl3ZWJzb2NrZXQud3NzLmxvZy1lcnIudHh0VVQFAAOxBQBadXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAACLZlSwAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSB7O0FAHB5d2Vi
c29ja2V0Lndzcy5sb2ctb3V0LnR4dFVUBQADsAUAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AIy2ZUuPylJacSkAAMavAAAMABgAAAAAAAEAAACkgUHuBQByZXN1bHRzLmh0bWxVVAUAA6cGAFp1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACMtmVLxqojIWKvAQCrsgkACgAYAAAAAAABAAAApIH4
FwYAc3RhdHMuanNvblVUBQADpwYAWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA22ZUuouGRi
TQUAAFIiAAAZABgAAAAAAAEAAACkgZ7HBwB3cHR3a19wcm9jZXNzX2xvZy5vdXQudHh0VVQFAAO6
BQBadXgLAAEE9QEAAAQUAAAAUEsFBgAAAACCAIIA1DYAAD7NBwAAAA==
</data>

          </attachment>
      

    </bug>

</bugzilla>